Ping-Pong バッファーを使用した送信のソフトウェア シーケンス - 3.0 日本語

AXI Ethernet Lite MAC v3.0 LogiCORE IP 製品ガイド (PG135)

Document ID
PG135
Release Date
2015-11-18
Version
3.0 日本語

[Number of Transmit Buffers] を 1 に設定した場合、送信データ用のメモリ バッファーが 2 つ用意されます。元の Ping 送信バッファーは同じメモリ アドレスのままで、グローバル割り込みイネーブルを制御します。もう 1 つの Pong バッファーはアドレス 0x0800 ~ 0x0FFC にマップされます。送信長とステータス ビットの使用法は Ping バッファーと Pong バッファーでです。Pong バッファーの I ビットおよびグローバル割り込みイネーブル (GIE) ビットは使用しません。これらのビットは Ping バッファーの設定で両バッファーを制御します。イーサネット MAC アドレスは Pong バッファーからも設定できます。リセット後、トランスミッターは常に Ping バッファーの内容から先に送信します。次に、Pong バッファーに送信データが格納されていれば Pong バッファーからの送信が実行されます。Pong バッファーに送信データが格納されていない場合、AXI Ethernet Lite MAC コアは Ping バッファーと Pong バッファーの両方を監視し、先に送信データが格納された方から送信を実行します。

Ping バッファーと Pong バッファーを使用した送信を開始するためのソフトウェア シーケンスは次のとおりです。

ソフトウェアで、送信データをデュアル ポート メモリのアドレス 0x0 から順に格納します。

ソフトウェアで、送信データ長さをデュアル ポート メモリのアドレス 0x07F4 に書き込みます。

ソフトウェアで、アドレス 0x07FC のステータス ビット (データ バスのビット [0]) に 1 を書き込みます。

Pong バッファー (0x0800 ~ 0x0FFC) には、ソフトウェアでいつでも書き込みを実行できます。

ソフトウェアで Ping バッファーのステータス ビットを監視して 0 にセットされるのを待つか、送信完了割り込みが発生するのを待ってから Ping バッファーに再びデータを書き込みます。

送信割り込みとグローバル割り込みの両方が有効な場合、AXI Ethernet Lite MAC コアがステータス ビットをクリアすると割り込みが発生します。

送信割り込みが有効な場合、イーサネット MAC アドレス書き込み完了時にも割り込みが発生します。

ステータス ビットを 1 にセットすると、AXI Ethernet Lite MAC コアのトランスミッターは次を実行します。

プリアンブルと SDF フィールドを生成します。

長さを読み出し、その値で示された長さのデータをデュアル ポート メモリから読み出し、必要に応じてパディングを追加します。

衝突が発生した場合は検出し、必要に応じてジャミング、バックオフ、再送を実行します。

CRC を計算してデータの末尾に付加します。

送信が完了したらステータス ビットをクリアします。

送信完了割り込みが有効な場合、ステータス ビットをクリアすると割り込みが発生します。

Pong バッファーに送信データが格納されていればハードウェアによって送信されます。それ以外は、ハードウェアは Ping および Pong バッファーを監視してデータが格納されるまで待機します。