CAN バス & J1939 デコーダー
車両ネットワーク分析ツール - DBC 対応
CAN ID デコーダー
CAN ID を解析し、優先度、PGN、ソースアドレス、宛先アドレスなどの J1939 パラメータを抽出します。
ドキュメント
このツールは、CAN(コントローラエリアネットワーク)および SAE J1939 プロトコル分析を包括的にサポートします。CAN は自動車および産業アプリケーションで主流の通信規格であり、J1939 は大型車両やオフロード機器向けに CAN を拡張したものです。
J1939 プロトコルの理解
SAE J1939 は、29 ビット拡張識別子を持つ CAN 2.0B 上に構築された上位レイヤープロトコルです。29 ビット CAN ID は、メッセージのルーティングと優先度を定義する複数のパラメータをエンコードします。
J1939 識別子構造
29 ビット識別子は個別のフィールドに分割されます。最上位から最下位まで、優先度(3 ビット)、予約/EDP(1 ビット)、データページ(1 ビット)、PDU フォーマット(8 ビット)、PDU 特定(8 ビット)、ソースアドレス(8 ビット)で構成されます。このエンコーディングにより、車両ネットワーク内で効率的なメッセージ優先順位付けとアドレッシングが可能になります。
パラメータグループ番号(PGN)
PGN は J1939 の基本的なアドレッシングメカニズムです。送信されるデータの種類と内容を識別します。PGN は PDU フォーマットと PDU 特定フィールドから導出され、解釈はメッセージが PDU1 形式か PDU2 形式かによって異なります。
PDU フォーマットが 240(0xF0)未満の場合、メッセージは宛先指定アドレッシングの PDU1 形式です。PDU 特定フィールドには宛先アドレスが含まれます。PDU フォーマットが 240 以上の場合、メッセージはブロードキャストメッセージ用の PDU2 形式であり、PDU 特定は PGN 自体の一部になります。
信号抽出方法
J1939 および CAN プロトコルは、8 バイトのデータフレーム内に複数の信号をエンコードします。各信号には、定義された開始ビット位置、ビット長、バイトオーダーがあります。このツールは、Intel(リトルエンディアン)と Motorola(ビッグエンディアン)の両方のバイトオーダー規則をサポートしています。
物理値は、標準式を使用して生の信号値から計算されます:物理値 = 生の値 × 係数 + オフセット。この変換により、バイナリセンサー読み取り値を温度、圧力、速度などの意味のある工学単位に変換します。
一般的な J1939 PGN
- PGN 65262(0xFEEE)- エンジン温度 1:エンジン冷却水温、燃料温度、オイル温度の読み取り値を含みます。
- PGN 61444(0xF004)- 電子エンジンコントローラ 1:実際のエンジントルク、ドライバー要求トルク、エンジン回転数(RPM)を報告します。
- PGN 65265(0xFEF1)- クルーズコントロール/車速:ホイールベースとエンジンベースの車速測定値を提供します。
- PGN 65269(0xFEF5)- 周囲条件:気圧、周囲温度、エンジン吸気温度を含みます。
- PGN 65263(0xFEEF)- エンジン液体レベル/圧力:燃料供給圧力、オイル圧力、冷却水圧力を報告します。
実用的なアプリケーション
- ECU 開発:組み込みコントローラ開発と統合テスト中にメッセージ形式を検証します。
- 車両診断:ライブ CAN トラフィックを分析して通信問題のトラブルシューティングとセンサー読み取り値の検証を行います。
- フリートテレマティクス:燃料消費監視、エンジン稼働時間追跡、予知保全のために J1939 データを解析します。
- パワートレインキャリブレーション:パフォーマンスチューニングと排出ガス規制適合検証のためにエンジンパラメータを抽出します。
- プロトコル学習:実際のメッセージ例のハンズオンデコードを通じて J1939 プロトコル構造を学びます。
バイトオーダー規則
Intel(リトルエンディアン)は最下位ビットとバイトから始まり、x86 プロセッサや多くの現代の ECU で一般的に使用されます。Motorola(ビッグエンディアン)は最上位ビットとバイトから始まり、CAN や自動車アプリケーションで伝統的に使用されています。正確な信号解釈には、正しいバイトオーダーを選択することが重要です。
ツール機能の概要
この包括的な CAN バスデコーダーは、4つの主要な機能モジュールを提供し、さまざまな車両ネットワーク分析のニーズに対応します:
- ID デコード:29 ビット J1939 拡張 ID または 11 ビット標準 ID を解析。優先度、PGN、ソースアドレス、宛先アドレス、PDU フォーマット情報を抽出。
- データ抽出:設定可能な開始ビット、ビット長、バイトオーダーを使用して 8 バイト CAN フレームから信号値を抽出。符号付き/符号なし整数と IEEE 754 浮動小数点型をサポート。
- ログビューア:Linux candump、Vector ASC、PCAN TRC を含む複数の形式の CAN ログファイルを解析。CAN ID でフィルタリングし CSV にエクスポート可能。
- DBC デコーダー:Vector CANdb++ DBC ファイルをロードしてすべての信号を自動デコード。メッセージの閲覧、信号の検索、ノードの表示、クイック信号デコードを実行。
DBC ファイルサポート
DBC(CAN データベース)ファイルは、メッセージ、信号、ノード、値説明を含む CAN 通信の完全な構造を定義します。このツールは Vector CANdb++ 形式の DBC ファイルを完全にサポートします。
DBC ファイルをロードすると、定義されたすべてのメッセージとそのサイクルタイムと信号数を閲覧し、名前や単位で数千の信号を検索し、ECU ノードとその送信メッセージを表示し、事前定義された信号定義を使用して生の CAN データをすばやくデコードできます。
DBC パーサーは以下をサポート:メッセージ定義 (BO_)、信号定義 (SG_)、ノード宣言 (BU_)、値説明 (VAL_)、コメント (CM_)、属性(サイクルタイムや初期値を含む)、Intel/Motorola バイトオーダー、符号付き/符号なし値型。
サポートされる入力形式
柔軟性のために複数のデータ入力形式をサポート:
- 16進数スペース区切り:バイトをスペースで区切った標準形式。例:
FF 00 11 22 33 44 55 66 - 16進数スペースなし:スペースなしの連続し16進数文字列。例:
FF00112233445566 - Base64:Base64 エンコードされたバイナリデータ。例:
/wARIjNEVWY= - C/C++ 配列:C スタイルの配列表記。例:
0xFF, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66
ログファイル形式
ログビューアは一般的な CAN ログ形式の自動検出をサポート:
- Linux candump:
(1234567890.123456) can0 18FEF100#FF00112233445566 - Vector ASC:
0.000000 1 18FEF100x Rx d 8 FF 00 11 22 33 44 55 66 - PCAN Trace:
1) 1234.5 18FEF100 8 FF 00 11 22 33 44 55 66
トランスポートプロトコルサポート
J1939 トランスポートプロトコル (TP) は 8 バイトを超えるメッセージの送信を可能にします。TP 再組み立てを有効にすると、マルチフレームメッセージ(BAM および CMDT)を自動的に完全なデータペイロードに組み合わせて分析できます。
関連ツール
Modbus RTU/ASCII/TCPパーサー
Modbus RTU/ASCII/TCPプロトコルフレームの解析、エンコード、デバッグ。CRC-16/LRC計算とシリアルデバッグ機能を搭載
オンラインシリアルポートデバッガー
ダウンロード不要のブラウザベースのシリアルデバッグツール、Web Serial APIでリアルタイム監視
LoRaWAN デコーダー
LoRaWAN PHYPayload パケットのエンコードデコード、エアタイム計算、OTAA/ABP 入網とデータフレーム対応
MQTTコーデック
MQTTプロトコルパケットのエンコード・デコードツール、詳細フィールド分析、Hexビューア、パケットビルダー付き