引 言
当今社会已经进入数字信息技术和网络技术高速发展的后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)、数据长度/帧类型(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
2.2 软件设计方案
该嵌入式设备运行Windows CE.net操作系统。Windows CE是一个抢先式多任务并具有强大通信和图形显示功能的Win32嵌入式操作系统,具有可移植性、实时性、模块化等特点;是微软专门为信息设备、移动应用、消费类电子产品、嵌入式应用设计的高性能操作系统。Windows CE是从整体上为有限资源的平台设计的多线程、完整优先级、多任务的操作系统。其模块化设计允许它对于从掌上电脑到专用工业控制器的用户电子设备进行定制。
对LAN91C96的软件操作采用中断处理方式:当系统有数据要传输时,首先把该数据传到LAN91C96,LAN91C96把数据封装成帧,加上前导字、校验字等部分,并检测到网络中没有数据在传输,才把此数据帧传输到网络中,并向系统提出中断,告知已成功传输数据;当LAN91C96接收到一数据帧时,首先由CSMA/CD模块察看此数据帧的目的地址,若为此网卡MAC地址、广播地址或多播地址,才向系统提出中断,并把此数据帧传到LAN91C96的数据寄存器中。系统对此包进行处理,察看是否校验字错误等,并剥去前导字,然后传给上层NDIS进行处理。
3 结 论
基于上述方案的嵌入式以太网卡可以稳定地工作,实际网络速度可以达到9Mbps(依网络状况而定),并具有FTP等功能。
- 嵌入式系(13927)
- 1C96(5811)
相关推荐
基于嵌入式系统的以太网控制器设计
2198
嵌入式工业以太网控制器的设计和应用
881嵌入式工业以太网的应用研究
1371
100MByte自适应以太网口怎么扩展?
C 语言嵌入式系统
LAN91C96
以太网接口怎么实现嵌入式系统的网络互连?
嵌入式以太网控制器WIZNET相关资料推荐
嵌入式以太网开发
嵌入式系统硬件层嵌入式处理器
Android系统启动以太网卡及支持双网卡共存的操作流程
TMS320LF2407与LAN91C111型嵌入式以太网接口电路的实现方法是什么?
TransFlash存储卡在嵌入式系统调试中有哪些应用?
亚信USB以太网卡macOS Big Sur 11.3驱动程序安装疑难问题排除步骤
什么是嵌入式以太网数字语音广播系统解决方案?
单片机以太网控制器LAN91C111资料推荐
基于嵌入式以太网控制的接口电路及软硬件实现方法
基于嵌入式系统的以太网接口电路实现设计
基于嵌入式操作系统μcLinux怎么实现对网卡的驱动?
基于嵌入式模块comX的实时以太网
基于嵌入式微控制器LPC2214的远程图像监控系统
基于AM186ed嵌入式系统以太网接口设计和实现
基于ARM7内核和嵌入式系统的VME总线控制器的研制
基于CP2200的嵌入式系统以太网接口
基于DSP的嵌入式以太网接口电路设计
基于FPGA的嵌入式以太网接口硬件设计
基于Linux的嵌入式工业测控系统该怎么设计?
基于MCU的嵌入式物联网设计中的以太网连接
基于TCP IP协议栈的嵌入式以太网终端设计
基于双以太网处理器Jupiter实现嵌入式设备网络的设计
基于实时操作系统的嵌入式控制器的设计
如何完成嵌入式串行千兆以太网的设计
如何设计一个由LPC2378和MAX4357构成的嵌入式系统?
学FPGA为什么要学以太网控制器
怎么实现嵌入式以太网数字语音广播系统的设计?
怎么实现基于S3C4480X的嵌入式以太网接口设计?
怎样去设计一种基于嵌入式Linux的千兆以太网卡驱动程序
怎样在嵌入式操作系统μcLinux下实现对网卡的驱动?
推荐:AT91RM9200嵌入式核心控制器模块
请问嵌入式系统实现以太网,TCP/IP协议栈是都是移植的吗?
请问怎样去设计嵌入式以太网控制器?
请问有synopsys三速以太网卡的驱动文件吗?
谁知道SOPC技术在嵌入式工业以太网中有哪些应用呢?
高效的以太网卡电路怎么实现?
基于EPA的嵌入式控制器软件协议栈实现
12基于CP2200 的嵌入式系统以太网接口设计
15基于ARM 嵌入式以太网接口设计与实现Design and
52嵌入式以太网工业设备接入系统的设计
12高性能嵌入式工业以太网监控系统设计
14基于以太网和嵌入式Web Server的控制系统设计研究
25嵌入式以太网设计
748
基于CPCI总线10/100 Mb/s以太网卡的设计与实现
1161
Intel发布业界首款双网口10Gb以太网卡
924SFN5122F低功耗低延迟10G以太网卡
1554基于以太网的PXI系统控制器
32结合LAN91C96的嵌入式TCP/IP开发
1683TMS320LF2407与LAN91C111型嵌入式以太网接口电路的实现
2708
以太网控制器_以太网控制器2012完整版
0亚信电子推出针对嵌入式网络应用USB转以太网控制芯片AX88772C
4136lan91c96局部总线PCMCIA集成以太网控制器
1嵌入式以太网控制器设计
684
具有RGMII的超高速USB的以太网控制器LAN7801详细中文数据手册
60LAN7500和LAN7500i高速USB 2.0以太网控制器的数据手册免费下载
4W5500 TCP IP嵌入式以太网控制器的数据手册免费下载
1智能千兆以太网网络门禁控制器专为恶略军事环境设计
4218基于通用型单片机和以太网控制器实现嵌入式以太网接口的设计
2910
LAN9512和LAN9513及LAN9514以太网控制器的数据手册免费下载
12基于Intel 82551以太网控制芯片实现CPCI以太网卡电路的设计
2930
什么是以太网卡 以太网卡的未来
1385以太网卡、IB网卡的详细介绍以及区别分析
3808
LAN9221I-ABZJ 以太网控制器详细参数
1194
LAN9730I-ABZJ 以太网控制器
1054
高度灵活的以太网控制器|LAN Module 13.2上线!
580
PXIe40G以太网卡资料文件
7
电子发烧友App



评论