非回环模式下,关于CAN节点能否自发自收的理解

先说结论:否
理解过程:
首先,请看Can总线的原理图:
非回环模式下,关于CAN节点能否自发自收的理解_第1张图片
非回环模式下,关于CAN节点能否自发自收的理解_第2张图片
Can_L和Can_H本质上只是电信号的传播形式,从CPU的角度来说,直接交互的是CAN控制器的Rx和Tx。

不管CAN网络上挂多少设备,在同一时刻只能有1个发送数据。 如果有多个单元同时发送,则根据标识符决定优先级,对各消息标识符的每个位进行逐个仲裁比较。仲裁获胜的单元可继续发送消息,仲裁失利的单元立刻停止发送而进行接收工作。

注意区分“发送数据时的监听工作”和“真正的接收工作”:
CAN总线有监听功能,就是在发送一个位时,需要在RXD端产生反馈,以便报文ID仲裁。正常发送时,接收器不储存接受到的报文,只是在发送完毕收到应答位后而进入接收模式;

-> 这就意味着,对于一个节点,它发数据的时候,其他节点由于不打算发数据,或者冲裁失败,已经做好了接收数据的准备。因此,当电信号在总线上传播,经过总线上的各个节点时,各个节点根据自己的过滤器设置,选择性地将接收此数据。而该发送数据的节点在发送完毕,进行接收工作时,刚才的电信号传播已经结束了,因此没有机会接收自己刚刚发完的数据。

如果我的理解有误,欢迎指正。

你可能感兴趣的:(汽车,网络协议)