車載通信バスFlexRay概要

概要

FlexRayは、自動車メーカや主要サプライヤが共同で開発した、車載向け通信バス・システムの標準規格です。確定性が高い上に、フォールトトレラント機能があり、データ伝送速度が高いことが特徴です。ドライブバイワイヤやステアバイワイヤ、ブレーキバイワイヤなどのX-by-Wireアプリケーションに求められる、高いエラー耐性と時間確定性を備えています。本稿では、FlexRayの基本について解説します。

内容

車内通信要件高度化

自動車の安全性の改善や、性能の向上、環境に対する影響の軽減、快適性の強化を継続的に進めるには、車載ECU(Electronic Control Unit)間のデータ通信における速度とデータ容量、信頼性を高めなければなりま
せん。最新の自動車に搭載される制御システムや安全システムは、複数のセンサやアクチュエータ、ECUを
組み合わせて構成されており、車載通信バス・システムには高い同期機能や性能が求められます。ところが
車載通信バスの旧来の標準規格であるCAN(Controller Area Network)では、そうした要求に応えることが
難しくなっているのが実情でした。

現在は高級車であればCANバス・ネットワークが5組以上も搭載される状況になっており、バスの帯域幅を広げる必要に迫られていることから、自動車の設計エンジニアは、次世代の組込ネットワークを求めています。こうしたニーズに応えるべく、自動車メーカや電装品メーカ、ツールベンダが長年にわたって協議した結果、次世代の自動車に求められる新たな要件に対応する車載用通信バスとしてFlexRay規格が誕生しました。

自動車のように複雑度の高い組込システムでは、新しいネットワーク規格を採用するまでに長い年月を要します。FlexRayは、現時点ではハイエンドと位置付けられるが将来は主流になると予測される車載ネットワーク機能の実現に向けて、さまざまな課題を解決する技術だといえます。ただし、現在の車載ネットワークで広く普及している2つのネットワーク規格、すなわちCANとLIN(Local Interconnect Network)を完全に置き換えるものではありません。コストの最適化や、新規格への移行に伴うリスクの軽減という観点から、次世代の自動車では、1つの車両内で複数のネットワーク規格を用途に応じて使い分けるアーキテクチャが採用されると予想されます(表1)。例えば、高性能アプリケーションはFlexRay、パワートレイン向け通信にはCAN、低コストの車体(ボディ)制御用電装品向けにはLINを使う、といった具合です。 

バス規格LINCANFlexRay
伝送速度40 kbit/s1 Mbit/s10 Mbit/s
コスト$(低い)$$(比較的低い)$$$(高い)
ワイヤの本数1本2本2本または4本
主なアプリケーション車体制御用電装品(ミラー、電動シート、各種アクセサリ)パワートレイン(エンジン、トランスミッション、ABS)高性能パワーとレイン、安全機能(ドライブバイワイヤ、アクティブ・サスペンション、アダプティブ・クルーズコントロール)

表1: 主な車載ネットワーク規格

自動車の設計や製造といったプロセスに何らかの形で携わるエンジニアにとって、FlexRayの仕組みを理解しておくことはとても重要です。本稿では、FlexRayの核となるコンセプトについて説明します。

FlexRay基本コンセプト

FlexRayは、さまざまな側面からコストを低く抑えつつ厳しい環境下で最高の性能を発揮できるように設計されています。例えば、ECUなどのネットワーク・ノード間の接続には、非シールドのツイストペア・ケーブル(UTP:Unshielded Twist Pair)を利用します。1対のUTP(ワイヤは2本)からなるシングル・チャンネル構成と、2対のUTP(ワイヤは4本)からなるデュアル・チャンネル構成をサポートしています(図1)。各UTPは差動方式で信号を伝送するため、シールドを施した高価なワイヤを使うことなく、外来ノイズの影響を軽減できます。なおFlexRayのノードはほとんどの場合、内蔵するトランシーバとマイクロプロセッサに電源を供給するため、UTPのほかに電源用と接地(グラウンド)用のワイヤ1対も備えています。

図1: FlexRayのデュアル・チャンネル構成

デュアル・チャンネル構成を採用した場合、フォールトトレラント性の強化、もしくは帯域幅の拡張が可能になります。これら2つを同時に達成することもできます。第1世代のFlexRayネットワークのほとんどは、ワイヤのコストを抑えるためにシングル・チャンネル構成を採用しています。ただし、アプリケーションが複雑になり、安全性の要件も高度化しているため、今後はデュアル・チャンネル構成の採用が増えるでしょう。

FlexRayでは、ノード側で終端(ターミネーション)する必要があります。実際には、信号を伝送するUTPの2本のワイヤ間に終端用の抵抗器を挿入します。ただし終端が必要になるのは、バス・トポロジとしてマルチドロップ型を採用した場合のエンド・ノードだけです。終端を過度に施したり、逆に終端が不足したりすると、FlexRayネットワークが正常に動作しない可能性があるので注意してください。特殊な場合を除けば、一般的なFlexRayネットワークの場合は、ケーブルのインピーダンスは80~110 Ωなので、エンド・ノードがこのインピーダンスに整合するように終端します。

FlexRayネットワークの開発では、試作ノードをテストセットに接続する際の終端処理が大きな悩みの種になります。テストセットにPCベースの最新型FlexRayインタフェース装置を使えば、オンボードの終端抵抗が内蔵されているため、配線作業が簡単になります。

FFlexRayトポロジレイアウト

FlexRayやCAN、LINが、イーサネットなどの従来のネットワークと異なる点として、ネットワーク・トポロジとネットワーク・レイアウトが挙げられます。FlexRayは、シンプルなマルチドロップ・バス型のパッシブ接続や、複雑なネットワーク構成に向けたスター型のアクティブ接続のほか、両者を混在させるハイブリッド型にも対応しています。設計者は、開発案件ごとに車内のレイアウトやFlexRayの使用レベルに応じて適切なトポロジを選択することで、コストや性能、信頼性を最適化できます。以下に、FlexRayで利用できる各ネットワーク・トポロジについて説明します。

バストポロジ

FlexRayは通常、シンプルなマルチドロップ方式のバス型トポロジで使用され
ます(図2)。このトポロジは、1つのネットワーク・ケーブルを車内にレイア
ウトし、それに複数のECUが接続する構成をとります。このようなマルチ
ドロップ・バス型トポロジは、CANやLINと同じであり、自動車メーカに使用
経験が蓄積されています。このためFlexRayを搭載した第1世代の自動車では、
このトポロジが広く採用されています。

図2: バス型トポロジの構成例               

バス型トポロジでは、各ECUをバスの「主幹(トランク)」から短い距離の範囲内であれば「枝分かれ(ブランチ)」させてレイアウト可能です。ネットワークの終端部には、信号の反射を抑えるために終端抵抗を接続します。FlexRayのデータ伝送速度はCANの1M bit/sに比べて最大10M bit/sと高いため、FlexRayを採用する設計者はシグナル・インテグリティ(信号品質)問題が発生しないように、終端やネットワークのレイアウトを適切に行わなければなりません。マルチドロップ・バスのレイアウトは通常、ハーネスのレイアウトと似た形になります。このためネットワークの物理的な配置を簡略化できる上、車両全体の配線量の削減にも寄与できます。

スタートポロジ

FlexRayは、1個のアクティブ・ノードを中心に複数のノードを放射状に接続する、アクティブ・スター型トポロジにも対応しています(図3)。アクティブ・ノードはスター・カプラと呼ばれ、PCのイーサネット・ネットワークにおけるハブ装置と同じ役割を果たします。

アクティブ・スター型トポロジを採用すれば、FlexRayネットワークの伝送距離を延ばしたり、ネットワークを複数のセグメントに分けておき、一部がダウンしても通信機能を維持できるようにすることで、ネットワークの信頼性を高めたりすることが可能です。スター型では、分岐したネットワークの1つが切断されたり短絡したりしてもほかの部分は機能し続けます。一般にワイヤの配線距離が長くなればなるほど、大型の電気モータから放射される電磁波などの環境ノイズの影響を受けやすくなってしまいます。そこで、スター型にレイアウトすればセグメントごとの配線距離を短くできるため、ノイズに対するイミュニティ特性を高めることが可能です。

 

図3: スター型トポロジ

アクティブ・ノード(スター・カプラと呼ぶ)を中心として放射状に複数のノードを接続する、アクティブ・スター型の例を示しました。このほかFlexRayでは、アクティブ・ノードを介さずに直接複数のノードを相互接続する、パッシブ・スター型にも対応可能です。

ハイブリッドトポロジ

FlexRayは、バス・トポロジとスター・トポロジを組み合わせたハイブリッド型トポロジにも対応可能です(図4)。ハイブリッド・ネットワークは、バス型のメリットである使いやすさとコスト優位性を備えると同時に、スター型の強みであり車載ネットワークに不可欠な、高い性能と信頼性も提供します。このため将来的には、FlexRayネットワークはハイブリッド型の採用が進むとみられています。

図4: ハイブリッド型トポロジ 
バス型とスター型を混在させたトポロジです。

                                                                                                                       

FlexRayプロトコル

FlexRayは、独自のタイムトリガ・プロトコルを採用しています。すなわち、タイムトリガ方式とCANと同様のイベントトリガ方式の両方に対応しており、両者を混在させてデータを伝送することが可能です。タイムトリガ方式は、一定の周期で発生する固定長のフレームを使ってデータを送信する方式です。データが到着するタイミングを最短μs(マイクロ秒)オーダで予測できるため、通信の確定性が得られます。これに対しイベントトリガ方式は、データ送信要求が発生した際に可変長のフレームを使ってデータを送信する方式です。フレームの長さを動的に変化させることが可能なため、さまざまなフレームに対応できます。

FlexRayプロトコルでは、単一の通信サイクル内にタイムトリガに基づくStatic Segment(静的セグメント)とイベントトリガに基づくDynamic Segment(動的セグメント)が混在しています。各セグメントに割り当てられるデータ長は、設計者がネットワーク・コンフィギュレーションの段階であらかじめ設定しておきます。CANでは、各ノードが正確なボーレートさえ把握していれば通信できましたが、FlexRayではそうはいきません。各ノードが、ネットワーク内の全要素がどのようにコンフィギュレーションされているかを把握していなければ、通信は不可能です。

FlexRayの物理層では、バスに対して複数のノードが同時にデータを書き込むことはできません。これは、ほかのマルチドロップ・バス規格と同様です。2つのノードが同時にバスに書き込みをしようとすると、バス・コンテンション(バス上の競合)が発生し、データが破損する危険性があります。これを防ぐにはいくつか方法があります。例えば、CANではアービトレーション(調停)方式が採用されました。優先度の高いメッセージがバス上に流れることが分かると、それを把握したノードはほかのノードに優先権を譲る仕組みです。ただしこの方式は、柔軟性が高く拡張も容易ですが、高いデータ伝送速度に対応できないほか、データが受信側ノードに届くタイミングが保証されないという課題がありました。

そこでFlexRayでは、複数のノードをTDMA(Time Division Multiple Access:時分割多元接続)方式で管理しています。つまり、すべてのノードが単一のクロックを参照することで時間同期を確保しており、各ノードがそれぞれに割り当てられた通信サイクルでのみバスにデータを書き込む仕組みです。TDMA方式ではタイミングの一貫性が確保されるので、FlexRayはデータ伝送の確定性を保証することが可能です。すなわち、ネットワーク内の各ノードにおけるデータ受信の一貫性が保証されます。このため、ノード間でデータを常に最新の状態に更新する必要があるシステムにおいて、さまざまなメリットを得ることができます。

一般に、FlexRayなどの組込ネットワークはクローズドな構成を採り、製品の製造段階でいったん組み立ててしまえば変更することはありません。オープンな構成を採るPCベースのネットワークとは異なります。PCベースのネットワークでは、稼働中に有線ネットワークや無線ネットワークが新たに追加される場合があり、デバイスを自動的に検出してコンフィギュレーションする仕組みが必要ですが、組込ネットワークでは不要です。このため組込ネットワークの設計では、早い段階でコンフィギュレーションを固定することができ、コストの大幅な削減やネットワークの信頼性向上を実現できます。

ただし、FlexRayのようなTDMAネットワークを正常に動作させるためには、すべてのノードを適切にコンフィギュレーションする必要があります。FlexRay規格はさまざまなタイプのネットワークに対応できるため、設計者はトレードオフの関係にある複数のパラメータを調整することで、所望のネットワーク特性を得ることが可能です。具体的には、ネットワークの更新速度や、確定性を必要とするデータの量、長さが動的に変化するデータの量、といったパラメータです。通常、FlexRayネットワークは設計ごとに要件が異なるため、各ノードをバスに接続する前に、それぞれ適切なネットワーク・パラメータを設定する必要があります。

FlexRay規格の策定委員会は、ノード間のネットワーク・コンフィギュレーションを簡単に維持できるように、開発段階におけるパラメータの保存/転送用フォーマットを標準化しました。ASAM(Association for Standardization of Automation and Measuring system)で定義されたFIBEX(Field Bus Exchange)形式です。この形式のファイルを使うと、ネットワーク設計者やプロトタイプ製作担当者、検証担当者、テスト担当者がネットワーク・パラメータを簡単に共有でき、ECUやテスト・ツール、HIL(Hardware-in-the-Loop)シミュレーション・システムなどを素早くコンフィギュレーションすることが可能なため、バスへのアクセスが容易になります。

以下では、FlexRayプロトコルについてさらに詳しく見ていきます。

通信サイクル

通信サイクル(Communication Cycle)は、FlexRayネットワークにおいてメディア・アクセス処理の基盤となる要素です。サイクルの長さは、ネットワークの設計段階で固定され、通常は約1~5 msになります。各通信サイクルは、下の図5に示す通り、主に4つの部分で構成されています。

 

図5: FlexRayの通信サイクル

各サイクルは、「Static Segment」、「Dynamic Segment」、「Symbol Window」、「Network Idle Time」の4つの主要部分で構成されています。

 

  1. スタティック・セグメント(Static Segment)
    タイムトリガに基づき固定周期でデータを送るために用意されたセグメントで、スタティック・スロット(Static Slot)と呼ぶ固定長のスロット群で構成されています。確定性を必要とするデータ通信に使います。
  2. ダイナミック・セグメント(Dynamic Segment)
    イベントトリガに基づき非同期でデータを送るために用意されたセグメントで、ミニスロット(Minislot)と呼ぶ固定長のスロット群で構成されています。確定性を必要としない、イベント・ドリブンなデータの送信に使います。
  3. シンボル・ウィンドウ(Symbol Window)
    通常、ネットワークのメンテナンスやネットワーク始動時のシグナリングに使います。
  4. ネットワーク・アイドル・タイム(Network Idle Time)
    バスのアイドリングに使い、ノード・クロック間の同期を維持する役割を果たします。

FlexRayネットワークのグローバル同期クロックをマクロティック(Macrotick)と呼びます(図6)。FlexRayネットワーク内の各コントローラは、すべてのノードにおいてマクロティックが時間軸上の同じタイミングで発生するように、常にコントローラ自体の同期を取ってそれぞれのローカル・クロックを調整します。ネットワーク内のマクロティックがすべて同期しているため、マクロティックを時間基準とするデータも同様に同期するわけです。なお、マクロティックは通常1μsに設定されますが、場合によっては設計者が調整することも可能です。

 

 

図6: マクロティックの詳細図

次に、通信サイクルの要素として上で簡単に説明したスタティック・セグメントとダイナミック・セグメント、シンボル・ウィンドウ、ネットワーク・アイドル・タイムについて、それぞれの構造を詳しく説明していきます。

1. スタティック・セグメント

スタティック・セグメントは、タイムトリガ方式で送信されるフレーム群のスケジューリングを担うセグメントです(図7)。このセグメントはさらに細かいスタティック・スロットに分割されており、各スロットにはデータを運ぶフレームが埋め込まれています。あらかじめ設定されたタイミングでスロットが発生すると、そのスロットを割り当てられているECUがデータを送信します。ただし、そのスロットの期間が過ぎてしまうと、このECUは次のサイクルまでそのスロットにデータを送信できません。サイクル内のタイミングは正確に把握されているため、データ伝送の確定性が確保され、データを受け取った側のプログラムはそのデータが発生した時刻を正確に知ることができます。これは、周期的に発生するデータに基づく制御ループを計算する際に大変有効です。

図7: 4スロットのスタティック・セグメントで3個のECUがデータを伝送

青色の部分がスタティック・セグメントです。ここでは簡単な例として、3個のECUが4つのスタティック・スロットを使ってデータを伝送する様子を示しました。青色の部分を4つに区切ったそれぞれがスタティック・スロットです。実際のFlexRayネットワークでは、スタティック・スロットの数は最大で数十個に達します。

上図の例で3個のECUのうち1個がオフラインになったり、データの送信を拒否したりした場合は、下の図8に示すように、そのECUに割り当てられたスロットは開放された状態のままとなります。ほかの2個のECUがこのスロットを使用することはありません。

図8: 2個目のECUが取り除かれた場合のスタティック・セグメント

2個目のECUに割り当てられていた3番目と4番目のスロットは開放状態となります。ただし、1個目と3個目のECUが、開放されたこれらのスロットを利用することはありません。

2. ダイナミック・セグメント

組込ネットワークでは多くの場合、高速で伝送しなければならないメッセージの比率はわずかで、重要度が低く低速で伝送すればよいというデータがほとんどです。また、スタティック・セグメントのスタティック・スロットの数を過剰に増やすと、FlexRayの通信サイクルが長くなり、ネットワークの速度が低下してしまいます。そこで、速度の低下を防ぎつつもさまざまなデータに対応するために、ダイナミック・セグメントは任意のタイミングでデータを送信します(図9)。ダイナミック・セグメントそのものの長さは固定されているので、1つのサイクルに割り当てられるデータ量には上限があります。そこで、データに優先順位をつけるため、ダイナミック・セグメントで送信可能なデータ・フレームそれぞれにあらかじめミニスロットを割り当てておきます。通常、ミニスロットの長さは、マクロティックと同じ1μsです。優先順位の高いデータほど、ダイナミック・セグメントの開始位置に近いミニスロットが割り当てられる仕組みです。

図9: 1個目のECUがデータを送信した場合のダイナミック・セグメント

オレンジ色の部分がダイナミック・セグメントです。この図は、3個のECUのうち1個目がダイナミック・スロットでデータを送信している様子を示しています。ダイナミック・セグメント内でデータが送信されていない期間はミニスロットで消費され、データが送信されるとダイナミック・スロットが埋め込まれます。

ミニスロットが1つ発生すると、ある1つのECUがデータ・フレームを送信可能な状態になります。ただし、その期間は短く、期間中に送信を実行しなければ当該ECUはそのダイナミック・セグメント内のスロットを失います。そして次のミニスロットが発生し、ほかのECUがデータを送信する優先権を取得します。この一連のプロセスが、いずれかのECUがデータを送信するまで繰り返される仕組みです。あるECUがいったんデータを送信し始めると、送信が完了するまで次のミニスロットは発生しません。データの送信期間(ダイナミック・フレーム)が終了すると、優先順位の低いミニスロットは次のサイクルまでデータを送信する機会が回ってきません。

具体例で説明しましょう。上に示した図9では、ダイナミック・セグメントの開始から7番目のミニスロットの間はいずれのECUもデータを送信しませんでした。このため、8番目のミニスロットで1個目のECUがデータを送信しています。ところが下の図10では、2個目と3個目のECUがそれぞれダイナミック・セグメントの開始から1番目と2番目のミニスロットを使ってデータを送信しました。そしてダイナミック・セグメントの期間をすべて使ってしまったため、1個目のECUにはデータを送る時間が残されていません。この場合、1個目のECUは次のサイクルまでデータを送信することができないのです。

以上がダイナミック・セグメントの処理ですが、これはCANにおけるアービトレーションとよく似ているといえます。

図10: ミニスロットの優先順位

2個目と3個目のECUがそれぞれのミニスロットでデータを送信したため、2つのダイナミック・スロットだけでダイナミック・セグメントのデータ量の上限に達してしまいました。このため、優先順位が比較的低いミニスロットを割り当てられていた1個目のECUは、このダイナミック・セグメント内ではデータを送信することができません。

3. シンボル・ウィンドウ

シンボル・ウィンドウは主に、メンテナンスや、コールド・スタート・サイクルなどの特殊なサイクルの識別に使います。ほとんどの場合、高レベルのアプリケーションではシンボル・ウィンドウを扱う必要はありません。

4. ネットワーク・アイドル・タイム

ネットワーク・アイドル・タイムは、各ECUによってあらかじめ設定されています。このため各ECUは必然的に、ネットワーク・アイドル・タイムの長さを把握しています。ECUはネットワーク・アイドル・タイムを利用して、前のサイクルで発生したドリフトを補正します。

データ・セキュリティエラー対策

FlexRayネットワークは、シングル・チャンネル通信とデュアル・チャンネル通信という2つの選択肢を用意することで、スケーラブルなフォールトトレラント性を提供しています。高いセキュリティが求められるアプリケーションでは、バスに接続したデバイスは2つのチャンネルの両方を使って同じデータを転送します。デュアル・チャンネルによる冗長性でセキュリティを高めることが可能です。一方でこのような冗長性が不要な場合は、デバイスを片方のチャンネルだけに接続することもできますし、両方のチャンネルに接続して各チャンネルで異なるデータを転送すれば帯域幅を拡張することが可能です。

物理層においては、FlexRayは迅速なエラー検出やシグナリングに加えて、バス・ガーディアン(Bus Guardian)によってエラーを抑制する機能も備えています。バス・ガーディアンとは、通信コントローラから独立してスケジュールを管理する機構で、スケジュールに沿わない通信によって生じる障害からチャンネルを保護する役割を果たします。

フレーム・フォーマット

スタティック・セグメントとダイナミック・セグメントともに、各スロットにFlexRayフレームが1つずつ含まれています。このフレームは、ヘッダとペイロード、トレーラという3つの部分で構成されています(図11)。以下に、それぞれについて説明します。

図11: FlexRayのフレーム構成

各スロットにはフレームが1つ含まれており、各フレームはヘッダとペイロード、トレーラの3つの部分からなります。

ヘッダ

図12: ヘッダ部の構造

ヘッダは、長さが5バイト(40ビット)で、以下の情報を含んでいます(図12)。

  1. ステータス・ビット(5ビット)
    当該フレームのステータス情報です。
  2. フレームID(11ビット)
    当該フレームを送信するスロットを定義し、イベントトリガ・フレームの優先順位を設定します。
  3. ペイロード長(7ビット)
    当該フレームで転送されるデータ長(ペイロード・セグメントの長さ)を指定します。
  4. ヘッダCRC(11ビット)
    データ転送中のエラー検出に使うCRC(Cyclic Redundancy Check)値です。
  5. サイクル・カウント(6ビット)
    通信サイクルのカウント値です。通信サイクルが開始されるごとに値が増加します。

ペイロード

ペイロードは、当該フレームにおいて転送するデータ本体を含んでいます(図13)。FlexRayのペイロードは最大127ワード(254バイト)で、CANの30倍以上に相当します。

図13: ペイロード部の構造

 

トレーラ

トレーラには、エラー検出に向けたCRCが3つ含まれています(図14)。各CRCは8ビット長です。

図14: トレーラ部の構造

信号

FlexRayのデータはバイト単位で表されます。ただしアプリケーション・レベルでは、ほとんどの場合データは10進数の値で、単位やスケーリング、リミットが付加された形で取り扱われます。このため、FlexRayのフレームから取り出したビットやバイト単位のデータにスケーリングやオフセットを施すことで、各ECUのアプリケーションが実際に情報をやりとりするために有意な「信号」が得られます(図15)。通常ECUでは、フレーム・データをこのような信号に変換する作業をドライバ・ソフトウェアや下位の通信プロトコルが担っています。このためECUに搭載された上位プログラムは、FlexRayのデータを信号として扱うことが可能です。

図15: フレームから信号への変換

フレームに格納されたデータそのものは2進数の値で、通常はアプリケーション・レベルでそのまま扱うことができません。そこでデータにスケーリングやオフセットを施して、アプリケーション・レベルで有意な情報に変換する必要があります。

一般的な自動車では、数百から数千もの信号を扱います。これらの信号のスケーリングやオフセット、定義、位置は変化する可能性があるので、FlexRayではこれらの情報をFIBEX形式のデータベースに格納しています。このデータベースによってネットワークが定義されるため、FlexRayネットワークに向けたプログラムはコード内で信号名を参照するだけで済み、開発が簡単になります。ECUやテスト・システムのプログラムが更新された際には、コンパイラやドライバがデータベースからスケーリングやオフセットに関する最新の情報を引き出してくる仕組みです。

クロック同期コールド・スタート

FlexRayは、ネットワーク内のノードを外部から同期クロック信号の供給を受けずに同期させる、独自の機能を備えています(図16)。この機能では、スタートアップ・フレーム(Startup Frame)と同期フレーム(Sync Frame)という2つの専用フレームを使います。FlexRayのクラスタを始動するには、少なくとも2つの異なるノードがスタートアップ・フレームを送信しなければなりません。FlexRayバスの起動はコールド・スタートと呼ばれており、スタートアップ・フレームを送信するノードはコールド・スタート・ノードと呼ばれます。スタートアップ・フレームは、ネットワーク上のすべてのノードに起動を呼び掛けるスタート・トリガに似た役割を担っています。

図16: FlexRayネットワークの同期プロセス

ネットワークが起動されると、あらかじめ指定された2つのノードから同期フレームが送信されます。ほかのノードはこれらの同期フレームの時差を計測して、それぞれの内部クロックを同期させる仕組みです。

いったんネットワークの動作が始まると、すべてのノードはそれぞれの内部発振器をネットワークのマクロティックに同期させなければなりません。これには2つの同期ノードが必要です。すなわちネットワーク内のノードのうち、いずれか2つをあらかじめ同期ノードとして指定しておき、それらが電源投入時に専用の同期フレームを送信する仕組みです。その間、ネットワーク内のほかのノードは待機しており、同期フレームが送信されると2つの同期フレームの時間差を計測して内部クロックをFlexRayのグローバル・クロックに同期させます。なお同期フレームは、FIBEXに格納されたコンフィギュレーション情報の中で指定されています。

ネットワークの同期が確保されてオンライン状態になると、正確な同期状態を維持するため、ネットワーク・アイドル・タイム(上図に示したセグメント間の白色の部分)の長さを調整してサイクル間でクロックを調整します。

サイクル制御機能

FlexRayの高度な機能の1つにサイクル内制御があります。図17は、4つの車輪位置をスタティック・セグメントのフレームを使って送信する様子を示したものです。中央コントローラである5個目のECUが車両制御に向けたコマンドを送信する前に、ほかの4つのECUから車輪位置のデータが送信されています。このため中央コントローラは、車輪位置のデータを読み取って処理を済ませた上で、その結果を反映したコマンドを同一フレーム内で発行することが可能です。こうした機能によって、FlexRayネットワークは非常に高速なコントロール・レートを実現しています。

図17: サイクル内制御の例

単一のFlexRayサイクルの中で、4つの車輪位置を読み取って車両制御出力を更新することが可能です。

FlexRayネットワーク・データベースFIBEX

FIBEXは、ASAMコンソーシアムが定義したXMLベースの標準ファイル形式で、車載ネットワークの記述に使用されます。FlexRayネットワークに向けた標準フォーマットですが、ほかの多くの車載用プロトコルとも互換性を確保している点で柔軟性が高い規格だといえます。通常、FIBEXデータベースは、車載ネットワーク設計者によって作成され、自動車の各部分を担当するエンジニアに共有されます。FIBEXファイルと、FIBEX形式に対応するPCインタフェースやECUを使えば、インタフェースや信号のコンフィギュレーションを手動で設定する必要がなくなり、容易に車載ネットワークに接続することが可能です。

FIBEX形式のデータベース・ファイルには、ネットワークに関する以下のような情報が格納されています。

  • 送受信のスケジュール
  • フレームの定義
  • 信号の定義
  • 信号のビット・レベルの符号化
  • ネットワーク・トポロジ
  • ECUの情報
  • ボーレートやタイミングを含むネットワーク・コンフィギュレーション

FIBEXの詳細は、こちら(英語)をご覧ください。

PCI/PXI対応FlexRayインタフェース

日本ナショナルインスツルメンツでは、PCをFlexRayネットワークに接続できる高性能のPCI/PXI対応FlexRayインタフェース装置を提供しています。PCベースのインタフェースを使用すると、FlexRayに対応したECU上で、以下のような各種エンジニアリング・タスクを実行できます。

  • ラピッド・プロトタイピング
  • HILシミュレーション
  • バスのロギングとデバッギング
  • 信号データ集録
  • システム診断
  • カスタム・アプリケーション

   

PCI/PXI対応FlexRayインタフェース装置

NIが提供するFlexRayインタフェース装置の詳細は、こちらをご覧ください。

 

まとめ

FlexRayは、次世代の自動車に求められる、確定性とフォールトトレラント性を備えた高速バス・システムを実現します。

関連情報: