摘 要: 闡述了一種固定網絡與移動網絡雙網兼容的家庭網關的軟、硬件設計與實現。首先介紹了家庭網關的功能及應用前景;然后介紹了以RTL8196C微處理器、以太網控制器、無線局域網接口卡RTL8192CE以及高通公司無線通信模塊MSM6290為核心搭建的硬件架構;最后詳細介紹了基于Linux操作系統的軟件設計,并重點介紹了網關各應用進程并行運行機制以及網關多通信方式的設計與實現。
關鍵詞: 家庭網關;RTL8196C微處理器;MSM6290無線通信模塊;Linux操作系統
隨著3G時代的到來,移動網絡通信不斷沖擊著固網通信的王朝地位。移動網絡的超靈活性使其無處不在,無論在偏遠的山區還是在環境惡略的沙漠戈壁都能大顯身手[1]。WLAN(Wireless Local Area Network)、WiMax、ZigBee等無線傳輸技術的日益成熟使得移動通信更是如虎添翼[2]。但信息時代的通信已經不僅僅是語音通信,多方的、多媒體的信息交互才是未來通信的主流[3]。如語音、視頻、圖像、數據等多種業務的創新及融合會成為未來通信業務層發展的方向[4]。與移動網絡相比,固定網絡能夠提供穩定、高速、低成本的帶寬,而帶寬恰恰是業務創新的基礎,沒有海量的帶寬資源,面向信息化的業務創新就無從談起[5]。
由此可見,移動網絡的靈活性和固定網絡的高帶寬特性必將使這兩種網絡長期共存并最終走向融合。因此,本文設計并實現了一種能夠使不同終端可以同時享受高質量的語音、視頻、圖像、數據等綜合業務的固定網絡與移動網絡雙網兼容的家庭網關。
1 功能及應用前景
1.1 功能
固定網絡與移動網絡雙網兼容的家庭網關具有以下功能:(1)為普通電話提供移動語音業務;(2)通過無線模塊發起撥號建立傳輸通道,為具有接入能力的家庭終端提供2G/3G無線數據業務;(3)通過PPPOE(Point-to-Point Protocol Over Ethernet)撥號方式獲取廣域網IP地址,為具有接入能力的家庭終端建立接入Internet的傳輸通道;(4)兩種接入廣域網的方式可靜態切換;(5)同時為不同家庭終端提供有線和無線兩種接入局域網的方式。固定網絡與移動網絡雙網兼容的家庭網關的應用模型如圖1所示。

1.2 應用前景
電信網、廣電網和因特網三網融合是未來中國通信業的發展方向。而業務融合恰恰是三網融合的重要切入點。同一終端能夠同時為用戶提供語音業務、視頻業務以及數據業務是三網融合的最終目標。不難想象,一部高清電視既能看電視,又能登錄網站下載電視列表;一部手機既能打電話,還可以同步收看電視直播、無線上網……此時,電視兼容電腦,手機涵蓋電視。這樣的業務模式已經成為未來網絡的發展方向。
但就目前而言,國內三大電信運營商的移動業務資費是比較高的,因此,固網承載大數據流量的視頻業務,而移動網絡承載語音業務及小數據流量業務的融合方式也就應運而生。
為不同網絡間數據的互傳提供橋梁,實現形形色色的家庭終端自由享受高質量、高性價比的融合業務,正是本文設計的固定網絡與移動網絡雙網兼容家庭網關所能完成的任務。由此可見,本家庭網關的應用前景是十分廣闊的。
2 硬件結構
固定網絡與移動網絡雙網兼容家庭網關的硬件結構由路由模塊和無線模塊兩大模塊組成,路由模塊作為主控模塊。基于網絡數據處理與轉發能力考慮,路由模塊選用基于MIPS(Microprocessor Without Interlocked Pipeline Stages)架構的RTL8196C芯片作為主控芯片,外圍電路主要包括存儲系統(外擴4 MB SPI Flash和32 MB RAM)、以太網接口、無線局域網接口、與無線模塊通信的USB接口、時鐘系統、電源系統以及其他電路系統。系統內部結構如圖2所示。

RTL8196C芯片在處理和轉發大批量數據、圖形圖像方面有較強的優勢,被廣泛應用于網絡設備。該芯片內部集成10/100 Mb/s以太網卡,作為家庭網關,百兆以太網卡目前已經足夠使用。為與主控芯片配套使用,系統選用RTL8192CE作為無線接口卡以供WLAN用戶接入。RTL8192CE是一款基于802.11n規范、集成度高、吞吐量大的MIMO(Multi-Input Multi-Output)單芯片,它擁有兩條傳輸通道以及兩個獨立的射頻模塊,從而保證了長時間數據傳輸的連續性。系統選用高通公司MSM6290芯片作為無線通信模塊,該模塊主要支持的網絡類型為WCDMA,這使得該芯片在3G無線通信領域擁有廣闊的施展空間,它支持的頻率范圍包括2G GSM/GPRS/EDEG、850/900/1 800/1 900 MHz 4頻以及3G UMTS 850/1 900/2 100 MHz 3頻,理論上它支持上行傳輸速率為5.2 Mb/s,下行傳輸速率為7.2 Mb/s,由此可見該款芯片功能強大、支持頻率范圍廣、上下行傳輸速率高,而且自身良好的USB接口保證了與主控芯片高效的數據交互。
3 軟件設計
作為嵌入式系統,優秀的硬件資源是系統強健的骨架,而同樣優秀的軟件資源則是整個系統的靈魂。首先,主控芯片要運行需要有合適的操作系統來支撐;其次,周邊接口要運行需要有合適的驅動程序來保障;再次,一個應用系統要運行必須有諸多合適的應用程序來配合。
3.1 系統應用軟件總體架構
系統選用Linux操作系統來控制和管理各種軟硬件資源,為了提高系統的運行效率,利用Linux對多進程機制的支持,將家庭網關的應用軟件劃分ATSERVER、DHCPS、DNS、PPP撥號、PPPOE撥號、Web以及語音通信7個并行進程。應用軟件在Linux下使用C語言開發,總體設計框架如圖3所示。

3.2 多進程并行運行機制
對操作系統而言,諸多的應用程序只不過是一個又一個進程,而如何保證這些應用進程并發、高效、穩定地運行是本系統軟件設計的重點。減少內核常駐進程的數量是提高系統整體性能的重要手段。基于這樣的研發思路,本文設計了一個主控進程,其通過消息傳遞機制來統一管理、協調系統的各個應用進程。
主控進程所要完成的第一個功能是消息轉發。各個應用進程可以看作是不同的消息客戶端,而主控進程可以看作是消息服務器,兩個消息客戶端發消息時,這兩個進程之間并不能直接通信,而是通過消息服務器進行消息轉發。首先要創建消息服務器,而實際上它只是創建了一個Unix域套接字,該套接字綁定一個相應的文件,消息客戶端通過綁定此文件來和消息服務器進行連接。將所有消息客戶端的名稱和對應的套接字一一對應,映射成一個鏈表,消息服務器便通過維護這張表來進行消息轉發。這種消息傳遞的基本架構如圖4所示。

主控進程所要完成的另一個功能是管理動態應用進程。由于Linux下所有的設備都是文件,因此主控進程只需代理應用進程偵聽其文件描述符。一旦文件描述符上有事件產生,就啟動相應的進程完成業務處理。而被啟動的進程檢測到空閑后就自動退出,主控進程檢測到應用進程退出后,又會重新代理偵聽其文件描述符。因此,在用戶看來好像應用進程一直在運行,而實際上卻只有主控進程一直在運行。主控進程運行流程如圖5所示。

3.3 網關多通信方式的設計與實現
固定網絡與移動網絡雙網兼容的家庭網關在局域網和廣域網的通信過程中起著承上啟下的作用。作為融合網關,實現固網撥號上網以及無線撥號上網并實現二者的靜態切換是本文設計的重點和難點。將通信軟件分為局域網通信模塊和廣域網通信模塊兩個模塊。
3.3.1 局域網通信
網關局域網由以太網卡和無線網卡組成,由于Linux支持網橋模塊,因此將兩塊物理網卡分別掛在Linux的網橋上。利用開源代碼編譯生成的Linux網橋配置工具brctl為該網橋配置一個邏輯網段,并命名為bridge。此時,把兩塊物理網卡一一和bridge這個邏輯網段聯系起來,并分別作為bridge中的端口eth0和eth1,這樣一來,兩塊物理網卡便可以通過配置好的Linux網橋進行數據轉發。為bridge的虛擬網卡配置IP:192.168.1.1,后續便可通過telnet遠程管理網橋或通過Web進程以網頁的形式對網橋進行管理。
為了方便局域網中多種具有接入能力的終端接入網關,網關需要對外提供多個端口。本網關除了無線網卡提供的空中接口外,還利用以太網卡控制器將以太網卡虛擬出Port0、Port1、Port2和Port3 4個端口。在對以太網卡初始化的時候,為Port0配置一個虛擬物理地址并作為固網上行端口,命名為nas0;為Port1、Port2和Port3配置另一個虛擬物理地址并作為本地局域網下行端口,分別命名為eth0.1、eth0.2和eth0.3。這兩組虛擬物理地址與以太網卡的實際物理地址關聯起來形成一個可維護的MAC表,這樣對于網關CPU而言只有一塊以太網卡,但實際上以太網卡控制器控制著4個端口。當網關選用固網PPPOE撥號上網時,廣域網數據便可通過nas0直接透傳到3個局域網端口中的任何一個,而處于平等地位的3個局域網端口下掛的終端設備也可以相互訪問。
3.3.2 廣域網通信
廣域網通信主要是指網關將局域網數據轉換后轉發到相應公網上的過程。固定網絡與移動網絡雙網兼容的家庭網關自然要支持固定網絡通信方式以及移動網絡通信方式。本文針對兩種通信方式分別開發了獨立的通信軟件,并實現兩種通信方式的靜態切換。
(1)固定網絡通信方式
固網通信主要通過PPPOE撥號方式獲取公網IP地址。網關中PPPOE撥號進程實際上是一個PPPOE客戶端,它的主要功能是依據PPPOE協議完成發現PPPOE終結端(網絡上的接入集中器)并與之建立會話。整個撥號過程由廣域網初始化模塊、消息監控及配置模塊和PPPOE業務處理模塊組成。各模塊之間的數據流如圖6所示。

首先,初始化模塊會從數據庫中讀取當前廣域網連接信息,并根據讀取到的初始化信息啟動PPPOE客戶端(PPPOE業務處理模塊)。在PPPOE客戶端不斷發起探測報文或者已經和網絡上的PPPOE服務器建立起會話的時候,如果其他進程需要與當前撥號進程進行信息交互,則會上報消息到主控進程的消息隊列,主控進程依據通信進程ID將對應的消息分發到撥號進程的消息監控及配置模塊。在該模塊中設置結構體MSG_TYPE標識各種消息類型,如果是SET消息,則在執行設置操作的同時將配置寫入數據庫,并在設置操作過程中啟動新配置連接業務;如果是DEL消息,則在執行刪除操作的同時將配置從數據庫中刪除,并停止該連接業務;如果是GET消息,則在查詢過程中從連接業務中讀取實時狀態信息,并將其反饋給其他進程。在以上各模塊的相互協作下,本地局域網端下掛的接入終端設備便可以通過固網撥號程序建立的通信通道與廣域網中的主機進行數據通信。
(2)移動網絡通信方式
在網關的移動網絡通信方式中,利用Qualcomm公司的MSM6290無線通信模塊實現移動通信網絡的接入。由于該模塊對外提供了良好的USB接口,網關主控模塊便可以通過USB接口使用AT命令完成對無線通信模塊的操作。USB總線的傳統拓撲結構是樹形結構,本系統中路由模塊作為主機負責查詢、控制下掛的USB外設,MSM6290無線通信模塊作為USB客戶端被動地接收并處理主機端發來的命令或請求。在完成對USB初始化后,網關主控模塊使用Linux終端設備dev/USB0與無線移動通信模塊建立連接通道,控制命令、PPP撥號參數、數據業務都通過此通道進行傳輸。
數據傳輸通道建立后,整個無線上行接入模塊設計為三個進程協作完成,分別為ATSERVER進程、Web進程以及PPP撥號進程。這三個進程同樣要在如前所述的主控進程的監控下進行數據交互。其中,ATSERVER進程是與無線通信模塊進行命令交互的唯一通道,ATSERVER進程通過USB驅動與無線通信模塊交互,而Web進程和PPP撥號進程通過消息隊列的方式與ATSERVER進程進行通信。這樣的設計有利于軟件接口統一,避免多個進程同時占用USB數據傳輸通道而引起阻塞。Web進程作為用戶接口將用戶通過Web頁面配置的撥號參數傳遞給PPP撥號進程,當撥號條件被觸發時,PPP撥號進程便發送攜帶撥號信息的消息傳送給ATSERVER進程。這樣,撥號信息通過USB通道下發到無線通信模塊,無線通信模塊就會向網絡發起撥號,如果撥號參數配置正確,則一條無線上行數據通路就會被建立。
固定網絡與移動網絡雙網兼容的家庭網關將固網通信和移動網絡通信很好地結合在一起,用戶可以利用本網關靜態的選擇接入方式,例如在進行大數據量業務時可選擇固網上行方式,而當進行語音等小數據量業務時可切換到移動網絡上行方式,從而為家庭用戶提供性價比較高的綜合通信業務。本家庭網關無論在硬件設計還是在軟件設計上都采用了比較先進的方法,從而保證了系統運行的穩定性和可靠性。隨著電信網、廣電網和因特網的不斷融合,本雙網兼容的家庭網關會有很廣闊的應用前景。
參考文獻
[1] 蔡皓,馮仁劍,萬江文.具有多種通信方式的無線傳感器網絡網關[J].傳感技術學報,2008(1):173-177.
[2] 鄒巍.WLAN與3G融合之道[J].華為技術,2010(52):15-16.
[3] 袁超偉,張金波,姚建波.三網融合的現狀與發展[J].北京郵電大學學報,2010,33(6):1-6.
[4] 劉小平,韋玲艷.三網融合業務模式分析[J].通信管理與技術,2009(5):32-35.
[5] 趙子忠.三網融合的關鍵視角——用帶寬戰略解讀三網融合[J].中國傳媒大學學報,2010(6):12-15.
