車載イーサネットの基礎の Eth ドライバー

車載用イーサネットの基本用のイーサネット ドライバー

序文

まず最初に、いくつか質問をしたいと思います。

  • Eth Driver モジュールの主な機能を知っていますか?
  • EthDriver とイーサネット コントローラーとイーサネット トランシーバーの関係はどのようなものですか?
  • Eth Driver の一般的な機能インターフェイスは何ですか?
  • Eth ドライバーには通常、他のドライバーと区別する機能がありますか?

今日は、これらの質問を一緒に探り、答えていきます。誰でも簡単に理解できるように、この記事のトピックの概要を以下に示します。

ここに画像の説明を挿入


文章

前回の記事「EthIf of Automotive Ethernet Basics」で述べたように、Eth Driver は、Ethernet を構成するための基になるドライバーとして使用されます.EthIf によって呼び出されるだけでなく、Eth トランシーバー ドライバーの呼び出し要件も満たします。以下を理解する必要があります。 カー イーサネット ドライバー (Eth Driver) は、AUTOSAR レイヤー全体で重要な役割を果たします。

下の図 1 に示すように、イーサネット If モジュールはイーサネット ドライバを直接制御するだけでなく、イーサネット スイッチ ドライバまたはイーサネット トランシーバ ドライバが存在する場合、イーサネット ドライバ モジュールを間接的に制御します。イーサネット データの通常の送受信、およびイーサネット ゲートウェイまたはイーサネット トランシーバーの直接設定も可能にします。

ここに画像の説明を挿入

図 1 イーサネット ドライバーと他のイーサネット ドライバーの関係

AUTOSAR の階層関係

AUTOSAR 標準ドキュメント仕様によると、AUTOSAR ソフトウェア アーキテクチャ全体における Eth ドライバー モジュールの特定の場所の説明は、以下の図 2 に示されています。
ここに画像の説明を挿入

図 2 Eth ドライバーとイーサネット プロトコル スタックの関係

上の図に示すように、次の基本的な結論を導き出すことができます。

  • 1 つのイーサネット プロトコル スタックに複数のサプライヤのイーサネット コントローラを配置できます。各サプライヤのコントローラは、互いに影響を与えることなく個別に制御できます。
  • 同じサプライヤからの複数のイーサネット コントローラが存在する可能性がありますが、使用できるのは同じセットのイーサネット コントローラ ドライバのみです。
  • 標準の AUTOSAR MCAL の一部として、上記の 3 つの異なるサプライヤーのイーサネット ドライバーは、基盤となるハードウェアから完全に切り離すことができます。

モジュールの主な機能

車両のイーサネット プロトコル スタックの最も重要な基本コンポーネントとして、Eth Driver は、次のレベルからイーサネット ドライバーの予備的な理解を得るのに役立ちます。

  • イーサネットのさまざまなドライバー内でインデックス関係を設定する方法は?
  • イーサネット ドライバーがデータを送信する方法。
  • イーサネット ドライバーがデータ受信を実行する方法。
  • QoS、ハードウェア タイムスタンプ、オフロードなどのイーサネット ドライバー機能にはどのような機能がありますか?
  • MDIO などのイーサネット ドライバーの一般的な通信プロトコル、DMA はドライバーでどのような役割を果たしますか?

ドライブ インデックス ルール

以下の図 3 に示すように、各イーサネット ドライバーは互いに独立しており、そのインデックス番号は 0 から始まりますが、各ドライバー内の bufidx は互いに干渉することなく 0 から開始できます。
ここに画像の説明を挿入

図 3 Eth Driver インデックスの関係

データ送信プロセス

上位層のアプリケーションが Eth ドライバーを介してデータを送信する必要がある場合、EthIf モジュールを介して Eth ドライバーの送信関数 Eth_Transmit を間接的に呼び出して、データの送信を完了する必要があります。

その中で、EthIf モジュールのデータ転送機能は 2 つのモードに分けられます.1つはポーリング モード、もう 1 つは割り込みモードです.一般的に言えば、割り込みモードはシステムのリアルタイム要件を満たすために好まれます.

図 4 は Polling モードを示しています. Polling モードでは、 EthIf_MainfunctionTx関数が送信が成功したかどうかをポーリングすることがわかります. これも Polling モードの典型的な機能です.

ポーリング モード
ここに画像の説明を挿入

図4 データ送信 ポーリングモード

割り込みモード

以下の図 5 は、イーサネット データ送信の割り込みモードを示しています. ポーリング モードと比較すると、割り込みモードは EthIf_MainfunctionTx 関数を使用せず、送信が成功したかどうかを確認するために Eth モジュールの割り込み関数を使用することがわかります.

ここに画像の説明を挿入

図 5 データ送信割り込みモード

データ受信機能

同様に、データ送信機能と比較して、EthIf モジュールのデータ受信機能も、ポーリング モードと割り込みモードの 2 つのタイプに分けることができます. 下の図 9 は、EthIf モジュールのデータ受信ポーリング モードを示しています.

下の図 6 に示すように、EthIf モジュールのデータ受信が Polling モードを採用している場合、 EthIf_MainfunctionRx関数を使用する必要があり、この関数でEthIf_RxIndicationを呼び出して、データが正常に受信されたことを上位層に通知します。割り込みモードでは受信が優先されます

ポーリング モード

ここに画像の説明を挿入

図 6 データ受信 Polling モード

割り込みモード

以下の図 7 は、EthIf モジュールのデータ受信割り込み関数を示しています.このモードでは、Eth モジュールが割り込み関数を介してデータを受信したことを上位層に通知することがわかります。

ここに画像の説明を挿入

図 7 データ受信割り込みモード

ドライブ特性の紹介

他のドライバーと比較して、イーサネット ドライバーには多くの独自の機能があります.リトル T は、これらの機能を理解するようにすべての人を導き、これらの機能の基本的な理解を深めて、イーサネット ドライバーをより包括的に理解できるように努めます.より快適に適用できます。

次に、イーサネット ドライバー (ネットワーク カード) の 3 つの一般的な機能を示します。オフロード機能、ハードウェア タイムスタンプ機能、および QoS 機能です

Offloading特性

「オフロード」とはその名の通りアンインストールという意味ですが、誰をアンインストールし、何をアンインストールするのでしょうか。実はこの機能の目的はCPUをオフロードすることであり、オフロードの方法はCRC計算をハードウェアに渡すか、サブパケット化の動作もハードウェアで処理することで、この部分を削減します。イーサネット プロトコル スタック. ソフトウェアで時間を占有し、ソフトウェアの実行遅延や高い CPU 負荷によって引き起こされるパフォーマンスの問題を軽減します。

AUTOSAR 仕様では、メッセージを送受信するイーサネット ドライバー (Eth ドライバー) の CRCに対するオフロードの特別な説明は次のとおりです。

  • IPV4 フレームの場合、EthCtrlEnableOffloadChecksumIPv4 が TRUE に設定されている場合、CRC のオフロードが可能です。
  • ICMP フレームの場合、EthCtrlEnableOffloadChecksumICMP が TRUE に設定されている場合、CRC のオフロードが可能です。
  • TCP フレームの場合、EthCtrlEnableOffloadChecksumTCP が TRUE に設定されている場合、CRC のオフロードが可能です。
  • UDP フレームの場合、EthCtrlEnableOffloadChecksumUDP が TRUE に設定されている場合、CRC のオフロードが可能です。

これらの CRC 計算はハードウェアでのみ行われることに注意してください. 受信機の場合, CRC チェックの検出はハードウェアを介して行われます. CRC チェックに失敗した場合, 受信したフレームは破棄されます.

ハードウェア タイムスタンプ機能

以前の記事「cantsyncc」と「StbM」で述べたように、誰もが基本的な理解と CAN 時刻同期の理解を持っています。CAN 時刻同期と比較して、イーサネット時刻同期プロトコルは IEEE1588または IEEE802.1AS PTP (Precise Time Protocol) プロトコルを使用します。 、使用するネットワーク カード (MAC) がそれ自体をサポートしているかどうかを確認する必要があります。

このプロトコルは、基盤となるハードウェア MAC を使用して、対応するイーサネット メッセージの送受信タイム スタンプをスタンプします。これにより、ソフトウェア タイム スタンプによってもたらされる不確実性を最小限に抑え、マイクロ秒またはナノ秒レベルの時間同期精度を実現できます。

AUTOSAR 仕様で定義されている EthTsync モジュールは、2 段階の終了遅延 PTP 時刻同期プロトコルを使用します. 以下は、このプロトコルに基づくタイム マスターとタイム スレーブ間の対話的な関係です. EthTsync モジュールについては後で 1 つ説明します. . 拝啓 ご注意ください。

ここに画像の説明を挿入

図 8 2 段階イーサネット側遅延メカニズムの PTP 時刻同期プロトコル

上記図 8 のように、シングルステップモードのイーサネット側遅延機構の PTP 時刻同期に基づく場合、点線で示した部分は存在しません.イーサネット側遅延機構に基づく場合ダブルステップ モードのPTP 時刻同期では、点線でマークされた部分が存在する必要があります。

IEEE802.1AS には、BMCA (Best Master Clock Algorithm) を介して実現する必要がある GrandMaster の概念があることに注意してください. ただし、車は静的なネットワークであるため、一意の GrandMaster しか存在しません。 BMCA 動的割り当て確認アルゴリズムを使用する必要はありません。

イーサネット ハードウェアは、次の 2 つの方法で PTP プロトコルを実装します。

  • イーサネット MAC コントローラーは、PTP プロトコル、一般的なデュアルステップ モードをサポートします。
  • 一部の TI PHY レイヤーは PTP をサポートすることもできますが、通常は 1 ステップ モードです. AUTOSAR 標準の EthTsync モジュールを使用する場合は、2 ステップ モードをサポートしているかどうかを事前に確認する必要があります。

QoS 機能

Qos は IEEE 802.1P プロトコルで、イーサネットの第 2 層で実行され、イーサネット データ転送が輻輳している場合に重要なデータ パケットを優先的に時間内に送信できるようにするために使用されます。

通常のイーサネット レイヤ 2 パケットにはプライオリティ フィールドが含まれていません. IEEE802.1P は IEEE802.1Q (VLAN タグ テクノロジー) 規格の拡張技術であり, それらは連携して動作します. 802.1Q はタグ フィールドを定義しますが, 定義して使用しません. IEEE 802.1P および IEEE802.1Q で定義されたラベル フィールドが下の図 9 に示されているように、優先度は 802.1P プロトコルで補足した後に通常どおり使用できます。

ここに画像の説明を挿入

図 9 IEEE802.1Q タグ ヘッダー情報

イーサネット フレームは、QoS 機能を介して 802.1Q ラベルの 802.1P ユーザー プライオリティ (COS) によってマークされます。そのプライオリティには、図 10 に示すように、プライオリティ 0 からプライオリティ 7 までの 8 つのレベルがあります。

ここに画像の説明を挿入

図 10 COS プライオリティの説明

通信プロトコル紹介

車両イーサネット ドライバーを使用する過程で、次の 3 つの一般的な通信プロトコルに遭遇することがよくあります。これらは、車両イーサネットの通常の動作にとって非常に重要です。

  • MII インターフェイス通信プロトコルは、イーサネット MAC 層と物理層トランシーバー PHY 間のデータ伝送プロトコルに使用されます。
  • イーサネット MAC 層制御 PHY 状態設定および取得プロトコルに使用される MDIO 通信プロトコル。
  • イーサネット MAC 層と CPU 間のデータ転送通信プロトコルに使用される DMA 通信プロトコルは、データ転送効率を向上させ、CPU 負荷を軽減します。

MIIインターフェース通信プロトコルの基本紹介

MII インターフェイスは、IEEE802.3 によって定義されたイーサネット業界標準で、イーサネット MAC 層と PHY の間の互換性を解決し、異なるタイプの MAC が置き換えられても PHY が常に正常に動作できるようにするためのものです。

MII インターフェイス 技術の発展と進歩に伴い、さまざまな強化された MII インターフェイスが派生してきました. 一般的に使用されるものは、MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、および SGMII です。イーサネットまたは RGMII インターフェイス

特定の通信プロトコルの紹介は、この記事では展開しません. このインターフェイスの選択は、対応する MII インターフェイス タイプを使用するようにソフトウェアで MCAL を構成するだけで済みます. イーサネット ハードウェア接続での MII インターフェイスの関係:

ここに画像の説明を挿入

図 11 イーサネット MAC と PHY 間の MII 物理接続の概略図

MDIO プロトコルの基礎の紹介

まず、MDIOはManagement Data Input/Outputの略で、IEEE802.3にも反映されているインターフェースプロトコルで、MACとPHYの管理に特化したシリアルデータインターフェースで、基本的な機能は以下の通りです。

  • PHY 関連レジスタの値を読み取ります。
  • PHY のリンクおよびその他の動作ステータスを取得します。
  • 対応する PHY の動作モードなどを設定します。

また、MDIO プロトコル インターフェイスはリアルタイム、半二重、シリアルデータ インターフェイスであり、2 つのラインで構成され、1 つは MDIO ラインと呼ばれ、もう 1 つは MDC ラインと呼ばれます。

MDIO ラインはデータの伝送を担当します.MAC と PHY の間で双方向の伝送が可能です.レジスタを書き込むときは MAC によって駆動され、レジスタを読み取るときは PHY によって駆動されます.上位ビット (MSB) が最初に送信され、次に下位ビット (LSB) が送信されます

MDC ラインはクロック同期信号の送信を担当します. MAC によって一方向にのみ駆動できます. MDIO ライン上のデータは MDC の立ち上がりエッジでのみサンプリングできます. MDC は通常、PHY によって決定されます

MDIO インターフェイスは 32 個の PHY アドレスをサポートでき、インターフェイスには 32 個のレジスタ アドレスがあり、そのうち最初の 16 個のレジスタは標準で定義されており、残りの 16 個は各デバイス メーカーによって定義されています。

IEEE802.3 プロトコルによると、MDIO プロトコルは22 節と 45 節の 2 つのフレーム形式に分けられます。そのうち、22 節は主にギガビット以下のイーサネット PHY に使用され、45 節はギガビット PHY の上のイーサネットに使用されます。

次に、第 22 条と第 45 条の基本的な使い方と違いを簡単に説明します。

条項 22 の読み取りデータフレームの形式は次のとおりです。
ここに画像の説明を挿入

図 12 条項 22 の読み取りデータ フレーム フォーマット

条項 22 書き込みデータフレームのフォーマットは次のとおりです。

ここに画像の説明を挿入

図 13 条項 22 書き込みデータ フレーム フォーマット

第 45 条アドレス フレームの形式は次のとおりです。

ここに画像の説明を挿入

図 14 条項 45 のアドレス フレーム フォーマット

第 45 条の読み取りデータフレームの形式は次のとおりです。

ここに画像の説明を挿入

図 15 条項 45 の読み取りデータ フレーム フォーマット

条項 45 書き込みデータフレームのフォーマットは次のとおりです。

ここに画像の説明を挿入

図 16 条項 45 書き込みデータ フレーム フォーマット

下の図 17 に示すように、上記の条項 22 と条項 45 のフレーム フォーマットの定義に従って、Little T はフレーム フォーマットの定義と 2 つの違いをリストします。 2つの形式。

ここに画像の説明を挿入

図 17 条項 22 と条項 45 のフレーム形式の違いと接続

DMA プロトコルの基礎の紹介

DMA プロトコルは、使用したことのある友人、特に低レベルのドライバー開発を行っている人にはなじみがあるはずです. DMA は、周辺機器とメモリの間、またはメモリとメモリの間の転送を CPU の介入なしで実現することです. イーサネット DMA についても同様です. 、イーサネット周辺機器とメモリ間のデータ交換を実現することです。

この記事では、DMA プロトコル自体についてはあまり説明しません. DMA がイーサネット データの送受信プロセスでどのように機能するかを説明することを目的としています. 次の 2 つの図を使用して、イーサネット データの送受信プロセスでの DMA の使用を理解してください. .

イーサネット DMA 送信

以下の図 18 に示すように、Tx リングバッファーは DMA ディスクリプターとして使用され、イーサネット送信プロセスにおける DMA の役割は次のとおりです。

ここに画像の説明を挿入

図 18 イーサネット DMA 送信プロセス

イーサネット DMA 受信

以下の図 19 に示すように、Tx Ringbuffer は DMA ディスクリプタとして使用され、イーサネット受信プロセスにおける DMA の役割は次のとおりです。

ここに画像の説明を挿入

Figure 18 Ethernet DMA 受信処理

共通機能のまとめ

誰でも簡単に Eth ドライバー モジュールをより使いやすくするために、Xiao T は一般的に使用される機能インターフェイスと車載イーサネット ドライバーの機能説明を整理しました (図 19 参照)。

ここに画像の説明を挿入

図 19 イーサネット ドライバ共通関数インターフェイス

よりエキサイティングな内容は、公式アカウント「ADASとECUの私の見解」に注目してください!! !

おすすめ

転載: blog.csdn.net/wto9109/article/details/130071521