admin管理员组

文章数量:1530348

2024年8月1日发(作者:)

CAN数据错误检测

不同于其它总线,CAN协议不能使用应答信息。事实上,它可以将发生的任何错误用信号

发出。CAN协议可使用五种检查错误的方法,其中前三种为基于报文内容检查。

1、循环冗余检查(CRC)

在一帧报文中加入冗余检查位可保证报文正确。接收站通过CRC可判断报文是否有错。

2、帧检查

这种方法通过位场检查帧的格式和大小来确定报文的正确性,用于检查格式上的错误。

3、应答错误

如前所述,被接收到的帧由接收站通过明确的应答来确认。如果发送站未收到应答,那么

表明接收站发现帧中有错误,也就是说,ACK场已损坏或网络中的报文无站接收。CAN协议

也可通过位检查的方法探测错误。

4、总线检测

有时,CAN中的一个节点可监测自己发出的信号。因此,发送报文的站可以观测总线电平

并探测发送位和接收位的差异。

有时,CAN中的一个节点可监测自己发出的信号。因此,发送报文的站可以观测总线

电平并探测发送位和接受位的差异。

5、位填充

一帧报文中的每一位都由不归零码表示,可保证位编码的最大效率。然而,如果在一帧报

文中有太多相同电平的位,就有可能失去同步。为保证同步,同步沿用位填充产生。在五个连

续相等位后,发送站自动插入一个与之互补的补码位;接收时,这个填充位被自动丢掉。例如,

五个连续的低电平位后,CAN自动插入一个高电平位。CAN通过这种编码规则检查错误,如

果在一帧报文中有6个相同位,CAN就知道发生了错误。

如果至少有一个站通过以上方法探测到一个或多个错误,它将发送出错标志终止当前的

发送。这可以阻止其它站接收错误的报文,并保证网络上报文的一致性。当大量发送数据被

终止后,发送站会自动地重新发送数据。作为规则,在探测到错误后23个位周期内重新开始发

送。在特殊场合,系统的恢复时间为31个位周期。

但这种方法存在一个问题,即一个发生错误的站将导致所有数据被终止,其中也包括正确

的数据。因此,如果不采取自监测措施,总线系统应采用模块化设计。为此,CAN协议提供一

种将偶然错误从永久错误和局部站失败中区别出来的办法。这种方法可以通过对出错站统计

评估来确定一个站本身的错误并进入一种不会对其它站产生不良影响的运行方法来实现,即

站可以通过关闭自己来阻止正常数据因被错误地当成不正确的数据而被终止。

一帧报文中的每一位都由不归零码表示,可保证位编码的最大效率。然而,如果在一帧

报文中有太多相同电平的位,就有可能失去同步。为保证同步,同步沿用位填充产生。在五

个连续相等位后,发送站自动插入一个与之互补的补码位;接受时,这个填充位被自动丢掉。

例如,五个连续的低电平后,CAN自动插入一个高电平。CAN通过这种编码规则检查错误,

如果在一帧报文中有6个相同位,CAN就知道发生了错误。

如果至少有一个站通过以上方法探测到一个或多个错误,她将发送出错标志终止当前的

发送。这可以阻止其他站接受错误的报文。并保证网络上报文的一致性。当大量发送数据被

终止后,发送站会自动地重新发送数据。作为规则,在探测到错误后23个位周期内重新开

始发送。在特殊场合,系统的恢复时间为31个位周期。

但这种方法存在一个问题,既一个发生错误的站将导致所有数据被终止,其中也包括正

确的数据。因此,如果不采取自动监测措施,总线系统应采用模块化设计。为此,

CAN协议提供一种将偶然错误从永久错误和局部站失败中区别出来的方法。这种方法

可以通过对出错站统计评估来确定一个站本身的错误并进入一种不会对其他站产生不良影

响的运行方法来实现,即站可以通过关闭自己来阻止正常数据因被错误地当成不正确数据而

被终止。

6、CAN可靠性

为防止汽车在使用寿命期内由于数据交换错误而对司机造成危险,汽车的安全系统要求

数据传输具有较高的安全性。如果数据传输的可靠性足够高,或者残留下来的数据错误足够

低的话,这一目标不难实现。从总线系统数据的角度看,可靠性可以理解为,对传输过程产生的

数据错误的识别能力。

残余数据错误的概率可以通过对数据传输可靠性的统计测量获得。它描述了传送数据被

破坏和这种破坏不能被探测出来的概率。残余数据错误概率必须非常小,使其在系统整个寿

命周期内,按平均统计时几乎检测不到。计算残余错误概率要求能够对数据错误进行分类 ,

并且数据传输路径可由一模型描述。如果要确定CAN的残余错误概率,我们可将残留错误的

概率作为具有80~90位的报文传送时位错误概率的函数,并假定这个系统中有5~10个站,

并且错误率为1/1000,那么最大位错误概率为10—13数量级。例如,CAN网络的数据传输率

最大为1Mbps,如果数据传输能力仅使用50%,那么对于一个工作寿命4000小时、平均报文

长度为 80位的系统,所传送的数据总量为9×1010。在系统运行寿命期内,不可检测的传输错

误的统计平均小于10—2量级。换句话说,一个系统按每年365天,每天工作8小时,每秒错误

率为0. 7计算,那么按统计平均,每1000年才会发生一个不可检测的错误。

为防止汽车在使用寿命期内由于数据交换错误而对司机造成危险,汽车的安全系统要求

数据传输具有较高的安全性。如果数据传输的可靠性足够高,或者残留下来的数据错误足够

低的话,这一目标不难实现。从总线系统数据的角度看,可靠性可以理解为,对传输过程产

生的数据错误的识别能力。

残余数据错误的概率可以通过对数据传输可靠性的统计量获得。它描述了传送数据被破

坏和这种破坏不能被探测出来的概率。残余数据错误概率必须非常小,使其在系统整个寿命

周期内,按平均统计计时几乎检测不到。计算残余错误概率要求能够对数据错误进行分类,

并且数据传输路径可由一模型描述。如果要确定CAN的残余错误概率,我们可将残留错误

的概率作为具有80~90位的报文传送时位错误概率的函数,并假定这个系统中有5个~10个

站,并且错误概率为1/1000,那么最大位错误概率为10~13数量级。例如CAN网络的数据

传输率最大为1MBPS,如果数据传输能力仅使用50%,那么对于一个工作寿命

4000小时、

平均报文长度为80位的系统,所传送的数据总量为9*1010。在系统运行寿命期内,不可检

测的传输错误的统计平均小于10-2量级。换句话说,一个系统按每年365天,每天工作8

小时,每妙错误率为0.7计算,那么按统计平均,每1000年才会发生一个不可检测的错误。

本文标签: 错误数据报文