嵌入式系统以太网卡控制器LAN91C96
摘要:以LAN91C96为例,介绍嵌入式以太网控制器基本结构;结合PXA250(XScale),分析嵌入式系统网络接口卡(NIC)软硬件设计。
关键词:嵌入式系统 NIC 网络接口卡 LAN91C96
引 言
当今社会已经进入数字信息技术和网络技术高速发展的后PC(Post-PC)时代,嵌入式系统已经广泛渗透到科学研究、工程设计、军事技术、各类产业和商业文化艺术、娱乐业以及人们的日常生活等方方面面;而网络技术的快速发展和互联网的广泛应用,使得嵌入式产品有了更广泛的前景。各种家电设备、PDA、仪器仪表、工业生产中数据的采集与控制等设备正在逐渐走向网络化,以共享互联网络中庞大的信息资源。嵌入式设备的网络化开发有着广阔的前景。
本文以SMSC公司的LAN91C96嵌入式以太网控制器为例,介绍嵌入式系统网络接口卡(NIC)的软硬件设计。
1 以太网控制器LAN91C96简介
LAN91C96是SMSC公司生产的专门用于嵌入式产品的10M以太网控制器。其优良的性能、低功耗及小尺寸,使LAN91C96成为嵌入式NIC中的主流产品。
图1
1.1 主要特点
◆ 支持IEEE802.3(ANSI8802-3)以太网标准
◆ 全双工收发方式,具有睡眠模式
◆ 6KB的片上RAM
◆ 与处理器接口可采用PCMCIA、ISA或Motorola 68000
◆ 支持先进的传输队列管理
◆ 硬件MMU
◆通过串行EEPROM选择性配置
◆ 全双工传输模式
◆可连接同轴电缆和双绞线,支持10Base5、10Base2、10BaseT,并可自动检测所连介质
◆ 高级的电源管理特性
◆ 支持“Magic Packet”电源管理技术
◆ 低功耗的CMOS设计
1.2 内部框架
图1是LAN91C96原理框图。
LAN91C96网卡控制其内部集成了6KB的RAM,用来存放数据包。内部的MMU、判决器和DMA对数据包的传输发送进行有效的管理。CSMA/CD(载波监听多路访问/冲突避免)模块集成了IEEE 802.3 MAC层协议,负责监听网络情况和地址过滤,若目的地址是LAN91C96的地址、广播地址或多播地址,则接收此数据包,否则抛弃。内部物理接口(PHY)包含一个ENDEC和10BaseT Transceiver。编解码器(ENDEC)负责曼彻斯特(Manchester)编解码,并提供标准6脚连接单元接口(AUI),外接同轴传输接收器,应用10Base2/5。传输数据时,10BaseT Transceiver负责把主控制器传过来的反向不归零码(NRZ)数据转换为Manchester数据,并以适当的电平加以驱动;接收时负责连接完整性测试。外接的串行电可擦除只读ROM(EEPROM)中可存储网卡的MAC地址,当OS启动加载网卡时,以太网控制器就从EEPROM的固定地址中读取MAC地址并存储在相应的寄存器中。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1.3 工作原理
LAN91C96内部6KB的RAM为数据包的传输接收提供缓冲,使全双工工作模式下数据传输率可达10Mbps;MMU把RAM分成256B的页,并负责为每个数据帧分配一个或多个页。
当主处理器传输数据时,MMU首先根据数据大小为其在RAM中分配若干页。在数据传送到RAM时,此数据帧的帧号也在TX FIFO中排队,然后此数据帧在轮到时传送到PHY模块进行Manchester编码,最后根据CSMA/CD协议把此数据帧传送到相应的介质上。
在介质上有数据时,LAN91C96将数据帧复制一份并传送到ENDEC模块进行Manchester解码,而CSMA/CD模块根据该数据帧头的目的地址是否为本网卡MAC地址、广播或多播地址来决定此数据帧的取舍。若地址匹配,MMU为其在RAM中开辟相应大小的空间,并以中断的方式告知主处理器。在数据帧被取走后,MMU释放此块内存。
1.4 数据帧的构成
一个IEEE 802.3数据帧由以下几个部分组成:前导位(preamle)、帧起始位(SFD)、目的地址(destination)、源地址(source)、数据长度(length)、数据(data)、帧校验字(FCS)。如图2所示,数据的数量范围46~1500B,如一组要传送的数据为46B,就用零补足;超过1500B时,需要拆成多个帧传送。前导位、帧起始位和帧校验字仅供控制器本身用,主处理器收到的数据帧的组成依次包括:接收状态(1B)、下一帧的页地址指针(1B)、目的地址(6B)、源地址(6B)、数据长度/帧类型(2B)、数据。数据长度/帧类型的值小于或等于1500B时,表示数据场的长度;反之,表示数据帧的类型。如值依次为 0x08、0x00,表示数据为IP包;值依次为0x08、0x06,表示数据为ARP包。
2 以太网卡设计方案
2.1 硬件设计方案
此设计方案采用的嵌入式处理器是Intel公司的PXA250(XScale)。该处理器是Intel为了满足便携式和嵌入式应用需求而优化的微处理器。PXA250基于Intel XScale微体系结构,RISC架构,最高可以运行400MHz。 PXA250采用ARM指令、数据高速缓存、内存管理单元(MMU)和读/写缓冲器。另外,PXA250提供系统支持逻辑、多串行通信通道、彩色/灰度刻度LCD控制器、支持PCMCIA、通用I/O端口、USB、串口、红外接口、JTAG、音频等。
图3是嵌入式以太网卡的原理图。LANC91C96内部寄存器可通过对地址线A0、A1、A2、A3……的操作来访问,LAN91C96内部寄存器宽度是16bit;而PXA250的访问宽度是32bit,所以LANC91C96的A1、A2、A3……分别与PXA250的A2、A3、A4……相连。LANC91C96的数据访问宽度是16bit,所以其16根数据线与PXA250的低16根数据线相连。中断INTR0与PXA250的GPIO11相连。
外接的93C46是1Kbit的串行EEPROM,64×16阵列,按字访问,用来存储以太网卡的MAC地址。MAC地址是48bit,预先烧写在EEPROM的指定位置。每次系统启动时,LAN91C96从EEPROM重读出自己的MAC地址,存在指定的寄存器中。EX2001是针对10M以太网的变压滤波器。
图3