CAN中主动错误和被动错误的通俗解释.doc

CAN中主动错误和被动错误的通俗解释.doc

ID:51259013

大小:81.50 KB

页数:4页

时间:2020-03-20

CAN中主动错误和被动错误的通俗解释.doc_第1页
CAN中主动错误和被动错误的通俗解释.doc_第2页
CAN中主动错误和被动错误的通俗解释.doc_第3页
CAN中主动错误和被动错误的通俗解释.doc_第4页
资源描述:

《CAN中主动错误和被动错误的通俗解释.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、CAN总线中主动错误和被动错误的通俗解释(很容易理解)首先建议把广泛使用的“主动错误”和“被动错误”概念换成“主动报错”和“被动报错”。1.主动报错站点只要检查到错误,它立即“主动地”发出错标识。所谓“出错标识”,它本身就是一个“错误的位序列”(连续的6个显性位,不满足CAN协议的“最多5个连续的同性位”要求),目的是“主动地”告诉大家:即使你们没有发现“刚才我已发现”的错误,现在我“以身作则”出错啦!你们该看到这个错误了吧!2.被动报错站点如果检查到错误,它只能干瞪眼“被动地”等别人(主动报错站点)报

2、错,等待的时候它可不能去动总线,直到识别出由主动报错站点发出的“错误的位序列”,它才松了一口气:有人正式报错了!然后他就可以去竞争总线,该干啥干啥。3.出错标识本身没有什么优先级的问题。4.对于通过竞争得到总线使用权的发送站点来说,它在一边发一边听,有可能出现以下几种情况:(a)它自己就发现错误,它就干脆哗啦哗啦,乱发一气(连续的发六个同性位)。就象你小时候在幼儿园练习写字,写错一个笔画你自己就不耐烦了,在纸上哗啦哗啦乱画一气。目的就是告诉别人(别的站点):出错了!(b)它自己没有发现错误,但作为主动报

3、错的接收站点发现了错误(比如因为线路长,干扰大引起的错误),这个发现错误的站点就会立即哗啦哗啦往总线上乱发一气(连续的发六个显性位),就象你小时候在幼儿园练习写字,写错一个笔画你自己没发现,可老师(主动报错站点)发现了就不耐烦了,在你的纸上哗啦哗啦乱画一气。目的就是告诉你自己以及告诉别人(发送站点和别的站点):出错了!(c)它自己没有发现错误,但作为被动报错的接收站点发现了错误(比如因为线路长,干扰大引起的错误),这个发现错误的站点只能慢慢的等待,等待别的主动报错站点报错。如果别的主动报错站点没发现错误

4、,那就继续等,一直等到该发ACK的时候不给发送站发这个显性的ACK信号,当然了其他站点可能会发这个ACK4/4,那说明其他站点没有发生错误,没办法,别人能通信,你不能!然后积攒到一定的时候,你就脱离总线吧!再继续等待一段时间,脱胎换骨,重新回到总线上(这个时候错误记录都清0了,你肯定是主动报错站了)。就象你小时候在幼儿园练习写字,写错一个笔画你自己没发现,但被别的同学(被动报错站点)发现了,但他不能说,嘿嘿(乱说话,老师要打屁股的),他就只能等,等老师来发现你的错误(等待主动报错站点报错),或者老师没眼

5、力,那就等到收作业的时候,不收你的(不发ACK),不过老师可能主动来收的(给你发ACK),那你可没办法,继续等吧,等到你也当老师了(脱胎换骨了)...DeviceNet协议中关于CAN的出错管理的规范一、错误类型CAN提供了检测下列错误类型的机制:1.位错误当发送器将自己发送的电平与总线上的电平相比较,发现两者不相等时产生。隐性位传输时,显性位的检测在仲裁区,ACK时间段或被动故障标志传输期间不会导致位错误。2.应答错误当发送器确定信息没有得到应答时发生。在数据帧及远程帧之间存在一个应答时间段。该时间段

6、内,所有接收的节点,无论是否是预定的接收者都必须对接收的信息作出应答。3.填充错误当节点检测到6个相同电平值的连续位时发生。在正常工作情况下,当发送器检测到它已经发送了5个数值相同的连续位时,那么它将在第六位上插入一个取反值(称之为位填充)。所有接收器在CRC(循环冗余检查)计算之前将除去填充位。这样,当节点检测到6个连续的具有相同值的位时,即产生一个填充位错误。4.CRC错误当CRC(循环冗余检查)值与发送器生成值不匹配时发生。每一帧包含一个由发送器初始化的循环冗余检查(CRC)域。接收器计算出CRC

7、值,并与发送器产生的值相比较。如果两个值不相等,即产生CRC错误。4/45.格式错误当在一必须发送预定值的区内检测到非法位时发生。确定的预定义的位值必须在CAN帧内的一个确定点发送,如果在这些区域中的一个内检测到非法位值,即产生格式错误。二、节点错误状态为了尽量减小网络上故障节点的负面影响,进而提供故障界定,CAN定义了一个故障界定状态机制。一个节点可能处于下列三种错误状态之一:1.错误主动(ErrorActive)当一个错误主动节点检测到错误时,它将发送一个错误主动帧,该帧由6个连续的显性位组成。这一

8、发送将覆盖其他任何同时生成的发送,并导致其他所有节点都检测到一个填充错误,并依次放弃当前帧。当处于错误主动状态的节点检测到一个发送问题时,它将发出一个活动错误帧,以避免所有其他节点接收信息包。无论检测到错误的节点是否要接收这个数据都要执行这个过程。2.错误被动(ErrorPassive)当一个错误被动节点检测到错误时,它将发出一个错误被动帧。该帧由6个连续的隐性位组成,这个帧可能会被同时出现的其他发送所覆盖,如果其它站点没有检测到这一错误将

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。