ni.com is currently undergoing scheduled maintenance.
Some services may be unavailable at this time. Please contact us for help or try again later.
自動車が安全性の向上、性能向上、環境負荷の低減、快適性の向上を継続するためには、自動車の電子制御ユニット (ECU) 間で通信されるデータの速度、量、信頼性を向上させる必要があります。 複数のセンサ、アクチュエータ、電子制御ユニットを組み合わせた高度な制御および安全システムは、既存の標準であるコントローラエリアネットワーク (CAN) が提供する同期と性能を超えるニーズを持ち始めています。 今日の先進的な車両は5つ以上の異なるCANバスを使用しており、帯域幅の要件増加に伴い、自動車エンジニアは次世代の組込ネットワークを求めています。 OEM、ツールサプライヤ、エンドユーザとの長年のパートナーシップを通じて、FlexRay規格は次世代車両の新たな課題に応える車載通信バスとして登場しました。
自動車のような複雑な組込設計に新しいネットワーク規格を導入するには時間がかかります。 FlexRayは現在及び将来の主流の車載ネットワークの課題を解決しますが、他の2つの主要な車載規格であるCANとLINを置き換えるものではありません。 コスト最適化と移行の課題軽減のために、次世代自動車にはハイエンド用途向けにFlexRay、主流のパワートレイン通信向けにCAN、低コストのボディエレクトロニクス向けにLINが搭載されます。
| バス | LIN | CAN | FlexRay |
| 速度 | 40 kビット/秒 | 1 Mビット/秒 | 10 Mbit/s |
| コスト | $ | $$ | $$$ |
| ワイヤ | 1 | 2 | 2または4 |
| 主な用途 | ボディエレクトロニクス (ミラー、パワーシート、アクセサリ) | パワートレイン (エンジン、トランスミッション、ABS) | 高性能パワートレイン、安全 (ドライブバイワイヤ、アクティブサスペンション、アダプティブクルーズコントロール) |
FlexRayの動作を理解することは、自動車設計および生産プロセスのすべての側面のエンジニアにとって重要です。 この記事では、FlexRayの基本概念について説明します。
FlexRayの多くの側面は、高性能を維持しつつ過酷な環境下でコストを抑える設計となっています。 FlexRayは非シールドツイストペアケーブルを用いてノードを接続します。 FlexRayは、1対または2対のワイヤで構成されるシングルチャンネルおよびデュアルチャンネル構成をサポートします。 各ワイヤペアの差動信号により、高価なシールドなしで外部ノイズの影響を低減します。 ほとんどのFlexRayノードは、トランシーバやマイクロプロセッサに電力を供給するための電源およびグランドワイヤも備えています。
デュアルチャンネル構成は、耐障害性の強化および帯域幅の向上を提供します。 第1世代のほとんどのFlexRayネットワークは配線コストを抑えるために1チャンネルのみを使用していますが、アプリケーションの複雑化や安全要件の増加に伴い将来は両チャンネルを使用します。
FlexRayバスの両端は、信号線のペア間に抵抗を接続する形で終端処理が必要です。 マルチドロップバスでは、終端が必要なのは端のノードのみです。終端処理が過剰または不足するとFlexRayネットワークが壊れる可能性があります。 ネットワークにより異なりますが、典型的なFlexRayネットワークのケーブルインピーダンスは80~110Ωで、端点ノードはこのインピーダンスに合わせて終端されます。FlexRayノードをテスト環境に接続する際、終端処理はフラストレーションの主な原因の1つです。最新のPCベースのFlexRayインタフェースは、配線を簡素化するためにオンボード終端抵抗を備えていることがあります。
FlexRay、CAN、LINがイーサネットなどの従来ネットワークと異なる点の一つは、そのトポロジ、すなわちネットワークレイアウトです。FlexRayはシンプルなマルチドロップパッシブ接続およびより複雑なアクティブスター接続をサポートします。 車両のレイアウトとFlexRay使用レベルに応じて適切なトポロジの選択は、設計者がコスト、性能、信頼性を最適化するのに役立ちます。
FlexRayは一般的に、複数のECUを1本のネットワークケーブルで接続するシンプルなマルチドロップバストポロジで使用されます。 このトポロジはCANとLINで使用されるものでOEMに馴染みがあり、第1世代FlexRay車両で人気があります。 各ECUはバスのコア「トランク」から小さな距離まで「分岐」できます。ネットワークの両端には終端抵抗が設置され、信号反射問題をなくしています。 FlexRayはCANの1 Mbit/sに対し最大10 Mbit/sの高周波動作のため、信号整合性問題を避けるために終端とレイアウトに細心の注意を払う必要があります。 マルチドロップ形式は、類似のレイアウトを持つ車両ハーネスに適合し、取り付けを簡素化し車両全体の配線を削減します。
FlexRay規格は、中央のアクティブノードに接続する個別リンクからなる「スター」構成をサポートします。 このノードはPCのイーサネットネットワークにあるハブと機能的に類似しています。 アクティブスター構成により、FlexRayネットワークを長距離で運用したり、ネットワーク一部の障害時に信頼性を高めるためのセグメント化が可能になります。スターの分岐の一つが切断または短絡しても他の分岐は動作を継続します。 長距離配線は大きな電動機からの電磁ノイズなどの環境ノイズを伝導しやすいため、複数の分岐を使用すると露出配線が減りノイズ耐性が高まります。
バスとスターのトポロジを組み合わせてハイブリッドトポロジを形成できます。将来のFlexRayネットワークは、バストポロジの使いやすさとコストメリットを活かしつつ、必要に応じて車内で信頼性と性能を高めるためにスター型ネットワークを適用するハイブリッド構成になる可能性があります。
FlexRayプロトコルは、決定論的な時間枠 (マイクロ秒単位) で届く静的なデータと、CANライクな動的イベント駆動データの両方に対応する独自のタイムトリガプロトコルです。FlexRayは、静的および動的データに事前定義された空間を割り当てる事前設定された通信サイクルを使用し、静的フレームと動的フレームのハイブリッドを実現しています。この空間はネットワーク設計者により設定されます。 CANノードが通信に適切なボーレートを知っていればよかったのに対し、FlexRayノードは通信のためにネットワーク全体の設定を理解する必要があります。
どのマルチドロップバスでも同様ですが、一度にバスにデータを書き込めるノードはひとつだけです。 2つのノードが同時に書き込むとバス内で競合し、データが破損します。 バス上の競合を防ぐために様々な方式が使われています。例えばCANでは、ノードはバスで優先度の高いメッセージを見たら譲るというアービトレーション方式を使用しました。 この方法は柔軟で拡張性がありますが、高速データ転送やタイムリーなデータ配送は保証できません。 FlexRayは時分割多元接続 (TDMA) 方式で複数ノードを管理します。 すべてのFlexRayノードは同一のクロックに同期し、自身の順番が来るまでバスへの書き込みを待ちます。 TDMAスキームはタイミングが一定のため、FlexRayはネットワーク上のノードへのデータ配送の確定性を保証できます。これは、ノード間の最新データに依存するシステムに多くの利点をもたらします。
組込ネットワークは、閉じた構成で製品組み立て後は変更されない点でPCベースのネットワークと異なります。 これにより、PCが新たな有線または無線ネットワークに参加するときのように、実行時のデバイス自動検出や構成の仕組みが不要になります。 ネットワーク構成を事前に設計することで、設計者は大幅なコスト削減と信頼性向上を実現します。
FlexRayのようなTDMAネットワークを正常に動作させるには、すべてのノードの正しい構成が不可欠です。 FlexRay規格は多様なネットワークに適応可能で、設計者はネットワーク更新速度、確定的データ量、動的データ量などのパラメータ間でトレードオフができます。 FlexRayネットワークはそれぞれ異なるため、各ノードは参加前に適切なネットワークパラメータでプログラムされなければなりません。
ノード間のネットワーク構成の維持を促進するため、FlexRay委員会はパラメータの保存と転送形式をエンジニアリング過程で標準化しました。 フィールドバス交換フォーマット (FIBEX) ファイルはASAM定義の標準で、設計者、プロトタイパー、検証者、テスターがネットワークパラメータを共有し、ECU、テストツール、HILシミュレーションなどを迅速に構成してバスにアクセス可能にします。
FlexRay通信サイクルはFlexRay内のメディアアクセス方式の基本要素です。サイクルの期間はネットワーク設計時に固定され、一般には約1~5msです。 通信サイクルは主に4つの部分から成り立っています。
図1:通信サイクル
図2:FlexRayマクロティックの詳細
FlexRayネットワークの最小の実用時間単位はマクロティックです。FlexRayコントローラは自己同期しローカルクロックを調整して、マクロティックが全ノードで同時に起こるようにします。特定ネットワークに設定可能ですが、マクロティックは通常1マイクロ秒です。 マクロティックが同期されるため、それに依存するデータも同期されます。
図3: 3つのECUが4つの予約スロットにデータを送信するスタティックセグメントの図
スタティックセグメント (青色部分) はサイクル内で多くの時間トリガフレームをスケジュールする領域です。 セグメントはスロットに分割され、各スロットには予約済みデータフレームが含まれます。 スロットの時間が来ると、予約されたECUがそのスロットでデータ送信できます。その時間を過ぎると、ECUは次のサイクルまで待機しなければなりません。 サイクル内の正確な時点がわかっているため、データは決定論的でプログラムはデータの経過時間を正確に把握できます。これは、等間隔データに依存する制御ループ計算に非常に便利です。 図3は、3つのECUが4つのスタティックスロットを使用する単純なネットワークを示します。FlexRayネットワークには最大数十のスタティックスロットが含まれることがあります。
図4: ECU #2が欠落しているスタティックスロットの図
ECUがオフラインまたは送信しない場合、そのスロットは開いたままで他のECUは使いません (図4を参照)。
図5:1つのECUがデータをブロードキャストしているFlexRayのダイナミックスロットの図
多くの組込ネットワークは少数の高速メッセージと多数の低速かつ重要度の低いメッセージで構成されます。 スタティックスロットが多すぎるとFlexRayサイクルが遅くなるため、ダイナミックセグメントは不定期送信データを許容します。 このセグメントは固定長で各サイクルに配置できる固定量のデータに制限があります。データの優先順位付けとして、ダイナミックセグメントで送信対象の各データフレームにはミニスロットが割り当てられます。 ミニスロットは通常マクロティック (1マイクロ秒) 長です。 優先度高のデータは動的フレーム開始に近いミニスロットを受け取ります。
ミニスロットが来るとECUは短時間の送信機会があります。 送信しなければ動的フレーム内の位置を失い次のミニスロットへ進行します。 このプロセスはECUが送信を選択するまでミニスロットを順送りします。 データ放送中は以後のミニスロットはECUのデータ送信完了まで待機します。動的フレームウィンドウが終了すると、低優先度ミニスロットは次サイクルまで待機します。
図6:ダイナミックスロット図は、ECU 2および3がミニスロットで送信し、低優先度ミニスロットに時間がないことを示します。
図5は最初の7ミニスロットが送信しなかったため、ECU #1が自身のミニスロットで送信していることを示します。 図6は最初の2つのミニスロットを使うECU #2および#3を示し、ECU #1が送信時間を得られていません。 ECU #1は次サイクルの送信機会まで待つ必要があります。
ダイナミックセグメントの最終結果は、CANで使用されるアービトレーションスキームに似ています。
シンボルウィンドウは主にコールドスタートサイクルなど特別なサイクルのメンテナンスと識別に使用されます。 多くの高位アプリケーションはシンボルウィンドウに関与しません。
ネットワークアイドル時間はECU間で既知のあらかじめ定義された長さです。 ECUはこの待機時間を使って前サイクルで発生したドリフト補正を行います。
FlexRayは単一またはデュアルチャンネル通信で拡張可能な耐障害性を提供します。セキュリティ重要なアプリケーションでは、バスに接続されたデバイスが両チャンネルを使用することがあります。必要ない場合は片方のチャンネルのみ接続したり、両チャンネルを使って非冗長データ転送で帯域を増やすことも可能です。
物理層では、FlexRayは高速エラー検出と信号化および独立したバスガードによるエラー抑制を提供します。バスガードはクラスタの通信スケジュール通りでない通信からチャンネルを保護する物理層のメカニズムです。
図7:FlexRayフレームの詳細
スタティックおよびダイナミックセグメントの各スロットにFlexRayフレームがあります。フレームは以下の3区分で構成されます: ヘッダ、ペイロード、トレイラー。
図8:FlexRayフレームのビット単位の内訳
ヘッダは5バイト (40ビット) で、以下のフィールドを含みます。
フレームIDはフレーム送信スロットを決め、イベントトリガフレームの優先順位付けに使います。ペイロード長はフレームで転送されるワード数です。ヘッダCRCは転送中のエラー検出に使用されます。サイクルカウントは、通信サイクルが開始される毎にインクリメントされるカウンタの値を含みます。
図9:FlexRayフレームのペイロード
ペイロードはフレームが転送する実データを含みます。FlexRayペイロードまたはデータフレームの長さは最大127ワード (254バイト) で、CANと比べ30倍以上です。
図10:FlexRayフレームのトレイラー
トレイラーにはエラー検出用の3つの8ビットCRCがあります。
図11:フレームから信号への変換
FlexRayデータはバイト単位で表現されます。 大半のアプリケーションは単位、スケール、制限を伴う実数の十進数値としてデータを表現します。 FlexRayフレームから1ビットまたは複数ビット/バイトを抽出しスケールとオフセットを適用すると、ECU間で実パラメータを伝達するのに有用な信号が得られます。 多くのECUプログラムはFlexRayデータを信号として扱い、信号から未加工フレームデータへの変換はドライバや下位の通信プロトコルに任せます。
典型的な車両には数百から数千の信号があります。 信号のスケール、オフセット、定義、位置は変化する可能性があり、FlexRayネットワークはこれらをFIBEXデータベースに保存します。これにより設計者はコードに信号名を指定するだけでFlexRayネットワークプログラミングが簡単になります。コンパイラまたはドライバは、プログラムがECUまたはテストシステムに更新されると、最新のスケールおよびオフセット情報を取得します。
図12:FlexRayネットワークの同期プロセスの簡略図
FlexRayは外部同期クロック信号なしでネットワークノードを同期させる独自機能を持ちます。 これには2種類の特別なフレームを使用します。スタートアップフレームと同期フレームです。 FlexRayクラスタを起動するには、少なくとも2つの異なるノードがスタートアップフレームを送信する必要があります。 FlexRayバスの起動はコールドスタートと呼ばれ、スタートアップフレームを送るノードは通常コールドスタートノードと称されます。 スタートアップフレームはネットワークの全ノードに開始を告げるスタートトリガに類似します。
ネットワーク開始後、全ノードは内部発振器をネットワークのマクロティックに同期させる必要があります。 これは2台以上の同期ノードを用いて行います。 これらはネットワーク上の任意の2ノードで、起動時に特別な同期フレームをブロードキャストするよう事前指定されます。 他のノードは同期フレームのブロードキャストを待ち、連続ブロードキャスト間の時間を測り内部クロックをFlexRay時間に調整します。同期フレームはFIBEX設定でネットワークに指定されます。
ネットワークが同期してオンラインになると、ネットワークアイドル時間 (図中の白色部分) が測定され、サイクル間のクロック調整に用いられ、厳密な同期を維持します。
図13:1つのFlexRayサイクルで4つの車輪位置を読み取り車両制御出力を更新するインサイクル制御
FlexRayの高度機能の一つにインサイクル制御があります。 図13は4輪位置情報がフレームのスタティックスロットで送信される例です。車輪位置が中央コントローラ#5の最終更新コマンド前に送信されるため、コントローラは同一通信サイクル内で高速処理および出力が可能です。 これによりFlexRayネットワークで極めて高速な制御レートが実現します。
フィールドバス交換フォーマット (FIBEX) は、ASAMコンソーシアムによるXMLベースの標準化ファイル形式で、自動車ネットワークの記述に使用されます。FlexRayの標準形式であるFIBEXは多くの異なる自動車プロトコルに対応し柔軟な標準です。FIBEXデータベースは通常車両ネットワーク設計者が生成し、特定部門のエンジニアと共有されます。FIBEXファイルとサポートするPCインタフェースまたはECUにより、手動設定なしで車両ネットワークと簡単に通信できます。
FIBEXには以下を含む多くのネットワーク情報が記述されます。
FIBEXの詳細については、FIBEXの概要記事を参照してください。
NIはFlexRayネットワークとPCを接続する高性能なPCIおよびPXI FlexRayインタフェースを提供しています。 PCベースのインタフェースを使いFlexRay対応ECUで多様なエンジニアリング作業が可能です。
NI FlexRayインタフェースの詳細については、NI-XNET FlexRayプラットフォームの概要を参照してください。