CN117544691A - 一种车载控制器数据分包发送方法及接收方法 - Google Patents
一种车载控制器数据分包发送方法及接收方法 Download PDFInfo
- Publication number
- CN117544691A CN117544691A CN202311569457.XA CN202311569457A CN117544691A CN 117544691 A CN117544691 A CN 117544691A CN 202311569457 A CN202311569457 A CN 202311569457A CN 117544691 A CN117544691 A CN 117544691A
- Authority
- CN
- China
- Prior art keywords
- data packet
- byte
- bytes
- bits
- vehicle
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 abstract description 2
- 238000012795 verification Methods 0.000 abstract 1
- 238000003491 array Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种车载控制器数据分包发送方法,包括:生成第一数据包;将第一数据包中每一个字节的高4位和低4位分别提取出来,然后乘以16,形成2N个新字节并按序排列形成第二数据包;在第二数据包的第一个字节之前,插入一个值为2N+1的字节,形成第三数据包;对第三数据包中最后一个字节的低四位赋值为2,形成第四数据包;在第四数据包中执行第一校验算法形成第五数据包;将第五数据包周期性地发送出去。本发明能较好地实现从缓存队列中提取完整数据帧的功能,可以大幅度提供传统串口通讯的数据吞吐能力和信号实时性,不再需要采用“请求‑响应”的模式;可以使低成本串口通讯的性能达到实时总线的水准,满足车载ECU高速、低成本的通讯任务需求。
Description
技术领域
本发明属于数据传输领域,具体涉及一种车载控制器数据分包发送方法及接收方法。
背景技术
在汽车ECU之间,数据发送与接收领域,如果通信双方或多方,具备OSI的多个层级,一般不存在数据解析困难,比如CAN总线。
CAN总线收发器可自动识别帧头、帧结束,并自动识别数据的完整性。
但是对于低成本通讯协议应用领域,比如电机控制器信号板和功率板之间通讯,一般只具备OSI的物理层,TTL串口协议,该协议的所有数据均体现为普通字节,不具备OSI链路层的自动识别功能,因此,其存在以下应用难题:
1、多个数据包累积在一起,无法有效识别帧头、帧尾、完整数据包长度。如每个数据包为10个字节,接收缓存区有2000个字节,且包含损坏数据,则很难从中提取出所有完整数据包。
2、数据在发送与接收过程中的突变错误。
发明内容
本发明的目的在于,提供一种车载控制器数据分包发送方法及接收方法,能保证高吞吐量数据下对数据包的快速提取,还能自动剔除损坏数据。
为解决上述技术问题,本发明的技术方案为:
一种车载控制器数据分包发送方法,
生成第一数据包,其中第一数据包包含N个字节,N≤127;
将第一数据包中每一个字节的高4位和低4位分别提取出来,然后乘以16,形成2N个新字节并按序排列形成第二数据包;
在第二数据包的第一个字节之前,插入一个值为2N+1的字节,形成第三数据包;
对第三数据包中最后一个字节的低四位赋值为2,形成第四数据包;
在第四数据包中执行第一校验算法,第一校验算法的执行步骤具体为除插入的值为2N+1的字节之外,对第1至第2N的字节做CRC校验,生成1个字节的校验码,将该校验码字节的高四位、低四位分别乘以16,形成2个字节并添加到第四数据包末尾形成第五数据包;将第五数据包周期性地发送出去。
还提供一种车载控制器的信号发送端,包括信号发送ECU,信号发送ECU被调用以完成上述所述的车载控制器数据分包发送方法。
还提供一种车载控制器数据分包接收方法,通过如上述所述的车载控制器数据分包发送方法生成第五数据包;本接收方法包括:
周期性地接收第五数据包并存储在自身缓存区中;
按序读取自身缓存区中的字节数据,当检测到当前字节的最低位为1时,则认为检测到了帧头,将当前字节的高7位取出并乘以2,得到的字节数量即为2N;
执行第二校验算法,第二校验算法的执行步骤具体为读取2N个连续字节且当最后一个字节的最低两位值为2时,继续读取2个字节并将这2个字节的高四位分别取出形成一个新字节的高四位和低四位,将新字节作为第一CRC校验码,此时第二校验算法结束;
对接收到的2N个字节先后执行第一校验算法和第二校验算法,得到第二CRC校验码,比较第一CRC校验码和第二CRC校验码,若两者相等,则认为该数据包完整正确。
还包括以下步骤:当一直未读取达到2N个连续字节时,则继续扫描读取。
还包括以下步骤:读取2N个连续字节且当最后一个字节的最低两位值不为2时,则认为该段连续字节数据损坏,将该段连续字节丢弃,等待检测到下一个最低位1的字节。
还提供一种车载控制器的信号接收端,包括信号接收ECU,信号接收ECU被调用以完成如上述所述的车载控制器数据分包接收方法。
还包括:当信号接收端一直未读取达到2N个连续字节时,则继续扫描读取。
还包括:当信号接收端读取2N个连续字节且当最后一个字节的最低两位值不为2时,则认为该段连续字节数据损坏,将该段连续字节丢弃,等待检测到下一个最低位1的字节。
还提供一种车辆,包括如上述所述的一种车载控制器的信号发送端以及如上述任一项所述的一种车控制器的信号接收端。
与现有技术相比,本发明的有益效果为:
本发明能较好地实现从缓存队列中提取完整数据帧的功能,可以大幅度提供传统串口通讯的数据吞吐能力和信号实时性,不再需要采用“请求-响应”的模式;可以使低成本串口通讯的性能达到实时总线的水准,满足车载ECU高速、低成本的通讯任务需求。
附图说明
图1为本发明实施例中车载控制器数据分包发送方法的流程示意图;
图2为本发明实施例中车载控制器数据分包接收方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的技术方案为:
实施例1:
如图1所示,一种车载控制器数据分包发送方法,
生成第一数据包,其中第一数据包包含N个字节,N≤127;
将第一数据包中每一个字节的高4位和低4位分别提取出来,然后乘以16,形成2N个新字节并按序排列形成第二数据包;
在第二数据包的第一个字节之前,插入一个值为2N+1的字节,形成第三数据包;
对第三数据包中最后一个字节的低四位赋值为2,形成第四数据包;
在第四数据包中执行第一校验算法,第一校验算法的执行步骤具体为除插入的值为2N+1的字节之外,对第1至第2N的字节做CRC校验,生成1个字节的校验码,将该校验码字节的高四位、低四位分别乘以16,形成2个字节并添加到第四数据包末尾形成第五数据包;将第五数据包周期性地发送出去。
以及一种车载控制器的信号发送端,包括信号发送ECU,信号发送ECU被调用以完成上述所述的车载控制器数据分包发送方法。
实施例2:
如图2所示,一种车载控制器数据分包接收方法,通过如实施例1所述的车载控制器数据分包发送方法生成第五数据包;本接收方法包括:
周期性地接收第五数据包并存储在自身缓存区中;
按序读取自身缓存区中的字节数据,当检测到当前字节的最低位为1时,则认为检测到了帧头,将当前字节的高7位取出并乘以2,得到的字节数量即为2N;
执行第二校验算法,第二校验算法的执行步骤具体为读取2N个连续字节且当最后一个字节的最低两位值为2时,继续读取2个字节并将这2个字节的高四位分别取出形成一个新字节的高四位和低四位,将新字节作为第一CRC校验码,此时第二校验算法结束;
对接收到的2N个字节先后执行第一校验算法和第二校验算法,得到第二CRC校验码,比较第一CRC校验码和第二CRC校验码,若两者相等,则认为该数据包完整正确。
还包括以下步骤:当一直未读取达到2N个连续字节时,则继续扫描读取。
还包括以下步骤:读取2N个连续字节且当最后一个字节的最低两位值不为2时,则认为该段连续字节数据损坏,将该段连续字节丢弃,等待检测到下一个最低位1的字节。
以及一种车载控制器的信号接收端,包括信号接收ECU,信号接收ECU被调用以完成如上述所述的车载控制器数据分包接收方法。
还包括:当信号接收端一直未读取达到2N个连续字节时,则继续扫描读取。
还包括:当信号接收端读取2N个连续字节且当最后一个字节的最低两位值不为2时,则认为该段连续字节数据损坏,将该段连续字节丢弃,等待检测到下一个最低位1的字节。
具体实现步骤如下:
假设信号接收端(信号接收ECU,具体为电机控制器信号板)负责接收,信号发送端(信号发送ECU,具体为电机控制器功率板)负责发送,单向通信。
对于信号发送端而言,假设信号发送端发送的第一数据包K1,包含N个字节,N≤127。
第一步,将K1中N个字节中的每一个字节,高4位和低4位分别提取出来,然后乘以16,形成2N个新的字节,称为第二数据包K2。
第二步,在K2的第一个字节之前,插入一个新的字节,其值为N*2+1,称为第三数据包K3.
第三步,对K3的最后一个字节的低四位赋值为2,称为第四数据包K4.
第四步,对新的K4的第1(索引从0开始)至第2N的字节,做CRC检验,生成一个字节的校验码,将该检验码字节的高四位、低四位分别乘以16,形成两个字节数组,添加到K4末尾。处理后的字节数组,称为第五数据包K5.
信号发送端周期性地发送K5。
对于信号接收端而言,需解析自身缓存区的数据。一般而言,缓存区会不断地有数据进来。
第五步,信号接收端一个个读取自身缓存区的字节数据,检测到当前字节的最低位为1,则认为检测到了帧头,将该字节的高7位取出,乘以2,即为信号发送端发送数据包的字节数量(不包含CRC校验字节),设置其值为2N。
第六步,信号接收端读取2N个连续的数据字节,并核对该2N个字节数组中,最后一个字节的低四位值为2,如一直未读取够2N个字节,则一直扫描读取。
如果收到的2N个字节数组,最后一个字节的低四位的值不等于2,则认为数据损坏,直接整体丢弃,等待下一个最低位为1的字节(帧头)。
若信号接收端成功收到了2N个连续字节的字节数组,且其最后一个字节的最低两位值为2,则信号接收端继续再读取两个字节,把其中第一、第二个字节的高四位分别取出,使其成为一个新的字节的高四位、低四位,这个新的字节即为信号接收端收到的信号发送端发来的第一CRC校验码M1。
信号接收端采用和信号发送端相同校验算法,对该2N个字节计算出第二CRC校验码M2,和上述M1进行对比,若相等,则认为该数据包完整、正确。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种车载控制器数据分包发送方法,其特征在于,
生成第一数据包,其中第一数据包包含N个字节,N≤127;
将第一数据包中每一个字节的高4位和低4位分别提取出来,然后乘以16,形成2N个新字节并按序排列形成第二数据包;
在第二数据包的第一个字节之前,插入一个值为2N+1的字节,形成第三数据包;
对第三数据包中最后一个字节的低四位赋值为2,形成第四数据包;
在第四数据包中执行第一校验算法,第一校验算法的执行步骤具体为除插入的值为2N+1的字节之外,对第1至第2N的字节做CRC校验,生成1个字节的校验码,将该校验码字节的高四位、低四位分别乘以16,形成2个字节并添加到第四数据包末尾形成第五数据包;将第五数据包周期性地发送出去。
2.一种车载控制器的信号发送端,其特征在于,包括信号发送ECU,信号发送ECU被调用以完成权利要求1所述的车载控制器数据分包发送方法。
3.一种车载控制器数据分包接收方法,其特征在于,通过如权利要求1所述的车载控制器数据分包发送方法生成第五数据包;本接收方法包括:
周期性地接收第五数据包并存储在自身缓存区中;
按序读取自身缓存区中的字节数据,当检测到当前字节的最低位为1时,则认为检测到了帧头,将当前字节的高7位取出并乘以2,得到的字节数量即为2N;
执行第二校验算法,第二校验算法的执行步骤具体为读取2N个连续字节且当最后一个字节的最低两位值为2时,继续读取2个字节并将这2个字节的高四位分别取出形成一个新字节的高四位和低四位,将新字节作为第一CRC校验码,此时第二校验算法结束;
对接收到的2N个字节先后执行第一校验算法和第二校验算法,得到第二CRC校验码,比较第一CRC校验码和第二CRC校验码,若两者相等,则认为该数据包完整正确。
4.根据权利要求3所述的一种车载控制器数据分包接收方法,其特征在于,还包括以下步骤:当一直未读取达到2N个连续字节时,则继续扫描读取。
5.根据权利要求3所述的一种车载控制器数据分包接收方法,其特征在于,还包括以下步骤:读取2N个连续字节且当最后一个字节的最低两位值不为2时,则认为该段连续字节数据损坏,将该段连续字节丢弃,等待检测到下一个最低位1的字节。
6.一种车载控制器的信号接收端,其特征在于,包括信号接收ECU,信号接收ECU被调用以完成权利要求3所述的车载控制器数据分包接收方法。
7.根据权利要求6所述的一种车载控制器的信号接收端,其特征在于,还包括:当信号接收端一直未读取达到2N个连续字节时,则继续扫描读取。
8.根据权利要求6所述的一种车载控制器的信号接收端,其特征在于,还包括:当信号接收端读取2N个连续字节且当最后一个字节的最低两位值不为2时,则认为该段连续字节数据损坏,将该段连续字节丢弃,等待检测到下一个最低位1的字节。
9.一种车辆,其特征在于,包括如权利要求2所述的一种车载控制器的信号发送端以及如权利要求6-8任一项所述的一种车控制器的信号接收端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311569457.XA CN117544691A (zh) | 2023-11-21 | 2023-11-21 | 一种车载控制器数据分包发送方法及接收方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311569457.XA CN117544691A (zh) | 2023-11-21 | 2023-11-21 | 一种车载控制器数据分包发送方法及接收方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117544691A true CN117544691A (zh) | 2024-02-09 |
Family
ID=89795463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311569457.XA Pending CN117544691A (zh) | 2023-11-21 | 2023-11-21 | 一种车载控制器数据分包发送方法及接收方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117544691A (zh) |
-
2023
- 2023-11-21 CN CN202311569457.XA patent/CN117544691A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7844884B2 (en) | Apparatus and method for processing bursts in a wireless communication system | |
CN100576820C (zh) | 与帧集合一起使用的mac报头压缩 | |
CN112532371B (zh) | 并行帧同步方法、发送端、接收端及低轨卫星通信系统 | |
CN110881214A (zh) | 一种无线传感器网络的时间同步方法 | |
WO2010138594A2 (en) | Apparatus and method for supporting higher data rates on links with variable frame sizes | |
CN101171790A (zh) | 具有适应性选通偏移调整功能的接收机 | |
CN114301576B (zh) | 用于在ieee 802.15.4网络中生成和发送应答帧的方法及通信装置 | |
WO2022062946A1 (zh) | 一种数据编码方法、数据解码方法及通信装置 | |
CN109728879B (zh) | 串口突发接入应用层slip协议报文同步纠错方法 | |
US20050013313A1 (en) | Method for encapsulating data streams | |
CN117544691A (zh) | 一种车载控制器数据分包发送方法及接收方法 | |
CN111770055A (zh) | 一种应用于电能表的多协议通讯帧快速判别方法 | |
CN115913473B (zh) | 一种数据选择性重传方法及其系统、存储介质、电子设备 | |
CN113541874A (zh) | 一种数据传输方法及网络设备 | |
CN113688083B (zh) | 一种基于同步422接口的数据帧头识别系统及方法 | |
US7554977B2 (en) | Method and apparatus for indicating packet boundaries in frames | |
CN100444595C (zh) | 一种主从设备通信方法 | |
CN111601342B (zh) | 一种基于位错误的低速无线个域网错误数据包恢复方法 | |
CN114885043B (zh) | 一种自适应前传协议的接口系统及方法 | |
US8798096B2 (en) | Method for configuring preamble for communication system, preambler, and apparatus for generating packet using the same | |
US8279894B2 (en) | Method and device for data packet assembly | |
CN117834085A (zh) | 一种基于usrp的自适应调制编码方法 | |
CN117938570A (zh) | 车辆混合总线报文转发方法、系统及车辆 | |
CN111211868A (zh) | 链路层芯片接收数据包的测试方法、系统及电子设备 | |
CN112887059A (zh) | 一种扩展mac帧格式带内传输流控数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |