基于A(yíng)TM的ADSL網(wǎng)關(guān)的研究與實(shí)現

發(fā)布時(shí)間:2010-6-11 15:44    發(fā)布者:我芯依舊
關(guān)鍵詞: ADSL , ATM
引言
  
隨著(zhù)互聯(lián)網(wǎng)上的內容越來(lái)越豐富多彩,人們對傳輸帶寬的需求也逐漸增大,傳統Modem的56K帶寬日益顯得不堪重負。如何充分有效利用現有的電話(huà)線(xiàn)資源來(lái)獲得足夠的帶寬呢? ADSL(不對稱(chēng)數字用戶(hù)環(huán)路)是一個(gè)很好的答案。ADSL技術(shù)利用電話(huà)線(xiàn)上高于話(huà)音頻帶的帶寬(4K~1.1MHz),采用離散多音頻調制技術(shù)來(lái)調制高速數字信號(傳統的Modem是用話(huà)音頻帶來(lái)調制數字信號),下行速率可達8Mbit/s,上行可達1.5Mbit/s。隨著(zhù)超大規模集成電路(VLSI)和數字信號處理(DSP)技術(shù)的不斷進(jìn)步,DSL技術(shù)也不斷趨于成熟。ADSL完成A/D、D/A變換,采用FFT/IFFT作DMT和卷積編碼調制,既實(shí)現了高帶寬利用率,又保證了傳輸的低誤碼特性。我們所設計的ADSL網(wǎng)關(guān)采用Itex的Apollo 3 ADSL PCI解決方案作Internet的接入部分,另一側用以太網(wǎng)或無(wú)線(xiàn)局域網(wǎng)接多用戶(hù),接口為RJ-45和無(wú)線(xiàn)訪(fǎng)問(wèn)點(diǎn)(AP)天線(xiàn),提供了靈活方便的組網(wǎng)方式,可以廣泛應用于家庭、小型辦公室的接入。在軟件上,我們采用根據硬件結構來(lái)定制Linux內核的方法,整合了必要的驅動(dòng)模塊來(lái)作網(wǎng)關(guān)的操作系統,不僅完成對ADSL接入模塊、以太網(wǎng)模塊以及無(wú)線(xiàn)局域網(wǎng)(WLAN)無(wú)線(xiàn)接入點(diǎn)AP模塊的驅動(dòng),還提供DHCP、SNMP以及IP防火墻等應用功能。

一、 硬件體系結構


1.AMD微控制器總體構架
  
AMD公司推出的ElanSC520功能強大,適用于在嵌入式環(huán)境下用作協(xié)議處理器和網(wǎng)絡(luò )處理器,兼容PC/AT,支持32位PCI外部總線(xiàn),而且其傳輸的低延遲和低價(jià)位使其獲得了廣泛的應用。ElanSC520集成了一個(gè)工業(yè)級的X86處理器,從而為與X86結構適配的軟件提供了良好的接口和易移植性,支持包括Linux和Windows在內的多種操作系統,內建的高速PCI總線(xiàn)接口符合PCI V2.2規范,可擴展1~5個(gè)PCI總線(xiàn)設備,通過(guò)其內部的PCI總線(xiàn)仲裁機制來(lái)決定與哪一個(gè)PCI設備進(jìn)行相互通信。PCI總線(xiàn)的最高傳輸速率可達132MB/s。在A(yíng)DSL網(wǎng)關(guān)設備的設計中,我們使用了三個(gè)PCI總線(xiàn)設備,這三個(gè)總線(xiàn)設備共享PCI總線(xiàn)與ElanSC520進(jìn)行通信。ElanSC520微控制器還帶有高性能的SDRAM和ROM/Flash接口,同時(shí)還有用于配置和調試的UART串行接口,可以接模擬終端;贏(yíng)TM的ADSL網(wǎng)關(guān)的硬件體系結構如圖1所示:



圖1:ADSL硬件體系結構


2. ADSL接入設備
  
ADSL接入端采用Itex的Apollo 3的PCI解決方案,其芯片組包括線(xiàn)路驅動(dòng)、模擬前端和數字收發(fā)器,完成對電話(huà)線(xiàn)路上信號的發(fā)送和接收濾波、放大、A/D和D/A轉換、FFT/IFFT等數字信號處理,并通過(guò)PCI總線(xiàn)與ElanSC520進(jìn)行通信。該組芯片將PCI到UTOPIA(標準信元接口)的轉換功能集成到DMT收發(fā)器和ATM的成幀器中,將線(xiàn)路接收器集成到模擬前端中。由于控制由主處理器完成,Apollo3不需要額外的存儲設備和控制器,使板上的控制需求減少到最小,從而大大降低了功耗。該芯片組符合以下協(xié)議標準:G.992.1(G.DMT), G.992.2(G.LITE), G.994(G.HS), T1.413 Issue 2(1998)


其結構如圖2所示:

圖2:ADSL線(xiàn)路接入端結構


信號由RJ-11電話(huà)線(xiàn)接口進(jìn)來(lái),收端通過(guò)接收濾波器送到接收部分進(jìn)行濾波、信號放大,經(jīng)A/D變換,FFT解調,送往處理器進(jìn)行處理;而在發(fā)端,由處理器出來(lái)的數字信號經(jīng)過(guò)IFFT進(jìn)行DMT調制,再經(jīng)過(guò)線(xiàn)路驅動(dòng)模塊,濾波后發(fā)送到電話(huà)線(xiàn)路上進(jìn)行傳輸。


3.以太網(wǎng)接口
  
以太網(wǎng)采用的是Realtek 的RLT8029AS芯片,與NE2000兼容,符合標準的802.3CSMA/CD協(xié)議規范。其全雙工特性允許同時(shí)發(fā)送和接收,集成了曼徹斯特編解碼器,可以用于無(wú)盤(pán)工作站。


4.WLAN_AP接口
  
為了方便筆記本電腦共享電話(huà)線(xiàn)上網(wǎng),我們在用戶(hù)端還提供了WLAN_AP接口,可以方便的進(jìn)行無(wú)線(xiàn)局域網(wǎng)的組網(wǎng),在這里我們使用了TI公司的PCI1410A橋芯片將PCI信號轉為PCMCIA信號,接無(wú)線(xiàn)網(wǎng)卡,將數據包封裝為符合IEEE802.11b協(xié)議的幀進(jìn)行傳輸。


二、 軟件體系結構
  
由于Linux操作系統的穩定性、開(kāi)放性以及可擴展性,使它在嵌入式系統中獲得較為廣泛的應用,然而由于Linux允許非搶先式操作,使其不可能成為完全的實(shí)時(shí)系統,最多只能算是在統計意義上的實(shí)時(shí)。在A(yíng)DSL網(wǎng)關(guān)的設計中我們可以將實(shí)時(shí)的信號賦予很高的優(yōu)先級,從而保證在整體上公平地進(jìn)行進(jìn)程調度。
  
構建嵌入式操作系統,我們首先考慮到在一個(gè)嵌入式的應用環(huán)境下既沒(méi)有多少內存也沒(méi)有多少外存可用,操作系統必須存放在有限的存儲器Flash中,所以我們必須根據硬件的構架來(lái)定制我們需要的Linux內核。由于A(yíng)DSL接入端是基于A(yíng)TM的,我們要為內核加上對PPP over ATM的patch(補。,對于在A(yíng)TM基礎上支持Internet,實(shí)際上可以歸結為在A(yíng)TM上如何支持TCP/IP的問(wèn)題,即ATM如何承載IP包的問(wèn)題。在A(yíng)DSL網(wǎng)關(guān)應用中,要共享ADSL線(xiàn)路接入Internet,遵循的是點(diǎn)到點(diǎn)協(xié)議,因此ADSL接入端的驅動(dòng)程序實(shí)際上是一個(gè)PPP over ATM的模塊,它將作為內核的一個(gè)可載入模塊進(jìn)行進(jìn)程調用,而以太網(wǎng)驅動(dòng)程序和WLAN_AP的驅動(dòng)程序是實(shí)現在以太網(wǎng)和無(wú)線(xiàn)介質(zhì)里傳送IP包的,即分別用802.3和802.11的幀格式來(lái)封裝IP包,這樣ADSL網(wǎng)關(guān)的協(xié)議棧就如圖3所示。



圖3:ADSL網(wǎng)關(guān)的協(xié)議棧


在圖3中,AAL5是ATM適配層,RFC1483是ATM適配層第五類(lèi)型的多協(xié)議封裝規范,描述了在A(yíng)TM端系統中怎樣在主機、橋設備和路由設備之間承載多協(xié)議業(yè)務(wù)。在A(yíng)DSL網(wǎng)關(guān)中,根據ITU的協(xié)議規范,信號經(jīng)過(guò)一系列變換以ATM信元的形式輸出,因此我們要在A(yíng)TM適配層的基礎上將信號變成上層協(xié)議能夠識別的包,從而決定該包是否轉發(fā),丟棄或者接收。根據RFC1483協(xié)議,有兩種多協(xié)議封裝的形式,一種是LLC封裝多協(xié)議,即LLC-SNAP模式,在同一個(gè)VC上承載多協(xié)議,協(xié)議類(lèi)型包含在LLC頭中,另一種是VC-MUX模式,不同的協(xié)議使用不同的VC,則不需要在協(xié)議頭中指明協(xié)議類(lèi)型,而具體哪一個(gè)VC承載哪一種協(xié)議則是在鏈路初始化的時(shí)候確定,這種方法降低了鏈路開(kāi)銷(xiāo),但在虛擬連接數量有限的情況下多數還是使用LLC復用。實(shí)現這個(gè)功能是通過(guò)在Linux內核中加載PPPOA模塊來(lái)實(shí)現的。


PPP包中包括三種類(lèi)型的信息:


* Link Control Protocol(LCP) 用來(lái)協(xié)商鏈路參數,包的大小,以及認證類(lèi)型
* Network Control Protocol(NCP) 指明高層協(xié)議的信息,可以是IP、IPX及其控制協(xié)議。
* 數據幀
  
ADSL遵循的協(xié)議是基于A(yíng)TM的,也就是在物理層是在電話(huà)線(xiàn)上調制高速數據信號,RS編碼,擾碼等一些物理層的協(xié)議,在物理層以上是以ATM信元格式輸出的,而對于A(yíng)DSL網(wǎng)關(guān)來(lái)說(shuō),PPP over ATM Adaption Layer 5(AAL5) RFC2364是用AAL5作為成幀協(xié)議,支持PVC,SVC, PPPOA是ADSL協(xié)議棧的基本部分,它依賴(lài)于RFC1483,工作在LLC-SNAP或VC-MUX模式下,用戶(hù)端設備(CPE)封裝PPP包的過(guò)程就是以PPPOA協(xié)議來(lái)進(jìn)行ADSL環(huán)路和DSLAM上傳輸數據的。AAL5的公共部分匯集子層(CPCS)的協(xié)議數據單元如圖4所示:
  
其中CPCS-PDU Payload部分是AAL5協(xié)議的數據部分,最大為216-1個(gè)字節,這是因為在下面的二字節的LENGTH域中限定的。PAD中有48個(gè)字節,剛好為一個(gè)信元的數據域,由SAR(分段重組)子層生成,CPI域是為了使CPCS-PDU TRAILER成64位而填補上去的,CRC采用32位的循環(huán)冗余校驗碼。
  
在我們的ADSL網(wǎng)關(guān)設計中,考慮到有限的虛擬連接的數量,我們采用的是LLC封裝多協(xié)議的模式,即LLC-SNAP模式,其CPCS-PDU Payload域如圖4所示。包括:


* LLC頭:3字節,其中兩個(gè)字節指定了一個(gè)目的SAP(0xFE)和源SAP(0xFE),后面是幀類(lèi)型,為Un-numbered Information=0x03
* Network Layer protocol Identifier(NLPID),這里使用的是PPP,其類(lèi)型值為0xCF
* PPP協(xié)議標識域為一和二字節
* PPP信息域
* PPP填充域
  
對于局域網(wǎng)內的用戶(hù)通過(guò)以太網(wǎng)口和Wireless LAN的天線(xiàn)與網(wǎng)關(guān)互聯(lián),其中以太網(wǎng)和Wireless LAN使用不同的網(wǎng)段,網(wǎng)關(guān)要做的事情是看用戶(hù)的IP包,如果是發(fā)往本局域網(wǎng)的,那要看是不是同一個(gè)網(wǎng)段的,如果是則丟棄,如果不是則發(fā)向另一網(wǎng)段,也就是說(shuō)在本地的包業(yè)務(wù)通信中,起了一個(gè)橋接的作用。如果不是發(fā)向本局域網(wǎng),而是發(fā)向廣域網(wǎng)的包則通過(guò)PPP端口轉發(fā),實(shí)現其路由功能。以太網(wǎng)的驅動(dòng)程序和WLAN驅動(dòng)程序在Linux中也是作為一個(gè)可載入模塊加載到Linux內核中。
  
為了實(shí)現應用網(wǎng)關(guān)功能,在應用層我們還根據實(shí)際需要實(shí)現了基于IP地址過(guò)濾的防火墻,網(wǎng)絡(luò )地址解析,簡(jiǎn)單網(wǎng)絡(luò )管理,動(dòng)態(tài)主機地址分配,和WEB服務(wù)器,
  
重新編譯內核時(shí)去掉對硬盤(pán),鼠標,顯卡,鍵盤(pán)的支持,只保留一個(gè)簡(jiǎn)單的文件系統,并放在Flash上,這樣可以在線(xiàn)升級網(wǎng)關(guān)操作系統。內核的核心主要是進(jìn)行內存管理,啟動(dòng)和中斷。將PPPOA模塊、以太網(wǎng)以及WLAN驅動(dòng)模塊編譯進(jìn)內核,內核程序與網(wǎng)絡(luò )設備接口間采用消息驅動(dòng)方式,三個(gè)模塊對應三個(gè)消息隊列和三個(gè)通信例程,每個(gè)例程負責監聽(tīng)相應端口的數據(對應一個(gè)消息隊列),當接受到消息時(shí),使進(jìn)程轉入處理程序,進(jìn)行內存刷新、加工數據幀頭、發(fā)送消息等工作,消息隊列如果沒(méi)有消息存在,該進(jìn)程就釋放CPU給其它進(jìn)程。由于一些寄存器(DCR,SPR等)的值和外設的I/O空間要映射到物理內存空間,所以要在TLB中鎖定這些內存,在為三個(gè)PCI設備進(jìn)行內存分配時(shí),要判斷分配的內存空間是否與鎖定的內存空間重疊。另外我們在硬件設計上使用了串口(RS-232)作為調試接口,可以在shell中測試系統命令,運行應用程序,或用GDB對應用程序進(jìn)行調試,另外shell還用于對系統進(jìn)行配置。配置包括配置全局參數對網(wǎng)關(guān)的命令行接口,需要配置撥號PPP over ATM端口、以太網(wǎng)和WLAN端口。在配置前需要確認ADSL線(xiàn)路與DSLAM連接,要有一個(gè)靜態(tài)IP地址或者由ISP負責動(dòng)態(tài)IP地址分配。網(wǎng)關(guān)在啟動(dòng)時(shí),BIOS上電自檢,加載文件系統,引導網(wǎng)關(guān)操作系統,ADSL線(xiàn)路進(jìn)行握手操作,初始化鏈路,進(jìn)入SHOWTIME。

三、 進(jìn)一步的工作及展望
  
ADSL網(wǎng)關(guān)集ADSL modem 和應用網(wǎng)關(guān)于一體,既完成ADSL接入的模擬的調制解調工作,又在此基礎上實(shí)現了資源共享,簡(jiǎn)單網(wǎng)絡(luò )管理以及網(wǎng)絡(luò )安全方面的功能等,是一種有著(zhù)廣泛應用前景的技術(shù)。
本文地址:http://selenalain.com/thread-12760-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页