STM32MP1 – ETH
DMA コントローラ付きEthernet メディアアクセス制御（MAC）

こんにちは、STM32MP1 Ethernet MAC ペリフェラルのプレゼンテーションへようこそ。
このペリフェラルは、Ethernet 通信のメディアアクセス制御層を担当します。

1

概要

2

• Ethernet メディアアクセスコントローラ（MAC）
アプリケーション層
トランスポート層
TCP/UDP
インターネット層
IP
リンク層
ETH/MAC
物理層

RJ45 コネクタ• Ethernet プロトコルのリンク層をサポートするハードウェ
アペリフェラル

ユーザ SW• 自動データフロー制御用に固有の DMA を埋め込み
TCP/IP
ミドルウェア• MII/GMII/RMII、および RGMII PHY インタフェースで 10、100、および 1000Mbps のデータ転送速度をサポート

アプリケーション側の利点

HAL Ethernet
ペリフェラル•IEEE 802.3 MAC 規格に完全適合•

TCP/IP モデルに基づくアプリケーションの効率的な開発が可能

これらのスライドで紹介するペリフェラルは、Ethernet プロトコル用のメディアアクセスコントローラ（MAC）です。IEEE 802.3 規格に完全に準拠しています。
固有の DMA と最大 1ギガビットのデータレートを持つこのペリフェラルは、高い Ethernet パフォーマンスを提供します。
このペリフェラルは、インターネットネットワークに基づくアプリケーションと関係します。このようなアプリケーションは、図に示すように TCP/IP 層モデルに依存しています。
MAC は、TCP/IP 通信モデルのリンク層を担当します。
上位層はソフトウェアが管理します。たとえば、トランスポート層とインターネット層は、一般的な軽量 IP スタックで管理できます。
最後に、物理層、つまり PHY は外部コンポーネントがサポートし、RJ45 コネクタにリンクされています。

2

主な機能

3

STM32MP1 Ethernet ペリフェラルは、次の機能をサポート• 動作モードおよび PHY サポート
• データレートは 10M/100M/1Gbit/秒• 全二重および半二重動作• (G)MII および (G)RMII インタフェースで外部 PHYへ

• 処理制御• オフロード処理• プリアンブルおよびフレーム開始データ（SFD）の挿入または削除• IPv4 ヘッダと TCP、UDP、または ICMP ペイロードのチェックサムチェック• IPv4 ヘッダと TCP、UDP、または ICMP ペイロードのチェックサムを計算して挿入• 多層パケットフィルタリング• ARP 応答• ダブル VLAN 処理• TCP セグメンテーション• IEEE 1588-2008/PTPv2 をサポート• オーディオビデオブリッジングサポート（AVB）用の個別のキュー（Rx と Tx）• RMON/MIB カウンタでネットワーク統計をサポート（RFC2819/RFC2665）• 低電力モード• リモートウェイクアップパケットと AMD Magic
Packet™ 検出

このスライドは、STM32MP1 Ethernet MAC ペリフェラルの主な機能を示しています。
ペリフェラルは、10 または 100Mbit/s の全二重および半二重動作モードをサポートします。ペリフェラルと外部 PHY 間のオートネゴシエーションにより、動作モードの自動設定ができます。外部 PHY は、次の 2 つのタイプのインタフェース、一般的なメディア
独立インタフェース（MII）、および使用ピンが MII の半分の減少メディア独立インタフェースによりサポートされます。
ペリフェラルがサポートする高度な機能の中には以下が含まれます。
•多層パケットフィルタリング•
ダブル VLAN タグの管理•
フレームの高精度タイムスタンプによる高精度タイミングプロトコルをサポート•
オーディオビデオブリッジングのための複数のキューをサポート
接続品質の監視に利用可能な複数のネットワーク統計レジスタ•
以上の機能に加えて、ペリフェラルは高負荷処理の負荷軽減のため、複数の手段を提供します。プリアンブルとフレーム開始タグの自動管理、受信フレームのチェックサムチェック、上位層のチェックサム計算、自動 TCP パケットセグメンテーションをサポートしています。

2 つの低電力モードにより消費電力を節約できます。送信中の電力制御用の省電力型 Ethernet モードと、ペリフェラルの動作が保留され、特別なウェイクアップパケットの受信により再開する SLEEP モードの 2 つです。

3

オフロード機能

4

Ethernet データグラム管理の概要• Ethernet データグラムによるオフロード処理
プリアンブルおよびSFD
1

転送先 MAC（DA）
2

転送元 MAC (DA)
3VLAN
4Eth タイプ
5

ペイロード…
6CRC
7

1. プリアンブルとフレーム開始タグの自動挿入（Rx）または削除（Tx）
2. 転送先 MAC アドレスフィルタリング
3. 転送元 MAC アドレスフィルタリング
4. シングルまたはダブル VLAN タグの挿入、置換、削除 VLAN タグフィルタリング
5. フレームのタイプとサイズ（Rx）または挿入フィールド（Tx）をチェック
6. 上位層の管理• ペイロードチェックサムの計算と挿入（Tx）またはチェック（Rx）• レイヤ 4（UDP/TCP）およびレイヤ 3（インターネット）フィルタリング機能

7. データグラム CRC 計算（Tx）お よびチェック（Rx）

このスライドは、Ethernet データグラムについてペリフェラルが管理するオフロード処理を示しています。
ペイロードを除くデータグラムのほとんどは、ハードウェアで効率的に管理されています。
プリアンブルと開始フレームデリミタ（SFD）は基本的な同期パターンであり、自動的に挿入または削除されます。
アプリケーションに関連するフレームのみを選択するには、MAC アドレスフィルタリングの使用をお勧めします。MAC は、ユニキャストまたはマルチキャストアドレスフレー
ムの複数フィルタリングオプションと、完全またはハッシュフィルタリングをサポートしています。
シングルおよびダブル VLAN タグ付きフレームをサポートしています。
ダブルタグ付けは、2 つの VLAN レベルを同時に使用して複雑なトラフィックをルーティングする用途に使用します。
Ethernet ペリフェラルは、外部および内部 VLAN タグのシーケンスに対する自動挿入、交換、削除をサポートします。
ペイロードは、トランスポート層またはインターネット層からのデータで構成されています。ペリフェラルは、ポートまたは IP アドレスに応じて、受信したフレームをフィルタリングできます。チェックサムは、IPv4 ヘッダと ICMP ペイロードの TCP/UDP について計算またはチェックに使用されます。
最後に、プリアンブルとフレーム開始タグを考慮せずに、データグラム全体の CRC が計算されます。
上記機能の一部については、次のスライドで詳しく説明します。

4多層パケットフィルタリング
受信フレーム• MAC は次のタイプの Rx パケットフィルタをサポート

MAC DA または SAフィルタ• MAC フィルタ• ユニキャスト転送元（SA）アドレス• ユニキャストおよびマルチキャスト転送先アドレス

失敗• VLAN タグベースのフィルタ
失敗• レイヤ 3 フィルタ
• 完全一致フィルタ

失敗• レイヤ 4 フィルタ
• 完全一致フィルタ• フィルタは、レイヤ 2～レイヤ 4 のフィルタリングまで累積される。

失敗

パケットを破棄レイヤ3

成功

TCP または UDP
DP または SPフィルタ• 転送元（SP）または転送先ポート（SP）

レイヤ2

成功

IP DA または SAフィルタ• IP 転送元（SA）および転送先（DA）アドレス

レイヤ2

成功

VLANフィルタ

• 完全またはハッシュ（6bit インデックス）フィルタ• C-VLAN および S-VLAN タイプの完全またはハッシュ（4bit インデックス）フィルタ

5

レイヤ4

成功

ホストに配信Ethernet MAC ペリフェラルは、受信フレームに適用可能ないくつかのフィルタリング機能を提供します。
さまざまなフィルタがネストされています。まず、MAC アドレスとVLAN タグでレイヤ 2 を最初にフィルタリングし、次に IPv4 または IPv6 アドレスに基づいてインターネット層のフィルタを適用します。最後に、UDP および TCP プロトコルのポート番号に従ってフレームをフィルタリングします。アクティブなフィルタの 1 つに拒否されたフレームは破棄され、ホストに配信されません。
すべてのレイヤで、完全またはハッシュフィルタリングを使用できます。

5

TCP/IP オフロード機能

6• MAC はハードウェアサポートを次の TCP/IP 機能に組込み• IP ヘッダおよび TCP/UDP/ICMP ペイロードをチェックする整合性チェックサムオフロードエンジン• チェックサム計算と挿入を送信• チェックサム計算と比較を受信• IPv4 アドレス認識プロトコル（ARP）によるオフロード• ARP リクエストに対してデバイスの MAC アドレス付き自動応答を生成• TCP セグメンテーションによるオフロード• 大きな送信 TCP パケットを複数の小さなパケットに自動分割• 最大 TCP パケットサイズは 256Kbyte をサポート• セグメンテーション後の最大 TCP パケットサイズは16Kbyte をサポート

Tx TCP Payload (P)Header

HHP1P1P2H

P2...

H

Pn

...

H

Segmented
Tx BufferPn

前のスライドで、レイヤ 3 とレイヤ 4 のフィルタリング機能が利用できることを確認しました。ペリフェラルがこれらの上位層で行う他の処理も見てみましょう。
IPv4 ヘッダのチェックサム、あるいは TCP/UDP ペイロードまたは ICMP データペイロードのチェックサムは、ハードウェアが自動計算します。これらの値は出力パケットで送信されるか、送信エラー検出のため受信された値と比較されます。
もう 1 つのレイヤ 3 オフロード機能は、ソフトウェアによらずデバイスの MAC アドレスをリクエスト元に送信する自動 ARP プロトコル応答です。
自動 TCP パケットセグメンテーションはハードウェアでサポートされています。ペリフェラルは、最大 256K バイトの大きな TCPパケットをいくつかの小さなパケットに分割する機能を備えています。

6

IEEE 1588

7

高精度タイミングプロトコル（PTP）• PTP の目的
• HW タイムスタンプを使用して、ローカルネットワークエリア（LAN）内のすべてのノードを非常に高い精度（<1µs）で同期• PTP プロトコルは、ノードとルータ間の同期メッセージを定義• STM32MP1 MAC の機能

同期マスタ
タイミング基準

パス 1
遅延 1

マスタ
タイミング基準

パス 2
遅延 2

パス 1
遅延 1

パス 2
遅延 2

スレーブ 2タイミング 2

スレーブ 1
タイミング基準

スレーブ 2タイミング基準

PTP 同期
スレーブ 1
タイミング 1

• MAC は PTPv2（IEEE 1588-2008）メッセージに準拠• 正確なタイミング基準はハードウェアカウンタに基づく• 64 の内部ビット（秒カウンタ用の 32bit、ナノ秒カウンタ用の 32bit）• HCLK のカウンタ精度は約 4ns（@ 266MHz）• 出力のPPS信号と外部イベントでトリガされたタイムスタンプスナップ
ショットによりタイミング基準を出力割込み

MAC
PHY
外部トリガ

タイミング基準pps…
…
タイムスタンプ 2
タイムスタンプ 1
ホスト

高精度タイミングプロトコルは、Ethernet ネットワークの複数のノード間の高精度同期をサポートする目的で開発されました。目標とする精度は約 1µs です。このレベルの精度は、パケットタイムスタンプのハードウェアサポートによってのみ達成できます。
この目的のため、ペリフェラル内部の 64bit レジスタに正確なタイミング基準を維持します。基準は、ネットワークノード間の標準化された同期メッセージにより調整できます。
内部のこの基準タイミングは、内部タイマ（TIM2 および TIM3）または GPIO に出力する PPS信号を通じてシステムで使用できるようになります。
タイムスタンプスナップショットは、タイマまたは CAN インタ
フェースから送られる最大 4 つの外部イベントにも利用できます。
これらのスナップショットは、ホストからアクセス可能な FIFO に保存されます。

7

PHY インタフェース

8

メディア独立インタフェース（MII）• PHY 制御インタフェース

MDC
STM32MP1• ステーション管理エージェント（SMA）

MDIO• PHY への 2 線式 MDIO インタフェース

SMA• PHY レジスタの制御を有効化• IEEE 802.3 条項 22 に準拠• PHY データインタフェース

STM32MP1• （Giga）メディア独立インタフェース：(G)MII• MII 用 16信号インタフェース• RMII 用 7信号インタフェース• RGMII 用 12信号インタフェース

TX_CLK
TXD[3：0]
TX_EN
TX_ER
RX_CLK
RXD[3：0]
RX_ER
RX_DV
CRS
COL

外部PHY

STM32MP1MII• GMII 用 24信号インタフェース• 減少（Giga）MIIR(G)MII

外部PHY

STM32MP1

RMII_CLK
TXD[1：0]
TX_EN
RXD[1：0]
RX_DV

RMII

TX_CLK
TXD[7：0]
TX_EN
TX_ER
RX_CLK
RXD[7：0]
RX_ER
RX_DV
CRS
COL

外部PHY

GMII
Tx_CLK

外部PHY

TXD[3：0]

STM32MP1

TX_EN
RXD[3：0]

外部PHY

RX_DV
Rx_CLK

RGMII

外部 PHY は、PHY 内部レジスタへの読取りおよび書込みアクセスを可能にするステーション管理エージェント（SMA）を介してペリフェラルにより制御されます。このインタフェースは、ワイヤのペアで MDIO プロトコルをサポートします。読取りおよび書込み操作コードを利用できます。
選択したデータレートに応じて、ペリフェラルは複数のメディア独立インタフェースをサポートします。
データレートが 10Mbit と 100Mbit の場合、ペリフェラルは、両方のデバイス間で 16 個の信号を必要とする従来のメディア独立インタフェース（MII）と、7 個の信号のみを使用して IO を節約する減少 MII をサポートします。
データレートが 1Gbit の場合、ペリフェラルは Giga MII と、そのインタフェースのピン数を減らした RGMII をサポートします。

8電源管理9

リモートウェイクアップフレームの検出
1. リモートウェイクアップモード

フル稼働 DMA/ MTL MAC Rx MII
MAC Txリモート
ウェイクアップ

LPI

オフ

MAC Rx

オフMII• PHY、MII インタフェース、および MAC Rx がアクティ
ブな状態のまま、アプリケーションと Tx クロックをオフにできる。
PHY

PHYネットワーク

ネットワーク• ウェイクアップは、AMD Magic またはユーザ定義のパケットを介してリンク層のネットワークにより制御される。
• ウェイクアップフレーム検出は、システムを STOPモードからウェイクアップするイベント。

2. 省電力型 Ethernet
オフ

オフ
オフ

LPI

LPI

ネットワーク• EEE モードでは、データの送受信がないときに MACと PHY の間のリンクをオフにすることで電力を節約します。データ転送がない場合、MAC および PHY は低電力アイドル（LPI）モードになる。
• データが転送されるとすぐにリンクが起動。パケット損失なし。

Ethernet ペリフェラルは、2 つの機能的な低電力モードをサポートしています。
1 つ目はリモートウェイクアップモードで、この場合ペリフェラルは受信パスのみアクティブな状態で待機し、特別なパケットを受信するとウェイクアップします。このイベントは、システムの STOPモードイベントをトリガします。
ペリフェラルがこのモードを維持している間、ウェイクアップフレー
ムを除くすべてのフレームがドロップされます。
2 番目の低電力モードである省電力型 Ethernet モードは、より高精度で動作します。MAC と外部 PHY の間のリンクは、データの送受信がない間は低電力アイドルモード（または LPI モード）で維持されます。 リンクはデータが転送されるとすぐに通常モードに戻ります。このモードではデータの損失はありません。
省電力型 Ethernet モードは、MII インタフェースを使用した100Mbit/s の全二重動作モードでのみ使用できます。

9

AHB 32-bit Slave

DMA
Tx0

ブロック図

AXI4 64-bit Master

DMA
Rx0 & Rx1

DMA
Tx1

DMA

10

• Ethernet ペリフェラルは以下を組み込んでいます。
• ダイレクトメモリインタフェース用の 3 つのマスタ DMA• 2 つの Rx キューの間で共有される 1 つの DMA

MTL• Tx キューごとに 1 つの DMA（x2）• データフロー管理のための Rx および Tx キュー向け内部FIFO
MAC

MDCMDIO

MII/
GMII
SelectPHY I/F•

キューの間で共有される FIFO ごとに 4KB• 全二重および半二重動作で 10/100/1000Mbit/s のデータ転送速度をサポートするメディアアクセスコントローラ（MAC）• メディア独立インタフェース（MII）、Giga MII（GMII）、減少 MII（RMII）、および減少 GMII（RGMII）フォーマットをサポートする
PHY インタフェースブロック

このスライドは、ペリフェラルのブロック図を示しています。
Ethernet ペリフェラルは以下を組み込んでいます。
• 内部アービタを備えた受信および送信パス用の 3 つのダイ
レクトメモリインタフェース複数のキュー操作で Rx DMA は 2つのキューで共有される一方、Tx DMA はキューごとに 1 つずつあります。
• データフロー管理のための Rx および Tx キュー向け内部
FIFO• 前のスライドで説明したほとんどの機能をサポートするメディアアクセスコントローラ（MAC）：オフロードエンジン、高精度
時間プロトコル、電力管理、統計収集用の MAC 管理カウンタ• 減少 MII 専用のブロックを備えたメディア独立インタフェース

10

割込み

11• 各機能ブロックは割込みをいくつか生成するが、出力されるのは 1本の割込みで、それがNVIC ペリフェラルにリンクされる。
• PMT 割込み信号は、ウェイクアップイベントとして EXTI ペリフェラルにもリンクされる。
機能ブロック

割込み

DMA

正規の送信または受信のための通常割込み
バスエラーまたはバッファ利用不可を知らせる異常割込み

MTL

Rx FIFO オーバーフロー
Tx FIFO アンダーフロー

MAC

タイムスタンプ割込み：
MMC 割込み：
LPI 割込み：
PMT 割込み：
PHY 割込み：

PTP タイミング基準で特定のイベント発生時にセット統計情報によりセット
省電力型 Ethernet モードでセット
リモートウェイクアップモードでセット
外部 PHY によりセットさまざまなイベントの結果として、Ethernet ペリフェラルからの割込みが生成されます。これらすべての割込み行はマスクされて同じグローバル割込み信号としてまとめられ、NVIC ペリフェラルにリンクされます。
リモートウェイクアップモードで発生した割込みは、完全なシステ
ムウェイクアップを促す特別なイベントとして EXTI にリダイレクトされます。
割込みは、ペリフェラルの 3 つの主要な機能ブロックから通知されます。DMA、各送受信パスの内部 FIFO を管理する MTL、およびプロトコルのすべての機能部分を担う MAC 自体の 3 つです。
DMA は、パケットの受信または送信時に通常割込みを生成します。また、すべてのバスエラー発生時またはバッファが使用できない場合に割込みを発生します。
MTL ブロックは、受信パスでのオーバーフロー検出時、または送信パスでのアンダーフロー検出時に割込みを生成します。
MAC ブロックは、PTP プロトコル設定、MMC カウンタ、省電力型 Ethernet、リモートウェイクアップの低電力モードにリンクされた割込みを生成します。また、外部 PHY からの割込みを転送します。
11

低電力モードモード

12

説明

RUN

アクティブSLEEP

アクティブペリフェラル割込みによって、デバイスは SLEEP モードを終了します。

STOP

Ethernet ペリフェラルは、システムが STOP モードのときにフレームを検出し、EXTI コント
ローラを介してフレームをウェイクアップします。

STANDBY

パワーダウン状態。ペリフェラルは、STANBY モード終了後に再初期化する必要があります。

次に、各低電力モードでのペリフェラルのステータスの概要を示します。
STOP モードでは、PMT モードのみを使用できます。このモード
では、ペリフェラルはウェイクアップパケットを待ちます。

12

参照

13

• Ethernet ペリフェラルは、次の規格に準拠しています。
• IEEE 802.3-2008（Ethernet MAC、ギガビットメディア独立インタフェース（GMII）、メディア独立インタフェース（MII））• IEEE 1588-2002 および IEEE 1588-2008（高精度タイミングプロトコル（PTP））• IEEE 802.1Q-2005（仮想ブリッジローカルエリアネットワーク（VLAN））• IEEE 802.1AS-2011 および 802.1-Qav-2009（オーディオビデオ（AV）トラフィック）• EEE 802.1-Qav 指定のクレジットベースシェーパー（CBS）アルゴリズム（送信チャネル）• IEEE 802.3az-2010（省電力型 Ethernet（EEE））• RMII 仕様バージョン 1.2（RMII コンソーシアム）• RMII 仕様バージョン 2.6（HP/Marvell）• 詳細については、以下を参照してください。
• UM1713：Developing applications on STM32Cube with LwIP TCP/IP stack（ユーザマニュアル）

Ethernet ペリフェラルは、次の IEEE 規格に準拠して以下をサポートしています。
• Ethernet MAC 仕様• VLAN、PTP、AVB 機能• 省電力型 Ethernet

13