CN109889418B - 基于can总线的数据传输方法和装置 - Google Patents
基于can总线的数据传输方法和装置 Download PDFInfo
- Publication number
- CN109889418B CN109889418B CN201811632819.4A CN201811632819A CN109889418B CN 109889418 B CN109889418 B CN 109889418B CN 201811632819 A CN201811632819 A CN 201811632819A CN 109889418 B CN109889418 B CN 109889418B
- Authority
- CN
- China
- Prior art keywords
- data
- sent
- check
- sub
- bus
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于CAN总线的数据传输方法和装置,该方法包括:将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据;其中,n和m为大于零的正整数;对所述合并数据进行校验,得到校验数据;将所述校验数据划分为m+1块子校验数据,并将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。本发明提供的基于CAN总线的数据传输方法和装置,能够使得每帧数据中可以携带的有效数据量增多,由此可以提高数据带宽的利用率。
Description
技术领域
本发明涉及通信技术,尤其涉及一种基于CAN总线的数据传输方法和装置。
背景技术
控制器局域网络(controller area network;CAN)总线是汽车领域广泛使用的总线***,相较于RS-485基于R线构建的分布式控制***而言,基于CAN总线的分布式控制***的网络节点之间的数据通信实时性较强,且开发周期短。
图1a为现有技术中数据传输的示意图,图1b为现有技术中传输校验数据的示意图。如图1a所示,CAN总线每一帧的数据域最长为8byte,在不进行数据校验的情况下,8byte的数据域全部用于传输有效数据。如图1b所示,在对数据传输安全有要求的场合中,通常是通过对数据使用校验算法,计算出校验数据,并将需要发送的有效数据和计算出的校验数据一并写入帧的数据域中进行发送。这样,接收到该帧的节点就可以通过计算校验数据,来验算有效数据是否发生了传输错误。
然而,采用上述方式,由于校验数据会占用CAN总线中一部分的数据域,导致每帧中携带的有效数据量下降,从而降低了数据带宽的利用率。
发明内容
为解决现有技术中存在的问题,本发明提供一种基于CAN总线的数据传输方法和装置。
第一方面,本发明实施例提供一种基于CAN总线的数据传输方法,包括:
将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据;其中,n和m为大于零的正整数;
对所述合并数据进行校验,得到校验数据;
将所述校验数据划分为m+1块子校验数据,并将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。
在一种可能的实现方式中,所述待发送数据包中包括指示信息,所述指示信息用于指示所述待发送数据包中是否携带有第一块所述子校验数据。
在一种可能的实现方式中,所述将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端,包括:
将所述m+1块子校验数据分别携带在第n+1个待发送数据包至第n+m+1个待发送数据包中,通过CAN总线发送给所述接收端。
在一种可能的实现方式中,所述对所述合并数据进行校验,得到校验数据,包括:
根据校验算法对所述合并数据进行校验,得到校验数据。
在一种可能的实现方式中,所述校验算法包括循环校验码CRC8算法。
在一种可能的实现方式中,所述将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据,包括:
确定所述校验算法所支持的数据长度;
根据所述数据长度,将所述第n个待发送数据包至所述第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据。
第二方面,本发明实施例提供一种基于CAN总线的数据传输装置,包括:
合并模块,用于将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据;其中,n和m为大于零的正整数;
校验模块,用于对所述合并数据进行校验,得到校验数据;
划分模块,用于将所述校验数据划分为m+1块子校验数据;
发送模块,用于将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。
在一种可能的实现方式中,所述待发送数据包中包括指示信息,所述指示信息用于指示所述待发送数据包中是否携带有第一块所述子校验数据。
在一种可能的实现方式中,所述发送模块,具体用于:
将所述m+1块子校验数据分别携带在第n+1个待发送数据包至第n+m+1个待发送数据包中发送给所述接收端。
在一种可能的实现方式中,所述校验模块,具体用于:
根据校验算法对所述合并数据进行校验,得到校验数据。
在一种可能的实现方式中,所述校验算法包括循环校验码CRC8算法。
在一种可能的实现方式中,所述合并模块,具体用于:
确定所述校验算法所支持的数据长度;
根据所述数据长度,将所述第n个待发送数据包至所述第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据。
第三方面,本发明实施例提供一种终端设备,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面所述的方法的指令。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得终端设备执行第一方面所述的方法。
本发明提供的基于CAN总线的数据传输方法和装置,通过将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据,其中,n和m为大于零的正整数;然后对合并数据进行校验,得到校验数据,再将校验数据划分为m+1块子校验数据,并将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。由于将校验数据划分为m+1块子校验数据后,将各块子校验数据分别携带在不同的待发送数据包中发送给接收端,这样可以减少校验数据在每帧数据域中占用的长度,从而使得每帧数据中可以携带的有效数据量增多,由此可以提高数据带宽的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a为现有技术中数据传输的示意图;
图1b为现有技术中传输校验数据的示意图;
图2为本发明实施例提供的基于CAN总线的数据传输方法的一种可能的应用场景示意图;
图3为本发明实施例提供的基于CAN总线的数据传输方法实施例一的流程示意图;
图4为本发明中数据包的发送示意图;
图5为本发明基于CAN总线的数据传输装置实施例一的结构示意图;
图6A示出了本发明终端设备的一种可能的结构示意图;
图6B示出了本发明终端设备的另一种可能的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供的基于CAN总线的数据传输方法,可以应用于对数据进行校验后,通过CAN总线传输校验数据和有效数据的应用场景中,尤其应用于车载计算单元(ACU-Basic)中通过CAN总线传输校验数据和有效数据的场景中。图2为本发明实施例提供的基于CAN总线的数据传输方法的一种可能的应用场景示意图,如图2所示,发送端和接收端可以为控制器芯片,也可以为独立的设备,其中,发送端和接收端之间通过CAN总线通信。
由于自动呼叫装置(automatic calling unit;ACU)功能安全要求的提高,越来越多的总线数据需要进行数据正确性校验,校验数据所占用的固定带宽开销没有任何实际价值,但却挤占了有效数据的传输能力,导致每帧中携带的有效数据量下降,从而降低了数据带宽的利用率。
本发明实施例中考虑到这一问题,提出一种基于CAN总线的数据传输方法,通过将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据,其中,n和m为大于零的正整数;然后对合并数据进行校验,得到校验数据,再将校验数据划分为m+1块子校验数据,并将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。由于将校验数据划分为m+1块子校验数据后,将各块子校验数据分别携带在不同的待发送数据包中发送给接收端,这样可以减少校验数据在每帧数据域中占用的长度,从而使得每帧数据中可以携带的有效数据量增多,由此可以提高数据带宽的利用率。
下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图3为本发明实施例提供的基于CAN总线的数据传输方法实施例一的流程示意图,本发明实施例提供了一种基于CAN总线的数据传输方法,该方法可以由任意执行基于CAN总线的数据传输方法的装置来执行,该装置可以通过软件和/或硬件实现。本实施例中,该装置可以集成在终端设备中。如图3所示,在图2所示应用场景的基础上,本发明实施例提供的基于CAN总线的数据传输方法包括如下步骤:
步骤301:将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据。
其中,n和m为大于零的正整数。
在本步骤中,第n个待发送数据包是指即将发送的第n帧待发送数据包,第n+m个待发送数据包是指即将发送的第n+m帧待发送数据包。发送端在通过CAN总线向接收端发送数据时,可以先分别获取第n个待发送数据包至第n+m个待发送数据包中携带的有效数据,并将获取到的有效数据进行合并。
其中,在一种可能的实现方式中,对第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,可以是将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据按照发送顺序进行拼接。举例来说,若第n个待发送数据包中的有效数据包括A1和A2,第n+1个待发送数据包中的有效数据包括B1、B2和B3,……,第n+m个待发送数据包中携带的有效数据包括C1和C2,则对有效数据进行合并之后,得到的合并数据可以为A1、A2、B1、B2、B3,……,C1和C2。当然,还可以按照其他方式对有效数据进行合并,如对各待发送数据包中携带的有效数据进行组合等,对于具体的合并方式,本发明实施例在此不做限制。
进一步地,n和m的取值可以为大于零的正整数,如n和m的值均为1等。
可选的,在将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并时,可以通过确定校验算法所支持的数据长度,并根据该数据长度,将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据。
具体的,在对数据进行校验时,会由于数据的不同或者校验目的的不同,通常会选用不同的校验算法,在选定校验算法后,再确定该校验算法所支持的数据长度。例如:CRC8算法所支持的数据长度为8bit,CRC16算法所支持的数据长度为16bit,CRC32算法所支持的数据长度为32bit等等。
在确定出校验算法所支持的数据长度后,根据每一帧待发送数据包中有效数据的长度,确定m的值,从而可以将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并。例如:假设发送端采用CRC8算法,该CRC8算法所支持的数据长度为8bit,且每帧数据中的有效数据为4bit,则发送端即可确定m为1,即发送端将即将发送的本帧待发送数据包和下一帧待发送数据包中的有效数据进行合并,得到合并数据。
在本实施例中,由于在确定出校验算法所支持的数据长度后,根据该数据长度,将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,从而可以保证数据校验的准确性。
步骤302:对合并数据进行校验,得到校验数据。
在本步骤中,在对数据传输的安全性要求较高的场景中,通常需要进行数据正确性的校验。具体的,发送端在将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据之后,将采用校验算法对合并数据进行校验,从而得到校验数据。
可选的,上述的校验算法可以包括循环校验码CRC8算法,当然,也可以包括其他校验算法,如奇偶校验算法、海明码校验算法或哈希算法等。在具体的实现过程中,可以根据实际情况选择合适的校验算法对合并数据进行校验。
另外,本领域技术人员可以理解,无论待校验数据的长度是多少,采用校验算法对数据进行校验之后,得到的校验数据的长度是相同的。也就是说,对一帧数据进行校验之后得到的校验数据的长度,与对n+m帧数据进行校验之后得到的校验数据的长度相同。
步骤303:将校验数据划分为m+1块子校验数据,并将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。
在本步骤中,在对合并数据进行校验,得到校验数据后,可以将校验数据进行划分,如划分为m+1块子校验数据,然后将m+1块子校验数据分别携带在即将发送的数据包中发送给接收端。相较于现有技术中,将每一帧数据的校验数据都携带在该帧数据域中进行发送的方式,本实施例中可以将相同长度的校验数据分散携带在多帧数据包中进行发送。这样,每一帧中携带的校验数据的数量将会减少,降低了校验数据在每帧数据域中所占用的长度,从而使得每帧数据中可以携带的有效数据量增多,由此可以提高数据带宽的利用率。
在一种可能的实现方式中,将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端时,可以将m+1块子校验数据分别携带在第n+1个待发送数据包至第n+m+1个待发送数据包中,通过CAN总线发送给接收端。
具体的,在将校验数据划分为m+1块子校验数据后,由于此时第n个待发送数据包已经发送给了接收端,因此,发送端会将划分后的m+1块子校验数据分别携带在第n+1个待发送数据包至第n+m+1个待发送数据包中发送给接收端。接收端在接收到第n+m+1个待发送数据包后,将第n+1个待发送数据包至第n+m+1个待发送数据包中的子校验数据进行合并,得到完整的校验数据,从而用该完整的校验数据,来校验第n个待发送数据包至第n+m个待发送数据包中的有效数据的正确性。
进一步地,为了使接收端能够正确的解析出校验数据,每个待发送数据包中还包括指示信息,该指示信息用于指示待发送数据包中是否携带有第一块子校验数据。
具体的,在将校验数据划分为m+1块子校验数据,并分别将各块子校验数据分别携带在不同的待发送数据包中发送给接收端后,为了使接收端能够正确的解析出校验数据,可以在每个待发送数据包中包括指示信息,以指示该待发送数据包中携带的是否为第一块子校验数据,这样,接收端将可以正确的获取到完整的校验数据。其中,该指示信息可以用0或1的值来表示携带的是否为第一块子校验数据,例如:若指示信息为0,则表示该待发送数据包中携带的是第一块子校验数据。或者,在指示信息为1时,表示该待发送数据包中携带的是第一块子校验数据,当然,也可以用其他值或者其他字符表示待发送数据包中是否携带的是第一块子校验数据,对于指示信息的具体指示方式,本发明实施例在此不做限制。
举例来说,假设以指示信息的值为0来指示该待发送数据包中携带有第一块子校验数据,若报文n中的指示信息的值为0,报文n+1中的指示信息的值为1,报文n+2中的指示信息的值为0,则接收端可以获知,报文n和报文n+1中的子校验数据是由同一校验数据进行划分得到的,这样,接收端对报文n和报文n+1中的子校验数据进行合并,即可得到完整的校验数据。
由于待发送数据包中包括指示信息,该指示信息用于指示待发送数据包中是否携带有第一块子校验数据,这样,接收端可以根据该指示信息,正确的解析出完整的校验数据,从而完成数据的校验。
本发明实施例提供的基于CAN总线的数据传输方法,通过将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据,其中,n和m为大于零的正整数;然后对合并数据进行校验,得到校验数据,再将校验数据划分为m+1块子校验数据,并将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。由于将校验数据划分为m+1块子校验数据后,将各块子校验数据分别携带在不同的待发送数据包中发送给接收端,这样可以减少校验数据在每帧数据域中占用的长度,从而使得每帧数据中可以携带的有效数据量增多,由此可以提高数据带宽的利用率。
下面,将以具体的示例,来详细说明本发明的方案。
图4为本发明中数据包的发送示意图,如图4所示,假设m为1,校验算法为CRC8。发送端在选定校验算法后,在该CRC8算法所支持的数据长度内,将报文n中的数据n和报文n+1中的数据n+1进行合并,得到数据n和数据n+1。然后,发送端会对该合并后的数据n+数据n+1采用CRC8算法,计算校验数据。在计算出校验数据后,将该校验数据划分为两块子校验数据,如划分为校验数据1和校验数据2,此时,由于报文n已经被发送至接收端,发送端可以将校验数据1携带在报文n+1中,将校验数据2携带在报文n+2中发送给接收端。
进一步地,每个待发送的报文中还携带有指示信息,该指示信息用于指示该报文中是否携带的是第一块子校验数据,如报文n+1中的指示信息为1,则说明报文n+1中携带的校验数据1为第一块子校验数据,接收端根据该指示信息,将报文n+1中携带的校验数据1和报文n+2中携带的校验数据2进行合并,即可得到完整的校验数据,从而使用该校验数据校验报文n和报文n+1的正确性。
类似的,可以将报文n+2中的数据n+2和报文n+3中的数据n+3进行合并,得到数据n+2和数据n+3。然后,发送端会对该合并后的数据n+2和数据n+3采用CRC8算法,计算校验数据。在计算出校验数据后,将该校验数据划分为两块子校验数据,如划分为校验数据1和校验数据2,此时,由于报文n+2已经被发送至接收端,发送端可以将校验数据1携带在报文n+3中,将校验数据2携带在报文n+4中发送给接收端。接收端根据指示信息,将报文n+3中携带的校验数据1和报文n+4中携带的校验数据2进行合并,即可得到完整的校验数据,从而使用该校验数据校验报文n+2和报文n+3的正确性。
本发明实施例提供的基于CAN总线的数据传输方法,通过将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据,其中,n和m为大于零的正整数;然后对合并数据进行校验,得到校验数据,再将校验数据划分为m+1块子校验数据,并将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。由于将校验数据划分为m+1块子校验数据后,将各块子校验数据分别携带在不同的待发送数据包中发送给接收端,这样可以减少校验数据在每帧数据域中占用的长度,从而使得每帧数据中可以携带的有效数据量增多,由此可以提高数据带宽的利用率。
图5为本发明基于CAN总线的数据传输装置实施例一的结构示意图,该装置可以位于终端设备,参见图5,该装置包括:合并模块11、校验模块12、划分模块13和发送模块14,其中:
合并模块11用于将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据;其中,n和m为大于零的正整数;
校验模块12用于对所述合并数据进行校验,得到校验数据;
划分模块13用于将所述校验数据划分为m+1块子校验数据;
发送模块14用于将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。
本发明实施例提供的基于CAN总线的数据传输装置,通过将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据,其中,n和m为大于零的正整数;然后对合并数据进行校验,得到校验数据,再将校验数据划分为m+1块子校验数据,并将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。由于将校验数据划分为m+1块子校验数据后,将各块子校验数据分别携带在不同的待发送数据包中发送给接收端,这样可以减少校验数据在每帧数据域中占用的长度,从而使得每帧数据中可以携带的有效数据量增多,由此可以提高数据带宽的利用率。
可选的,所述待发送数据包中包括指示信息,所述指示信息用于指示所述待发送数据包中是否携带有第一块所述子校验数据。
可选的,所述发送模块14,具体用于:
将所述m+1块子校验数据分别携带在第n+1个待发送数据包至第n+m+1个待发送数据包中发送给所述接收端。
可选的,所述校验模块12,具体用于:
根据校验算法对所述合并数据进行校验,得到校验数据。
可选的,所述校验算法包括循环校验码CRC8算法。
可选的,所述合并模块11,具体用于:
确定所述校验算法所支持的数据长度;
根据所述数据长度,将所述第n个待发送数据包至所述第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据。
上述装置可用于执行上述对应方法实施例提供的方法,具体实现方式和技术效果类似,这里不再赘述。
图6A示出了本发明终端设备的一种可能的结构示意图。终端设备100包括:处理单元102和通信单元103。处理单元102用于对终端设备100的动作进行控制管理,例如,处理单元102用于支持终端设备100执行图3的步骤301-步骤302,和/或用于本发明所描述的技术的其它过程。通信单元103用于支持终端设备100与其它网络实体的通信,例如与接收端之间的通信,例如,通信单元103用于支持终端设备100执行图3的步骤303。终端设备100还可以包括存储单元101,用于存储终端设备100的计算机程序代码和数据。
其中,处理单元102可以是处理器或控制器,例如可以是CPU,通用处理器,数字信号处理器(DigitalSignalProcessor,DSP),专用集成电路(Application-SpecificIntegrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元103可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口。存储单元101可以是存储器。
当处理单元102为处理器,通信单元103为通信接口,存储单元101为存储器时,本发明所涉及的终端设备可以为图6B所示的终端设备。
参阅图6B所示,该终端设备110包括:处理器112、通信接口113、存储器111。可选的,终端设备110还可以包括总线114。其中,通信接口113、处理器112以及存储器111可以通过总线114相互连接;总线114可以是外设部件互连标准(PeripheralComponentInterconnect,简称PCI)总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,简称EISA)总线等。所述总线114可以分为地址总线、数据总线、控制总线等。为便于表示,图6B中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
另外,存储器111中存储有计算机程序,并且被配置为由处理器112执行,该计算机程序包括用于执行如上图3所示实施例所述的方法的指令。
本发明实施例还提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机程序,所述计算机程序使得终端设备执行前述图3所示实施例提供的基于CAN总线的数据传输方法。其中,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种基于CAN总线的数据传输方法,其特征在于,包括:
将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据;其中,n和m为大于零的正整数;
对所述合并数据进行校验,得到校验数据;
将所述校验数据划分为m+1块子校验数据,并将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。
2.根据权利要求1所述的方法,其特征在于,所述待发送数据包中包括指示信息,所述指示信息用于指示所述待发送数据包中是否携带有第一块所述子校验数据。
3.根据权利要求1所述的方法,其特征在于,所述将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端,包括:
将所述m+1块子校验数据分别携带在第n+1个待发送数据包至第n+m+1个待发送数据包中,通过CAN总线发送给所述接收端。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对所述合并数据进行校验,得到校验数据,包括:
根据校验算法对所述合并数据进行校验,得到校验数据。
5.根据权利要求4所述的方法,其特征在于,所述校验算法包括循环校验码CRC8算法。
6.根据权利要求4所述的方法,其特征在于,所述将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据,包括:
确定所述校验算法所支持的数据长度;
根据所述数据长度,将所述第n个待发送数据包至所述第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据。
7.一种基于CAN总线的数据传输装置,其特征在于,包括:
合并模块,用于将第n个待发送数据包至第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据;其中,n和m为大于零的正整数;
校验模块,用于对所述合并数据进行校验,得到校验数据;
划分模块,用于将所述校验数据划分为m+1块子校验数据;
发送模块,用于将各块子校验数据分别携带在不同的待发送数据包中通过CAN总线发送给接收端。
8.根据权利要求7所述的装置,其特征在于,所述待发送数据包中包括指示信息,所述指示信息用于指示所述待发送数据包中是否携带有第一块所述子校验数据。
9.根据权利要求7所述的装置,其特征在于,所述发送模块,具体用于:
将所述m+1块子校验数据分别携带在第n+1个待发送数据包至第n+m+1个待发送数据包中发送给所述接收端。
10.根据权利要求7-9任一项所述的装置,其特征在于,所述校验模块,具体用于:
根据校验算法对所述合并数据进行校验,得到校验数据。
11.根据权利要求10所述的装置,其特征在于,所述校验算法包括循环校验码CRC8算法。
12.根据权利要求10所述的装置,其特征在于,所述合并模块,具体用于:
确定所述校验算法所支持的数据长度;
根据所述数据长度,将所述第n个待发送数据包至所述第n+m个待发送数据包中携带的有效数据进行合并,得到合并数据。
13.一种终端设备,其特征在于,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求1-6任一项所述的方法的指令。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得终端设备执行权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811632819.4A CN109889418B (zh) | 2018-12-29 | 2018-12-29 | 基于can总线的数据传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811632819.4A CN109889418B (zh) | 2018-12-29 | 2018-12-29 | 基于can总线的数据传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109889418A CN109889418A (zh) | 2019-06-14 |
CN109889418B true CN109889418B (zh) | 2020-12-08 |
Family
ID=66925492
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811632819.4A Active CN109889418B (zh) | 2018-12-29 | 2018-12-29 | 基于can总线的数据传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109889418B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111526127B (zh) * | 2020-03-31 | 2022-04-12 | 潍柴动力股份有限公司 | 变量信息的配置方法及装置 |
CN111865717B (zh) * | 2020-07-03 | 2021-12-24 | 深圳开源互联网安全技术有限公司 | Can总线常规包逆向测试方法、***、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102437910A (zh) * | 2011-10-18 | 2012-05-02 | 国家超级计算深圳中心(深圳云计算中心) | 数据加/解密校验方法及其*** |
CN106464421A (zh) * | 2014-04-30 | 2017-02-22 | 华为技术有限公司 | 一种数据发送方法和装置 |
CN106776146A (zh) * | 2016-12-29 | 2017-05-31 | 华为技术有限公司 | 一种数据校验方法、装置及*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101500094B1 (ko) * | 2013-07-01 | 2015-03-06 | 현대자동차주식회사 | 이더넷 기반의 차량 네트워크 메시지 전달 시스템 및 방법 |
-
2018
- 2018-12-29 CN CN201811632819.4A patent/CN109889418B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102437910A (zh) * | 2011-10-18 | 2012-05-02 | 国家超级计算深圳中心(深圳云计算中心) | 数据加/解密校验方法及其*** |
CN106464421A (zh) * | 2014-04-30 | 2017-02-22 | 华为技术有限公司 | 一种数据发送方法和装置 |
CN106776146A (zh) * | 2016-12-29 | 2017-05-31 | 华为技术有限公司 | 一种数据校验方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN109889418A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110061914B (zh) | 一种报文转发方法及装置 | |
CN109347598B (zh) | 校验码处理方法、电子设备及存储介质 | |
CN109889418B (zh) | 基于can总线的数据传输方法和装置 | |
WO2017211265A1 (zh) | 限速方法及装置、存储介质 | |
CN110659905A (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN113489570A (zh) | 一种PCIe链路的数据传输方法、装置及设备 | |
WO2021134418A1 (zh) | 一种数据校验方法及装置 | |
CN112422485A (zh) | 一种传输控制协议的通信方法及装置 | |
CN112437155B (zh) | 服务数据的处理方法、装置以及服务端设备 | |
CN115729879A (zh) | 数据帧格式、芯片通信方法及芯片 | |
KR20220134588A (ko) | 배터리 관리 시스템의 기능 안전 | |
CN104471888B (zh) | 突发数据块中的空闲块idle的处理方法、设备及*** | |
CN109995603B (zh) | 一种Tag模型下丢包测量的方法、装置及电子设备 | |
JP2019029921A (ja) | 送信装置、受信装置、及び通信方法 | |
CN112132583A (zh) | 区块链的交易处理方法、装置、电子设备及可读存储介质 | |
CN109358981B (zh) | 存储器读取错误纠正方法、***、计算机设备和存储介质 | |
CN109587083B (zh) | 数据传输方法及相关装置 | |
CN114679425B (zh) | 一种5g网络下的报文处理方法、网络设备及存储介质 | |
CN113949487B (zh) | 数据通信方法、装置、通信终端及计算机可读存储介质 | |
CN112019485A (zh) | 一种报文的生成、校验方法及装置 | |
CN115633044B (zh) | 报文的处理方法、装置、电子设备及存储介质 | |
CN111277468B (zh) | 链路状态评估方法、装置、终端和计算机可读存储介质 | |
CN116137723B (zh) | 断链触发判断方法、装置、设备及存储介质 | |
CN114422970B (zh) | 短信溯源方法、装置及设备 | |
CN113949487A (zh) | 数据通信方法、装置、通信终端及计算机可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |