TSMasterで車両CANトレースで車輪速度を見ることについて
始める前に
この文章の出処はPICODE(피아이코드)の李さんが運営しているTistoryブログからです。
リンク:https://hsl9.tistory.com/m/33
TSMasterの使い方についてこのブログを作成しようとしています。そのためにはTSMasterを紹介しなければなりません。 TSMasterを導入する前に、車両CAN通信を説明する必要があります。車両CAN通信を説明する前に、車両制御システムを説明する必要があります。このように考えると、物語をどこでどのように始めるべきか窮屈だ。だから、まずTSMasterでできることを先に披露することにする。まるで水泳を学ぼうとする人に、水泳の振る舞いを一つ一つ分けて説明する前に泳ぐ姿を見せてくれれば、学びたい人は全体についてある程度概念をとった状態で、各部分の詳細をより簡単かつ迅速に理解できるようになることを願っています。
概要
車にはいくつかの制御システムがあります。エンジン制御、ブレーキ制御など。そのような制御システムは、通信を介して協調制御と呼ばれることをする。車両システムが通信する方法の1つがCANである。 CAN:Controller Area Network。
車両通信開発のために(当然)通信内容を測定し分析しなければならない。 TSMasterは、測定や分析など、通信開発に必要な機能を集めた車両通信開発のためのPC用プログラムです。
PCは物理的な違いでCAN ネットワークに直接接続できない。 CANをUSBに変換する変換器が必要である。
このブログは練習を想定している。 この練習では、あらかじめ測定したCAN通信データ(トレースファイル)から車輪の速度信号を探してグラフで表示してみる。
この過程を通してCANの基本的な特徴を学ぶ。
CAN Trace(トレース) File
練習に使用する CAN トレース ファイル: 20240725_venue2024_07_26_09_17_29.blf
添付トレースは、李さんの車(現代自動車ヴェニュー)で直接測定したトレースである。
TSMasterがデフォルトでトレースファイルを保存する経路があるが、すぐにはこれを無視し、各自が希望するところに保存する。
blf はVector 社固有のファイルフォーマット(バイナリファイル、"Binary" Logging File)である。 自動車産業におけての事実上の標準である。
TSMasterでblfを読んで再生することができる。 TSMasterでCANデータを測定してblfファイルとして保存することもできる。
CANトレース再生
TSMasterをダウンロードしてインストールを完了して実行し、下図のようにメインメニューがあるTSMaster実行ウィンドウまで到達したと仮定する。
メインメニューのAnalysis/Bus ReplayをクリックしてBus Playbackウィンドウを開く。
Bus PlaybackウィンドウでSelect Playback Fileボタンをクリックすると、blf選択ウィンドウが開く。
blfを選択してBus Playbackウィンドウに登録する。
Bus Playbackウィンドウに登録されたblfのうち一つをblfを選択し、Start Playbackボタンをクリックしてblfを再生する。
再生はオンラインあるいはオフラインで行うことができる。
オンライン再生は変換器を通じてCANメッセージが伝送される。
オフライン再生は変換器を通じてCANメッセージが伝送されない。
オフライン再生は再生速度の変更が可能だ。
トレース窓
Trace(トレース)ウィンドウが開き、blf のデータが表示される。
トレースウィンドウを見ると、左からタイムスタンプ、メッセージID、データ長、データカラムを見ることができる。 これを通じて次のことが分かる。 CAN通信はメッセージで構成される。 メッセージはIDとデータを持っている。 データは長さが決まっている。 データは数字の羅列/束である。
CANの特徴を簡単に見てみよう。
CANの特徴
メッセージ
CAN はメッセージ(message)単位で通信する。
各メッセージは固有のid を持つ。
メッセージidという。 一般的に0x386のように16進数で表示する。
メッセージidを記憶して指すのは不便だ。 メッセージごとに覚えやすい名前をつけて呼ぶ場合が多い。 (メッセージの名前)
はい、0x386の代わりに WHL_SPD11
メッセージidが低ければ優先順位が高い。 (後で原理を説明する。)
メッセージの内容(data)は0 以上の信号(signal)である。
はい、WHL_SPD11メッセージには、WHL_SPD_FL(Wheel Speed Front Left)、WHL_SPD_FR、WHL_SPD_RL、WHL_SPD_Rという信号があり得る。
メッセージの長さ(data length)は0~8 バイトまで1 バイト単位で定めることができます。
はい、WHL_SPD11 メッセージの長さを8 バイトとする。
CAN-FDはメッセージの長さを最大64バイトまで可能です。 ただし、CAN-FD の場合、メッセージの長さを1 バイト単位で定めることはできない。 (後で別に説明する。)
CANデータベース
各メッセージ内の各信号に対して、データの長さ、メッセージ内でデータの位置、データ数値を(速度のような)物理量信号に変換する方法をあらかじめ定義し共有する。
はい、WHL_SPD11メジシの中にWHL_SPD_FLは14ビット長の信号で、メッセージ内のデータ領域の0~13番ビットまで部分を占め、速度範囲で0~512kphまで表示するように定義することができる。 すると、データの十進数値1は物理量速度0.03125 kphに相当する。 この他にもデータを物理量に変換するのに必要な変換法を定義する。
各メッセージの各信号に該当するデータを物理量に変換する方法を集めた表構造をCANデータベースあるいはCANマトリックス(matrix)というである。
WHL_SPD_FR、WHL_SPD_RL、WHL_SPD_RRなどもWHL_SPD_FLと類似した方法で定義すると··· メッセージの中のデータ領域に各信号が占める位置と部分は下図のように表示できる。 これをメッセージレイアウトという。
CAN データベースには、各信号の十進数値を物理量に変換するのに必要な信号定義がされている。
バス(bus)
コントローラは一対の電線で接続されている。すべてのコントローラが共同で使用する通信線という意味でバスと呼ばれる。
各電線をCANH/CAN hi(gh)、CANL/CAN lo(w)と呼ぶ。
電磁干渉を防ぐためにCANH、CANLワイヤーはねじれている。 (twisted-pair cable)
バスラインの端にはCANHとCANLを接続する120オームの終端抵抗がある。 (バス別に一対が存在する。)
特定の瞬間バスには1つのコントローラからの1つのメッセージだけが送信され、バスに接続されているすべてのコントローラはそのメッセージを受信できる。 (broadcast方式)
特定の瞬間バスには1つのコントローラからの1つのメッセージだけが送信され、バスに接続されているすべてのコントローラはそのメッセージを受信できます。 (broadcast方式)
参考
以下のリンクのYouTubeビデオを参照してください。
CANとCAN FDプロトコル
CANとCAN FD の概要
トレースウィンドウで
トレースウィンドウをもう一度見てみましょう。
以下の項目がわかります。
CANバスにはどのIDのメッセージがありますか?
各IDのメッセージの長さは何バイトですか?
各IDのメッセージはどのくらいの頻度で送信されますか?
以下の項目は不明です。
メッセージにはどの信号が含まれていますか?
各信号の物理量はいくらですか?私たちが知りたいのは、各信号の物理量です。
各信号の物理量を見るには?
各信号を変換する方法を定義したCANデータベースファイルを読み、変換方法に従ってCANメッセージのデータから信号を抽出して変換し、トレースウィンドウに信号を表示できるようにする必要があります。
CANデータベースは通常dbc形式のファイルとして保存されます。 dbcはVector独自のファイルフォーマットです。自動車産業内は事実上標準である。
TSMasterはdbcファイルをロードできる。
dbcの読み込み
メインメニュー/ 分析/ CANデータベースの表示のボタンをクリックする。
CAN Databaseウィンドウが開く。
CANチャンネルを選択してください。 [データベースの追加]ボタンをクリックする。
dbcファイルを選択する。
dbcの内容がCAN Databaseウィンドウに表示される。
TSMasterはdbcを読み取り、独自のファイル形式(pdbc)に変更して、「プロジェクトディレクトリ/ DB / CAN」ディレクトリに保存する。
TSMasterでdbcエディタを起動して編集すると、pdbcが自動的に更新される(90%以上のユースケース)。
TSMasterに関係なくdbcエディタを起動して編集すると、CAN Databaseでdbcを手動で削除して追加しなければpdbcが更新されない。