1 RTL8139
RTL8139是带PCI接口的10M/100M自适应网卡控制芯片,它提供32位PCI总线控制,支持IEEE802.3u 100Base-T和IEEE802.3x的全双工流量控制;符合PCI 2.2标准,支持高级配置和电源接口(ACPI)和PCI对现代操作系统的电源管理(即对操作系统的直接电源管理),以提高电源管理的效率。此外,RTL8139还支持128KB的Boot ROM,提供网络唤醒和远程唤醒功能;含有2个2KB的收发FIFO;能够降低网络维护成本,消除使用障碍,而且可以很方便地使网络由10M升级到100M,且带宽可以达到200Mbps。RTL8139内部MAC层结构如图1所示。
1.1 RTL8139的PCI接口
PCI总线分为主(Master)、从(Target)二种类型,Master可以控制PCI总线,Target不能控制PCI总线。标准的主设备至少有49条线与PCI总线相连;从设备至少有47条线与PCI总线相连。RTL8139所提供的PCI接口有51条引脚,其引脚简介如下。
(1)地址/数据信号
AD31~0:地址、数据多路复用的输入/输出信号,在FRAMEB有效时,是地址期;在IRDYB和TRDYB同时有效时为数据期。
C/BE3~0:总线命令和字节使能多路复用信号,负责传输总线命令。在数据期,由传输字节使能信号来表示数据线上哪些字节是有效数据。
(2)接口控制信号
FRAMEB:帧周期信号,表示访问的开始和持续时间。
IRDYB、TRDYB:分别表示主、从设备准备好信号,二者必须配合使用,同时有效时方能进行数据传输。
STOPB:目标设备请求停止数据传输信号。
IDSEL:初始化设备选择信号,在参数配置读写传输期间,用作片选信号。
DEVSELB:设备选择信号。
(3)仲裁信号
REQB:总线占用请求信号,表示RTL8139申请总线控制权。
GNTB:总线占用允许信号,表示总线控制权已经交给RTL8139。
主设备都必须有以上2种信号。
(4)错误报告信号
PERRB:数据奇偶校验错误信号。
SERRB:系统错误信号。
(5)其他信号
CLK:时钟信号,最高可达33MHz。
CLKRUNB:时钟运行信号,这是RTL8139增设的信号,用来请求时钟开始和表示时钟状态。
RSTB:复位信号,低电平有效,至少需要120ns的宽度。
INTAB:中断请求信号,它需要与RTL8139的ISR和IMR寄存器配合使用。
在嵌入式系统中并不需要连接所有的引脚,可根据系统的实际需要进行选择。
1.2 主要寄存器
RTL8139的寄存器映射到I/O空间,I/O空间有256个地址,地址偏移量为00H~FFH。下面介绍几个比较重要的寄存器。
(1)Command Register
该寄存器地址偏移量为0037H,功能为软复位网卡,使能网卡的发送和接收。其描述如表1所示。