DM9000A网卡芯片介绍
时间:2022-08-23 14:30:01
1、总体介绍
该DM9000是一款完全集成、符合成本效益的单芯片快速以太网MAC控制器与一般处理接口,10/100M自适应的PHY和4K DWORD值的SRAM 。其目的是在低功耗和高性能过程中进行3.3V与5V支持宽容。
DM9000还提供了连接所有家用电话线网络设备或其他收发器的介质无关接口。该DM9000支持8位, 16位和32 -为了支持不同的处理器,支持不同的处理器。DM1000物理协议层接口完全支持MBps非屏蔽双绞线3、4、5、100MBps以下五种非屏蔽双绞线。这是完全一致的IEEE 802.3u规格。其自动协调功能将自动完成配置,以最大限度地适应其线路带宽。它还支持IEEE 802.3x全双工流量控制。在这项工作中DM9000很简单,用户可以轻松移植任何系统下的端口驱动程序。
2、特点
支持处理器读写内部存储器的数据操作命令 字节/ 字/ 进行双字长度
集成10/100M自适应收发器
支持介质无关接口
支持背压模式半双工流量控制模式
IEEE802.3x全双工模式的流量控制
支持唤醒帧,链路状态改变和远程的唤醒
4K双字SRAM
支持自动加载EEPROM里面生产商ID和产品ID
支持4个通用输入输出口
超低功耗模式
功率降低模式
电源故障模式
可选择1:1或5:4变压比变压器降低格外功率
兼容3.3v和5.0v输入输出电压
100脚CMOS LQFP封装工艺
3、引脚描述
I=输入 O=输出 I/O=输入/输出 O/D=漏极开路 P=电源 LI=复位锁存输入 #=普遍低电位
介质引脚与接口无关
引脚号 | 引脚名 | I/O | 功能描述 |
37 | LINK_I | I | 外部介质无关接口器件连接状态 |
38、39、40、41 | RXD [3:0] | I | 外部介质无关接口接收数据 4位 半字节输入(与接收时钟同步) |
43 | CRS | I/O | 外部介质无关接口的载波检测 |
44 | COL | I/O | 外部介质无关接口的冲突检测,输出到外部设备 |
45 | RX_DV | I | 外部介质无关接口数据有效信号 |
46 | RX_ER | I | 外部介质无关接口接收错误 |
47 | RX_CLK | I | 外部介质无关接口接收时钟 |
49 | TX_CLK | I/O | 外部介质无关接口发送时钟 |
50~53 | TXD[3:0] | O | 外部介质无关接口发送数据低4位输出 TXD[2:0]决定内部存储空间基址:TXD [2:0]) * 10H + 300H |
54 | MDIO | I/O | 外部介质无关接口串行数据通信 |
57 | MDC | O | 外部介质无关串行数据通信口时钟,且与中断引脚有关 该引脚高电平时候,中断引脚低电平有效;否则高有效 |
处理器接口引脚
1 | IOR# | I | 处理器读命令 低电平有效,极性能够被EEPROM修改,详细请参考对EEPROM内容的描述 |
2 | IOW# | I | 处理器写命令 低电平有效,同样能修改极性 |
3 | AEN# | I | 芯片选择,低电平有效 |
4 | IOWAIT | O | 处理器命令就绪 当上一指令没有结束,该引脚电平拉低表示当前指令需要等待 |
14 | RST | I | 硬件复位信号,高电平有效复位 |
1~6 82~89 | SD0~15 | I/O | 0~15位的数据地址复用总线,由CMD引脚决定当期访问类型 |
93~98 | SA4~9 | I | 地址线4~9;仅作芯片选择信号 (SA4~9:TXD0~2 ,011)被选中 |
92 | CMD | I | 访问类型 高电平是访问数据端口;低电平是访问地址端口 |
91 | IO16 | O | 字命令标志,默认低电平有效 当访问外部数据存储器是字或双字宽度时,被置位 |
100 | INT | O | 中断请求信号 高电平有效,极性能修改 |
37~53 56 | SD31~16 | I/O | 双字模式,高16位数据引脚 |
57 | IO32 | O | 双字命令标志,默认低电平有效 |
EEPROM引脚
64 | EEDI | I | 数据输入引脚 |
65 | EEDO | I/O | EEPROM数据引脚 与WAKEUP引脚一起定义访问数据存储器的总线宽度 WAKEUP EEDO 总线宽度 0 0 16位 0 1 32位 1 0 8位 1 1 未定义 |
66 | EECK | I | 时钟信号 |
67 | EECS | I/O | 片选 也做LED模式选择引脚 高电平时,LED模式1,否则模式0 |
时钟引脚
21 | X2_25M | O | 25M晶振输出 |
22 | X1_25M | I | 25M晶振输入 |
59 | CLK20MO | O | 20M晶振再生输出给外部介质无关设备,自带60K欧姆下拉电阻 |
LED引脚
60 | SPEED100# | O | 低电平指示100M带宽指示,高电平指示10M带宽 |
61 | DUP# | O | 全双工指示LED LED模式0时,低电平显示工作在10M带宽,或在100M带宽浮动 |
62 | LINK&ACT# | O | 连接LED,在模式0时,只作物理层的载波监听检测连接状态 |
10/100 物理层与光纤接口
24 | SD | I | 光纤信号检测 PECL电平信号,显示光纤接收是否有效 |
25 | DGGND | P | 带隙地信号线 |
26 | BGRES | I/O | 带隙引脚 |
27 | AVDD | P | 带隙与电源保护环 |
28 | AVDD | P | 接收端口电源 |
29 | RXI+ | I | 物理层接收端的正极 |
30 | RXI- | I | 物理层接收端的负极 |
31 | AGND | P | 接收端口地 |
32 | AGND | P | 发送端口地 |
33 | TXO+ | O | 物理层发送端口正极 |
34 | TXO- | O | 发送端口负极 |
35 | AVDD | P | 物理层发送端口负极 |
各种其他功能引脚
16~19 | TEST1~4 | I | 工作模式 Test1~4(1,1,0,0)正常工作状态 |
48 | TEST5 | I | 必须接地 |
68~69 | GPIO0~3 | I/O | 通用I/O端口 通用端口控制寄存器和通用端口寄存器能编程该系列引脚 GPIO0默认输出为高来关闭物理层和其他外部介质无关器件 GPIO1~3默认为输入引脚 |
78 | LINK_O | O | 电缆连接状态显示输出,高电平有效 |
79 | WAKEUP | O | 流出一个唤醒信号当唤醒事件发生 内置60K欧姆的下拉电阻 |
80 | PW_RST# | I | 上电复位 低电平激活DM9000的重新初始化,5us后初始化当该引脚测试到电平变化 |
74,75,77 | NC | 无用 |
电源引脚
5,20,36,55, 72,90,73 |
DVDD | P | 数字电源 |
15,23,42,58 63,81,99,76 |
DGND | P | 数字地 |
内部寄存器
DM9000(A)包含一系列可被访问的控制状态寄存器,这些寄存器是字节对齐的,他们在硬件或软件复位时被设置成初始值。
以下为DM9000的寄存器功能详解:
NCR (00H):网络控制寄存器(Network Control Register )
7:EXT_PHY:1选择外部PHY,0选择内部PHY,不受软件复位影响。
6:WAKEEN:事件唤醒使能,1使能,0禁止并清除事件唤醒状态,不受软件复位影响。
5:保留。
4:FCOL:1强制冲突模式,用于用户测试。
3:FDX:全双工模式。内部PHY模式下只读,外部PHY下可读写。
2-1:LBK:回环模式(Loopback)00通常,01MAC内部回环,10内部PHY 100M模式数字回环,11保留。
0:RST:1软件复位,10us后自动清零。
NSR (01H):网络状态寄存器(Network Status Register )
7:SPEED:媒介速度,在内部PHY模式下,0为100Mbps,1为10Mbps。当LINKST=0时,此位不用。
6:LINKST:连接状态,在内部PHY模式下,0为连接失败,1为已连接。
5:WAKEST:唤醒事件状态。读取或写1将清零该位。不受软件复位影响。
4:保留。
3:TX2END:TX(发送)数据包2完成标志,读取或写1将清零该位。数据包指针2传输完成。
2:TX2END:TX(发送)数据包1完成标志,读取或写1将清零该位。数据包指针1传输完成。
1:RXOV:RX(接收)FIFO(先进先出缓存)溢出标志。
0:保留。
TCR(02H):发送控制寄存器(TX Control Register)
7:保留。
6:TJDIS:Jabber传输使能。1使能Jabber传输定时器(2048字节),0禁止。
注释:Jabber是一个有CRC错误的长帧(大于1518byte而小于6000byte)或是数据包重组错误。原因:它可能导致网络丢包。多是由于作站有硬件或软件错误。
5:EXCECM:额外冲突模式控制。0当额外的冲突计数多于15则终止本次数据包,1始终尝试发发送本次数据包。
4:PAD_DIS2:禁止为数据包指针2添加PAD。
3:CRC_DIS2:禁止为数据包指针2添加CRC校验。
2:PAD_DIS2:禁止为数据包指针1添加PAD。
1:CRC_DIS2:禁止为数据包指针1添加CRC校验。
0:TXREQ:TX(发送)请求。发送完成后自动清零该位。
TSR_I(03H):数据包指针1的发送状态寄存器1(TX Status Register I)
7:TJTO:Jabber传输超时。该位置位表示由于多于2048字节数据被传输而导致数据帧被截掉。
6:LC:载波信号丢失。该位置位表示在帧传输时发生红载波信号丢失。在内部回环模式下该位无效。
5:NC:无载波信号。该位置位表示在帧传输时无载波信号。在内部回环模式下该位无效。
4:LC:冲突延迟。该位置位表示在64字节的冲突窗口后又发生冲突。
3:COL:数据包冲突。该位置位表示传输过程中发生冲突。
2:EC:额外冲突。该位置位表示由于发生了第16次冲突(即额外冲突)后,传送被终止。
1-0:保留。
TSR_II(04H):数据包指针2的发送状态寄存器2(TX Status Register II)
同TSR_I
略。
RCR(05H):接收控制寄存器(RX Control Register )
7:保留。
6:WTDIS:看门狗定时器禁止。1禁止,0使能。
5:DIS_LONG:丢弃长数据包。1为丢弃数据包长度超过1522字节的数据包。
4:DIS_CRC:丢弃CRC校验错误的数据包。
3:ALL:忽略所有多点传送。
2:RUNT:忽略不完整的数据包。
1:PRMSC:混杂模式(Promiscuous Mode)
0:RXEN:接收使能。
RSR(06H):接收状态寄存器(RX Status Register )
7:RF:不完整数据帧。该位置位表示接收到小于64字节的帧。
6:MF:多点传送帧。该位置位表示接收到帧包含多点传送地址。
5:LCS:冲突延迟。该位置位表示在帧接收过程中发生冲突延迟。
4:RWTO:接收看门狗定时溢出。该位置位表示接收到大于2048字节数据帧。
3:PLE:物理层错误。该位置位表示在帧接收过程中发生物理层错误。
2:AE:对齐错误(Alignment)。该位置位表示接收到的帧结尾处不是字节对齐,即不是以字节为边界对齐。
1:CE:CRC校验错误。该位置位表示接收到的帧CRC校验错误。
0:FOE:接收FIFO缓存溢出。该位置位表示在帧接收时发生FIFO溢出。
ROCR(07H):接收溢出计数寄存器(Receive Overflow Counter Register)
7:RXFU:接收溢出计数器溢出。该位置位表示ROC(接收溢出计数器)发生溢出。
6-0:ROC:接收溢出计数器。该计数器为静态计数器,指示FIFO溢出后,当前接收溢出包的个数。
BPTR(08H):背压门限寄存器(Back Pressure Threshold Register)
7-4:BPHW:背压门限最高值。当接收SRAM空闲空间低于该门限值,则MAC将产生一个拥挤状态。1=1K字节。默认值为3H,即3K字节空闲空间。不要超过SRAM大小。
3-0:JPT:拥挤状态时间。默认为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空闲空间小于该门限值,则发送一个暂停时间(pause_time)为FFFFH的暂停包。若该值为0,则无接收空闲空间。1=1K字节。默认值为3H,即3K字节空闲空间。不要超过SRAM大小。
3-0:LWOT:接收FIFO缓存溢出门限最低值。当接收SRAM空闲空间大于该门限值,则发送一个暂停时间(pause_time)为0000H的暂停包。当溢出门限最高值的暂停包发送之后,溢出门限最低值的暂停包才有效。默认值为8K字节。不要超过SRAM大小。
RTFCR(0AH):接收/发送溢出控制寄存器(RX/TX Flow Control Register)
7:TXP0:1发送暂停包。发送完成后自动清零,并设置TX暂停包时间为0000H。
6:TXPF:1发送暂停包。发送完成后自动清零,并设置TX暂停包时间为FFFFH。
5:TXPEN:强制发送暂停包使能。按溢出门限最高值使能发送暂停包。
4:BKPA:背压模式。该模式仅在半双工模式下有效。当接收SRAM超过BPHW并且接收新数据包时,产生一个拥挤状态。
3:BKPM:背压模式。该模式仅在半双工模式下有效。当接收SRAM超过BPHW并数据包DA匹配时,产生一个拥挤状态。
2:RXPS:接收暂停包状态。只读清零允许。
1:RXPCS:接收暂停包当前状态。
0:FLCE:溢出控制使能。1设置使能溢出控制模式。
EPCR/PHY_CR(0BH):EEPROM和PHY控制寄存器(EEPROM & PHY Control Register)
7-6:保留。
5:REEP:重新加载EEPROM。驱动程序需要在该操作完成后清零该位。
4:WEP:EEPROM写使能。
3:EPOS:EEPROM或PHY操作选择位。0选择EEPROM,1选择PHY。
2:ERPRR:EEPROM读,或PHY寄存器读命令。驱动程序需要在该操作完成后清零该位。
1:ERPRW:EEPROM写,或PHY寄存器写命令。驱动程序需要在该操作完成后清零该位。
0:ERRE:EEPROM或PHY的访问状态。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。如果要选择内部PHY,那么此2位强制为01,实际应用中要强制为01。
5-0:EROA:EEPROM字地址或PHY寄存器地址。
EPDRL/PHY_DRL(0DH):EEPROM或PHY数据寄存器低半字节(EEPROM & PHY Low Byte Data Register)
7-0:EE_PHY_L
EPDRL/PHY_DRH(0EH):EEPROM或PHY数据寄存器高半字节(EEPROM & PHY High Byte Data Register)
7-0:EE_PHY_H
WUCR(0FH):唤醒控制寄存器(Wake Up Control Register)
7-6:保留。
5:LINKEN:1使能“连接状态改变”唤醒事件。该位不受软件复位影响。
4:SAMPLEEN:1使能“Sample帧”唤醒事件。该位不受软件复位影响。
3:MAGICEN:1使能“Magic Packet”唤醒事件。该位不受软件复位影响。
2:LINKST:1表示发生了连接改变事件和连接状态改变事件。该位不受软件复位影响。
1:SAMPLEST:1表示接收到“Sample帧”和发生了“Sample帧”事件。该位不受软件复位影响。
0:MAGICST:1表示接收到“Magic Packet”和发生了“Magic Packet”事件。该位不受软件复位影响。
PAR(10H -- 15H):物理地址(MAC)寄存器(Physical Address Register)
7-0:PAD0 -- PAD5:物理地址字节0 -- 字节5(10H -- 15H)。用来保存6个字节的MAC地址。
MAR(16H -- 1DH):多点发送地址寄存器(Multicast Address Register )
7-0:MAB0 -- MAB7:多点发送地址字节0 -- 字节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为输出时,相关位控制对应GPIO端口状态,GPIO为输入时,相关位反映对应GPIO端口状态。(类似于单片机对IO端口的控制)。
0:GEPIO0:功能同上。该位默认为输出1到POWER_DEWN内部PHY。若希望启用PHY,则驱动程序需要通过写“0”将PWER_DOWN信号清零。该位默认值可通过EEPROM编程得到。参考EEPROM相关描述。
TRPAL(22H):发送SRAM读指针地址低半字节(TX SRAM Read Pointer Address Low Byte)
7-0:TRPAL
TRPAH(23H):发送SRAM读指针地址高半字节(TX SRAM Read Pointer Address High Byte )
7-0:TRPAH
RWPAL(24H):接收SRAM指针地址低半字节(RX SRAM Write Pointer Address Low Byte)
7-0:RWPAL
RWPAH(25H):接收SRAM指针地址高半字节(RX SRAM Write Pointer Address High Byte)
7-0:RWPAH
VID(28H -- 29H):生产厂家序列号(Vendor ID)
7-0:VIDL:低半字节(28H),只读,默认46H。
7-0:VIDH:高半字节(29H),只读,默认0AH。
PID(2AH --2BH):产品序列号(Product ID)
7-0:PIDL:低半字节(2AH),只读,默认00H。
7-0:PIDH:高半字节(2BH),只读,默认90H。
CHIPR(2CH):芯片修订版本(CHIP Revision)
7-0:PIDH:只读,默认00H。
TCR2(2DH):传输控制寄存器2(TX Control Register 2)
7:LED:LED模式。1设置LED引脚为模式1,0设置LED引脚为模式0或根据EEPROM的设定。
6:RLCP:1重新发送有冲突延迟的数据包。
5:DTU:1禁止重新发送“underruned”数据包。
4:ONEPM:单包模式。1发送完成前发送一个数据包的命令能被执行,0发送完成前发送两个以上数据包的命令能被执行。
3-0:IFGS:帧间间隔设置。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:设置内部系统时钟。00为50MHz,01为20MHz,10为100MHz,11保留。
5:保留。
4:SOE:内部SRAM输出使能始终开启。
3:SCS:内部SRAM片选始终开启。
2-0:PHYOP:为测试用内部PHY操作模式。
SMCR(2FH):特殊模式控制寄存器(Special Mode Control Register)
7:SM_EN:特殊模式使能。
元器件数据手册、IC替代型号,打造电子元器件IC百科大全!