CAN总线-ACK应答机制分析

CAN总线-ACK应答机制分析


1:应答场定义

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


 2:ACK应答机制浅析

       CAN的发送是个双向互动过程,发送节点在发送数据的同时会对总线上数据进行回读以及Ack Slot场的判定;接收节点在发送节点发送过程中需及时确认报文正确性并令总线上ACK SLOT位置 “显性”,以告知发送节点数据正常接收;

       CAN是一种基于广播的通讯方式,为了保证总线上的每一个节点都能正确的接收到报文,报文的发送者要求每一个接收节点在报文发送结束前,也就是ACK SLOT 的时间内,作出应答,即在ACK段上,要求接收节点在报文正确性的基础上及时发送一个“显性”位。发送者在发送的同时会监视总线上的数据,如果与发送的数据不一致,则表示发送失败或自己失去仲裁,立即停止发送或转入接收模式。由于发送者在发送数据的同时会向ACK段连续写入2个隐性位,如果发送者在回读过程中监控到ACK SLOT 位为“显性”位,则说明接收者已正确接收;如果发送者在回读过程中监控到ACK SLOT 位为“隐性”位,则说明没有节点正确接收该报文,则发送者会检测到这个隐性位而知道发送失败,此条报文需要重发。

       多节点接收工况下若出现仅单节点正确接收,那么又会出现什么情况呢?  由于某节点正常接收,基于线与机制总线上ACK SLOT 位必定为“显性”,隐性失效,从而可以说明:ACK场是用于确定报文被至少一个节点正确接收。该工况下就无法基于ACK场进行判断,但会触发错误帧相关机制,立即开始发送一个错误帧,则接下去总线上的信号就是这个错误帧,其它的节点和发送者也都会收到这个错误帧,那所有的节点都知道出错了,接收者会丢掉此次消息,而发送者会试图重发此次消息。

3:ACK应答机制框图

补充:1 通道表征发送节点的 TX;2 通道表征发送节点的 RX;3 通道表征接收节点的 TX;4通道表征接收节点的 RX;

 

 

 

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值