J1939 RTR 问题
J1939 RTR Issue
我有使用 candump 和 cansend 的 rtr 帧问题。
转储广播数据没有问题。
架构 -
Raspberry pi 使用 pican shield 从 J1939 模拟器读取数据。
我运行 candump 接收总线上的所有消息。然后当我为 pgn feec 执行 cansend 时从模拟器获取一个 ack 帧。我请求一个预编程的 VIN,但我什么也没得到。这是我从 candump 看到的:
can0 18FEF500 [8] 7D FF FF 40 25 4B FF FF '}..@%K..'
can0 18FEE900 [8] D1 4B 03 00 D1 4B 03 00 '.K...K..'
can0 18FEF700 [8] FF FF FF FF E0 01 FF FF '........'
can0 18FECA00 [8] 03 FF 00 00 00 00 00 00 '........'
can0 00FEEC00 [0] remote request
can0 18E80000 [8] 01 FF FF FF FF EC FE 00 '........'
can0 0CF00300 [8] FF 7D 7D FF FF FF FF FF '.}}.....'
can0 18FE6C00 [8] FF FF FF FF FF FF 80 7D '.......}'
can0 0CF00400 [8] FF FF 7D 80 7D FF FF FF '..}.}...''
E800 PGN 是标准确认消息。
我正在发送消息,而 candump 是 运行ning:
cansend can0 00feec00#r
基本上,我没有取回 VIN 的 PGN。有任何想法吗?
原来这里有几个问题。
1- J1939 不支持#r
2- 您不会通过直接请求 pgn 来请求 pgn。该方法是将数据发送到处理请求的特定pgn。下面的示例:
EA 00 是发送数据的 PGN。数据消息中包含我们要请求的 pgn (LSB),因此 PGN FEE5 现在是 E5FE。需要三个字节,这就是为什么 00 在下面的消息中。
这是引擎小时数的工作请求:
cansend 18EA00FF#E5FE00
和响应:
21 00 00 00 8F 01 00 00
我有使用 candump 和 cansend 的 rtr 帧问题。
转储广播数据没有问题。
架构 - Raspberry pi 使用 pican shield 从 J1939 模拟器读取数据。
我运行 candump 接收总线上的所有消息。然后当我为 pgn feec 执行 cansend 时从模拟器获取一个 ack 帧。我请求一个预编程的 VIN,但我什么也没得到。这是我从 candump 看到的:
can0 18FEF500 [8] 7D FF FF 40 25 4B FF FF '}..@%K..'
can0 18FEE900 [8] D1 4B 03 00 D1 4B 03 00 '.K...K..'
can0 18FEF700 [8] FF FF FF FF E0 01 FF FF '........'
can0 18FECA00 [8] 03 FF 00 00 00 00 00 00 '........'
can0 00FEEC00 [0] remote request
can0 18E80000 [8] 01 FF FF FF FF EC FE 00 '........'
can0 0CF00300 [8] FF 7D 7D FF FF FF FF FF '.}}.....'
can0 18FE6C00 [8] FF FF FF FF FF FF 80 7D '.......}'
can0 0CF00400 [8] FF FF 7D 80 7D FF FF FF '..}.}...''
E800 PGN 是标准确认消息。
我正在发送消息,而 candump 是 运行ning:
cansend can0 00feec00#r
基本上,我没有取回 VIN 的 PGN。有任何想法吗?
原来这里有几个问题。
1- J1939 不支持#r
2- 您不会通过直接请求 pgn 来请求 pgn。该方法是将数据发送到处理请求的特定pgn。下面的示例:
EA 00 是发送数据的 PGN。数据消息中包含我们要请求的 pgn (LSB),因此 PGN FEE5 现在是 E5FE。需要三个字节,这就是为什么 00 在下面的消息中。
这是引擎小时数的工作请求:
cansend 18EA00FF#E5FE00
和响应:
21 00 00 00 8F 01 00 00