我知道J1939和CAN总线之间的一般区别。例如ID位计数。我也知道J1939可以让你发送超过8个字节,而CAN总线不能做到这一点。J1939还提供2个节点之间的点对点通信。这个特点使我感到困惑。在什么情况下,我们需要在2个节点之间进行点对点通信?当其他节点继续广播时,这两个节点(进行点对点通信(不会错过广播的数据吗?此外,在哪些情况下,我们应该更喜欢使用J1939而不是CAN总线?而不是我们希望在一帧中使用8个字节的时间。
J1939是一个运行在can总线上的协议,J1939不能制动can基础上的规则。关于您的点对点问题,一些J1939 PGN需要与另一个ECU建立连接,以便使用传输协议会话传输数据包。另一种情况是,当你需要向另一个ECU请求消息,而你不想从网络上的另一个电子控制单元获得数据时,原因可能是该特定消息没有定期广播,你只能根据请求获得,例如请求发动机小时数、身份证号、地址声明。与8字节的有效载荷相关,一些PGN可能包含超过8字节的数据,为了传输这些字节,您使用传输协议会话,该会话由几个具有特定格式的8字节消息组成
CAN和J1939之间没有区别。J1939构建在CAN 2.0b之上。当某些设备使用J1939传输协议(J1939.TP(使用BAM发送大消息时,其他设备可以接受或忽略此消息。但有一个重要的限制-设备一次只能发送一条BAM消息。该设备还可以在50ms内只发送一个消息部分。因此,如果设备发送400字节,则需要(400/7*50(~2.9s。在此期间,设备无法发送任何其他BAM消息。如果设备发送CM消息,它可以向ECU 1发送一条消息,向ECU 2发送另一条长消息。J1939主要用于trucs和总线。若你们为卡车创建设备,你们必须使用j1939。