CAN通信ACK机制
如下是CAN数据帧的组成,可以看到在CAN数据帧中包含一个ACK段,而ACK段的作用就是表示该数据帧被正常接收。
ACK检测机制
CAN的错误帧中有一种就是ACK错误,ACK错误由发送方负责检测,发送方在ACK段发送2个隐性位,接收发收到该帧时将ACK槽置为显性位(ACK应答),由于“线与“原则,ACK段会由”01“组成,发送方在发送CAN帧时同时监听总线,如果发生方在ACK槽中检测出隐性电平就会检测出ACK错误(由于没有接收方在ACK槽填充),同时会发出ACK错帧帧。
ACK应答原理
接收方收到隐性“1”的ACK槽后,通过Tx引脚将其置为显性“0”。在这个过程中:
- ACK动作是由CAN Controller完成,不是CAN Transceiver
- 总线上如果有多个接