基于CPCI总线10_100Mb以太网卡的设计与实现
- 格式:pdf
- 大小:177.21 KB
- 文档页数:3
基于CPCI总线10/100Mb/s以太网卡的设计与实现
程增艳,王 丽
(中船重工集团第七二二研究所 湖北武汉 430079)
摘 要:设计一款基于CPCI总线的以太网卡。基于CPCI总线,详细描述了Intel82551以太网控制器的性能特点,并详
细介绍该网卡的硬件和软件设计。给出以太网控制芯片与CPCI总线以及与传输介质的电路设计,对该芯片的配置做出详
细的说明。经实践证明该网卡无论在传输速率、CPU占用率和转发率上都有很好的表现。
关键词:CPCI总线;以太网;传输介质;网卡
中图分类号:TP393.11 文献标识码:A 文章编号:1004-373X(2009)17-082-03
DesignandImplementof10/100Mb/sNetworkCardBasedonCPCI
CHENGZengyan,WANGLi(CSICNo.722Research&DevelopmentInstitute,Wuhan,430079,China)
Abstract:AstudyofspecialnetworkcardboardbasedonCPCIisintroduced.BasedonCPCI,thefeaturesandthefunc2
tionsofIntel82551aregiven,andthedetailsofhardwareconnectionandsoftwaredesignarealsopresented.Theinterfacecir2
cuitofEthernetcontrollerIntel82551,CPCIBusandtransmittingmediaareilluminated.TheconfigurationofIntel82551is
explainedparticularly.Thisnetworkcardimprovesnetworkproductivity,increasesperformanceandprovidesefficiencyfor
hostprocessing.
Keywords:CPCIbus;Ethernet;transmittingmedia;networkcard
收稿日期:2008-11-170 引 言
基于PCI总线的以太网控制器是现在以致将来网
络应用方面的一个主要发展方向。8位ISA网卡目前
已被淘汰,市场上常见的是16位ISA接口的10Mb/s
网卡,它的惟一好处就是价格低廉,适合于一些如网吧
等要求不高的场合使用。而VESA、EISA网卡速度虽
然快,但价格较贵,市场很少见。目前市场上的主流网
卡是PCI总线的网卡。CPCI技术是在PCI技术基础
之上经过改造而成,基于CPCI以太网卡性能更高。该
文就是要设计一种高性能又不增加芯片成本的以太网
卡电路。在仔细分析以太网的原理和理解CPCI总线
原理的基础上,以Intel82551为例研究设计了一种高效
的以太网卡电路。
1 CPCI的特点
CPCI(CompactPeripheralComputerIntercon2
nect,紧凑的PCI)具有以下特点:
(1)继续采用PCI局部总线技术;
(2)抛弃IPC传统机械结构,改用经过20年实践检验了的高可靠欧洲卡结构,改善了散热条件,提高了
抗振动冲击能力,符合电磁兼容性要求;
(3)抛弃IPC的金手指式互连方式,改用2mm密
度的针孔连接器,具有气密性、防腐性,进一步提高了可
靠性,并增加了负载能力。
2 Intel82551以太网控制芯片简介
Intel82551是Intel公司的一款高集成的以太网控
制芯片,它的主要功能是实现以太网帧的收发。它集成
了10/100Base-TMAC控制器和10/100Base-T
PHY控制器,支持数据的全双工或半双工传输,支持自
动协商,支持10/100Mb/s传输速率,支持流控机制。
2.1 Intel82551芯片结构
Intel82551由五个单元组成:并行子系统、FIFO
系统、Manageability系统、CSMA/CD单元、PHY
单元。
并行子系统包括FLASH/E2PROM接口、PCI接
口、DMA通道和微码引擎。Intel82551具备128KB
寻址能力的FLASH和E2PROM接口,外扩的
FLASH或E2PROM主要用来储MAC地址和一些配
置信息。Intel82551通过CPCI接口挂接到CPCI总线
上,与CPU间的数据传输通过DMA(DirectMemory
28通信设备程增艳等:基于CPCI总线10/100Mb/s以太网卡的设计与实现
© 1994-2011 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.netAccess,直接内存存取)的方式进行,这种方式是Intel82551向CPU申请CPCI总线控制权,在不需CPU的
干预下与系统内存之间进行数据的传输,而且Intel
82551具有Scatter/Gather(分散/集聚)能力,能够支持
连续地访问内存物理地址不连续的数据块。微码引擎
的主要任务是将系统内存空间的数据缓冲区的指针告
诉DMA单元,以便Intel82551直接访问数据缓冲区。
微码引擎具体分为CU(发送单元)和RU(接收单元)两
个相互独立的部分,CU控制数据的发送,RU控制数据
的接收,均不需CPU的干预,是控制Intel82551数据
收发的主要功能模块。FIFO子系统包括3KB的发送
缓冲区,3KB的接收缓冲区,以及FIFO控制器。它的
作用是在并行子系统和CSMA/CD子系统之间起数据
缓冲的作用。
10/100Mb/sCS/CD子系统执行802.3协议定义
的功能,比如帧重组、碰撞的检测等。10/100Mb/s
PHY子系统直接连接到10/100Mb/s的网络,支持
100Base-TxFullduplex,100Base-TxHalfduplex,
10Base-TxFullduplex,10Base-TxHalfduplex。
2.2 Intel82551寄存器
Intel82551以太网控制芯片的操作命令主要是通
过SCB(Control/StatusRegister)寄存器来控制。SCB
的格式如表1所示。
表1 Intel82551SCB寄存器格式D31UpperWordD16D15LowerWordD0Offset
SCBCommandWordSCBStatusWord00h
SystemControlBlockGeneralPointer04h
PORT08h
E2PROMControlRegisterFlashControlRegister0Ch
ManagementDataInterface(MDI)ControlRegister10h
ReceiveDirectMemoryAccessByteCount14h
PMDRFlowControlRegisterReserved18h
ReservedGeneralStatusGeneralControl1Ch
Reserved20h
CommandBlockPointer24h
Reserved28h
Reserved2Ch
FunctionEventRegister30h
FunctionEventMaskRegister
34h
Function
PresentStateRegister38h
ForceEventRegister3Ch
其中偏移地址为00h的低16位是SCB的状
态位,每一位都对应表示中断的状态,引起中断的原因,以及CU和RU的状态。高16位是命令位,通过向该
命令位写入命令字,控制Intel82551的各种行为。偏
移地址为O4h的是指向命令块的指针,由于Intel
82551是通过CU单元来执行各种命令块,所以要告知
CU单元所执行的命令的地址。Intel82551芯片还有
一系列的特殊命令,例如Nop,Configue,Transmit和
Receive等命令。
3 CPCI总线与Intel82551连接方法
CPCI是一种同步总线,数据/地址复用,总线宽度
为32位,可以扩展到64位,最高工作频率为64MHz。
支持快速背对背传输、碎发传输及Cache操作,具有较
高的传输速率、数据吞吐率和良好的扩展性。连接方法
如图1所示。
图1 Intel82551与CPCI总线的连接
4 Intel82551与传输介质接口
要实现以太网接口,以太网变压器是不可缺少的。
在差分接收引脚(RX+/RX-)上,需要1个专用于
10Base
-T操作的1∶1脉冲变压器;在差分发送引脚
(TX+/TX-)上,需要外接1个带有中心抽头的
1∶215脉冲变压器。变压器应具有2kV以上的电压
隔离性能,以防止静电干扰。接口电路如图2所示。
图2 Intel82551与传输介质接口
5 以太网控制芯片配置
其他的,还有一颗E2PROM芯片,通常是一颗
93C46。里面记录了网卡芯片的供应商ID、子系统供应
商ID、网卡的MAC地址、网卡的一些配置,如SMI总
线上PHY的地址,BootROM的容量,是否启用
BOOTROM引导系统等。
38《现代电子技术》2009年第17期总第304期 通信与信息技术
© 1994-2011 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net在系统启动时,CPU遍历查找PC总线以及设备,为其分配所需要的资源,并映射其设备空间。其查找的
依据就是PCI配置空间中的DeviceID和VendorID这
两个字段。
它表示系统中可能存在VendorID为0x8086(表明
是Intel公司生产的),DeviceID为0x1209(Intel82551
在Intel公司的序号)的设备,这样的设备可以有多个。
使用eeupdate工具对93C46在线读写,写入内容如下:
XXXXXXXXXX 0203FFFF02014701FFFFA808970757A200708086007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1229FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03E4400041154003FFFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9FC
6 结 语
网卡插入系统运行良好,连上HUB,与其他系统收
发数据正常。Chariot(网络战车)是一款权威的网络测
试软件,它可以模拟出多种网络使用环境,测量网络的
数据吞吐量、传输速率等数据。利用Chariot来测试这
款网卡和市场购买的网卡。用Chariot测试时,先找来
A、B两台电脑,将两台电脑对连并装上Chariot。A电
脑作为测试机,两款网卡就装在这台机器上,将网线分
别插到A电脑的不同网卡上就可以进行测试了。Intel
82559网卡由于处理器性能更强,所以无论在传输速率、CPU占用率和转发率上都有更好表现,比其他网卡