- Jelina 概要
- CommBridge
- データ収集
SAE J1939 収集
1. ノードの作成
Section titled “1. ノードの作成”(1) CommBridge の【スマートツイン】を開き、左側で【デバイス接続】に切り替えます。

(2) SAE J1939、データ処理、MQTT アップロードの各プラグインをプラグインワークスペースへ順にドラッグし、3 つのノードを作成します。

(3) SAE J1939 → データ処理 → MQTT アップロードの順に 3 つのノードを接続します。

2. プランの作成
Section titled “2. プランの作成”(1) SAE J1939 をダブルクリックし、【プランを追加】をクリックします。

(2) 接続設定を入力し、dbc ファイルをインポートして【次へ】をクリックします。

(3) グループとデータポイントの情報を確認します。

(4) 【完了】をクリックし、収集プランの追加を完了します。

(5) プランのスイッチをオンにし、【保存】をクリックします。

3. 結果の確認
Section titled “3. 結果の確認”(1) 【デバイス接続】の【デプロイ】をクリックし、デプロイを完了します。

(2) 【スマートツイン】に切り替え、SAE J1939 ノードにマウスポインターを合わせると、ノード情報の一覧が表示されます。

(3) プランをクリックし、そのプランの各グループに含まれるデータポイントのリアルタイムデータと履歴データを確認します。

4. 設定項目の説明
Section titled “4. 設定項目の説明”| パラメーター | 前提条件 | 説明 | 形式 | 例 | 備考 |
|---|---|---|---|---|---|
| プラン名 | ユーザーが設定するプランの名前 | 必須 | can 収集 | ||
| CAN インターフェース | デバイスに実装されている CAN ポートに応じて選択します | ドロップダウンから選択 | vcan0 | ||
| DBC | 下記を参照 | DBC ファイル | testType.dbc | ||
| 名前の設定方法 | Hex Number | ||||
| 優先アドレス | ドロップダウンから選択 | 128 | |||
| 返却データ型 | 収集するリアルタイムデータの型 | ドロップダウンから選択 | Phy | ||
| Socketcand | socketcand を有効にするかどうか。Socketcand はネットワークインターフェース経由でコンピューターの CAN インターフェースにアクセスできます | Yes、No | No | ||
| Socketcand ポート | データのリモートデバッグに使用します | 数値 | |||
| 名前 | 優先アドレスが Hex Number | Name は 64 ビット(8 バイト)のラベルで、各 ECU に一意の識別情報を割り当てます | 0x7758 | ||
| 自動アドレス設定ビット | 優先アドレスが Properties | ECU が送信元アドレスを自動変更できるかどうか。1 は許可、0 は固定 | 数値、0、1 | 0 | |
| 産業グループ | 優先アドレスが Properties | 車両が属する産業区分 | 数値、範囲:[0,7] | 0 | |
| デバイスクラスインスタンス | 優先アドレスが Properties | 同じデバイスクラス内のインスタンスを識別する番号 | 数値、範囲:[0,15] | 0 | |
| デバイスクラス | 優先アドレスが Properties | SAE が定義する 7 ビットの「装置/システム」分類 | 数値、範囲:[0,127] | 0 | |
| 機能コード | 優先アドレスが Properties | 車両システム内で ECU が実行する具体的な機能 | 数値、範囲:[0,255] | 0 | |
| 機能インスタンス | 優先アドレスが Properties | 同じ機能のインスタンス番号。同じ機能を実行する複数の ECU を識別します | 数値、範囲:[0,31] | 0 | |
| ECU インスタンス | 優先アドレスが Properties | 同じ物理 ECU モデルのインスタンスを識別します | 数値、範囲:[0,7] | 0 | |
| 製造者コード | 優先アドレスが Properties | SAE が割り当てる 11 ビットの製造者識別子 | 数値、範囲:[0,2047] | 0 | |
| 識別番号 | 優先アドレスが Properties | 製造者が定義する 21 ビットのシリアル番号 | 数値、範囲:[0,2097151] | 0 |
注意:
- DBC は元のデータ構造を定義します。以降に行うグループ(メッセージ)とデータ(シグナル)の変更は、すべてこの dbc 構造へマージされます。
- 返却データ型:Raw は生値、Phy は物理値、PhyWIthUnit は単位付きの物理値を返します。
- 通信には TCP/IP 接続と専用プロトコルを使用し、CAN フレームと制御コマンドを送信します。現在はクラシカル CAN のみに対応し、CAN FD には対応していません。
- 優先アドレス:Hex Number、Properties。
- J1939 ネットワークでは、2 つのノードに同じアドレスを使用できません。アドレス競合を防ぐため、64 ビットの「名前」と 8 ビットの「アドレス」を組み合わせてノードを識別します。名前の構造は次のとおりです。
- 任意アドレス対応ビット、長さ 1 ビット。0 はネットワーク管理者がアドレスを静的設定したノード、1 はアドレスを動的かつランダムに割り当てるノードを表します。
- 産業グループ、長さ 3 ビット。一般的な値:000(汎用)、001(道路車両:トラック、バスなど)、010(農業)、011(建設)など。
- 車両システムインスタンス、長さ 4 ビット。
- 車両システム、長さ 7 ビット。
- 予約ビット。
- 機能、長さ 8 ビット。
- 機能インスタンス、長さ 5 ビット。
- ECU インスタンス、長さ 3 ビット。
- 製造者コード、長さ 11 ビット。
- 識別番号、長さ 21 ビット。
グループの追加
Section titled “グループの追加”| パラメーター | 説明 | 形式 | 例 |
|---|---|---|---|
| グループ名 | ユーザーが設定するグループの名前 | 必須 | t_msg_1_unsigned |
| メッセージ名 | メッセージの機能や用途を表す名前 | 必須。英数字とアンダースコアのみ使用可。数字で始めることは不可 | t_msg_1_unsigned |
| 優先度 | 3 | ||
| パラメーターグループ番号 | 0x0 | ||
| データ長コード | データ長コード(DLC):クラシカル CAN の DLC 0 |
数値、範囲:[0,8] または [0,15] | 8 |
| 送信ノード | メッセージの送信元(Transmitter)、つまりそのメッセージを送信するデバイス(Node) | ドロップダウンから選択、既定値は Vector__XXX |
Vector__XXX |
| メッセージの説明 | メッセージの役割や機能を説明し、理解しやすくするための任意の項目 | 文字列 |
注意:
- グループは dbc ファイルのメッセージ(Message)に相当します。
- メッセージ(グループ)に送信ノードを指定しない場合は、
Vector__XXXを設定する必要があります。
データの追加
Section titled “データの追加”| パラメーター | 前提条件 | 説明 | 形式 | 例 |
|---|---|---|---|---|
| シグナル名 | データの機能を表す、ユーザー定義のシグナル名 | |||
| サスペクトパラメーター番号 | ||||
| シグナルモード | シグナルの伝送モード | ドロップダウンから選択 | ||
| 開始ビット | メッセージ内でシグナルが始まる位置(Start Bit)。0 から数え、CAN フレーム内の格納位置を決定します | 単位:bit | 0 | |
| 値の型 | シグナルのデータ型 | ドロップダウンから選択 | Intel | |
| バイトオーダー | メッセージ内でのシグナルの格納順序 | ドロップダウンから選択 | ||
| スケーリング係数 | 生値を実際の物理値に変換するための係数 | 浮動小数点数 | ||
| オフセット | データの物理値を計算する際のオフセット(offset) | 浮動小数点数 | ||
| 最小値 | シグナルの範囲を制限するための物理値の最小値 | 浮動小数点数 | ||
| 最大値 | シグナルの範囲を制限するための物理値の最大値 | 浮動小数点数 | ||
| 単位 | シグナルの物理単位 | 文字列 | ||
| 受信ノード | シグナルを受信するノード名(receiver)。1 つ以上を指定し、シグナルの宛先デバイスを表します | ドロップダウンから選択、既定値は Vector__XXX |
||
| 説明 | シグナルの物理単位。例:km/h、°C、m/s | 文字列 | ||
| 計算 | データのエイリアスを使用してユーザーが定義する式 | |||
| 長さ | 値の型が Unsigned/Signed | シグナルが占めるビット数(ビット長) | 単位:bit、[1,64] | |
| 多重化値 | シグナルモードが Signal 以外 | 多重化シグナルがどの値になったときに、このシグナルを有効にするかを設定します |
注意:
- シグナルモード:Signal、Multiplexor、Multiplexed。
- 値の型:Unsigned(符号なし整数)、Signed(符号付き整数)、Float(単精度浮動小数点数)、Double(倍精度浮動小数点数)。
- バイトオーダー:Intel バイトオーダー(リトルエンディアン)、Motorola バイトオーダー(ビッグエンディアン)。
- 開始ビット:シグナルの最下位ビット(LSB、Least Significant bit)の位置。
- 終了ビット:シグナルの最上位ビット(MSB、Most Significant bit)の位置。
- 分解能とオフセット:物理値とネットワーク値の変換に使用します。ネットワーク値 = (物理値 - オフセット) ÷ 分解能。
- シグナルに受信ノードを指定しない場合は、
Vector__XXXを設定する必要があります。
5. DBC ファイルの関連パラメーター
Section titled “5. DBC ファイルの関連パラメーター”DBC ファイル(CAN Database File)は、CAN(Controller Area Network)バス上のメッセージとシグナルの定義を記述する標準ファイル形式です。
(1) Node(ノード)
ノードは、ネットワーク内のデバイスを論理的に表したものです。各ノードはメッセージの送信元または受信先になります。
1). DBC ファイルの形式:
BU_: Node1 Node2 Node3BU_:ノード一覧を定義します。- その後に、すべてのノード名を空白で区切って記述します。
(2) Message(メッセージ)
メッセージは CAN ネットワークで伝送する最小のデータ単位です。複数のシグナルを含み、固定の ID と長さを持ちます。
1). DBC ファイルの形式:
BO_ <メッセージ ID> <メッセージ名>: <データ長コード> <送信ノード>2). 例:
BO_ 1001 SpeedMessage: 8 Node1BO_:メッセージを表します。1001:メッセージ ID。SpeedMessage:メッセージ名。8:データ長コード(DLC)。Node1:送信ノード。
(3) Signal(シグナル)
シグナルはメッセージ内のデータ単位であり、速度、回転数、温度などの具体的な物理量を表します。
1). DBC ファイルの形式:
SG_ <シグナル名> : <開始ビット>|<長さ>@<バイトオーダー><値型の符号> (<スケーリング係数>,<オフセット>) [<最小値>|<最大値>] "<単位>" <受信ノード>2). 例:
SG_ Speed : 0|16@1+ (0.1,0) [0|200] "km/h" Node2BO_:メッセージを表します。
主なパラメーターの説明
Section titled “主なパラメーターの説明”- d
| 63 (MSB) | 62-60 | 59-56 | 55-49 | 48 | 47-40 | 39-35 | 34-32 | 31-21 | 20-0 (LSB) |
|---|---|---|---|---|---|---|---|---|---|
| 任意アドレス | 産業グループ | 車両システムインスタンス | 車両システム | 予約ビット | 機能 | 機能インスタンス | ECU インスタンス | 製造者コード | 識別番号 |
| 1 bit | 3 bits | 4 bits | 7 bits | 1 bit | 8 bits | 5 bits | 3 bits | 11 bits | 21 bits |
- シグナルモード
| シグナルモード | 意味 |
|---|---|
| Signal | 特別なマーカーや関係を持たず、データを直接格納する通常のシグナル。 |
| Multiplexor | 多重化の識別に使用するマルチプレクサーシグナル。メッセージに含める他のシグナルのグループを決定します。例えば、1 つのメッセージに複数のデータ形式を格納できる場合に、使用する形式を選択します。 |
| Multiplexed | マルチプレクサーシグナルに紐付けられた多重化シグナル。マルチプレクサーシグナルの値によって、そのシグナルを伝送するかどうかが決まります。例えば、多重化値が 1 の場合に、特定の多重化シグナルのグループを伝送します。 |