XCPの動向と適用事例:測定/キャリブレーションプロトコルXCP入門(3)(2/2 ページ)
今回は、XCPを使った測定/キャリブレーションのシステム構成からその応用例、動向と適用事例について紹介する。
EV/HEV自動車開発におけるXCPの利用
次に、EV/HEV自動車の開発において考えられるXCPを使った測定/キャリブレーション要件について説明します。
(1)複数ECUの測定/キャリブレーション
HEVの場合、動力源がエンジンとモータの2つに増え、EV/HEVともにバッテリーや回生充電など統合的な制御が求められます。これはシングルマスター、マルチスレーブのXCPの機能に加えて、ネットワークが分離された状態においてネットワークごとにマスターになれる測定/キャリブレーションツールが求められます。
(2)高速測定を低負荷かつ安定した負荷で
モータの制御周期は100[μsec]程度が要求され、これに同期した高速な測定が求められます。さらに、同期測定そのものの負荷、つまりXCPの測定処理負荷もこの場合できる限り低いことが求められます。通常ですと測定処理負荷は、測定点数に比例した一定量が測定周期ごとに掛かることになりますから、測定周期がこのように高速になるほど、負荷が本来の制御周期に及ぼす影響は大きくなりますが、モータなどでは制御の周期がこの影響で揺らぐようなことは許されません。つまり、低負荷であると同時に測定点数などの測定状況の変化において、安定した負荷であることが求められます。
適用事例:XCP on EthernetとベクターのVX1000システムを使った測定
前述の高速測定を行いつつ、低負荷かつ安定した負荷での測定を実装する事例としてベクターの「VX1000システム」について説明します(図5)。
このシステムでは、ECUに直接XCPスレーブドライバを組み込まず、同期測定のタイミングを示す処理を行うドライバだけを使用します。このドライバを使って、ECUとVX1000システムとはNexus Class3やRTP、DMMと呼ばれるマイコン内部のメモリトレースとして使えるインターフェイスでつながり、VX1000システムと測定/キャリブレーションツールはXCP on Ethernet(TCP/IPまたはUDP/IPを使用)でつながります。測定/キャリブレーションツールからはXCPに見えますが、ECUでは直接XCPスレーブの処理を行わずにプロトコルの変換処理をVX1000システムが行います。
続いて、ECUの測定周期のタイミングにおいて、ドライバの処理からどのようにXCPの同期測定となるかについて説明します。
- XCPと同様に制御アプリケーションが測定のタイミングを通達します。通達の方法についても、ドライバの関数呼び出しとイベントチャンネルを引数として持つ点も同じです。
- 1番の関数中では測定点ごとの処理を一切行わず、単純にタイミングのみをNexus Class3インターフェイスで通達します。このため、この処理時間は測定点数に影響されないうえに、低負荷になります。
- VX1000システム側で2番のタイミングを検出し、その時点でのトレースデータを基にXCPのDTOパケットを作り、XCP on Ethernetを使用してマスターに送信します。
各XCPネットワークプロトコルを直接使った場合とVX1000システムの違いについて表1に示します。
ECUインターフェイス | ECU追加ソフトウェア | 測定速度 | ECUの負荷 | |
---|---|---|---|---|
XCP on CAN | XCPスレーブドライバ | 50[KBPS] | 中程度 | |
XCP on FlexRay | XCPスレーブドライバ | 50〜400[KBPS] | 高負荷 | |
VX1000システム | 測定タイミング処理のみ | 5000[KBPS] | 非常に低負荷 | |
表1 ECUインターフェイスごとの特徴 |
モデルベース開発におけるXCPの利用
モデルベース開発(MBD)においては、実行可能なモデルを「プラント」と呼ばれる制御対象とともにシミュレーションすることができます。このシミュレーション実行の精度が上がってくると、実物と同じようにキャリブレーションを行うことも可能になります。さらに、キャリブレーションを行ってプラントに合致したモデルにすることで十分なシミュレーションができるようにする必要性もあります。このようにシミュレーション段階での測定とキャリブレーションが可能、かつ必要というのがモデルベース開発における要件の1つになります。
モデルはシミュレーションだけでなく、自動コード生成によってC言語などのコードに変換され、実際に動作することになりますが、この場合において従来と同じように測定/キャリブレーションが必要になり、さらには前述のシミュレーション段階でのキャリブレーション結果を基にしたキャリブレーションができること、つまり、キャリブレーションパラメータの引き継ぎができることが望ましくなります。
以下でシミュレーションと実物という2つの局面での測定/キャリブレーションの実現について考えてみます。
シミュレーション
測定/キャリブレーション対象は、シミュレーションされた仮想モデルであり、これに対する仮想インターフェイスによって実現する必要があります。
実物
測定/キャリブレーション対象は、ECU化されており、これに対するCANやFlexRayなどの実ネットワークを使って実現する必要があります。このようなシミュレーションと実物の違いについてもXCPはネットワークに依存しませんから、このどちらでも測定/キャリブレーションが可能になり、モデルベース開発のすべての段階での利用が可能です。
適用事例:ベクターの「CANape」と「Simulink XCP Server」を使った測定/キャリブレーション
シミュレーション時におけるモデルへの測定/キャリブレーションを行う事例として、ベクターの「Simulink XCP Server」について説明します(図6)。
Simulink XCP Serverは、MATLAB/Simulinkで動作しているシミュレーションモデルの測定/キャリブレーションが実現できるように、XCPのインターフェイスをモデルに設けるためのSimulinkのブロックであり、ベクターのキャリブレーションツール「CANape」とXCP on Ethernetを通じてつながります。これにより、実物の環境とまったく同じ測定/キャリブレーションをシミュレーション時でも利用できます。一般的に、シミュレーションは実物の実行時間よりも速く動作しますから、実行時間よりも速くキャリブレーションを行うことができ、このときに求められたキャリブレーションパラメータはシミュレーションの精度にも依存しますが、実物とほぼ同じ値であり、これを基に実物での測定からはじめることで、最終的なキャリブレーション完了までの時間を早めることができます。
XCPは、ネットワークに依存せず、どのような形であってもECUへのアクセスが可能な状態からの測定/キャリブレーションを実現するために開発・規格化されました。
元来は、CCPの成功実績からその機能を拡張し、あらゆる車載ネットワークにおいても測定/キャリブレーションを実現することが主目的でしたが、その柔軟性から測定器の汎用インターフェイスとして使用され、さらにはモデルベース開発におけるシミュレーション時と実物時の違いにおいても同じインターフェイスとして利用されるようになっています。XCPは、今後も測定/キャリブレーションのあらゆる局面において利用されることが予想されます。本連載が、皆さまのXCPについての理解と導入の一助となれば幸いです。(連載完)
http://www.vector-japan.co.jp/
http://www.vector-japan.co.jp/vj_webinars_jp.html
Copyright © ITmedia, Inc. All Rights Reserved.