バスおよびネットワークシステムは、さまざまなプロトコル、アーキテクチャ、アルゴリズムが関係する複雑な領域であり、バス通信およびネットワーク通信の開発、テスト、検証に使用されます。CANやLIN、SOME/IPやDDSを使用した車載Ethernetなど、バスおよびネットワーク技術の基本概念から最新技術まで、あらゆるトピックをご確認ください。
車載通信が重要である理由
今日の車両はECUが相互に接続された複雑なシステムであり、これらが基本的な機能から高度な運転支援や自動運転に至る一切を管理しています。こうしたシステムは、確実、安全、かつリアルタイムにデータをやり取りするために、ロバストな車載通信ネットワークを利用します。バスプロトコルは、LINやCANのようなシンプルで低帯域幅のソリューションから車載Ethernetのような高性能テクノロジへと、長年にわたり進化してきました。この変化は、特に車両のさらなるソフトウェア定義化や機能充実化に伴う帯域幅、セキュリティ、効率性に対する要求の高まりが原動力となってきました。
また、アーキテクチャも変化しています。従来のドメインベースの設計は、配線の複雑さを軽減し、モジュール型の車両プラットフォームをサポートするゾーンアーキテクチャに取って代わられつつあります。これらのゾーンアーキテクチャは、車両の設計および構築方法の大きな転換を表しています。ゾーン設計では、ECUを車両全体に分散させたり、機能ごとにグループ化したりする代わりに、車両を物理的なゾーンに分割します。各ゾーンはゾーンコントローラによって管理され、ゾーンコントローラは、車両のソフトウェアロジックの大部分を処理する中央の高性能コンピューターユニット(HPC)と通信します。このゾーンアーキテクチャ内での統合にもかかわらず、通信ニーズは車両のタイプによって異なり、電気自動車、商用車、オフハイウェイ車には、それぞれ固有の要件があります。これらのプロトコルやアーキテクチャを理解することは、信頼できるスケーラブルな車両システムを構築するために不可欠です。
CAN - 組込み車載通信のバックボーン
Controller Area Network(CAN)は、自動車業界で最も定評があり、広く使用されている通信プロトコルの1つです。1980年代にBosch社によって開発されたCANは、中央のホストコンピュータを必要とせずに、電子制御ユニット(ECU)間のロバストなリアルタイム通信を実現するために設計されました。それ以来、乗用車だけでなく、オフハイウェイ車両、農業機械、航空宇宙システム、産業オートメーションにおいても世界標準となっています。計測信号や制御信号をやり取りすることができ、内蔵のエラー検出および処理メカニズムによって高い耐障害性を提供します。
CANの物理的な実装には、CANコントローラ、トランシーバ、マイクロプロセッサが必要です。CANはブロードキャスト方式を使用するメッセージ指向の通信プロトコルであり、メッセージはいわゆる「メッセージ識別子」で識別されます。受信側は、メッセージを受け入れるかどうかを、その識別子に基づいて決定します。また、この識別子は、バスアービトレーション時のメッセージの優先順位もCSMA/CR(Carrier Sense Multiple Access with Collision Resolution)方式を使用して決定します。どのECUも、3ビットの休止後にバスがアイドル状態であれば、送信を開始することができます。衝突が起きた場合は、優先順位の高いメッセージが「優勢」となります。優先順位は、メッセージ識別子によって決定されます(数字が小さいほど優先順位は高くなります)。優先順位の最も高いメッセージは遅延なく続行されるのに対し、他のメッセージは後回しとされ、バスが空いた時点で再試行されます。
プロトコル層とバリアント
Classic CANはISO 11898規格で定義されています。バスを定義する重要なCAN規格は3つあります。
- ISO 11898-1は、元のCAN 2.0AおよびCAN 2.0B仕様に従ってデータリンク層を定義しています。より新しい帯域幅への要求に対応するため、CAN FD(Flexible Data Rate)やCAN XL(拡張されたデータフィールド長)といったバリアントがペイロードサイズの増大やデータレートの大幅な向上により、この規格を拡張しています。
- ISO 11898-2(高速)とISO 11898-3(低速/フォールトトレラント)はOSIモデルの物理層をカバーし、最大1 Mbit/s(高速)と125 kbit/s(低速)のデータレートをサポートします。
- ISO 11898-4は、「Time Triggered CAN」と呼ばれる、セーフティクリティカルなメッセージの常に安定した通信を実現するデータリンク層の拡張規格です。
他のバスと異なり、当初の仕様がカバーするのはISO/OSIモデルの下位2層のみです。そのため、CAN自体はアプリケーション層を定義していませんが、商用車向けのSAE J1939、産業オートメーション向けのCANopen、農業アプリケーション向けのISOBUSなど、このギャップを埋めるために複数の上位層のプロトコルが登場しました。ISO 11898規格は、セキュリティ対策を一切規定していません。認証、整合性、機密性などの保護手段は、より上位のプロトコル層で実装されます。
CANフレームフォーマット
CANメッセージは、ヘッダー、ペイロード、トレーラの各要素を含む構造化されたフレームで送信され、主に2つのタイプがあります。
- 基本フレームフォーマット:11ビット識別子
- 拡張フレームフォーマット:29ビット識別子
標準フレーム(11ビット識別子)と拡張フレーム(29ビット識別子)は、同一CANネットワーク上で共存することができます。また、CANはデータフレームに加えてエラーフレームとオーバーロードフレームもサポートしており、これらは通信の整合性とタイミングを管理するのに役立ちます。
各メッセージはスタートビットで始まり、これに識別子が続きます。Classic CANでは、メッセージのペイロード長は最大8バイトまで可変であるため、正確な長さは「制御ビット」内で指定されます。ペイロードの後には、エラー認識のための「巡回冗長検査」と、同期を目的とした可変数のスタッフビットが続きます。最終的には、バスに接続されたすべてのECUがアクノリッジ(ACK)およびフレーム終了(EOF)フィールド内で肯定確認を行うか、エラーフレーム(EF)によってすべての受信者が受信データを無視します。このようにして、ネットワーク内でのデータの一貫性が保証されます。
LIN - コスト重視のアプリケーションに適した軽量ネットワーキング
Local Interconnect Network(LIN)は、CANに代わるコスト効率の高い選択肢として導入され、特に広帯域幅やリアルタイムパフォーマンスを必要としないアプリケーション向けに設計されています。自動車業界では、パワーウインドウ、シートアジャスタ、空調システム、室内灯など、シンプルなアクチュエータやセンサの制御に広く使用されています。シンプルかつ低コストであるため、このようなクリティカルでないアプリケーションに最適です。
物理的な実装では、マスター/スレーブ通信モデルに基づいたブロードキャストネットワークで単線シリアルバスを使用し、1つのマスターノードで最大15個のスレーブノードを制御します。マスターノードは、すべての通信を開始する際に、静的に定義されたLINスケジュールテーブルに従って定期的なメッセージヘッダーを送信します。スレーブECUは、指定された際にのみ応答します。この確定的なスケジュールにより、複雑なアービトレーションの仕組みが不要になります。CANの場合と同様に、LIN識別子は各メッセージの内容を符号で示し、受信側はその識別子に基づいてメッセージを受け取るかどうかを決定します。マスターECUは多くの場合、CANや車載Ethernetなどの上位ネットワークへのゲートウェイとして機能します。
プロトコル層と特徴
LINはISO/OSIモデルの物理層、データリンク層、アプリケーション層で動作します。LINは、より複雑なハードウェアを必要とするCANとは異なり、フレーム形式が8N1、固定ボーレートが最大19.2 kbit/sの標準的なUART/SCIハードウェアを使用します。一般的なバスの長さは、最大40メートルに達します。当初、LINコンソーシアムによって開発されたLINは、現在ISO 17987の下で標準化されています。エラー処理は、識別子のパリティビットやデータフィールドのチェックサムといった単純な方法に限定されます。再送信や訂正の手段は組み込まれていません。そのため、エラー回復はアプリケーションレベルで処理する必要があります。
フレーム構造
LINフレームは2つの部分で構成されます。
- マスターからのヘッダー:バスがアイドル状態になると、マスターECUはSync Break(13ビット以上のドミナントビットとそれに続く1ビットのレセッシブビット)を送信します。このビット列は、標準的なUARTに準拠しない唯一の文字であるため、受信側はメッセージの開始と明確に識別できます。この後には、受信側のクロックサイクルの同期化に使用されるSyncバイトと、スレーブが応答することになっているデータメッセージを決定するLIN識別子が続きます。
- スレーブの応答:1つのスレーブECUが、2~8バイトのデータバイトと、チェックサムバイトで応答します。LINはチェックサムとしてClassic(データのみ)とEnhanced(データ+識別子)の2種類をサポートしています。
LINは次のような複数のフレームタイプをサポートしています。
- 無条件フレーム: 上記のような標準的なデータ交換に使用されます。
- イベントトリガフレーム :非同期更新に使用され、同一メッセージに複数のスレーブECUが応答できます。実際には、要求された値が変化したECUのみが応答します。複数のスレーブが同時に応答した場合、衝突が発生する可能性があり、LINでこれを解決することはできません。そのため、それぞれのECUも同じメッセージに対して一意の識別子を持つ必要があります。
- スポラディックフレーム :複数のメッセージが同じタイムスロットを共有できるようにし、静的な優先順位で送信するメッセージを決定します。
- 診断およびユーザ定義フレーム :設定や特殊機能に使用します。
- この柔軟性により、LINは定期的な通信とイベントドリブン型通信の両方を効率的に処理することができます。
車載Ethernet - ソフトウェアデファインドビークル向けのスケーラブルな広帯域幅ネットワーキング
車両が複雑なソフトウェアデファインドシステムへと進化するにつれ、CANやLINといった従来のバス技術は、帯域幅、拡張性、柔軟性の面で限界に達しつつあります。車載Ethernetは車載通信の次世代バックボーンとして登場したもので、高データレート、IPベースの通信、最新のソフトウェアアーキテクチャとのシームレスな統合を提供し、OTA(Over-The-Air)アップデート、ADASの高分解能センサフュージョン、自動運転でのリアルタイムデータ交換など、高度な機能を実現します。
物理的な実装では、物理層の規格に基づいてポイントツーポイントまたはマルチドロップのトポロジを採用した切り替え式のEthernetネットワークが使用されます。CANやLINとは異なり、Ethernet通信は全二重方式であり、Ethernetスイッチを利用してトラフィックを管理し、衝突を防ぎます。それぞれのECUには、Ethernetコントローラ(MAC)、PHYトランシーバ、マイクロプロセッサが搭載されています。通信は標準的なEthernetフレームを基本とし、アドレス指定はメッセージ識別子ではなくMACアドレスとIPアドレスを使用して行われます。スイッチは、セグメンテーション、VLANに基づいた隔離、および重要度の異なるデータがトラフィックに混在する場合のQoS(サービスの品質)を可能にします。ゾーンアーキテクチャでは、Ethernetがバックボーンとして機能することが多く、ゾーンゲートウェイと高性能コンピューターユニットを接続します。これらのゲートウェイは、CANやLINなどのレガシーネットワークへのプロトコル変換機能も提供します。セーフティクリティカルなアプリケーションの確実な通信を保証するため、Ethernetでは、時間同期、トラフィックシェーピング、および境界レイテンシを提供するTSN(Time-Sensitive Networking)拡張が使用可能になっています。
プロトコル層と物理規格
もともと標準的なITネットワーク用に開発されたEthernetは、電磁適合性、ロバスト性、コスト効率といった車載環境の厳しい要件に対応するよう調整されてきました。これらの調整は、ISO/OSIモデルの各層の仕様を定める、自動車に特化した複数の規格の発展へとつながっています。
物理層 |
車載Ethernetの物理符号化副層(PCS)、物理媒体接続部(PMA)、物理媒体依存部(PMD)、媒体依存インターフェース(MDI)の仕様を定めた規格には、さまざまなものがあります。これらの規格は、比較的狭帯域幅のものから広帯域幅のものまであり、それぞれに異なる特徴があります。物理層は、パルス振幅変調、順方向誤り訂正、エコーキャンセルを組み合わせて使用し、車載用ケーブルで必要なデータレートを実現します。さまざまなPHYで使用される技術は、ますます複雑化しています。これらは物理媒体上でのデータの伝送方法を定めたものであり、最も重要なものは次のとおりです。
|
データリンク層 |
車載Ethernetと組み合わせるさまざまなPHYのすべては、MAC(媒体アクセス制御)層を使用してデバイスが物理伝送媒体へのアクセスを共有する方法を管理し、ローカルネットワークセグメント内において信頼性の高いデータ配信を保証するのが一般的な傾向です。その主な機能には、送信元および宛先MACアドレスによるデータのフレーム化、媒体へのアクセスの制御、フレームチェックシーケンス(FCS)による転送エラーの検出、輻輳を防ぐためのフロー制御のサポートなどがあります。MAC層は2つの副層に分割され、論理リンク制御(LLC)副層ではネットワーク層とのインターフェース接続、プロトコル識別処理、エラーチェック、フロー制御を行う一方、MAC副層ではフレームのカプセル化、アドレス管理、媒体アクセスルールの適用を実施します。 |
ネットワーク層 |
Ethernetとインターネットプロトコル(IP)を組み合わせて使用することで、ローカルネットワークの範囲を超えた通信を実現します。標準化された転送は、ノードのグローバルアドレスを指定できるIPパケットによって行われます。IPには2つのバージョンがあり、IPv4はドット付き10進表記の32ビットアドレスを使用して、プライベートアドレスの範囲を利用できるようにしている一方で、IPv6はIPv4の制約を克服するよう開発されており、コロンで区切った16進数形式でアドレスを表現します。また、アドレスを自動的に割り当てて、新しいデバイスを既存のネットワークに統合するDHCPなど、他のプロトコルがIPをサポートします。 |
トランスポート層 |
OSIモデルの第4層には、TCPとUDPという2つのトランスポートプロトコルが含まれています。TCPはコネクション型の転送を提供し、UDPはコネクションレス型のアプローチをとります。どちらのプロトコルもデータを、TCPではセグメント、UDPではデータグラムと呼ばれる小さな単位に分割することで、効率的な転送を実現しています。TCPはコネクション型のプロトコルであり、3ウェイハンドシェイクを用いて2つのノード間に信頼できるリンクを確立し、再送信や整合性チェックによってエラーのないデータ送信を保証します。一方、UDPはコネクションレス型であり、送信やエラー訂正を保証せずに、データグラムのシンプルかつ高速な転送を提供します。UDPの利点には、確認応答が不要なため待ち時間が少ないこと、マルチキャストとブロードキャストをサポートしているため、複数の受信ノードにデータを効率的に送信できることなどがあります。ただし、TCPはマルチキャストやブロードキャストをサポートしていないため、信頼性と正しい順序での送信が不可欠な場合に使用されます。 |
セッション層、プレゼンテーション層、アプリケーション層 |
下位の各層は、ECUと外部システムとの間でアドレス指定やルーティングが可能な通信を実現します。ただし、Ethernetをリアルタイムでセーフティクリティカルな自動車の使用事例に適合させるには、専用のミドルウェアが必要です。これらのミドルウェア層は、サービスの抽象化、メッセージのシリアル化、通信管理といった機能を提供します。一般的な例には、次のようなものがあります。
これらのテクノロジは、サービス指向通信、パブリッシュ/サブスクライブパターン、効率的なデータ配信を可能にし、自動運転、Over-The-Air(OTA)アップデート、集中コンピューティングを実現するための重要な要素となっています。 車載Ethernetは、IPを利用した攻撃対象を生み出します。セキュリティ対策には、MACsecによるデータリンク層の暗号化、IPsecによるネットワーク層の保護、TLS(Transport Layer Security)などがあります。 |
フレーム構造
通信の基本単位はEthernetフレームであり、これによってペイロードデータと物理媒体上を転送するための制御情報をカプセル化します。パケットはプリアンブルと開始フレーム識別子(SFD:Start Frame Delimiter)で開始されます。これらはもともと、EthernetがまだCSMA/CD動作で使用されていたときに、受信データの同期化を補助するために導入されたものです。最新の規格では、より複雑な信号エンコーディングが使用されており、パケットの開始と終了を検出するための特殊記号を配置することができます。下位互換性を保つため、プリアンブルとSFDのフィールドは依然としてフレームの一部になっています。それぞれのEthernetノードには、MACアドレスとも呼ばれる48ビットの固有のシリアル番号が割り当てられています。プリアンブルの後、すべてのパケットには、それらのMACアドレスを使用してパケットをどこへ送信するのか、パケットがどこから来たのかといった情報が含まれています。最初は、宛先アドレスのみを評価して、パケットがそのノードに対するものかどうかを判断します。パケットの宛先アドレスが一致すれば、そのパケットをすべて読み取り、一致しなければ無視します。次のフィールドはパケットの長さ、またはEtherTypeを示します。EtherTypeは、上位層に対して期待されるデータのタイプを示します。Ethernetはあらゆる種類のデータのコンテナとして設計されているため、Ethernetバリアントによっては独自のEtherType(ProfinetやEtherCatなど)を有することもあります。ペイロードの最小サイズは46バイトであり、データが最小ペイロードより短い場合は、残りのバイトがパディングで埋められます。最大長は1500バイトです。パケットは巡回冗長検査(CRC)で終了し、パケットのさまざまなビットの整合性をチェックします。
FlexRay - セーフティクリティカルなシステムの常に安定した通信
自動車システムに要求される信頼性、耐障害性、リアルタイムパフォーマンスが高度になるにつれ、FlexRayはロバストなソリューションとして登場し、特にX-by-Wireアプリケーション(X=ブレーキ、ステアリングなど)のようなセーフティクリティカルな領域で利点がありました。大手自動車メーカーおよびサプライヤのコンソーシアムによって開発されたFlexRayは、冗長性を組み込んだ常に安定した高速通信を提供することで、CANやLINの限界を克服するよう設計されました。
物理的な実装は、FlexRayコントローラ、トランシーバ、マイクロプロセッサで構成されます。オプションのバスガーディアンは、通信スケジュールを順守するよう徹底させ、障害の起きたノードによるネットワークの中断を防ぎます。FlexRayは、シングルチャンネルまたはデュアルチャンネル構成をサポートしています。2つ目のチャンネルは、セーフティクリティカルなシステムの冗長化や、帯域幅アグリゲーションに利用することができます。デュアルチャンネル動作とバスガーディアンの両方により、信頼性が強化されます。イベント駆動型プロトコルと異なり、FlexRayは常に安定した時分割多重アクセス(TDMA)方式を採用しています。送信権とメッセージは、通信サイクル内の固定タイムスロットに割り当てられます。静的セグメントでは時間的制約が厳しいメッセージに固定長のスロットを使用し、動的セグメントではイベント駆動型メッセージにミニスロットと位置に基づいたアービトレーションを使用します。このハイブリッドアプローチは、重要度の低いデータに対する柔軟性を持たせながら、確実にタイミングを予測することができます。
プロトコル層と特徴
FlexRayは、ISO/OSIモデルの物理層とデータリンク層で動作します。ISO 17458規格で仕様が定められており、パート2とパート3がデータリンク層、パート4とパート5が物理層をカバーしています。また、AUTOSAR規格のFlexRayトランスポートプロトコル(FrTp)により、トランスポート層もカバーしています。FlexRayは、チャンネルごとに最大10 Mbit/sのデータレートをサポートします。デュアルチャネルを使用して帯域幅アグリゲーションを行うと、データレートは2倍になります。このプロトコルは、通信サイクルとマクロサイクルに編成された、すべてのノードにわたってグローバル時間同期を提供し、ECU間の常に安定した実行が保証されます。FlexRayは、ネイティブな暗号化や認証を提供していません。AUTOSAR SecOCやゲートウェイベースのフィルタリングなどのセキュリティ対策が必要です。
フレーム構造
FlexRayは、静的セグメント(時間トリガ型メッセージ向け)と動的セグメント(イベント駆動型通信向け)をサポートし、確定性と柔軟性のバランスをとるハイブリッドのアプローチを提供します。静的部分と動的部分の合計スロット数は、2047個に制限されています。
- 静的セグメント :あらかじめ定義された数のスロットを使用し、それぞれのスロットにはFlexRayメッセージ全体を運ぶのに十分な長さがあります。静的セグメント内のメッセージは、両方のチャンネルで同期化されます。衝突回避のため、ブロードキャスト送信の権利は一度に1つのECUに付与されます。すべてのECUがそれぞれの通信サイクルのスロットをカウントし、スロットカウンタは現在バスアクセスを保持するECUを示します。
- 動的スロット :同様にあらかじめ定義されたスロットを使用しますが、動的セグメントのスロットよりも短い小スロットに分割されます。これらのスロットの間、それぞれのチャンネルごとにブロードキャスト送信を行えるECUは必ず1つに限定されます。メッセージの長さはさまざま(最大254バイト)ですが、動的セグメントの合計の長さは固定です。この場合、スロットカウンタはメッセージの優先順位を示します。高いスロットカウンタをもつメッセージを通信サイクル中に送信できない場合は、次のサイクルに延期されます。
FlexRayのメッセージは、ヘッダーから開始されます。このヘッダーは5ビットの制御ビットで初期化され、フレームID、ペイロード長、指定されたヘッダーCRC、サイクルカウントが含まれます。フレームIDは、現在のタイムスロットの番号です。ペイロード長は、16ビットデータワードの数として送信されます。ヘッダーCRCは送信エラーになるのを防ぎ、最後のサイクルカウントはネットワークが初期化されてからインクリメントした通信サイクル数を送信します。その後には、実際のペイロードデータや、ペイロードエラー検出用のトレーラCRCが続きます。
比較表
基準 |
CAN |
LIN |
FlexRay |
車載Ethernet |
主な目的 |
ECUのロバストなリアルタイム通信 | シンプルなアクチュエータ/センサの低コスト通信 | セーフティクリティカルなシステムの常に安定した通信 | ソフトウェアデファインドビークルのスケーラブルな広帯域幅通信 |
一般的な用途 |
パワートレイン、シャシ、車体制御、診断 | コンフォート機能(窓、空調、シート) | X-by-Wire(ブレーキ、ステアリング)、安全領域 | ADAS、インフォテイメント、センサフュージョン、OTAアップデート、通信バックボーン |
トポロジ |
バス(2線式差動) | バス/デイジーチェーン(単線) | スターまたはライン(単線または2線を使用可能) | ポイントツーポイント(切り替え式スター型接続)、マルチドロップ(10BASE-T1S) |
確定方法 |
イベント駆動型(優先度ベース) | 固定スケジュールによるマスター/スレーブ | タイムトリガ型(TDMA、静的セグメント+動的セグメント) | TSN(Time-Sensitive Networking)により決定 |
帯域幅 |
最大1 Mbit/s(従来型)、最大8 Mbit/s(CAN FD)、10 Mbit/sより大きい(CAN XL) | 最大19.2 kbit/s | 各チャンネル10 Mbit/s(合計20 Mbit/s) | 10 Mbit/s~10 Gbit/s(10BASE-T1S~MultiGBASE-T1) |
ペイロード |
8バイト(従来型)、64バイト(CAN FD)、64バイトより大きい(CAN XL) | 2~8バイト | 最大254バイト | 最大1500バイト(標準フレーム) |
エラーの処理 |
CRC、ビット監視、故障封じ込め | パリティビット、チェックサム、訂正なし | CRC、Bus Guardian、デュアルチャンネル冗長化 |
CRC、FEC(高速用)、VLAN/QoSによるトラフィック分離 |
セキュリティ |
上位層の保護(SecOCなど) | ネイティブなセキュリティなし | 上位層の保護(SecOCなど) | MACsec、IPsec、TLSまたはSecOCが必要 |
標準化 |
ISO 11898 | ISO 17987 | ISO 17458 | IEEE 802.3+TSN(IEEE 802.1) |
コストと複雑さ |
低い | 非常に低い | 高い | 中程度~高い |
将来性 |
ローカルECUにおいて引き続き重要 | コンフォート機能において引き続き重要 | 減少傾向、Ethernetへ移行 | ゾーンアーキテクチャで中心的役割 |