ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

『ISOBUS 入门』第 04 节 底层协议:CAN、J1939 与 ISOBUS 的分工

『ISOBUS 入门』第 04 节 底层协议:CAN、J1939 与 ISOBUS 的分工 ISOBUS 的报文看起来是一串十六进制,但它背后叠着三层约定:CAN 决定位怎么发、错怎么纠;J1939 决定报文叫什么、怎么寻址、长了怎么分片;ISO 11783 在农业场景把上面两层固定下来,并补了功能与应用语义。三层各管一段,混在一起看就容易出判断错误——很多「解码不对」的问题其实出在第一层,很多「功能不生效」的问题出在第三层。1. CAN 2.0B:帧、仲裁与错误处理一帧 CAN 报文由帧起始、仲裁场、控制场、数据场、CRC 场、应答场与帧结束构成。标准帧使用 11 位标识符,扩展帧使用 29 位,其余字段结构相同。J1939 与 ISOBUS 都使用扩展帧。几个容易被忽略的机制细节,在排查时很有用:位填充。发送方在连续 5 个同极性位之后插入一个反极性位,接收方再去掉。8 字节数据帧最多插入 24 个填充位,最大帧长 132 位。位填充错误是「线束或位定时有问题」的典型信号之一。CRC 与应答。经典 CAN 的 CRC 为 15 位;接收方在应答槽拉一个显性位表示收到,没有节点应答就是应答错误。非破坏性仲裁。多个节点同时发送时,逐位比较,显性覆盖隐性,标识符数值小的报文先发出去,失败的节点在下一轮重发,报文内容不会被打断。这就是「优先级」在物理层的实现方式。五种错误类型。位错误、填充错误、CRC 错误、格式错误、应答错误。发送方检测到错误时错误计数 +8,接收方检测到错误时 +1。错误计数决定了节点状态:状态条件行为Error Active发送/接收错误计数均小于 128正常参与总线,可发主动错误标志Error Passive发送计数 128 至 254,或接收计数不小于 128只发被动错误标志,发送后额外等待Bus-Off发送错误计数达到 255退出总线,不再参与通信节点进入 Bus-Off 后,需要检测到 128 次连续的 11 个隐性位才能回到 Error Active,也就是 1408 个位时间。换算成时间:125 kbit/s 约 11.26 ms,250 kbit/s 约 5.63 ms,500 kbit/s 约 2.82 ms,1 Mbit/s 约 1.41 ms。这组数字在排障时有两个用法。第一,判断「节点偶发静默后自行恢复」的性质:静默时长与上表量级接近,方向应指
返回列表