張琦楓,譚云福
(燕山大學(xué) 信息科學(xué)與工程學(xué)院,河北 秦皇島 066004)
隨著3G時(shí)代的到來(lái),移動(dòng)網(wǎng)絡(luò)通信不斷沖擊著固網(wǎng)通信的王朝地位。移動(dòng)網(wǎng)絡(luò)的超靈活性使其無(wú)處不在,無(wú)論在偏遠(yuǎn)的山區(qū)還是在環(huán)境惡略的沙漠戈壁都能大 顯 身 手[1]。 WLAN (Wireless Local Area Network)、WiMax、ZigBee等無(wú)線(xiàn)傳輸技術(shù)的日益成熟使得移動(dòng)通信更是如虎添翼[2]。但信息時(shí)代的通信已經(jīng)不僅僅是語(yǔ)音通信,多方的、多媒體的信息交互才是未來(lái)通信的主流[3]。如語(yǔ)音、視頻、圖像、數(shù)據(jù)等多種業(yè)務(wù)的創(chuàng)新及融合會(huì)成為未來(lái)通信業(yè)務(wù)層發(fā)展的方向[4]。 與移動(dòng)網(wǎng)絡(luò)相比,固定網(wǎng)絡(luò)能夠提供穩(wěn)定、高速、低成本的帶寬,而帶寬恰恰是業(yè)務(wù)創(chuàng)新的基礎(chǔ),沒(méi)有海量的帶寬資源,面向信息化的業(yè)務(wù)創(chuàng)新就無(wú)從談起[5]。
由此可見(jiàn),移動(dòng)網(wǎng)絡(luò)的靈活性和固定網(wǎng)絡(luò)的高帶寬特性必將使這兩種網(wǎng)絡(luò)長(zhǎng)期共存并最終走向融合。因此,本文設(shè)計(jì)并實(shí)現(xiàn)了一種能夠使不同終端可以同時(shí)享受高質(zhì)量的語(yǔ)音、視頻、圖像、數(shù)據(jù)等綜合業(yè)務(wù)的固定網(wǎng)絡(luò)與移動(dòng)網(wǎng)絡(luò)雙網(wǎng)兼容的家庭網(wǎng)關(guān)。
固定網(wǎng)絡(luò)與移動(dòng)網(wǎng)絡(luò)雙網(wǎng)兼容的家庭網(wǎng)關(guān)具有以下功能:(1)為普通電話(huà)提供移動(dòng)語(yǔ)音業(yè)務(wù);(2)通過(guò)無(wú)線(xiàn)模塊發(fā)起撥號(hào)建立傳輸通道,為具有接入能力的家庭終端提供 2G/3G無(wú)線(xiàn)數(shù)據(jù)業(yè)務(wù);(3)通過(guò) PPPOE(Pointto-Point Protocol Over Ethernet)撥號(hào)方式獲取廣域網(wǎng) IP地址,為具有接入能力的家庭終端建立接入Internet的傳輸通道;(4)兩種接入廣域網(wǎng)的方式可靜態(tài)切換;(5)同時(shí)為不同家庭終端提供有線(xiàn)和無(wú)線(xiàn)兩種接入局域網(wǎng)的方式。固定網(wǎng)絡(luò)與移動(dòng)網(wǎng)絡(luò)雙網(wǎng)兼容的家庭網(wǎng)關(guān)的應(yīng)用模型如圖1所示。
電信網(wǎng)、廣電網(wǎng)和因特網(wǎng)三網(wǎng)融合是未來(lái)中國(guó)通信業(yè)的發(fā)展方向。而業(yè)務(wù)融合恰恰是三網(wǎng)融合的重要切入點(diǎn)。同一終端能夠同時(shí)為用戶(hù)提供語(yǔ)音業(yè)務(wù)、視頻業(yè)務(wù)以及數(shù)據(jù)業(yè)務(wù)是三網(wǎng)融合的最終目標(biāo)。不難想象,一部高清電視既能看電視,又能登錄網(wǎng)站下載電視列表;一部手機(jī)既能打電話(huà),還可以同步收看電視直播、無(wú)線(xiàn)上網(wǎng)……此時(shí),電視兼容電腦,手機(jī)涵蓋電視。這樣的業(yè)務(wù)模式已經(jīng)成為未來(lái)網(wǎng)絡(luò)的發(fā)展方向。
但就目前而言,國(guó)內(nèi)三大電信運(yùn)營(yíng)商的移動(dòng)業(yè)務(wù)資費(fèi)是比較高的,因此,固網(wǎng)承載大數(shù)據(jù)流量的視頻業(yè)務(wù),而移動(dòng)網(wǎng)絡(luò)承載語(yǔ)音業(yè)務(wù)及小數(shù)據(jù)流量業(yè)務(wù)的融合方式也就應(yīng)運(yùn)而生。
為不同網(wǎng)絡(luò)間數(shù)據(jù)的互傳提供橋梁,實(shí)現(xiàn)形形色色的家庭終端自由享受高質(zhì)量、高性?xún)r(jià)比的融合業(yè)務(wù),正是本文設(shè)計(jì)的固定網(wǎng)絡(luò)與移動(dòng)網(wǎng)絡(luò)雙網(wǎng)兼容家庭網(wǎng)關(guān)所能完成的任務(wù)。由此可見(jiàn),本家庭網(wǎng)關(guān)的應(yīng)用前景是十分廣闊的。
固定網(wǎng)絡(luò)與移動(dòng)網(wǎng)絡(luò)雙網(wǎng)兼容家庭網(wǎng)關(guān)的硬件結(jié)構(gòu)由路由模塊和無(wú)線(xiàn)模塊兩大模塊組成,路由模塊作為主控模塊?;诰W(wǎng)絡(luò)數(shù)據(jù)處理與轉(zhuǎn)發(fā)能力考慮,路由模塊選用基于MIPS (Microprocessor Without Interlocked Pipeline Stages)架構(gòu)的RTL8196C芯片作為主控芯片,外圍電路主要包括存儲(chǔ)系統(tǒng)(外擴(kuò)4 MB SPI Flash和32 MB RAM)、以太網(wǎng)接口、無(wú)線(xiàn)局域網(wǎng)接口、與無(wú)線(xiàn)模塊通信的USB接口、時(shí)鐘系統(tǒng)、電源系統(tǒng)以及其他電路系統(tǒng)。系統(tǒng)內(nèi)部結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)內(nèi)部結(jié)構(gòu)
RTL8196C芯片在處理和轉(zhuǎn)發(fā)大批量數(shù)據(jù)、圖形圖像方面有較強(qiáng)的優(yōu)勢(shì),被廣泛應(yīng)用于網(wǎng)絡(luò)設(shè)備。該芯片內(nèi)部集成10/100 Mb/s以太網(wǎng)卡,作為家庭網(wǎng)關(guān),百兆以太網(wǎng)卡目前已經(jīng)足夠使用。為與主控芯片配套使用,系統(tǒng)選用RTL8192CE作為無(wú)線(xiàn)接口卡以供WLAN用戶(hù)接入。RTL8192CE是一款基于802.11n規(guī)范、集成度高、吞吐量大的 MIMO(Multi-Input Multi-Output)單芯片,它擁有兩條傳輸通道以及兩個(gè)獨(dú)立的射頻模塊,從而保證了長(zhǎng)時(shí)間數(shù)據(jù)傳輸?shù)倪B續(xù)性。系統(tǒng)選用高通公司MSM6290芯片作為無(wú)線(xiàn)通信模塊,該模塊主要支持的網(wǎng)絡(luò)類(lèi)型為WCDMA,這使得該芯片在3G無(wú)線(xiàn)通信領(lǐng)域擁有廣闊的施展空間,它支持的頻率范圍包括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,由此可見(jiàn)該款芯片功能強(qiáng)大、支持頻率范圍廣、上下行傳輸速率高,而且自身良好的USB接口保證了與主控芯片高效的數(shù)據(jù)交互。
作為嵌入式系統(tǒng),優(yōu)秀的硬件資源是系統(tǒng)強(qiáng)健的骨架,而同樣優(yōu)秀的軟件資源則是整個(gè)系統(tǒng)的靈魂。首先,主控芯片要運(yùn)行需要有合適的操作系統(tǒng)來(lái)支撐;其次,周邊接口要運(yùn)行需要有合適的驅(qū)動(dòng)程序來(lái)保障;再次,一個(gè)應(yīng)用系統(tǒng)要運(yùn)行必須有諸多合適的應(yīng)用程序來(lái)配合。
系統(tǒng)選用Linux操作系統(tǒng)來(lái)控制和管理各種軟硬件資源,為了提高系統(tǒng)的運(yùn)行效率,利用Linux對(duì)多進(jìn)程機(jī)制的支持,將家庭網(wǎng)關(guān)的應(yīng)用軟件劃分ATSERVER、DHCPS、DNS、PPP撥號(hào)、PPPOE撥號(hào)、Web以及語(yǔ)音通信 7個(gè)并行進(jìn)程。應(yīng)用軟件在Linux下使用C語(yǔ)言開(kāi)發(fā),總體設(shè)計(jì)框架如圖3所示。
圖3 軟件總體設(shè)計(jì)框架
對(duì)操作系統(tǒng)而言,諸多的應(yīng)用程序只不過(guò)是一個(gè)又一個(gè)進(jìn)程,而如何保證這些應(yīng)用進(jìn)程并發(fā)、高效、穩(wěn)定地運(yùn)行是本系統(tǒng)軟件設(shè)計(jì)的重點(diǎn)。減少內(nèi)核常駐進(jìn)程的數(shù)量是提高系統(tǒng)整體性能的重要手段?;谶@樣的研發(fā)思路,本文設(shè)計(jì)了一個(gè)主控進(jìn)程,其通過(guò)消息傳遞機(jī)制來(lái)統(tǒng)一管理、協(xié)調(diào)系統(tǒng)的各個(gè)應(yīng)用進(jìn)程。
主控進(jìn)程所要完成的第一個(gè)功能是消息轉(zhuǎn)發(fā)。各個(gè)應(yīng)用進(jìn)程可以看作是不同的消息客戶(hù)端,而主控進(jìn)程可以看作是消息服務(wù)器,兩個(gè)消息客戶(hù)端發(fā)消息時(shí),這兩個(gè)進(jìn)程之間并不能直接通信,而是通過(guò)消息服務(wù)器進(jìn)行消息轉(zhuǎn)發(fā)。首先要?jiǎng)?chuàng)建消息服務(wù)器,而實(shí)際上它只是創(chuàng)建了一個(gè)Unix域套接字,該套接字綁定一個(gè)相應(yīng)的文件,消息客戶(hù)端通過(guò)綁定此文件來(lái)和消息服務(wù)器進(jìn)行連接。將所有消息客戶(hù)端的名稱(chēng)和對(duì)應(yīng)的套接字一一對(duì)應(yīng),映射成一個(gè)鏈表,消息服務(wù)器便通過(guò)維護(hù)這張表來(lái)進(jìn)行消息轉(zhuǎn)發(fā)。這種消息傳遞的基本架構(gòu)如圖4所示。
圖4 消息傳遞基本架構(gòu)
主控進(jìn)程所要完成的另一個(gè)功能是管理動(dòng)態(tài)應(yīng)用進(jìn)程。由于Linux下所有的設(shè)備都是文件,因此主控進(jìn)程只需代理應(yīng)用進(jìn)程偵聽(tīng)其文件描述符。一旦文件描述符上有事件產(chǎn)生,就啟動(dòng)相應(yīng)的進(jìn)程完成業(yè)務(wù)處理。而被啟動(dòng)的進(jìn)程檢測(cè)到空閑后就自動(dòng)退出,主控進(jìn)程檢測(cè)到應(yīng)用進(jìn)程退出后,又會(huì)重新代理偵聽(tīng)其文件描述符。因此,在用戶(hù)看來(lái)好像應(yīng)用進(jìn)程一直在運(yùn)行,而實(shí)際上卻只有主控進(jìn)程一直在運(yùn)行。主控進(jìn)程運(yùn)行流程如圖5所示。
圖5 主控進(jìn)程運(yùn)行流程
固定網(wǎng)絡(luò)與移動(dòng)網(wǎng)絡(luò)雙網(wǎng)兼容的家庭網(wǎng)關(guān)在局域網(wǎng)和廣域網(wǎng)的通信過(guò)程中起著承上啟下的作用。作為融合網(wǎng)關(guān),實(shí)現(xiàn)固網(wǎng)撥號(hào)上網(wǎng)以及無(wú)線(xiàn)撥號(hào)上網(wǎng)并實(shí)現(xiàn)二者的靜態(tài)切換是本文設(shè)計(jì)的重點(diǎn)和難點(diǎn)。將通信軟件分為局域網(wǎng)通信模塊和廣域網(wǎng)通信模塊兩個(gè)模塊。
3.3.1 局域網(wǎng)通信
網(wǎng)關(guān)局域網(wǎng)由以太網(wǎng)卡和無(wú)線(xiàn)網(wǎng)卡組成,由于Linux支持網(wǎng)橋模塊,因此將兩塊物理網(wǎng)卡分別掛在Linux的網(wǎng)橋上。利用開(kāi)源代碼編譯生成的Linux網(wǎng)橋配置工具brctl為該網(wǎng)橋配置一個(gè)邏輯網(wǎng)段,并命名為bridge。此時(shí),把兩塊物理網(wǎng)卡一一和bridge這個(gè)邏輯網(wǎng)段聯(lián)系起來(lái),并分別作為bridge中的端口eth0和eth1,這樣一來(lái),兩塊物理網(wǎng)卡便可以通過(guò)配置好的Linux網(wǎng)橋進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。為bridge的虛擬網(wǎng)卡配置IP:192.168.1.1,后續(xù)便可通過(guò)telnet遠(yuǎn)程管理網(wǎng)橋或通過(guò)Web進(jìn)程以網(wǎng)頁(yè)的形式對(duì)網(wǎng)橋進(jìn)行管理。
為了方便局域網(wǎng)中多種具有接入能力的終端接入網(wǎng)關(guān),網(wǎng)關(guān)需要對(duì)外提供多個(gè)端口。本網(wǎng)關(guān)除了無(wú)線(xiàn)網(wǎng)卡提供的空中接口外,還利用以太網(wǎng)卡控制器將以太網(wǎng)卡虛擬出Port0、Port1、Port2和 Port3 4個(gè)端口。在對(duì)以太網(wǎng)卡初始化的時(shí)候,為Port0配置一個(gè)虛擬物理地址并作為固網(wǎng)上行端口,命名為 nas0;為 Port1、Port2和 Port3配置另一個(gè)虛擬物理地址并作為本地局域網(wǎng)下行端口,分別命名為eth0.1、eth0.2和eth0.3。這兩組虛擬物理地址與以太網(wǎng)卡的實(shí)際物理地址關(guān)聯(lián)起來(lái)形成一個(gè)可維護(hù)的MAC表,這樣對(duì)于網(wǎng)關(guān)CPU而言只有一塊以太網(wǎng)卡,但實(shí)際上以太網(wǎng)卡控制器控制著4個(gè)端口。當(dāng)網(wǎng)關(guān)選用固網(wǎng)PPPOE撥號(hào)上網(wǎng)時(shí),廣域網(wǎng)數(shù)據(jù)便可通過(guò)nas0直接透?jìng)鞯?個(gè)局域網(wǎng)端口中的任何一個(gè),而處于平等地位的3個(gè)局域網(wǎng)端口下掛的終端設(shè)備也可以相互訪(fǎng)問(wèn)。
3.3.2 廣域網(wǎng)通信
廣域網(wǎng)通信主要是指網(wǎng)關(guān)將局域網(wǎng)數(shù)據(jù)轉(zhuǎn)換后轉(zhuǎn)發(fā)到相應(yīng)公網(wǎng)上的過(guò)程。固定網(wǎng)絡(luò)與移動(dòng)網(wǎng)絡(luò)雙網(wǎng)兼容的家庭網(wǎng)關(guān)自然要支持固定網(wǎng)絡(luò)通信方式以及移動(dòng)網(wǎng)絡(luò)通信方式。本文針對(duì)兩種通信方式分別開(kāi)發(fā)了獨(dú)立的通信軟件,并實(shí)現(xiàn)兩種通信方式的靜態(tài)切換。
(1)固定網(wǎng)絡(luò)通信方式
固網(wǎng)通信主要通過(guò)PPPOE撥號(hào)方式獲取公網(wǎng)IP地址。網(wǎng)關(guān)中PPPOE撥號(hào)進(jìn)程實(shí)際上是一個(gè)PPPOE客戶(hù)端,它的主要功能是依據(jù)PPPOE協(xié)議完成發(fā)現(xiàn)PPPOE終結(jié)端(網(wǎng)絡(luò)上的接入集中器)并與之建立會(huì)話(huà)。整個(gè)撥號(hào)過(guò)程由廣域網(wǎng)初始化模塊、消息監(jiān)控及配置模塊和PPPOE業(yè)務(wù)處理模塊組成。各模塊之間的數(shù)據(jù)流如圖6所示。
圖6 固網(wǎng)撥號(hào)各組成模塊數(shù)據(jù)流
首先,初始化模塊會(huì)從數(shù)據(jù)庫(kù)中讀取當(dāng)前廣域網(wǎng)連接信息,并根據(jù)讀取到的初始化信息啟動(dòng)PPPOE客戶(hù)端(PPPOE業(yè)務(wù)處理模塊)。在PPPOE客戶(hù)端不斷發(fā)起探測(cè)報(bào)文或者已經(jīng)和網(wǎng)絡(luò)上的PPPOE服務(wù)器建立起會(huì)話(huà)的時(shí)候,如果其他進(jìn)程需要與當(dāng)前撥號(hào)進(jìn)程進(jìn)行信息交互,則會(huì)上報(bào)消息到主控進(jìn)程的消息隊(duì)列,主控進(jìn)程依據(jù)通信進(jìn)程ID將對(duì)應(yīng)的消息分發(fā)到撥號(hào)進(jìn)程的消息監(jiān)控及配置模塊。在該模塊中設(shè)置結(jié)構(gòu)體MSG_TYPE標(biāo)識(shí)各種消息類(lèi)型,如果是SET消息,則在執(zhí)行設(shè)置操作的同時(shí)將配置寫(xiě)入數(shù)據(jù)庫(kù),并在設(shè)置操作過(guò)程中啟動(dòng)新配置連接業(yè)務(wù);如果是DEL消息,則在執(zhí)行刪除操作的同時(shí)將配置從數(shù)據(jù)庫(kù)中刪除,并停止該連接業(yè)務(wù);如果是GET消息,則在查詢(xún)過(guò)程中從連接業(yè)務(wù)中讀取實(shí)時(shí)狀態(tài)信息,并將其反饋給其他進(jìn)程。在以上各模塊的相互協(xié)作下,本地局域網(wǎng)端下掛的接入終端設(shè)備便可以通過(guò)固網(wǎng)撥號(hào)程序建立的通信通道與廣域網(wǎng)中的主機(jī)進(jìn)行數(shù)據(jù)通信。
(2)移動(dòng)網(wǎng)絡(luò)通信方式
在網(wǎng)關(guān)的移動(dòng)網(wǎng)絡(luò)通信方式中,利用Qualcomm公司的MSM6290無(wú)線(xiàn)通信模塊實(shí)現(xiàn)移動(dòng)通信網(wǎng)絡(luò)的接入。由于該模塊對(duì)外提供了良好的USB接口,網(wǎng)關(guān)主控模塊便可以通過(guò)USB接口使用AT命令完成對(duì)無(wú)線(xiàn)通信模塊的操作。USB總線(xiàn)的傳統(tǒng)拓?fù)浣Y(jié)構(gòu)是樹(shù)形結(jié)構(gòu),本系統(tǒng)中路由模塊作為主機(jī)負(fù)責(zé)查詢(xún)、控制下掛的USB外設(shè),MSM6290無(wú)線(xiàn)通信模塊作為USB客戶(hù)端被動(dòng)地接收并處理主機(jī)端發(fā)來(lái)的命令或請(qǐng)求。在完成對(duì)USB初始化后,網(wǎng)關(guān)主控模塊使用Linux終端設(shè)備dev/USB0與無(wú)線(xiàn)移動(dòng)通信模塊建立連接通道,控制命令、PPP撥號(hào)參數(shù)、數(shù)據(jù)業(yè)務(wù)都通過(guò)此通道進(jìn)行傳輸。
數(shù)據(jù)傳輸通道建立后,整個(gè)無(wú)線(xiàn)上行接入模塊設(shè)計(jì)為三個(gè)進(jìn)程協(xié)作完成,分別為ATSERVER進(jìn)程、Web進(jìn)程以及PPP撥號(hào)進(jìn)程。這三個(gè)進(jìn)程同樣要在如前所述的主控進(jìn)程的監(jiān)控下進(jìn)行數(shù)據(jù)交互。其中,ATSERVER進(jìn)程是與無(wú)線(xiàn)通信模塊進(jìn)行命令交互的唯一通道,ATSERVER進(jìn)程通過(guò)USB驅(qū)動(dòng)與無(wú)線(xiàn)通信模塊交互,而Web進(jìn)程和PPP撥號(hào)進(jìn)程通過(guò)消息隊(duì)列的方式與ATSERVER進(jìn)程進(jìn)行通信。這樣的設(shè)計(jì)有利于軟件接口統(tǒng)一,避免多個(gè)進(jìn)程同時(shí)占用USB數(shù)據(jù)傳輸通道而引起阻塞。Web進(jìn)程作為用戶(hù)接口將用戶(hù)通過(guò)Web頁(yè)面配置的撥號(hào)參數(shù)傳遞給PPP撥號(hào)進(jìn)程,當(dāng)撥號(hào)條件被觸發(fā)時(shí),PPP撥號(hào)進(jìn)程便發(fā)送攜帶撥號(hào)信息的消息傳送給ATSERVER進(jìn)程。這樣,撥號(hào)信息通過(guò)USB通道下發(fā)到無(wú)線(xiàn)通信模塊,無(wú)線(xiàn)通信模塊就會(huì)向網(wǎng)絡(luò)發(fā)起撥號(hào),如果撥號(hào)參數(shù)配置正確,則一條無(wú)線(xiàn)上行數(shù)據(jù)通路就會(huì)被建立。
固定網(wǎng)絡(luò)與移動(dòng)網(wǎng)絡(luò)雙網(wǎng)兼容的家庭網(wǎng)關(guān)將固網(wǎng)通信和移動(dòng)網(wǎng)絡(luò)通信很好地結(jié)合在一起,用戶(hù)可以利用本網(wǎng)關(guān)靜態(tài)的選擇接入方式,例如在進(jìn)行大數(shù)據(jù)量業(yè)務(wù)時(shí)可選擇固網(wǎng)上行方式,而當(dāng)進(jìn)行語(yǔ)音等小數(shù)據(jù)量業(yè)務(wù)時(shí)可切換到移動(dòng)網(wǎng)絡(luò)上行方式,從而為家庭用戶(hù)提供性?xún)r(jià)比較高的綜合通信業(yè)務(wù)。本家庭網(wǎng)關(guān)無(wú)論在硬件設(shè)計(jì)還是在軟件設(shè)計(jì)上都采用了比較先進(jìn)的方法,從而保證了系統(tǒng)運(yùn)行的穩(wěn)定性和可靠性。隨著電信網(wǎng)、廣電網(wǎng)和因特網(wǎng)的不斷融合,本雙網(wǎng)兼容的家庭網(wǎng)關(guān)會(huì)有很廣闊的應(yīng)用前景。
[1]蔡皓,馮仁劍,萬(wàn)江文.具有多種通信方式的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)網(wǎng)關(guān)[J].傳感技術(shù)學(xué)報(bào),2008(1):173-177.
[2]鄒巍.WLAN與3G融合之道 [J].華為技術(shù),2010(52):15-16.
[3]袁超偉,張金波,姚建波.三網(wǎng)融合的現(xiàn)狀與發(fā)展[J].北京郵電大學(xué)學(xué)報(bào),2010,33(6):1-6.
[4]劉小平,韋玲艷.三網(wǎng)融合業(yè)務(wù)模式分析[J].通信管理與技術(shù),2009(5):32-35.
[5]趙子忠.三網(wǎng)融合的關(guān)鍵視角——用帶寬戰(zhàn)略解讀三網(wǎng)融合[J].中國(guó)傳媒大學(xué)學(xué)報(bào),2010(6):12-15.