为什么can发送失败怎么处理败


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

CAN总线调试过程中出现报文can发送失敗怎么处理败很多工程师都对此只知其一不知其二,这里就CAN报文can发送失败怎么处理败的问题我们来做一次探讨

在了解CAN报文为什么会can发送失败怎么处理败之前我们先看看一条正确的CAN报文到底应该是怎么样的,表1是一个正常标准数据帧的报文组成

表 1 标准数据帧报文格式组荿

图 1 标准数据帧格式

CAN总线是一种基于广播的通讯方式,为了保证总线上的每一个正常节点都能正确的接收到报文报文的发送者要求每一個接收节点在报文发送结束前要作出应答,这也是报文里ACK存在的原因

一帧CAN报文中ACK段长度为2个位,包含应答间隙(ACK Slot)和应答界定符(ACK Delimter)在应答场裏,发送站发送两个隐性位当接收器正确地接收到有效的报文,接收器就会在应答间隙(ACK Slot)期间(发送ACK信号)向发送器发送一“显性”的位以示應答

应答间隙:所有接收到匹配CRC序列(CRC SEQUENCE)的站会在应答间隙(ACK Slot)期间用一显性的位写入发送器的隐性位来作出回答。

应答界定符:ACK界定符是ACK场的苐二个位并且是一个必须为隐性的位。因此应答间隙(ACK Slot)被两个隐性的位所包围,也就是CRC界定符(CRC Delimter)和ACK界定符(ACK Delimter)

而如果总线上没有ACK应答(即应答間隙为隐性),发送器就会发送一个错误标志并且发送错误计数器值加8,节点就会对报文进行自动重发若自动重发依然收不到ACK,则在发送错误计数器计数满128后(即出现16帧错误帧)由错误主动转为错误被动状态,如图3所示

那导致ACK段出错的原因有哪些呢?

总线上只有一个有效节點:发送报文的节点在发送出一帧报文后会检测总线上应答间隙的状态,如果检测到应答间隙为隐性位则表示该帧报文没有得到ACK,can发送夨败怎么处理败需要重发,而由于发送错误计数器会在can发送失败怎么处理败后累加直到该节点关闭。所以当总线上只有一个有效节點时,这个节点是发不出去数据的因为它所发出的数据帧中的ACK Slot没有另外一个节点来填充,将永远是隐性位这个节点会一直重发数据直箌发送成功或发送被取消。

波特率不匹配或者节点没有初始化导致没有ACK;

总线线缆短路,断路接反;

高速CAN总线上接的节点不是高速CAN,而是嫆错低速CAN导致不匹配。

图 3 应答界定符错误帧

当你在调试CAN总线时出现节点发送报文失败的情况时一定要检查是不是以上几点疏漏导致你嘚总线上ACK异常。而借助恰当的仪器可以在查找CAN总线错误时事半功倍。图4即采用致远电子的CANScope来对错误帧进行标记同时找到错误帧对应的波形来查找出错误情况。CANScope还可以对CAN总线物理层、数据链路层、应用层做一系列的测试为CAN工程师解决测试难题。

我要回帖

更多关于 can发送失败怎么处理 的文章

 

随机推荐