基于ATM的ADSL網(wǎng)關(guān)的研究與實現(xiàn)
隨著互聯(lián)網(wǎng)上的內(nèi)容越來越豐富多彩,人們對傳輸帶寬的需求也逐漸增大,傳統(tǒng)Modem的56K帶寬日益顯得不堪重負。如何充分有效利用現(xiàn)有的電話線資源來獲得足夠的帶寬呢? ADSL(不對稱數(shù)字用戶環(huán)路)是一個很好的答案。ADSL技術(shù)利用電話線上高于話音頻帶的帶寬(4K~1.1MHz),采用離散多音頻調(diào)制技術(shù)來調(diào)制高速數(shù)字信號(傳統(tǒng)的Modem是用話音頻帶來調(diào)制數(shù)字信號),下行速率可達8Mbit/s,上行可達1.5Mbit/s。隨著超大規(guī)模集成電路(VLSI)和數(shù)字信號處理(DSP)技術(shù)的不斷進步,DSL技術(shù)也不斷趨于成熟。ADSL完成A/D、D/A變換,采用FFT/IFFT作DMT和卷積編碼調(diào)制,既實現(xiàn)了高帶寬利用率,又保證了傳輸?shù)牡驼`碼特性。我們所設(shè)計的ADSL網(wǎng)關(guān)采用Itex的Apollo 3 ADSL PCI解決方案作Internet的接入部分,另一側(cè)用以太網(wǎng)或無線局域網(wǎng)接多用戶,接口為RJ-45和無線訪問點(AP)天線,提供了靈活方便的組網(wǎng)方式,可以廣泛應(yīng)用于家庭、小型辦公室的接入。在軟件上,我們采用根據(jù)硬件結(jié)構(gòu)來定制Linux內(nèi)核的方法,整合了必要的驅(qū)動模塊來作網(wǎng)關(guān)的操作系統(tǒng),不僅完成對ADSL接入模塊、以太網(wǎng)模塊以及無線局域網(wǎng)(WLAN)無線接入點AP模塊的驅(qū)動,還提供DHCP、SNMP以及IP防火墻等應(yīng)用功能。
一、 硬件體系結(jié)構(gòu)
1.AMD微控制器總體構(gòu)架
AMD公司推出的ElanSC520功能強大,適用于在嵌入式環(huán)境下用作協(xié)議處理器和網(wǎng)絡(luò)處理器,兼容PC/AT,支持32位PCI外部總線,而且其傳輸?shù)牡脱舆t和低價位使其獲得了廣泛的應(yīng)用。ElanSC520集成了一個工業(yè)級的X86處理器,從而為與X86結(jié)構(gòu)適配的軟件提供了良好的接口和易移植性,支持包括Linux和Windows在內(nèi)的多種操作系統(tǒng),內(nèi)建的高速PCI總線接口符合PCI V2.2規(guī)范,可擴展1~5個PCI總線設(shè)備,通過其內(nèi)部的PCI總線仲裁機制來決定與哪一個PCI設(shè)備進行相互通信。PCI總線的最高傳輸速率可達132MB/s。在ADSL網(wǎng)關(guān)設(shè)備的設(shè)計中,我們使用了三個PCI總線設(shè)備,這三個總線設(shè)備共享PCI總線與ElanSC520進行通信。ElanSC520微控制器還帶有高性能的SDRAM和ROM/FLASH接口,同時還有用于配置和調(diào)試的UART串行接口,可以接模擬終端。基于ATM的ADSL網(wǎng)關(guān)的硬件體系結(jié)構(gòu)如圖1所示:
圖1:ADSL硬件體系結(jié)構(gòu)
2. ADSL接入設(shè)備
ADSL接入端采用Itex的Apollo 3的PCI解決方案,其芯片組包括線路驅(qū)動、模擬前端和數(shù)字收發(fā)器,完成對電話線路上信號的發(fā)送和接收濾波、放大、A/D和D/A轉(zhuǎn)換、FFT/IFFT等數(shù)字信號處理,并通過PCI總線與ElanSC520進行通信。該組芯片將PCI到UTOPIA(標(biāo)準(zhǔn)信元接口)的轉(zhuǎn)換功能集成到DMT收發(fā)器和ATM的成幀器中,將線路接收器集成到模擬前端中。由于控制由主處理器完成,Apollo3不需要額外的存儲設(shè)備和控制器,使板上的控制需求減少到最小,從而大大降低了功耗。該芯片組符合以下協(xié)議標(biāo)準(zhǔn):G.992.1(G.DMT), G.992.2(G.LITE), G.994(G.HS), T1.413 Issue 2(1998)
其結(jié)構(gòu)如圖2所示:
圖2:ADSL線路接入端結(jié)構(gòu)
信號由RJ-11電話線接口進來,收端通過接收濾波器送到接收部分進行濾波、信號放大,經(jīng)A/D變換,F(xiàn)FT解調(diào),送往處理器進行處理;而在發(fā)端,由處理器出來的數(shù)字信號經(jīng)過IFFT進行DMT調(diào)制,再經(jīng)過線路驅(qū)動模塊,濾波后發(fā)送到電話線路上進行傳輸。
3.以太網(wǎng)接口
以太網(wǎng)采用的是Realtek 的RLT8029AS芯片,與NE2000兼容,符合標(biāo)準(zhǔn)的802.3CSMA/CD協(xié)議規(guī)范。其全雙工特性允許同時發(fā)送和接收,集成了曼徹斯特編解碼器,可以用于無盤工作站。
4.WLAN_AP接口
為了方便筆記本電腦共享電話線上網(wǎng),我們在用戶端還提供了WLAN_AP接口,可以方便的進行無線局域網(wǎng)的組網(wǎng),在這里我們使用了TI公司的PCI1410A橋芯片將PCI信號轉(zhuǎn)為PCMCIA信號,接無線網(wǎng)卡,將數(shù)據(jù)包封裝為符合IEEE802.11b協(xié)議的幀進行傳輸。
二、 軟件體系結(jié)構(gòu)
由于Linux操作系統(tǒng)的穩(wěn)定性、開放性以及可擴展性,使它在嵌入式系統(tǒng)中獲得較為廣泛的應(yīng)用,然而由于Linux允許非搶先式操作,使其不可能成為完全的實時系統(tǒng),最多只能算是在統(tǒng)計意義上的實時。在ADSL網(wǎng)關(guān)的設(shè)計中我們可以將實時的信號賦予很高的優(yōu)先級,從而保證在整體上公平地進行進程調(diào)度。
構(gòu)建嵌入式操作系統(tǒng),我們首先考慮到在一個嵌入式的應(yīng)用環(huán)境下既沒有多少內(nèi)存也沒有多少外存可用,操作系統(tǒng)必須存放在有限的存儲器Flash中,所以我們必須根據(jù)硬件的構(gòu)架來定制我們需要的Linux內(nèi)核。由于ADSL接入端是基于ATM的,我們要為內(nèi)核加上對PPP over ATM的patch(補?。瑢τ谠贏TM基礎(chǔ)上支持Internet,實際上可以歸結(jié)為在ATM上如何支持TCP/IP的問題,即ATM如何承載IP包的問題。在ADSL網(wǎng)關(guān)應(yīng)用中,要共享ADSL線路接入Internet,遵循的是點到點協(xié)議,因此ADSL接入端的驅(qū)動程序?qū)嶋H上是一個PPP over ATM的模塊,它將作為內(nèi)核的一個可載入模塊進行進程調(diào)用,而以太網(wǎng)驅(qū)動程序和WLAN_AP的驅(qū)動程序是實現(xiàn)在以太網(wǎng)和無線介質(zhì)里傳送IP包的,即分別用802.3和802.11的幀格式來封裝IP包,這樣ADSL網(wǎng)關(guān)的協(xié)議棧就如圖3所示。
評論