我知道J1939和CANBus之间的一般区别。例如ID位计数。另外,我知道CANBus不能让J1939发送超过8个字节的数据。J1939还提供两个节点之间的点对点通信。这个特性把我搞糊涂了。在什么情况下,我们需要两个节点之间的点对点通信?当其他节点继续广播时,这两个节点(进行点对点通信)不会错过广播的数据吗?另外,在哪些情况下,我们应该更喜欢使用J1939而不是CANBus?而不是我们希望在一帧中使用8个字节的时间。
发布于 2020-12-30 13:43:14
CAN和J1939之间没有区别。J1939构建在CAN2.0b之上。当某些设备使用J1939传输协议(J1939.TP)发送大消息时,其他设备可以接受或忽略该消息。但是有一个重要的限制-设备一次只能发送一条BAM消息。该设备还可以在50ms内仅发送一个消息部分。因此,如果设备发送400字节,这将需要(400/7*50) ~ 2.9s。在此期间,设备无法发送任何其他BAM消息。如果设备发送CM消息,它可以向ECU1发送一条消息,向ECU2发送另一条长消息。J1939主要用于传输和总线。如果为卡车创建设备,则必须使用j1939。
发布于 2021-12-14 17:40:30
J1939是一个运行在CANBus上的协议,J1939不能控制can基础上的规则。关于您的点对点问题,一些ECU需要与另一个J1939建立连接,以便使用传输协议会话传输数据包。其他情况是,当您需要向另一个ECU请求消息,并且您不想要来自网络上另一个ECU的数据时,原因可能是该特定消息没有定期广播,您只能在请求时获得该消息,例如,请求引擎小时数、标识号、地址声明。与8字节的有效载荷相关,一些PGN可能包含超过8字节的数据,为了传输这些字节,您可以使用一个传输协议会话,该会话由几个具有特定格式的8字节消息组成
https://stackoverflow.com/questions/64062124
复制相似问题