《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > 固定网络与移动网络兼容的家庭网关的设计
固定网络与移动网络兼容的家庭网关的设计
来源:微型机与应用2012年第1期
张琦枫,谭云福
(燕山大学 信息科学与工程学院,河北 秦皇岛 066004)
摘要: 阐述了一种固定网络与移动网络双网兼容的家庭网关的软、硬件设计与实现。首先介绍了家庭网关的功能及应用前景;然后介绍了以RTL8196C微处理器、以太网控制器、无线局域网接口卡RTL8192CE以及高通公司无线通信模块MSM6290为核心搭建的硬件架构;最后详细介绍了基于Linux操作系统的软件设计,并重点介绍了网关各应用进程并行运行机制以及网关多通信方式的设计与实现。
Abstract:
Key words :

摘  要: 闡述了一種固定網絡與移動網絡雙網兼容的家庭網關的軟、硬件設計與實現(xiàn)。首先介紹了家庭網關的功能及應用前景;然后介紹了以RTL8196C微處理器、以太網控制器、無線局域網接口卡RTL8192CE以及高通公司無線通信模塊MSM6290為核心搭建的硬件架構;最后詳細介紹了基于Linux操作系統(tǒng)的軟件設計,并重點介紹了網關各應用進程并行運行機制以及網關多通信方式的設計與實現(xiàn)。
關鍵詞: 家庭網關;RTL8196C微處理器;MSM6290無線通信模塊;Linux操作系統(tǒng)

 隨著3G時代的到來,移動網絡通信不斷沖擊著固網通信的王朝地位。移動網絡的超靈活性使其無處不在,無論在偏遠的山區(qū)還是在環(huán)境惡略的沙漠戈壁都能大顯身手[1]。WLAN(Wireless Local Area Network)、WiMax、ZigBee等無線傳輸技術的日益成熟使得移動通信更是如虎添翼[2]。但信息時代的通信已經不僅僅是語音通信,多方的、多媒體的信息交互才是未來通信的主流[3]。如語音、視頻、圖像、數(shù)據(jù)等多種業(yè)務的創(chuàng)新及融合會成為未來通信業(yè)務層發(fā)展的方向[4]。與移動網絡相比,固定網絡能夠提供穩(wěn)定、高速、低成本的帶寬,而帶寬恰恰是業(yè)務創(chuàng)新的基礎,沒有海量的帶寬資源,面向信息化的業(yè)務創(chuàng)新就無從談起[5]。
 由此可見,移動網絡的靈活性和固定網絡的高帶寬特性必將使這兩種網絡長期共存并最終走向融合。因此,本文設計并實現(xiàn)了一種能夠使不同終端可以同時享受高質量的語音、視頻、圖像、數(shù)據(jù)等綜合業(yè)務的固定網絡與移動網絡雙網兼容的家庭網關。
1 功能及應用前景
1.1 功能

 固定網絡與移動網絡雙網兼容的家庭網關具有以下功能:(1)為普通電話提供移動語音業(yè)務;(2)通過無線模塊發(fā)起撥號建立傳輸通道,為具有接入能力的家庭終端提供2G/3G無線數(shù)據(jù)業(yè)務;(3)通過PPPOE(Point-to-Point Protocol Over Ethernet)撥號方式獲取廣域網IP地址,為具有接入能力的家庭終端建立接入Internet的傳輸通道;(4)兩種接入廣域網的方式可靜態(tài)切換;(5)同時為不同家庭終端提供有線和無線兩種接入局域網的方式。固定網絡與移動網絡雙網兼容的家庭網關的應用模型如圖1所示。

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

 RTL8196C芯片在處理和轉發(fā)大批量數(shù)據(jù)、圖形圖像方面有較強的優(yōu)勢,被廣泛應用于網絡設備。該芯片內部集成10/100 Mb/s以太網卡,作為家庭網關,百兆以太網卡目前已經足夠使用。為與主控芯片配套使用,系統(tǒng)選用RTL8192CE作為無線接口卡以供WLAN用戶接入。RTL8192CE是一款基于802.11n規(guī)范、集成度高、吞吐量大的MIMO(Multi-Input Multi-Output)單芯片,它擁有兩條傳輸通道以及兩個獨立的射頻模塊,從而保證了長時間數(shù)據(jù)傳輸?shù)倪B續(xù)性。系統(tǒng)選用高通公司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接口保證了與主控芯片高效的數(shù)據(jù)交互。
3 軟件設計
 作為嵌入式系統(tǒng),優(yōu)秀的硬件資源是系統(tǒng)強健的骨架,而同樣優(yōu)秀的軟件資源則是整個系統(tǒng)的靈魂。首先,主控芯片要運行需要有合適的操作系統(tǒng)來支撐;其次,周邊接口要運行需要有合適的驅動程序來保障;再次,一個應用系統(tǒng)要運行必須有諸多合適的應用程序來配合。
3.1 系統(tǒng)應用軟件總體架構
 系統(tǒng)選用Linux操作系統(tǒng)來控制和管理各種軟硬件資源,為了提高系統(tǒng)的運行效率,利用Linux對多進程機制的支持,將家庭網關的應用軟件劃分ATSERVER、DHCPS、DNS、PPP撥號、PPPOE撥號、Web以及語音通信7個并行進程。應用軟件在Linux下使用C語言開發(fā),總體設計框架如圖3所示。


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

 

 

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

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

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。