嵌入式系统以太网卡控制器LAN91C96
发布时间:2008/5/27 0:00:00 访问次数:369
摘要:以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地址并存储在相应的寄存器中。
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)、
摘要:以lan91c96为例,介绍嵌入式以太网控制器基本结构;结合a250(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地址并存储在相应的寄存器中。
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)、