基于以太网的嵌入式系统网络接口卡的设计<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
摘要: 介绍了以10M/100M自适应以太网控制器和DSP为基础的嵌入式系统以太网网络接口卡(NIC) 的接口电路及软硬件实现方法。
关键词: 嵌入式系统 NIC; 网络接口卡; LAN91C111 耦合隔离滤波器YL18-2050S
引言
当今社会己经进入数字信息技术和网络技术高速发展的后PC时代,嵌入式系统己经广泛渗透到科学研究、工程设计、军事技术、各类产业和商业文化艺术、娱乐业以及人们的日常生活等方方面面。随着网络技术的快速发展和互联网的广泛应用,各种家电设备、PDA、仪器仪表、工业生产中数据的采集与控制等设备正在逐渐走向网络化,以共享互联网络中庞大的信息资源。嵌入式设备的网络化开发有着广阔的前景。
本文以SMSC公司的LAN<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />91C111嵌入式以太网控制器为基础,介绍嵌入式系统网络接口卡(NIC)的软硬件设计。
LAN91C111芯片介绍
LAN91C111是SMSC公司生产的专门用于嵌入式产品的10M/100M第三代快速以太网控制器。其优良的性能、低功耗及小尺寸,使LAN91C111逐渐成为嵌入式NIC中的主流产品,其主要性能为:
·支持IEEE 802.3(ANSI8802-3)以太网标准
·自适应地选择传输速率,支持10M/100Mbps
·充分支持全双工交换式以太网,具有睡眠模式
·8KB内部存储器用作接受发送的FIFO缓存
·提前发送和接受功能
·硬件MMU
·通过串行EEPROM选择性配置□
·全双工传输模式
·可连接同轴电缆和双绞线,支持100Base-Tx/10Base-T,并可自动检测所连介质
·低功耗的CMOS设计。
一个IEEE 802.3数据帧由以下几部分组成: 前导位(Preamle)、帧起始位(SFD)、目的地址(destination)、源地址(source)、数据长度(1ength)、数据((data)、帧校验字(FCS)。如图1所示,数据的数量范围46B ~1500B。如一组要传送的数据为46B,就用零补足;超过1500B时,需要拆成多个帧传送。前导位、帧起始位和帧校验字仅供控制器本身用,主处理器收到的数据帧的组成依次包括:接收状态((1 B)、下一帧的页地址指针 (1 B)、目的地址(6B),源地址(6B)、数据长度/帧类型(2B)、数据。数据长度/帧类型的值小于或等于1500B时,表示数据帧的长度;反之,表示数据帧的类型。如值依次为x08, 0x00,表示数据为IP包;值依次为0x08, 0x06,表示数据为ARP包。
前导位 帧起始位 目的地址 源地址 数据长度 数据 帧校验字
62B
2B
6B
6B
2B
46B~1500B
4B
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />图1 IEEE802.3数据帧的组成
硬件电路
本设计采用的嵌入式处理器是TI公司的DSP(TMS320LF2407)。它采用低电耗CMOS技术,30MIPS的执行速率,片上还集成了丰富的外围部件(EVM、A/D模块、CAN、SCI、SPI及JTAG),工作频率40MHZ,有很大的存贮空间(高达32K字的FLASH程序存储器,可扩展外部64K字储存器,64K字I/O寻址空间),非常适合用来处理复杂的TCP/IP协议。
因为LAN91C111是为嵌入式系统设计,其外围电路相对比较简单。LANC91C111内部寄存器可通过对地址线A0, A1, A2, A3�牟僮骼捶梦剩刂纷芟逜1~A15 与DSP的A1~A15相连,A0没有被LAN91C111使用,悬空;数据总线D0~D15与DSP的D0~D15相连,用于16位数据传输,LAN91C111端D16~D32悬空(因为LF2407是16位数据总线);LAN91C111端的片选信号AEN由DSP的外部I/O接口选通信号IS提供。两元件的RD、WR相连。LAN91C111端的中断输出信号INTRO送入DSP的外部中断引脚XINT1 触发中断。YL18-2050S,是针对10M/100M以太网的变压滤波器。
LAN91C111使用引脚TPIN+, TPIN-, TPOUT+和TPOUT-连接耦合隔离滤波器YL18-2050S利用RJ-45插头实现与以太网的连接。其硬件框图如图2所示。
图2 嵌入式以太网卡接口硬件框图
外接的93C46是1Kbit的串行EEPRCM 64 X 16阵列,按字访问,用来存储以太网卡的MAC地址。MAC地址是48bit,预先烧写在EEPROM的指定位置。每次当OS启动加载网卡时,以太网控制器LAN91C111就从EEPROM的固定地址中读取MAC地址并存储在相应的寄存器中。图3是嵌入式以太网卡的电路图。
图3 嵌入式以太网卡电路图
LAN91C111内部8KB的RAM为数据包的传输接收提供缓冲,使全双工工作模式下数据传输率可达10M/100Mbps;MMU把RAM分成256B的页,并负责为每个数据帧分配一个或多个页。当主处理器传输数据时,MMU首先根据数据大小为其在RAM中分配若干页。在数据传送到RAM时,此数据帧的帧号也在TX FIFO中排队,然后此数据帧在轮到时传送到PHY模块进行Manchester编码,最后根据CSMA/CD协议把此数据帧传送到相应的介质上。
在介质上有数据时,LAN91C111将数据帧复制一份并传送到ENDEC模块进行Manchester解码,而CSMA/CD模块根据该数据帧头的目的地址是否为本网卡MAC
地址、广播或多播地址来决定此数据帧的取舍。若地址匹配,MMU为其在RAM中开辟相应大小的空间,并以中断的方式告知主处理器。在数据帧被取走后,MMU释放此块内存。
软件设计
μc/osⅡ是一种开放源码的占先式多任务实时嵌入式操作系统,具有可移植性、实时性、模块化等特点,是从整体上为有限资源的平台设计的多线程、完整优先级、多任务的操作系统,已被应用到多种微处理器上。本嵌入式设备运行μc/osⅡ操作系统。
对LAN91C111的软件操作采用中断处理方式:当系统有数据要传输时,首先把该数据传到LAN91C111,LAN91C111把数据封装成帧,加上前导字、校验字等部分,并检测到网络中没有数据在传输,才把此数据帧传输到网络中,并向系统提出中断,告知己成功传输数据;当LAN91C111接收到一数据帧时,首先由CSMA/CD模块察看此数据帧的目的地址,若为此网卡MAC地址、广播地址或多播地址,才向系统提出中断,并把此数据帧传到LAN91C111的数据寄存器中。系统对此包进行处理,察看是否校验字错误等,并剥去前导字,然后传给上层NDIS进行处理。
结语
基于上述方案的嵌入式以太网网络接口卡可以稳定地工作,实际网络速度可以达到90Mbps(依网络状况而定),并具有FTP等功能,产品的性能高,价格适中。
文章评论(0条评论)
登录后参与讨论