CN117978327A - 基于spi通信的数据帧发送方法、装置、通信方法及系统 - Google Patents
基于spi通信的数据帧发送方法、装置、通信方法及系统 Download PDFInfo
- Publication number
- CN117978327A CN117978327A CN202410025079.7A CN202410025079A CN117978327A CN 117978327 A CN117978327 A CN 117978327A CN 202410025079 A CN202410025079 A CN 202410025079A CN 117978327 A CN117978327 A CN 117978327A
- Authority
- CN
- China
- Prior art keywords
- slave
- sent
- frame
- data frame
- transmitted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000006854 communication Effects 0.000 title claims abstract description 85
- 238000004891 communication Methods 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000004044 response Effects 0.000 claims abstract description 126
- 230000005540 biological transmission Effects 0.000 claims abstract description 57
- 238000003860 storage Methods 0.000 description 19
- 238000004590 computer program Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 230000000737 periodic effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000007488 abnormal function Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Communication Control (AREA)
Abstract
本申请公开了一种基于SPI通信的数据帧发送方法、装置、通信方法及系统。所述基于SPI通信的数据帧发送方法包括:步骤1:从缓存池中缓存至少一个待发送有效数据帧,待发送有效数据帧包括发送帧序号以及接收帧序号;步骤2:将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略。本申请的基于SPI通信的数据帧发送方法在常规通信数据包中增加发送帧序号、接收帧序号2个数据字段,从而在通过SPI传输数据时,主机能给根据从机根据增加帧序号、接收帧序号所生成的应答信息准确识别出传输过程中出现的各种错误。
Description
技术领域
本申请涉及汽车SPI通信技术领域,具体涉及一种基于SPI通信的数据帧发送方法、基于SPI通信的通信主机、基于SPI通信的通信方法以及基于SPI通信的通信系统。
背景技术
随着计算机、集成电路等技术的发展已经渗透到所有工业领域,对电子/电器的安全性和可靠性要求也越来越高。尤其是在汽车制造工业中,电动汽车在市场占有率越来越高,智能车载主机取代了传统车载主机。无论技术如何进步,汽车的电子电器的安全性和可靠性是不能降低的。当前电动汽车一般搭载智能车载主机,这种主机一般都包含MCU与SOC等多个处理器,他们之间一般采用SPI作为主要通信方式,如果通信过程中出现没有识别出来的错误将会导致功能异常甚至出现安全事故。我们需要设计一种方法能够通过SPI高可靠的传输数据,能准确识别出传输过程中出现的各种错误并通过重传机制重新传输错误的数据。
现有技术如图1所示,通常的车载控制器内部SPI通信直接周期性的发送与读取数据,并在数据的接收方校验数据的CRC是否正确,同时监控数据接收间隔是否超时;这种方法能够检测出来数据传输中的完整性错误与通信超时错误,由于没有重发机制之后只能进行数据的丢弃;如果传输中存在帧顺序错误(帧接收到与发送的顺序不同)、帧重复错误(同一发送帧被多次接收)、帧丢失(少接收其中一帧)错误也是没办法检测出来。
因此,希望有一种技术方案来解决或至少减轻现有技术的上述不足。
发明内容
本发明的目的在于提供一种基于SPI通信的数据帧发送方法来至少解决上述的一个技术问题。
本发明的一个方面,提供一种基于SPI通信的数据帧发送方法,所述基于SPI通信的数据帧发送方法包括:
步骤1:从缓存池中缓存至少一个待发送有效数据帧,所述待发送有效数据帧包括发送帧序号以及接收帧序号;
步骤2:将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略。
可选地,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略包括:
步骤201:将首先进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息;
步骤202:根据应答信息判断从机是否获取到该首先进入缓存池的待发送有效数据帧,若是,则
步骤203:将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
可选地,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略进一步包括:
步骤204:根据应答信息判断从机是否获取到该首先进入缓存池的待发送有效数据帧,若否,则
步骤205:按照进入缓存池的待发送有效数据帧的顺序,将已经发送的待发送有效数据帧之后的下一个进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息;
步骤206:根据应答信息判断从机是否获取到自所述步骤205所获取的待发送有效数据帧,若判断为是,则
步骤207:将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
可选地,所述步骤206进一步包括:
若所述判断为否,则
步骤208:周期性重复所述步骤205至步骤206,若任意一次步骤206中判断为是,则停止周期性重复所述步骤205至步骤206,并进行步骤207。
可选地,所述步骤208进一步包括:
若没有任何一次步骤206中判断为是,则在预设时间后重新重复所述步骤205。
可选地,所述应答信息包括空应答信号,当所述应答信号为空应答信号时,所述步骤204、步骤206中的判断结果为否。
可选地,所述应答信息进一步包括重发信号,当所述应答信息为重发信号时,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略进一步包括:
在执行所述步骤204之前,增加步骤209:重新发送所述首先进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息。
本申请还提供了一种基于SPI通信的通信主机,基于SPI通信的通信主机包括:
待发送有效数据帧获取模块,所述待发送有效数据帧获取模块用于从缓存池中缓存至少一个待发送有效数据帧,所述待发送有效数据帧包括发送帧序号以及接收帧序号;
发送执行模块,所述发送执行模块用于将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略。
本申请还提供了一种基于SPI通信的通信方法,所述基于SPI通信的通信方法包括:
主机从缓存池中缓存至少一个待发送有效数据帧,所述待发送有效数据帧包括发送帧序号以及接收帧序号;
主机将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机;
从机在每次主机发送待发送有效数据帧时将生成的应答信息发送给主机;其中,
主机在每次接收从机返回的应答信息后根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及下一次发送给从机的发送策略。
本申请还提供了一种基于SPI通信的通信系统,所述基于SPI通信的通信系统包括主机以及从机,其中,所述主机以及所述从机配合实现如权利要求9所述的基于SPI通信的通信方法。
有益效果
本申请的基于SPI通信的数据帧发送方法在常规通信数据包中增加发送帧序号、接收帧序号2个数据字段,从而在通过SPI传输数据时,主机能给根据从机根据增加帧序号、接收帧序号所生成的应答信息准确识别出传输过程中出现的各种错误并通过每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略。
附图说明
图1是现有技术的数据帧的结构示意图。
图2是本申请一实施例中的基于SPI通信的数据帧发送方法的流程示意图。
图3是用于实现图1所示的模拟对手件模块的系统设备示意图。
图4是图1所示的基于SPI通信的数据帧发送方法中的数据帧的结构示意图。
图5是图1所示的基于SPI通信的数据帧发送方法中的正常传输过程示意图。
图6是图1所示的基于SPI通信的数据帧发送方法中的应答丢失情况下的传输过程示意图。
图7是图1所示的基于SPI通信的数据帧发送方法中的发送阻塞与应答超时情况下的传输过程示意图。
图8是图1所示的基于SPI通信的数据帧发送方法中的需要重传数据情况下的传输过程示意图。
图9是图1所示的基于SPI通信的数据帧发送方法中的重复传输情况下的传输过程示意图。
具体实施方式
为使本申请实施的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本申请一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本申请的实施例进行详细说明。
图2是本申请一实施例中的基于SPI通信的数据帧发送方法的流程示意图。
如图2所示的基于SPI通信的数据帧发送方法包括:
步骤1:从缓存池中缓存至少一个待发送有效数据帧,所述待发送有效数据帧包括发送帧序号以及接收帧序号;
步骤2:将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略。
本申请的基于SPI通信的数据帧发送方法在常规通信数据包中增加发送帧序号、接收帧序号2个数据字段,从而在通过SPI传输数据时,主机能给根据从机根据增加帧序号、接收帧序号所生成的应答信息准确识别出传输过程中出现的各种错误并通过每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略。
参见图3,在本实施例中,本申请的数据帧在常规通信数据包增加帧类型、发送帧序号、接收帧序号3个数据字段,详细字段介绍如下。
总包帧头:0xA(固定不变)
帧长度:总包帧头到CRC校验(不包含CRC校验)的总字节数
帧类型:
数据段 | 发送帧序号 | 接收帧序号 | 是否需要缓存 | |
0:有效数据帧 | 有效数据 | 有效 | 有效 | 需要 |
1:ACK帧 | 空 | 无效 | 有效 | 不需要 |
2:周期帧 | 周期性数据 | 无效 | 有效 | 不需要 |
3:重传帧 | 空 | 无效 | 有效 | 不需要 |
有效数据帧:数据帧段有非周期性数据填充,每帧都需要有对应的应答。
ACK帧:有ACK要主动应答时,或无有效数据帧时,又要进行通信时,填充buffer用(仅SPI)。
周期帧:如周期性数据帧,各种心跳等等,此类帧不需要应答与重传。
重传帧:当接受到有效数据帧的发送帧序号跳、CRC校验错误、帧头错误请求重传。
发送帧序号:0~7循环发送。
应答帧序号:0~7循环发送。
CRC校验:从总包帧头到CRC校验前(不包含CRC校验)的所有字节的CRC值(确保数据的有效性)。
在本实施例中,本申请的基于SPI通信的数据帧发送方法用于描述如何进行有效数据帧的发送,其他类型的帧的发送方式与现有技术相同,在此不再赘述。
在本实施例中,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略包括:
步骤201:将首先进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息;
步骤202:根据应答信息判断从机是否获取到该首先进入缓存池的待发送有效数据帧,若是,则
步骤203:将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
在本实施例中,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略进一步包括:
步骤204:根据应答信息判断从机是否获取到该首先进入缓存池的待发送有效数据帧,若否,则
步骤205:按照进入缓存池的待发送有效数据帧的顺序,将已经发送的待发送有效数据帧之后的下一个进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息;
步骤206:根据应答信息判断从机是否获取到自所述步骤205所获取的待发送有效数据帧,若判断为是,则
步骤207:将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
在本实施例中,所述步骤206进一步包括:
若所述判断为否,则
步骤208:周期性重复所述步骤205至步骤206,若任意一次步骤206中判断为是,则停止周期性重复所述步骤205至步骤206,并进行步骤207。
在本实施例中,所述步骤208进一步包括:
若没有任何一次步骤206中判断为是,则在预设时间后重新重复所述步骤205。
在本实施例中,所述应答信息包括空应答信号,当所述应答信号为空应答信号时,所述步骤204、步骤206中的判断结果为否。
在本实施例中,所述应答信息进一步包括重发信号,当所述应答信息为重发信号时,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略进一步包括:
在执行所述步骤204之前,增加步骤209:重新发送所述首先进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息。
本申请还提供了一种基于SPI通信的通信主机,基于SPI通信的通信主机包括待发送有效数据帧获取模块以及发送执行模块,其中,
待发送有效数据帧获取模块用于从缓存池中缓存至少一个待发送有效数据帧,所述待发送有效数据帧包括发送帧序号以及接收帧序号;
发送执行模块用于将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略。
本申请还提供了一种基于SPI通信的通信方法,所述基于SPI通信的通信方法包括:
主机从缓存池中缓存至少一个待发送有效数据帧,所述待发送有效数据帧包括发送帧序号以及接收帧序号;
主机将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机;
从机在每次主机发送待发送有效数据帧时将生成的应答信息发送给主机;其中,
主机在每次接收从机返回的应答信息后根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及下一次发送给从机的发送策略。
本申请还提供了一种基于SPI通信的通信系统,所述基于SPI通信的通信系统包括主机以及从机,其中,所述主机以及所述从机配合实现如上所述的基于SPI通信的通信方法。
下面以举例的方式对本申请进行进一步详细阐述,可以理解的是,该举例并不构成对本申请的任何限制。
在本实施例中,主机可以是MCU或SOC,可以理解的是,当主机是MCU时,从机为SOC,当主机为SOC时,从机为MCU。
在本实施例中,由于通信是双向的以下部分例子只描述单方向传输有效帧(即主机向从机传输)的场景,双向传输的原理一样就不重复描述。
步骤1:从缓存池中缓存至少一个待发送有效数据帧,所述待发送有效数据帧包括发送帧序号以及接收帧序号;
在本实施例中,主机需要缓存5帧放在缓存池中,可以理解的是,缓存帧的数量可以根据使用者需求自行设定,也可以是6帧、7帧。
在本实施例中,缓存帧必须是待发送有效数据帧,应答帧、周期性帧、重传帧无需缓存。
在本实施例中,步骤2:将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略。
在本实施例中,为了让待发送有效数据帧正常通信,每次发送帧序号必须连续加1,0~7循环发送,同时接收到的应答帧序号必须连续的0~7循环,并且是接收到的“发送帧序号”的“下一帧”的序号(接收到的,正确的,连续的,最新的,发送帧序号)。代表(通知发送方)已经确认发送帧序号之前5帧均正确接收。
举例来说,假设一个缓存池中有5帧,帧序号分别是0、1、2、3、4,当发送时,会以0至4的循序依次发送,即将0帧首先发送给从机。
在本实施例中,通过SPI进行通信时,发送与接收时同时的,即将0帧发送给从机时,从机会返回一个应答信息,在正确的通信情况下,从机会发送0的下一帧,也就是1作为应答信息。
参见图5,在本实施例中,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略包括:
步骤201:将首先进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息;
步骤202:根据应答信息判断从机是否获取到该首先进入缓存池的待发送有效数据帧,若是,则
步骤203:将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
以上述缓存池中具有五帧,且帧序号为0、1、2、3、4为例,举例来说,将首先进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息,在进入缓存池中的帧的顺序,是以0、1、2、3、4、5、6、7、0、1、2这种往复的顺序来进入的,也就是说,在该缓存池中,帧序号为0的待发送有效数据帧是首先进入缓存池的。
将帧序号为0的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息。
根据应答信息判断从机是否获取到该首先进入缓存池的待发送有效数据帧。
在本实施例中,如果应答信息反馈的信息中包括帧序号为1,则认为获取到该首先进入缓存池的待发送有效数据帧,此时,将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
即将上述帧序号为0的待发送有效数据帧从缓存池中删除,并将帧序号为5的待发送有效数据帧放入到缓存池中,此时,缓存池中的各个待发送有效数据帧的帧序号变为1、2、3、4、5。
在步骤203之后,可以重复进行步骤201以及步骤202,只要每一帧步骤202中判断均为是,则认为传输正常,一直传输到传输结束即可。
参见图6,在本实施例中,可能出现应答丢失的情况,此时,需要进行如下操作:
步骤204:根据应答信息判断从机是否获取到该首先进入缓存池的待发送有效数据帧,若否,则
步骤205:按照进入缓存池的待发送有效数据帧的顺序,将已经发送的待发送有效数据帧之后的下一个进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息;
步骤206:根据应答信息判断从机是否获取到自所述步骤205所获取的待发送有效数据帧,若判断为是,则
步骤207:将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
举例来说,根据应答信息判断从机是否获取到该首先进入缓存池的待发送有效数据帧,例如,发送的帧序号为0,理论上应答信息中的帧序号为1,但是实际发送的是0,则认为帧序号为0的待发送有效数据帧丢失,此时,进行步骤步骤205:按照进入缓存池的待发送有效数据帧的顺序,将已经发送的待发送有效数据帧之后的下一个进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息;
在该实施例中,由于帧序号为0的已经发送了,此时,发送帧序号为1的。
步骤206:根据应答信息判断从机是否获取到自所述步骤205所获取的待发送有效数据帧,若判断为是,则
步骤207:将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
具体而言,在发送帧序号为1的待发送有效数据帧时理论上获取的应答信息应该包括帧序号2的信息,如果步骤206中获取的应答信息包括帧序号为2的信息,则判断获取到自所述步骤205所获取的待发送有效数据帧。
此时,进行步骤207,将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
也就是说,在进行发送过程中,如果仅丢失一个或者多个应答丢失,但是后续的应答没问题的情况,则认为还是正常状态。
只有在发送0、1、2、3、4时全部丢失时才认为出现问题。
参见图7,在本实施例中,所述步骤206进一步包括:
若所述判断为否,则
步骤208:周期性重复所述步骤205至步骤206,若任意一次步骤206中判断为是,则停止周期性重复所述步骤205至步骤206,并进行步骤207。
举例来说,在本实施例中,一个缓存池中一共5个待发送有效数据帧,例如,各个待发送有效数据帧的帧序号分别为0、1、2、3、4,此时,首先进行步骤204,然后判断为否,此时进行步骤205,即将帧序号为1的也发送,如果此时步骤206还判断为否,那么重复步骤205至206,也就是发送完帧序号1后发送帧序号为2的待发送有效数据帧,然后再获取应答信息,如果步骤206判断还是否,则发送完帧序号2后发送帧序号为3的待发送有效数据帧,以此类推,直至步骤206中判断为是或者整个缓存池中的待发送有效数据帧都发送完一遍。
采用这种方式的好处在于,即使在发送0、1、2、3时全部丢失,如果在发送4的时候获取的应答信息包括帧序号为5的信息,则也认为是正常状态。
举例来说,在本实施例中,假设在发送帧序号为0、1、2、3所对应的待发送有效数据帧时全部丢失,如果在发送帧序号为4的有效数据帧的时候获取的应答信息包括帧序号为5的信息,则认为是正常状态,此时,进行步骤207,在此时,步骤207为:将0、1、2、3、4全部从缓存中删除,并获取新的待发送有效数据帧,因为本申请的帧序号从0到7中往复时,则更新后的缓存池中的帧序号应该是5、6、7、0、1。
在另一个实施例中,假设在发送帧序号为0、1、2所对应的待发送有效数据帧时全部丢失,如果在发送帧序号为3的时候获取的应答信息包括帧序号为4的信息,则认为是正常状态,此时,进行步骤207,在此时,步骤207为:将帧序号为0、1、2、3所对应的待发送有效数据帧全部从缓存中删除,并获取新的待发送有效数据帧,因为本申请的帧序号从0到7中往复时,则更新后的缓存池中的待发送有效数据帧的帧序号应该是4、5、6、7、0。
在本实施例中,如果步骤206中全部判断为否,即在发送0、1、2、3、4时全部丢失,此时,不继续发送,保持等待,即在预设时间后重新重复所述步骤205。例如,发送数据50ms后没有收到正确的应答信息则重传未应答帧之后的所有帧,当收到的应答帧序号为期望的值后按照正常流程发送。
参见图8,在本实施例中,应答信息进一步包括重发信号,当在执行所述步骤204之前,所述应答信息为重发信号时,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略进一步包括:
在执行所述步骤204之前,增加步骤209:重新发送所述首先进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息。
在本实施例中,应答信息进一步包括重发信号,当在执行所述步骤206之前,所述应答信息为重发信号时,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略进一步包括:
在执行所述步骤206之前,增加步骤210:重新发送重发信号之前所发送的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息。
举例来说,在某些情况下,主机向从机发送了某一待发送有效数据帧(例如发送帧序号为1的待发送有效数据帧),此时,从机获取到并将该待发送有效数据帧解析后发现接收到的“发送帧”序号不是预期的帧序号(例如理论上应该接收的帧序号为1,但是结果是3)或者接收数据异常(CRC校验错误),舍弃整帧(帧序号为1的待发送有效数据帧),通过应答信息回复重传帧,主机收到后重新发送所述刚刚发送的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息,图7是主机接收从机发送的帧0数据校验错误。
参见图9,在一个实施例中,主机还可能出现重复发送的情况,例如,主机第一次先发送了发送帧序号为1的待发送有效数据帧,在下一次又发送了帧序号为1的待发送有效数据帧,此时,从机收到重复的帧序号,从机丢弃该帧不做任何处理。例如:从机接收到帧序号为0,1的待发送有效数据帧后,再收到帧序号为1的待发送有效数据帧后,此时期待收到是帧序号为2的待发送有效数据帧,则丢弃此次帧1,就当没收到一样,下一帧回复的应答帧序号维持不变。
需要说明的是,前述对方法实施例的解释说明也适用于本实施例的系统,此处不再赘述。
本申请还提供了一种基于SPI通信的通信主机,包括存储器、处理器以及存储在存储器中并能够在处理器上运行的计算机程序,处理器执行计算机程序时实现如上的基于SPI通信的数据帧发送方法。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时能够实现如上的基于SPI通信的数据帧发送方法。
图3是能够实现根据本申请一个实施例提供的基于SPI通信的数据帧发送方法的电子设备的示例性结构图。
如图3所示,电子设备包括输入设备501、输入接口502、中央处理器503、存储器504、输出接口505以及输出设备506。其中,输入接口502、中央处理器503、存储器504以及输出接口505通过总线507相互连接,输入设备501和输出设备506分别通过输入接口502和输出接口505与总线507连接,进而与电子设备的其他组件连接。具体地,输入设备504接收来自外部的输入信息,并通过输入接口502将输入信息传送到中央处理器503;中央处理器503基于存储器504中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器504中,然后通过输出接口505将输出信息传送到输出设备506;输出设备506将输出信息输出到电子设备的外部供用户使用。
也就是说,图3所示的电子设备也可以被实现为包括:存储有计算机可执行指令的存储器;以及一个或多个处理器,该一个或多个处理器在执行计算机可执行指令时可以实现结合图1描述的基于SPI通信的数据帧发送方法。
在一个实施例中,图3所示的电子设备可以被实现为包括:存储器504,被配置为存储可执行程序代码;一个或多个处理器503,被配置为运行存储器504中存储的可执行程序代码,以执行上述实施例中的基于SPI通信的数据帧发送方法。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动,媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数据多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
此外,显然“包括”一词不排除其他单元或步骤。装置权利要求中陈述的多个单元、模块或装置也可以由一个单元或总装置通过软件或硬件来实现。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,模块、程序段、或代码的一部分包括一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地标识的方框实际上可以基本并行地执行,他们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或总流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本实施例中所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现装置/终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在本实施例中,装置/终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。本申请虽然以较佳实施例公开如上,但其实并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此,本申请的保护范围应当以本申请权利要求所界定的范围为准。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
此外,显然“包括”一词不排除其他单元或步骤。装置权利要求中陈述的多个单元、模块或装置也可以由一个单元或总装置通过软件或硬件来实现。
虽然,上文中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (10)
1.一种基于SPI通信的数据帧发送方法,其特征在于,所述基于SPI通信的数据帧发送方法包括:
步骤1:从缓存池中缓存至少一个待发送有效数据帧,所述待发送有效数据帧包括发送帧序号以及接收帧序号;
步骤2:将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略。
2.如权利要求1所述的基于SPI通信的数据帧发送方法,其特征在于,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略包括:
步骤201:将首先进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息;
步骤202:根据应答信息判断从机是否获取到该首先进入缓存池的待发送有效数据帧,若是,则
步骤203:将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
3.如权利要求2所述的基于SPI通信的数据帧发送方法,其特征在于,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略进一步包括:
步骤204:根据应答信息判断从机是否获取到该首先进入缓存池的待发送有效数据帧,若否,则
步骤205:按照进入缓存池的待发送有效数据帧的顺序,将已经发送的待发送有效数据帧之后的下一个进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息;
步骤206:根据应答信息判断从机是否获取到自所述步骤205所获取的待发送有效数据帧,若判断为是,则
步骤207:将已经发送的待发送有效数据帧删除并获取新的待发送有效数据帧。
4.如权利要求3所述的基于SPI通信的数据帧发送方法,其特征在于,所述步骤206进一步包括:
若所述判断为否,则
步骤208:周期性重复所述步骤205至步骤206,若任意一次步骤206中判断为是,则停止周期性重复所述步骤205至步骤206,并进行步骤207。
5.如权利要求4所述的基于SPI通信的数据帧发送方法,其特征在于,所述步骤208进一步包括:
若没有任何一次步骤206中判断为是,则在预设时间后重新重复所述步骤205。
6.如权利要求5所述的基于SPI通信的数据帧发送方法,其特征在于,所述应答信息包括空应答信号,当所述应答信号为空应答信号时,所述步骤204、步骤206中的判断结果为否。
7.如权利要求5所述的基于SPI通信的数据帧发送方法,其特征在于,所述应答信息进一步包括重发信号,当在执行所述步骤204之前,所述应答信息为重发信号时,所述步骤2:将缓存的待发送有效数据帧依照帧序号的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略进一步包括:
在执行所述步骤204之前,增加步骤209:重新发送所述首先进入缓存池的待发送有效数据帧发送给所述从机并获取从机所传递的应答信息。
8.一种基于SPI通信的通信主机,其特征在于,基于SPI通信的通信主机包括:
待发送有效数据帧获取模块,所述待发送有效数据帧获取模块用于从缓存池中缓存至少一个待发送有效数据帧,所述待发送有效数据帧包括发送帧序号以及接收帧序号;
发送执行模块,所述发送执行模块用于将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机,并在每次发送时同时接收从机返回的应答信息,根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及发送给从机的发送策略。
9.一种基于SPI通信的通信方法,其特征在于,所述基于SPI通信的通信方法包括:
主机从缓存池中缓存至少一个待发送有效数据帧,所述待发送有效数据帧包括发送帧序号以及接收帧序号;
主机将缓存的待发送有效数据帧依照进入缓存池中的顺序依次发送给从机;
从机在每次主机发送待发送有效数据帧时将生成的应答信息发送给主机;其中,
主机在每次接收从机返回的应答信息后根据每次获取的应答信息调整所述缓存池中的待发送有效数据帧以及下一次发送给从机的发送策略。
10.一种基于SPI通信的通信系统,其特征在于,所述基于SPI通信的通信系统包括主机以及从机,其中,所述主机以及所述从机配合实现如权利要求9所述的基于SPI通信的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410025079.7A CN117978327A (zh) | 2024-01-08 | 2024-01-08 | 基于spi通信的数据帧发送方法、装置、通信方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410025079.7A CN117978327A (zh) | 2024-01-08 | 2024-01-08 | 基于spi通信的数据帧发送方法、装置、通信方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117978327A true CN117978327A (zh) | 2024-05-03 |
Family
ID=90850784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410025079.7A Pending CN117978327A (zh) | 2024-01-08 | 2024-01-08 | 基于spi通信的数据帧发送方法、装置、通信方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117978327A (zh) |
-
2024
- 2024-01-08 CN CN202410025079.7A patent/CN117978327A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11990999B2 (en) | Method and apparatus for feeding back hybrid automatic repeat request of downlink data | |
CN110460412B (zh) | 用于数据传输的方法和rdma网卡 | |
CN113852563B (zh) | 报文数据传输方法、装置、终端设备及可读存储介质 | |
WO2018201829A1 (zh) | 一种传输方法、终端设备及基站 | |
CN114244780B (zh) | 一种数据传输方法、数据传输装置和相关设备 | |
CN115276920A (zh) | 音频数据处理方法、装置、电子设备及存储介质 | |
CN103684707A (zh) | 服务端、用户端消息传输处理方法、消息传输方法及系统 | |
CN111181698B (zh) | 数据处理方法、装置、设备及介质 | |
JP7210867B2 (ja) | 確認パケット伝送方法および通信デバイス | |
CN117978327A (zh) | 基于spi通信的数据帧发送方法、装置、通信方法及系统 | |
CN112636876A (zh) | 机会包重传 | |
CN108347312B (zh) | 控制信息的发送及接收方法、网络设备及终端设备 | |
CN112769527B (zh) | 基于码块组的harq-ack反馈方法、装置及终端 | |
EP3979731A1 (en) | Method and device for feeding back sidelink transmission state | |
CN113055133B (zh) | 混合自动重传请求harq响应方法、装置、设备及介质 | |
JP3217397B2 (ja) | 通信制御装置のデータ送信方法 | |
CN114666007B (zh) | Uart通信方法、装置、设备及存储介质 | |
WO2023284460A1 (zh) | 数据传输方法、数据接收方法、装置、电子设备和存储介质 | |
CN113517953B (zh) | Csi报告有效性的确定方法及装置、存储介质 | |
CN114337921B (zh) | 一种数据传输方法、数据传输装置和相关设备 | |
US20230062868A1 (en) | Communication apparatus and method having data transmission sorting mechanism | |
CN109792332B (zh) | 反馈应答信息的传输方法、终端、网络设备和存储介质 | |
JP3182235B2 (ja) | 多重伝送システム | |
US10938516B1 (en) | Systems and methods for ethernet packet error detection and correction in automotive environments | |
CN116488778A (zh) | 一种数据通信方法、装置及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |