【データメモリ構成】
イーサネット内蔵PIC18F90J60ファミリは、イーサネットの制御をSFRで行うため
データメモリ構成がこれまでのPIC18と異なります。
つまりこれまでのバンク14の256バイトは汎用RAMエリアでしたが、このバンクの
上位半分を下図のようにイーサネット制御用のSFR領域として確保しています。
このエリアはアクセスバンクには入りませんから、イーサネットの制御には
バンク切替が必要となります。
【制御レジスタ】
このバンク14に配置されたイーサネット用SFRは下図のようになっています。
ENC28J60イーサネットコントローラに較べると数がかなり少なくなっています。
【イーサネットバッファとPHYレジスタ】
イーサネットコントローラ部には「イーサネットバッファ」と「PHYレジスタ」の
2つのメモリがあります。
いずれもイーサネット用SFRを使ってアクセスしますが、間接アドレスによる
アクセスになります。この関係は下図のように表されます。
イーサネットバッファは読み書きとも同じSFRでできますが、PHYレジスタは
読み書きを別々のSFRレジスタで行うようになっています。
【イーサネットバッファ】
イーサネットバッファはパケットの送受信バッファとして使われ、全体で
8kバイトの容量があります。
送信、受信のサイズ振り分けはSFRの設定により自由に配置できます。
その使われ方は下図のようになります。
<受信バッファ>
受信バッファは循環バッファを構成するようになっていてハードウェアで
制御されます。
バッファサイズは、下記の開始と終了アドレスで指定します。
ERXST(ERXSTH:ERXSTL)で開始番地を指定
ERXND(ERXNDH:ERXNDL)で終了番地を指定
読み出しのポインタアドレスがERXNDより大きくなると自動的にポインタ
がERXSTに変更されバッファの最初を示すように変更されます。
読み出しのポインタは下記が使われます。
ERXRDPT(ERXRDPTH:ERXRDPTL) : 読み出し用
実際のデータはEDATAに読み出されます。
<送信バッファ>
送信バッファは当然のことながら、受信バッファとダブらない位置に
下記レジスタで設定します。
ETXST(ETXSTH:ETXSTL) : 送信バッファ開始番地
ETXND(ETXNDH:ETXNDL) : 送信バッファ終了番地
書き込み用のポインタには下記が使われます。
ERXWRPT(ERXWRPTH:ERXWRPTL) : 書き込み用
書き込むデータはEDATAに書き込みます。
<DMAアクセス>
内蔵DMAコントローラは、チェックサム計算を行うときには、バッファから
DMAを使って連続的にデータを読み出します。
受信バッファの場合はバッファの最後でアドレスが自動的に折り返します。
【PHYレジスタ】
PHYレジスタは、PHYモジュールの動作モード設定と状態モニタ用のレジスタ
です。このレジスタ群には下記のレジスタがあります。
PHYレジスタは、単純にMIREGADRレジスタで指定したアドレスの内容が
SFRレジスタMIRDHとMIRDLで読み出せ、MIWRHとMIWRLで書き込みができます。
PHCON1 : PHYの動作モード設定レジスタ
PHSTAT1 : PHY状態レジスタ
PHID1 : PHY識別レジスタ
PHID2 : PHY識別レジスタ
PHCON2 : PHY動作モード設定レジスタ
PHSTAT2 : PHY状態レジスタ
PHIE : 割り込み許可
PHIR : 割り込みフラグ
PHLCON :