Vehicle Network Toolbox

MATLAB と Simulink を使用した CAN メッセージや CAN FD メッセージの送受信

CAN チャネルや CAN FD チャネルの設定

MATLAB の CAN チャネル関数と Simulink の CAN 設定ブロックを使用して、CAN または CAN FD 規格のいずれかで CAN バスとの物理的接続を確立する Vector CAN インターフェイス ハードウェアへの接続を定義できます。Vehicle Network Toolbox には、CAN インターフェイスのハードウェア設定 (バス速度やトランシーバーの設定など) のクエリや設定を行うための CAN チャネル関数が用意されています。また、他の CAN チャネルプロパティ (使用可能なメッセージの数や、そのチャネルで送受信されたメッセージの数など) を確認することもできます。Vector CAN データベースファイルを CAN チャネルに関連付けると、データベースに格納されている情報を使用して受信メッセージが自動的に表示されます。CAN チャネルを定義した後に、そのチャネルで CAN メッセージの送受信を行うことができます。

MATAB や Simulink から車両バスデータにアクセスするために使用されているラップトップに接続された自動車。

CAN プロトコルや CAN FD プロトコルを使用して、MATLAB を車両ネットワークに接続。

CAN メッセージの送受信

標準の CAN メッセージには、CAN メッセージ識別子 (標準は 11 ビット、拡張は 29 ビット)、タイムスタンプ、最大 8 バイトの CAN データを格納するためのプロパティが含まれます。CAN FD 送信用に設定されたチャネルでは、最大 64 バイトのデータを含むメッセージを保持することができます。

このツールボックスの送受信用の関数やブロックを使用することで、CAN チャネル経由で CAN メッセージの送受信を行うことができます。データセットが大きい場合は、オフラインでの解析用に CAN メッセージをロギングすることができます。

timetable 内の CAN メッセージと、それらを分析するためのライブスクリプト。

CAN メッセージやその信号をtimetable 形式で受信するための MATLAB コード。

CAN メッセージからの信号の構築と抽出

Vehicle Network Toolbox には、CAN メッセージの符号化および復号化のための関数とブロックが用意されています。CAN メッセージデータには、複数の信号を表すデータが含まれている場合があります。アンパック関数およびブロックでは、スタートビット、信号長、データ型、バイト順を指定できます。パック関数およびブロックでは、CAN メッセージ送信用データの構築に同じオプションを使用できます。

CAN メッセージの復号化のための Simulink モデル。

CAN Unpack ブロックを使用して CAN メッセージを復号化する Simulink モデル。

CAN メッセージのロギングと再生

ツールボックスの CAN Log ブロックを使用すると、モデルが受信した CAN メッセージを MAT ファイルに保存できます。保存後、CAN Replay ブロックを使用して、別の Simulink モデルでメッセージを再生できます。CAN Replay ブロックでは、ロギングされたデータのタイムスタンプが保持されるため、再生されたデータのタイミング特性は、記録されたデータのタイミング特性と同じになります。

車輪速度のスコープビュー。

記録された車両の試運転から再生された車輪速度データのプロット。

XCP プロトコル経由の通信

Vehicle Network Toolbox には、CAN またはイーサネットバスを通じて、自動車のキャリブレーション プロトコルである XCP を経由して ECU と通信するための関数とブロックが用意されています。XCP 経由で ECU と通信する場合、MATLAB または Simulink がマスターであり、ECU がスレーブデバイスです。複数の ECU と通信するには、複数の XCP チャネルを開きます。ECU ごとに、ECU 内の特定のメモリ位置でデータを読み書きできます。保護された ECU へのアクセスが存在する場合は、シードおよびキーのセキュリティを使用して ECU へのアクセスを開くことができます。また、このツールボックスには、A2L データベースファイルをリンクしたり、XCP チャネルのための動的な DAQ および STIM 測定リストを作成して表示したりするための関数やブロックも用意されています。これらのリストは、リンクされた A2L ファイルの測定情報やイベント情報に基づいて作成されています。

XCP データ収集を構成するための Simulink モデルと XCP Data Acquisition ブロックマスクを示す 3 つのウィンドウ。

ECU スレーブデバイスから測定値を取得するためのモデル。このモデルでは、XCP Configuration および XCP Transport Layer ブロック (上)、XCP Data Acquisition ブロック (左下) を使用して、PWM 信号の取得 (右下) を設定します。

J1939 プロトコル経由の通信

Vehicle Network Toolbox には、大型トラック業界で一般的に使用されている CAN ベースの高位プロトコルである J1939 経由で通信するための関数とブロックが含まれています。J1939 経由で通信する場合は、MATLAB 関数や Simulink ブロックを使用して通信を設定します。具体的には、データベース (.dbc) ファイルを J1939 経由の通信に関連付けたり、CAN インターフェイス ハードウェアを指定したり、J1939 パラメーター群を送受信したりするための関数やブロックを使用します。接続に関連付けられたデータベースファイルで定義されているパラメーターグループを使用して、ネットワーク上の信号データの符号化と復号化を行います。さらに、Simulink は、Address Claim 形式でネットワークノードとして動作するように設定することができます。

J1939 通信に使用される Simulink ブロックを示すモデル。

J1939 Transmit ブロックと J1939 Receive ブロックを使用して J1939 データの送受信を行うためのモデル。また、このモデルでは、J1939 Network Configuration ブロック、J1939 CAN Transport Layer Configuration ブロック、J1939 Node Configuration ブロックを使用して通信を設定しています。

CAN および CAN FD トラフィックの可視化

このツールボックスには、特定の CAN チャネルのアクティブなトラフィックを可視化する CAN Explorer アプリと CAN FD Explorer アプリが付属しています。これらのアプリは、MATLAB または Simulink で他のタスクを実行しながら使用できます。CAN データベースファイルが CAN チャネルに関連付けられている場合、メッセージはアプリで復号化され、正しい工学単位で表示されます。

アプリケーションにとって必要以上の情報がネットワーク上のトラフィックに含まれている場合は、CAN チャネルで受信する CAN メッセージの数を、CAN メッセージ識別子の特定の範囲に制限することが可能です。ツールボックスのフィルター関数やマスク設定を使用して、アプリケーションに必要なメッセージのみを受信することができます。

復号化された信号と信号の可視化を示す CAN FD バストラフィックのアプリビュー。

CAN FD Explorer アプリで表示されるネットワーク上の CAN FD バスのライブトラフィック。ディスプレイには、生データ、復号化された信号、および信号のプロットが表示されます。

Vector CAN データベースファイルの使用

Vehicle Network Toolbox では、Vector の CAN データベースファイルを CAN チャネルか、MATLAB または Simulink のメッセージに関連付けることで、アプリケーション固有のメッセージ名や信号名 (EngineMsg や EngineRPM など) と、スケールされた工学単位を使用して、CAN メッセージを符号化および復号化することができます。この業界標準のデータベースファイルでは、メッセージリストとコンポーネント信号を指定するだけでなく、関連する信号のビットのパック/アンパックの規則も規定されているため、このデータベースファイルを使用することで、CAN バスとのやり取りが容易になります。信号データ型、スタートビット、信号長、バイト順はすべて、データベース内のメッセージに対して事前定義されているため、簡単に信号を解析できます。

CAN データベースファイルを開き、メッセージや信号を表示する方法を示す 4 つのコードサンプル。

CAN データベースファイルに格納されている情報を使用してメッセージを表示する方法を示すコード例。

A2L 記述ファイルの使用

Vehicle Network Toolbox では、業界標準の A2L (ASAP2 とも呼ばれる) 記述ファイルを使用して、MATLAB または Simulink から XCP プロトコル経由で ECU と通信することができます。A2L 記述ファイルを使用すると、MATLAB プログラムや Simulink モデルから内部 ECU パラメーターにアクセスできます。A2L 記述ファイルには、特定のパラメーターに関連付けられたメモリアドレス、ストレージ構造、およびデータ型に関する情報が含まれています。このファイルには、システムパラメーター、センサー特性、補正因子などの格納値を RPM や摂氏温度などの物理的な単位に変換するためのルールも含まれています。このデータがあれば、データの解析やメモリアドレスの復号化を行わずに、キャリブレーションや測定作業を行うことができます。

A2L ファイルの解析および検査を行う MATLAB 関数。

XCP 接続で使用するために A2L ファイルに格納されている情報にアクセスする方法を示すコード例。Vector や Vector の仮想 CAN チャネルから無償提供されている XCP スレーブ シミュレーターが使用されています。

MDF ファイルの操作

Vehicle Network Toolbox を使用すると、測定データ形式 (MDF) ファイルのインポートおよびエクスポートを簡単に行えます。このツールボックスは、MDF 規格のバージョン 3.0 以上をサポートしています。MATLAB で MDF オブジェクトを作成すると、初期タイムスタンプ、データサイズ、チャネルグループ、チャネル名情報など、ファイルに関する基本的なプロパティを表示できます。また、MATLAB から MDF ファイルを作成したり、既存の MDF ファイルに timetable データを書き込んだりすることもできます。

MDF ファイルのサブセットを読み込むには、チャネル名または開始時間、および停止時間を指定します。既定では、結果の出力形式は timetable として返されるため、タイムスタンプ付きのデータで簡単に作業できます。

メモリに収まらない大きな MDF ファイルの場合は、MDF データストアを作成して、指定したパラメーターに基づいてデータをバッチでプレビューできます。また、データストアを作成して、類似する一連の MDF ファイルを簡単に処理することもできます。

プレビュー関数と変数エディターで MDF ファイルを検査するための MATLAB インターフェイス。

コマンドライン インターフェイスを使用して MDF ファイルをプレビュー後、変数エディターでデータを検査するコードの例。

仮想チャネルの使用

ネットワーク通信のテストやシミュレーションに、仮想的な CAN や CAN FD チャネルを使用することができます。仮想チャネルを使用すると、物理的なハードウェアを使用せずにループバック設定でモデルをテストできます。Vehicle Network Toolbox は、2 種類の仮想チャネルをサポートしています。MathWorks の仮想チャネルと、サードパーティの CAN インターフェイス ハードウェア ベンダーの仮想チャネルです。サードパーティ ベンダーの仮想チャネル (Vector、Kvaser など) では、対応するベンダーのドライバーまたはハードウェア サポート パッケージをインストールする必要があります。MathWorks 仮想チャネルはツールボックスに付属しており、他のドライバーやサポートパッケージは必要ありません。

MathWorks の仮想チャネルを使用してデータを送受信するための Simulink ブロック。

ハードウェアを一切使用せずに CAN データを送受信するための MathWorks の仮想チャネルの使用を表示する Simulink モデル。

CDFX ファイルの操作

Vehicle Network Toolbox で提供される関数 cdfx を使用して、ASAM キャリブレーション データ形式 (CDFX) のデータにアクセスします。CDF ファイルのキャリブレーション データを Simulink モデルの入力として使用します。

ASAM.C.MAP パラメーターの上昇と降下を一定間隔で表したプロット。

CDFX ファイルからのキャリブレーション データを Simulink モデルへの入力として使用し、ASAM.C.MAP パラメーターのシミュレーション出力をプロット。