摘? 要: 提出了一種全新的計(jì)算機(jī)接入局域網(wǎng)的方案,使多臺計(jì)算機(jī)可以方便地使用各自的USB接口接入局域網(wǎng),并提供了該方案的實(shí)現(xiàn)方法。?
關(guān)鍵詞: 通用串行總線(USB)? 局域網(wǎng)?
?
目前,在局域網(wǎng)內(nèi)部,計(jì)算機(jī)接入局域網(wǎng)的傳統(tǒng)方法是通過在計(jì)算機(jī)主板上安裝以太網(wǎng)卡來實(shí)現(xiàn)網(wǎng)絡(luò)的互聯(lián)。這種接入方式需要計(jì)算機(jī)主板上有閑置的ISA或者PCI插槽,還需要上級網(wǎng)絡(luò)設(shè)備有足夠的接口支持。當(dāng)上級網(wǎng)絡(luò)設(shè)備的下行接口數(shù)量不夠時,必須在這個網(wǎng)絡(luò)設(shè)備下面添加集線器(HUB)或者交換機(jī)(Switcher)。?
針對這種情況,本文提出了一種多通用串行總線(USB)接口的局域網(wǎng)接入適配器。它將傳統(tǒng)意義上的多塊以太網(wǎng)卡和集線器的功能集于一身,使多臺計(jì)算機(jī)可以用各自的USB接口連接到上級網(wǎng)絡(luò)設(shè)備的一個下行接口,并在內(nèi)部采用了比集線器功能更為強(qiáng)大的交換控制器,對各接口的數(shù)據(jù)流量加以控制,保證可靠地運(yùn)行。?
與傳統(tǒng)的通過以太網(wǎng)卡的局域網(wǎng)接入方式相比較,這種通過USB接口的局域網(wǎng)接入方式具有很多優(yōu)點(diǎn):安裝簡便,支持熱插拔,而且不需要在計(jì)算機(jī)內(nèi)部安裝以太網(wǎng)卡,尤其在主板插槽緊張時節(jié)省了資源。?
1 系統(tǒng)硬件組成?
本文所述的系統(tǒng)實(shí)現(xiàn)了對四路USB接口的局域網(wǎng)接入。圖1是整個系統(tǒng)的硬件組成框圖。?
?
?
1.1 物理層?
物理層芯片" title="物理層芯片">物理層芯片連接上級網(wǎng)絡(luò)設(shè)備的下行RJ45接口和交換控制器。本文所述系統(tǒng)用臺灣REALTEK公司的RTL8204芯片實(shí)現(xiàn)。這塊芯片是一塊高度集成的10BASE-T/100BASE-TX/FX的以太網(wǎng)收發(fā)芯片。RTL8204包括了四個獨(dú)立的通道,可以同時收發(fā)四路以太網(wǎng)信號,每路通道都集成了4B5B編解碼器、曼徹斯特編解碼器、加擾器、解擾器、輸出驅(qū)動、輸出波形形成、濾波、數(shù)字自適應(yīng)均衡和鎖相環(huán)模塊。但在本系統(tǒng)中只用了一路連接外部局域網(wǎng)。與普通物理層芯片所具有的介質(zhì)獨(dú)立(MII)接口相比較,RTL8204使用了相對簡單的簡化介質(zhì)獨(dú)立(RMII)接口向上與MAC層進(jìn)行連接。這種RMII接口省掉了MII接口中的許多控制信號和數(shù)據(jù)信號,將15位信號減到了7位,簡化了硬件的設(shè)計(jì)工作[3]。?
1.2 交換控制器?
本系統(tǒng)采用的交換控制器是臺灣REALTEK公司的RTL8308B芯片。這是一塊具有8端口10Mbps/100Mbps" title="100Mbps">100Mbps的交換控制器。它對各個端口的數(shù)據(jù)進(jìn)行處理并交換,并對各端口的流量加以控制。RTL8308B每個端口都能夠處理10Mbps或者100Mbps的數(shù)據(jù),可以工作在全雙工" title="全雙工">全雙工或者半雙工" title="半雙工">半雙工模式下。與RTL8204一樣,RTL8308B的接口也是RMII接口,硬件設(shè)計(jì)非常方便。?
RTL8308B片內(nèi)集成有2MB的DRAM,可以用作數(shù)據(jù)包的緩存。RTL8308B支持IEEE802.3x全雙工流量控制和半雙工后退壓力算法、地址學(xué)習(xí)算法、廣播風(fēng)暴控制和環(huán)路測試功能。RTL8308B片外用一片串行EEPROM 24LC02B實(shí)現(xiàn)對芯片的配置[4]。?
1.3 USB轉(zhuǎn)換芯片?
USB轉(zhuǎn)換芯片" title="轉(zhuǎn)換芯片">轉(zhuǎn)換芯片對USB接口的數(shù)據(jù)、控制信號和RMII接口的數(shù)據(jù)、控制信號進(jìn)行轉(zhuǎn)換。本系統(tǒng)采用臺灣ASIX公司的AX88170作為USB協(xié)議轉(zhuǎn)換芯片。這塊芯片片內(nèi)有5KB×16bit的SRAM,內(nèi)部對數(shù)據(jù)進(jìn)行USB協(xié)議和網(wǎng)絡(luò)協(xié)議轉(zhuǎn)換。它支持USB1.1標(biāo)準(zhǔn),并可連接基于IEEE 802.3或IEEE 802.3u以太網(wǎng)協(xié)議下的10Mbps/100Mbps網(wǎng)絡(luò),而且在支持MII接口的同時,還支持簡單的RMII接口,方便硬件的設(shè)計(jì)。?
AX88170片外用一片串行EEPROM 93LC56實(shí)現(xiàn)對芯片的配置[5]。?
1.4 通用串行總線(USB)接口?
通用串行總線(USB)設(shè)備在即插即用的特性上能夠較好地滿足用戶使用方便的要求。USB規(guī)范目前有兩個版本:1.1和2.0。目前,絕大多數(shù)計(jì)算機(jī)主板還只是支持USB 1.1規(guī)范的最高12Mbps速率,所以本系統(tǒng)是針對USB 1.1規(guī)范進(jìn)行的[1]。?
2 硬件配置?
2.1 RTL8308B的配置?
交換控制器RTL8308B的配置是通過芯片在上電時讀取串行EEPROM 24LC02B及某些控制引腳的電平來實(shí)現(xiàn)的。這其中包括廣播控制使能、半雙工后退壓力函數(shù)使能、全雙工流量控制、環(huán)路監(jiān)測函數(shù)使能位、CRC校驗(yàn)允許位、Hash算法使能位等。對這些控制位的使能,本系統(tǒng)視需要而定,這里不再一一敘述。?
此外,非常重要的是選擇好RTL8308B的物理端口,并設(shè)置好其對應(yīng)的物理地址。如果物理地址沒有設(shè)置正確,交換控制器將不能正常地從連接端口交換數(shù)據(jù)。在本系統(tǒng)中,根據(jù)芯片手冊要求及實(shí)際需要,選取C端口連接RTL8204的C端口,E、F、G、H分別連接4片USB轉(zhuǎn)換芯片AX88170。在EEPROM 24LC02B內(nèi)設(shè)置好物理端口對應(yīng)的物理地址,使RTL8308B的A端口到H端口對應(yīng)著物理地址08H~0FH。?
2.2 RTL8204的配置?
RTL8204的系統(tǒng)配置通過讀取某些控制引腳上電時刻的電平來實(shí)現(xiàn)。RTL8204在上電時讀取對應(yīng)的引腳電平,并將其狀態(tài)寫入自己的內(nèi)部寄存器中。這些控制引腳包括速率的選擇(10Mbps/100Mbps)、全雙工/半雙工的選擇以及自動協(xié)商的使能。本系統(tǒng)選擇了自動協(xié)商工作方式,使RTL8204可以自動地與傳輸方式未知的上級網(wǎng)絡(luò)設(shè)備協(xié)商物理層信號的傳輸方式。?
除此以外,對RTL8204最重要的配置是其端口的物理地址的設(shè)置。本系統(tǒng)用RTL8204的C端口連接RTL8308B的C端口,要求這兩個端口的物理地址一致。前文所述,RTL8308B的C端口地址應(yīng)為0AH,所以,應(yīng)該將該RTL8204的C端口地址設(shè)置成為0AH,具體設(shè)置方法可以參考文獻(xiàn)[3]。?
2.3 AX88170的系統(tǒng)配置?
USB轉(zhuǎn)換芯片AX88170的數(shù)據(jù)接口可以選擇MII接口或者RMII接口,本系統(tǒng)選擇了設(shè)計(jì)較為簡單的RMII接口。AX88170還可以工作在PHY模式或者M(jìn)AC模式下,在本系統(tǒng)中,RTL8308B工作在MAC層,對其他芯片的傳輸方式進(jìn)行控制。所以,這里需要將AX88170設(shè)置為工作在PHY模式下。?
和前所述的RTL8204、RTL8308B一樣,AX88170的物理地址的設(shè)置也要與RTL8308B的設(shè)置相一致。本文中的4片AX88170分別與RTL8308B的E、F、G、H端口連接,所以對應(yīng)的物理端口地址應(yīng)該分別設(shè)置為0CH、0DH、0EH和0FH。?
除此以外,在存儲AX88170控制信息的EEPROM 93LC56中,還存有這個端口的MAC地址。這里4片AX88170的4個MAC地址和RTL8308B的MAC地址的選擇應(yīng)該避免自身的重復(fù),并且不應(yīng)與現(xiàn)有局域網(wǎng)里的MAC地址重復(fù)。?
2.4 其它控制信號?
整個系統(tǒng)的復(fù)位信號的重要性不言而喻,除了每片芯片都有各自最小時間的要求外,交換控制器RTL8308B還要求在復(fù)位后完成重新配置的時間不能早于其他物理層芯片(即RTL8204和4片AX88170)的配置時間。也就是說,RTL8308B的復(fù)位時間不能短于其他物理層芯片的復(fù)位時間。所以本系統(tǒng)采用了MAXIM的MAX809芯片用作所有芯片的復(fù)位信號,既保證了復(fù)位信號的單穩(wěn)的可靠性,也保證了RTL8308B和其他物理層芯片的復(fù)位時間是相等的。?
在本系統(tǒng)中,時鐘信號尤為重要,特別是50MHz的時鐘信號。50MHz時鐘信號需要連接到RTL8308B、RTL8204和4片AX88170的RMII接口,需要足夠的驅(qū)動能力,并且它們之間的相位差要足夠小才可以保證傳輸?shù)目煽啃?。本系統(tǒng)采用了IDT公司的49FCT3805(1:5時鐘驅(qū)動芯片)對時鐘信號增加了驅(qū)動力,并增大了扇出。?
3 測試程序和驅(qū)動程序?
為了方便硬件的調(diào)試,還需要編寫簡單的測試程序來調(diào)試系統(tǒng)。除標(biāo)準(zhǔn)USB指令外,AX88170廠家提供了關(guān)于AX88170的特殊指令,包括讀寫EEPROM、讀寫片內(nèi)收發(fā)存儲器、讀寫內(nèi)部其他控制寄存器等,方便了系統(tǒng)的調(diào)試。由于AX88170芯片的廠商免費(fèi)提供了其在Windows 98、Windows 2000和Windows Me下的驅(qū)動程序,所以本系統(tǒng)僅僅編寫了簡單的USB設(shè)備的測試程序,主要用來調(diào)試AX88170的工作狀態(tài)。圖2給出了程序的流程圖。程序初始化后打開目標(biāo)設(shè)備,然后讀取設(shè)備標(biāo)識和配置標(biāo)識并判斷。如果正確,則繼續(xù)讀取EEPROM里的MAC地址和物理端口地址,之后向AX88170的片內(nèi)發(fā)送SRAM和接收SRAM讀寫數(shù)據(jù),如果結(jié)果正確即證明AX88170已經(jīng)能夠正常工作。AX88170完整的驅(qū)動程序由芯片廠商免費(fèi)提供。
?
?
經(jīng)過測試,本系統(tǒng)工作性能穩(wěn)定。?
本系統(tǒng)用于辦公室或?qū)嶒?yàn)室環(huán)境下的計(jì)算機(jī)組網(wǎng),支持IEEE 802.3的10Mbps/100Mbps以太網(wǎng)標(biāo)準(zhǔn),兼容全雙工和半雙工網(wǎng)絡(luò)。圖3為它的應(yīng)用實(shí)例,它可以將4臺電腦通過USB接口連接在一起,并與局域網(wǎng)相連,從而實(shí)現(xiàn)多臺計(jì)算機(jī)的信息交換、資源共享。各用戶終端可以通過本設(shè)備連接至局域網(wǎng),進(jìn)而與Internet網(wǎng)絡(luò)相連。?
?
?
系統(tǒng)下一步的改進(jìn)主要針對兩個方面:一是高速的USB 2.0協(xié)議;二是增加USB接口數(shù)量,使其能適應(yīng)更高速更復(fù)雜的網(wǎng)絡(luò)。?
與傳統(tǒng)的用以太網(wǎng)卡的局域網(wǎng)接入方式相比較,利用本文的多USB接口以太網(wǎng)適配器接入較為靈活、方便,而且成本低廉,具有良好的市場前景。?
參考文獻(xiàn)?
1 Universal Serial Bus Specification Revision 1.1 http://www.usb.org?
2 Jan Axelson. USB大全. 北京:中國電力出版社,2001?
3 RTL8204? Datasheet.? REALTEK Corp. 2001?
4 RTL8308B Datasheet.? REALTEK Corp. 2001?
5 AX88170? Datasheet.? ASIX Corp. 2001?
6 Chris Cant. Windows WDM設(shè)備驅(qū)動程序開發(fā)指南.北京:機(jī)械工業(yè)出版社,2000?