0 引 言
本文引用地址:http://www.eepw.com.cn/article/248083.htm基於PCI總線的乙太網控制器是現在以致將來網絡應用方面的一個主要發展方向。8位ISA網卡目前已被淘汰,市場上常見的是16位ISA接口的 10 Mb/s網卡,它的惟一好處就是價格低廉,適合於一些如網吧等要求不高的場合使用。而VESA、EISA網卡速度雖然快,但價格較貴,市場很少見。目前市場上的主流網卡是PCI總線的網卡。CPCI技術是在PCI技術基礎之上經過改造而成,基於CPCI乙太網卡性能更高。該文就是要設計一種高性能又不增加晶片成本的乙太網卡電路。在仔細分析乙太網的原理和理解CPCI總線原理的基礎上,以Intel 82551為例研究設計了一種高效的乙太網卡電路。
1 CPCI的特點
CPCI(Compact Peripheral Computer Intercon-nect,緊湊的PCD具有以下特點:
(1)繼續採用PCI局部總線技術;
(2)拋棄IPC傳統機械結構,改用經過20年實踐檢驗了的高可靠歐洲卡結構,改善了散熱條件,提高了抗振動衝擊能力,符合電磁兼容性要求;
(3)拋棄IPC的金手指式互連方式,改用2 mm密度的針孔連接器,具有氣密性、防腐性,進一步提高了可靠性,並增加了負載能力。
2 Intel 82551乙太網控制晶片簡介
Intel 82551是Intel公司的一款高集成的乙太網控制晶片,它的主要功能是實現乙太網幀的收發。它集成了10/100 Base-T MAC控制器和10/100 Base-TPHY控制器,支持數據的全雙工或半雙工傳輸,支持自動協商,支持10/100 Mb/s傳輸速率,支持流控機制。
2.1 Intel 82551晶片結構
Intel 82551由五個單元組成:並行子系統、FIFO系統、Manageability系統、CSMA/CD 單元、PHY單元。並行子系統包括FLASH/E2PROM接口、PCI接口、DMA通道和微碼引擎。Intel 82551具備128 KB尋址能力的FLASH和E2PROM接口,外擴的FLASH或E2PROM主要用來儲MAC地址和一些配置信息。Intel 82551通過CPCI接口掛接到CPCI總線上,與CPU間的數據傳輸通過DMA(Direct Memory Access,直接內存存取)的方式進行,這種方式是Intel82551向CPU申請CPCI總線控制權,在不需CPU的幹預下與系統內存之間進行數據的傳輸,而且Intel82551具有Scatter/Gather(分散/集聚)能力,能夠支持連續地訪問內存物理地址不連續的數據塊。微碼引擎的主要任務是將系統內存空間的數據緩衝區的指針告訴DMA單元,以便Intel 82551直接訪問數據緩衝區。微碼引擎具體分為CU(發送單元)和RU(接收單元)兩個相互獨立的部分,CU控制數據的發送,RU控制數據的接收,均不需CPU的幹預,是控制Intel 82551數據收發的主要功能模塊。FIFO子系統包括3 KB的發送緩衝區,3 KB的接收緩衝區,以及FIFO控制器。它的作用是在並行子系統和CSMA/CD子系統之間起數據緩衝的作用。
10/100 Mb/s CS/CD子系統執行802.3協議定義的功能,比如幀重組、碰撞的檢測等。10/100 Mb/sPHY子系統直接連接到10/100 Mb/s的網絡,支持100 Base-Tx Fullduplex,100 Base-Tx Halfduplex,10 Base-Tx Fullduplex,10 Base-Tx Halfduplex。
2.2 Intel 82551寄存器
Intel 82551乙太網控制晶片的操作命令主要是通過SCB(Control/Status Register)寄存器來控制。SCB的格式如表1所示。
其中偏移地址為00h的低16位是SCB的狀態位,每一位都對應表示中斷的狀態,引起中斷的原因,以及CU和RU的狀態。高16位是命令位,通過向該命令位寫入命令字,控制Intel 82551的各種行為。偏移地址為04h的是指向命令塊的指針,由於Intel82551是通過CU單元來執行各種命令塊,所以要告知CU單元所執行的命令的地址。Intel 82551晶片還有一系列的特殊命令,例如Nop,Configue,Transmit和Receive等命令。
3 CPCI總線與Intel 82551連接方法
CPCI是一種同步總線,數據/地址復用,總線寬度為32位,可以擴展到64位,最高工作頻率為64 MHz。支持快速背對背傳輸、碎發傳輸及Cache操作,具有較高的傳輸速率、數據吞吐率和良好的擴展性。連接方法如圖1所示。
4 Intel 82551與傳輸介質接口
要實現乙太網接口,乙太網變壓器是不可缺少的。在差分接收引腳(RX+/RX-)上,需要1個專用於10 Base-T操作的1:1脈衝變壓器;在差分發送引腳(TX+/TX-)上,需要外接1個帶有中心抽頭的1:2.5脈衝變壓器。變壓器應具有2 kV以上的電壓隔離性能,以防止靜電幹擾。接口電路如圖2所示。
5 乙太網控制晶片配置
其他的,還有一顆E2PROM晶片,通常是一顆93C46。裡面記錄了網卡晶片的供應商ID、子系統供應商ID、網卡的MAC地址、網卡的一些配置,如SMI總線上PHY的地址,BootROM的容量,是否啟用BOOTROM引導系統等。
在系統啟動時,CPU遍歷查找PC總線以及設備,為其分配所需要的資源,並映射其設備空間。其查找的依據就是PCI配置空間中的DeviceID和VendorID這兩個欄位。
它表示系統中可能存在VendorID為0x8086(表明是Intel公司生產的),DeviceID為0x1209(Intel 82551在Intel公司的序號)的設備,這樣的設備可以有多個。使用eeupdate工具對93C46在線讀寫,寫入內容如下:
6 結 語
網卡插入系統運行良好,連上HUB,與其他系統收發數據正常。Chariot(網絡戰車)是一款權威的網絡測試軟體,它可以模擬出多種網絡使用環境,測量網絡的數據吞吐量、傳輸速率等數據。利用Chariot來測試這款網卡和市場購買的網卡。用 Chariot測試時,先找來A、B兩臺電腦,將兩臺電腦對連並裝上Chariot。A電腦作為測試機,兩款網卡就裝在這臺機器上,將網線分別插到A電腦的不同網卡上就可以進行測試了。Intel82559網卡由於處理器性能更強,所以無論在傳輸速率、CPU佔用率和轉發率上都有更好表現,比其他網卡更強。