Linuxを使用してCANインターフェイスを確認するには?

Linuxを使用してCANインターフェイスを確認するには?

組み込みシステムのCANインターフェースを確認したいです。 2つのCANポートがあります:can0can1

私はそれらをすべて次の順序で取得します。

# ip link set can0 type can bitrate 1000000 dbitrate 2000000 fd on
# ip link set can0 up
# ip link set can1 type can bitrate 1000000 dbitrate 2000000 fd on
# ip link set can1 up

私はそれらを互いに接続し(CANH<-> CANHCANL<->、CANLおよびGND<-> GND)、trabnsceiversの後ろの両側に終端抵抗を使用しました。今トラフィックを送信し、着信can0トラフィックをcan1

私はcandump -c -a any電話を始めます:

# cansend can0 01a#11223344AABBCCDD

しかし、その後、次のようなカーネルエラーがたくさん発生します。

[ 1506.337694] rcar_canfd 10050000.can can0: ch erfl 401 txerr 128 rxerr 0
[ 1506.337702] rcar_canfd 10050000.can can0: Bus error
[ 1506.337707] rcar_canfd 10050000.can can0: ACK Error

128表現はCAN_ERROR_PASSIVE_THRESHOLD私が読んだ内容を示しています。

エラー手動:この状態では、CANノードはまだデータを送信できますが、エラーが検出されると「手動エラーフラグ」が発生します。さらに、3ビットの一時停止時間に加えて、CANノードはデータ転送を再開する前に追加の8ビット(送信一時停止時間とも呼ばれる)を待つ必要があります(他のCANノードがバスを制御できるようにする)。

源泉:https://www.csselectronics.com/pages/can-bus-errors-intro-tutorial#:~:text=A%20CAN%20node%20enter%20the,if%20the%20TEC%20exceeds%20255

しかし、何も表示されませんcandump。上記のメッセージが表示されますが、dmesg(オシロスコープを使用して)CANラインのデータを表示できます。

これらのエラーは何を意味し、エラーを修正する方法と実際にデータを表示するのですかcandump

ベストアンサー1

おすすめ記事