106
© 2014 Microchip Technology Inc. DS61155B_JP - p.35-1 Ethernet コントローラ 35 セクション 35. Ethernet コントローラ ハイライト 本章では以下のトピックを説明します。 35.1 はじめに ............................................................... 35-2 35.2 Ethernet コントローラの概要 ............................................. 35-3 35.3 ステータス レジスタと制御レジスタ ....................................... 35-4 35.4 動作 ..................................................................35-56 35.5 Ethernet 割り込み ......................................................35-93 35.6 省電力モードとデバッグモードの動作 ....................................35-98 35.7 各種リセットの影響 .................................................. 35-101 35.8 I/O ピンの制御 ....................................................... 35-101 35.9 関連アプリケーション ノート .......................................... 35-102 35.10 改訂履歴 ............................................................ 35-103 注意 : この日本語版文書は参考資料としてご利用ください。最新情報は必ずオリジ ナルの英語版をご参照願います。

セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

注意 : この日本語版文書は参考資料としてご利用ください。 新情報は必ずオリジナルの英語版をご参照願います。

セクション 35. Ethernet コントローラ

Eth

ernet

コン

トロー

35

ハイライト

本章では以下のトピックを説明します。

35.1 はじめに ...............................................................35-2

35.2 Ethernet コントローラの概要 .............................................35-3

35.3 ステータス レジスタと制御レジスタ.......................................35-4

35.4 動作 ..................................................................35-56

35.5 Ethernet 割り込み ......................................................35-93

35.6 省電力モードとデバッグモードの動作 ....................................35-98

35.7 各種リセットの影響 .................................................. 35-101

35.8 I/O ピンの制御 ....................................................... 35-101

35.9 関連アプリケーション ノート.......................................... 35-102

35.10 改訂履歴 ............................................................ 35-103

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-1

Page 2: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

35.1 はじめに

Ethernet コントローラは、システムに Ethernet ノードを実装するためにチップ外の PHY に接続するバスマスタ モジュールです。

本モジュールの主な特長は以下の通りです。

• 10/100 Mbps のデータ転送レートをサポート

• 全二重および半二重動作をサポート

• RMII (Reduced Media Independent Interface) および MII (Media Independent Interface) PHYインターフェイスをサポート

• MIIM (MII Management) PHY 管理インターフェイスをサポート

• 手動と自動フロー制御の両方をサポート

• Auto-MDIX 付き PHY をサポート

• 送受信両方の経路における RAM ディスクリプタ ベースの DMA 動作

• 詳細設定が可能な割り込み

• 設定可能な受信パケットフィルタ処理

- CRC チェック

- 64 バイト パターンマッチ

- ブロードキャスト、マルチキャスト、ユニキャスト パケット

- Magic Packet™

- 64 ビット ハッシュテーブル

- ラントパケット (Runt Packet)

• パケット ペイロードのチェックサム計算をサポート

• 各種ハードウェア統計カウンタをサポート

Note: 本セクションは、デバイス データシートの内容の補足を目的としています。 本セ クションの内容は、PIC32 ファミリの一部のデバイスには対応していません。

本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、 新デバイス データシート内の「Ethernet コントローラ」の冒頭に記載している注意書 きでご確認ください。

デバイス データシートとファミリ リファレンス マニュアルの各セクションは、 Microchip社のウェブサイト http://www.microchip.comからダウンロードできます。

DS61155B_JP - p.35-2 © 2014 Microchip Technology Inc.

Page 3: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.2 Ethernet コントローラの概要

Ethernet コントローラは、外部 PHY チップを使って 10/100 Mbps Ethernet ノードを実装する ために必要なモジュールを提供します。 パケットデータ通信による負荷をCPUにかけないよう に、コントローラはディスクリプタ ベースの DMA エンジンを内蔵しています。

Ethernet コントローラを構成するモジュールは以下の通りです。

• メディアアクセス制御 (MAC)ブロック : Ethernet IEEE 802.3仕様のMAC機能を実装します。

• フロー制御 (FC) ブロック : PAUSE フレームの送信を制御します。 PAUSE フレームの受信は MAC 内で処理されます。

• RX フィルタ (RXF) ブロック : 各パケットの許可または拒否を判定するために全ての受信パケットに対してフィルタ処理を実行します。

• TX DMA/TX BM エンジン : TX DMA と TX バッファ管理エンジンは、メモリ ( ディスクリプタ テーブルを使用 ) から MAC 送信インターフェイスにデータを転送します。

• RX/DMA/RX BM エンジン : RX DMA と RX バッファ管理エンジンは、( ディスクリプタを使用して )MAC からメモリに受信パケットを転送します。

図 35-1 に Ethernet コントローラのブロック図を示します。

図 35-1: Ethernet コントローラのブロック図

Note: Ethernet 動作の詳細は、Microchip 社のウェブサイト (www.microchip.com) で公開している AN1120:『Ethernet Theory of Operation』(DS01120) と IEEE 802.3 仕様 (www.ieee.org) を参照してください。

TX Bus Master

System

BU

S

RX Bus Master

TX DMA

TX Flow Control

Host IF

RX DMA

RX Filter

Checksum

MAC ExternalPHY

MII/RMIIIF

MIIMIF

MAC Controland

ConfigurationRegisters

TX Function

RX Function

DMA Control

Registers

Fa

st Pe

riphe

ralB

US

Ethernet Controller

RX Flow Control

Ethernet DMA

RX BM

TX BMTX

F

IFO

RX

F

IFO

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-3

Page 4: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

35.3 ステータス レジスタと制御レジスタ

Ethernet コントローラ モジュールは以下の特殊機能レジスタ (SFR) を使います。

コントローラと DMA エンジン コンフィグレーション / ステータス レジスタ• ETHCON1: Ethernet コントローラ制御 1 レジスタ • ETHCON2: Ethernet コントローラ制御 2 レジスタ (1,2)

• ETHTXST: Ethernet コントローラ TX パケット ディスクリプタ開始アドレスレジスタ (1,2)

• ETHRXST: Ethernet コントローラ RX パケット ディスクリプタ開始アドレスレジスタ (1,2)

• ETHIEN: Ethernet コントローラ割り込みイネーブル レジスタ

• ETHIRQ: Ethernet コントローラ割り込み要求レジスタ

• ETHSTAT: Ethernet コントローラ ステータス レジスタ

RX フィルタ処理コンフィグレーション レジスタ :• ETHRXFC: Ethernet コントローラ受信フィルタ コンフィグレーション レジスタ (1,2)

• ETHHT0: Ethernet コントローラ ハッシュテーブル 0 レジスタ (1,2)

• ETHHT1: Ethernet コントローラ ハッシュテーブル 1 レジスタ (1,2)

• ETHPMM0: Ethernet コントローラ パターンマッチ マスク 0 レジスタ (1,2)

• ETHPMM1: Ethernet コントローラ パターンマッチ マスク 1 レジスタ (1,2)

• ETHPMCS: Ethernet コントローラ パターンマッチ チェックサム レジスタ (1,2)

• ETHPMO: Ethernet コントローラ パターンマッチ オフセット レジスタ (1,2)

フロー制御コンフィグレーション レジスタ :• ETHRXWM: Ethernet コントローラ受信ウォーターマーク レジスタ (1)

Ethernet 統計レジスタ :• ETHRXOVFLOW: Ethernet コントローラ受信オーバーフロー統計レジスタ (1,2)

• ETHFRMTXOK: Ethernet コントローラ フレーム送信成功統計レジスタ (1,2)

• ETHSCOLFRM: Ethernet コントローラ単一コリジョン フレーム統計レジスタ (1,2)

• ETHMCOLFRM: Ethernet コントローラ複数コリジョン フレーム統計レジスタ (1,2)

• ETHFRMRXOK: Ethernet コントローラ フレーム受信成功統計レジスタ (1,2)

• ETHFCSERR: Ethernet コントローラ フレームチェック シーケンス エラー統計レジスタ(1,2)

• ETHALGNERR: Ethernet コントローラ アラインメント エラー統計レジスタ (1,2)

MAC コンフィグレーション レジスタ :• EMAC1CFG1: Ethernet コントローラ MAC コンフィグレーション 1 レジスタ (1)

• EMAC1CFG2: Ethernet コントローラ MAC コンフィグレーション 2 レジスタ (1)

• EMAC1IPGT: Ethernet コントローラ MAC 連続パケット間ギャップレジスタ (1)

• EMAC1IPGR: Ethernet コントローラ MAC 非連続パケット間ギャップレジスタ (1)

• EMAC1CLRT: Ethernet コントローラ MAC コリジョン ウィンドウ / リトライ リミットレジスタ (1)

• EMAC1MAXF: Ethernet コントローラ MAC 大フレーム長レジスタ (1,2)

• EMAC1SUPP: Ethernet コントローラ MAC PHY サポートレジスタ (1,2)

• EMAC1TEST: Ethernet コントローラ MAC テストレジスタ (1,2)

• EMAC1SA0: Ethernet コントローラ MAC ステーション アドレス 0 レジスタ (1,2)

• EMAC1SA1: Ethernet コントローラ MAC ステーション アドレス 1 レジスタ (1,2)

• EMAC1SA2: Ethernet コントローラ MAC ステーション アドレス 2 レジスタ (1,2)

MII 管理レジスタ :• EMAC1MCFG: Ethernet コントローラ MAC MII 管理コンフィグレーション レジスタ (1,2)

• EMAC1MCMD: Ethernet コントローラ MAC MII 管理コマンド レジスタ (1)

• EMAC1MADR: Ethernet コントローラ MAC MII 管理アドレス レジスタ (1)

• EMAC1MWTD: Ethernet コントローラ MAC MII 管理書き込みデータレジスタ (1)

• EMAC1MRDD: Ethernet コントローラ MAC MII 管理読み出しデータレジスタ (1)

• EMAC1MIND: Ethernet コントローラ MAC MII 管理インジケータ レジスタ (1)

表 35-1 に、Ethernet コントローラのレジスタをまとめます。 各レジスタの詳細は後述します。

DS61155B_JP - p.35-4 © 2014 Microchip Technology Inc.

Page 5: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

表 35-1: Ethernet コントローラ レジスタのまとめ

レジスタ名ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

ETHCON1(1,2,3) 31:24 PTV <15:8>

23:16 PTV <7:0>

15:8 ON - SIDL - - - TXRTS RXEN

7:0 AUTOFC - - MANFC - - - BUFCDEC

ETHCON2(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - - - - - RXBUFSZ<6:4>

7:0 RXBUFSZ<3:0> - - - -

ETHTXST(1,2,3) 31:24 TXSTADDR<31:24>

23:16 TXSTADDR<23:16>

15:8 TXSTADDR<15:8>

7:0 TXSTADDR<7:2> - -

ETHRXST(1,2,3) 31:24 RXSTADDR<31:24>

23:16 RXSTADDR<23:16>

15:8 RXSTADDR<15:8>

7:0 RXSTADDR<7:2> - -

ETHHT0(1,2,3) 31:24 HT<31:24>

23:16 HT<23:16>

15:8 HT<15:8>

7:0 HT<7:0>

ETHHT1(1,2,3) 31:24 HT<63:56>

23:16 HT<55:48>

15:8 HT<47:40>

7:0 HT<39:32>

ETHPMM0(1,2,3) 31:24 PMM<31:24>

23:16 PMM<23:16>

15:8 PMM<15:8>

7:0 PMM<7:0>

ETHPMM1(1,2,3) 31:24 PMM<63:56>

23:16 PMM<55:48>

15:8 PMM<47:40>

7:0 PMM<39:32>

ETHPMCS(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 PMCS<15:8>

7:0 PMCS<7:0>

凡例 : - = 未実装、「0」として読み出し。

Note 1: このレジスタに対応するクリアレジスタが 0x4 バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「CLR」を追加した名前を持ちます ( 例 : ETHCON1CLR)。 クリアレジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットがクリアされます。 クリアレジスタからの読み出しは無視してください。

2: このレジスタに対応するセットレジスタが 0x8 バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「SET」を追加した名前を持ちます ( 例 : ETHCON1SET)。 セットレジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットがセットされます。 セットレジスタからの読み出しは無視してください。

3: このレジスタに対応する反転レジスタが 0xC バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「INV」を追加した名前を持ちます ( 例 : ETHCON1INV)。 反転レジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットが反転します。 反転レジスタからの読み出しは無視してください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-5

Page 6: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

ETHPMO(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 PMO<15:8>

7:0 PMO<7:0>

ETHRXFC(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 HTEN MPEN - NOTPM PMMODE<3:0>

7:0 CRCERREN CRCOKEN RUNTERREN RUNTEN UCEN NOTMEEN MCEN BCEN

ETHRXWM(1,2,3) 31:24 - - - - - - - -

23:16 RXFWM<7:0>

15:8 - - - - - - - -

7:0 RXEWM<7:0>

ETHIEN(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - TXBUSEIE RXBUSEIE - - - EWMARKIE FWMARKIE

7:0 RXDONEIE PKTPENDIE RXACTIE - TXDONEIE TXABORTIE RXBUFNAIE RXOVFLWIE

ETHIRQ(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - TXBUSE RXBUSE - - - EWMARK FWMARK

7:0 RXDONE PKTPEND RXACT - TXDONE TXABORT RXBUFNA RXOVFLW

ETHSTAT 31:24 - - - - - - - -

23:16 BUFCNT<7:0>

15:8 - - - - - - - -

7:0 ETHBUSY TXBUSY RXBUSY - - - - -

ETHRXOVFLOW(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 RXOVFLWCNT<15:8>

7:0 RXOVFLWCNT<7:0>

ETHFRMTXOK(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 FRMTXOKCNT<15:8>

7:0 FRMTXOKCNT<7:0>

ETHSCOLFRM(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 SCOLFRMCNT<15:8>

7:0 SCOLFRMCNT<7:0>

表 35-1: Ethernet コントローラ レジスタのまとめ ( 続き )

レジスタ名ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

凡例 : - = 未実装、「0」として読み出し。

Note 1: このレジスタに対応するクリアレジスタが 0x4 バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「CLR」を追加した名前を持ちます ( 例 : ETHCON1CLR)。 クリアレジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットがクリアされます。 クリアレジスタからの読み出しは無視してください。

2: このレジスタに対応するセットレジスタが 0x8 バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「SET」を追加した名前を持ちます ( 例 : ETHCON1SET)。 セットレジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットがセットされます。 セットレジスタからの読み出しは無視してください。

3: このレジスタに対応する反転レジスタが 0xC バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「INV」を追加した名前を持ちます ( 例 : ETHCON1INV)。 反転レジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットが反転します。 反転レジスタからの読み出しは無視してください。

DS61155B_JP - p.35-6 © 2014 Microchip Technology Inc.

Page 7: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

ETHMCOLFRM(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 MCOLFRMCNT<15:8>

7:0 MCOLFRMCNT<7:0>

ETHFRMRXOK(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 FRMRXOKCNT<15:8>

7:0 FRMRXOKCNT<7:0>

ETHFCSERR(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 FCSERRCNT<15:8>

7:0 FCSERRCNT<7:0>

ETHALGNERR(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 ALGNERRCNT<15:8>

7:0 ALGNERRCNT<7:0>

EMAC1CFG1(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 SOFTRESET SIMRESET - - RESETRMCS RESETRFUN RESETTMCS RESETTFUN

7:0 - - - LOOPBACK TXPAUSE RXPAUSE PASSALL RXENABLE

EMAC1CFG2(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - EXCESSDFR BPNOBKOFF NOBKOFF - - LONGPRE PUREPRE

7:0 AUTOPAD VLANPAD PADENABLE CRCENABLE DELAYCRC HUGEFRM LENGTHCK FULLDPLX

EMAC1IPGT (1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - - - - - - - -

7:0 - B2BIPKTGP<6:0>

EMAC1IPGR(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - NB2BIPKTGP1<6:0>

7:0 - NB2BIPKTGP2<6:0>

EMAC1CLRT(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - - CWINDOW<5:0>

7:0 - - - - RETX<3:0>

表 35-1: Ethernet コントローラ レジスタのまとめ ( 続き )

レジスタ名ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

凡例 : - = 未実装、「0」として読み出し。

Note 1: このレジスタに対応するクリアレジスタが 0x4 バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「CLR」を追加した名前を持ちます ( 例 : ETHCON1CLR)。 クリアレジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットがクリアされます。 クリアレジスタからの読み出しは無視してください。

2: このレジスタに対応するセットレジスタが 0x8 バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「SET」を追加した名前を持ちます ( 例 : ETHCON1SET)。 セットレジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットがセットされます。 セットレジスタからの読み出しは無視してください。

3: このレジスタに対応する反転レジスタが 0xC バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「INV」を追加した名前を持ちます ( 例 : ETHCON1INV)。 反転レジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットが反転します。 反転レジスタからの読み出しは無視してください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-7

Page 8: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

EMAC1MAXF(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 MACMAXF<15:8>

7:0 MACMAXF<7:0>

EMAC1SUPP(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - - - - RESETRMII - - SPEEDRMII

7:0 - - - - - - - -

EMAC1TEST(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - - - - - - - -

7:0 - - - - - TESTBP TESTPAUSE SHRTQNTA

EMAC1MCFG(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 RESETMGMT - - - - - - -

7:0 - - CLKSEL<3:0> NOPRE SCANINC

EMAC1MCMD(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - - - - - - - -

7:0 - - - - - - SCAN READ

EMAC1MADR(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - - - PHYADDR<4:0>

7:0 - - - REGADDR<4:0>

EMAC1MWTD(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 MWTD<15:8>

7:0 MWTD<7:0>

EMAC1MRDD(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 MRDD<15:8>

7:0 MRDD<7:0>

EMAC1MIND(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 - - - - - - - -

7:0 - - - - LINKFAIL NOTVALID SCAN MIIMBUSY

表 35-1: Ethernet コントローラ レジスタのまとめ ( 続き )

レジスタ名ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

凡例 : - = 未実装、「0」として読み出し。

Note 1: このレジスタに対応するクリアレジスタが 0x4 バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「CLR」を追加した名前を持ちます ( 例 : ETHCON1CLR)。 クリアレジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットがクリアされます。 クリアレジスタからの読み出しは無視してください。

2: このレジスタに対応するセットレジスタが 0x8 バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「SET」を追加した名前を持ちます ( 例 : ETHCON1SET)。 セットレジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットがセットされます。 セットレジスタからの読み出しは無視してください。

3: このレジスタに対応する反転レジスタが 0xC バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「INV」を追加した名前を持ちます ( 例 : ETHCON1INV)。 反転レジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットが反転します。 反転レジスタからの読み出しは無視してください。

DS61155B_JP - p.35-8 © 2014 Microchip Technology Inc.

Page 9: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

EMAC1SA0(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 STNADDR6<7:0>

7:0 STNADDR5<7:0>

EMAC1SA1(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 STNADDR4<7:0>

7:0 STNADDR3<7:0>

EMAC1SA2(1,2,3) 31:24 - - - - - - - -

23:16 - - - - - - - -

15:8 STNADDR2<7:0>

7:0 STNADDR1<7:0>

表 35-1: Ethernet コントローラ レジスタのまとめ ( 続き )

レジスタ名ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

凡例 : - = 未実装、「0」として読み出し。

Note 1: このレジスタに対応するクリアレジスタが 0x4 バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「CLR」を追加した名前を持ちます ( 例 : ETHCON1CLR)。 クリアレジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットがクリアされます。 クリアレジスタからの読み出しは無視してください。

2: このレジスタに対応するセットレジスタが 0x8 バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「SET」を追加した名前を持ちます ( 例 : ETHCON1SET)。 セットレジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットがセットされます。 セットレジスタからの読み出しは無視してください。

3: このレジスタに対応する反転レジスタが 0xC バイト オフセットしたアドレスに設けられています。 これらのレジスタは、対応するレジスタの名前の後に「INV」を追加した名前を持ちます ( 例 : ETHCON1INV)。 反転レジスタの任意のビット位置に「1」を書き込むと、対応するレジスタの有効なビットが反転します。 反転レジスタからの読み出しは無視してください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-9

Page 10: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-1: ETHCON1: Ethernet コントローラ制御 1 レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTV<15:8>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PTV<7:0>

15:8R/W-0 U-0 R/W-0 U-0 U-0 U-0 R/W-0 R/W-0

ON - SIDL - - - TXRTS RXEN(1)

7:0R/W-0 U-0 U-0 R/W-0 U-0 U-0 U-0 R/W-0

AUTOFC - - MANFC - - - BUFCDEC

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 PTV<15:0>: PAUSE タイマ値ビット

フロー制御に使う PAUSE タイマ値 このレジスタには RXEN (ETHCON1<8>) をセットしていない場合にのみ書き込めます。

これらのビットはフロー制御動作専用です。

bit 15 ON: Ethernet ON ビット

1 = Ethernet モジュールを有効にする0 = Ethernet モジュールを無効にする

bit 14 未実装 :「0」として読み出し

bit 13 SIDL: Ethernet Stop-in-Idle モードビット

1 = アイドル中は Ethernet モジュールの転送を停止する0 = アイドル中も Ethernet モジュールの転送を継続する

bit 12-10 未実装 :「0」として読み出し

bit 9 TXRTS: 送信要求ビット

1 = 送信ロジックをアクティブ化して TX EDT に定義されているパケットを送信する0 = 送信を停止する ( ソフトウェアによってクリアされた場合 )、または送信が完了した ( ハードウェ

アによってクリアされた場合 )

「1」が書き込まれた後、送信ロジックが Ethernet ディスクリプタ テーブル (EDT) 内で定義されている パケットの送信を完了すると、ビットは必ず「0」にクリアされます。 CPU が「0」を書き込んだ場合、 送信ロジックは現在のパケットの送信を完了し、その後停止します。

このビットは TX 動作にのみ影響します。

bit 8 RXEN: 受信イネーブルビット (1)

1 = RX ロジックを有効にして、フィルタ設定による制御に従い、パケットを受信し RX バッファに格納する

0 = RX ロジックを無効にして、RX バッファにパケットを受信しない。

このビットは RX 動作にのみ影響します。

Note 1: RXENビットをクリアした後は、どのRX関連フィールド/レジスタも変更しない事を推奨します。 Ethernet コントローラを再初期化 (ON を「0」にクリア ) してから、RX の変更を適用する必要があります。

DS61155B_JP - p.35-10 © 2014 Microchip Technology Inc.

Page 11: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

bit 7 AUTOFC: 自動フロー制御ビット

1 = 自動フロー制御を有効にする0 = 自動フロー制御を無効にする

このビットをセットすると自動フロー制御が有効になります。 このビットをセットすると、フロー制御は フル /ウォーターマークによって有効 /無効に設定されます。 受信バッファ数BUFCNT (ETHSTAT<16:23>) がフル ウォーターマークまで増加すると、フロー制御が有効となります。 BUFCNTがエンプティ ウォー ターマークまで減少すると、フロー制御は自動的に無効となります。

このビットはフロー制御動作にのみ使い、TX と RX の両動作に影響します。

bit 6-5 未実装 :「0」として読み出し

bit 4 MANFC: 手動フロー制御ビット

1 = 手動フロー制御を有効にする0 = 手動フロー制御を無効にする

このビットをセットすると手動フロー制御が有効になります。 このビットをセットすると、フロー制御 ロジックは PTV レジスタの PAUSE タイマ値に従って PAUSE フレームを送信します。 その後はビット がクリアされるまでTXクロックの128 * PTV<15:0>/2サイクルごとにPAUSEフレームを再送信します。

10 Mbps 動作の場合、TX クロックは 2.5 MHz で動作します。 100 Mbps 動作の場合、TX クロックは 25 MHz で動作します。

このビットをクリアすると、フロー制御ロジックは PAUSE タイマ値を 0x0000 とした PAUSE フレームを自動送信し、フロー制御を無効にします。

このビットはフロー制御動作にのみ使い、TX と RX の両動作に影響します。

bit 3-1 未実装 :「0」として読み出し

bit 0 BUFCDEC: ディスクリプタ バッファカウント デクリメント ビット

BUFCDEC ビットは「1」を書き込む時のみ機能するビットです。 このビットに「1」を書き込むと、 ディスクリプタ バッファカウンタ BUFCNT が 1 デクリメントされます。 このビットの書き込みと同時 に RX ロジックが BUFCNT カウンタをインクリメントした場合、BUFCNT の値は変化しません。 「0」 書き込みは何の影響も与えません。

このビットは RX 動作にのみ使います。

レジスタ 35-1: ETHCON1: Ethernet コントローラ制御 1 レジスタ ( 続き )

Note 1: RXENビットをクリアした後は、どのRX関連フィールド/レジスタも変更しない事を推奨します。 Ethernet コントローラを再初期化 (ON を「0」にクリア ) してから、RX の変更を適用する必要があります。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-11

Page 12: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-2: ETHCON2: Ethernet コントローラ制御 2 レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0

- - - - - RXBUFSZ<6:4>

7:0R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 U-0

RXBUFSZ<3:0> - - - -

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-11 未実装 :「0」として読み出し

bit 10-4 RXBUFSZ<6:0>: 全 RX ディスクリプタの RX データバッファ サイズビット (16 バイト刻み )

0x00 = 予約済み

0x01 = ディスクリプタの RX データバッファ サイズを 16 バイトにする0x02 = ディスクリプタの RX データバッファ サイズを 32 バイトにする0x03 = ディスクリプタの RX データバッファ サイズを 48 バイトにする

0x60 = ディスクリプタの RX データバッファ サイズを 1536 バイトにする

0x7F = ディスクリプタの RX データバッファ サイズを 2032 バイトにする

bit 3-0 未実装 :「0」として読み出し

Note 1: このレジスタは RX 動作にのみ使います。

2: これらのビットは、RXEN ビット (ETHCON1<8>) = 0の場合のみ変更できます。

DS61155B_JP - p.35-12 © 2014 Microchip Technology Inc.

Page 13: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-3: ETHTXST: Ethernet コントローラ TX パケット ディスクリプタ開始アドレスレジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

TXSTADDR<31:24>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

TXSTADDR<23:16>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

TXSTADDR<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0

TXSTADDR<7:2> - -

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-2 TXSTADDR<31:2>: 初の送信ディスクリプタの開始アドレスビット

いかなる送信、受信、DMA 動作の実行中も、このレジスタには書き込まないでください。

このアドレスは境界を 4 バイトに揃える必要があります ( つまり、ビット 1 ~ 0 は「00」である必要があります )。

bit 1-0 未実装 :「0」として読み出し

Note 1: このレジスタは TX 動作にのみ使います。

2: このレジスタは、 後に送信に成功したパケットが使った 後のディスクリプタに、ハードウェアによって自動的に更新されます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-13

Page 14: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-4: ETHRXST: Ethernet コントローラ RX パケット ディスクリプタ開始アドレスレジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

RXSTADDR<31:24>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

RXSTADDR<23:16>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

RXSTADDR<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 U-0

RXSTADDR<7:2> - -

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-2 RXSTADDR<31:2>: 初の受信ディスクリプタの開始アドレスビット

いかなる送信、受信、DMA 動作の実行中も、このレジスタには書き込まないでください。

このアドレスは境界を 4 バイトに揃える必要があります ( つまり、ビット 1 ~ 0 は「00」である必要があります )。

bit 1-0 未実装 :「0」として読み出し

Note 1: このレジスタは RX 動作にのみ使います。

2: このレジスタは、 後に受信に成功したパケットが使った 後のディスクリプタに、ハードウェアによって自動的に更新されます。

DS61155B_JP - p.35-14 © 2014 Microchip Technology Inc.

Page 15: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-5: ETHHT0: Ethernet コントローラ ハッシュテーブル 0 レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

HT<31:24>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

HT<23:16>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

HT<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

HT<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-0 HT<31:0>: ハッシュテーブル バイト 0 ~ 3 のビット

Note 1: このレジスタは RX 動作にのみ使います。

2: これらのビットは、RXEN ビット (ETHCON1<8>) = 0または HTEN ビット (ETHRXFC<15>) = 0の場合のみ変更できます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-15

Page 16: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-6: ETHHT1: Ethernet コントローラ ハッシュテーブル 1 レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

HT<63:56>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

HT<55:48>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

HT<47:40>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

HT<39:32>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-0 HT<63:32>: ハッシュテーブル バイト 4 ~ 7 のビット

Note 1: このレジスタは RX 動作にのみ使います。

2: これらのビットは、RXEN ビット (ETHCON1<8>) = 0または HTEN ビット (ETHRXFC<15>) = 0の場合のみ変更できます。

DS61155B_JP - p.35-16 © 2014 Microchip Technology Inc.

Page 17: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-7: ETHPMM0: Ethernet コントローラ パターンマッチ マスク 0 レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMM<31:24>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMM<23:16>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMM<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMM<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-24 PMM<31:24>: パターンマッチ マスク 3 のビット

bit 23-16 PMM<23:16>: パターンマッチ マスク 2 のビット

bit 15-8 PMM<15:8>: パターンマッチ マスク 1 のビット

bit 7-0 PMM<7:0>: パターンマッチ マスク 0 のビット

Note 1: このレジスタは RX 動作にのみ使います。

2: これらのビットは、RXEN ビット (ETHCON1<8>) = 0または PMMODE ビット (ETHRXFC<11:8>) = 0の場合のみ変更できます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-17

Page 18: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-8: ETHPMM1: Ethernet コントローラ パターンマッチ マスク 1 レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMM<63:56>

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMM<55:48>

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMM<47:40>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMM<39:32>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-24 PMM<63:56>: パターンマッチ マスク 7 のビット

bit 23-16 PMM<55:48>: パターンマッチ マスク 6 のビット

bit 15-8 PMM<47:40>: パターンマッチ マスク 5 のビット

bit 7-0 PMM<39:32>: パターンマッチ マスク 4 のビット

Note 1: このレジスタは RX 動作にのみ使います。

2: これらのビットは、RXEN ビット (ETHCON1<8>) = 0または PMMODE ビット (ETHRXFC<11:8>) = 0の場合のみ変更できます。

DS61155B_JP - p.35-18 © 2014 Microchip Technology Inc.

Page 19: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-9: ETHPMCS: Ethernet コントローラ パターンマッチ チェックサム レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMCS<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMCS<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-8 PMCS<15:8>: パターンマッチ チェックサム 1 のビット

bit 7-0 PMCS<7:0>: パターンマッチ チェックサム 0 のビット

Note 1: このレジスタは RX 動作にのみ使います。

2: これらのビットは、RXEN ビット (ETHCON1<8>) = 0または PMMODE ビット (ETHRXFC<11:8>) = 0の場合のみ変更できます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-19

Page 20: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-10: ETHPMO: Ethernet コントローラ パターンマッチ オフセット レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMO<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

PMO<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-0 PMO<15:0>: パターンマッチ オフセット 1 のビット

Note 1: このレジスタは RX 動作にのみ使います。

2: これらのビットは、RXEN ビット (ETHCON1<8>) = 0または PMMODE ビット (ETHRXFC<11:8>) = 0の場合のみ変更できます。

DS61155B_JP - p.35-20 © 2014 Microchip Technology Inc.

Page 21: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-11: ETHRXFC: Ethernet コントローラ受信フィルタ コンフィグレーション レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

HTEN MPEN - NOTPM PMMODE<3:0>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

CRCERREN CRCOKEN RUNTERREN RUNTEN UCEN NOTMEEN MCEN BCEN

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15 HTEN: ハッシュテーブル フィルタ処理イネーブルビット

1 = ハッシュテーブル フィルタ処理を有効にする0 = ハッシュテーブル フィルタ処理を無効にする

bit 14 MPEN: Magic Packet™ イネーブルビット

1 = Magic Packet フィルタ処理を有効にする0 = Magic Packet フィルタ処理を無効にする

bit 13 未実装 :「0」として読み出し

bit 12 NOTPM: パターンマッチ反転ビット

1 = パターンマッチを一致と判定するにはパターンマッチ チェックサムが一致してはならない0 = パターンマッチを一致と判定するにはパターンマッチ チェックサムが一致する必要があるこのビットは、パターンマッチが一致と判定されるためのパターンマッチ チェックサム一致の要否を決 定します。

Note 1: このレジスタは RX 動作にのみ使います。

2: これらのビットは、RXEN ビット (ETHCON1<8>) = 0の場合のみ変更できます。

3: XOR = どちらか一方の条件が真であるが、両方が真ではない場合に真となる論理です。

4: このハッシュテーブル フィルタマッチは HTEN ビットの値に関係なくアクティブです。

5: この Magic Packet フィルタマッチは MPEN ビットの値に関係なくアクティブです。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-21

Page 22: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

bit 11-8 PMMODE<3:0>: パターンマッチ モード ビット

0000 = パターンマッチを無効にする ( パターンマッチは常に不成立 )0001 = (NOTPM = 1 XOR パターンマッチ チェックサム一致 ) の場合、パターンマッチが成立する (3)

0010 = (NOTPM = 1 XOR パターンマッチ チェックサム一致 ) かつ( 宛先アドレス = ステーション アドレス ) の場合、パターンマッチが成立する (3)

0011 = (NOTPM = 1 XOR パターンマッチ チェックサム一致 ) かつ( 宛先アドレス = ステーション アドレス ) の場合、パターンマッチが成立する (3)

0100 = (NOTPM = 1 XOR パターンマッチ チェックサム一致 ) かつ( 宛先アドレス = ユニキャスト アドレス ) の場合、パターンマッチが成立する (3)

0101 = (NOTPM = 1 XOR パターンマッチ チェックサム一致 ) かつ( 宛先アドレス = ユニキャスト アドレス ) の場合、パターンマッチが成立する (3)

0110 = (NOTPM = 1 XOR パターンマッチ チェックサム一致 ) かつ( 宛先アドレス = ブロードキャスト アドレス ) の場合、パターンマッチが成立する (3)

0111 = (NOTPM = 1 XOR パターンマッチ チェックサム一致 ) かつ( 宛先アドレス = ブロードキャスト アドレス ) の場合、パターンマッチが成立する (3)

1000 = (NOTPM = 1 XOR パターンマッチ チェックサム一致 ) かつ( ハッシュテーブル フィルタ一致 ) の場合、パターンマッチが成立する (3,4)

1001 = (NOTPM = 1 XOR パターンマッチ チェックサム一致 ) かつ( パケット = Magic Packet) の場合、パターンマッチが成立する (3,5)

bit 7 CRCERREN: CRC エラー収集イネーブルビット

1 = パケットを許可するには受信パケットの CRC が無効である必要がある0 = CRC エラー収集フィルタ処理を無効にするこのビットを使うと、CRC が無効のパケットを全て収集できます。

bit 6 CRCOKEN: CRC OK イネーブルビット

1 = パケットを許可するには受信パケットの CRC が有効である必要がある0 = CRC フィルタ処理を無効にするこのビットを使うと、CRC が無効のパケットを全て拒否できます。

bit 5 RUNTERREN: ラントエラー収集イネーブルビット

1 = パケットを許可するには受信パケットがラントパケットである必要がある0 = ラントエラー収集フィルタ処理を無効にする

このビットを使うと、ラントパケットを全て収集できます。 このフィルタではラントパケットを、サイズが 64 バイト未満 (CRCOKEN = 0の場合 ) またはサイズが 64 バイト未満かつ CRC が有効な (CRCOKEN = 1 の場合 ) 全てのパケットと定義しています。

bit 4 RUNTEN: ラント イネーブルビット

1 = パケットを許可するには受信パケットがラントパケットであってはならない0 = ラントフィルタ処理を無効にする

このビットを使うと、ラントパケットを全て拒否できます。 このフィルタではラントパケットを、サイズ が 64 バイト未満の全てのパケットと定義しています。

レジスタ 35-11: ETHRXFC: Ethernet コントローラ受信フィルタ コンフィグレーション レジスタ (1,2) ( 続き )

Note 1: このレジスタは RX 動作にのみ使います。

2: これらのビットは、RXEN ビット (ETHCON1<8>) = 0の場合のみ変更できます。

3: XOR = どちらか一方の条件が真であるが、両方が真ではない場合に真となる論理です。

4: このハッシュテーブル フィルタマッチは HTEN ビットの値に関係なくアクティブです。

5: この Magic Packet フィルタマッチは MPEN ビットの値に関係なくアクティブです。

DS61155B_JP - p.35-22 © 2014 Microchip Technology Inc.

Page 23: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

bit 3 UCEN: ユニキャスト イネーブルビット

1 = ユニキャスト フィルタ処理を有効にする0 = ユニキャスト フィルタ処理を無効にする

このビットを使うと、宛先アドレスとステーション アドレスが一致する全てのユニキャスト パケットを 許可する事ができます。

bit 2 NOTMEEN:Not Me ユニキャスト イネーブルビット

1 = Not Me ユニキャスト フィルタ処理を有効にする0 = Not Me ユニキャスト フィルタ処理を無効にする

このビットを使うと、宛先アドレスとステーション アドレスが一致しない全てのユニキャスト パケット を許可する事ができます。

bit 1 MCEN: マルチキャスト イネーブルビット

1 = マルチキャスト フィルタ処理を有効にする0 = マルチキャスト フィルタ処理を無効にする

このビットを使うと、マルチキャスト アドレスのパケットを全て許可する事ができます。

bit 0 BCEN: ブロードキャスト イネーブルビット

1 = ブロードキャスト フィルタ処理を有効にする0 = ブロードキャスト フィルタ処理を無効にする

このビットを使うと、ブロードキャスト アドレスのパケットを全て許可する事ができます。

レジスタ 35-11: ETHRXFC: Ethernet コントローラ受信フィルタ コンフィグレーション レジスタ (1,2) ( 続き )

Note 1: このレジスタは RX 動作にのみ使います。

2: これらのビットは、RXEN ビット (ETHCON1<8>) = 0の場合のみ変更できます。

3: XOR = どちらか一方の条件が真であるが、両方が真ではない場合に真となる論理です。

4: このハッシュテーブル フィルタマッチは HTEN ビットの値に関係なくアクティブです。

5: この Magic Packet フィルタマッチは MPEN ビットの値に関係なくアクティブです。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-23

Page 24: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-12: ETHRXWM: Ethernet コントローラ受信ウォーターマーク レジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

RXFWM<7:0>

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

RXEWM<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-24 未実装 :「0」として読み出し

bit 23-16 RXFWM<7:0>: 受信フル ウォーターマーク ビット

ソフトウェア制御のRXバッファフル ウォーターマーク ポインタをRX BUFCNTと比較して、フル ウォー ターマークの条件を判定します。その判定により FWMARK 割り込みを生成し、自動フロー制御が有効な場合はフロー制御を有効にします。 フル ウォーターマーク ポインタは、常にエンプティ ウォーター マーク ポインタより大きい必要があります。

bit 15-8 未実装 :「0」として読み出し

bit 7-0 RXEWM<7:0>: 受信エンプティ ウォーターマーク ビット

ソフトウェア制御の RX バッファ エンプティ ウォーターマーク ポインタを RX BUFCNT と比較して、 エンプティ ウォーターマークの条件を判定します。その判定により EWMARK 割り込みを生成し、自 動フロー制御が有効な場合にはフロー制御を無効にします。 エンプティ ウォーターマーク ポインタ は、常にフル ウォーターマーク ポインタより小さい必要があります。

Note 1: このレジスタは RX 動作にのみ使います。

DS61155B_JP - p.35-24 © 2014 Microchip Technology Inc.

Page 25: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-13: ETHIEN: Ethernet コントローラ割り込みイネーブル レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 R/W-0 R/W-0 U-0 U-0 U-0 R/W-0 R/W-0

- TXBUSEIE(1) RXBUSEIE(2) - - - EWMARKIE(2) FWMARKIE(2)

7:0R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0

RXDONEIE(2) PKTPENDIE(2) RXACTIE(2) - TXDONEIE(1) TXABORTIE(1) RXBUFNAIE(2) RXOVFLWIE(2)

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-15 未実装 :「0」として読み出し

bit 14 TXBUSEIE: 送信 BVCI バスエラー割り込みイネーブルビット (1)

1 = TXBUS エラー割り込みを有効にする0 = TXBUS エラー割り込みを無効にする

bit 13 RXBUSEIE: 受信 BVCI バスエラー割り込みイネーブルビット (2)

1 = RXBUS エラー割り込みを有効にする0 = RXBUS エラー割り込みを無効にする

bit 12-10 未実装 :「0」として読み出し

bit 9 EWMARKIE: エンプティ ウォーターマーク割り込みイネーブルビット (2)

1 = EWMARK 割り込みを有効にする0 = EWMARK 割り込みを無効にする

bit 8 FWMARKIE: フル ウォーターマーク割り込みイネーブルビット (2)

1 = FWMARK 割り込みを有効にする0 = FWMARK 割り込みを無効にする

bit 7 RXDONEIE: レシーバ完了割り込みイネーブルビット (2)

1 = RXDONE 割り込みを有効にする0 = RXDONE 割り込みを無効にする

bit 6 PKTPENDIE: パケット保留割り込みイネーブルビット (2)

1 = PKTPEND 割り込みを有効にする0 = PKTPEND 割り込みを無効にする

bit 5 RXACTIE: RX アクティビティ割り込みイネーブルビット

1 = RXACT 割り込みを有効にする0 = RXACT 割り込みを無効にする

bit 4 未実装 :「0」として読み出し

bit 3 TXDONEIE: トランスミッタ完了割り込みイネーブルビット (1)

1 = TXDONE 割り込みを有効にする0 = TXDONE 割り込みを無効にする

bit 2 TXABORTIE: トランスミッタ中止割り込みイネーブルビット (1)

1 = TXABORT 割り込みを有効にする0 = TXABORT 割り込みを無効にする

Note 1: これらのビットは TX 動作にのみ使います。

2: これらのビットは RX 動作にのみ使います。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-25

Page 26: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

bit 1 RXBUFNAIE: 受信バッファ使用不可割り込みイネーブルビット (2)

1 = RXBUFNA 割り込みを有効にする0 = RXBUFNA 割り込みを無効にする

bit 0 RXOVFLWIE: 受信 FIFO オーバーフロー割り込みイネーブルビット (2)

1 = RXOVFLW 割り込みを有効にする0 = RXOVFLW 割り込みを無効にする

レジスタ 35-13: ETHIEN: Ethernet コントローラ割り込みイネーブル レジスタ ( 続き )

Note 1: これらのビットは TX 動作にのみ使います。

2: これらのビットは RX 動作にのみ使います。

DS61155B_JP - p.35-26 © 2014 Microchip Technology Inc.

Page 27: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-14: ETHIRQ: Ethernet コントローラ割り込み要求レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 R/W-0 R/W-0 U-0 U-0 U-0 R/W-0 R/W-0

- TXBUSE RXBUSE - - - EWMARK FWMARK

7:0R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0

RXDONE PKTPEND RXACT - TXDONE TXABORT RXBUFNA RXOVFLW

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-15 未実装 :「0」として読み出し

bit 14 TXBUSE: 送信 BVCI バスエラー割り込みビット (2)

1 = BVCI バスエラーが発生した0 = BVCI エラーは発生していない

このビットは、TX DMA によるメモリアクセス中に BVCI バスエラーが発生した場合にセットされます。 リセットで、または CPU が CLR レジスタに「1」を書き込む事でクリアされます。

bit 13 RXBUSE: 受信 BVCI バスエラー割り込みビット (2)

1 = BVCI バスエラーが発生した0 = BVCI エラーは発生していない

このビットは RX DMA によるメモリアクセス中に BVCI バスエラーが発生した場合にセットされます。 リセットで、または CPU が CLR レジスタに「1」を書き込む事でクリアされます。

bit 12-10 未実装 :「0」として読み出し

bit 9 EWMARK: エンプティ ウォーターマーク割り込みビット (2)

1 = エンプティ ウォーターマーク ポインタに達した0 = 保留中の割り込みはない

このビットは、RX ディスクリプタ バッファ カウントが RXEWM ビット (ETHRXWM<0:7>) の値以下 の場合にセットされます。 BUFCNT ビット (ETHSTAT<16:23>) がハードウェアによってインクリメン トされるとクリアされます。 「0」または「1」を書き込んでも効果はありません。

bit 8 FWMARK: フル ウォーターマーク割り込みビット (2)

1 = フル ウォーターマーク ポインタに達した0 = 保留中の割り込みはない

このビットは、RX ディスクリプタ バッファカウントが RXFWM ビット (ETHRXWM<16:23>) フィール ドの値以上の場合にセットされます。 BUFCNTカウンタをデクリメントするBUFCDEC (ETHCON1<0>) ビットへの書き込みでクリアされます。 「0」または「1」を書き込んでも効果はありません。

bit 7 RXDONE: 受信完了割り込みビット (2)

1 = RX パケットの受信に成功した0 = 保留中の割り込みはない

このビットは、RX パケットの受信に成功するとセットされます。 リセットで、または CPU が CLR レ ジスタに「1」を書き込む事でクリアされます。

Note 1: これらのビットは TX 動作にのみ使います。

2: これらのビットは RX 動作にのみ使います。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-27

Page 28: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

bit 6 PKTPEND: パケット保留割り込みビット (2)

1 = 受信パケットがメモリに保留中である0 = 受信パケットはメモリに保留中ではない

このビットは、BUFCNT カウンタの値が「0」以外の場合にセットされます。 リセットで、または BUFCNT カウンタをデクリメントする BUFCDEC ビットへの書き込みでクリアされます。 「0」または

「1」を書き込んでも効果はありません。

bit 5 RXACT: 受信アクティビティ割り込みビット (2)

1 = RX パケットデータの受信に成功した0 = 保留中の割り込みはない

このビットは、RX パケットデータが RXBM FIFO に格納されるとセットされます。 リセットで、また は CPU が CLR レジスタに「1」を書き込む事でクリアされます。

bit 4 未実装 :「0」として読み出し

bit 3 TXDONE: 送信完了割り込みビット (2)

1 = TX パケットの送信に成功した0 = 保留中の割り込みはない

このビットは、現在処理中の TX パケットの送信が完了し、このパケットに使った 初のディスクリプタに送信ステータスベクタが読み込まれるとセットされます。 リセットで、または CPU が CLR レジス タに「1」を書き込む事でクリアされます。

bit 2 TXABORT: 送信中止条件割り込みビット (2)

1 = 後の TX パケットで TX 中止条件が発生した0 = 保留中の割り込みはない

このビットは、以下の理由のどれか 1 つによって MAC が TX パケットの送信を中止した時にセットされます。

• ジャンボ TX パケットによる中止

• アンダーランによる中止

• 過度な遅れによる中止

• 後期コリジョンによる中止

• 過度なコリジョンによる中止

このビットはリセットで、または CPU が CLR レジスタに「1」を書き込む事でクリアされます。

bit 1 RXBUFNA: 受信バッファ使用不可割り込みビット (2)

1 = RX バッファ ディスクリプタ使用不可条件が発生した0 = 保留中の割り込みはない

このビットは、RX バッファ ディスクリプタのオーバーラン条件によってセットされます。 リセットで、 または CPU が CLR レジスタに「1」を書き込む事でクリアされます。

bit 0 RXOVFLW: 受信 FIFO オーバーフロー エラービット (2)

1 = RX FIFO オーバーフロー エラー条件が発生した0 = 保留中の割り込みはない

RXOVFLWはRX FIFOのオーバーフロー条件でRXBMロジックによってセットされます。 リセットで、 または CPU が CLR レジスタに「1」を書き込む事でクリアされます。

レジスタ 35-14: ETHIRQ: Ethernet コントローラ割り込み要求レジスタ ( 続き )

Note 1: これらのビットは TX 動作にのみ使います。

2: これらのビットは RX 動作にのみ使います。

Note: このレジスタのビットをセットまたはクリアする場合は全て SET、CLR、INV レジスタを使う事を推奨します。 このレジスタのビットのセットまたはクリアはデ バッグ / テスト目的のみに限ってください。

DS61155B_JP - p.35-28 © 2014 Microchip Technology Inc.

Page 29: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-15: ETHSTAT: Ethernet コントローラ ステータス レジスタ

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

BUFCNT<7:0>(1)

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

7:0R/W-0 R/W-0 R/W-0 U-0 U-0 U-0 U-0 U-0

ETHBUSY(5) TXBUSY(2,6) RXBUSY(3,6) - - - - -

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビッ

r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-24 未実装 :「0」として読み出し

bit 23-16 BUFCNT<7:0>: パケットバッファ カウントビット (1)

メモリに受信されたパケットバッファの数です。 パケットの受信に成功すると、そのパケットが使ってい るディスクリプタ数に基づいてハードウェアがこのレジスタをインクリメントします。 ソフトウェアは パケットをバッファから読み出すと、このカウンタをデクリメントします ( 使われているディスクリプタごとに BUFCDEC ビット (ETHCON1<0>) に書き込む )。 レジスタが既に 0xFF に達している時にハード ウェアがさらにインクリメントしようとしても、このレジスタはロールオーバー (0xFF から 0x00 に変化 )しません。 逆にレジスタが既に 0x0000 に達している時にソフトウェアがさらにデクリメントしようとし ても、このレジスタはロールアンダー (0x00 から 0xFF に変化 ) しません。 ソフトウェアがカウンタのデ クリメントを試みると同時にハードウェアがカウンタのインクリメントを試みた場合、カウンタの値は変化しません。

このレジスタの値が 0xFF に達すると RX ロジックは停止し ( 自動フロー制御有効時 )、ソフトウェアがBUFCDEC ビットに書き込んでレジスタを 0xFF よりも小さな値に変える ( デクリメントする ) のを待ちます。

自動フロー制御無効時、RXDMA は処理を継続し、BUFCNT の値は 0xFF で飽和します。

このレジスタが 0 以外の値の場合、PKTPEND ステータスビットがセットされ、<PKTPENDIE> レジスタの ETHIEN ビットの値によっては割り込みが生成されます。

ETHRXST レジスタに書き込むと、BUFCNT カウンタは自動的に 0x00 にクリアされます。

Note: ON が「0」に設定されている場合、BUFCNT はクリアされません。 このため、ソフトウェアは継続してこのカウントを使いデクリメントを続けられます。

bit 15-8 未実装 :「0」として読み出し

bit 7 ETHBUSY: Ethernet モジュール ビジービット (5)

1 = Ethernet ロジックが有効にされた (ON (ETHCON1<15>) = 1) または、トランザクションを終了処理 中である

0 = Ethernet ロジックはアイドル中である

このビットは、モジュールが有効にされたか、無効にされた後にトランザクションの終了処理中である事を示します。

Note 1: これらのビットは RX 動作にのみ使います。

2: このビットは TX 動作にのみ影響されます。

3: このビットは RX 動作にのみ影響されます。

4: このビットは TX と RX 動作に影響されます。

5: このビットは ON ビット (ETHCON1<15>) = 1の場合にセットされます。

6: このビットは ON ビット (ETHCON1<15>) = 0の場合にクリアされます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-29

Page 30: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

bit 6 TXBUSY: 送信ビジービット (2,6)

1 = TX ロジックがデータを送信中である0 = TX ロジックはアイドル中である

このビットは、現在パケットを送信中である事を示します。 このステータスビットの変化は、必ずしも TXDONE 割り込みには反映されません。TX パケットは中止される、または MAC によって拒否される場合があるためです。

bit 5 RXBUSY: 受信ビジービット (3,6)

1 = RX ロジックがデータを受信中である0 = RX ロジックはアイドル中である

このビットは、現在パケットを受信中である事を示します。 このステータスビットの変化は、必ずしも RXDONE 割り込みには反映されません。RX パケットは中止される、または RX フィルタによって拒否される場合があるためです。

bit 4-0 未実装 :「0」として読み出し

レジスタ 35-15: ETHSTAT: Ethernet コントローラ ステータス レジスタ ( 続き )

Note 1: これらのビットは RX 動作にのみ使います。

2: このビットは TX 動作にのみ影響されます。

3: このビットは RX 動作にのみ影響されます。

4: このビットは TX と RX 動作に影響されます。

5: このビットは ON ビット (ETHCON1<15>) = 1の場合にセットされます。

6: このビットは ON ビット (ETHCON1<15>) = 0の場合にクリアされます。

DS61155B_JP - p.35-30 © 2014 Microchip Technology Inc.

Page 31: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-16: ETHRXOVFLOW: Ethernet コントローラ受信オーバーフロー統計レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

RXOVFLWCNT<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

RXOVFLWCNT<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-0 RXOVFLWCNT<15:0>: 取りこぼし受信フレームカウント ビット

RX フィルタは許可したものの、その後内部受信エラー(RXFIFO オーバーラン ) によって取りこぼしたフレームを数えるインクリメント カウンタです。 このイベントは、RXOVFLW ビット (ETHIRQ<0>) 割 り込みフラグもセットします。

Note 1: このレジスタは RX 動作にのみ使います。

2: このレジスタは、読み出し動作の後にハードウェアによって自動的にクリアされます。

Note: このレジスタのビットをセットまたはクリアする場合は全て SET、CLR、INV レジスタを使う事を推奨します。 このレジスタのビットのセットまたはクリアはデバッグ / テスト目的のみに限ってください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-31

Page 32: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-17: ETHFRMTXOK: Ethernet コントローラ フレーム送信成功統計レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

FRMTXOKCNT<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

FRMTXOKCNT<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-0 FRMTXOKCNT<15:0>: フレーム送信成功カウントビット

送信に成功したフレーム数を数えるインクリメント カウンタです。

Note 1: このレジスタは TX 動作にのみ使います。

2: このレジスタは、読み出し動作の後にハードウェアによって自動的にクリアされます。

Note: このレジスタのビットをセットまたはクリアする場合は全て SET、CLR、INV レジスタを使う事を推奨します。 このレジスタのビットのセットまたはクリアはデバッグ / テスト目的のみに限ってください。

DS61155B_JP - p.35-32 © 2014 Microchip Technology Inc.

Page 33: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-18: ETHSCOLFRM: Ethernet コントローラ単一コリジョン フレーム統計レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SCOLFRMCNT<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

SCOLFRMCNT<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-0 SCOLFRMCNT<15:0>: 単一コリジョン フレームカウント ビット

2 回目の試行で送信に成功したフレーム数を数えるインクリメント カウンタです。

Note 1: このレジスタは TX 動作にのみ使います。

2: このレジスタは、読み出し動作の後にハードウェアによって自動的にクリアされます。

Note: このレジスタのビットをセットまたはクリアする場合は全て SET、CLR、INV レジスタを使う事を推奨します。 このレジスタのビットのセットまたはクリアはデバッグ / テスト目的のみに限ってください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-33

Page 34: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-19: ETHMCOLFRM: Ethernet コントローラ複数コリジョン フレーム統計レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

MCOLFRMCNT<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

MCOLFRMCNT<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-0 MCOLFRMCNT<15:0>: 複数コリジョン フレームカウント ビット

複数コリジョン後に送信に成功したフレーム数を数えるインクリメント カウンタです。

Note 1: このレジスタは TX 動作にのみ使います。

2: このレジスタは、読み出し動作の後にハードウェアによって自動的にクリアされます。

Note: このレジスタのビットをセットまたはクリアする場合は全て SET、CLR、INV レジスタを使う事を推奨します。 このレジスタのビットのセットまたはクリアはデバッグ / テスト目的のみに限ってください。

DS61155B_JP - p.35-34 © 2014 Microchip Technology Inc.

Page 35: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-20: ETHFRMRXOK: Ethernet コントローラ フレーム受信成功統計レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

FRMRXOKCNT<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

FRMRXOKCNT<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-0 FRMRXOKCNT<15:0>: フレーム受信成功カウントビット

RX フィルタが受信に成功したフレーム数を数えるインクリメント カウンタです。 フレームチェック シーケンス (FCS) エラーまたはアラインメント エラー発生時はインクリメントしません。

Note 1: このレジスタは RX 動作にのみ使います。

2: このレジスタは、読み出し動作の後にハードウェアによって自動的にクリアされます。

Note: このレジスタのビットをセットまたはクリアする場合は全て SET、CLR、INV レジスタを使う事を推奨します。 このレジスタのビットのセットまたはクリアはデバッグ / テスト目的のみに限ってください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-35

Page 36: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-21: ETHFCSERR: Ethernet コントローラ フレームチェック シーケンス エラー統計レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

FCSERRCNT<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

FCSERRCNT<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-0 FCSERRCNT<15:0>: FCS エラーカウント ビット

FCS エラー受信フレームを数えるインクリメント カウンタです。ビット単位のフレーム長は 8 ビットの 整数倍です。

Note 1: このレジスタは RX 動作にのみ使います。

2: このレジスタは、読み出し動作の後にハードウェアによって自動的にクリアされます。

Note: このレジスタのビットをセットまたはクリアする場合は全て SET、CLR、INV レジスタを使う事を推奨します。 このレジスタのビットのセットまたはクリアはデバッグ / テスト目的のみに限ってください。

DS61155B_JP - p.35-36 © 2014 Microchip Technology Inc.

Page 37: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-22: ETHALGNERR: Ethernet コントローラ アラインメント エラー統計レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ALGNERRCNT<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

ALGNERRCNT<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-0 ALGNERRCNT<15:0>: アラインメント エラーカウント ビット

アラインメント エラー フレームを数えるインクリメント カウンタです。 アラインメント エラーとは、 FCSエラーがありビット単位で表した長さが8ビットの整数倍ではないフレーム (ドリブルニブル )です。

Note 1: このレジスタは RX 動作にのみ使います。

2: このレジスタは、読み出し動作の後にハードウェアによって自動的にクリアされます。

Note: このレジスタのビットをセットまたはクリアする場合は全て SET、CLR、INV レジスタを使う事を推奨します。 このレジスタのビットのセットまたはクリアはデバッグ / テスト目的のみに限ってください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-37

Page 38: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-23: EMAC1CFG1: Ethernet コントローラ MAC コンフィグレーション 1 レジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-1 R/W-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0

SOFTRESET SIMRESET - - RESETRMCS RESETRFUN RESETTMCS RESETTFUN

7:0U-0 U-0 U-0 R/W-0 R/W-1 R/W-1 R/W-0 R/W-1

- - - LOOPBACK TXPAUSE RXPAUSE PASSALL RXENABLE

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15 SOFTRESET: ソフトリセット ビット

このビットをセットすると MACMII がリセット状態に移行します。 既定値は「1」です。

bit 14 SIMRESET: シミュレーション リセットビット

このビットをセットすると、送信機能に含まれる乱数生成器がリセットされます。

bit 13-12 未実装 :「0」として読み出し

bit 11 RESETRMCS: MCS/RX リセットビット

このビットをセットすると、MAC 制御副層 / 受信ドメインのロジックがリセット状態に移行します。

bit 10 RESETRFUN: RX 機能リセットビット

このビットをセットすると MAC 受信機能ロジックがリセット状態に移行します。

bit 9 RESETTMCS: MCS/TX リセットビット

このビットをセットすると、MAC 制御副層 /TX ドメインのロジックがリセット状態に移行します。

bit 8 RESETTFUN: TX 機能リセットビット

このビットをセットすると MAC 送信機能のロジックがリセット状態に移行します。

bit 7-5 未実装 :「0」として読み出し

bit 4 LOOPBACK: MAC ループバック モード ビット

1 = MAC 送信インターフェイスを MAC 受信インターフェイスにループバックする0 = MAC は通常動作する

bit 3 TXPAUSE: MAC TX フロー制御ビット

1 = PAUSE フロー制御フレームの送信を許可する0 = PAUSE フロー制御フレームの送信を拒否する

bit 2 RXPAUSE: MAC RX フロー制御ビット

1 = MAC は PAUSE フロー制御フレームの受信に対応する0 = 受信した PAUSE フロー制御フレームを無視する

bit 1 PASSALL: MAC 全受信フレーム通過ビット

1 = MAC はタイプ ( 通常と制御 ) に関わらず全てのフレームを許可する0 = 受信した制御フレームを無視する

bit 0 RXENABLE: MAC 受信イネーブルビット

1 = MAC によるフレーム受信を有効にする0 = MAC によるフレーム受信を無効にする

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

DS61155B_JP - p.35-38 © 2014 Microchip Technology Inc.

Page 39: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-24: EMAC1CFG2: Ethernet コントローラ MAC コンフィグレーション 2 レジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit25/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 R/W-1 R/W-0 R/W-0 U-0 U-0 R/W-0 R/W-0

- EXCESSDFR BPNOBKOFF NOBKOFF - - LONGPRE PUREPRE

7:0R/W-1 R/W-0 R/W-1 R/W-1 R/W-0 R/W-0 R/W-1 R/W-0

AUTOPAD(5,6) VLANPAD(5,6) PADENABLE(5,7) CRCENABLE DELAYCRC HUGEFRM LENGTHCK FULLDPLX

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-15 未実装 :「0」として読み出し

bit 14 EXCESSDFR: 遅延時間オーバービット

1 = MAC は IEEE 802.3 仕様に従い、他のキャリア信号を検出した場合メッセージの送信を無期限に遅延 させる

0 = MAC は遅延時間リミットに達した時点で中止する

bit 13 BPNOBKOFF: バックプレッシャ / ノー バックオフ ビット

1 = バックプレッシャが有効時に、偶発的なコリジョンの後 MAC はバックオフなしでただちに再送信し、さらにコリジョンが発生するのを防ぎパケットを確実に送信する

0 = MAC は一定時間後に再送信する ( バックオフを有効にする )

bit 12 NOBKOFF: ノー バックオフ ビット

1 = コリジョンの発生後、MAC は IEEE 802.3 仕様規格が定めるバイナリ エクスポネンシャル バックオフ アルゴリズムを使わずに、ただちに再送信する

0 = コリジョンの発生後、MAC はバイナリ エクスポネンシャル バックオフ アルゴリズムを使う

bit 11-10 未実装 :「0」として読み出し

bit 9 LONGPRE: ロング プリアンブル適用ビット

1 = MAC はプリアンブル フィールドの長さが 12 バイト未満の受信パケットのみを許可する0 = MAC は IEEE 802.3 仕様に従い、プリアンブルの長さに関わらず全ての受信パケットを許可する

bit 8 PUREPRE: ピュア プリアンブル適用ビット

1 = MAC はプリアンブルの内容を検証し、0x55 が含まれエラーがない事を確認する ( プリアンブルにエラー を含むパケットは破棄する )

0 = MAC はプリアンブルを一切確認しない

bit 7 AUTOPAD: 自動パディング検出イネーブルビット (2,3)

1 = MAC はソースアドレスに続く 2 オクテットを 0x8100(VLAN プロトコル ID) とパディングを必要に応じて比較する事によりフレームのタイプ ( タグの有無に関わらず ) を自動的に検出する

0 = MAC は自動検出を実行しない

bit 6 VLANPAD: VLAN パディング イネーブルビット (2,3)

1 = MAC は短いフレームの全てを 64 バイトになるようにパディングして有効な CRC を付加する0 = MAC は短いフレームのパディングを実行しない

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

2: 表 35-2 で、このレジスタの設定に基づくパディング機能を説明します。

3: PADENABLE ビットがクリアされている場合、このビットは無視されます。

4: このビットは AUTOPAD と VLANPAD ビットと組み合わせて使います。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-39

Page 40: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

表 35-2: パディング動作

bit 5 PADENABLE: パディング /CRC イネーブルビット (2.4)

1 = MAC は短いフレームを全てパディングする0 = MAC に供給されるフレームは有効な長さである

bit 4 CRCENABLE: CRC イネーブルビット

1 = MACはパディングの要否に関わらず全てのフレームにCRCを付加する (PADENABLEビットをセット した場合、このビットもセットする必要がある )

0 = MAC に供給されるフレームは有効な CRC を付加している

bit 3 DELAYCRC: 遅延 CRC ビット

このビットは IEEE 802.3 フレームの先頭に独自のヘッダ情報が存在する場合、そのバイト数を決定します。

1 = 4 バイトのヘッダ (CRC 機能は無視する )0 = 独自ヘッダなし

bit 2 HUGEFRM: 巨大フレーム イネーブルビット

1 = 送受信フレームの長さを制限しない0 = 巨大フレームの送受信を禁止する

bit 1 LENGTHCK: フレーム長チェックビット

1 = 送受信両方のフレーム長を長さ / タイプフィールドと比較する ( 長さ / タイプフィールドが長さを表す 場合にチェックする。 不一致は送信 / 受信統計ベクタで報告する。)

0 = 長さ / タイプフィールドのチェックを実行しない

bit 0 FULLDPLX: 全二重動作ビット

1 = MAC は全二重モードで動作する0 = MAC は半二重モードで動作する

タイプ AUTOPAD VLANPAD PADENABLE 動作

全て x x 0 パディングなし、CRC チェック

全て 0 0 1 60 バイトにパディング、CRC 付加

全て x 1 1 64 バイトにパディング、CRC 付加

全て 1 0 1 タグが付加されていない場合 : 60 バイトにパディング、 CRC 付加VLANタグが付加されている場合 : 64バイトにパディン グ、CRC 付加

レジスタ 35-24: EMAC1CFG2: Ethernet コントローラ MAC コンフィグレーション 2 レジスタ (1) ( 続き )

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

2: 表 35-2 で、このレジスタの設定に基づくパディング機能を説明します。

3: PADENABLE ビットがクリアされている場合、このビットは無視されます。

4: このビットは AUTOPAD と VLANPAD ビットと組み合わせて使います。

DS61155B_JP - p.35-40 © 2014 Microchip Technology Inc.

Page 41: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-25: EMAC1IPGT: Ethernet コントローラ MAC 連続パケット間ギャップレジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

7:0U-0 R/W-0 R/W-0 R/W-1 R/W-0 R/W-0 R/W-1 R/W-0

- B2BIPKTGP<6:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-7 未実装 :「0」として読み出し

bit 6-0 B2BIPKTGP<6:0>: 連続パケット間ギャップ (IPG) ビット

このプログラム可能なフィールドは、全ての送信パケットの終端から次のパケットの先頭までに許される 短の期間をニブル時間のオフセットとして表します。 全二重モードの場合、このレジスタにはニブル 時間で表した必要な期間から 3 を引いた値を設定します。 半二重モードの場合、このレジスタにはニブル 時間で表した必要な期間から 6 を引いた値を設定します。 全二重モード時の推奨設定は 0x15 (21d) です。 これは 小 IPG 0.96 s (100 Mbps の場合 ) または 9.6 s (10 Mbps の場合 ) に相当します。 半二重モードの 推奨設定は 0x12 (18d) です。これも 小 IPG 0.96 s (100 Mbps の場合 ) または 9.6 s (10 Mbps の場合 ) に相当します。

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-41

Page 42: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-26: EMAC1IPGR: Ethernet コントローラ MAC 非連続パケット間ギャップレジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 R/W-0 R/W-0 R/W-0 R/W-1 R/W-1 R/W-0 R/W-0

- NB2BIPKTGP1<6:0>

7:0U-0 R/W-0 R/W-0 R/W-1 R/W-0 R/W-0 R/W-1 R/W-0

- NB2BIPKTGP2<6:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-15 未実装 :「0」として読み出し

bit 14-8 NB2BIPKTGP1<6:0>: 非連続パケット間ギャップパート 1 ビット

このプログラム可能なフィールドは、IEEE 802.3 仕様のセクション 4.2.3.2.1「Deference」で言及してい る、carrierSenseウィンドウを表します。 IPGR1のタイミング中に他のキャリアを検出するとMACはキャ リア送出を延期します。 しかし、IPGR1 時間が経過してもキャリアを検出し続ける場合、MAC は IPGR2 時間の経過後、コリジョン発生を承知の上で送信します。これによってメディアへの公平なアクセスを確保します。 値のレンジは 0x0 から IPGR2 までです。 推奨値は 0xC (12d) です。

bit 7 未実装 :「0」として読み出し

bit 6-0 NB2BIPKTGP2<6:0>: 非連続パケット間ギャップパート 2 ビット

このプログラム可能なフィールドは、非連続パケット間ギャップを表します。 推奨値は 0x12 (18d) です。 これは 小 IPG の 0.96 s (100 Mbps の場合 ) または 9.6 s (10 Mbps の場合 ) に相当します。

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

DS61155B_JP - p.35-42 © 2014 Microchip Technology Inc.

Page 43: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-27: EMAC1CLRT: Ethernet コントローラ MAC コリジョン ウィンドウ / リトライ リミットレジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 U-0 R/W-1 R/W-1 R/W-0 R/W-1 R/W-1 R/W-1

- - CWINDOW<5:0>

7:0U-0 U-0 U-0 U-0 R/W-1 R/W-1 R/W-1 R/W-1

- - - - RETX<3:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-14 未実装 :「0」として読み出し

bit 13-8 CWINDOW<5:0>: コリジョン ウィンドウ ビット

このプログラム可能なフィールドは、適切に設定されたネットワークでコリジョンが発生するスロット時間 ( コリジョン ウィンドウ ) を表します。 コリジョン ウィンドウは送信の開始時点から始まるため、プリ アンブルと SFD が含まれます。 既定値の 0x37 (55d) はウィンドウ終端におけるフレーム バイトカウント に相当します。

bit 7-4 未実装 :「0」として読み出し

bit 3-0 RETX<3:0>: 大再送信ビット

このプログラム可能なフィールドでは、コリジョンの発生後、過度なコリジョンによってパケットを中止する前に試みる再送信の回数を指定します。 IEEE 802.3 仕様規格では、試行の 大回数 (attemptLimit) を 0xF (15d) と規定しています。 既定値は「0xF」です。

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-43

Page 44: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-28: EMAC1MAXF: Ethernet コントローラ MAC 大フレーム長レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-1 R/W-0 R/W-1

MACMAXF<15:8>(2)

7:0R/W-1 R/W-1 R/W-1 R/W-0 R/W-1 R/W-1 R/W-1 R/W-0

MACMAXF<7:0>(2)

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-0 MACMAXF<15:0>: 大フレーム長ビット (2)

このフィールドは 0x05EE にリセットされます。これは、 大受信フレーム長が 1518 オクテットである事を表します。 タグなしの Ethenet フレームの 大サイズは 1518 オクテットです。 タグ付きフレームに は 4 オクテット追加され、全長は 1522 オクテットです。 これより短いあるいは長い 大長の制限が必要 な場合、この 16 ビットフィールドをプログラムします。

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

2: 独自ヘッダを許可している場合、このフィールドを必要に応じて調整する必要があります。 例えば、フレー ム先頭に 4 バイトのヘッダが付加されている場合、MACMAXF を 1527 オクテットに設定できます。 これ によって、 大 VLAN タグ付きフレーム + 4 バイトヘッダを使えます。

DS61155B_JP - p.35-44 © 2014 Microchip Technology Inc.

Page 45: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-29: EMAC1SUPP: Ethernet コントローラ MAC PHY サポートレジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 U-0 U-0 U-0 R/W-0 U-0 U-0 R/W-0

- - - - RESETRMII(2) - - SPEEDRMII(2)

7:0U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-12 未実装 :「0」として読み出し

bit 11 RESETRMII: RMII ロジック リセット ビット (2)

1 = MAC RMII モジュールをリセットする0 = 通常動作

bit 10-9 未実装 :「0」として読み出し

bit 8 SPEEDRMII: RMII 速度ビット (2)

このビットは、現在の動作速度に対する RMII ロジックの速度を設定します。

1 = RMII は 100 Mbps で動作する0 = RMII は 10 Mbps で動作する

bit 7-0 未実装 :「0」として読み出し

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

2: これらのビットは RMII モジュールにのみ使います。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-45

Page 46: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-30: EMAC1TEST: Ethernet コントローラ MAC テストレジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

7:0U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0

- - - - - TESTBP TESTPAUSE(2) SHRTQNTA(2)

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-3 未実装 :「0」として読み出し

bit 2 TESTBP: バックプレッシャ テスト ビット

1 = MAC はリンクにバックプレッシャをアサートする。 バックプレッシャによってプリアンブルが送信さ れ、キャリア検出を促す。 システムからの送信パケットはバックプレッシャ中に送信される。

0 = 通常動作

bit 1 TESTPAUSE: PAUSE テストビット (2)

1 = あたかもポーズ時間のパラメータがゼロ以外に設定された PAUSE 受信制御フレームを受信したかのように MAC 制御副層が送信を禁止する

0 = 通常動作

bit 0 SHRTQNTA: PAUSE 時間単位短縮ビット (2)

1 = MAC が実効 PAUSE 時間単位を 64 バイト時間から 1 バイト時間に短縮する0 = 通常動作

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

2: これらのビットはテスト専用です。

DS61155B_JP - p.35-46 © 2014 Microchip Technology Inc.

Page 47: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

表 35-3: MIIM クロックの選択

レジスタ 35-31: EMAC1MCFG: Ethernet コントローラ MAC MII 管理コンフィグレーション レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

RESETMGMT - - - - - - -

7:0U-0 U-0 R/W-1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

- - CLKSEL<3:0>(2) NOPRE SCANINC

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15 RESETMGMT: テストリセット MII 管理ビット

1 = MII 管理モジュールをリセットする0 = 通常動作

bit 14-6 未実装 :「0」として読み出し

bit 5-2 CLKSEL<3:0>: MII 管理クロック選択 1 ビット (2)

このフィールドは、クロック分周ロジックが MII 管理クロック (MDC) を生成するために使います。このクロックは IEEE 802.3 仕様によって 2.5 MHz 以下と定義されています。 12.5 MHz の 大クロックレート をサポートする PHY もあります。

bit 1 NOPRE: プリアンブル抑制ビット

1 = MII 管理機構は 32 ビットのプリアンブル フィールドなしで読み書きサイクルを実行する ( 抑制され たプリアンブルをサポートする PHY もあります )

0 = 通常の読み書きサイクルを実行する

bit 0 SCANINC: スキャン インクリメント ビット

1 = MII 管理モジュールは複数の PHY にわたって読み出しサイクルを実行する ( 読み出しサイクルはア ドレス 1 から開始し、EMAC1MADR<PHYADDR> に設定された値まで続きます )

0 = 同じ PHY を連続して読み出す

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

2: 表 35-3 でクロック分周回路のエンコードを説明します。

MIIM クロックの選択 EMAC1MCFG<5:2>

SYSCLK の 4 分周 000x

SYSCLK の 6 分周 0010

SYSCLK の 8 分周 0011

SYSCLK の 10 分周 0100

SYSCLK の 14 分周 0101

SYSCLK の 20 分周 0110

SYSCLK の 28 分周 0111

SYSCLK の 40 分周 1000

未定義 その他の組み合わせ全て

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-47

Page 48: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-32: EMAC1MCMD: Ethernet コントローラ MAC MII 管理コマンド レジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

7:0U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0

- - - - - - SCAN READ

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-2 未実装 :「0」として読み出し

bit 1 SCAN: MII 管理スキャンモード ビット

1 = MII 管理モジュールは常時読み出しサイクルを実行する ( 例 : リンク障害の監視に使用 )0 = 通常動作

bit 0 READ: MII 管理読み出しコマンドビット1 = MII 管理モジュールは 1 回の読み出しサイクルを実行する。 読み出したデータは EMAC1MRDD レジ

スタに返す0 = MII 管理モジュールは書き込みサイクルを実行する。 書き込むデータは EMAC1MWTD レジスタから

取得する

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

DS61155B_JP - p.35-48 © 2014 Microchip Technology Inc.

Page 49: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-33: EMAC1MADR: Ethernet コントローラ MAC MII 管理アドレス レジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-1

- - - PHYADDR<4:0>

7:0U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

- - - REGADDR<4:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-13 未実装 :「0」として読み出し

bit 12-8 PHYADDR<4:0>: MII 管理 PHY アドレスビット

このフィールドは、管理サイクルの 5 ビットの PHY アドレス フィールドを表します。 大 31 個の PHY のアドレスを指定できます (0 は予約済み )。

bit 7-5 未実装 :「0」として読み出し

bit 4-0 REGADDR<4:0>: MII 管理レジスタアドレス ビット

このフィールドは、管理サイクルの 5 ビットのレジスタアドレス フィールドを表します。 大 32 個のレ ジスタにアクセスできます。

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-49

Page 50: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-34: EMAC1MWTD: Ethernet コントローラ MAC MII 管理書き込みデータレジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

MWTD<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

MWTD<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-0 MWTD<15:0>: MII 管理書き込みデータビット

これらのビットに書き込むと、その 16 ビットデータと、あらかじめ EMAC1MADR レジスタに設定された PHY アドレスとレジスタアドレスを使って書き込みサイクルが実行されます。

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

DS61155B_JP - p.35-50 © 2014 Microchip Technology Inc.

Page 51: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-35: EMAC1MRDD: Ethernet コントローラ MAC MII 管理読み出しデータレジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

MRDD<15:8>

7:0R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

MRDD<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 : 「0」として読み出し

bit 15-0 MRDD<15:0>: MII 管理読み出しデータビット

MII 管理読み出しサイクルの実行後、16 ビットのデータをこの位置から読み出せます。

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-51

Page 52: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-36: EMAC1MIND: Ethernet コントローラ MAC MII 管理インジケータ レジスタ (1)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

7:0U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0

- - - - LINKFAIL NOTVALID SCAN MIIMBUSY

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-4 未実装 : 「0」として読み出し

bit 3 LINKFAIL: リンク障害ビット

「1」が返された場合、リンク障害の発生を示しています。 このビットは、PHY ステータス レジスタから 後に読み出された値を反映します。

bit 2 NOTVALID: MII 管理読み出しデータ無効ビット

「1」が返された場合、MII 管理読み出しサイクルが未完であり読み出しデータがまだ有効ではない事を示しています。

bit 1 SCAN: MII 管理スキャンビット

「1」が返された場合、スキャン動作(連続したMII管理読み出しサイクル)を実行中である事を示しています。

bit 0 MIIMBUSY: MII 管理ビジービット

「1」が返された場合、MII 管理モジュールが現在 MII 管理読み出しまたは書き込みサイクルを実行中である事を示しています。

Note 1: これらのレジスタには 16ビットと 32ビットのアクセスの両方が可能です (セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

DS61155B_JP - p.35-52 © 2014 Microchip Technology Inc.

Page 53: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-37: EMAC1SA0: Ethernet コントローラ MAC ステーション アドレス 0 レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P

STNADDR6<7:0>

7:0R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P

STNADDR5<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-8 STNADDR6<7:0>: ステーション アドレス オクテット 6 ビット

このフィールドは 6 番目に送信されたステーション アドレスのオクテットを格納します。

bit 7-0 STNADDR5<7:0>: ステーション アドレス オクテット 5 ビット

このフィールドは 5 番目に送信されたステーション アドレスのオクテットを格納します。

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

2: リセット時、このレジスタは工場出荷時にプログラムされたステーション アドレスから読み込まれます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-53

Page 54: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

レジスタ 35-38: EMAC1SA1: Ethernet コントローラ MAC ステーション アドレス 1 レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P

STNADDR4<7:0>

7:0R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P

STNADDR3<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 未実装 :「0」として読み出し

bit 15-8 STNADDR4<7:0>: ステーション アドレス オクテット 4 ビット

このフィールドは 4 番目に送信されたステーション アドレスのオクテットを格納します。

bit 7-0 STNADDR3<7:0>: ステーション アドレス オクテット 3 ビット

このフィールドは 3 番目に送信されたステーション アドレスのオクテットを格納します。

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

2: リセット時、このレジスタは工場出荷時にプログラムされたステーション アドレスから読み込まれます。

DS61155B_JP - p.35-54 © 2014 Microchip Technology Inc.

Page 55: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

レジスタ 35-39: EMAC1SA2: Ethernet コントローラ MAC ステーション アドレス 2 レジスタ (1,2)

ビットレンジ

Bit31/23/15/7

Bit30/22/14/6

Bit29/21/13/5

Bit28/20/12/4

Bit27/19/11/3

Bit26/18/10/2

Bit25/17/9/1

Bit24/16/8/0

31:24U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

23:16U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0

- - - - - - - -

15:8R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P

STNADDR2<7:0>

7:0R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P R/W-P

STNADDR1<7:0>

凡例 :

R = 読み出し可能ビット W = 書き込み可能ビット P = プログラム可能ビット r = 予約済みビット

U = 未実装ビット -n = POR 時のビット値 : (「0」、「1」、 x = 未知 )

bit 31-16 予約済み : 常に「0」、読み出しは無視する

bit 15-8 STNADDR2<7:0>: ステーション アドレス オクテット 2 ビット

このフィールドは 2 番目に送信されたステーション アドレスのオクテットを格納します。

bit 7-0 STNADDR1<7:0>: ステーション アドレス オクテット 1 ビット

このフィールドは (1 番目に送信された ) ステーション アドレスの 上位オクテットを格納します。

Note 1: これらのレジスタには 16 ビットと 32 ビットのアクセスの両方が可能です ( セット、クリア、反転レジスタを含む )。 8 ビットのアクセスは不可で、ハードウェアによって無視されます。

2: リセット時、このレジスタは工場出荷時にプログラムされたステーション アドレスから読み込まれます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-55

Page 56: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

35.4 動作

Ethernet コントローラは、外部 PHY チップを使って 10/100 Mbps Ethernet ノードを実装する ために必要なシステム モジュールを提供します。 パケットデータ通信による負荷を CPU にか けないように、コントローラはディスクリプタ ベースの DMA エンジンを 2 つ内蔵しています。

Ethernet コントローラは、以下のサブモジュールから構成されます。

• 10/100 メガビット メディアアクセス コントローラ (MAC): データリンク層のメディアアクセス制御 (MAC) 副層を実装し、ISO/IEC 8802-3 と IEEE 802.3 仕様に含まれる CSMA/CD機能を実行します。 この MAC は以下を含みます。

- 外部 PHY に接続する MII (Media Independent Interface)

- 外部 PHY に接続する RMII (Reduced Media Independent Interface)

- 外部 MII PHY への接続を制御し状況を表示する MII 管理ブロック

- IEEE 802.3 仕様 Annex 31B で定義されている受信パスフロー制御機能の実行

- TX および RX DMA エンジンに接続する MAC 送信および MAC 受信インターフェイスの実装

• フロー制御 (FC): IEEE 802.3 仕様 Annex 31B で定義されている PAUSE フレーム送信を制御 します。

• RX フィルタ (RXF): パケットを許可するか拒否するかを判断するために、全ての受信パケット に対して複数のフィルタ処理を実行します。

• TX DMA/TXBMエンジン : TX DMAエンジンとTXバッファ管理エンジンはパケットバッファ から MAC 送信インターフェイスへのデータ転送を実行します。また、送信が完了すると、MACからパケットバッファに送信ステータスベクタ (TSV)を転送します。 TXディスクリプタ テーブルを使って動作します。

• RX DMA/RXBM エンジン : RX DMA エンジンと RX バッファ管理エンジンは、RX ディスクリ プタ テーブルを使って MAC からパケットバッファに受信パケットと受信ステータスベクタ (RSV) を転送します。

35.4.1 Ethernet フレームの概要

IEEE 802.3 に準拠した Ethernet フレーム ( パケット ) の長さは 64 ~ 1518 バイトです ( プリアン ブルとフレーム開始 (SOF) デリミタを除く )。 64 バイト未満のフレームは「ラント」フレーム、 1518 バイトよりも大きいフレームは「巨大」フレームと呼ばれます。

Ethernet フレームは、以下のフィールドから構成されます。

• ストリーム開始 / プリアンブル

• フレーム開始デリミタ (SFD)

• 宛先 MAC アドレス (DA)

• 送信元 MAC アドレス (SA)

• タイプ / 長さフィールド

• データペイロード

• パディング フィールド ( 必要な場合 )

• フレームチェック シーケンス (FCS)

図 35-2 に、実際の物理ケーブル上のトラフィックを示します。 Ethernet プロトコルの詳細は、 IEEE 802.3 仕様を参照してください。

35.4.1.1 ストリーム開始 / プリアンブルとフレーム開始デリミタ

Ethernet フレームが Ethernet メディアに送信される際、MAC がストリーム開始 / プリアンブルフィールドと SFD フィールドを付加します。

これらのフィールドは受信時に受信フレームから取り除かれ、RX データバッファには書き込まれません。

ソフトウェアは、これらのフィールドを処理 / 生成する必要がありません。

DS61155B_JP - p.35-56 © 2014 Microchip Technology Inc.

Page 57: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.4.1.2 宛先 MAC アドレス

MAC アドレスは Ethernet ネットワーク上のノードの物理アドレスを示す 6 オクテットの数値です。 宛先アドレスはフレームの送り先であるデバイスの MAC アドレスを含みます。 Ethernet 空間には各種のアドレスが存在します。 以下に例を示します。

• ユニキャスト アドレス : アドレス指定先のノードでのみ使うように指定されたアドレスです。 ユニキャスト アドレスは 初のバイトの 下位ビットが 0 です ( つまりアドレスの 初のバ イトが偶数 )。 例えば、「00 04 a3 00 00 01」はユニキャスト アドレスですが、「01 04 a3 00 00 01」は違います。

• マルチキャスト アドレス : Ethernet ノードの選ばれたグループが使うように指定されたアド レスです。 マルチキャスト アドレスは 初のバイトの 下位ビットが 1 です ( つまりアドレ スの 初のバイトが奇数 )。 例えば、「01 04 a3 00 00 01」はマルチキャスト アドレスです マ ルチキャスト アドレスの「FF-FF-FF-FF-FF-FF」は予約済み ( ブロードキャスト アドレス ) であり、ネットワーク上の全ノード宛である事に注意してください。

Ethernet コントローラは、ユニキャスト、マルチキャスト、ブロードキャスト フレームの許可 / 破棄を設定できる受信フィルタ モジュールを備えています。 受信フィルタの詳細は、35.4.8「受 信フィルタ処理の概要」を参照してください。

35.4.1.3 送信元 MAC アドレス

送信元アドレスは Ethernet フレームを送信したノードの 6 バイトフィールドの MAC アドレスです。 全ての Ethernet デバイスは、グローバルに一意な MAC アドレスを持つ必要があります。 Ethernet コントローラを搭載した PIC32 にはそれぞれ一意なアドレスを持っており、電源投入時に MAC レジスタに書き込まれます。 この値はそのまま使う事もできますし、実行時に別のア ドレスに変更する事もできます。

35.4.1.4 タイプ / 長さ

フレームがどのプロトコルに属するのかを示す 2 バイトのフィールドです。 インターネット プ ロトコル (IP) またはアドレス解決プロトコル (ARP) 等の規格を使うアプリケーションでは、該当する規格の仕様書で定義されているタイプコードを使う必要があります。 独自規格のネット ワークを実装する場合、このフィールドをプロトコルタイプではなく長さフィールドとして使う事ができます。 通常、1500 (0x05DC) 以下の値の場合は長さフィールドと見なされ、後続の データフィールドのパディング以外のデータの量を指定します。

35.4.1.5 データ

通常、データフィールドにはフレームあたり 0 ~ 1500 バイトのペイロードデータが含まれます。PIC32 で HUGEFRM ビット (EMAC1CFG2<2>) をセットした場合、これより大きなフレームを送受信できます。 しかし、そのようなフレームは IEEE 802.3 仕様に準拠していないため、ほ とんどの Ethernet ノードで取りこぼされる可能性があります。

35.4.1.6 パディング

パディング フィールドは、小さなデータペイロードを送信する際に IEEE 802.3 仕様の要件を 満たせるように付加される可変長のフィールドです。 Ethernet フレームの 小ペイロードは 46 バイトです。 これより小さなフレームにはこの空間を埋めるためにパディングが必要です。 送 信フレームの場合、ソフトウェアは Ethernet コントローラに対して自動的に必要なパディングを生成するように指示できます。それには PADENABLE、VLANPAD、AUTOPAD ビット(EMAC1CFG2<5:7>) を使います。 しかし、自動パディングを有効にせず、アプリケーションで 適切なパディングを提供しない場合、PIC32 はそれによって生じる「ラント」フレームの送信を予防しません。 受信フレームの場合、PIC32 は全てのパディングを許可し、受信バッファに 書き込みます。 必要な 64 バイトよりも短いフレームは、必要に応じて 35.4.8.4「ラント拒否 フィルタ」に記載されたラントエラー拒否フィルタによってフィルタ処理できます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-57

Page 58: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

35.4.1.7 フレームチェック シーケンス (FCS)

FCS は宛先、送信元、タイプ / 長さ、データ、パディングの全フィールドに対して求めた標準32 ビット CRC の 4 バイトフィールドです。 これで送信エラーを検出できます。

送信フレームの場合、CRCENABLE ビット (EMAC1CFG2<4>) を使う事で、PIC32 は有効なFCS を自動的に生成、付加できます。 それ以外の場合、ソフトウェアが送信フレームの CRC を求めて付加する必要があります。

受信フレームの場合、FCS フィールドは受信バッファに格納されます。 CRC 値が無効なフレー ムは、35.4.8.1「CRC エラー アクセプタンス フィルタ」と 35.4.8.3「CRC チェック アクセプ タンス フィルタ」で説明する CRC エラーと CRC チェック アクセプタンス フィルタによって 破棄するか、許可するかを選択できます。

図 35-2: Ethernet フレームのフォーマット

Note: FCS を生成する多項式は以下の通りです。 G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 +x4 + x2 + x + 1

FCS はビット 31 を先頭、ビット 0 を終端として送信されます。

Filtered out by the module

Start-of-Frame delimiter(filtered out by the module)

Destination address such as:Multicast, Broadcast, or Unicast

Source address

Type of packet or the length

Packet payload(with optional padding)

Frame check sequence – CRC

Start-of-Stream/Preamble

SFD

DA

SA

Type/Length

Data

Padding

FCS

7

1

6

6

2

46-1500

4

Used in thecalculation ofthe FCS

Number of Bytes Field Comments

of the packet

DS61155B_JP - p.35-58 © 2014 Microchip Technology Inc.

Page 59: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.4.2 Ethernet コントローラの基本動作

Ethernet コントローラは ON ビット (ETHCON1<15>) をセットすると有効となります。

Ethernet コントローラは ETHCON1 レジスタの ON ビットをクリアすると無効となります。 これは全てのリセット後の既定値状態です。 Ethernet コントローラが無効の場合、MII/RMII と MIIM インターフェイスに使う全ての I/O ピン インターフェイスはポートピンとして動作し、対 応する PORT ラッチビットと TRIS ビットによって制御されます。

コントローラを無効にすると内部 DMA ステートマシンがリセットされ、全ての送受信動作は中止されます。 その場合も SFR にはアクセス可能であり、それらの値は維持されます。

Ethernet コントローラがアクティブな間に ON ビットをクリアすると、保留中の動作は全て中止され、周辺モジュールは上記の状態にリセットされます。

ON ビットを再度イネーブルにすると、Ethernet コントローラは SFR の値を維持したままクリーンなリセット状態から再起動します。

35.4.3 MAC の概要

MAC 副層はデータリンク層の OSI モデルで定義されている機能の一部です。 この層は、物理層 が提供するメディア依存の層とアクセス層に依存しない LLC 副層または他の MAC クライアントの間にあり、メディアに依存しないアクセスを定義します。 キャリア検出多重アクセス / 衝 突検出方式 (CSMA/CD) に適した、一般的なローカルエリア ブロードキャスト メディアのクラ スに適用されます。

CSMA/CD の MAC 副層は、フレームの送受信に必要な MAC クライアントの処理を実行します。CSMA/CD の MAC 副層は、メディアへのアクセス取得とシリアルビット ストリームの物理層 への送出を 大限実行しようとします。 MAC は、クライアントにエラーを報告するものの、エ ラー回復機能は提供しません。

以下に、図 35-3 に示す CSMA/CD MAC 副層の機能をまとめます。

• フレーム送信時 :

- MAC クライアントからのデータを受け付けフレームを構築する

- メディアへの送信用に物理層にデータのシリアルビット ストリームを送る

- 半二重モードの場合、物理メディアがビジーの時はシリアルビット ストリームの送信を延期する

- 送出フレームに適切なフレームチェック シーケンス (FCS) 値を付加し、オクテットの境界に位置合わせされている事を確認する

- 指定されたフレーム間ギャップの期間、フレームのビットストリームの送信を遅延させる

- 半二重モードの場合、コリジョン検出時に送信を停止する

- 半二重モードの場合、コリジョン後は指定された再試行のリミット値に達するまで再送信をスケジューリングする

- 半二重モードの場合、ジャムメッセージを送信する事でネットワーク全体の伝達確認をするよう、コリジョンを強制的に生成する

- 全てのフレームにプリアンブル、フレーム開始デリミタ、FCS を付加する。 データ長が小値より短いフレームにはパディング フィールドを付加する。

Note 1: 内部バス トランザクション中に ON ビットをクリアすると、コントローラは現在 のバス トランザクションを完了してから、ディセーブル状態に移行します。 コン トローラが無効になると、TXBUSY ビット (ETHSTAT<6>) と RXBUSY ビット(ETHSTAT<5>) はその状態を反映します。

2: Ethernet コントローラを ON ビットでリセットした場合、必ずソフトウェアからMIIM レジスタを介して外部 PHY もリセットする必要があります。 これによって PHY を確実に既知の初期状態に設定します。 さらに、MAC も EMAC1CFG1 レジ スタでソフトリセットします。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-59

Page 60: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

• フレーム受信時 :

- 物理層からシリアルビット データストリームを受け取る

- 受信フレームを MAC クライアントに提供する ( ブロードキャスト、マルチキャスト、ユニキャスト フレーム等 )

- 受信フレームにエラーがないか、FCS とオクテット境界へのアラインメントによって確認する

- 受信フレームからプリアンブル、フレーム開始デリミタ、パディング フィールド ( 必要な場合 ) を取り除く

- 制御 / 状況表示のための外部 MII PHY への接続を提供する MII 管理ブロックを実装する

図 35-3: CSMA/CD メディアアクセス制御機能

MAC には以下の SFR を使ってアクセスします。 EMAC1CFG1、EMAC1CFG2、EMAC1IPGT、 EMAC1IPGR、EMAC1CLRT、EMAC1MAXF、EMAC1SUPP、EMAC1TEST、EMAC1SA0 ~EMAC1SA3 レジスタ

Note: MAC 副層の機能と動作の詳細な説明は、IEEE 802.3 仕様の Clause 2、3、4 を参照 してください。

Physical Layer Signaling

ReceiveData Decoding

TransmitData Encoding

Access to Physical Interface

Receive MediaAccess Management

Transmit MediaAccess Management

TransmitData Encapsulation

ReceiveData Decapsulation

Access to MAC client

MAC Client Sub-Layer

DS61155B_JP - p.35-60 © 2014 Microchip Technology Inc.

Page 61: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.4.4 MII (Media Independent Interface)

MII (Media Independent Interface) は、MAC と PHY の間で TX と RX フレームデータをやり取 りするための標準的な相互接続です。 MII には、以下の重要な特性があります。

• 10/100 Mbps のデータ転送レートをサポートし管理機能を提供する• 4 ビット幅の独立した送受信データパスを提供する• 一般的なデジタル CMOS プロセスと互換性のある TTL 信号レベルを使う• 全二重動作を提供する

MII は 10 Mbps モードでは 2.5 MHz、100 Mbps モードでは 25 MHz で動作します。 MII を提供 する PHY には、これら 2 つのデータレートの両方をサポートする事は求められていません。どちらか一方または両方をサポートします。

表 35-4 に、18 個の MII 信号端子の一覧を示します。

表 35-4: MII 信号

信号名IEEE 802.3のMII信号 幅 タイプ 説明

ETXCLK TX_CLK 1 入力 送信クロック信号は、MAC から PHY に ETXEN、ETXD、ETXERR信号を転送する際の参照タイミングを提供するクロックです。ETXCLK の周波数は、公称送信データレートの 1/4 です。 100 Mbps で動作する PHY は周波数 25 MHz、10 Mbps で動作する PHY は周 波数 2.5 MHz の ETXCLK を提供する必要があります。

ERXCLK RX_CLK 1 入力 受信クロック信号は、PHY から MAC に ERXDV、RXD、ERXERR信号を転送する際の参照タイミングを提供するクロックです。ERXCLK の周波数は受信信号のデータレートの 1/4 です。

ETXEN TX_EN 1 出力 送信イネーブル信号は MAC が送信のために MII にニブルを出力中である事を示します。 ETXEN は ETXCLK に同期して遷移します。

ETXD<3:0> TXD<3:0> 4 出力 送信データ信号は、ETXCLK に同期して遷移します。

ETXERR TX_ER 1 出力 送信コーディング エラー信号は ETXCLK に同期して遷移します。 ETXEN がアサートされている間に、ETXCLK の 1 つまたは複数の周期で ETXERR がアサートされると、PHY は送信中のフレームのどこかに設定された有効なデータまたはデリミタには含まれない、1つまたは複数のシンボルを送出します。 この信号は100 Mbpsデー タ送信にのみ影響を与えます。

ERXDV RX_DV 1 入力 受信データ有効信号は、復元されデコードされたニブルを PHY がRXD データライン上に提供中である事を示します。 ERXDV は ERXCLK に同期しています。 ERXDV はフレームの全期間アサートさ れたままです。

ERXD<3:0> RXD<3:0> 4 入力 受信データ信号は、ERXCLK に同期した 4 つのデータ信号を表します。 ERXDV がアサートされた ERXCLK の各周期では、復元され たデータの 4 ビットが RXD<3:0> によって PHY から MAC に転送されます。

ERXERR RX_ER 1 入力 受信エラー信号は、PHY から MAC に転送中のフレーム内でコーディング エラー ( または PHY が検出できる何らかのエラー ) が発 生した事をMACに知らせるためにアサートされます。 ERXERR は ERXCLK に同期しています。

ECRS CRS 1 入力 キャリア検出信号は、送信または受信メディアのどちらかがアイドルでない時に PHY によってアサートされます。 CRS は送信と受信 メディアの両方がアイドルの時にPHYによってネゲートされます。CRSはコリジョン条件の全期間にわたりアサートされたままです。この信号は、ETXCLK または ERXCLK のどちらとも必ずしも同期していません。

ECOL COL 1 入力 コリジョン検出信号は、メディア上にコリジョンを検出した時にPHY によってアサートされ、コリジョン条件が続く限りアサートされたままです。 ETXCLK または ERXCLK のどちらとも必ずしも 同期していません。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-61

Page 62: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

MII 仕様の詳細は、IEEE 802.3 仕様の Clause 22 を参照してください。

図 35-4 に、PIC32 と外部 PHY 間の代表的な MII 接続を示します。

図 35-4: PIC32 と外部 PHY 間の代表的な MII 接続

35.4.5 RMII (Reduced Media Independent Interface)

管理インターフェイス (MDIO/MDC) は、MII で定義されたものと同一である事を前提としています。

RMII には以下の特性があります。

• 10 Mbps と 100 Mbps のデータレートをサポート可能

• MAC と PHY の両方に共通の参照クロック (MAC または外部ソースから供給可能 )

• 2 ビット幅の独立した送受信データパスを提供する

• 一般的なデジタル CMOS プロセスと互換性のある TTL 信号レベルを使う

• 全二重動作を提供する

このインターフェイスは 50 MHz で動作します。

EMDC MDC 1 出力 管理データクロック信号は、MII 管理インターフェイスの一部です。35.4.6「MIIM (Media Independent Interface Management)」で説 明します。

EMDIO MDIO 1 入力 / 出力 管理データ入出力信号は、MII 管理インターフェイスの一部です。35.4.6「MIIM (Media Independent Interface Management)」で説 明します。

表 35-4: MII 信号 ( 続き )

信号名IEEE 802.3のMII信号 幅 タイプ 説明

PIC32 withEthernet Controller

MIIExternal

PHY

EMDC

EMDIO

MIIManagement

Interface

ETXCLK

ERXCLK

ETXEN

ETXD<3:0>

ETXERR

ERXDV

ERXD<3:0>

ERXERR

ECRS

ECOL

Media Independent

Interface

DS61155B_JP - p.35-62 © 2014 Microchip Technology Inc.

Page 63: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

表 35-5 に、10 個の RMII 信号端子の一覧を示します。

表 35-5: RMII 信号

RMII の詳細な仕様は、RMII コンソーシアムが提供する RMII 仕様を参照してください。

信号名

IEEE 802.3 の

RMII 信号幅 タイプ 説明

EREFCLK REF_CLK 1 入力 参照クロック信号は、ECRSDV、RXD<1:0>、ETXEN、ETXD<1:0>、ERXERRの参照タイミングを提供する連続クロックです。 EREFCLKは MAC または外部ソースから供給される 50 MHz のクロック信号です。 PIC32 の場合、EREFCLK は外部から供給されるクロック信号です。

ECRSDV CRS_DV 1 入力 キャリア検出 / 受信データ有効信号は、受信メディアがアイドルでない時に PHY によってアサートされます。 ECRSDV はキャリア検出時 に非同期でアサートされます。 キャリアが失われると ECRSDV は REF_CLKに同期して(ニブルの境界で)ネゲートされます。 RXD<1:0> のデータは、ECRSDV がアサートされた段階で有効と見なされます。ECRSDV を使って MAC は正確に ERXDV と CRS を復元できます。

ERXD<1:0> RXD<1:0> 2 入力 受信データ信号はEREFCLKに同期して遷移します。 ECRSDVがアサー トされた各クロック周期では、復元されたデータの 2 ビットが ERXDによって PHY から転送されます。

• ECRSDV がネゲートされると、ERXD は「00」によってアイドル条件を示します。 ERXERRのPHY信号への適用は任意であるため、 受信信号のエラーを確実に伝搬するために、ERXD はデコードされたストリーム内のデータを「01」に置き換え、MAC の CRC メカニズムにフレームを拒否させます。

• 100 Mbps の場合、ERXD は EREFCLK に同期します。

• 10 Mbpsの場合、ERXDは10サイクルごとにサンプリングされます。

ETXEN TX_EN 1 出力 送信イネーブル信号はMACが送信のためにETXD<1:0>上に双ビットを出力中である事を示します。 ETXEN はプリアンブルの 初のニブ ルと共にアサートされ、全ての双ビットが送信されるまでアサートされたままです。 ETXEN は EREFCLK に同期して遷移します。

ETXD<1:0> TXD<1:0> 2 出力 送信データ信号はETXENがアサートされた時にデータをPHYに送信します。 ETXD データラインは EREFCLK に同期して遷移します。 ETXD は ETXEN がネゲートされると「00」となり、これによってアイドル条件を示します。

• 100 Mbps モードの場合、ETXD は ETXEN がアサートされている 間、EREFCLK の周期で有効なデータを供給します。

• 10 Mbps モードの場合、EREFCLK の周波数がデータレートの 10 倍 であるため、ETXDの値は10サイクルに1回サンプリングされます。

ERXERR RX_ER 1 入力 受信エラー信号は、現在 PHY によって転送中のフレームでエラーが検出された事を示し、EREFCLK の 1 周期または複数周期にわたってアサートされます。 ERXERR は EREFCLK に同期して遷移します。

EMDC MDC 1 出力 管理データクロック信号は、MII 管理インターフェイスの一部です。35.4.6「MIIM (Media Independent Interface Management)」で説明します。

EMDIO MDIO 1 入力 /出力 管理データ入出力信号は、MII 管理インターフェイスの一部です。35.4.6「MIIM (Media Independent Interface Management)」で説明します。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-63

Page 64: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

図 35-5 に、PIC32 と外部 PHY 間の代表的な RMII 接続を示します。

図 35-5: PIC32 と外部 PHY 間の代表的な RMII 接続

35.4.6 MIIM (Media Independent Interface Management)

MII 管理 (MIIM) モジュールは、PIC32 ホストと外部 MII PHY デバイス間のシリアル通信リンクを 提供します。 外部シリアル通信リンクは、IEEE 802.3 仕様の Clause 22 に従って動作します。

MIIM の入出力信号は以下の通りです。

• 管理データクロック (MDC) - MDC は MDIO 信号の情報転送に使う参照タイミングとして、MAC から PHY に供給されます。

• 管理データ入出力 (MDIO) - MDIO は PHY と MAC 間の双方向信号です。 PHY と MAC の間で制 御情報とステータス情報を転送するために使います。 制御情報はMACがMDCに同期して駆動 し、PHY が同期的にサンプリングします。 ステータス情報は PHY が MDC に同期して駆動し、 MAC が同期的にサンプリングします。

MIIM リンクを介しての通信はフレームで実行されます。 MII 管理インターフェイスに送信される フレームは以下の構造を持ちます ( 表 35-6 参照 )。

• プリアンブル : 各トランザクションの先頭で、MAC は MDIO 上に 32 個の論理 1 のビットシー ケンスを送信し、PHY に同期パターンを提供します。

• フレーム開始 : フレーム開始は <01> パターンによって示されます。

• オペコード : 読み出しトランザクションの場合は <10>、書き込みトランザクションの場合は <01> です。

• PHY アドレス : 5 ビットを使い、32 通りの PHY アドレスを指定できます。 PHY はアドレスが 0 のトランザクションには常に応答します。

• レジスタアドレス : 5 ビットを使い、各 PHY 内で 32 個の独立したレジスタのアドレスを指定 できます。

• ターンアラウンド : 管理フレームのレジスタアドレス フィールドとデータフィールドの間に ある 2 ビット時間のスペースです。読み出しトランザクション中の競合を回避します。

• データ : この 16 ビットフィールドで、アドレス指定した PHY レジスタとの間でデータを搬送します。

PIC32 withEthernet Controller

RMIIExternal

PHY

EMDC

EMDIO

RMIIManagement

Interface

EREFCLK

ETXEN

ETXD<1:0>

ERXD<1:0>

ERXERR

ECRSDV

ReducedMedia

Independent Interface

ExternalClock

Source

Note: MDIO のアイドル条件はハイ インピーダンス状態です。

DS61155B_JP - p.35-64 © 2014 Microchip Technology Inc.

Page 65: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

表 35-6: MIIM フレームのフォーマット

前述の通り、MIIM フレームのサイズは 64 ビットです。 しかし、PHY がプリアンブルを抑制し た動作をサポートしている場合、MIIM モジュールは MII 管理シリアル ストリームのプリアンブ ル部分を抑制するように設定できます。それには、NOPRE ビット (EMAC1MCFG<1>) を使います。

MIIM の詳細は、IEEE 802.3 仕様の Clause 22 を参照してください。

35.4.6.1 外部 PHY レジスタへのアクセス

PHY レジスタは、PHY モジュールの設定、制御、ステータス情報に使います。 チップ内蔵の SFR と異なり、PHY レジスタは SFR 制御インターフェイスを使って直接アクセスする事はできません。 代わりに、MIIM を実装する特別な MAC 制御レジスタセットでアクセスします。 こ れらの制御レジスタを MIIM レジスタと呼びます。 PHY レジスタには、MAC の MIIM インター フェイスを介してアクセスします。 それには MII 管理コマンド、MAC 内のアドレス、データレ ジスタを使う必要があります。

PHYレジスタへのアクセスを制御する下記レジスタをEthernet制御レジスタのまとめ(表35-1)に示します。

• EMAC1MCFG: Ethernet コントローラ MAC MII 管理コンフィグレーション レジスタ (1,2)

• EMAC1MCMD: Ethernet コントローラ MAC MII 管理コマンド レジスタ (1)

• EMAC1MADR: Ethernet コントローラ MAC MII 管理アドレス レジスタ (1)

• EMAC1MWTD: Ethernet コントローラ MAC MII 管理書き込みデータレジスタ (1)

• EMAC1MRDD: Ethernet コントローラ MAC MII 管理読み出しデータレジスタ (1)

• EMAC1MIND: Ethernet コントローラ MAC MII 管理インジケータ レジスタ (1)

35.4.6.2 MII 管理モジュールの初期化

MAC の MIIM モジュールが適切なインターフェイス クロック (MDC) 周波数を生成できるよう に、クロック速度を設定する必要があります。 MIIM モジュールは入力クロックとして SYSCLK を使います。

MDC クロック信号を生成するために CLKSEL ビット (EMAC1MCFG<2:5>) によって分周回路を選択します。IEEE 802.3 仕様は MDC クロックを 2.5 MHz 以下と定義しています。 しかし、 大クロックレート 12.5 MHz をサポートする PHY もあります。

35.4.6.3 PHY レジスタの読み出し

MAC を介して PHY レジスタを読み出すと 16 ビット全体が得られます。

PHY レジスタの読み出し手順は以下の通りです。

1. 読み出す PHY のアドレスと PHY レジスタのアドレスを EMAC1MADR レジスタに書き込みます。

2. READ ビット (EMAC1MCMD<0>) をセットします。 読み出し動作が開始し、SYSCLK の 3 周期後 (これはMIIMインターフェイスの内部パイプラインによるものです )にMIIMBUSYビット (EMAC1MIND<0>) がセットされます。

3. 動作が完了した事を確認するために MIIMBUSY ビットをポーリングします ( 動作時間はMIIM フレーム全体の転送に必要な時間です )。 ビジーの間、ソフトウェアは MII スキャン 動作を開始またはEMAC1MWTDレジスタへの書き込みをしてはいけません。 MACがレジ スタ内容の取得を完了すると、MIIMBUSY ビットは自動的にクリアされます。

4. READ ビット (EMAC1MCMD<0>) をクリアします。

5. 必要なデータを EMAC1MRDD レジスタから読み出します。

動作管理フレームのフィールド

PRE ST OPCODE PHYAD REGAD TA DATA IDLE

READ 1....1 01 10 a0....a4 r0....r4 Z0 d0....d15 Z

WRITE 1....1 01 01 a0....a4 r0....r4 10 d0....d15 Z

Note: PHY チップのレジスタは全て 16 ビット幅として扱われます。 未実装の位置への書き 込みは無視され、これらの位置を読み出そうとすると常に「0」が返されます。 予約 済みの位置には全て「0」を書き込みます。読み出した場合は内容を無視します。 レ ジスタアクセスの詳細は、PHY ベンダーのデータシートを参照してください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-65

Page 66: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

35.4.6.4 PHY レジスタの書き込み

PHY レジスタに書き込む際は、16 ビット全体が一括で書き込まれます。選択的なビット書き込みは実装されていません。 レジスタの一部のビットのみを書き換える場合、まずソフトウェ アで PHY レジスタを読み出し、読み出したデータを変更してから PHY レジスタに書き戻す必要があります。

PHY レジスタへの書き込み手順は以下の通りです。

1. 読み出す PHY のアドレスと PHY レジスタのアドレスを EMAC1MADR レジスタに書き込みます。

2. 書き込む 16 ビットのデータを EMAC1MWTD レジスタに書き込みます。 このレジスタに書 き込む事で MIIM トランザクションが自動的に開始し、SYSCLK の 3 周期後 ( これは MIIM インターフェイスの内部パイプラインによるものです)にMIIMBUSYビット(EMAC1MIND<0>)がセットされます。

3. MIIMBUSY ビットがクリアされるまでポーリングします。クリアは書き込みの完了を表します。

4. PHY レジスタには、MIIM 動作が完了してから書き込まれ、MIIM フレーム時間を要します。書き込み動作が完了すると、MIIMBUSY ビットは自動的にクリアされます。 ビジーの間、 ソフトウェアは MII スキャン動作を開始または読み出し動作をしてはいけません。

35.4.6.5 PHY レジスタのスキャン

PHYレジスタに対する自動連続読み出し動作を実行するようにMACを設定できます。 これは、 周期的にステータス情報を更新する必要がある場合にソフトウェアの複雑性を大幅に低減します。

スキャン動作実行の手順は以下の通りです。

1. 読み出す PHY のアドレスと PHY レジスタのアドレスを EMAC1MADR レジスタに書き込みます。

2. SCAN ビット (EMAC1MCMD<1>) をセットします。 スキャン動作が開始し、MIIMBUSY (EMAC1MIND<0>) ビットがセットされます。

3. 初の読み出し動作は、 初の MIIM フレームが転送された時点で完了します。 後続の読み 出しも動作がキャンセルされるまで同じ間隔で繰り返されます。 NOTVALID ビット (EMAC1MIND<2>) をポーリングすると、 初の読み出し動作が完了したかどうかを判断できます。 スキャンしたレジスタデータを EMAC1MRDD レジスタから読み出します。

4. SCAN ビットのセット後、EMAC1MRDD レジスタは MIIM フレーム間隔ごとに自動的に更新されます。 いつ EMAC1MRDD レジスタが更新されたかの判断に使えるステータス情報 はありません。

5. MIIM スキャン動作の実行中、ソフトウェアは EMAC1MWTD への書き込みを試みたり、読み出し動作を開始してはいけません。

6. MIIM スキャン動作は、SCAN ビット (EMAC1MCMD<1>) をクリアする事でキャンセルできます。キャンセル後は MIIMBUSY ビットをポーリングします。 MIIMBUSY ビットがクリ アされた時点で、新たな動作を開始できます。

例 35-1 に、MIIM の初期化、PHY レジスタの読み出し、書き込み、スキャンのためのサンプルコードを示します。

DS61155B_JP - p.35-66 © 2014 Microchip Technology Inc.

Page 67: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

例 35-1: MIIM の初期化と PHY へのアクセス

35.4.7 フロー制御の概要

Ethernet のフロー制御は、PAUSE フレームの送受信機能から構成されます。これは、受信ノードが一定の時間、送信ノードの送信を停止させる機能です。

送信側では、送信フロー制御有効時はフロー制御 (FC) ブロックが MAC とCPU間のハードウェア ハンドシェイクを処理します。 受信パケットのフロー制御は MAC 機能の一部です。

PIC32 の MAC は、IEEE 802.3 仕様の Clause 28、表 28B-2 と Clause 31、Annex 31B に記載 されている、対称 PAUSE と非対称 PAUSE の両方をサポートします。

FC ブロックは手動と自動の 2 つの動作モードをサポートします。 また、FC ブロックは MAC レジスタに設定された送信モード ( 全二重または半二重 ) を使います。

ソフトウェアでパケット受信速度を制御するには、フロー制御を有効にする必要があります。フロー制御のメカニズムは、全二重と半二重モードで動作が異なります。

// Assume we're running at 80 MHz and we're working with a PHY that supports a maximum// 2.5 MHz MIIM frequency

#include <p32xxxx.h>#define PHY_ADDRESS 0x1f // the address of the PHY

EMAC1MCFG=0x00008000; // issue resetEMAC1MCFG=0; // clear resetEMAC1MCFG=(0x8)<<2; // program the MIIM clock, divide by 40

// read the basic status PHY register: 1unsigned int phyRegVal;

while(EMAC1MIND&0x1); // wait not busyEMAC1MADR=0x1|((PHY_ADDRESS)<<8); // set the PHY and register addressEMAC1MCMD=1; // issue the read order__asm__ __volatile__ (“nop; nop; nop;”); // wait busy to be setwhile(EMAC1MIND&0x1); // wait op completeEMAC1MCMD=0; // clear command registerphyRegVal=EMAC1MRDD; // read the selected register

// write the basic control PHY register: 0while(EMAC1MIND&0x1); // wait in case of some previous operationEMAC1MADR=0x0|((PHY_ADDRESS)<<8); // set the PHY and register addressEMAC1MWT=0x8000; // issue the write order (PHY reset)__asm__ __volatile__ (“nop; nop; nop;”); // wait busy to be setwhile(EMAC1MIND&0x1); // wait write complete

// Make sure data has been written

// Perform a scan of the status PHY register: 1// Start the scanwhile(EMAC1MIND&0x1); // wait in case of some previous operationEMAC1MADR=0x1|((PHY_ADDRESS)<<8); // set the PHY and register addressEMAC1MCMD=0x2; // issue the scan order

// Read the status register

// Note that the read can occur now at any time// without previously selecting the read operation and the registerwhile(EMAC1MIND&0x4); // wait data validphyRegVal=EMAC1MRDD; // read the scanned register

Note: 送信ロジックがパッケージを送信中は、ソフトウェアが全二重 / 半二重の動作モードを変更してはいけません。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-67

Page 68: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

35.4.7.1 全二重

送信側の MAC は PAUSE タイマ値を含む PAUSE 制御フレームを送信します。 受信側の MAC は制御フレームをデコードし、PAUSE タイマ値を抽出して、指定された時間だけ送信を停止します。 これによって送信デバイスがただちに一時停止するわけではない事に注意してくだ さい。 一時停止のメカニズムがアクティブになるまでには遅延があります。 PAUSE タイマ値が タイムアウトする前にフロー制御を無効にするには、PAUSE タイマ値に値 0x0000 をエンコードしたもう 1 つの PAUSE フレームを送信します。

受信側からこの動作を見た場合、他のデバイスが PAUSE フレームを送信し、MAC が PAUSEフレームを受信すると、PAUSE タイマがタイムアウトするか他のデバイスが PAUSE フレーム要求をキャンセルするまで送信動作が禁止されます。

35.4.7.2 半二重

半二重のフロー制御も動作は似ています。 ソフトウェアがフロー制御を有効にすると、FC ブ ロックが MAC にバックプレッシャの印加を要求します。 MAC は送信ラインにプリアンブル パ ターンを送信しつづけ、他のデバイスがバス制御権を得ないようにします。 この動作は、フロー 制御が無効になるまで続きます。

35.4.7.3 手動フロー制御

手動フロー制御は、MANFC (ETHCON1<4>) 制御ビットで有効にします。

手動フロー制御が有効な場合、MAC は PTV (ETHCON1<31:16>) の値を使って PAUSE 制御フ レームを送信します。 送信フロー制御を早期終了させたい場合、MAC はフロー制御を無効にす るために、PAUSE タイマ値として 0x0000 がエンコードされたもう 1 つの PAUSE フレームを送信します。

35.4.7.4 自動フロー制御

自動フロー制御は、AUTOFC (ETHCON1<7>) 制御ビットで有効にします。 自動フロー制御が 有効な場合、現在の BUFCNT ビット (ETHSTAT<23:16>) の値に基づいて、ハードウェアが以下のように PAUSE 制御フレームを送信します。

• BUFCNT が RXFWM ビット (ETHRXWM<23:16>) で指定した値に達すると、PAUSE フレームが送信クロックの 512/2 * PTV (ETHCON1<31:16>) サイクルごとに自動的に送信されます。

• BUFCNT が RXEWM ビット (ETHRXWM<7:0>) で指定した値に達すると、PAUSE タイマ値を 0x0000 に設定した PAUSE フレームが送信されます。

BUFCNT の値はパケット境界でのみ更新されます。従って、自動フロー制御の変化は全てパケット境界で発生します。

自動フロー制御を有効にすると、フロー制御動作のセットとクリアに対して 高位の優先度を持ちます。 従って、自動フロー制御と手動フロー制御の混用は推奨できません。

Note: PAUSE フレームは一時停止の要求時間 (0 ~ 65535) を収めます。 一時停止の時間 は「時間単位」で計測し、各単位は 512 ビット時間に相当します。

Note 1: 送信クロックサイクルは、現在の MAC の速度選択値に依存します。10 Mbps の 場合は 10 MHz、100 Mbps の場合は 100 MHz です。

2: 空き RX ディスクリプタが割り当てる空きスペースが、Ethernet 大フレームサイズの 2 倍 ( すなわち 1536 * 2) を下回った場合、フロー制御ウォーターマークが PAUSE フレームを送信できる値である事をソフトウェアで確実にする必要があります。 これによって、受信オーバーフロー条件とならないようにします。

3: PTV の値は、動作が有効でない場合 (ETHCON1<15> = 0) にのみ変更できます。

DS61155B_JP - p.35-68 © 2014 Microchip Technology Inc.

Page 69: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

PAUSE フレームを手動で送信する手順は以下の通りです。

1. 初期化シーケンスで、ソフトウェアが PTV の値 (ETHCON1<31:16>) を書き込んで PAUSE値を設定します。

2. ソフトウェアが MANFC ビット (ETHCON1<4>) に書き込んで、PAUSE フレームの送信を開始します。

3. FC ブロックが MAC に PAUSE フレームの送信を要求します。

4. MAC は、以下の要素から成るフロー制御フレームを構成します。

a) プリアンブル

b) フレーム開始デリミタ (SFD)c) 宛先アドレス = 01-80-c2-00-00-01( 特殊な PAUSE マルチキャスト アドレス ) d) 送信元アドレス = EMAC1SA0 ~ EMAC1SA3 レジスタにあるステーション アドレス

e) 長さ = 0x8088( 制御フレーム )f) ペイロード :

• オペコード (2 バイト ) = 0x0001• PAUSE 値 (2 バイト ) = PTV

g) パディング

h) FCS

例 35-2: 手動フロー制御の使用

35.4.8 受信フィルタ処理の概要

受信フィルタ (RXF) ブロックは、到達した全ての受信パッケージを調べ、ユーザが選択できるフィルタに基づいてそのパケットを許可または拒否します。 以下の RX フィルタをサポートし ます。

• CRC エラー アクセプタンス フィルタ (CRCERREN ビット (ETHRXFC<7>) で制御 )

• ラントエラー アクセプタンス フィルタ (RUNTERREN ビット (ETHRXFC<5>) で制御 )

• CRC チェック拒否フィルタ (CRCOKEN ビット (ETHRXFC<6>) で制御 )

• ラント拒否フィルタ (RUNTEN ビット (ETHRXFC<4>) で制御 )

• ユニキャスト アクセプタンス フィルタ (UCEN ビット (ETHRXFC<3>) で制御 )

• Not Me ユニキャスト アクセプタンス フィルタ (NOTMEEN ビット (ETHRXFC<2>) で制御 )

• マルチキャスト アクセプタンス フィルタ (MCEN ビット (ETHRXFC<1>) で制御 )

• ブロードキャスト アクセプタンス フィルタ (BCEN ビット (ETHRXFC<0>) で制御 )

• ハッシュテーブル アクセプタンス フィルタ (HTEN ビット (ETHRXFC<15>) で制御 )

• Magic Packet アクセプタンス フィルタ (MPEN ビット (ETHRXFC<14>) で制御 )

• 論理反転したパターンマッチ アクセプタンス フィルタ (PMMODE ビット(ETHRXFC<8-11>) と NOTPM ビット (ETHRXFC<12>) で制御 )

Note: 各フィルタは、アクセプタンス フィルタまたは拒否フィルタのどちらかです。 アクセプタンス フィルタはパケットを強制的に許可し、拒否フィルタはパケット を強制的に拒否します。

// Note: Setting the new PTV value should be done only when the // peripheral is not enabled#include <p32xxxx.h>ETHCON1CLR=0xffff0000; // clear PTVETHCON1SET=(ptvVal)<<16; // set the new PTV value

/*....*/ETHCON1SET=0x10; // turn on the Manual Flow Control

// at this moment PAUSE Frames are being sent// or backpressure is applied

// do some other things// manage/retrieve all the received packets so far// ...// ...

ETHCON1CLR=0x10; // disable the Manual Flow Control

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-69

Page 70: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

上記のフィルタの一覧はフィルタの優先度が高い方から低い方に並べてあります。フィルタが有効でパケットを許可するか拒否する場合、より低い優先度のフィルタは何の効果も持ちません。

例えば、ラントエラー アクセプタンス フィルタが有効で 64 バイト未満のパケットを受信した 場合、そのパケットは CRC チェックが不合格でも許可されます。

受信パケットがフィルタで明示的に許可または破棄されない場合、そのパケットは破棄されます( 既定値動作 )。

RX フィルタの内部設計により、Ethernet フレームを許可するか中止するかの 終判断は、フレームの終端で行われます。

パケットを受信すると、各受信パケットの受信ステータスベクタ (RSV) は、対応する RX パケットに一致するフィルタの情報を含みます。この情報は、それらのフィルタが受信時にアクティブであったかどうかに関係なく組み込まれます。 これによって、パケットに関する追加の

「ステータス」情報が得られ、ソフトウェアはこれをパケットのフィルタ処理に使えます。 例え ば、プロミスキャス モードにおいて Magic Packet フィルタの RSV ビットを使えば、フレーム の内容を調べずに Magic Packet を簡単に識別できます。 RSV の詳細は、図 35-9 を参照してく ださい。

フィルタは、全て ETHRXFC レジスタで設定します。

RXF ブロックの同期のため、以下のレジスタは ON ビット (ETHCON1<15>) がセットされている間は変更してはいけません。

• ETHRXFC: Ethernet コントローラ受信フィルタ コンフィグレーション レジスタ (1,2)

• ETHHT0: Ethernet コントローラ ハッシュテーブル 0 レジスタ (1,2)

• ETHHT1: Ethernet コントローラ ハッシュテーブル 1 レジスタ (1,2)

• ETHPMO: Ethernet コントローラ パターンマッチ オフセット レジスタ (1,2)

• ETHPMCS: Ethernet コントローラ パターンマッチ チェックサム レジスタ (1,2)

• ETHPMM0: Ethernet コントローラ パターンマッチ マスク 0 レジスタ (1,2)

• ETHPMM1: Ethernet コントローラ パターンマッチ マスク 1 レジスタ (1,2)

• EMAC1SA0: Ethernet コントローラ MAC ステーション アドレス 0 レジスタ (1,2)

• EMAC1SA1: Ethernet コントローラ MAC ステーション アドレス 1 レジスタ (1,2)

• EMAC1SA2: Ethernet コントローラ MAC ステーション アドレス 2 レジスタ (1,2)

これらのレジスタまたはビットを変更する場合、まず ON ビット (ETHCON1<15>) をクリアする必要があります。

以下のセクションで、各受信フィルタを簡単に説明します。

35.4.8.1 CRC エラー アクセプタンス フィルタ

このフィルタは、CRC チェックに不合格なパケットを明示的に許可する時に使います。 有効な 場合、CRC チェックフィルタが有効であるか否かに関わらず、CRC チェックに不合格のパケットが全て許可されます。

35.4.8.2 ラントエラー アクセプタンス フィルタ

このフィルタは、ラントチェックに不合格なパケットを明示的に許可する時に使います。 有効 な場合、ラントフィルタが有効であるか否かに関わらず、ラントチェックに不合格のパケットが全て許可されます。

35.4.8.3 CRC チェック アクセプタンス フィルタ

有効な場合、MAC の CRC チェック結果を調べ、パケットのフィルタ処理に使います。 このフィ ルタが有効かつ不合格な場合、パケットは中止されます。 これとは逆に、CRC チェックが有効 でない場合、受信パケットの CRC は無視され、パケットの許可要件として使われません。

35.4.8.4 ラント拒否フィルタ

ラントフィルタを使うと、受信パケット ( 宛先アドレス、送信元アドレス、長さ / タイプ、ペイロード、FCS) のサイズに対してフィルタ処理を適用できます。 ラント拒否フィルタが有効な 場合、64 バイトより小さいパケットは拒否されます。

DS61155B_JP - p.35-70 © 2014 Microchip Technology Inc.

Page 71: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.4.8.5 キャスト アクセプタンス フィルタ

パケットはキャストのタイプでフィルタ処理します。以下をサポートします。

• ユニキャスト : ユニキャスト タイプで宛先アドレスがステーション アドレスに一致するパケットを許可します。

• Not Me ユニキャスト : ユニキャスト タイプで宛先アドレスがステーション アドレスに一致しないパケットを許可します。

• ブロードキャスト : ブロードキャスト タイプのパケットを許可します。

• マルチキャスト : マルチキャスト タイプのパケットを許可します。

アクティブなキャストフィルタのいずれかがパケットを許可すれば、受信したパケットが許可される場合があります ( 他のフィルタによる )。 例えば、ユニキャストとブロードキャストの両 方のフィルタを有効にした場合、どちらのタイプのパケットも受信できます。

全ての到達パケットを許可するには ( プロミスキャス モード )、UCEN、NOTMEEN、MCEN、 BCEN フィルタを有効にして、他のフィルタを全て無効にします。

35.4.8.6 ハッシュテーブル アクセプタンス フィルタ

有効にすると、ハッシュテーブル フィルタは受信パケットをその宛先アドレスに基づいて許可 します。 大 64 のアドレスを指定できます。 これには、MAC からの宛先アドレス CRC 出力 をユーザ定義のハッシュテーブルのルックアップキーとして使います。

初に受信パケットの宛先アドレス フィールドの CRC 値を求めます。 次に、この値のビット <28:23> を 64 ビットのユーザプログラム可能なテーブル (ETHHT0, ETHHT1) のインデックス として使います。このテーブルには、許可 (「1」)、または無視 (「0」) を表す 1 ビットの値を格納します。 例えば、CRC の計算値が 05h の場合、64 ビットの HT レジスタテーブルのビッ ト 5 の値を調べます。 そのエントリが論理「1」の場合、パケットは許可されます。それ以外の 場合、パケットを許可するかどうかの判断に、このフィルタ処理結果は考慮されません。

このフィルタが使う宛先アドレス CRC 出力は、RX パケットの宛先アドレスに対する、補数なしの 32 ビット CRC のビット <28:23> に相当する事に注意してください。

35.4.8.7 Magic Packet アクセプタンス フィルタ

Magic Packet フィルタは、あらかじめ決められたパターンがないか受信パケットをスキャンし てパケットを許可します。

Magic Packet とは、データフィールドに 0xFF 同期パターンが 6 バイト分あり、その次に宛先 ステーション アドレスが 16 回繰り返されたパケットと定義されます。

データパケットには、Magic Packet パターンの他にペイロードが含まれる場合があります。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-71

Page 72: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

図 35-6: Magic PacketTM フォーマットの例

35.4.8.8 パターンマッチ アクセプタンス フィルタ

有効にすると、パターンマッチ アクセプタンス フィルタは、特定のパターンに一致するパケッ トを許可します。 一致の判定は、64 バイトウィンドウ内の選択されたバイトのチェックサムを 生成する事で行います。

チェックサムの計算値が NOTPM ビット (NOTPM ビット (ETXRXFC<12>) の指定に応じてETHPMCS レジスタと一致または不一致であり、かつ PMMODE ビット (ETHRXFC<8-11>) に対応する全ての条件が満たされた場合、パケットは許可されます。 それ以外の場合、パケット は中止されます。

64 バイトのウィンドウは、その始点を 0 ~ 65536 バイトの任意の場所に設定できるように、PMO の値 (ETHPMO<15:0>) を使ってプログラムします。 しかし、64 バイトウィンドウがパ ケットの終端からはみ出す場合、パターンマッチ フィルタはパケットを中止します。

64 バイトウィンドウ内の特定のバイトをチェックサムの計算に使うか否かは、パターンマッチマスクビット PMM<63:0>(ETHPMM0<31:0>, ETHPMM1<31:0>) で選択します。 Ethernet パ ターンマッチ マスクレジスタ (ETHPMM0, ETHPMM1) のパターンマッチ マスクビット (PMM<n>) がセットされている場合、対応するバイトをチェックサムの計算に使います ( ただし n = 0, 1, 2,..., 62, 63 であり、n = 0 はオフセット値に続く 初のバイトをポイントします )。

チェックサムのアルゴリズムは、TCP/IPのチェックサム計算と同じです。 このアルゴリズムは、 計算に 16 ビットのワード長を使う必要がある事に注意してください。 これは、奇数バイトの一 致を判定する場合に計算に使うデータ列は、 後のバイトに「0」のバイトをパディングしている事を意味します。 また、チェックサム値は計算前に 0x00000000 に初期化されます。 図 35-7 に、チェックサムの計算例を示します。

SA

FCS

DA

Type/Length

Data

11 22 33 44 55 66

00 FE

09 0A 0B 0C 0D 0E

ReceivedData Field

77 88 99 AA BB CC

EF 54 32 10

FF FF FF FF FF 00

FF FF FF FF FF FF

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

11 22 33 44 55 66

19 1A 1B 1C 1D 1E

Data

Sync pattern

Sixteen repeats ofthe Station Address

DS61155B_JP - p.35-72 © 2014 Microchip Technology Inc.

Page 73: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

図 35-7: チェックサム計算

図 35-8 に、パターンマッチのフォーマット例を示します。

図 35-8: パターンマッチのフォーマット例

12 00 AC 23 92 55 00 00 FE AA FF FF 34 12 CD AB <-- Data Packet (hex) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <-- Byte Number

Step 1: Add words of data packet:

1200h + AC23h + 9255h + 0000h + FEAAh + FFFFh + 3412h + CDABh = 450DEh

Step 2a: Add high word with low word of checksum_reg:50DEh + 0004h = 50E2h

checksum_reg[31:0] = 0x0004_50DE

checksum_reg[31:0] = 0000_50E2h

Step 3: NOT(000050E2h) = FFFFAF1Dhchecksum_reg[31:0] = 0000_50E2houtput dma_checksum_val[15:0] = AF1Dh

Note 1: 上記の計算は初期シードが 0x0000 である事を前提としています。

2: dma_length[DMA_ADDR_MSB:0] = 0の場合、 終的なチェックサムの値は、チェックサム シードの 1 の補数である

必要があります。 初期チェックサム シードが 0x0000 の場合、0xFFFF です。 ユーザ指定のシードの場合、同じシード

値が得られます。これは、ユーザ指定のシード値は DMA に取り込まれる前に既に 1 の補数であるためです。

Step 2b: If the high order word from Step 2a > 0000h, add high wordwith low word of checksum_reg (i.e., repeat step 2a).

SA

Pattern Match Offset = 0x6

FCSDA Type/Length Data

Bytes used forChecksum

Pattern Match Mask bits (PMM<63:0>) = 0x0000000000001F0A

11 22 33 44 55 66 77 88 99 AA BB CC 00 5A 09 0A 0B 0C 0D . . . 40 . . . FE 45 23 01ReceivedData

Field

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 . . . 70 . . .Byte #

computation

64-byte window usedfor pattern matching

Input configuration:

Received data shown in hexadecimal; Byte # shown in decimal format

Values used for Checksum computation = {0x88, 0xAA, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x00}

Note: 00h はハードウェアでパディング

Checksum Value output = 0x563F

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-73

Page 74: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

例 35-3: パターンマッチ RX フィルタの設定

35.4.9 Ethernet DMA とバッファ管理エンジン

データメモリと Ethernet コントローラ間のパケットデータ移動による CPU 負荷を低減するため、本モジュールは RX と TX DMA エンジンを内蔵しています。 DMA エンジンは、送信パケッ トの場合にはシステムメモリから MAC にデータを転送し、受信パケットの場合には MAC からシステムメモリにデータを転送します。 各 DMA エンジンは、送信用と受信用の別々のバスマス タとして機能する事でシステムメモリにアクセスします。

DMA エンジンは、システムメモリ内の TX/RX バッファの位置を判断するために、TX と RX 動作に別々の Ethernet ディスクリプタ テーブル (EDT) を使います。

DMA エンジンが使う送信と受信の両ディスクリプタは Ethernet ディスクリプタ (ED) と呼ばれ、ステータスワードのフォーマットを除き、両者は同じです。 表 35-7 と表 35-8 にディスク リプタのフォーマットを示します。 ディスクリプタ テーブルは、図 35-9 と図 35-10 に示す通 り、パケットバッファをポイントするリンクリストまたはリニアリストを格納します。

ソフトウェアは、Ethernet 転送を有効にする前に RX と TX ディスクリプタ テーブルを設定す る必要があります。

// Note: Setting the Pattern Match filter should be done only when receive// is not enabled/* Input parameters:- int matchMode: a value between 0 and 9 describing the Pattern Match Mode

(see PMMODE (ETHRXFC<8:11>) in the ETHRXFC: Ethernet Controller ReceiveFilter Configuration Register (レジスタ 35-4)

- long long matchMask: the match mask in the 64 Byte packet window- int matchOffs: the offset applied to the incoming packet data to obtain

the window- int matchChecksum: the 16 bit checksum to be used for comparison- int matchInvert: Boolean to for the Pattern Match Inversion bit NOTPM (ETHRXFC<12>)*/#include <p32xxxx.h>

ETHRXFCCLR = 0x00000F00; // disable pattern match modeETHPMM0 = (unsigned int)matchMask;ETHPMM1 = (unsigned int)(matchMask>>32);

ETHPMO = matchOffs;ETHPMCS = matchChecksum;

if(matchInvert){

ETHRXFCSET = 0x00001000; // set NOTPM}else{

ETHRXFCCLR = 0x00001000; // clear NOTPM} ETHRXFCSET=(matchMode)<<0x00000008; // enable the Pattern Match mode

DS61155B_JP - p.35-74 © 2014 Microchip Technology Inc.

Page 75: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

表 35-7: Ethernet コントローラ TX バッファ ディスクリプタのフォーマット

オフセット

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Addr+0SOP

EOP

U U U BYTE_COUNT<10:0> U U U U U U UNPV

EOWN

- - - - - - -

Addr+4 DATA_BUFFER_ADDRESS<31:0>

Addr+8 U U U U U U U U - - - - TSV<51:32>

Addr+12 TSV<31:0>

Addr+16 NEXT_ED<31:0>

Note: Ethernet ディスクリプタのアドレスは 4 バイト境界に揃える必要があります。

オフセット 0

bit 31 SOP: パケット開始イネーブルビット

1 = このデータバッファによりパケット開始デリミタを送信する0 = パケット開始デリミタは存在しない

bit 30 EOP: パケット終了イネーブルビット

1 = このデータバッファにパケット終了デリミタを付与する0 = パケット終了デリミタは存在しない

bit 29-27 ユーザ定義ビット、Ethernet コントローラでは使わない

bit 26-16 BYTE_COUNT<10:0>: バイトカウント ビット (1)

バイトカウントは、このディスクリプタに対する転送バイト数を示します。バイトカウントの有効な値はディスクリプタの 1 エントリあたり 1 ~ 2047 です。

bit 15-9 ユーザ定義ビット、Ethernet コントローラでは使わない

bit 8 NPV: 次の ED ポインタ有効イネーブルビット

1 = 次のディスクリプタはこのディスクリプタのNext_EDフィールドがポイントしている0 = 次のディスクリプタはメモリ内でこのディスクリプタの次にある

bit 7 EOWN: Ethernet コントローラ所有ビット (2)

1 = ED と対応するデータバッファは Ethernet コントローラが所有する ( ソフトウェア は ED またはデータバッファを変更できません。)

0 = ED と対応するデータバッファはソフトウェアが所有する (Ethernet コントローラは ED 内の他のフィールドを全て無視します。)

bit 6-0 予約済み : 常に「0」を維持、読み出しは無視

Note 1: BYTE_COUNT = 0にプログラムすると、予測できない動作を引き起こす可能性があります。

2: このビットは、ソフトウェアまたは Ethernet コントローラのどちらかで書き込む事ができ、Ethernet コントローラを有効にする前にユーザ アプリケーション によって必要な値に初期化する必要があります。

オフセット 4

bit 31-0 DATA_BUFFER_ADDRESS<31:0>: データバッファ アドレスビット

ディスクリプタ データバッファの開始アドレス

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-75

Page 76: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

オフセット 8

bit 31-24 ユーザ定義ビット、Ethernet コントローラでは使わない

bit 23-20 予約済み : 常に「0」を維持、読み出しは無視

bit 19-0 TSV<51:32>: 送信ステータスベクタ ビット送信パケットのステータス :TSV<51> = VLAN タグ付きフレームを送信フレームの長さ / タイプフィールドに VLAN プロトコル識別子の 0x8100 が含まれていた

TSV<50> = 送信バックプレッシャ印加キャリア検出に基づくバックプレッシャが印加されていた

TSV<49> = PAUSE 制御フレームを送信送信されたフレームは有効な PAUSE オペコードを持つ制御フレームだった

TSV<48> = 制御フレームを送信送信されたフレームは制御フレームだった

TSV<47-32> = ケーブルに送信された総バイト数現在のパケットでケーブルに送信された総バイト数(コリジョンによる再送バイトを全て含む )

オフセット 12

bit 31-0 TSV<31:0>: 送信ステータスベクタ送信パケットのステータス :TSV<31> = 送信アンダーラン システムは送信 MAC モジュールに完全なパケットを転送できなかった

TSV<30> = 巨大フレームを送信フレームのバイトカウントが MACMAXF (EMAC1MAXF<0:15>) よりも大きかった

TSV<29> = 後期送信コリジョンコリジョン ウィンドウ (512 ビット時間 ) の後にコリジョンが発生した

TSV<28> = 送信 大コリジョンコリジョンの回数が RETX (EMAC1CLRT<0:3>) を超えたためパケットが中止された

TSV<27> = 送信遅延時間オーバーパケット送信を、100 Mbps モードでは 6071 ニブル時間、10 Mbps モードでは 24,287 ビット時間を超えて延期した

TSV<26> = 送信パケット延期パケットの送信を少なくとも 1 回延期した。ただし遅延時間のリミットには達していない

TSV<25> = ブロードキャスト送信パケットの宛先アドレスがブロードキャスト アドレスだった

TSV<24> = マルチキャスト送信パケットの宛先アドレスがマルチキャスト アドレスだった TSV<23> = 送信完了パケットの送信が完了した

TSV<22> = 送信長さ上限オーバーフレームのタイプ / 長さフィールドが 1500 バイトを超えた ( タイプフィールド )TSV<21> = 送信長さチェックエラーパケット内のフレーム長さフィールドの値が実際のデータバイトの長さと一致しておらず、しかもタイプフィールドでない

TSV<20> = 送信 CRC エラーパケットに付加された CRC が内部生成した CRC と一致しなかった

TSV<19:16> = 送信コリジョン カウント現在のパケット送信中に発生したコリジョンの回数

TSV<15:0> = 送信バイトカウントフレームの総バイト数 ( コリジョンのバイト数を除く )

オフセット 16

bit 31-0 NEXT_ED<31:0>: 次の Ethernet ディスクリプタのアドレスビット

NPV = 1の場合 : このフィールドは、次の Ethernet ディスクリプタの開始アドレスを含む

NPV = 0の場合 : このフィールドはディスクリプタ内に存在しない

表 35-7: Ethernet コントローラ TX バッファ ディスクリプタのフォーマット ( 続き )

DS61155B_JP - p.35-76 © 2014 Microchip Technology Inc.

Page 77: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

表 35-8: Ethernet コントローラ RX バッファ ディスクリプタのフォーマット

オフセット

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Addr+0SOP

EOP

- - - BYTE_COUNT<10:0> U U U U U U UNPV

EOWN

- - - - - - -

Addr+4 DATA_BUFFER_ADDRESS<31:0>Addr+8 RXF_RSV<7:0> U U U U U U U U PKT_CHECKSUM<15:0>Addr+12 RSV<31:0>Addr+16 NEXT_ED<31:0>

Note: Ethernet ディスクリプタのアドレスは 4 バイト境界に揃える必要があります。

オフセット 0bit 31 SOP: パケット開始イネーブルビット

1 = このデータバッファによりパケット開始デリミタを受信する0 = パケット開始デリミタは存在しない

bit 30 EOP: パケット終了イネーブルビット

1 = このデータバッファにパケット終了デリミタを付与する0 = パケット終了デリミタは存在しない

bit 29-27 予約済み : 常に「0」を維持、読み出しは無視

bit 26-16 BYTE_COUNT<10:0>: バイトカウント ビット

バイトカウントは、このディスクリプタに対する転送バイト数を示します。 バイトカウント の有効な値はディスクリプタの 1 エントリあたり 1 ~ 2047 です。

bit 15-9 ユーザ定義ビット、Ethernet コントローラでは使わない

bit 8 NPV: 次の ED ポインタ有効イネーブルビット

1 = 次のディスクリプタはこのディスクリプタのNext_EDフィールドがポイントしている0 = 次のディスクリプタはメモリ内でこのディスクリプタの次にある

bit 7 EOWN: Ethernet コントローラ所有ビット (1)

1 = ED と対応するデータバッファは Ethernet コントローラが所有する ( ソフトウェア は ED またはデータバッファを変更できません。)

0 = ED と対応するデータバッファはソフトウェアが所有する (Ethernet コントローラは ED 内の他のフィールドを全て無視します。)

bit 6-0 予約済み : 常に「0」を維持、読み出しは無視

Note 1: このビットは、ソフトウェアまたは Ethernet コントローラのどちらかで書き込む事ができ、Ethernet コントローラを有効にする前にユーザ アプリケーションによって必要な値に初期化する必要があります。

オフセット 4bit 31-0 DATA_BUFFER_ADDRESS<31:0>: データバッファ アドレスビット

ディスクリプタ データバッファの開始アドレス

オフセット 8bit 31-24 RXF_RSV<7:0>: 受信フィルタ ステータスベクタ ビット

このフィールドは受信パケットのフィルタ処理に関する補足情報を格納します。RXF_RSV<7> = マルチキャスト一致RXF_RSV<6> = ブロードキャスト一致RXF_RSV<5> = ユニキャスト一致RXF_RSV<4> = パターンマッチ一致RXF_RSV<3> = Magic Packet 一致RXF_RSV<2> = ハッシュテーブル一致RXF_RSV<1> = NOT( ユニキャスト一致 ) かつ NOT( マルチキャスト一致 )RXF_RSV<0> = ラントパケット

bit 23-16 ユーザ定義ビット、Ethernet コントローラでは使わない

bit 15-0 PKT_CHECKSUM<15:0>: このディスクリプタのパケットにおける RX パケット ペイ ロードのチェックサム、 16 ビットのパケット チェックサム計算値の 1 の補数

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-77

Page 78: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

オフセット 12bit 31-0 RSV<31:0>: 受信ステータスベクタ ビット

受信パケットのステータス :RSV<31> = 予約済み

RSV<30> = 受信 VLAN タイプ検出現在のフレームが VLAN タグ付きフレームとして認識された

RSV<29> = 未知オペコードの受信現在のフレームが制御フレームとして認識されたが未知のオペコードを含んでいた。 パケットには CRC エラーがなく有効な長さ (64 ~ 1518) である

RSV<28> = PAUSE 制御フレームの受信現在のフレームが有効な PAUSE フレーム オペコードと有効なアドレスを含む制御フ レームとして認識された。 パケットにはCRCエラーがなく有効な長さ (64~1518)である

RSV<27> = 制御フレームの受信現在のフレームが有効なタイプ / 長さフィールドを持ち制御フレームとして認識された。パケットには CRC エラーがなく有効な長さ (64 ~ 1518) である

RSV<26> = ドリブルニブルこのパケットの終了後、さらに 1 ~ 7 ビットを受信した。 ドリブルニブルと呼ばれる単一 ニブルが形成されたが送出されていない

RSV<25> = ブロードキャスト パケットの受信受信したパケットに有効なブロードキャスト アドレスが含まれていた

RSV<24> = マルチキャスト パケット受信受信したパケットに有効なマルチキャスト アドレスが含まれていた

RSV<23> = 正常受信パケットに有効な CRC があり、シンボルエラーが検出されなかった

RSV<22> = 長さ上限オーバーフレームのタイプ / 長さフィールドが 1500 バイトを超えた ( タイプフィールド )RSV<21> = 長さチェックエラーパケットのフレーム長さフィールドの値が実際のデータバイトの長さと一致していないが有効な長さを指定している

RSV<20> = CRC エラーフレームの CRC フィールドの値がレシーバの MAC で求めた CRC と一致しない

RSV<19> = 受信コード違反フレームのデータフェイズでMRXERがアサートされた時にMIIデータが有効な受信コードを示していない

RSV<18> = 以前に検出されたキャリアイベント前回の受信統計以降にキャリアイベントが検出され、次の受信統計で認識、報告された。このパケットに対応するキャリアイベントはない。 キャリアイベントとは、パケット受信 の試みに至らない受信チャンネル上でのアクティビティを示す RSV<17> = 以前に検出された RXDV イベント後に検出された受信イベントは有効なパケットとしての長さが不足していた

RSV<16> = ロングイベント / 取りこぼしイベント50,000 ビット時間を超えるパケットを受信した、または 後の RSV 以降の 1 パケットを取りこぼした

RSV<15:0> = 受信バイトカウント受信フレームの長さを示す

オフセット 16bit 31-0 NEXT_ED<31:0>: 次の Ethernet ディスクリプタのアドレスビット

NPV = 1の場合 : このフィールドは、次の Ethernet ディスクリプタの開始アドレスを含む

NPV = 0の場合 : このフィールドはディスクリプタ内に存在しない

表 35-8: Ethernet コントローラ RX バッファ ディスクリプタのフォーマット ( 続き )

DS61155B_JP - p.35-78 © 2014 Microchip Technology Inc.

Page 79: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

図 35-9: Ethernet ディスクリプタ テーブルのフォーマット ( リンクリスト、NPV = 1)

Packet Buffer

TX/RX Start ADDR (SFR)

Packet Buffer

Packet Buffer

Packet Buffer

STATUS

NEXT_ED

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

EOWN BC SOP EOPNPV = 1

STATUS

NEXT_ED

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

EOWN BC SOP EOPNPV = 1

STATUS

NEXT_ED

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

EOWN BC SOP EOPNPV = 1

STATUS

NEXT_ED

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

EOWN BC SOP EOPNPV = 1

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-79

Page 80: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

図 35-10: Ethernet ディスクリプタ テーブルのフォーマット ( リニアリスト、NPV = 0)

35.4.9.1 Ethernet ディスクリプタ バッファ管理

送受信パスで使うディスクリプタ テーブルとパケットデータ バッファはシステムデータ メモ リ内にあります。 ディスクリプタ テーブルは、メモリ内のパケットデータ バッファのブロック を参照する、ディスクリプタのリンクリストです。 テーブルは、独立した送受信ディスクリプ タとバッファに物理的かつ論理的に分割されています。 RXとTXディスクリプタ テーブルの開 始アドレスは、どちらも 4 バイト境界に揃っている必要があります ( ビット 1 とビット 0 = 00)。

35.4.9.2 Ethernet ディスクリプタの所有権

ソフトウェアと Ethernet コントローラがディスクリプタとバッファを共有するため、簡単なセマフォ メカニズムを使って、ディスクリプタとメモリ内の対応するバッファのどの部分を更新 できるか区別します。 このセマフォ メカニズムは、各バッファ ディスクリプタの EOWN ビッ トで実装しています。 EOWN ビットがクリアされている場合、ディスクリプタはソフトウェア が所有します。 ソフトウェアはディスクリプタを自由に変更できます。 EOWN ビットをセット すると、Ethernet コントローラのハードウェアが、ディスクリプタとそれがポイントするバッファメモリを所有します。 ソフトウェアは、ディスクリプタまたはそれに対応するデータバッ ファを変更できません。 Ethernet コントローラは、バッファ ディスクリプタと対応するデータ バッファに書き込みます。

TX/RX Start ADDR (SFR)

Packet Buffer

STATUS

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

STATUS

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

STATUS

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

EOWN BC SOP EOPNPV = 0

STATUS

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

EOWN BC SOP EOPNPV = 1

Packet Buffer

Packet Buffer

NEXT_ED

Packet Buffer

EOWN BC SOP EOPNPV = 0

EOWN BC SOP EOPNPV = 0

DS61155B_JP - p.35-80 © 2014 Microchip Technology Inc.

Page 81: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.4.9.3 Ethernet ディスクリプタ テーブルの設定

Ethernet コントローラの転送を有効にする前に、ソフトウェアで TX と RX 両方のディスクリプタ テーブルを設定すると共に、ディスクリプタがポイントするパケットデータ バッファの 領域を割り当てる必要があります。 各テーブルに含まれるディスクリプタのエントリ数は、ソ フトウェアとシステムで使えるメモリ量で決まります。

ソフトウェアが設定できる Ethernet ディスクリプタ テーブル (EDT) には 2 つのタイプがあり ます。 一方はディスクリプタ リング、もう一方がディスクリプタ リストです。 両者の違いは、 リストの 後のディスクリプタが EOWN ビット =0の「空」ディスクリプタであるか、 後のディスクリプタの参照先がリングの先頭に戻るかという点だけです。 Ethernet DMA エンジン は、どちらのタイプも処理できます。 図 35-11 に、これら 2 つのタイプの例を示します。

35.4.9.4 Ethernet 送信バッファ管理

送信バッファ管理 (TXBM) ブロックは TX DMA と連携して、システムメモリから MAC へのパ ケット送信フローを、送信バッファ ディスクリプタにより管理します。

送信動作は TXRTS ビット (ETHCON1<9>) をセットすると有効となります。 TXRTS ビットが セットされると、TX DMA は ETHTXST がポイントする EDT から Ethernet ディスクリプタを フェッチします。 データバッファの位置とデータバッファの制御ワードを読み出した後に、 DMA はデータバッファのデータ読み出しと、そのデータの MAC 送信ポートへの書き込みを開始します。 複数のディスクリプタが必要な場合、DMA は次のディスクリプタに移動し、データ の送信を続けます。

システムメモリから MAC にパケットを送信する必要がある場合、パケットデータはディスクリプタDATA_BUFFER_ADDRESS (図35-9参照 )がポイントするメモリから読み出されます。

送信パケットのフォーマットは、受信パケットと同じです。 各送信パケットバッファは、送信 する標準の Ethernet フレーム フィールド (DA、SA、タイプ / 長さ、ペイロード ) を含みます。

図 35-12 に、3 つのディスクリプタを使った TX パケットの例を示します。

ディスクリプタ テーブルのエントリとパケットデータ バッファをソフトウェアでプログラム して TXRTS ビット (ETHCON1<9>) をセットすると、送信動作が開始します。

パケット全体の送信が完了すると、Ethernet コントローラはそのパケットに使われた 初のディスクリプタ エントリの送信ステータスベクタ (TSV) を更新します。 送信したパケットが 使った全てのディスクリプタの EOWN フィールドを更新します。 さらに、ハードウェアは ETHTXSTレジスタを更新して、次の送信パケットに使う次のTXディスクリプタを反映します。

パケットに対する有効な送信ディスクリプタが存在する ( 次のディスクリプタが有効(EOWN = 1) である ) 限り、TX DMA はディスクリプタ テーブルを順に参照し、送信のために MAC にパケットデータを送信しつづけます。 全ての送信動作が完了すると、送信ロジックは TXRTS ビットをクリアし、TXDONE ビット (ETHIRQ<3>) をセットします。 TXDONEIE ビッ ト (ETHIEN<3>) がセットされている場合、TXDONE ビットは割り込みを生成します。 従って、 送信動作の完了は TXRTS ビットのポーリングか TXDONE ビット (ETHIRQ<3>) による割り込みで監視できます。

TXRTSビットをクリアすると、パケットの送信をいつでも停止できます。 パケット送信中にTXRTS ビットをクリアすると、進行中のパケットの送信は完了し、その後 TXBUSY ステータスビット(ETHSTAT<6>) がクリアされて送信エンジンが停止した事を示します。

Note: EDT 内の各ディスクリプタの全フィールドは、ソフトウェアで初期化する必要があります。これには、ステータス フィールドを 0 にする初期化が含まれます。 Ethernet ディスクリプタ フォーマットの詳細は、表 35-7 と表 35-8 を参照してく ださい。

Note: ソフトウェアは、TXRTS ビットをセットする前に、TX ディスクリプタ リストと ETHTXST レジスタが初期化されている事を確実にする必要があります。

Note: 送信するディスクリプタのEOWNビットはソフトウェアでセットする必要があります。その順序は、送信するパケットの 後のディスクリプタから始めて、 初のディスクリプタで終わるものとします。 これにより、ソフトウェアと Ethernet コントローラ ハードウェアの間のレーシング条件を回避できます。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-81

Page 82: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

TXRTS ビットがセットされている間、TX 関連 SFR にソフトウェアで書き込んではいけません。ソフトウェアでこれらのレジスタを変更するには、TXRTS をクリアした上で、TXBUSY がネゲートされるまで待つ必要があります。ネゲートされた後にレジスタに書き込む事ができ、TXRTS ビットを再度セットします。

35.4.9.5 Ethernet 送信動作の詳細

パケットの送信プロセスは次の通りです。

1. ソフトウェアはデータメモリ内のパケットバッファにパケットデータを書き込み、パケットデータ バッファをポイントするディスクリプタのエントリをプログラムします。 さら に、SOP、EOP、BYTE_COUNT、EOWN ビットをプログラムして、有効なパケットが用意されている事を知らせると共に、パケット全体を送信するために他のディスクリプタが必要がどうかを示します。 図 35-12に、複数のディスクリプタ エントリを使った TXパケッ トの例を示します。 ディスクリプタは、送信パケットデータ バッファの位置と長さを定義 するために使います。

2. その後、ソフトウェアは TXRTS ビット (ETHCON1<9>) をセットして送信を開始します。これにより TXA DMA と TXBM ロジックが起動します。

3. TX DMA エンジンは、ETHTXST レジスタがポイントするディスクリプタ テーブルの中か ら、次に使えるディスクリプタ エントリを読み出します。

4. TX DMA エンジンは、DATA_BUFFER_ADDRES の値を読み出した後、ディスクリプタか ら読み出した位置にあるパケットデータの読み出しを開始します。

5. TXBM は MAC にフレーム開始位置を示し、終了アドレスに達するまで送信バッファから全てのフレームデータを送信します。 TXBM は開始アドレスを先頭に、指定されたバイト 数が MAC 送信インターフェイスに送信されるまで送信を行います。

6. MAC は早期コリジョンに対して送信を再試行できます。

7. MAC は後期コリジョン、過度なコリジョン、遅延時間オーバーに対しては送信を中止できます。 中止の条件は、TXABORT ビット (ETHIRQ<2>) で確認できます。

8. 送信が完了すると、TX DMA エンジンは TSV 関連ビットをパケットの 初のディスクリプ タ エントリに格納します。

9. パケットの送信後、送信に使った全てのディスクリプタは EOWN ビットをクリアする事で、ソフトウェアに解放されます。

10. さらに有効な TX ディスクリプタを使える場合 (EOWN = 1)、DMA エンジンはステップ 3 に戻り、次のパケットの送信を開始します。 逆に次のディスクリプタをまだハードウェア が所有している場合 (EOWN = 0)、送信は停止し、ソフトウェアが TXRTS ビットを再度 セットするのを待ちます。

CWINDOWビット(EMAC1CLRT<8:14>)の境界内で発生した全てのコリジョンは早期コリジョンであり、再試行動作が実行される事に注意します。 CWINDOW 境界を外れた位置で発生した コリジョンは後期コリジョンとして扱われ、動作が中止されます。 EMAC1CLRT レジスタの CWINDOW ビットは通常 64 バイトに設定されます。 中止の条件は、送信を試みているパケッ トが 大コリジョン カウント RETX ビット (EMAC1CLRT<0:3>) に達した時にも発生します。

Note: ETHTXST 送信コンフィグレーション レジスタ (TX ディスクリプタ テーブルの開 始アドレス ) は TX DMA が使い、TX DMA が非動作 ( つまり、TXRTS ビット (ETHCON1<9>) = 0かつ TXBUSY ビット (ETHSTAT<6>) = 0) の場合のみ変更で きます。これはDMAクロックドメインへの常時同期が提供されていないためです。 TX DMA がアクティブな時に ETHTXST コンフィグレーション レジスタが変化し ないように、ソフトウェアで確実にする必要があります。

DS61155B_JP - p.35-82 © 2014 Microchip Technology Inc.

Page 83: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

TXBM エンジンは、MAC に送信したデータの内容に関してほとんど情報を持っていません。 しかし、2 種類の送信パケットを送信できる事に注意しておく必要があります。

1. 以下を含む完全なパケット :

• アドレス (DA、SA)、タイプ / 長さ、ペイロード

• パディング ( 必要な場合 )

• フレームチェック シーケンス

この場合、PADENABLE ビット (EMAC1CFG2<5>) は 0 です。 MAC はフレームをパ ディングしませんが、フレームに対する CRC チェックは実行し、CRC チェックが一致しなかった場合は TX ステータスベクタの TSV<20> をセットします。

2. 以下を含む不完全なパケット :

• アドレス (DA、SA)、タイプ / 長さ、ペイロード

この場合、PADENABLE = 1です。 MACはAUTOPAD、VLANPADビット(EMAC1CFG2<7:6>) の設定に従ってフレームをパディングし、フレームに関して求めた CRC (FCS) を挿 入します。

EMAC1CFG2 レジスタの設定に基づいたパディングと CRC のオプションに関する説明は、表35-2 を参照してください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-83

Page 84: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

例 35-4: Ethernet 送信パケットのコード/* The following assumptions were made for this example:

- the packet that has to be sent consists of multiple buffers in memory.- the number of available TX descriptors greater than the number of buffers composing the

packet (there's at least an extra descriptor ending the chain of descriptors)- this is the first transmission of a packet, the example enables the transmission process.

Input parameters:- sEthTxDcpt* pArrDcpt: pointer to an array that holds free descriptors that we can use for

the TX operation (see below the definition for sEthTxDcpt).- char* pArrBuff: pointer to an array that holds buffers to be transmitted- int* pArrSize: pointer to an array that holds the sizes of buffers to be transmitted- int nArrayItems: how many buffers to be transmitted are stored in the array. */

#include <p32xxxx.h>// definition used (see 表 35-7: Ethernetコントローラ TXバッファ ディスクリプタのフォーマット )

typedef struct {

volatile union{

struct{

unsigned: 7;unsigned EOWN: 1;unsigned NPV: 1;unsigned: 7;unsigned bCount: 11;unsigned: 3;unsigned EOP: 1;unsigned SOP: 1;

};unsigned intw;

}hdr; // descriptor headerunsigned char* pEDBuff; // data buffer addressvolatile unsigned long longstat; // tx packet statusunsigned int next_ed; // next descriptor (hdr.NPV==1);

}__attribute__ ((__packed__)) sEthTxDcpt; // hardware Tx descriptor (linked).

extern void* VA_TO_PA(char* pBuff); // extern function that returns the physical// address of the virtual address input parameter

int ix; // loop indexsEthTxDcpt* pEDcpt; // current Ethernet descriptorsEthTxDcpt* tailDcpt; // last Ethernet descriptorchar* pBuff; // current data buffer to be transmittedint* pSize; // current data buffer size

pEDcpt=pArrDcpt;pBuff=pArrBuff;pSize=pArrSize;tailDcpt=0;

for(ix=0; ix< nArrayItems; ix++, pEDcpt++, pBuff++, pSize++) {

// pass the descriptor to hw, use linked descriptors, set proper sizepEDcpt->pEDBuff=(unsigned char*)VA_TO_PA(pBuff); // set bufferpEDcpt->hdr.w=0; // clear all the fieldspEDcpt-> hdr.NPV=1; // set next pointer validpEDcpt-> hdr.EOWN=1; // set hw ownershippEDcpt->hdr.bCount=* pSize; // set proper size

if(tailDcpt){tailDcpt->next_ed=VA_TO_PA(&pEDcpt);}tailDcpt=pEDcpt;

}// at this moment pEDcpt is an extra descriptor we use to end the descriptors listpEDcpt->hdr.w=0; // software ownershiptailDcpt->next_ed= VA_TO_PA(&pEDcpt);pArrDcpt[0].hdr.SOP=1; // start of packetpArrDcpt[nArrayItems-1].hdr.EOP=1; // end of packet

ETHTXST=VA_TO_PA(pArrDcpt); // set the transmit addressETHCON1SET= 0x00008200; // set the ON and the TXRTS

// the ETHC will transmit the buffers we just programmed/* do something else in between */

while(!(ETHCON1&0x00000200)); // wait transmission to be done

// check the ETHSTAT register to see the transfer result

Note: このサンプルコードは、MPLAB® C32 C compiler 固有の構文を使っています。 パッ クされたデータ構造のサポートに関してはコンパイラのマニュアルを参照してください。

DS61155B_JP - p.35-84 © 2014 Microchip Technology Inc.

Page 85: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.4.9.6 Ethernet 受信バッファ管理

受信バッファ管理 (RXBM) ブロックは RX DMA と連携して、MAC からシステムメモリへのパ ケット受信フローを、受信バッファ ディスクリプタにより管理します。

RXENビット (ETHCON1<8>)をセットすると受信動作が有効となります。 RXENビットをセッ トすると、RX DMA はテーブル内で使える次のディスクリプタ エントリを読み出し、ディスク リプタがポイントするパケットバッファにパケットデータを書き込み、ディスクリプタ エント リ自体に受信パケットのステータスを書き込む事で、到達したパケットに応答します。 到達し たパケットが 1 つのバッファによって割り当てられるスペースよりも多くを必要とする場合、パケットを複数のディスクリプタにまたがらせる事ができます。 RX DMA がテーブル内の次の パケット ディスクリプタを読み出し、それを所有していなかった場合、オーバーフロー条件と なる可能性があり、ステータス レジスタを介して報告されます。

パケットの受信に成功すると ( パケットがフィルタまたはオーバーラン エラーにより中止され なかった場合 )、そのデータはディスクリプタ DATA_BUFFER_ADDRESS ( 図 35-9 参照 ) がポ イントするメモリ内に格納されます。 受信ステータスベクタ (RSV)、RX フィルタ受信ステータ ス (RXF_RSV)、パケット チェックサム (PKT_CHECKSUM)、制御ワード (SOP と EOP) が、 そのパケットに使う 初のディスクリプタ エントリ内で更新されます。 受信パケットが使った 全てのディスクリプタの EOWN フィールドが更新されます。 さらに、より適切にパケットを管 理できるように、BUFCNT ビット (ETHSTAT<16:23>) は、データメモリに格納された受信パケットバッファの累積数を維持します。

後に、次の受信パケットに使う、次の RX ディスクリプタを反映するために ETHRXST レジスタが更新されます。 ハードウェアがパケットをメモリに格納したら、ソフトウェアはパケット を処理する前にパケットの RSV にエラーがないか確認する必要があります。

ソフトウェアは受信パケットの処理後、パケット バッファ カウント BUFCNT をデクリメント するために、そのパケットに使ったディスクリプタ 1 個につき 1 回、BUFCDEC ビット(ETHCON1<0>) に書き込む必要があります。 これにより、データメモリ内に保留中の未処理パ ケットバッファの正確な数が得られます。この値は、自動フロー制御に使われます (35.4.7「フロー制御の概要」参照 )。

さらにソフトウェアはディスクリプタを更新し、そのパケットに使ったディスクリプタのEOWN フィールドをクリアして、他の受信パケットが使えるように解放する必要があります。

自動フロー制御が有効な場合、ETHSTAT レジスタの BUFCNT ビットが反映できる 大数よりも多くのパケットを RX ロジックが受信すると、オーバーラン条件が発生します。 BUFCNT フィールドのインクリメントを試み (RXBM がパケットを受信した事による )、レジスタが 大値 (0xFF) に達した場合、レジスタはロールオーバーせずにオーバーラン エラー条件が発生し、 RXロジックが停止します。 この状況への正しい対処の仕方は、パケットを読み出してBUFCNT カウンタをデクリメントする事です。

自動フロー制御が無効の場合、RXDMA は処理を継続し、BUFCNT は値 0xFF で飽和します。

使用可能なディスクリプタの不足で RX エンジンが停止した場合、BUFCDEC ビット(ETHCON1<0>) への書き込みが検出されるまで再開しません。 このビットへの書き込みは、使 用可能な RX ディスクリプタ バッファがソフトウェアで用意された事を知らせます。

Note: RXEN ビットを 初に有効にした時、RX DMA エンジンはパケットデータの受信 に備えて、まずメモリから RX ディスクリプタをフェッチします。 RXEN ビットの セット前にディスクリプタ リストが初期化されている事をソフトウェアで確実に する必要があります。

Note 1: ETHRXST受信コンフィグレーション レジスタ (RXディスクリプタ テーブルの開始ア ドレス )はRX DMAが使い、RX DMAが非動作 (つまり、RXEN (ETHCON1<8>) = 0か つ RXBUSY (ETHSTAT<5>) = 0) の場合のみ変更できます。これは DMA クロック ドメインへの常時同期が提供されていないためです。 RX DMAがアクティブな時にETHRXSTコンフィグレーション レジスタが変化し ない事は、ソフトウェアで確実にする必要があります。

2: RX EDT リングを使う場合、ソフトウェアは RX EDT に少なくとも 大 Ethernet フレームのバッファ処理に必要となる十分なエントリがある事を確認する必要があります。 これは、RX DMA エンジンがラップアラウンド条件を検出しないため に必要となる措置です。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-85

Page 86: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

35.4.9.7 Ethernet 受信動作の詳細

受信したパケットはパケットバッファにステータスベクタと共に格納されます。ステータスベクタはディスクリプタに格納されます。 ステータスベクタは次の2つの構成要素からなります。

• 受信ステータスベクタ (RSV) は受信パケットの 後に MAC により駆動され、受信したパケットの情報が含まれます。

• 受信フィルタ ステータスベクタ (RXF_RSV) は RX フィルタブロックから出力されます。

これらを組み合わせたステータスは、パケットデータ バッファの格納に使う 初のディスクリ プタ内に格納されます。

受信プロセスの手順は次の通りです。

1. ソフトウェアは RX ディスクリプタ テーブルに RX ディスクリプタ エントリと、各ディス クリプタ エントリがポイントするそれに対応したパケットデータ バッファを設定します。

2. ソフトウェアはETHRXSTレジスタ (RXディスクリプタ テーブルの先頭をポイント )に書 き込み、RXEN ビット (ETHCON1<8>) をセットして RX ポートを有効にします。

3. RX DMA エンジンがテーブルから有効なディスクリプタを読み出し、パケットデータ バッ ファの始点を判断します。

4. パケットを受信すると、MAC は新しいフレームの始点を示し、データを提供します。

5. RXBM がデータを受信し、それを RX FIFO に格納します。 システムメモリへの書き込み は、データを 32 ビット受信するまで延期されます。 RX DMA は RX FIFO からデータを取 り出し、今読み出したばかりのディスクリプタがポイントするパケットデータ バッファに 格納します。 ディスクリプタにより割り当てられた全てのバイトを書き込むと、RX DMA はさらにパケットデータを書き込むために別のディスクリプタを読み出します。

6. RX DMAがさらにパケットデータを格納する必要がある時にEOWN = 0のディスクリプタ をフェッチした場合、RXBUFNA ビット (ETHIRQ<1>) 割り込みが発生します。

7. パケット受信中に以下のイベントのどれかが発生するとパケットは中止され、ディスクリプタはパケット ステータスにより更新されません。このため、ディスクリプタは次のパ ケットに使えます。

• RX フィルタがパケットを中止した

• 以下の理由で発生する可能性がある RXFIFO オーバーラン

- システムレベルの遅延が長すぎる

- BUFCNT ビット (ETHSTAT<16:23>) が 大値に達した

- ハードウェア処理に使えるディスクリプタがない

8. フレームが終了すると MAC が受信ステータスベクタ (RSV) を提供し、RX フィルタが受信フィルタ ステータスベクタ (RXF_RSV) を提供します。

9. RX DMA は再度ディスクリプタを順に参照します。

a) 現 在 の パ ケ ッ ト が 使 っ た 初 の デ ィ ス ク リ プ タ を、RSV、RXF_RSV、PKT_CHECKSUM、BYTE_COUNT の値で更新します。

b) 現在のパケットに属する全てのディスクリプタの SOP と EOP が更新されます。 さら に EOWN ビットも変更され、パケットデータを読み出せる事をソフトウェアに知らせます。

10. RSV が RX DMA に渡されると、RXBM は他のパケットを受信できます。

DS61155B_JP - p.35-86 © 2014 Microchip Technology Inc.

Page 87: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

例 35-5: Ethernet 受信パケットのサンプルコード/* The following assumptions were made for this example:

- the packet that has to be received might consist of multiple Ethernet frames.- the number of available RX descriptors is greater than the number of receive buffers that

have to be made available for the incoming frames (there’s at least an extra descriptorending the chain of descriptors)

- all the RX filtering is already programmed- this is the first receive operation to take place, the example enables the receive process.Input parameters:- sEthRxDcpt* pArrDcpt: pointer to an array that holds free descriptors that we can use for

the RX operation (see below the definition for sEthRxDcpt).- char* pArrBuff: pointer to an array that holds buffers to receive the incoming data traffic- int rxBuffSize: size of the receive buffers- int nArrayItems: how many receive buffers are stored in the array. */

#include <p32xxxx.h>// definition used for this example (see 表 35-7)

typedef struct {

volatile union{

struct{

unsigned: 7;unsigned EOWN: 1;unsigned NPV: 1;unsigned: 7;unsigned bCount: 11;unsigned: 3;unsigned EOP: 1;unsigned SOP: 1;

};unsigned int w;

}hdr; // descriptor headerunsigned char* pEDBuff; // data buffer addressvolatile unsigned long long stat; // tx packet statusunsigned int next_ed; // next descriptor (hdr.NPV==1);

}__attribute__ ((__packed__)) sEthRxDcpt; // hardware RX descriptor (linked).

extern void* VA_TO_PA(char* pBuff); // extern function that returns the physical// address of the input virtual address parameter

int ix; // indexsEthRxDcpt* pEDcpt; // current Ethernet descriptorsEthRxDcpt* tailDcpt; // last Ethernet descriptorchar* pBuff; // current data buffer to be transmitted

pEDcpt=pArrDcpt;pBuff=pArrBuff;tailDcpt=0;

ETHCON2=(rxBuffSize/16)<<4; // set the RX data buffer size

for(ix=0; ix< nArrayItems; ix++, pEDcpt++, pBuff++) {

// pass the descriptor to hw, use linked descriptors, set proper sizepEDcpt->pEDBuff=(unsigned char*)VA_TO_PA(pBuff); // set bufferpEDcpt->hdr.w=0; // clear all the fieldspEDcpt-> hdr.NPV= 1; // set next pointer validpEDcpt-> hdr.EOWN= 1; // set hw ownership

if(tailDcpt){tailDcpt->next_ed=VA_TO_PA(&pEDcpt);}tailDcpt=pEDcpt;

}// at this moment pEDcpt is an extra descriptor we use to end the descriptors listpEDcpt->hdr.w=0; // software ownershiptailDcpt->next_ed= VA_TO_PA(&pEDcpt);

ETHRXST=VA_TO_PA(pArrDcpt); // set the address of the first RX descriptorETHCON1SET= 0x00008100; // set the ON and the RXEN

// the Ethernet Controller will receive frames and place them in the receive buffers// we just programmed/* do something else in between */

// can check the BUFCNT (ETHSTAT<16:23>) or RXDONE (ETHIRQ<7>) // to see if there are packets received

Note: このサンプルコードは、MPLAB C32 C Compiler 固有の構文を使っています。 パッ クされたデータ構造のサポートに関してはコンパイラのマニュアルを参照してください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-87

Page 88: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

図 35-11: Ethernet ディスクリプタ テーブルのリストとリング フォーマット

Packet

Buffer

TX/RX Start ADDR (SFR)

STATUS (TSV/RSV)

NEXT_ED

DATA_BUFF_ADDR

NPV = 1EOWN = 1 Byte Cnt EOPSOP

CHKSUM/STATUSSTATUS

Descriptor List Configuration Descriptor Ring Configuration

Packet

Buffer

Packet

Buffer

Packet

Buffer

Packet

Buffer

TX/RX Start ADDR (SFR)

Packet

Buffer

Packet

Buffer

Packet

Buffer

STATUS (TSV/RSV)

NEXT_ED

DATA_BUFF_ADDR

NPV = 1EOWN = 1 Byte Cnt EOPSOP

CHKSUM/STATUSSTATUS

STATUS (TSV/RSV)

NEXT_ED

DATA_BUFF_ADDR

NPV = 1EOWN = 1 Byte Cnt EOPSOP

CHKSUM/STATUSSTATUS

STATUS (TSV/RSV)

xxxxxxxxxxxxxxxxxxxxxxx

DATA_BUFF_ADDR

NPV = 1EOWN = 0 Byte Cnt EOPSOP

CHKSUM/STATUSSTATUS

STATUS (TSV/RSV)

NEXT_ED

DATA_BUFF_ADDR

NPV = 1EOWN = 1 Byte Cnt EOPSOP

CHKSUM/STATUSSTATUS

STATUS (TSV/RSV)

NEXT_ED

DATA_BUFF_ADDR

NPV = 1EOWN = 1 Byte Cnt EOPSOP

CHKSUM/STATUSSTATUS

STATUS (TSV/RSV)

NEXT_ED

DATA_BUFF_ADDR

NPV = 1EOWN = 1 Byte Cnt EOPSOP

CHKSUM/STATUSSTATUS

STATUS (TSV/RSV)

NEXT_ED

DATA_BUFF_ADDR

NPV = 1EOWN = 1 Byte Cnt EOPSOP

CHKSUM/STATUSSTATUS

DS61155B_JP - p.35-88 © 2014 Microchip Technology Inc.

Page 89: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

図 35-12: パケットあたり複数のディスクリプタを使う場合の Ethernet ディスクリプタ テーブル

TX/RX Start ADDR (SFR)

Data bytes 1-50

Data bytes 51-75

Type/Length (2 bytes)

Source Address (6 bytes)

Destination Address (6 bytes)

STATUS

NEXT_ED

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

EOWN BC = 25 SOP = 0 EOP = 1NPV = 1

STATUS

NEXT_ED

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

STATUS

NEXT_ED

STATUS CHECKSUM/STATUS

DATA_BUFF_ADDR

EDT

Pac

ket

to T

ran

smit

EOWN BC = 50 SOP = 0 EOP = 0NPV = 1

EOWN BC = 14 SOP = 1 EOP = 0NPV = 1

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-89

Page 90: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

35.4.10 Ethernet の初期化シーケンス

Ethernet コントローラを Ethernet メッセージの送受信のために初期化する場合、以下の手順を推奨します。

1. Ethernet コントローラの初期化 :a) ETHIE ビット (IEC1<28>) をクリアして、EVIC の Ethernet 割り込みを無効にします。

b) Ethernet コントローラを OFF にしてから、ON、RXEN、TXEN (ETHCON1<15>、 ETHCON1<8>、ETHCON1<9>) の各ビットをクリアします。

c) ETHBUSYビット (ETHSTAT<7>)をポーリングしてアクティビティの中止を待ちます。

d) 割り込みモジュール内の Ethernet 割り込みフラグ (ETHIF) ビット (IFS1<28>) をクリアします。

e) ETHIRQIE レジスタをクリアして、全ての Ethernet コントローラの割り込み生成を無効にします。

f) ETHTXSTCLR と ETHRXSTCLR が TX と RX の開始アドレスをクリアします。

2. MAC の初期化 :

a) SOFTRESET (EMAC1CFG1<15>) で MAC をリセットするか、RESETRMCS、 RESETRFUN、RESETTMCS、RESETTFUN ビット (EMAC1CFG1<11:8>) をセットしてモジュールを個別にリセットします。

b) コンフィグレーション ヒューズ設定 FETHIO ビット (DEVCFG3<25>) を使って、代 替 / 既定値の I/O 設定を検出します ( 詳細は『セクション 32 コンフィグレーション』 (DS61124) を参照してください )。

c) コンフィグレーション ヒューズ設定 FMIIEN (DEVCFG3<24>) を使って、MII/RMII 動 作モードを検出します。

d) MAC - PHY インターフェイスに使う全てのピンを適切にデジタルとして初期化します ( 通常、この設定は、アナログ機能と共有するピンだけに必要です )。

e) MIIM インターフェイスの初期化 :i. RMII 動作を選択する場合、RESETRMII (EMAC1SUPP<11>) ビットで RMII モ

ジュールをリセットし、SPEEDRMII (EMAC1SUPP<8>) ビットに適切な速度を 設定します。

ii. RESETMGMT (EMAC1MCFG<15>) ビットをセットして MIIM ブロックのリセッ トを実行後、リセットビットをクリアします。

iii. CLKSEL ビット (EMAC1CFG<5:2>) により、システムの動作クロック周波数と外部 PHY によってサポートされるクロックに基づき、MIIM PHY 通信用の適切な分 周回路を選択します。

3. PHY の初期化 :この手順は実際に使う PHY によって異なります。 全ての PHY は、IEEE 802.3 仕様、Clause 22 の表 22-6「MII 管理レジスタセット」に示された基本的なレジスタセットを実装する必要があります。

PHY は、基本的なレジスタセットに加えて、9 つのレジスタからなる拡張セットと、MIIMインターフェイスからのアクセスと制御が可能な機能を備えている場合があります。 これ らの機能は PHY 固有の識別子、自動ネゴシエーション プロセスの制御と監視等を提供し ます。

IEEE 802.3 仕様は、ベンダー固有の機能を実装するために、16 個の拡張レジスタを設け る余地を提供しています。

以下は、一般的な初期化手順のリストです。 ベンダー固有の PHY データシートを参照し て、必要に応じて調整してください。

a) PHY をリセットします ( 制御レジスタ 0 を使います )。b) MII/RMII の動作モードを設定します。 通常、これにはベンダー固有の制御レジスタへ

のアクセスが必要です。

c) MDIX を通常、スワップ、自動 ( 推奨 ) のどれかに設定します。 通常、これにはベン ダー固有の制御レジスタへのアクセスが必要です。

d) ステータス レジスタ 1 を調べて PHY の機能を確認します。

e) PHY がサポートしている場合、自動ネゴシエーションを選択する事を推奨します。 半 / 全二重、10BASE-T/100BASE-TX 等、サポートされる機能を公開します ( 拡張レジスタ 4)。 ネゴシエーションを開始し ( 制御レジスタ 0)、ネゴシエーションの完了を 待ち、リンクパートナーの機能 ( 拡張レジスタ 5) とネゴシエーション結果 ( ベンダー固有レジスタ ) を取得します。

f) 自動ネゴシエーションがサポートされていない場合、または選択しなかった場合はPHY の全 / 半二重設定と速度設定を直接更新します ( 制御レジスタ 0 と、おそらく複数のベンダー固有レジスタを使います )。

DS61155B_JP - p.35-90 © 2014 Microchip Technology Inc.

Page 91: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

4. MAC の設定 :

半/全二重と速度の設定を可能にした後、それに合わせてMACを以下の手順で設定します。

a) TXPAUSE と RXPAUSE ビット (EMAC1CFG1<3,2>) の両方を選択し (PIC32 の MACは両方をサポートします )、RXENABLE ビット (EMAC1CFG1<0>) を有効にします。

b) EMAC1CFG2 レジスタより、必要な自動パディングと CRC 機能を選択し、巨大フレームと半 / 全二重タイプの有効化を選択します。

c) EMAC1IPGT に連続パケット間ギャップをプログラムします。

d) EMAC1IPGR によって非連続パケット間ギャップを設定します。

e) EMAC1CLRT にコリジョン ウィンドウと再送信の 大回数を設定します。

f) EMAC1MAXF に 大フレーム長を設定します。

g) 必要に応じて、EMAC1SA0、EMAC1SA1、EMAC1SA2 レジスタにステーション MACアドレスを設定します ( リセット時に、これらのレジスタには工場出荷時にあらかじめプログラムされたステーション アドレスが読み込まれます )。

5. Ethernet コントローラ初期化の続き :

a) フロー制御を ON にする予定ならば、PTV の値 (ETHCON1<31:16>) を更新します。

b) 自動フロー制御を使う場合、フルとエンプティのウォーターマーク RXFWM と RXEWM(ETHRXWM<23:16> と ETHRXWM<7:0>) を設定します。

c) 必要に応じて、AUTOFC (ETHCON1<7>)をセットして自動フロー制御を有効にします。

d) ETHHT0、ETHHT1、ETHPMM0、ETHPMM1、ETHPMCS、ETHRXFC レジスタを更新して、RX フィルタを設定します。

e) RXBUFSZ ビット (ETHCON2<10:4>) で RX バッファのサイズを設定します ( 全ての受信ディスクリプタが同じバッファサイズを使います )。 過度に小さなパケットを使 うとパケット フラグメンテーションが発生し、性能が低下します。

f) 送信メッセージ用の TX ディスクリプタ リスト / リングを作成します。 TX ディスクリ プタ内の全てのフィールド (NPV、EOWN = 1、NEXT_ED) を適切に更新します ( 表 35-7「Ethernet コントローラ TX バッファ ディスクリプタのフォーマット」参照 )。 リ ストを使う場合、リストの 後にはソフトウェアが所有する (EOWN = 0) 適切なエン トリを設定します。

特定のメッセージの送信が必要になると、SOP、EOP、DATA_BUFFER_ADDRESS、BYTE_COUNTが更新されます。 DATA_BUFFER_ADDRESSはメッセージの物理ア ドレス、BYTE_COUNT はメッセージのサイズを含みます。 SOP と EOP はメッセー ジの送信に必要なパケット数に応じて設定されます。

g) 受信するメッセージ用の有効なバッファを設定した、RX ディスクリプタのリストを作成します。 RX ディスクリプタ内の NPV、EOWN = 1、DATA_BUFFER_ADDRESS フィールドを適切に更新します ( 表 35-8「Ethernet コントローラ RX バッファ ディス クリプタのフォーマット」参照 )。 DATA_BUFFER_ADDRESS には対応する RX バッ ファの物理アドレスを格納する必要があります。

h) RX/TX ディスクリプタと割り当て済みの RX バッファの実際の数は、実際に使えるシステムメモリと、目標とする Ethernet トラフィックの予測量と必要な処理量で決まります。

i) ETHTXST レジスタを、TX ディスクリプタ リストの先頭物理アドレスで更新します。

j) ETHRXST レジスタを、RX ディスクリプタ リストの先頭物理アドレスで更新します。

k) ON ビット (ETHCON1<15) をセットして、Ethernet コントローラを有効にします。

l) RXEN ビット (ETHCON1<8>) をセットしてメッセージの受信を有効にします。

m) RX ディスクリプタのリストを調べて、EOWN ビットがクリアされているかどうかを確認します。 クリアされている場合、ディスクリプタは現在ソフトウェアの制御下に あり、メッセージは受信されています。 SOP と EOP を使ってメッセージを抽出し、 BYTE_COUNT、RXF_RSV、RSV、PKT_CHECKSUM からメッセージの特性を取得します。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-91

Page 92: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

n) メッセージを送信するには :

i. 初にメッセージがEthernetフレーム仕様に従った適切なフォーマットである事を確認します。

ii. リストの先頭から順に、DATA_BUFFER_ADDRESS を送信メッセージ内の対応するバッファの物理アドレスに設定しながら、必要な数の TX ディスクリプタを更新します。

iii. パケット フラグメンテーションが大きいと性能が低下します。

iv. 各ディスクリプタのBYTE_COUNTを各バッファに含まれるバイト数で更新します。

v. パケットに属する各ディスクリプタに、EOWN = 1を設定します。

vi. SOP と EOP を使って、メッセージが TX ディスクリプタを使う事を指定します。

o) TXRTS ビット (ETHCON1<9>) をセットして、メッセージ送信を有効にします。

p) TX ディスクリプタのリストを調べて、EOWN ビットがクリアされているかどうかを確認します。 クリアされている場合、ディスクリプタは現在ソフトウェアの制御下に あり、メッセージは送信されています。 TSV を使って送信結果を確認します。

35.4.11 Ethernet 統計レジスタ

802.3 の層管理仕様に準拠するために、Ethernet コントローラはハードウェア内に各種の統計レジスタを実装しています。 これらのレジスタは、送受信されたパケット内で各種条件を検出 した時に、ハードウェアでインクリメントされます。 レジスタは 大値に達すると、次にインク リメントする際はオール 0 にロールオーバーします。 従って、データを失わないように、ソフト ウェアは適切なタイミングでこれらの値を読み出す必要があります。

ソフトウェアが読み出すと、対応するレジスタは自動的にクリアされます。

統計カウンタへは、SET、CLR、INV レジスタを使ってソフトウェアから書き込めます。 通常 のレジスタへの書き込みもサポートされています。 通常動作の場合、統計レジスタは周期的に 読み出し、Ethernet リンク トラフィックのデータを収集するためだけに使います。

35.4.11.1 ペイロード チェックサムの計算

Ethernet コントローラは全ての受信パケットに対して 16 ビットのパケット チェックサムを自 動的に求め、その 16 ビット値を、パケット ディスクリプタの PKT_CHECKSUM フィールド (RX_DCPT<96:111>) に受信パケット ステータスベクタと共に格納します。 このチェックサム は TCP/IP ソフトウェアの実装に役立ちます。

ペイロード チェックサムは 初の 14 バイト ( 宛先アドレス、送信元アドレス、長さ / タイプ フィールド ) を除く受信パケット全体にわたって求めます。 ソフトウェアが上記以外のバイト をチェックサムから除外する必要がある場合、値を減算する必要があります。

ペイロード チェックサムは、送信中のビット破損に対する基本的な保護のために使う簡易な チェックサムです。 代表的には、TCP/IP プロトコルの TCP および UDP パケットで使います。 チェックサムは、バイトストリームを 16 ビットワードに分割して、それらを合計する事で求めます。 オーバーフローも全て合計に足し戻されます。 チェックサム計算は、フレームの 初 の 14 バイトを受信した後に開始し、計算には FCS バイトを含めます。 結果は、求めた合計の 1 の補数です。

ペイロード チェックサムの計算例は、図 35-7 を参照してください。

Note 1: SET、CLR、INV 統計レジスタは、ソフトウェアのデバッグとテストをサポートする事のみを目的としたものです。

2: デバイスがスリープに移行するとシステムクロックが停止するため、統計レジスタの更新は一時停止します。 その唯一の例外がオーバーフローです。この場合、 オーバーフロー カウンタをインクリメントし、オーバーフロー フラグ RXOVFLW ビット (ETHIRQ<0>) をセットします。 これは、復帰した時点でソフトウェアにパ ケットが失われた事を知らせるためです。

3: 一部の統計カウンタは保留中のイベントのために、スリープが終了した時点でただちにインクリメントする場合があります。

DS61155B_JP - p.35-92 © 2014 Microchip Technology Inc.

Page 93: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.5 Ethernet 割り込み

PIC32にはEthernetコントローラのフレーム転送中に発生したイベントを反映して割り込みを生成する機能があります。 Ethernet コントローラの各割り込みイベントには、ETHIEN レジス タ内に対応する割り込みイネーブルビットがあります。割り込みを生成するには、これらをセットする必要があります。 しかし、ETHIEN レジスタの値に関わらず、全ての割り込みイベント のステータスは ETHIRQ レジスタを介して直接読み出せます。 従ってソフトウェアは、割り込 み生成の可能性があるイベントを、割り込みをモジュール外に伝搬させる事なく、レジスタのポーリングから知る事ができます。

Ethernet 割り込みは持続的です。 これは、割り込みを生成したイベントが保留されている限り、 Ethernetコントローラ モジュールからの割り込み信号はアサートされたままである事を意味し ます。

以下に、Ethernet フレームの送受信により生成される割り込みイベントを説明します。

送信パス関連の割り込みイベント :

• TX DMAエンジン転送エラー割り込みです。TXBUSEビット (ETHIRQ<14>)で示され、TXBUSEIE ビット (ETHIEN<14>)を使って有効にします。 このイベントは、メモリアクセス中にTX DMA がバスエラーに遭遇した場合に発生し、その原因はアドレッシング エラー ( 通常は不正なポ インタによる ) です。

• 送信完了割り込みです。TXDONEビット (ETHIRQ<3>)で示され、TXDONEIEビット (ETHIEN<3>)を使って有効にします。 このイベントは、現在の送信 TX パケットが送信を完了し、パケット の 初のディスクリプタに送信ステータスベクタが読み込まれた時点で発生します。

• 送信中止割り込みです。TXABORTビット (ETHIRQ<2>)で示され、TXABORTIEビット (ETHIEN<2>)を使って有効にします。 このイベントは、以下の原因のどれか 1 つによって MAC が送信を 中止した時に発生します。

- ジャンボ TX パケット中止 ( パケットのサイズが 大サイズビット MACMAXF(EMAC1MAXF<15:0>) よりも大きい場合 )

- アンダーラン中止 ( 送信エンジンが要求されたデータフローに追いつけなくなった場合。これは通常、システムバスが過負荷状態の時に発生します。)

- 遅延時間オーバー中止 (パケットの延期が100 Mbpsモードでは6071ニブル時間、10 Mbps モードでは 24,287 ビット時間を超えた場合 )

- 後期コリジョン中止 ( コリジョン ウィンドウを外れた位置でコリジョンが発生した場合 )

- 過度なコリジョン中止 ( コリジョン数が RETX ビット (EMAC1CLRT<3:0>) を超えたためにパケットが中止された場合 )

受信パス関連の割り込みイベント :

• RX DMAエンジン転送エラー割り込み。RXBUSEビット(ETHIRQ<13>)で示され、RXBUSEIE ビット (ETHIEN<13>) 使って有効にします。 このイベントは、メモリアクセス中に RX DMA がバスエラーに遭遇した場合に発生し、その原因はアドレッシング エラー ( 通常は不正なポ インタによる ) です。

• 受信完了割り込み。RXDONEビット(ETHIRQ<7>)で示され、RXDONEIEビット(ETHIEN<7>)を使って有効にします。 このイベントは、パケットの受信に成功すると常に発生します。

• パケット保留割り込み。PKTPEND ビット (ETHIRQ<6>) で示され、PKTPENDIE ビット(ETHIEN<6>) を使って有効にします。 このイベントはバッファカウンタ BUFCNT ビット (ETHSTAT<16:23>) の値が 0 より大きくなると常に生成されます。

• 受信アクティビティ割り込みです。RXACT ビット (ETHIRQ<5>) で示され、RXACTIE ビット(ETHIEN<5>) を使って有効にします。 このイベントは、RXBM FIFO に格納されたデータが あれば常に生成されます。

• 受信バッファ使用不可割り込みです。RXBUFNAビット (ETHIRQ<1>)で示され、RXBUFNAIEビット (ETHIEN<1>) を使って有効にします。 このイベントは、ハードウェアの所有ではない (EOWN = 0) ディスクリプタをフェッチする事で RX DMA のディスクリプタが不足すると常 に生成されます。

Note: 早期コリジョンの場合、MAC はリトライをアサートし、パケットを中止しません。従って、この条件は割り込みを生成しません。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-93

Page 94: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

• 受信 FIFO オーバーフロー エラー割り込みです。RXOVFLW ビット (ETHIRQ<0>) で示され、 RXOVFLIE ビット (ETHIEN<0>) を使って有効にします。 このイベントは、以下の原因のど れか 1 つにより RXBM が受信 FIFO からシステムメモリにデータを転送できず、内部 FIFOがオーバーフローすると常に発生します。

- システムレベルの遅延が長すぎる

- BUFCNT ビット (ETHSTAT<16:23>) が 大値に達した

- ハードウェア処理に使えるディスクリプタがない

• エンプティ ウォーターマーク割り込みです。EWMARK ビット (ETHIRQ<9>) で示され、 EWMARKIE ビット (ETHIEN<9>) を使って有効にします。 このイベントは、RX ディスクリプタ バッファ カウントの BUFCNT ビット (ETHSTAT<16:23>) が、RXEWMビット (ETHRXWM<0:7>) の値以下になると常に発生します。

• フル ウォーターマーク割り込みです。FWMARK ビット (ETHIRQ<8>) で示され、FWMARKIE ビット (ETHIEN<8>) を使って有効にします。 このイベントは、RX ディスクリプタ バッファ カウントの BUFCNT ビット (ETHSTAT<16:23>) が、RXFWM ビット (ETHRXWM<16:23>) の値以上になると常に発生します。

また、Ethernet 周辺モジュールの割り込みは、割り込みをクリアする方法と場所により 2 つのタイプに分けられます。 2 つのタイプとは、ソフトウェアでクリアされる割り込みイベントと、 ハードウェアでクリアされる割り込みイベントです。 全ての割り込みイベントは、デバイスリ セットでクリアされる事に注意してください。

ソフトウェアでクリアされるイベントは、ETHIRQCLR レジスタまたは ETHIRQ レジスタの対応するビットに直接書き込む事でクリアし、下記が該当します。

• TXBUSE

• RXBUSE

• RXDONE

• RXACT

• TXDONE

• TXABORT

• RXBUFNA

• RXOVFLW

ハードウェアでクリアされる割り込みイベントは、割り込みの要因となった条件を解消する事でクリアされ、下記が該当します。

• EWMARK - の割り込みは、RX パケットの受信に成功し、BUFCNT の値を RXEWM ビット(ETHRXWM<0:7>) の値より大きくすればクリアできます。

• FWMARK - この割り込みは、BUFCDEC ビット (ETHCON1<0>) に書き込む事で、バッファ ディスクリプタ カウント (BUFCNT) を RXFWM (ETHRXWM<16:23>) より小さな値になる までデクリメントすればクリアできます。

• PKTPEND - この割り込みは、BUFCNT (ETHSTAT<16:23>) が「0」になるまで BUFCDECビットに書き込む事でクリアできます。

Ethernet コントローラに属する全ての割り込みは、Ethernet 割り込みベクタに対応付けられます。

対応する Ethernet コントローラ割り込みフラグは ETHIF (IFS1<28>) です。 この割り込みフラ グは、割り込みの生成原因の処理が完了した時点でソフトウェアでクリアする必要があります。

Ethernet コントローラは、対応する Ethernet コントローラ割り込みイネーブルビット ETHIE(IEC1<28>) により、割り込み要因として有効になります。

以下の割り込みの優先度レベルビットと、割り込みの副優先度レベルビットも設定する必要があります。

• ETHIP<2:0> (IPC12<4:2>)

• ETHIS<1:0> (IPC12<1:0>)

Note: IFSx、IECx、IPCx 割り込みビットの詳細な説明は、『Section 8. Interrupts』(DS61108) を参照してください。

DS61155B_JP - p.35-94 © 2014 Microchip Technology Inc.

Page 95: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.5.1 割り込みの設定

Ethernet コントローラ モジュールには、複数の内部割り込みフラグ (TXBUSE、RXBUSE、 EWMARK、FWMARK、RXDONE、PKTPEND、RXACT、TXDONE、TXABORT、RXBUFNA、RXOVFLW)と、対応する割り込み制御イネーブルビット(TXBUSEIE、RXBUSEIE、EWMARKIE、FWMARKIE、RXDONEIE、PKTPENDIE、RXACTIE、TXDONEIE、TXABORTIE、RXBUFNAIE、RXOVFLIE) があります。 しかし、割り込みコントローラには、Ethernet コントローラ専用の割り 込みフラグビットが 1 つしかありません。 ETHIF (IFS1<28>) と対応する割り込みイネーブル / マ スクビットの ETHIE (IEC1<28>) です。

Ethernet コントローラ モジュールには他の周辺モジュールから独立した、固有の優先度レベル と副優先度レベルがあります。 ETHIF ビットは、対応するイネーブルビット ETHIE の状態に関 係なくセットされる事に注意してください。 ETHIF ビットは必要に応じてソフトウェアでポー リングできます。

ETHIE ビットは、対応する ETHIF ビットがセットされている場合のベクタ割り込みコントローラ (INT) モジュールの挙動を定義するために使います。 対応する ETHIE ビットがクリアされて いる場合、割り込みモジュールはイベントに対して CPU 割り込みを生成しません。 ETHIE ビッ トがセットされている場合、ETHIF ビットがセットされると割り込みモジュールは CPU に対して割り込みを生成します ( 後述の優先度と副優先度が適用されます )。

特定の割り込みを処理するユーザ ソフトウェアは、サービスルーチンが完了する前に割り込み フラグビットをクリアする必要があります。

Ethernet コントローラ モジュールの割り込みの優先度は、INT コントローラの IPC12 レジスタ で設定できます。 この優先度は、割り込み要因を割り当てる優先度のグループを定義します。 各 優先度グループは 7 ( 優先 ) から 0 ( 割り込みを生成しない ) の優先度を持ちます。 ある割り 込みを処理中に、より高い優先度グループに属する割り込みが発生した場合、処理中の割り込みは保留されます。

副優先度ビットを使うと、同一優先度グループに属する割り込み要因に、異なる優先度を設定できます。 副優先度の値のレンジは、3 ( 優先 ) から 0 ( 低優先度 ) です。 同じ優先度グルー プに属していて副優先度が高い割り込みは、それより副優先度が低い処理中の割り込みを保留する事はありません。

優先度グループと副優先度ビットを使うと、複数の割り込み要因に同一の優先度と副優先度を

割り当てる事ができます。 そのように設定した複数の割り込みが同時に発生した場合、優先度 /副優先度グループのペアの中でのそれらの割り込み要因が持つ自然順序優先度によって、生成される割り込みが決まります。

自然順序優先度は、割り込み要因のベクタ番号に基づきます。 ベクタ番号が小さいほど、割り 込みの自然順序優先度は高いです。 自然順序優先度に従って保留された割り込みは、現在の割 り込みの割り込みフラグがクリアされた後に、優先度、副優先度、自然順序優先度に基づいて、それぞれの割り込みを生成します。

有効な割り込みが発生すると、CPU はその割り込みに割り当てられているベクタへジャンプします。 割り込みのベクタ番号は、自然順序番号と同じです。 CPU はベクタアドレスからコード の実行を始めます。 このベクタアドレスにあるユーザコードは、何らかのアプリケーション固 有動作を実行し、ETHIF 割り込みフラグをクリア ( ソフトウェアでクリアできる割り込みの場 合は ETHIRQ レジスタの対応するイベントもクリア ) してから、終了する必要があります。

詳細は、『セクション 8 割り込み』(DS61108) の詳細なベクタアドレスの表を参照してください。

表 35-9: EBASE = 0x8000:0000 の場合の各種オフセットに対する Ethernet 割り込みベクタ

Note: Ethernet コントローラ モジュールの割り込み条件は、全てがただ 1 つの割り込み ベクタを共有します。

割り込みベクタ /自然順序

IRQ 番号

ベクタアドレスIntCtl.VS= 0x01

ベクタアドレスIntCtl.VS= 0x02

ベクタアドレスIntCtl.VS= 0x04

ベクタアドレスIntCtl.VS= 0x08

ベクタアドレスIntCtl.VS= 0x10

ETH 48 60 8000 0800 8000 0e00 8000 1a00 8000 3200 8000 6200

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-95

Page 96: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

例 35-6: 割り込みを有効にした Ethernet 初期化のコード

例 35-7: Ethernet コントローラの ISR のコード

// this code example assumes that the system vectored interrupts are properly configured#include <p32xxxx.h>

IEC1CLR =0x10000000; // disable Ethernet interrupts

ETHCON1CLR=0x00008300; // reset: disable ON, clear TXRTS, RXEN

while(ETHSTAT&0x80); // wait everything down

IFS1CLR=0x10000000; // clear the interrupt controller flagETHIENCLR=0x000063ef; // disable all eventsETHIRQCLR=0x000063ef; // clear any existing interrupt event

ETHCON1SET=0x00008000; // turn device ON/*Init the MACInit the PHYInit RX FilteringInit Flow Control*/

ETHIENSET=0x0000400c; // enable the TXBUSE, TXDONE// and TXABORT interrupt events

IPC12CLR = 0x0000001f; // clear the Ethernet Controller priority and sub-priorityIPC12SET = 0x00000016; // set IPL 5, sub-priority 2IEC1SET=0x10000000; // enable the Ethernet Controller interrupt

// start transmit packets// whenever a packet completes transmission or an transmission error occurs// an interrupt will be generated

/*The following code example demonstrates a simple Interrupt Service Routine for Ethernet Controller interrupts. The user’s code at this vector should perform any application specific operations and must clear the Ethernet Controller interrupt flags before exiting.*/

#include <p32xxxx.h>void __ISR(_ETH_VECTOR, IPL5) __EthInterrupt(void){

int ethFlags=ETHIRQ; // read the interrupt flags (requests)

// the sooner we acknowledge, the smaller the chance to miss another event of the// same type because of a lengthy ISRETHIRQCLR= ethFlags; // acknowledge the interrupt flags

/*perform application specific operations in responseto any interrupt flag set in ethFlags*/

IFS1CLR= 0x10000000; // Be sure to clear the Ethernet Controller Interrupt// Controller flag before exiting the service routine.

}

Note: Ethernet コントローラの ISR のサンプルコードは MPLAB C32 C compiler 固有の 構文を使っています。 ISR のサポートに関しては、お使いになるコンパイラのマ ニュアルを参照してください。

DS61155B_JP - p.35-96 © 2014 Microchip Technology Inc.

Page 97: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.5.2 外部 PHY 割り込み

PHY の中には特定のイベントが発生した場合に割り込み信号を生成する機能を提供しているものがあります。 PHY 割り込みは、通常以下のタイプのイベント / 状態に対してアサートされ ます。

• エネルギの検出

• 省電力モードの終了

• 自動ネゴシエーションの完了

• リモート故障の検出

• リンクの遮断

• 自動ネゴシエーションの LP 肯定応答

• 並列検出の障害

• 自動ネゴシエーション ページの受信

割り込みを生成するイベントの詳細は、PHY ベンダーのデータシートを参照してください。

PIC32 が割り込みを認識し、これに応答する必要がある場合、PHY の割り込み信号を PIC32 の外部割り込みピンに接続する必要があります。 この割り込みはEthernetコントローラ モジュー ルを経由しません。

ソフトウェアは MAC の MIIM レジスタを介して PHY 内のレジスタに書き込む事で、PHY が生成した割り込みイベントをクリアする必要があります。 その場合、PHY 割り込みは ETHIRQ レ ジスタでは直接クリアできない、ソフトウェアでのみクリア可能な割り込みである事に注意します。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-97

Page 98: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

35.6 省電力モードとデバッグモードの動作

35.6.1 スリープ中の Ethernet の動作

PIC32 がスリープに移行するとシステムクロックは停止します。 このモードでは Ethernet 転送 を実行できません。 Ethernet コントローラ モジュールでは全てのクロックが停止します。ただ し、外部の MII RX_CLK 信号と TX_CLK 信号、または RMII モードで動作中ならば REF_CLK を除きます。 Ethernet コントローラ モジュールは非同期の復帰イベントに対応したスリープに 移行します。

Ethernet コントローラがアクティブな転送を実行している間にユーザ アプリケーションがス リープに移行すると、コントローラはクロック実行が再開するまで現在の状態を保留します。この状態は、予期せぬピンタイミングを発生させる可能性があるため、ソフトウェアで回避する必要があります。

どの時点で、Ethernet コントローラが安全にスリープに移行できるリンク状態になるかは、ソフトウェアで判断する必要があります。 デバイスをスリープに移行させるために CPU の WAIT 命令実行を使うのは、以下の 2 つの場合にしか推奨できません。

• Ethernet コントローラが無効な場合

• Ethernet コントローラが TX パケットを保留中ではなく、到達した RX パケットを全て処理済みの場合

バス上で送信トランザクションを実行している間にEthernetコントローラをスリープに移行すると、Ethernet デバイスが不適切な挙動を示す可能性があり、これはパケットの欠落とリンク接続の遮断を招く恐れがあります。

デバイスが安全にスリープに移行した後は、非同期のイベントが発生した時点で Ethernet コントローラが復帰割り込みを生成します。

35.6.2 アイドル中の Ethernet の動作

デバイスがアイドルに移行しても、システムクロック源は機能しつづけます。 SIDL ビット (ETHCON1<13>) は、アイドル中に Ethernet コントローラが停止するか、機能しつづけるかを選択します。

• SIDL = 0の場合、Ethernet コントローラはアイドル中に通常動作を続け、クロックは動作を 続けます。

• SIDL = 1の場合、Ethernet コントローラはアイドル中に動作を停止します。 Ethernet コント ローラはクロック (RX_CLK、TXCLK、REF_CLK を除く ) を停止して消費電力を減らします。Ethernetコントローラをアイドル時に停止させる場合、その挙動はスリープの場合と同じです。

35.6.3 Wake-On-LAN (WOL) の動作

Ethernet コントローラは、固有の WOL 機能を実装していません。 その代わりに、RX フィルタ を適切に設定し、RXDONE ビット (ETHIRQ<7>) 割り込みを有効にして、受信パケットを許可した時にこのシステムを復帰させる事で WOL 機能を実装しています。 これには通常 Magic Packet フィルタを使います。

システムがスリープ中または低速クロックモードの場合、ソフトウェアは RXACT ビット(ETHIRQ<5>) 割り込みを有効にできます。 これにより、デバイスが低消費電力モードの場合、 受信バッファのオーバーフローを防止できます。

RXACT を使ってシステムをスリープまたはアイドルから復帰させる場合 ( かつ、SIDL ビット(ETHCON1<13>) セット時 ) は、特別な注意が必要です。

例 35-8 に、システムをスリープまたはアイドルに移行するための命令シーケンスを示します。

Note: Ethernetコントローラは、SIDL = 1 (ETHCON1<13>)に設定したアイドルをスリー プと同様に扱います。 従って、スリープと同じ制約が適用されます。

DS61155B_JP - p.35-98 © 2014 Microchip Technology Inc.

Page 99: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

例 35-8: Ethernet コントローラによるシステムの復帰

このような状況における復帰 ISR の例を例 35-9 に示します。

例 35-9: RXACT ISR による Ethernet コントローラの復帰

/*The following code example illustrates a simple sequence of instructions to put the system into Sleep or Idle state so that the incoming Ethernet activity, signaled by RXACT, is used to wake-up the system. It assumes that either the Sleep state is enabled or, if the Idle state is enabled, the Ethernet Controller SIDL bit is set.*/#include <p32xxxx.h>

if(want_to_sleep){

ETHIRQCLR = 0x20; // clear RXACT flagETHIENSET = 0x20; // enable RXACT interruptasm(“wait”); // go to Sleep/Idle

}

/*The following code example demonstrates a simple Interrupt Service Routine for Ethernet Controller interrupts. The user’s code at this vector should perform any application specific operations and must clear the Ethernet Controller interrupt flags before exiting.*/#include <p32xxxx.h>

void __ISR(_ETH_VECTOR, IPL5) __EthInterrupt(void){int ethFlags=ETHIRQ; // read the interrupt flags (requests)

ethFlags =ETHIRQ;if(ethFlags &0x20){ // RXACT interrupt

ETHIENCLR = 0x20; // disable further RXACT interruptsETHCON1CLR= 0x2000; // disable SIDL

// suspend any activity in your system that could interfere// with the critical system unlock sequence such as:// disable higher priority interrupts, DMA transfers, etc.// now unlock the system

SYSKEY = 0, SYSKEY = 0xAA996655, SYSKEY = 0x556699AA;OSCCONCLR = 0x10; // disable SLEEP mode, enable IDLESYSKEY = 0x33333333; // relock the system

// resume the activity previously stopped: re-enable interrupts,// DMA, etc.

}

/*perform other application specific operations in responseto other interrupt flag set in ethFlags*/

ETHIRQCLR= ethFlags; // acknowledge the interrupt flags

IFS1CLR= 0x10000000; // clear the Ethernet Controller Interrupt Controller// flag before exiting the service routine.

}

Note: Ethernet コントローラの ISR のサンプルコードは MPLAB C32 C compiler 固有の 構文を使っています。 ISR のサポートに関しては、お使いになるコンパイラのマ ニュアルを参照してください。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-99

Page 100: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

この ISR では、さらに RXACT 割り込みが発生しないように無効化する必要があります。その理由は、Ethernet コントローラによる割り込み要求の生成方法にあります。Ethernet コントローラでは、RX FIFO 内にデータが存在する限り割り込み要求をアクティブなままに保つから です。 このような措置を講じないと、制御が継続して ISR に戻り、プログラム実行は先に進み ません。

しかし、単純に RXACT 割り込みを無効にするだけでなく、その他の処置も必要です。 すなわ ち、スリープを無効に、アイドルを有効にして Ethernet コントローラを確実に有効にします(SIDL = 0)。 これは、RXACT を有効にした直後、例 35-9 のメインループ内にある WAIT命令実 行の直前に RXACT 割り込みを受け付ける状況を防ぐために必要です。

WAIT命令を呼び出す直前にアクティビティを受信すると、ISR は RX アクティビティ割り込みを無効化し、ISR から戻るとメインループが WAIT命令を実行します。 この時点で §Ethernet コ ントローラはデバイスを復帰させられません。

これを避ける方法は、ISR によってスリープを無効化し、Ethernet SIDL ビットをクリアして、 Ethernet コントローラがスリープに移行しないようにします。

RXACT 割り込みを無効にした後は、別の Ethernet 割り込みを有効にする必要がある事に注意します。 通常、この目的に も適した割り込みの候補は RXDONE ビットです。

DS61155B_JP - p.35-100 © 2014 Microchip Technology Inc.

Page 101: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.7 各種リセットの影響

35.7.1 デバイスリセット

全ての Ethernet レジスタは、デバイスリセット時にそれぞれのリセット状態に戻されます。 非 同期のリセット入力がアクティブになると、Ethernet ロジックは以下を実行します。

• SFR (ETHCON1、ETHCON2、ETHSTAT 等 ) 内の全フィールドをリセットする

• ステーション アドレスを格納する EMAC1SA0、EMACSA1、EMACSA2 レジスタに、工場出荷時にプログラム済みのステーション アドレスを読み込む

• TX と RX DMA エンジンをリセットし、対応する FIFO をエンプティ状態にする

• 実行中のデータ転送を全て中止する

35.7.2 パワーオン リセット

全ての Ethernet コントローラ レジスタは、パワーオン リセット時にそれぞれのリセット状態 に戻されます。

35.7.3 ウォッチドッグ タイマ リセット

全ての Ethernet コントローラ レジスタは、ウォッチドッグ タイマリセット時にそれぞれのリ セット状態に戻されます。

35.8 I/O ピンの制御

Ethernet コントローラを有効にすると、I/O ピンは Ethernet コントローラの制御ビットで定義した方向 ( 表 35-10 参照 ) に設定されます。 この設定は、ポートの TRIS と LATCH レジスタよ りも優先されます。

表 35-10: Ethernet コントローラで適用される I/O ピンの設定 (1)

I/O ピン名MII の要否

RMII の要否

モジュール制御

TRIS(2) ピンタイプ

説明

EMDC 要 要 ON X O Ethernet MII 管理クロック

EMDIO 要 要 ON X I/O Ethernet MII 管理 IO

ETXCLK 要 不要 ON X I Ethernet MII TX クロック

ETXEN 要 要 ON X O Ethernet 送信イネーブル

ETXD0 要 要 ON X O Ethernet データ送信 0

ETXD1 要 要 ON X O Ethernet データ送信 1

ETXD2 要 不要 ON X O Ethernet データ送信 2

ETXD3 要 不要 ON X O Ethernet データ送信 3

ETXERR 要 不要 ON X O Ethernet 送信エラー

ERXCLK 要 不要 ON X I Ethernet MII RX クロック

EREF_CLK 不要 要 ON X I Ethernet RMII 参照クロック

ERXDV 要 不要 ON X I Ethernet MII 受信データ有効

ECRS_DV 不要 要 ON X I Ethernet RMII キャリア検出 / 受信データ有効

ERXD0 要 要 ON X I Ethernet データ受信 0

ERXD1 要 要 ON X I Ethernet データ受信 1

ERXD2 要 不要 ON X I Ethernet データ受信 2

ERXD3 要 不要 ON X I Ethernet データ受信 3

ERXERR 要 要 ON X I Ethernet 受信エラー

ECRS 要 不要 ON X I Ethernet キャリア検出

ECOL 要 不要 ON X I Ethernet コリジョン検出

Note 1: 選択したインターフェイスでは未使用であるが他の周辺モジュールで使える Ethernet コントローラピン

2: TRIS ビットの設定は無関係です。 しかし、ピンをアナログ入力と共有している場合、AD1PCFG レジスタと対応する TRIS レジスタにより、このピンをデジタルとして適切に設定する必要があります。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-101

Page 102: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

35.9 関連アプリケーション ノート

マニュアルの本セクションに関連するアプリケーション ノートの一覧を以下に記載します。 一 部のアプリケーション ノートは PIC32 ファミリ向けではありません。ただし、概念は共通し ており、変更が必要であったり制限事項が存在したりするものの利用が可能です。 Ethernet コ ントローラ モジュールに関連する 新のアプリケーション ノートは下記の通りです。

タイトル アプリケーション ノート番号

Ethernet Theory of Operation AN1120

Note: PIC32 ファミリに関するこの他のアプリケーション ノートとサンプルコードは、 Microchip 社のウェブサイト (www.microchip.com) をご覧ください。

DS61155B_JP - p.35-102 © 2014 Microchip Technology Inc.

Page 103: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

セクション 35. Ethernet コントローラ E

thern

etコント

ローラ

35

35.10 改訂履歴

リビジョン A (2009 年 8 月 )

本書の初版です。

リビジョン B (2011 年 10 月 )

このリビジョンでの変更内容は以下の通りです。

• 補足文書に関する情報を記載した注釈を本書の冒頭に追加しました。

• 本書のヘッダを「PIC32MX ファミリ リファレンス マニュアル」から「PIC32 ファミリ リファレンス マニュアル」に変更しました。

•「PIC32MX」を全て「PIC32」に変更しました。

•「MACx」を全て「MAC1」に更新しました。

•「SCLK」を全て「SYSCLK」に変更しました。

• 表 35-4 と表 35-5 の信号名の列を更新し、IEEE 802.3 信号の列を新たに追加しました。

• 図 35-4 と図 35-5 の信号名を更新しました。

• 表 35-10 に、選択したインターフェイスでは未使用であるものの他の周辺モジュールで使える Ethernet コントローラピンである事を示す Note を追加しました。

• 以下のクリア、セット、反転レジスタに関する説明を削除しました。

- RCONCLR: リセット制御クリアレジスタ

- RCONSET: リセット制御セットレジスタ

- RONINV: リセット制御反転レジスタ

- RSWRSTCLR: ソフトウェア リセット クリアレジスタ

- RSWRSTSET: ソフトウェア リセット セットレジスタ

- RSWRSTINV: ソフトウェア リセット反転レジスタ

• レジスタ 35-1 とレジスタ 35-39 内の「r-x」ビットを全て「U-0」ビットに更新しました。

• 表現と体裁の変更等、本書全体の細部を修正しました。

© 2014 Microchip Technology Inc. DS61155B_JP - p.35-103

Page 104: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

PIC32 ファミリ リファレンス マニュアル

NOTES:

DS61155B_JP - p.35-104 © 2014 Microchip Technology Inc.

Page 105: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

Microchip 社製デバイスのコード保護機能に関して以下の点にご注意ください。

• Microchip 社製品は、該当する Microchip 社データシートに記載の仕様を満たしています。

• Microchip 社では、通常の条件ならびに仕様に従って使用した場合、Microchip 社製品のセキュリティ レベルは、現在市場に

流通している同種製品の中でも も高度であると考えています。

• しかし、コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です。弊社の理解では、こうした手法

は Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事になります。このような行為は知

的所有権の侵害に該当する可能性が非常に高いと言えます。

• Microchip 社は、コードの保全性に懸念を抱いているお客様と連携し、対応策に取り組んでいきます。

• Microchip 社を含む全ての半導体メーカーで、自社のコードのセキュリティを完全に保証できる企業はありません。コード保

護機能とは、Microchip 社が製品を「解読不能」として保証するものではありません。

コード保護機能は常に進歩しています。Microchip 社では、常に製品のコード保護機能の改善に取り組んでいます。Microchip 社の

コード保護機能の侵害は、デジタル ミレニアム著作権法に違反します。そのような行為によってソフトウェアまたはその他の著作

物に不正なアクセスを受けた場合、デジタル ミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります。

本書に記載されているデバイス アプリケーション等に関する

情報は、ユーザの便宜のためにのみ提供されているものであ

り、更新によって無効とされる事があります。お客様のアプ

リケーションが仕様を満たす事を保証する責任は、お客様に

あります。Microchip 社は、明示的、暗黙的、書面、口頭、法

定のいずれであるかを問わず、本書に記載されている情報に

関して、状態、品質、性能、商品性、特定目的への適合性を

はじめとする、いかなる類の表明も保証も行いません。

Microchip 社は、本書の情報およびその使用に起因する一切の

責任を否認します。生命維持装置あるいは生命安全用途に

Microchip 社の製品を使用する事は全て購入者のリスクとし、

また購入者はこれによって発生したあらゆる損害、クレーム、

訴訟、費用に関して、Microchip 社は擁護され、免責され、損

害を受けない事に同意するものとします。暗黙的あるいは明

示的を問わず、Microchip 社が知的財産権を保有しているライ

センスは一切譲渡されません。

2014 Microchip Technology Inc.

商標

Microchip 社の名称とロゴ、Microchipロゴ、dsPIC、FlashFlex、KEELOQ、KEELOQ ロゴ、MPLAB、PIC、PICmicro、PICSTART、PIC32 ロゴ、rfPIC、SST、SST ロゴ、SuperFlash、UNI/O は、米

国およびその他の国におけるMicrochip Technology Incorporated の登録商標です。

FilterLab、Hampshire、HI-TECH C、Linear Active Thermistor、 MTP、SEEVAL、Embedded Control Solutions Company は、

米国におけるMicrochip Technology Incorporatedの登録商標

です。

Silicon Storage Technology は、他の国における Microchip Technology Inc. の登録商標です。

Analog-for-the-Digital Age、Application Maestro、BodyCom、

chipKIT、chipKIT ロゴ、CodeGuard、dsPICDEM、dsPICDEM.net、dsPICworks、dsSPEAK、ECAN、ECONOMONITOR、

FanSense、HI-TIDE、In-Circuit Serial Programming、ICSP、 Mindi、MiWi、MPASM、MPF、MPLAB Certified ロゴ、MPLIB、 MPLINK、mTouch、Omniscient Code Generation、PICC、

PICC-18、PICDEM、PICDEM.net、PICkit、PICtail、REAL ICE、 rfLAB、Select Mode、SQl、Serial Quad I/O、Total Endurance、 TSHARC、UniWinDriver、WiperLock、ZENA および Z-Scaleは、米国およびその他の Microchip Technology Incorporated の商標です。

SQTP は、米国における Microchip Technology Incorporated のサービスマークです。

GestIC および ULPP は、Microchip Technology Inc. の子会社

である Microchip Technology Germany II GmbH & Co. & KG 社

の他の国における登録商標です。

その他、本書に記載されている商標は各社に帰属します。

© 2014, Microchip Technology Incorporated, All Rights Reserved.

ISBN: 978-1-62077-307-9

DS61155B_JP - p.35-105

Microchip 社では、Chandler および Tempe ( アリゾナ州 )、Gresham ( オレゴン州 ) の本部、設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949:2009 認証を取得しています。Microchip 社の品質システム プロセスおよび手順は、PIC® MCU および dsPIC® DSC、KEELOQ® コード ホッピング デバイス、シリアル EEPROM、マイクロペリフェラル、不揮発性メモリ、アナログ製品に採用されています。さらに、開発システムの設計と製造に関する Microchip 社の品質システムは ISO 9001:2000 認証を取得しています。

Page 106: セクション 35. Ethernet コントローラww1.microchip.com/downloads/jp/DeviceDoc/61155B_JP.pdf本書の内容がお客様のお使いになるデバイスに対応しているかどうかは、最新デ

DS61155B_JP - p.35-106 2014 Microchip Technology Inc.

北米本社2355 West Chandler Blvd.Chandler, AZ 85224-6199Tel: 480-792-7200 Fax: 480-792-7277技術サポート : http://www.microchip.com/supportURL: www.microchip.com

アトランタDuluth, GA Tel: 678-957-9614 Fax: 678-957-1455

オースティン、TXTel: 512-257-3370

ボストンWestborough, MATel: 774-760-0087 Fax: 774-760-0088

シカゴItasca, ILTel: 630-285-0071 Fax: 630-285-0075

クリーブランドIndependence, OHTel: 216-447-0464Fax: 216-447-0643

ダラスAddison, TXTel: 972-818-7423 Fax: 972-818-2924

デトロイトNovi, MI Tel: 248-848-4000

ヒューストン、TXTel: 281-894-5983

インディアナポリスNoblesville, INTel: 317-773-8323Fax: 317-773-5453

ロサンゼルスMission Viejo, CATel: 949-462-9523 Fax: 949-462-9608

ニューヨーク、NY Tel: 631-435-6000

サンノゼ、CATel: 408-735-9110

カナダ - トロント

Tel: 905-673-0699 Fax: 905-673-6509

アジア / 太平洋アジア太平洋支社Suites 3707-14, 37th FloorTower 6, The GatewayHarbour City, KowloonHong KongTel: 852-2401-1200Fax: 852-2401-3431

オーストラリア - シドニー

Tel: 61-2-9868-6733Fax: 61-2-9868-6755

中国 - 北京

Tel: 86-10-8569-7000Fax: 86-10-8528-2104

中国 - 成都

Tel: 86-28-8665-5511Fax: 86-28-8665-7889

中国 - 重慶

Tel: 86-23-8980-9588Fax: 86-23-8980-9500

中国 - 杭州

Tel: 86-571-2819-3187Fax: 86-571-2819-3189

中国 - 香港 SARTel: 852-2943-5100 Fax: 852-2401-3431

中国 - 南京

Tel: 86-25-8473-2460Fax: 86-25-8473-2470

中国 - 青島

Tel: 86-532-8502-7355Fax: 86-532-8502-7205

中国 - 上海

Tel: 86-21-5407-5533Fax: 86-21-5407-5066

中国 - 瀋陽

Tel: 86-24-2334-2829Fax: 86-24-2334-2393

中国 - 深圳

Tel: 86-755-8864-2200 Fax: 86-755-8203-1760

中国 - 武漢

Tel: 86-27-5980-5300Fax: 86-27-5980-5118

中国 - 西安

Tel: 86-29-8833-7252Fax: 86-29-8833-7256

中国 - 厦門

Tel: 86-592-2388138 Fax: 86-592-2388130

中国 - 珠海

Tel: 86-756-3210040 Fax: 86-756-3210049

アジア / 太平洋インド - バンガロール

Tel: 91-80-3090-4444 Fax: 91-80-3090-4123

インド - ニューデリー

Tel: 91-11-4160-8631Fax: 91-11-4160-8632

インド - プネ

Tel: 91-20-3019-1500

日本 - 大阪

Tel: 81-6-6152-7160Fax: 81-6-6152-9310

日本 - 東京

Tel: 81-3-6880-3770 Fax: 81-3-6880-3771

韓国 - 大邱

Tel: 82-53-744-4301Fax: 82-53-744-4302

韓国 - ソウル

Tel: 82-2-554-7200Fax: 82-2-558-5932 または

82-2-558-5934

マレーシア - クアラルンプール

Tel: 60-3-6201-9857Fax: 60-3-6201-9859

マレーシア - ペナン

Tel: 60-4-227-8870Fax: 60-4-227-4068

フィリピン - マニラ

Tel: 63-2-634-9065Fax: 63-2-634-9069

シンガポールTel: 65-6334-8870Fax: 65-6334-8850

台湾 - 新竹

Tel: 886-3-5778-366Fax: 886-3-5770-955

台湾 - 高雄

Tel: 886-7-213-7830

台湾 - 台北

Tel: 886-2-2508-8600 Fax: 886-2-2508-0102

タイ - バンコク

Tel: 66-2-694-1351Fax: 66-2-694-1350

ヨーロッパオーストリア - ヴェルス

Tel: 43-7242-2244-39Fax: 43-7242-2244-393

デンマーク - コペンハーゲン

Tel: 45-4450-2828 Fax: 45-4485-2829

フランス - パリ

Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79

ドイツ - デュッセルドルフ

Tel: 49-2129-3766400

ドイツ - ミュンヘン

Tel: 49-89-627-144-0 Fax: 49-89-627-144-44

ドイツ - プフォルツハイム

Tel: 49-7231-424750

イタリア - ミラノ Tel: 39-0331-742611 Fax: 39-0331-466781

イタリア - ヴェニス

Tel: 39-049-7625286

オランダ - ドリューネン

Tel: 31-416-690399 Fax: 31-416-690340

ポーランド - ワルシャワ

Tel: 48-22-3325737

スペイン - マドリッド

Tel: 34-91-708-08-90Fax: 34-91-708-08-91

スウェーデン - ストックホルム

Tel: 46-8-5090-4654

イギリス - ウォーキンガム

Tel: 44-118-921-5800Fax: 44-118-921-5820

各国の営業所とサービス

10/28/13