DM9000
1.总体介绍
该 DM9000 是一款完全集成的和符合成本效益单芯片快速以太网 MAC 控制器与一般处理
接口,一个 10/100M 自适应的 PHY 和 4K DWORD 值的 SRAM 。它的目的是在低功耗和高性
能进程的 3.3V 与 5V 的支持宽容。
DM9000 还提供了介质无关的接口,来连接所有提供支持介质无关接口功能的家用电话线
网络设备或其他收发器。该 DM9000 支持 8 位, 16 位和 32 -位接口访问内部存储器,以支持
不同的处理器。DM9000 物理
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
层接口完全支持使用 10MBps 下 3 类、4 类、5 类非屏蔽双绞
线和 100MBps 下 5 类非屏蔽双绞线。这是完全符合 IEEE 802.3u 规格。它的自动协调功能将
自动完成配置以最大限度地适合其线路带宽。还支持 IEEE 802.3x 全双工流量控制。这个工作
里面 DM9000 是非常简单的,所以用户可以容易的移植任何系统下的端口驱动程序。
2.特点
支持处理器读写内部存储器的数据操作命令以字节/字/双字的长度进行
集成 10/100M 自适应收发器
支持介质无关接口
支持背压模式半双工流量控制模式
IEEE802.3x 流量控制的全双工模式
支持唤醒帧,链路状态改变和远程的唤醒
4K 双字 SRAM
支持自动加载 EEPROM 里面生产商 ID 和产品 ID
支持 4 个通用输入输出口
超低功耗模式
功率降低模式
电源故障模式
可选择 1:1 YL18-2050S,YT37-1107S 或 5:4 变压比例的变压器降低格外功率
兼容 3.3v和 5.0v 输入输出电压
100 脚 CMOS LQFP 封装工艺
3.引脚描述
I=输入 O=输出 I/O=输入/输出 O/D=漏极开路 P=电源 LI=复位锁存输入 #=普遍低电位
介质无关接口引脚
引脚号 引脚名 引脚类型 功能描述
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 外部介质无关串行数据通信口时钟,且
与中断引脚有关
该引脚高电平时候,中断引脚低电平有
效;否则高有效
注意:以上介质无关端口都内部自带 60KΩ的下拉电阻
处理器接口引脚
引脚号 引脚名 引脚类型 功能描述
1 IOR# I 处理器读命令
低电平有效,极性能够被 EEPROM修改,
详细请参考对 EEPROM内容的描述
2 IOW# I 处理器写命令
低电平有效,同样能修改极性
3 AEN# I 芯片选择,低电平有效
4 IOWAIT O 处理器命令就绪
当上一指令没有结束,该引脚电平拉低
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示当前指令需要等待
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 双字命令标志,默认低电平有效
注意:以上引脚除去 SD8,SD9 和 IO16,都内部自带 60KΩ的下拉电阻
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
注意:EECS EECK EEDO 引脚都内部自带 60KΩ的下拉电阻
时钟引脚
引脚号 引脚名 引脚类型 功能描述
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,73,90 DVDD P 数字电源
15,23,42,58,63,76,81,99 DGND P 数字地
4.内部寄存器
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 为 250
us,1001 为 300us,1010 为 350us,1011 为 400us,1100 为 450us,1101 为 500us, 111
0 为 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 By
te Data Register)
7-0:EE_PHY_L
EPDRL/PHY_DRH(0EH):EEPROM 或 PHY 数据寄存器高半字节(EEPROM & PHY High B
yte 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 个字节的 MA
C 地址。
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 为输入。GPIO
0 默认为输出做 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。若希望启用 P
HY,则驱动程序需要通过写“0”将 PWER_DOWN 信号清零。该位默认值可通过 EEPROM 编程
得到。参考 EEPROM 相关描述。
TRPAL(22H):发送 SRAM 读指针地址低半字节(TX SRAM Read Pointer Address Low B
yte)
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 By
te)
7-0:RWPAL
RWPAH(25H):接收 SRAM 指针地址高半字节(RX SRAM Write Pointer Address High B
yte)
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 或根据 EEPRO
M 的设定。
6:RLCP:1 重新发送有冲突延迟的数据包。
5:DTU:1 禁止重新发送“underruned”数据包。
4:ONEPM:单包模式。1 发送完成前发送一个数据包的命令能被执行,0 发送完成前发送
两个以上数据包的命令能被执行。
3-0:IFGS:帧间间隔设置。0XXX 为 96bit,1000 为 64bit,1001 为 72bit,1010 为 80bi
t,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:特殊模式使能。
6-3:保留。
2:FLC:强制冲突延迟。
1:FB1:强制最长“Back-off”时间。
0:FB0:强制最短“Back-off”时间。
ETXCSR(30H):传输前(Early)控制、状态寄存器(Early Transmit Control/Status Register)
7:ETE:传输前使能。
6:ETS2:传输前状态 2。
5:ETS1:传输前状态 1。
4-2:保留。
1-0:ETT:传输前门限。当写到发送 FIFO 缓存里的数据字节数达到该门限,则开始传输。
00 为 12.5%,01 为 25%,10 为 50%,11 为 75%。
TCSCR(31H):传输校验和控制寄存器(Transmit Check Sum Control Register)
7-3:保留。
2:UDPCSE:UDP 校验和产生使能。
1:TCPCSE:TCP 检验和产生使能。
0:IPCSE:IP 校验和产生使能。
RCSCSR(32H):接收校验和控制状态寄存器(Receive Check Sum Control Status Regist
er )
7:UDPS:UDP 校验和状态。1 表示 UDP 数据包校验失败。
6:TCPS:TCP 校验和状态。1 表示 TCP 数据包校验失败。
5:IPS:IP 校验和状态。1 表示 IP 数据包校验失败。
4:UDPP:1 表示 UDP 数据包。
3:TCPP:1 表示 TCP 数据包。
2:IPP:1 表示 IP 数据包。
1:RCSEN:接收检验和检验使能。1 使能校验和校验,将校验和状态位(bit7-2)存储到数
据包的各自的报文头的第一个字节。
0:DCSE:丢弃校验和错误的数据包。1 使能丢弃校验和错误的数据包,若 IP/TCP/UDP
的校验和域错误,则丢弃该数据包。
MRCMDX(F0H):存储器地址不变的读数据命令(Memory Data Pre-Fetch Read Command
Without Address Increment Register)
7-0:MRCMDX:从接收 SRAM 中读数据,读取之后,指向内部 SRAM 的读指针不变。
MRCMDX1(F1H):存储器读地址不变的读数据命令(Memory Data Read Command With A
ddress Increment Register
同上。
MRCMD(F2H):存储器读地址自动增加的读数据命令(Memory Data Read Command With
Address Increment Register)
7-0:MRCMD:从接收 SRAM 中读数据,读取之后,指向内部 SRAM 的读指针自动增加 1、
2 或 4,根据处理器的操作模式而定(8 位、16 位或 32 位)。
MRRL(F4H):存储器读地址寄存器低半字节(Memory Data Read_ address Register Low
Byte)
7-0:MDRAL
MRRH(F5H):存储器读地址寄存器高半字节 Memory Data Read_ address Register High
Byte
7-0:MDRAH:若 IMR 的 bit7=1,则该寄存器设置为 0CH。
MWCMDX(F6H):存储器读地址不变的读数据命令(Memory Data Write Command Without
Address Increment Register)
7-0:MWCMDX:写数据到发送 SRAM 中,之后指向内部 SRAM 的写地址指针不变。
MWCMD(F8H):存储器读地址自动增加的读数据命令(Memory Data Write Command With
Address Increment Register)
7-0:MWCMD:写数据到发送 SRAM 中,之后指向内部 SRAM 的读指针自动增加 1、2 或
4,根据处理器的操作模式而定(8 位、16 位或 32 位)。
MWRL(FAH):存储器写地址寄存器低半字节(Memory Data Write_ address Register Low
Byte)
7-0:MDRAL
MWRH(FBH):存储器写地址寄存器高半字节(Memory Data Write _ address Register Hi
gh Byte)
7-0:MDRAH
TXPLL(FCH):发送数据包长度寄存器低半字节(TX Packet Length Low Byte Register)
7-0:TXPLL
TXPLH(FDH):发送数据包长度寄存器高半字节(TX Packet Length High Byte Register)
7-0:TXPLH
ISR(FEH):终端状态寄存器(Interrupt Status Register)
7-6:IOMODE:处理器模式。00 为 16 位模式,01 为 32 位模式,10 为 8 位模式,00 保
留。
5:LNKCHG:连接状态改变。
4:UDRUN:传输“Underrun”
3:ROOS:接收溢出计数器溢出。
2:ROS:接收溢出。
1:PTS:数据包传输。
0:PRS:数据包接收。
ISR 寄存器各状态写 1 清除
IMR(FFH):终端屏蔽寄存器(Interrupt Mask Register)
7:PAR:1 使能指针自动跳回。当 SRAM 的读、写指针超过 SRAM 的大小时,指针自动
跳回起始位置。需要驱动程序设置该位,若设置则 REG_F5(MDRAH)将自动位 0CH。
6:保留。
5:LNKCHGI:1 使能连接状态改变中断。
4:UDRUNI:1 使能传输“Underrun”中断。
3:ROOI:1 使能接收溢出计数器溢出中断。
2:ROI:1 使能接收溢出中断。
1:PTI:1 使能数据包传输终端。
0:PRI:1 使能数据包接收中断。
注释:表示在 DM9000 初始化中要用到的寄存器。
访问以上寄存器的方法是通过总线驱动的方式,即通过对 IOR、IOW、AEN、CMD 以及 S
D0--SD15 等相关引脚的操作来实现。其中 CMD 引脚为高 电平时为写寄存器地址,为低电平
时为写数据到指定地址的寄存器中。详细过程请参考数据手册中“读写时序”部分。
在 DM9000(A)中,还有一些 PHY 寄存器,也称之为介质无关接口 MII 寄存器,需要我们去
访问。这些寄存器是字对齐的,即 16 位宽。下面列出三个常用的 PHY 寄存器。
BMCR(00H):基本模式控制寄存器(Basic Mode Control Register)
15:reset:1PHY 软件复位,0 正常操作。复位操作使 PHY 寄存器的值为默认值。复位操
作完成后,该位自动清零。
14: loopback:1Loop-back 使能,0 正常操作。
13:speed selection:1 为 100Mbps,0 为 10Mbps。连接速度即可以根据该位选择,也
可以根据第 12 位,即自动协商选择。当自动协商使能时,即第 12 位为 1,该位将会返回自动
协商后的速度值。
12:auto-negotiation enable:1 自动协商使能。使得第 13 位和第 8 位的值反应自动协商
后的状态。
11:power down:POWER_DOWN 模式。1 为 POWER_DOWN,0 为正常操作。在 PO
WER_DOWN 状态下,PHY 应当响应操作处理。在转变到 POWER_DOWN 状态或已经运行在
POWER_DOWN 状态下时,PHY 不会在 MII 上产生虚假信号。
10: isolate:1 除了一些操作外,PHY 将从 MII 中隔离,0 为正常操作。当该位置位,PH
Y 不会响应 TXD[3:0],TX_EN 和 TX_ER 输入,并且在 TX_CLK,RX_CLK,RX_DV,RX_ER,
RXD[3:0], COL 和 CRS 输出上为高阻态。当 PHY 被隔离,则它将响应操作处理。
9:restart auto-aegotiation:1 重新初始化自动协商协议,0 为正常操作。当第 12 位禁止
该功能,则该位无效。初始化后该位自动清零。
8:duplex mode:1 为全双工操作,0 为正常操作。当第 12 位被禁止(置 0)时该位被置位,
若第 12 位被置位,则该位反应自动协商后的状态。
7:collision test:1 为冲突测试使能,0 为正常操作。若该位置位,声明 TX_EN 将引起 C
OL 信号被声明。
6-0:保留。
ANAR(04H):自动协商广告寄存器(Auto-negotiation Advertisement Register)
15:NP:0 表示无有效的下一页,1 表示下一页有效。PHY 没有下一页,所以该位始终为
0。
14:ACK:1 表示连接对象数据接收认证,0 表示无认证。PHY 的自动协商状态机会自动
控制该位。
13:RF:1 表示本地设备处于错误状态,0 为无错误检验。
12-11:保留。
10:FCS:1 表示处理器支持溢出控制能力,0 表示不支持。
9:T4:1 表示本地设备支持 100BASE-T4,0 表示不支持。PHY 不支持 100BASE-T4,所
以该位永远是 0。
8:TX_FDX:1 为本地设备支持 100BASE-TX 全双工模式,0 为不支持。
7:TX_HDX:1 为本地设备支持 100BASE-TX,0 为不支持。
6:10_FDX:1 为本地设备支持 100BASE-T 全双工模式,0 为不支持。
5:10_HDX:1 为本地设备支持 100BASE-T,0 为不支持。
4-0:selecter:协议选择位,00001 为默认值,表示设备支持 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 为绕过接收时的解扰、符号队列、解码功能和发送时的符号编码、扰频
功能,0 正常操作。
12:BP_ADPOK:1 为强制信号探测功能使能,0 为正常操作。该位仅为调试使用
11:保留。
10:TX:1 表示 100BASE-TX 操作,0 保留。
9-8:保留。
7:F_LINK_100:0 为正常 100Mbps,1 为强制 100Mbps 良好连接状态。
6-5:保留,强制为 0.
4:RPDCTR-EN:1 为使能自动简化 POWER_DOWN,0 为禁止。
3:SMRST:1 为重新初始化 PHY 的状态机,初始化后该位自动清零。
2:MFPSC:1 表示 MII 帧引导抑制开启,0 表示关闭。
1:SLEEP:睡眠模式。该位置位将导致 PHY 进入睡眠模式,通过将该位清零唤醒睡眠模
式,其中配置将还原为睡眠模式之前的状态,但状态机将重新初始化。
0:RLOUT:该位置位将使接收到的数据放入发送通道中。
访问 PHY 寄存器的方法是:
(1)寄存器地址写到 EPAR/PHY_AR(0CH)寄存器中,注意将寄存器地址的第 6 位置 1(地址
与 0x40 或运算即可),以表明写的是 PHY 地址,而不是 EEPROM 地址。
(2)将数据高字节写到 PHY_DRH(0EH)寄存器中。
(3)将数据低字节写到 PHY_DRL(0DH)寄存器中。
(4)发送 PHY 命令(0x0a)到 EPCR/PHY_CR(0BH)寄存器中。
(5)延时 5us,发送命令 0x08 到 EPCR/PHY_CR(0BH)寄存器中,清除 PHY 写操作。
以上为 DM9000(A)常用寄存器功能的详细介绍,通过对这些寄存器的操作访问,我们便可以实
现对 DM9000 的初始化、数据发送、接收等相关操作。而要实现 ARP、IP、TCP 等功能,则需
要对相关协议的理解,由编写相关协议或移植协议栈来实现。
5.功能描述
1、总线
总线是 ISA 总线兼容模式,8 个 IO 基址,分别是 300H, 310H,320H, 330H, 340H, 350H,
360H, 370H。IO 基址与设定引脚或内部 EEPROM 的共同选定
访问芯片有两个地址端口,分别是地址端口和数据端口。当引脚 CMD 接地时,为地址端口;
当引脚 CMD 接高电平时,为数据端口。在访问任何寄存器前,地址端口输入的是数据端口的寄
存器地址,寄存器的地址必须保存在地址端口。
2、存储器直接访问控制
DM9000 提供 DMA(直接存取技术)来简化对内部存储器的访问。在对内部存储器起始地址
完成编程后,然后发出伪读写命令就可以加载当期数据到内部数据缓冲区,可以通过读写命令
寄存器来定位内部存储区地址。根据当前总线模式的字长使存储地址自动加 1,下一个地址数据
将会自动加载到内部数据缓冲区。要注意的是在连续突发式的第一次访问是读写命令的内容。
内部存储器空间大少 16K 字节。低 3K 字节单元用作发送包的缓冲区,其他 13K 字节用作
接收包的缓冲区。所以在写发送包存储区的时候,当存储器地址越界后,自动跳回 0 地址并置
位 IMR 第七位。同样在读接收包存储器的时候,当存储器地址越界后,自动跳回起始地址 0x0c
00。
3、包的发送
有两个指数,顺序命名为指针 1 和指针 2,能同时存储在发送包缓冲区。发送控制寄存器(0
2H)控制冗余校验码和填充的插入,其状态分别记录在发送状态寄存器 1(03H)和发送状态 2(04
H)
发送器的起始地址是 0x00H,软件或硬件复位后默认是指针 1,先通过 DMA 端口写数据到
发送包缓冲区,然后写字节计数长度到字节计数寄存器