DM9000 寄存器的定义
DM9000(A)是一個全集成、功能強大、性價比高的快速以太網(wǎng)MAC控制器,它帶有一個通用處理器接口、EEPROM接口、10/100 PHY和16KB的SRAM(13KB作為接收FIFO,3KB作為發(fā)送FIFO)。它采用單電源供電,可兼容3.3V、5V的IO接口電平。
??? DM9000(A)同樣支持MII(Media Independent Interface 介質(zhì)無關(guān))接口,連接到HPNA(Home Phone-line Networking Alliance 家用電話網(wǎng)絡(luò)聯(lián)盟)設(shè)備上或其它支持MII的設(shè)備。
??? DM9000(A)包含一系列可被訪問的控制狀態(tài)寄存器,這些寄存器是字節(jié)對齊的,他們在硬件或軟件復(fù)位時被設(shè)置成初始值。
??? 以下為DM9000的寄存器功能詳解:
NCR (00H):網(wǎng)絡(luò)控制寄存器(Network Control Register )
7:EXT_PHY:1選擇外部PHY,0選擇內(nèi)部PHY,不受軟件復(fù)位影響。
6:WAKEEN:事件喚醒使能,1使能,0禁止并清除事件喚醒狀態(tài),不受軟件復(fù)位影響。
5:保留。
4:FCOL:1強制沖突模式,用于用戶測試。
3:FDX:全雙工模式。內(nèi)部PHY模式下只讀,外部PHY下可讀寫。
2-1:LBK:回環(huán)模式(Loopback)00通常,01MAC內(nèi)部回環(huán),10內(nèi)部PHY 100M模式數(shù)字回環(huán),11保留。
0:RST:1軟件復(fù)位,10us后自動清零。
NSR (01H):網(wǎng)絡(luò)狀態(tài)寄存器(Network Status Register )
7:SPEED:媒介速度,在內(nèi)部PHY模式下,0為100Mbps,1為10Mbps。當LINKST=0時,此位不用。
6:LINKST:連接狀態(tài),在內(nèi)部PHY模式下,0為連接失敗,1為已連接。
5:WAKEST:喚醒事件狀態(tài)。讀取或?qū)?將清零該位。不受軟件復(fù)位影響。
4:保留。
3:TX2END:TX(發(fā)送)數(shù)據(jù)包2完成標志,讀取或?qū)?將清零該位。數(shù)據(jù)包指針2傳輸完成。
2:TX2END:TX(發(fā)送)數(shù)據(jù)包1完成標志,讀取或?qū)?將清零該位。數(shù)據(jù)包指針1傳輸完成。
1:RXOV:RX(接收)FIFO(先進先出緩存)溢出標志。
0:保留。
TCR(02H):發(fā)送控制寄存器(TX Control Register)
7:保留。
6:TJDIS:Jabber傳輸使能。1使能Jabber傳輸定時器(2048字節(jié)),0禁止。
注釋:Jabber是一個有CRC錯誤的長幀(大于1518byte而小于6000byte)或是數(shù)據(jù)包重組錯誤。原因:它可能導(dǎo)致網(wǎng)絡(luò)丟包。多是由于 作站有硬件或軟件錯誤。
5:EXCECM:額外沖突模式控制。0當額外的沖突計數(shù)多于15則終止本次數(shù)據(jù)包,1始終嘗試發(fā)發(fā)送本次數(shù)據(jù)包。
4:PAD_DIS2:禁止為數(shù)據(jù)包指針2添加PAD。
3:CRC_DIS2:禁止為數(shù)據(jù)包指針2添加CRC校驗。
2:PAD_DIS2:禁止為數(shù)據(jù)包指針1添加PAD。
1:CRC_DIS2:禁止為數(shù)據(jù)包指針1添加CRC校驗。
0:TXREQ:TX(發(fā)送)請求。發(fā)送完成后自動清零該位。
TSR_I(03H):數(shù)據(jù)包指針1的發(fā)送狀態(tài)寄存器1(TX Status Register I)
7:TJTO:Jabber傳輸超時。該位置位表示由于多于2048字節(jié)數(shù)據(jù)被傳輸而導(dǎo)致數(shù)據(jù)幀被截掉。
6:LC:載波信號丟失。該位置位表示在幀傳輸時發(fā)生紅載波信號丟失。在內(nèi)部回環(huán)模式下該位無效。
5:NC:無載波信號。該位置位表示在幀傳輸時無載波信號。在內(nèi)部回環(huán)模式下該位無效。
4:LC:沖突延遲。該位置位表示在64字節(jié)的沖突窗口后又發(fā)生沖突。
3:COL:數(shù)據(jù)包沖突。該位置位表示傳輸過程中發(fā)生沖突。
2:EC:額外沖突。該位置位表示由于發(fā)生了第16次沖突(即額外沖突)后,傳送被終止。
1-0:保留。
TSR_II(04H):數(shù)據(jù)包指針2的發(fā)送狀態(tài)寄存器2(TX Status Register II)
同TSR_I
略。
RCR(05H):接收控制寄存器(RX Control Register )
7:保留。
6:WTDIS:看門狗定時器禁止。1禁止,0使能。
5:DIS_LONG:丟棄長數(shù)據(jù)包。1為丟棄數(shù)據(jù)包長度超過1522字節(jié)的數(shù)據(jù)包。
4:DIS_CRC:丟棄CRC校驗錯誤的數(shù)據(jù)包。
3:ALL:忽略所有多點傳送。
2:RUNT:忽略不完整的數(shù)據(jù)包。
1:PRMSC:混雜模式(Promiscuous Mode)
0:RXEN:接收使能。
RSR(06H):接收狀態(tài)寄存器(RX Status Register )
7:RF:不完整數(shù)據(jù)幀。該位置位表示接收到小于64字節(jié)的幀。
6:MF:多點傳送幀。該位置位表示接收到幀包含多點傳送地址。
5:LCS:沖突延遲。該位置位表示在幀接收過程中發(fā)生沖突延遲。
4:RWTO:接收看門狗定時溢出。該位置位表示接收到大于2048字節(jié)數(shù)據(jù)幀。
3:PLE:物理層錯誤。該位置位表示在幀接收過程中發(fā)生物理層錯誤。
2:AE:對齊錯誤(Alignment)。該位置位表示接收到的幀結(jié)尾處不是字節(jié)對齊,即不是以字節(jié)為邊界對齊。
1:CE:CRC校驗錯誤。該位置位表示接收到的幀CRC校驗錯誤。
0:FOE:接收FIFO緩存溢出。該位置位表示在幀接收時發(fā)生FIFO溢出。
ROCR(07H):接收溢出計數(shù)寄存器(Receive Overflow Counter Register)
7:RXFU:接收溢出計數(shù)器溢出。該位置位表示ROC(接收溢出計數(shù)器)發(fā)生溢出。
6-0:ROC:接收溢出計數(shù)器。該計數(shù)器為靜態(tài)計數(shù)器,指示FIFO溢出后,當前接收溢出包的個數(shù)。
BPTR(08H):背壓門限寄存器(Back Pressure Threshold Register)
7-4:BPHW:背壓門限最高值。當接收SRAM空閑空間低于該門限值,則MAC將產(chǎn)生一個擁擠狀態(tài)。1=1K字節(jié)。默認值為3H,即3K字節(jié)空閑空間。不要超過SRAM大小。
3-0:JPT:擁擠狀態(tài)時間。默認為200us。0000為5us,0001為10us,0010為15us,0011為25us,0100為50us,0101為100us,0110為150us,0111為200us,1000為250us,1001為300us,1010為350us,1011為400us,1100為450us,1101為500us,1110為550us,1111為600us。
FCTR(09H):溢出控制門限寄存器(Flow Control Threshold Register)
7-4:HWOT:接收FIFO緩存溢出門限最高值。當接收SRAM空閑空間小于該門限值,則發(fā)送一個暫停時間(pause_time)為FFFFH的暫停包。若該值為0,則無接收空閑空間。1=1K字節(jié)。默認值為3H,即3K字節(jié)空閑空間。不要超過SRAM大小。
3-0:LWOT:接收FIFO緩存溢出門限最低值。當接收SRAM空閑空間大于該門限值,則發(fā)送一個暫停時間(pause_time)為0000H的暫停包。當溢出門限最高值的暫停包發(fā)送之后,溢出門限最低值的暫停包才有效。默認值為8K字節(jié)。不要超過SRAM大小。
RTFCR(0AH):接收/發(fā)送溢出控制寄存器(RX/TX Flow Control Register)
7:TXP0:1發(fā)送暫停包。發(fā)送完成后自動清零,并設(shè)置TX暫停包時間為0000H。
6:TXPF:1發(fā)送暫停包。發(fā)送完成后自動清零,并設(shè)置TX暫停包時間為FFFFH。
5:TXPEN:強制發(fā)送暫停包使能。按溢出門限最高值使能發(fā)送暫停包。
4:BKPA:背壓模式。該模式僅在半雙工模式下有效。當接收SRAM超過BPHW并且接收新數(shù)據(jù)包時,產(chǎn)生一個擁擠狀態(tài)。
3:BKPM:背壓模式。該模式僅在半雙工模式下有效。當接收SRAM超過BPHW并數(shù)據(jù)包DA匹配時,產(chǎn)生一個擁擠狀態(tài)。
2:RXPS:接收暫停包狀態(tài)。只讀清零允許。
1:RXPCS:接收暫停包當前狀態(tài)。
0:FLCE:溢出控制使能。1設(shè)置使能溢出控制模式。
EPCR/PHY_CR(0BH):EEPROM和PHY控制寄存器(EEPROM & PHY Control Register)
7-6:保留。
5:REEP:重新加載EEPROM。驅(qū)動程序需要在該操作完成后清零該位。
4:WEP:EEPROM寫使能。
3:EPOS:EEPROM或PHY操作選擇位。0選擇EEPROM,1選擇PHY。
2:ERPRR:EEPROM讀,或PHY寄存器讀命令。驅(qū)動程序需要在該操作完成后清零該位。
1:ERPRW:EEPROM寫,或PHY寄存器寫命令。驅(qū)動程序需要在該操作完成后清零該位。
0:ERRE:EEPROM或PHY的訪問狀態(tài)。1表示EEPROM或PHY正在被訪問。
EPAR/PHY_AR(0CH):EEPROM或PHY地址寄存器(EEPROM & PHY Address Register)
7-6:PHY_ADR:PHY地址的低兩位(bit1,bit0),而PHY地址的bit[4:2]強制為000。如果要選擇內(nèi)部PHY,那么此2位強制為01,實際應(yīng)用中要強制為01。
5-0:EROA:EEPROM字地址或PHY寄存器地址。
EPDRL/PHY_DRL(0DH):EEPROM或PHY數(shù)據(jù)寄存器低半字節(jié)(EEPROM & PHY Low Byte Data Register)
7-0:EE_PHY_L
EPDRL/PHY_DRH(0EH):EEPROM或PHY數(shù)據(jù)寄存器高半字節(jié)(EEPROM & PHY High Byte Data Register)
7-0:EE_PHY_H
WUCR(0FH):喚醒控制寄存器(Wake Up Control Register)
7-6:保留。
5:LINKEN:1使能“連接狀態(tài)改變”喚醒事件。該位不受軟件復(fù)位影響。
4:SAMPLEEN:1使能“Sample幀”喚醒事件。該位不受軟件復(fù)位影響。
3:MAGICEN:1使能“Magic Packet”喚醒事件。該位不受軟件復(fù)位影響。
2:LINKST:1表示發(fā)生了連接改變事件和連接狀態(tài)改變事件。該位不受軟件復(fù)位影響。
1:SAMPLEST:1表示接收到“Sample幀”和發(fā)生了“Sample幀”事件。該位不受軟件復(fù)位影響。
0:MAGICST:1表示接收到“Magic Packet”和發(fā)生了“Magic Packet”事件。該位不受軟件復(fù)位影響。
PAR(10H -- 15H):物理地址(MAC)寄存器(Physical Address Register)
7-0:PAD0 -- PAD5:物理地址字節(jié)0 -- 字節(jié)5(10H -- 15H)。用來保存6個字節(jié)的MAC地址。
MAR(16H -- 1DH):多點發(fā)送地址寄存器(Multicast Address Register )
7-0:MAB0 -- MAB7:多點發(fā)送地址字節(jié)0 -- 字節(jié)7(16H --1DH)。
GPCR(1FH):GPIO控制寄存器(General Purpose Control Register)
7-4:保留。
3-0:GEP_CNTL:GPIO控制。定義GPIO的輸入輸出方向。1為輸出,0為輸入。GPIO0默認為輸出做POWER_DOWN功能。其它默認為輸入。因此默認值為0001。
GPR(1FH):GPIO寄存器(General Purpose Register)
7-4:保留。
3-1:GEPIO3-1:GPIO為輸出時,相關(guān)位控制對應(yīng)GPIO端口狀態(tài),GPIO為輸入時,相關(guān)位反映對應(yīng)GPIO端口狀態(tài)。(類似于單片機對IO端口的控制)。
0:GEPIO0:功能同上。該位默認為輸出1到POWER_DEWN內(nèi)部PHY。若希望啟用PHY,則驅(qū)動程序需要通過寫“0”將PWER_DOWN信號清零。該位默認值可通過EEPROM編程得到。參考EEPROM相關(guān)描述。
TRPAL(22H):發(fā)送SRAM讀指針地址低半字節(jié)(TX SRAM Read Pointer Address Low Byte)
7-0:TRPAL
TRPAH(23H):發(fā)送SRAM讀指針地址高半字節(jié)(TX SRAM Read Pointer Address High Byte )
7-0:TRPAH
RWPAL(24H):接收SRAM指針地址低半字節(jié)(RX SRAM Write Pointer Address Low Byte)
7-0:RWPAL
RWPAH(25H):接收SRAM指針地址高半字節(jié)(RX SRAM Write Pointer Address High Byte)
7-0:RWPAH
VID(28H -- 29H):生產(chǎn)廠家序列號(Vendor ID)
7-0:VIDL:低半字節(jié)(28H),只讀,默認46H。
7-0:VIDH:高半字節(jié)(29H),只讀,默認0AH。
PID(2AH --2BH):產(chǎn)品序列號(Product ID)
7-0:PIDL:低半字節(jié)(2AH),只讀,默認00H。
7-0:PIDH:高半字節(jié)(2BH),只讀,默認90H。
CHIPR(2CH):芯片修訂版本(CHIP Revision)
7-0:PIDH:只讀,默認00H。
TCR2(2DH):傳輸控制寄存器2(TX Control Register 2)
7:LED:LED模式。1設(shè)置LED引腳為模式1,0設(shè)置LED引腳為模式0或根據(jù)EEPROM的設(shè)定。
6:RLCP:1重新發(fā)送有沖突延遲的數(shù)據(jù)包。
5:DTU:1禁止重新發(fā)送“underruned”數(shù)據(jù)包。
4:ONEPM:單包模式。1發(fā)送完成前發(fā)送一個數(shù)據(jù)包的命令能被執(zhí)行,0發(fā)送完成前發(fā)送兩個以上數(shù)據(jù)包的命令能被執(zhí)行。
3-0:IFGS:幀間間隔設(shè)置。0XXX為96bit,1000為64bit,1001為72bit,1010為80bit,1011為88bit,1100為96bit,1101為104bit,1110為112bit,1111為120bit。
OCR(2EH):操作測試控制寄存器(Operation Control Register)
7-6:SCC:設(shè)置內(nèi)部系統(tǒng)時鐘。00為50MHz,01為20MHz,10為100MHz,11保留。
5:保留。
4:SOE:內(nèi)部SRAM輸出使能始終開啟。
3:SCS:內(nèi)部SRAM片選始終開啟。
2-0:PHYOP:為測試用內(nèi)部PHY操作模式。
SMCR(2FH):特殊模式控制寄存器(Special Mode Control Register)
7:SM_EN:特殊模式使能。
6-3:保留。
2:FLC:強制沖突延遲。
1:FB1:強制最長“Back-off”時間。
0:FB0:強制最短“Back-off”時間。
ETXCSR(30H):傳輸前(Early)控制、狀態(tài)寄存器(Early Transmit Control/Status Register)
7:ETE:傳輸前使能。
6:ETS2:傳輸前狀態(tài)2。
5:ETS1:傳輸前狀態(tài)1。
4-2:保留。
1-0:ETT:傳輸前門限。當寫到發(fā)送FIFO緩存里的數(shù)據(jù)字節(jié)數(shù)達到該門限,則開始傳輸。00為12.5%,01為25%,10為50%,11為75%。
TCSCR(31H):傳輸校驗和控制寄存器(Transmit Check Sum Control Register)
7-3:保留。
2:UDPCSE:UDP校驗和產(chǎn)生使能。
1:TCPCSE:TCP檢驗和產(chǎn)生使能。
0:IPCSE:IP校驗和產(chǎn)生使能。
RCSCSR(32H):接收校驗和控制狀態(tài)寄存器(Receive Check Sum Control Status Register )
7:UDPS:UDP校驗和狀態(tài)。1表示UDP數(shù)據(jù)包校驗失敗。
6:TCPS:TCP校驗和狀態(tài)。1表示TCP數(shù)據(jù)包校驗失敗。
5:IPS:IP校驗和狀態(tài)。1表示IP數(shù)據(jù)包校驗失敗。
4:UDPP:1表示UDP數(shù)據(jù)包。
3:TCPP:1表示TCP數(shù)據(jù)包。
2:IPP:1表示IP數(shù)據(jù)包。
1:RCSEN:接收檢驗和檢驗使能。1使能校驗和校驗,將校驗和狀態(tài)位(bit7-2)存儲到數(shù)據(jù)包的各自的報文頭的第一個字節(jié)。
0:DCSE:丟棄校驗和錯誤的數(shù)據(jù)包。1使能丟棄校驗和錯誤的數(shù)據(jù)包,若IP/TCP/UDP的校驗和域錯誤,則丟棄該數(shù)據(jù)包。
MRCMDX(F0H):存儲器地址不變的讀數(shù)據(jù)命令(Memory Data Pre-Fetch Read Command Without Address Increment Register)
7-0:MRCMDX:從接收SRAM中讀數(shù)據(jù),讀取之后,指向內(nèi)部SRAM的讀指針不變。
MRCMDX1(F1H):存儲器讀地址不變的讀數(shù)據(jù)命令(Memory Data Read Command With Address Increment Register
同上。
MRCMD(F2H):存儲器讀地址自動增加的讀數(shù)據(jù)命令(Memory Data Read Command With Address Increment Register)
7-0:MRCMD:從接收SRAM中讀數(shù)據(jù),讀取之后,指向內(nèi)部SRAM的讀指針自動增加1、2或4,根據(jù)處理器的操作模式而定(8位、16位或32位)。
MRRL(F4H):存儲器讀地址寄存器低半字節(jié)(Memory Data Read_ address Register Low Byte)
7-0:MDRAL
MRRH(F5H):存儲器讀地址寄存器高半字節(jié)Memory Data Read_ address Register High Byte
7-0:MDRAH:若IMR的bit7=1,則該寄存器設(shè)置為0CH。
MWCMDX(F6H):存儲器讀地址不變的讀數(shù)據(jù)命令(Memory Data Write Command Without Address Increment Register)
7-0:MWCMDX:寫數(shù)據(jù)到發(fā)送SRAM中,之后指向內(nèi)部SRAM的寫地址指針不變。
MWCMD(F8H):存儲器讀地址自動增加的讀數(shù)據(jù)命令(Memory Data Write Command With Address Increment Register)
7-0:MWCMD:寫數(shù)據(jù)到發(fā)送SRAM中,之后指向內(nèi)部SRAM的讀指針自動增加1、2或4,根據(jù)處理器的操作模式而定(8位、16位或32位)。
MWRL(FAH):存儲器寫地址寄存器低半字節(jié)(Memory Data Write_ address Register Low Byte)
7-0:MDRAL
MWRH(FBH):存儲器寫地址寄存器高半字節(jié)(Memory Data Write _ address Register High Byte)
7-0:MDRAH
TXPLL(FCH):發(fā)送數(shù)據(jù)包長度寄存器低半字節(jié)(TX Packet Length Low Byte Register)
7-0:TXPLL
TXPLH(FDH):發(fā)送數(shù)據(jù)包長度寄存器高半字節(jié)(TX Packet Length High Byte Register)
7-0:TXPLH
ISR(FEH):終端狀態(tài)寄存器(Interrupt Status Register)
7-6:IOMODE:處理器模式。00為16位模式,01為32位模式,10為8位模式,00保留。
5:LNKCHG:連接狀態(tài)改變。
4:UDRUN:傳輸“Underrun”
3:ROOS:接收溢出計數(shù)器溢出。
2:ROS:接收溢出。
1:PTS:數(shù)據(jù)包傳輸。
0:PRS:數(shù)據(jù)包接收。
ISR寄存器各狀態(tài)寫1清除
IMR(FFH):終端屏蔽寄存器(Interrupt Mask Register)
7:PAR:1使能指針自動跳回。當SRAM的讀、寫指針超過SRAM的大小時,指針自動跳回起始位置。需要驅(qū)動程序設(shè)置該位,若設(shè)置則REG_F5(MDRAH)將自動位0CH。
6:保留。
5:LNKCHGI:1使能連接狀態(tài)改變中斷。
4:UDRUNI:1使能傳輸“Underrun”中斷。
3:ROOI:1使能接收溢出計數(shù)器溢出中斷。
2:ROI:1使能接收溢出中斷。
1:PTI:1使能數(shù)據(jù)包傳輸終端。
0:PRI:1使能數(shù)據(jù)包接收中斷。
注釋:其中“藍色字體”表示在DM9000初始化中要用到的寄存器。
??? 訪問以上寄存器的方法是通過總線驅(qū)動的方式,即通過對IOR、IOW、AEN、CMD以及SD0--SD15等相關(guān)引腳的操作來實現(xiàn)。其中CMD引腳為高電平時為寫寄存器地址,為低電平時為寫數(shù)據(jù)到指定地址的寄存器中。詳細過程請參考數(shù)據(jù)手冊中“讀寫時序”部分。
??? 在DM9000(A)中,還有一些PHY寄存器,也稱之為介質(zhì)無關(guān)接口MII寄存器,需要我們?nèi)ピL問。這些寄存器是字對齊的,即16位寬。下面列出三個常用的PHY寄存器。
BMCR(00H):基本模式控制寄存器(Basic Mode Control Register)
15:reset:1PHY軟件復(fù)位,0正常操作。復(fù)位操作使PHY寄存器的值為默認值。復(fù)位操作完成后,該位自動清零。
14:loopback:1Loop-back使能,0正常操作。
13:speed selection:1為100Mbps,0為10Mbps。連接速度即可以根據(jù)該位選擇,也可以根據(jù)第12位,即自動協(xié)商選擇。當自動協(xié)商使能時,即第12位為1,該位將會返回自動協(xié)商后的速度值。
12:auto-negotiation enable:1自動協(xié)商使能。使得第13位和第8位的值反應(yīng)自動協(xié)商后的狀態(tài)。
11:power down:POWER_DOWN模式。1為POWER_DOWN,0為正常操作。在POWER_DOWN狀態(tài)下,PHY應(yīng)當響應(yīng)操作處理。在轉(zhuǎn)變到POWER_DOWN狀態(tài)或已經(jīng)運行在POWER_DOWN狀態(tài)下時,PHY不會在MII上產(chǎn)生虛假信號。
10:isolate:1除了一些操作外,PHY將從MII中隔離,0為正常操作。當該位置位,PHY不會響應(yīng)TXD[3:0],TX_EN和TX_ER輸入,并且在TX_CLK,RX_CLK,RX_DV,RX_ER,RXD[3:0],COL和CRS輸出上為高阻態(tài)。當PHY被隔離,則它將響應(yīng)操作處理。
9:restart auto-aegotiation:1重新初始化自動協(xié)商協(xié)議,0為正常操作。當?shù)?2位禁止該功能,則該位無效。初始化后該位自動清零。
8:duplex mode:1為全雙工操作,0為正常操作。當?shù)?2位被禁止(置0)時該位被置位,若第12位被置位,則該位反應(yīng)自動協(xié)商后的狀態(tài)。
7:collision test:1為沖突測試使能,0為正常操作。若該位置位,聲明TX_EN將引起COL信號被聲明。
6-0:保留。
ANAR(04H):自動協(xié)商廣告寄存器(Auto-negotiation Advertisement Register)
15:NP:0表示無有效的下一頁,1表示下一頁有效。PHY沒有下一頁,所以該位始終為0。
14:ACK:1表示連接對象數(shù)據(jù)接收認證,0表示無認證。PHY的自動協(xié)商狀態(tài)機會自動控制該位。
13:RF:1表示本地設(shè)備處于錯誤狀態(tài),0為無錯誤檢驗。
12-11:保留。
10:FCS:1表示處理器支持溢出控制能力,0表示不支持。
9:T4:1表示本地設(shè)備支持100BASE-T4,0表示不支持。PHY不支持100BASE-T4,所以該位永遠是0。
8:TX_FDX:1為本地設(shè)備支持100BASE-TX全雙工模式,0為不支持。
7:TX_HDX:1為本地設(shè)備支持100BASE-TX,0為不支持。
6:10_FDX:1為本地設(shè)備支持100BASE-T全雙工模式,0為不支持。
5:10_HDX:1為本地設(shè)備支持100BASE-T,0為不支持。
4-0:selecter:協(xié)議選擇位,00001為默認值,表示設(shè)備支持IEEE802.3CSMA/CD,不用修改。
DSCR(16H):DAVICOM詳細配置寄存器(DAVICOM Specified Configuration Register)
15:BP_4B5B:1為繞過4B5B編碼和5B4B解碼功能,0為正草4B5B和5B4B功能。
14:BP_SCR:1為繞過擾頻和解擾功能,0為正常操作。
13:BP_ALIGN:1為繞過接收時的解擾、符號隊列、解碼功能和發(fā)送時的符號編碼、擾頻功能,0正常操作。
12:BP_ADPOK:1為強制信號探測功能使能,0為正常操作。該位僅為調(diào)試使用
11:保留。
10:TX:1表示100BASE-TX操作,0保留。
9-8:保留。
7:F_LINK_100:0為正常100Mbps,1為強制100Mbps良好連接狀態(tài)。
6-5:保留,強制為0.
4:RPDCTR-EN:1為使能自動簡化POWER_DOWN,0為禁止。
3:SMRST:1為重新初始化PHY的狀態(tài)機,初始化后該位自動清零。
2:MFPSC:1表示MII幀引導(dǎo)抑制開啟,0表示關(guān)閉。
1:SLEEP:睡眠模式。該位置位將導(dǎo)致PHY進入睡眠模式,通過將該位清零喚醒睡眠模式,其中配置將還原為睡眠模式之前的狀態(tài),但狀態(tài)機將重新初始化。
0:RLOUT:該位置位將使接收到的數(shù)據(jù)放入發(fā)送通道中。
??? 訪問PHY寄存器的方法是:
(1)寄存器地址寫到EPAR/PHY_AR(0CH)寄存器中,注意將寄存器地址的第6位置1(地址與0x40或運算即可),以表明寫的是PHY地址,而不是EEPROM地址。
(2)將數(shù)據(jù)高字節(jié)寫到PHY_DRH(0EH)寄存器中。
(3)將數(shù)據(jù)低字節(jié)寫到PHY_DRL(0DH)寄存器中。
(4)發(fā)送PHY命令(0x0a)到EPCR/PHY_CR(0BH)寄存器中。
(5)延時5us,發(fā)送命令0x08到EPCR/PHY_CR(0BH)寄存器中,清除PHY寫操作。
??? 以上為DM9000(A)常用寄存器功能的詳細介紹,通過對這些寄存器的操作訪問,我們便可以實現(xiàn)對DM9000的初始化、數(shù)據(jù)發(fā)送、接收等相關(guān)操作。而要實現(xiàn)ARP、IP、TCP等功能,則需要對相關(guān)協(xié)議的理解,由編寫相關(guān)協(xié)議或移植協(xié)議棧來實現(xiàn)。
轉(zhuǎn)載于:https://www.cnblogs.com/xmphoenix/archive/2011/05/16/2048071.html
總結(jié)
以上是生活随笔為你收集整理的DM9000 寄存器的定义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux服务器程序编程的几个坎
- 下一篇: [转]ToolTip在VC中的使用