将帧经由总线系统从发送器串行传输至至少一个接收器的方法和用于总线系统的参与站与流程

文档序号:11236800阅读:586来源:国知局
将帧经由总线系统从发送器串行传输至至少一个接收器的方法和用于总线系统的参与站与流程



背景技术:

例如可以将can总线系统用于运输工具、尤其是汽车中传感器与控制设备之间的通信。在can总线系统中,利用can和/或者canfd协议传输帧,如在is011898-1的当前的委员会草案或者在作为具有canfd的can协议规范的规范“canwithflexibledata-rate,规范版本1.0(2012年4月17日发布)”中所描述的那样。

canfd帧(frames)或者消息在开始的具有显性电平的帧起始位(sof-bit)之后具有用于canfd帧的标识符的位28至位18并且必要时还有位17至位0,该显性电平用信号通知帧的开始。因此也将位28至位0称作id28、id27等等。

在canfd帧的crc方法(crc=cyclicredundancycheck=循环冗余校验)中检测到弱点。所述弱点仅涉及具有以四个显性位开始的标识符的canfd帧。这四个显性位与显性的帧起始位一起生成填充条件(stuffcondition),基于该填充条件在第四和第五标识符位之间插入一个隐性填充位。通过这种预先确定的填充位插入规则可以防止将具有五个以上相同位的位序列错误解释为例如帧结束“endofframe”的信号通知,或者防止总线参与方由于缺少信号边沿或位之间的电平变化而丢失同步。因为在can和canfd中均将信号边沿或电平变化考虑用来同步总线参与方。

如果在上述四个显性位的情况下(局部在接收器中)使用一个隐性位覆盖前面的显性的帧起始位,该接收器就将第一显性标识符位解释为帧起始位。在接收器中没有填充条件,如果接收器收到隐性填充位,就接受隐性填充位作为第四标识符位。下一位被接受为第五标识符位,并且接收器重新与发送器同相。

弱点在于这种情况下crc校验无法检测已改变的第四标识符位;所发送的标识符(例如0x001)作为0x081接收。如果标识符以四个显性的“0”位开始,并且显性的帧起始位被覆盖,就出现这种情况。由此产生的后果将是收到以“1”替代“0”的第四标识符位。这里不仅涉及11位标识符,如在基本格式(baseformat)中的canfd帧中那样,而且涉及29位标识符,如在扩展格式(extendedformat)中的canfd帧中那样,并且不仅涉及具有17位crc的canfd帧,而且涉及具有21位crc的canfd帧。

传统can格式的帧不涉及该问题,因为在此crc计算不包括填充位。

crc方法的弱点是通过crc生成器的初始化向量“00000000000000000”引起。第一引导位“0”不改变crc生成器寄存器,使得如果在仲裁字段中在第一隐性位(所发送的填充位,其被有位错的接收器视作第四标识符位)前面少一个位,就无法通过crc校验检测该引导位。

此外,帧开始处缺少的位不作为格式错误来检测,因为接受填充位作为缺少的标识符位。

概括来说这意味着:

在传统的can中不考虑将填充位用来crc生成。只有位错生成条件/排除填充条件对可以将汉明距离(hammingdistance(hd))减到2。

在具有较长的crc校验和(crc-17和crc-21)的canfd中,crc生成包括填充位。如果帧起始位被接收器篡改,则可能出现问题。

在以下两种情况下可能发生的是,canfd帧的crc检测不到被篡改的标识符。这意味着接收器将接受被篡改的帧作为有效的帧。

情况1a:发送器发送id28-id25=“0000”

如果接收器检测到缩短的帧起始位,则以id28-id25=“0000”开始的标识符可能被篡改为id28-id25=“0001”。其原因在于,接收器没有或者过晚识别帧起始,并且因此将id28解释为帧起始。由于发送器在id25后面插入的填充位而将前四个标识符篡改为id28-id25=“0001”,所有后续的标识符位均被正确接收。发送器从总线回读帧起始的时候识别不了错误。

所需的缩短取决于发送器和接收器之间的can时钟频率关系。对于细节参见示例。

只要显性干扰脉冲不被进行接收的can节点检测到,则被篡改的总线信号可以包含所述显性干扰脉冲。

如果例如参与站或者节点中的can时钟是frx_节点==ftx_节点,那么缩短/篡改“phase_seg2+ε”的帧起始位就足以引起问题。使用1mbit/s和80%的采样点(samplepoint=sp),缩短205ns就足以产生问题。稍后,这还根据图7来详细解释。

情况1b:发送器发送id28-id25=“0001”

另一方面,在所发送的帧起始位到达之前,如果接收器例如由于一个显性干扰脉冲检测到位时间中的一个显性位,则以id28-id25=“0001”开始的标识符可能被篡改为id28-id25=“0000”。其原因在于,接收器将发送器所发送的帧起始位识别为id28。因此接收器将“1”错误解释为填充位并且将其移除。因此将前四个标识符位篡改为id28-id25=“0000”。所有后续的标识符位均被正确接收。

表1概括示出了标识符位id28至id25“0000”和“0001”的两个关键值在至接收器的途中如何必定被篡改,以至于接收器的crc无法识别错误。

如果接收器由于位缩短或者由于参与方间同步过程中的移位而将所发送的四个显性位的序列后面的一个隐性位错误解释为填充位,并且同时中间crc寄存器值碰巧等于“0...0”,那么类似的情况也可能在canfd帧之内出现。中间crc寄存器值是crc校验和的分别在为此设置的crc寄存器中存在的值。根据分别使用的crc多项式的规定,利用发送器或接收器中的每个在crc字段前面发送或接收的位来重新计算crc寄存器的内容。然后,发送器在帧的crc字段中将数据字段最后一位处存在的寄存器内容发送给接收器进行校验。



技术实现要素:

因此,本发明的任务是,提供一种用于将帧经由总线系统从发送器串行传输至至少一个接收器的方法和一种用于总线系统的参与站,所述方法和参与站解决在上文中提到的问题。尤其,应提供一种用于将帧经由总线系统从发送器串行传输至至少一个接收器的方法和一种用于总线系统的参与站,其中相对于迄今的方法进一步提高在总线系统的参与方之间的数据传输的可靠性。

所述任务通过具有权利要求1的特征的用于将帧经由总线线路从发送器串行传输至至少一个接收器的方法来解决。在该方法中,由发送器根据预先确定的规则将用于产生附加的信号边沿的填充位插入到帧中,其中由接收器在分析接收到的帧时又将填充位移除,其中crc生成器的crc计算逻辑算出crc校验和,帧包括所述crc校验和,并且其中当在通过crc计算逻辑执行的正在进行的计算中确定crc校验和的值为“0….0”时,在附加的分析步骤中将值“1”插入到crc计算逻辑中。

本发明描述一种能够如何扩展crc算法的方法,以便在错误解释填充位的含错误的采样的情况下可靠地识别所述错误。

优点在于在错误采样的情况下可靠地识别位错。

所描述的方法的使用一方面能够经由can协议控制器的数据表/手册证实,另一方面通过网络或总线系统中的通信控制装置或控制器的行为证实。在此描述的canfd协议变型形式应该用于can和ttcan网络或总线系统。

方法的有利的其他设计方案在从属权利要求中说明。

可行的是,在分析下一传输的位之前执行附加的分析步骤。

在一个特殊的设计方案中,crc校验和的初始化向量能够具有值“1…0”。

可能地,帧具有头部、数据部分和尾部,和/或可行的是,头部具有标识符。

也可行的是,帧是can帧或ttcan帧或canfd帧。

之前提到的任务此外通过根据权利要求6所述的用于总线系统的参与站来解决。参与站包括:发送/接收装置,其用于将帧发送到总线系统的另一个参与站和/或从总线系统的另一个参与站接收帧,借助所述总线系统,能够将帧借助于串行传输经由总线线路从发送器传输至至少一个接收器;和保护装置,所述保护装置用于保护帧的crc校验和,所述crc校验和由crc生成器的crc计算逻辑算出;其中发送/接收装置被设计成,在发送帧之前,根据预先确定的规则将用于产生附加的信号边沿的填充位插入到帧中和/或在分析接收到的帧时又将填充位移除,其中保护装置被设计成,当在通过crc计算逻辑执行的正在进行的计算中确定crc校验和的值为“0….0”时,在附加的分析步骤中将值“1”插入到crc计算逻辑中。

参与站可以是总线系统的一部分,该总线系统还具有总线线路和至少两个参与站,所述参与站可以通过总线线路相互连接,使得其能够相互通信,其中所述至少两个参与站中的至少一个是之前所述的参与站。

本发明的其他可能的实现也包括之前或者以下参照实施例描述的特征或者实施方式的没有明确提及的组合。在此,专业人士也将单个方面作为改进或补充添加至本发明的相应基本形式。

附图说明

下面,参考附图并且根据实施例对本发明进行详细描述。其中:

图1示出根据第一实施例的总线系统的简化的框图;

图2示出在根据图1的总线系统中的帧的结构的示意图;

图3至图6分别示出canfd帧的格式,具有根据iso11898-1的当前委员会草案的前四个标识符位(id28-id25)的放置;和

图7示出用于表示根据图1的总线系统中开始传输帧的时候发送器与接收器之间的时钟关系的时序图。

在附图中,只要没有另作说明,相同的或功能相同的元件配备有相同的附图标记。

具体实施方式

第一实施例

图1在第一实施例中示出总线系统1,所述总线系统例如能够是canfd总线系统。总线系统1能够在运输工具、尤其机动车、飞机等中或在医院等中使用。

在图1中,总线系统1具有总线线路3,多个参与站10、20、30连接到所述总线线路上。经由总线线路3,帧40能够以信号的形式在各个参与站10、20、30之间传输。参与站10、20、30例如能够是机动车的控制设备、传感器、显示设备等或还有工业控制设施。

如图1中所示,参与站10具有通信控制装置11、保护装置12和发送/接收装置13,所述发送/接收装置具有crc生成器13a。当然,保护装置12也能够是通信控制装置11的一部分。而参与站20具有通信控制装置21、具有crc分析单元22a和插入单元22b的保护装置22、和发送/接收装置23,所述发送/接收装置具有crc生成器23a。参与站30具有通信控制装置31、保护装置32和发送/接收装置33,所述发送/接收装置具有保护装置32和crc生成器33a。参与站10、20、30的发送/接收装置13、23、33分别直接连接到总线线路3上,即使这在图1中未示出。

通信控制装置11、21、31分别用于控制相应的参与站10、20、30经由总线线路3与连接到总线线路3上的参与站10、20、30中的其他参与站的通信。通信控制装置11、21、31能够分别如传统的can或ttcan或canfd控制器那样实施。通信控制装置11、21、31也能够分别构造为微控制器的一部分,所述微控制器同样由相应的参与站10、20、30包括。

发送/接收装置13、23、33能够分别如传统的can或ttcan或canfd收发器那样实施。

保护装置12、22、32也能够实施为软件模块,所述软件模块构成在参与站上运行的软件的一部分。在该情况下,完全以软件描绘根据本发明的方法。

图2非常示意地示出没有帧起始位(sof)的帧40的结构,所述帧起始位直接在帧40之前经由总线线路3传输。帧40能够是can帧或ttcan帧。

在图2中,帧40具有头部41、41a、42、数据字段43、44、45以及尾部46,所述尾部形成帧尾。头部41、51a、42在第一子区段41中具有标识符(id)的前四位41、41a,在第二子区段41a中具有标识符41、41a的其余位和控制字段42。数据字段43、44、45在第一部分43中具有字节0,在第二部分44中具有其他字节并且在第三部分45中具有字节n。在尾部46中设有crc校验和或crc检查和。

图3示出由参与站10、20、30之一发送的帧60,所述帧具有canfd基本格式的高达16个数据字节。帧60具有sof位61以及多个帧字段,如仲裁字段62(arbitrationfield)、控制字段63(controlfield)、数据字段64(datafield)和校验和字段65(crcfield)。仲裁字段62在base-id字段中包括帧60的标识符(identifier)。将rrs位布置在仲裁字段62的末尾。控制字段63始于ide位,随后是fdf位,并且然后是res位和紧随其后的brs位,并且然后是esi位,接着是dlc字段。如果控制字段63的dlc字段具有值0,则数据字段64不存在。校验和字段65在crc-seq字段中包含crc校验和,并且终止于随后的crc定界符crc-del。上述字段和位从iso-cd-11898-1中已知,并且因此这里没有详细描述。

在图3中说明本实施例中的仲裁阶段67的长度。如果帧60中的brs位是隐性的,那么紧随仲裁阶段67之后是数据阶段68。帧60具有头部61至63、数据部分64和尾部65。

在图3至图6中,利用帧60的底边上宽的线条表示显性位。在图3至图6中,利用帧60的顶边上宽的线条表示隐性位。

如图3中所示,发送器的所属通信控制装置11、21、31已经创建了帧60,使得sof位、rrs位、ide位和res位是显性的,而fdf位和crc定界符crc-del是隐性的。

图4示出由参与站10、20、30之一发送的帧600,其具有canfd基本格式的大于16个的数据字节。帧600除了与数据字段64相比更长的数据字段640以及与校验和字段65相比更长的校验和字段650之外,以与图3的帧60相同的方式构造。帧600具有头部61至63、数据部分640和尾部650。

图5示出由参与站10、20、30之一发送的帧70,其具有canfd扩展格式(canfdextendedformat)的高达16个的数据字节。按照图5,帧70具有sof位71以及多个帧字段,如仲裁字段72(arbitrationfield)、控制字段73(controlfield)、数据字段74(datafield)和校验和字段75(crcfield)。仲裁字段72在base-id字段和id扩展字段中包括帧70的标识符(identifier)。在base-id字段和id扩展字段之间设置有srr位和ide位。将rrs位布置在仲裁字段72的末尾。控制字段73始于fdf位,随后是res位。随后是brs位和esi位。控制字段73终止于dlc字段。如果控制字段73的dlc字段具有值0,则数据字段74不存在。在其它方面,帧70以与图3的帧60相同的方式构造,并且具有相应的仲裁阶段77和数据阶段78。帧70具有头部71至73、数据部分74和尾部75。

如图5中所示,发送器的所属通信控制装置11、21、31已经创建了帧70,使得sof位、rrs位和res位是显性的,而srr位、ide位和crc定界符crc-del是隐性的。

图6示出由参与站10、20、30之一发送的帧700,其具有canfd扩展格式(canfdextendedformat)的大于16个的数据字节。帧700除了与数据字段74相比更长的数据字段740以及与校验和字段75相比更长的校验和字段750之外,以与图5的帧70相同的方式构造。帧700具有头部71至73、数据部分740和尾部750。

crc校验和针对在图3和图4中示出的基本格式的canfd帧60、600被称作为crc-17。crc校验和针对在图5和图6中示出的扩展格式的帧70、700被称作为crc-21。

作为示例,图7示出参与站10的发送信号tx-10、参与站20的接收信号rx-20和参与站20的采样视点v-20分别随时间t的变化过程。图7中的虚线分别说明各个位之间的位边界50。为了清晰起见,对于接收信号rx-20和采样视点v-20,并非位边界50的所有虚线都配备附图标记。

在图7中所示的情况是在发送信号tx-10以帧起始位(sof位)开始之前首先在总线线路3上发送一个空闲位51。随后是电平与帧起始位相同的位2至位5,在位5后面插入一个填充位52。

因此以没有绘出的、由于通过总线线路3传输发送信号tx-10而出现的延时产生对应于发送信号tx-10的接收信号rx-20。该接收信号rx-20可能由于不同的原因(硬件误差、外部干扰、电磁辐射等等)在持续时间t内具有隐性电平,尽管发送信号具有sof位的显性电平。在这样篡改的接收信号rx-20中还可能存在附加的短的干扰脉冲gd,所述干扰脉冲继续篡改总线信号35,如图7中所示。这样的干扰脉冲gd例如同样可能由于外部干扰(电磁辐射等等)而出现,并且可能(例如当这些干扰脉冲短于一个时间量tq的最小总线时间单位的时候)无法通过进行接收的参与站、这里即参与站20检测到。接收信号rx-20保持篡改状态。

参与站20由于被篡改的接收信号rx-20而看见信号v-20。在帧起始位的位边界50后面是配备有附图标记54的sync_seg阶段。随后是传输阶段prop_seg,其在图7中配备有附图标记55。随后是配备有附图标记56的phase_seg1以及配备有附图标记57的phase_seg2。所述阶段54至57的顺序对于每个位来说均相同。

参与站20在采样点sp1、sp2、sp3、sp4、sp5对接收信号rx-20进行采样。采样点sp1至sp5处在配备有附图标记56的phase_seg1和配备有附图标记57的phase_seg2之间。

在图7中所示的情况中,参与站10、20、30(也称作节点)中的can时钟是frx_节点==ftx_节点。也就是说,接收时钟对应于发送时钟。这里,缩短/篡改“phase_seg2+ε”的帧起始位(sof)足以引起这里所关注的问题。第五采样点sp5在所示的情况下错误地产生隐性值。使用1mbit/s并且对于采样点sp1、sp2、sp3、sp4、sp5使用80%的采样点sp(sp=samplepoint),缩短205ns就足以如前所述产生这里所关注的问题。

在本实施例中,为了解决之前针对crc-17和crc-21所述的问题,可以使用初始化向量“1...0”替代“0...0”作为crc生成器13a、23a、33a的初始化向量。可以使用保护装置12、22、32,在尤其是具有crc分析单元22a和插入单元22b的保护装置22中进行初始化。由此关于标识符位id28至id25“0000”和“0001”的两个关键值的问题能够不再出现。

作为所关注的问题的补充的或替代的解决方案如下进行:

当检测到crc值为“0…0”时,在附加地分析crc机制时将“1”插入到crc逻辑中。这在分析下一接收/发送的位之前进行。

换言之,crc生成器13a、23a、33a的涉及的crc计算逻辑算出crc校验和。当在通过crc生成器13a、23a、33a的crc计算逻辑执行的正在进行的计算中借助所属的保护装置12、22、33确定crc值为“0….0”时,在附加的分析步骤中将值“1”插入到crc计算逻辑中。在参与站20中,借助crc分析单元22a能够执行crc值“0….0”的确定。将值“1”插入到crc计算逻辑中能够借助插入单元22b执行。

所述插入的“1”能够视作为虚拟的填充位,所述填充位仅对crc逻辑是可见的。由于所述插入,当下一接收/发送的位到达时,crc值不再为“0…0”。

第二实施例

在第二实施例中,总线系统1以与在第一实施例中描述的相同的方式构造。然而区别在于,在第二实施例中关注下述问题,所述问题能够在下述情况下出现:在canfd帧之内,所发送的四个显性位的序列后面的一个隐性位由于位缩短或者由于参与方间同步过程中的移位被接收器错误解释为填充位,并且同时中间crc寄存器值碰巧等于“0...0”。crc生成器13a、23a、33a的中间crc寄存器值等于“0…0”在下述情况下出现:crc校验和的正在执行的计算得出值“0…0”。

可以区分两种情况:

情况2a在下述情况下出现:中间crc寄存器值等于“0…0”,而发送“0”的填充序列并且这些“0”位的第一个由于同步而缩短。因此,位序列“00000l”(“l”在此表示发送的填充位)由接收器失真地采样成“00001”。所述错误通过crc检测不到。

情况2b在下述情况下出现:中间crc寄存器值等于“0…0”,而发送未填充序列“00001”并且接收器对附加的“0”采样。随后,将“1”解释成填充“1”,并且因此发送的位序列“00001”被接收器失真地采样成“00000l”(“l”在此表示发送的误认的填充位)。所述插入通过crc检测不到。

该问题能够在帧起始和发送的crc校验和之间的任意位置处出现。借助在第一实施例中描述的初始化向量“1…0”,中间crc寄存器值等于“0…0”能够对前18个发送的位不出现。

作为对在第二实施例中关注的问题的解决方案,如下进行。

当检测到crc值为“0…0”时,在附加地分析crc机制时将“1”插入到crc逻辑中。这在分析下一接收/发送的位之前进行。

换言之,crc生成器13a、23a、33a的涉及的crc计算逻辑算出crc校验和。当在通过crc生成器13a、23a、33a的crc计算逻辑执行的正在进行的计算中借助所属的保护装置12、22、33确定crc值为“0…0”时,在附加的分析步骤中将值“1”插入到crc计算逻辑中。在参与站20中,借助crc分析单元22a能够执行crc值“0…0”的确定。将值“1”插入到crc计算逻辑中能够借助插入单元22b执行。

所述插入的“1”能够视作为虚拟的填充位,所述填充位仅对crc逻辑是可见的。由于所述插入,当下一接收/发送的位到达时,crc值不再为“0…0”。

总线系统1、参与站10、20、30和方法的上述所有设计方案均可以单独或者以所有可能的组合使用。特别是,上述实施例的所有特征可以任意组合或者省略。尤其还可以设想以下修改方案。

根据基于canfd协议的总线系统对根据实施例的上述总线系统1进行描述。然而,根据实施例的总线系统1也可以是其它类型的通信网络。在总线系统1中至少在确定时段保证一个参与站10、20、30独占、无冲突访问共同的信道,是有利的、但并非强制性前提条件。

实施例及其修改方案的总线系统1中参与站10至30的数量和布置是任意的。在总线系统1中尤其也可以仅仅存在参与站10或20或者30。可以在总线系统1中任意组合参与站10至30。

也可以在所属的通信控制装置11、21、31中分别设置保护装置12、22、32替代图1中针对所述保护装置示出的实施方案。替代于或附加于参与站10、20、30,一个或者多个这样的参与站可以与参与站10、20、30任意组合地存在于总线系统1中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1