赞
踩
目录
第1问:总线中有若干节点,若某节点发送一帧报文且被ACK,那么能保证总线上所有节点都收到了这帧报文吗?
第3问:设置为只听模式(listening only or silent mode)的节点,在接收到报文后,会发送ACK或错误帧吗?
答:不能,只能保证至少一个节点应答了这帧报文。
答:会的,只要接收节点计算这帧crc正确,那就会发送ACK的,即使软件层面不会收到这一帧。
PS: 第1问和第2问可以说明,在CAN总线上发送报文,没有办法在链路层保证报文一定被所有节点可靠接收,必须通过上层协议设计应答机制。
答:不会。(理论上,只听模式下CAN控制器可以认为它的TX与收发器的TX已经被断开,只有RX可以接收总线上的信号)
NOTE:作为监控记录或抓包设备(CAN分析仪记录仪等)的节点一定要处于只听模式,否则会引入监控设备的发送信号(ACK或错误帧等)。
答:利用CAN控制器发送的重发机制。除了发送节点以外,将所有其他节点设置为只听模式。再用发送节点发送一帧远程帧(远程帧最短,每秒发送帧数可以达到最大),将不会有节点应答ACK,CAN控制器将启用重发机制,在链路层持续重发该报文。每秒报文数可以达到该波特率下最大值。(硬件重发机制,相邻报文波形之间几乎不存在延时)
PS: 可以用这个方式测试CAN设备的最大接收能力。在1M波特率下大部分USB-CAN设备在这种负载下都会丢包,可以用逻辑分析仪进行抓波形并统计每秒实际发生的报文数量。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。