基于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占用率和转发率上都有更好表现,比其他网卡