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

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

1

概要

2

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

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

ユーザSW• 自動データフロー制御用に固有のDMAを埋め込み
TCP/IP
ミドルウェア• MIIおよびRMII外部PHYのサポート

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

HAL Ethernet
ペリフェラル•IEEE802.3MAC規格に完全適合•

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

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

2

主な機能
•

3

STM32H7 Ethernetペリフェラルは、次の機能をサポート• 動作モードおよびPHYサポート• データレートは10/100Mビット/秒• 全二重および半二重動作• (G)MIIおよび(G)RMIIインタフェースで外部PHYへ• 処理制御• オフロード処理• プリアンブルおよびフレーム開始データ（SFD）の挿入または削除• IPv4ヘッダとTCP、UDP、またはICMPペイロードのチェックサムチェック• 多層パケットフィルタリング• IPv4ヘッダとTCP、UDP、またはICMPペイロードのチェックサムを計算して挿入• ダブルVLAN処理• ARP応答• IEEE1588-2008/PTPv2をサポート• TCPセグメンテーション• RMON/MIBカウンタでネットワーク統計をサポート（RFC2819/RFC2665）• 低電力モード• リモートウェイクアップ･パケットと AMD Magic
Packet™ 検出

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

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

3

オフロード機能

4

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

転送先MAC（DA）
2

転送元MAC(DA)
3

VLAN
4

Ethタイプ5

ペイロード…
6

CRC
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パケット･フィルタをサポート

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

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

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

失敗

パケットを破棄

レイヤ3

成功

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

レイヤ2

成功

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

レイヤ2

成功

VLANフィルタ

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

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パケットサイズは256Kバイトをサポート• セグメンテーション後の最大 TCP パケットサイズは16Kバイトをサポート

Tx TCP Payload (P)Header

H

H

P1

P1

P2

H

P2...

H

Pn

...

H

Segmented
Tx BufferPn

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

6

IEEE1588

7

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

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

パス1
遅延1

マスタ
タイミング基準

パス2
遅延2

パス1
遅延1

パス2
遅延2

スレーブ2
タイミング2

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

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

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

MAC
PHY
外部トリガ

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

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

7

PHYインタフェース

8

メディア独立インタフェース（MII）• PHY制御インタフェース• ステーション管理インタフェース（SMI）

MDC

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

外部PHY

SMA

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

STM32H7• メディア独立インタフェース（MII）• 16信号インタフェース

外部PHYMII• 減少MII（RMII）• 7信号インタフェース

TX_CLK
TXD [ 3 ：0]
TX_ EN
TX_ ER
RX_ CLKRXD[ 3 ：0 ]RX_ ER
RX_ DVCRS
COL

STM32H7RMII _ CLK
TXD [ 1 ：0 ]TX_EN
RXD[ 1 ：0 ]
RX_DV

外部PHY

RMII

外部PHYは、PHY内部レジスタへの読取りおよび書込みアクセスを可能にするステーション管理エージェント（SMA）を介してペリフェラルにより制御されます。このインタフェースは、ワイヤのペアでMDIOプロトコルをサポートします。読取りおよび書込み操作コードを利用できます。
ペリフェラルでは2種類のインタフェースがサポートされており、どちらも10Mビット/秒または100Mビット/秒の全二重および半二重動作に対応しています。これらのインタフェースは、両デバイス間に16個の信号を必要とする従来のMedia-IndependentInterface（MII）と、7個の信号のみを必要とし、IOの節約を可能にするReduced-MIIです。

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インタフェースを使用した100Mビット/秒の全二重動作モードでのみ使用できます。

9

AHB Slave

ブロック図

AHB Master

DMA
Tx0

DMA
Rx0

DMA

10

• Ethernetペリフェラルは以下を組み込む• ダイレクト･メモリ･インタフェース用DMA

MTL• データフロー管理のためのRxキューおよびTxキュー用の内部FIFO• 10/100Mビット/秒のデータ転送速度（全二重/半二重）をサポートするメディア･アクセス･コントローラ(MAC)

MDCMDIO

MAC• メディア独立インタフェース（MII）、減少MII（RMII）フォーマットをサポートするPHYインタフェース･ブロック

SelectPHY I/F

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

10

割込み

11

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

割込み

DMA

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

MTLRxFIFOオーバーフロー
TxFIFOアンダーフロー

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ペリフェラルは、次の規格に準拠しています• IEEE802.3-2008（Ethernet MAC,MII）• IEEE1588-2002およびIEEE1588-2008（高精度タイミング･プロトコル（PTP））• IEEE802.1Q-2005（仮想ブリッジ･ローカルエリア･ネットワーク（VLAN））• RMIIコンソーシアムによるRMII仕様• 詳細については、以下を参照してください• UM1713：Developing applications on STM32Cube with LwIP TCP/IP stack（ユーザマニュアル）

Ethernetペリフェラルは、以下の規格に準拠しています。
• Ethernet MACに関するIEEE802.3-2002規格• IEEE1588-2008（ネットワークによる高精度クロック同期のための規格• RMIIコンソーシアムによるRMII仕様

13