一种总线信号传输、接收方法及装置制造方法

文档序号:6486264阅读:148来源:国知局
一种总线信号传输、接收方法及装置制造方法
【专利摘要】本发明提供一种总线信号传输、接收方法及装置,该总线信号传输方法包括数据流被分为一个一个连续的数据帧进行信号传输,数据帧包括下列位场:帧起始、仲裁场、控制场、数据场、CRC校验场、应答场、帧结束;将数据场中的至少一个位设置为用于增加下列中的至少一个:报文计数值、报文校验值、信号有效值、信号保护值,以防止数据传输错误。该总线信号接收方法包括信号接收装置接收到信号后,采用与信号传输装置相同的算法机制对报文计数值、报文校验值、信号有效值或信号保护值进行计算,然后把计算所得值与接收到的相应的值进行比较,如果计算所得的值与接收所得的值一致,那么信号有效;如果其中某一个值不一致,则表示信号传输出现错误。
【专利说明】一种总线信号传输、接收方法及装置
【技术领域】
[0001]本发明涉及信号传输、接收【技术领域】,尤其涉及一种防错总线信号传输、接收方法及装置。
【背景技术】
[0002]CAN (Controller Area Network)即控制器局域网,是德国BOSCH公司在20世纪80年代初,为了解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,而CAN2.0Α/Β便是这个协议的版本。在CAN2.0Α/Β中定义了 CAN总线通信报文的格式、传输方式等。
[0003]在CAN2.0Α/Β的规范中就已经对报文及信号的传输采用了 CRC (CyclicRedundancy Check,循环冗余校验)校验机制来防止传输的信号出错。CRC码检错的工作原理:CRC码检错是将被处理报文的比特序列当作一个二进制多项式A (X)的系数,该系数除以发送方和接收方预先约定好的生成多项式g(x)后,将求得的余数PU)作为CRC校验码附加到原始的报文上,并一起发给接收方。接收方用同样的g(x)去除收到的报文B(x)jn果余数等于P(X),则传输无误(此时A (X)和B(X)相同);否则传输过程中出错,由发送端重发,重新开始CRC校验,直到无误为止。
[0004]但是这种机制还是不能有效地防止信号在传输过程中由于EMC (ElectroMagnetic Compatibility,电磁兼容性)的干扰或者是信号由于控制单元内部寄存器错误导致的错误。

【发明内容】

[0005]本发明的特征和优点在下文的描述中部分地陈述,或者可从该描述显而易见,或者可通过实践本发明而学习。
[0006]为克服现有技术的问题,本发明提供一种总线信号传输方法、接收方法,及相应的总线信号传输装置和接收装置,有效地防止信号在传输过程中的传输错误,提高信号传输的正确性。
[0007]本发明解决上述技术问题所采用的技术方案如下:
[0008]根据本发明的一个方面,提供一种总线信号传输方法,数据流被分为一个一个连续的数据帧进行信号传输,数据帧包括下列位场:帧起始、仲裁场、控制场、数据场、CRC校验场、应答场、帧结束;将数据场中的至少一个位设置为用于增加下列中的至少一个:报文计数值、报文校验值、信号有效值、信号保护值,以防止数据传输错误。
[0009]根据本发明的一个实施例,报文计数值对所发送的数据帧进行计数,用于防止数据帧在传输过程中出现丢失。
[0010]根据本发明的一个实施例,报文计数值采用长度为4位的计数信号,其初始值为0,报文每发送一帧则其值更新增加1,一直到增加到15后,重新回到0,然后再次增加。
[0011]根据本发明的一个实施例,报文校验值是对数据场中的数据进行校验后所得的值,用于防止数据帧在传输过程中由于干扰、微处理器出现错误而造成数据传输错误。
[0012]根据本发明的一个实施例,数据场由8个字节构成,报文校验值的长度为I个字节,其值为数据场中除报文校验值字节以外的7个字节相加后与OxFF进行异或操作所得的值。
[0013]根据本发明的一个实施例,信号有效值的长度为I位,其值为O或1,代表数据场中的信号是否有效。
[0014]根据本发明的一个实施例,信号保护值的长度等于被保护的信号的长度,其值为被保护的信号与信号有效值及报文计数值相加后与OxFF进行异或操作所得的值。
[0015]根据本发明的另一个方面,提供一种总线信号接收方法,信号接收装置接收传输的信号后,采用与信号传输装置相同的算法机制对报文计数值、报文校验值、信号有效值或信号保护值进行计算,然后把计算所得值与接收到的相应的值进行比较,如果计算所得的值与接收所得的值一致,那么信号有效;如果其中某一个值不一致,则表示信号传输出现错误,不使用该信号。
[0016]根据本发明的又一个方面,提供一种总线信号传输装置,采用相应总线信号传输方法进行总线信号的传输。
[0017]根据本发明的再一个方面,提供一种总线信号接收装置,采用相应总线信号接收方法进行总线信号的接收处理。
[0018]由于本发明采用将数据场中的至少一个位设置为用于增加下列中的至少一个:报文计数值、报文校验值、信号有效值、信号保护值,从而可以有效地防止信号在传输过程中由于EMC的干扰或者是信号由于控制单元内部寄存器错误导致的信号传输错误,大大地提高了信号传输的正确性。
【专利附图】

【附图说明】
[0019]下面通过参考附图并结合实例具体地描述本发明,本发明的优点和实现方式将会更加明显,其中附图所示内容仅用于对本发明的解释说明,而不构成对本发明的任何意义上的限制,在附图中:
[0020]图1为CAN2.0定义的数据帧格式示意图;
[0021]图2为图1中CAN总线报文的数据场结构示意图;
[0022]图3为本发明实施例的总线信号传输方法示意图;
[0023]图4为本发明实施例的总线信号接收方法示意图;
[0024]图5为本发明实施例的总线信号数据帧格式示意图。
【具体实施方式】
[0025]图1示出了 CAN2.0定义的数据帧格式,数据帧I包括下列位场:帧起始11、仲裁场12、控制场13、数据场14、CRC校验场15、应答场16、帧结束17。
[0026]图2示出了图1中CAN总线报文的数据场结构,采用CAN总线进行数据传输的时候,先给数据帧I分配好标识符(ID),然后把数据填充进数据场14中便可传输。因为数据场14最大的字节数是8个字节(byte),—个字节是8位(bit),所以一次一巾贞数据巾贞I能传输的数据为8*8=64 (bit)位的数据。[0027]如图3所示,本发明提供一种总线信号传输方法,包括下列步骤:
[0028]步骤S1、数据流被分为一个一个连续的数据帧进行信号传输,数据帧包括下列位场:帧起始、仲裁场、控制场、数据场、CRC校验场、应答场、帧结束;
[0029]步骤S2、将数据场中的至少一个位设置为用于增加下列中的至少一个:报文计数值、报文校验值、信号有效值、信号保护值,以防止数据传输错误。
[0030]如图4所示,本发明提供一种总线信号接收方法,包括下列步骤:
[0031]步骤S3、信号接收装置接收到传输的信号后,采用与信号传输装置相同的算法机制对报文计数值、报文校验值、信号有效值或信号保护值进行计算;
[0032]步骤S4、然后把计算所得值与接收到的相应的值进行比较,如果计算所得的值与接收所得的值一致,那么信号有效;如果其中某一个值不一致,则表示信号传输出现错误,不使用该信号。
[0033]如图5所示,在本实施例中,数据流被分为一个一个连续的数据帧I进行信号传输,数据帧I包括下列位场:帧起始11、仲裁场12、控制场13、数据场14、CRC校验场15、应答场16、帧结束17,而且本实施例在CAN总线通信报文的数据场14中增加报文计数值(Message Counter) 142、报文校验值(Message Checksum) 141、信号有效值(Validity) 144、及信号保护值(Protected Value) 143,然后接收这些信号的接收装置根据相同机制计算这些值后与接收到的值进行比较判断是否一致来决定是否使用接收到信号,从而提高了信号传输的正确性和防止接收的接收机误动作。
[0034]本实施例的具体实施方法为:
[0035]1、在发送报文的数据场14中增加报文计数值142、报文校验值141、信号有效值144、及信号保护值143。本发明总线报文的数据帧格式如图5所示。进行数据传输的时候,先给数据帧I分配好标识符(ID),然后把数据填充进数据场14中便可传输。
[0036]报文计数值142:用于防止数据帧在传输过程中出现丢失;
[0037]报文校验值141:用于防止数据帧在传输过程中由于干扰、微处理器出现错误等造成数据传输错误;
[0038]信号有效值144:用于对信号的有效性进行认证;
[0039]信号保护值143:用于防止信号在传输过程中的错误。
[0040]当然,本领域技术人员可以在数据场中只增加报文计数值142、报文校验值141、信号有效值144、信号保护值143中的其中1-3种信号,也可以实现本发明的部分技术效果,这些变化方案也在本发明的保护范围之内。
[0041]上述信号值在报文数据场中的增加方法为:
[0042]I)首先在 byte6 的 bitO 到 bit3 上增加报文计数值(Message Counter) 142,其长度为4个bit,其信号值初始值为0,报文每发送一次则其值更新增加1,一直到增加到15后,重新回到0,然后再次增加1,发送序列为0,1,2,3……15,0,1,2,3……15,O, 1, 2,3,......。
[0043]2)在Byte7增加报文校验信号值(Message Checksum) 141,其长度为8个bit,其信号值为:Message Checksum= (ByteO+Bytel+......+Byte6) XOR (OxFF), XOR 为异或操作。
[0044]3)对传输的信号(如信号A)增加信号有效值(Validity) 144,其长度为lbit,值为O或I。有效值144在数据场的位置为除上面已使用的位置外的任意位置。[0045]4)最后对传输的信号(如信号A)增加信号保护值(Protect Value) 143,其长度等于被保护的信号的长度。保护值143在数据场的位置为除上面已使用的位置外的任意位置,值为 Protect Value= (A+Validity+Message Counter)XOR(OxFF), XOR 为异或操作。
[0046]2、信号的接收单元接收到这些信号后,根据相同的算法机制对报文计数值142、报文校验值141、信号有效值144、及信号保护值143进行计算,然后把计算所得值与接收到的值进行比较,如果计算所得一致与接收所得的值一致,那么信号有效,可以使用,如表1中所示。
[0047]表1
【权利要求】
1.一种总线信号传输方法,数据流被分为一个一个连续的数据帧进行信号传输,所述数据帧包括下列位场:帧起始、仲裁场、控制场、数据场、CRC校验场、应答场、帧结束;其特征在于:将所述数据场中的至少一个位设置为用于增加下列中的至少一个:报文计数值、报文校验值、信号有效值、信号保护值,以防止数据传输错误。
2.根据权利要求1所述的总线信号传输方法,其特征在于:所述报文计数值对所发送的数据帧进行计数,用于防止数据帧在传输过程中出现丢失。
3.根据权利要求2所述的总线信号传输方法,其特征在于:所述报文计数值采用长度为4位的计数信号,其初始值为O,报文每发送一帧则其值更新增加1,一直到增加到15后,重新回到O,然后再次增加。
4.根据权利要求1所述的总线信号传输方法,其特征在于:所述报文校验值是对所述数据场中的数据进行校验后所得的值,用于防止数据帧在传输过程中由于干扰、微处理器出现错误而造成数据传输错误。
5.根据权利要求4所述的总线信号传输方法,其特征在于:所述数据场由8个字节构成,所述报文校验值的长度为I个字节,其值为所述数据场中除所述报文校验值字节以外的7个字节相加后与OxFF进行异或操作所得的值。
6.根据权利要求1所述的总线信号传输方法,其特征在于:所述信号有效值的长度为I位,其值为O或I,代表数据场中的信号是否有效。
7.根据权利要求6所述的总线信号传输方法,其特征在于:所述信号保护值的长度等于被保护的信号的长度,其值为被保护的信号与信号有效值及报文计数值相加后与OxFF进行异或操作所得的值。
8.一种总线信号接收方法,其特征在于:信号接收装置接收到根据权利要求1至7中任一项所传输的信号后,采用与信号传输装置相同的算法机制对报文计数值、报文校验值、信号有效值或信号保护值进行计算,然后把计算所得值与接收到的相应的值进行比较,如果计算所得的值与接收所得的值一致,那么信号有效;如果其中某一个值不一致,则表示信号传输出现错误,不使用该信号。
9.一种总线信号传输装置,其特征在于,采用权利要求1至7中任一项所述的总线信号传输方法进行总线信号的传输。
10.一种总线信号接收装置,其特征在于:采用权利要求8所述的总线信号接收方法进行总线信号的接收处理。
【文档编号】G06F13/38GK103514128SQ201210200109
【公开日】2014年1月15日 申请日期:2012年6月15日 优先权日:2012年6月15日
【发明者】张雁英, 黄少堂, 程艳阶, 钱三平, 智慧, 杨雪 申请人:广州汽车集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1