Vehicle Network Toolbox

CAN、J1939、および XCP プロトコルを使用した車載ネットワークとの通信

 

Vehicle Network Toolbox™ には、CAN、CAN FD、J1939、および XCP のメッセージの送受信や符号化、復号化を行うための MATLAB® 関数や Simulink® ブロックが用意されています。このツールボックスでは、業界標準の CAN データベースファイルによって特定の信号を識別して解析し、CAN Bus Monitor アプリを使用して復号化した信号を可視化できます。A2L 記述ファイルを使用すると、CAN またはイーサネットを通じて XCP 経由で ECU に接続できます。また、MDF ファイルに格納されているメッセージや測定データにアクセスできます。

このツールボックスを使用することで、車載ネットワークとの通信が容易になり、これにより、CAN バスのライブデータの監視やフィルタリング、解析が可能になります。また、メッセージをロギングおよび記録して、後で解析や再生を行うこともできます。仮想 CAN バス上でメッセージ トラフィックをシミュレートしたり、ライブネットワークや ECU に接続したりできます。Vehicle Network Toolbox は、Vector、Kvaser、PEAK-System、National Instruments® の CAN インターフェイス デバイスをサポートしています。

今すぐ始める:

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 メッセージの送受信を行うことができます。

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

CAN パケットの送受信

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

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

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

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

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

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 ファイルの測定情報やイベント情報に基づいて作成されています。

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

CAN トラフィックの可視化

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

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

Vehicle CAN Bus Monitor アプリによって表示される、ネットワークにおける CAN バスの実トラフィック。ディスプレイには生データが表示されます。CAN チャネルが .dbc データベースファイルに関連付けられている場合は復号化されたデータを表示するように設定できます。

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

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

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

A2L 記述ファイルの使用

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

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

MDF ファイルの操作

Vehicle Network Toolbox を使用すると、測定データ形式 (MDF) のファイルからデータを簡単にインポートすることができます。このツールボックスは、MDF 規格のバージョン 3.0 以上をサポートしています。MATLAB で MDF オブジェクトを作成すると、初期タイムスタンプ、データサイズ、チャネルグループ、チャネル名情報など、ファイルに関する基本的なプロパティを表示できます。MDF ファイルのサブセットを読み込むには、チャネル名または開始時間、および停止時間を指定します。既定では、結果の出力形式は timetable として返されるため、タイムスタンプ付きのデータで簡単に作業できます。

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

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

仮想チャネルの使用

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

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

CDFX ファイルの操作

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

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

新機能

MDF

Linux プラットフォームで MDF ファイルにアクセス

Simulink でのイベントベース送信

メッセージデータの変更が検知されたときのみ CAN メッセージを送信

これらの機能および対応する関数の詳細については、リリースノートを参照してください。