閆 巧,李保廣
(深圳大學(xué) 計(jì)算機(jī)與軟件學(xué)院,廣東 深圳518000)
目前3G網(wǎng)絡(luò)覆蓋全球范圍,能夠向用戶提供高速的全球無(wú)線漫游服務(wù)。所研發(fā)的路由器將3G信號(hào)轉(zhuǎn)換為WIFI信號(hào),使得智能手機(jī)、個(gè)人電腦等具有WIFI接入功能的設(shè)備得以實(shí)時(shí)接入互聯(lián)網(wǎng),實(shí)現(xiàn)了無(wú)線局域網(wǎng)共享3G無(wú)線網(wǎng)絡(luò)[1],該款路由器具有高速穩(wěn)定、小巧方便的特性,在此基礎(chǔ)之上,設(shè)計(jì)并實(shí)現(xiàn)了短信發(fā)送和接收功能、文件共享功能和數(shù)字媒體服務(wù)器功能,滿足用戶對(duì)不同功能的需求,方便用戶使用。本文詳細(xì)介紹了這些功能的設(shè)計(jì)思路與實(shí)現(xiàn)過(guò)程。
研發(fā)的3G路由器硬件平臺(tái)采用的是雷凌公司生產(chǎn)的RT5350開發(fā)板[2],如圖1所示,其CPU主頻是360MHz,擁有16KB的數(shù)據(jù)緩存和32KB的指令緩存,具有低成本、高集成度、體積小和低功耗的特性,集成4個(gè)LAN口、一個(gè)WAN口和一個(gè)USB口。USB接口既可以插入U(xiǎn)SB 3G網(wǎng)卡,支持聯(lián)通WCDMA、電信CDMA2000、移動(dòng)TD-SCDMA等3種模式的3G網(wǎng)卡,也可以插入U(xiǎn)SB存儲(chǔ)設(shè)備,如優(yōu)盤、移動(dòng)硬盤等。
系統(tǒng)軟件平臺(tái)采用的是嵌入式Linux系統(tǒng)[3],內(nèi)核版本為2.6.21,具有體積小巧效率高,源碼開放性能穩(wěn)的特性,同時(shí)Linux平臺(tái)下?lián)碛斜姸嚅_源免費(fèi)的軟件供移植和二次開發(fā)。上層應(yīng)用軟件主要是嵌入式Web服務(wù)器GoA-h(huán)ead Web Server、uShare、pppd、Wget等[4]。系統(tǒng)體系結(jié)構(gòu)如圖2所示。
利用GoAhead Web Server開發(fā)設(shè)計(jì)路由器設(shè)置頁(yè)面,頁(yè)面采用框架設(shè)計(jì),左側(cè)為功能目錄,右側(cè)為展示各個(gè)功能的主體區(qū)域,如圖3所示。
圖1 RT5350開發(fā)板
圖2 系統(tǒng)體系結(jié)構(gòu)
圖3 路由器設(shè)置
我們研發(fā)的3G路由器有一個(gè)USB接口,在不使用3G網(wǎng)卡時(shí),可以掛載USB存儲(chǔ)設(shè)備,如優(yōu)盤、移動(dòng)硬盤等,構(gòu)建局域網(wǎng)文件共享服務(wù)器,向用戶提供文件共享功能。文件共享功能依托GoAhead Web Server通過(guò)HTTP協(xié)議(超文本傳送協(xié)議)實(shí)現(xiàn)。GoAhead Web Server是專為嵌入式實(shí)時(shí)操作系統(tǒng)量身定制的Web服務(wù)器,也是最流行的嵌入式Web,具有開源免費(fèi)、功能強(qiáng)大、響應(yīng)快速、體積緊湊和使用簡(jiǎn)單的特點(diǎn),支持開發(fā)高效的動(dòng)態(tài)交互Web頁(yè)面[5]。
HTTP下載是使用最廣泛的文件共享方式之一。HTTP協(xié)議不僅可以傳輸HTML網(wǎng)頁(yè)文件,也可以傳輸各種類型的文件。許多資源網(wǎng)站以超鏈接的形式將供用戶下載的各種文件放在web頁(yè)面中,用戶只要點(diǎn)擊鼠標(biāo),就可以通過(guò)瀏覽器下載并保存到本地磁盤。HTTP下載極大地促進(jìn)了互聯(lián)網(wǎng)上的信息傳播與共享。下面的HTML代碼即是web頁(yè)面中的下載鏈接格式:
< A href = "http://10.10.10.254/download/filename">下載文件</A>
其中 “href”即表示下載文件的鏈接地址,當(dāng)用戶點(diǎn)擊頁(yè)面信息 “下載文件”后,瀏覽器會(huì)向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器響應(yīng)后,開始下載該文件。文件共享如圖4所示。
圖4 文件共享流程
針對(duì)本系統(tǒng)的需求,需要對(duì)GoAhead Web Server進(jìn)行相應(yīng)的配置,在源文件中定義ROOT_DIR和rootWeb的值來(lái)指定web頁(yè)面的根目錄為/etc_ro/web,指定默認(rèn)端口號(hào)為80:
指定服務(wù)器的默認(rèn)主頁(yè)為home.asp,當(dāng)用戶只輸入IP地址就會(huì)看到該頁(yè)面:
圖8 短信接收頁(yè)面
實(shí)現(xiàn)文件共享首先需要將優(yōu)盤掛載到GoAhead Web Server的根目錄之下,方便后臺(tái)程序?qū)ξ募到y(tǒng)進(jìn)行讀寫操作。GoAhead Web Server的根目錄是/etc_ro/web/,在根目錄下建立子目錄share,將所用優(yōu)盤掛載到/etc_ro/web/share/,同時(shí)指定字符集為cp936:mount/dev/sda1/實(shí)現(xiàn),可以使得用戶在智能電視等播放器上直接播放服務(wù)器里面的音視頻資源。UPnP (universal plug and play)是為解決家庭和公司網(wǎng)絡(luò)消費(fèi)電子設(shè)備之間的互聯(lián)互通問(wèn)題而提出的一套網(wǎng)絡(luò)協(xié)議,其基于多種現(xiàn)存的標(biāo)準(zhǔn)協(xié)議之上,包括TCP/IP、HTTP、HTTPU、SSDP、GENA等。DLNA (digital living network alliance)主要解決包含個(gè)人計(jì)算機(jī)、家庭電器 (如智能電視)、移動(dòng)設(shè)備 (如智能手機(jī))等在內(nèi)的有線網(wǎng)絡(luò)和無(wú)線網(wǎng)絡(luò)的互聯(lián)互通問(wèn)題[9],其具有硬件無(wú)關(guān)性,在家庭和其它公共場(chǎng)所能夠靈活地構(gòu)建設(shè)備間互連互通功能。UPnP協(xié)議是DLNA的基礎(chǔ)協(xié)議,詳細(xì)描述了DLNA各設(shè)備間的相互偵測(cè)和運(yùn)行機(jī)制,實(shí)現(xiàn)了設(shè)備的自由接入。
UPnP AV架構(gòu)[10]作為家庭網(wǎng)絡(luò)多媒體系統(tǒng)的標(biāo)準(zhǔn),主要由媒體服務(wù)器、控制點(diǎn)和媒體播放器組成,如圖9所示。UPnP控制點(diǎn)負(fù)責(zé)在服務(wù)器和播放器之間建立連接,但是并不參與媒體數(shù)據(jù)流的傳輸。
圖9 UPnP AV架構(gòu)
通過(guò)為路由器構(gòu)建UPnP服務(wù)器或DLNA服務(wù)器功能,可以讓用戶直接在智能手機(jī)或者其它支持UPnP協(xié)議的播放器上播放路由器里面的圖片、音頻和視頻文件,而不需要將這些文件拷貝到播放器上。
我們研發(fā)的3G路由器通過(guò)uShare建立數(shù)字媒體服務(wù)器。uShare是一款UPnP A/V &DLNA媒體服務(wù)器,支持播放設(shè)備訪問(wèn)服務(wù)器里的圖片、音頻和視頻資源。系統(tǒng)利用uShare實(shí)現(xiàn)數(shù)字媒體服務(wù)器時(shí)用到FFMPEG、libupnp和libdlna開源軟件。libdlna用以實(shí)現(xiàn)DLNA媒體服務(wù)器功能,在處理和傳輸音視頻時(shí)需要FFMPEG庫(kù) (libavformat和libavcodec)和libupnp的支持。libupnp是對(duì)UPnP協(xié)議的實(shí)現(xiàn),可以和uShare單獨(dú)建立UPnP媒體服務(wù)器。在編譯過(guò)程中還需要用到pkg-config工具。
對(duì)于UPnP媒體服務(wù)器,用戶可以使用web頁(yè)面對(duì)其進(jìn)行配置,當(dāng)用戶設(shè)備接入路由器之后,對(duì)于該系統(tǒng),用瀏 覽 器 打 開 http://10.10.10.254:49152/web/ushare.html,即可對(duì)其進(jìn)行遠(yuǎn)程控制。打開一款媒體播放器,便可以訪問(wèn)服務(wù)器下的資源。如在 Windows 7平臺(tái)下使用Windows Media Player 12,在其左側(cè)的 “其它媒體庫(kù)”下面列有所建服務(wù)器名稱,當(dāng)用戶請(qǐng)求一個(gè)資源后,便可以流暢地播放了。對(duì)于客戶端發(fā)起的每一個(gè)請(qǐng)求,服務(wù)器在響應(yīng)之后會(huì)給出相關(guān)信息,圖10描述了服務(wù)器收到Windows Media Player 12連接請(qǐng)求并成功注冊(cè)的Action信息。
圖10 Action信息
本文針對(duì)多功能3G路由器的需求,闡述了短信發(fā)送和接收功能、文件共享和數(shù)字媒體服務(wù)器功能的設(shè)計(jì)與實(shí)現(xiàn),通過(guò)對(duì)RT5350芯片和嵌入式Linux的研究,逐步完成了這些實(shí)用功能,可以滿足不同用戶的多種功能需求。相對(duì)于普通路由器,具有該功能的3G路由器不僅具有網(wǎng)速穩(wěn)定快速、體積小易攜帶的特性,而且實(shí)用功能豐富,使用方便,具有很好的實(shí)用價(jià)值和廣闊的市場(chǎng)前景,同時(shí)為4G路由器的研發(fā)奠定了基礎(chǔ)。
[1]YAN Qiao,NIU Junjun.Design and implementation of embedded 3Grouter [J].Computer Engineering and Design,2013,34 (3):868-872 (in-Chinese). [閆巧,牛軍軍.嵌入式3G路由器的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)工程與設(shè)計(jì),2013,34(3):868-872.]
[2]Ralink Technology.Ralink first to offer per-packet antenna diversity technology in world’s smallest and most integrated 802.11nWi-Fi router-on-a-chip [EB/OL]. [2010-11-09].http://www.ralinktech.com/en/05_press-center/news.php?sn=1023.
[3]Robert Love.Linux kernel development [M].3nd ed.CHEN Lijun,KANG Hua,transl.Beijing:China Machine Press,2011(in Chinese).[Robert Love.Linux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn) [M].3版.陳莉君,康華,譯.北京:機(jī)械工業(yè)出版社,2011.]
[4]Embedthis Software.GoAhead web server [EB/OL]. [2013-06-07].http://embedthis.com/products/goahead/.
[5]ZHAO Qinglei,HAN Chengshan,WEN Ming,et al.GoA-h(huán)ead embedded server’s design and implementation [J].Microcomputer Information,2011,27 (4):67-69 (in Chinese).[趙慶磊,韓誠(chéng)山,文明,等.GoAhead嵌入式服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn) [J].微計(jì)算機(jī)信息,2011,27 (4):67-69.]
[6]ZHOU Xuhong,LIANG Alei,QI Zhengwei.Design and implementation of smart phone system software based on embedded Linux [J].Computer Applications and Software,2008,25 (3):59-61 (in Chinese). [周緒宏,梁阿磊,戚正偉.基于嵌入式Linux的智能手機(jī)系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)應(yīng)用與軟件,2008,25 (3):59-61.]
[7]XIE Chunxiang,ZHANG Hong,NIE Yuman.Development of SMS terminal based on GSM/GPRS [J].Computer Engineering and Design,2007,28 (7):1680-1682 (in Chinese).[謝春祥,張虹,聶余滿.基于GSM/GPRS的終端式短信平臺(tái)開發(fā) [J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28 (7):1680-1682.]
[9]LI Xin,LI Yiting.Design of digital media adapter based on DLNA[J].Electronic Design Engineering,2012,20 (20):179-181 (in Chinese).[李欣,李軼婷.基于DLNA數(shù)字媒體適配器的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2012,20 (20):179-181.]
[10]LIAO Yun.Research on DLNA rejection screen in three screen interactive [J].Video Engineering,2012,36 (24):54-56 (in Chinese).[廖云.三屏互動(dòng)中 DLNA甩屏技術(shù)的研究 [J].電視技術(shù),2012,36 (24):54-56.]