池鵬可,蘇成悅,謝廣泉,柳 丁
(廣東工業(yè)大學(xué)物理與光電工程學(xué)院,廣東 廣州510006)
隨著智能嵌入式設(shè)備的迅猛發(fā)展與普及,嵌入式操作系統(tǒng)的應(yīng)用也變得更加廣泛。Android系統(tǒng)是目前市場上基于Linux內(nèi)核的最成功移動設(shè)備系統(tǒng)之一,它開源并包含移動設(shè)備操作系統(tǒng)所有必需的功能,被廣泛地應(yīng)用在各種移動設(shè)備[1]。Linux內(nèi)核為Android的軟件棧提供核心系統(tǒng)服務(wù),這些服務(wù)包括設(shè)備驅(qū)動、網(wǎng)絡(luò)體系、文件系統(tǒng)、內(nèi)存管理、電源管理和進程管理[2]。Android提供廣泛而實用的函數(shù)庫和工具,利用它們可以基于ARM Cortex A8內(nèi)核的嵌入式系統(tǒng)開發(fā)豐富的應(yīng)用程序[3]。
在無線投影網(wǎng)關(guān)的硬件設(shè)計方面,有研究者[4,5]介紹了以AMD Geode Gx 533處理器和CS 5535南橋為核心,配合USB 控制器等其他相關(guān)功能芯片進行設(shè)計的方法。對于系統(tǒng)方案的選擇,有學(xué) 者 采 用 WinCE 操 作 系 統(tǒng)[5,6]或 是Linux 系統(tǒng)[7,8]。目前無線通訊協(xié)議趨向多樣化,文獻[9]提出一種基于WHDI技術(shù)的高清視頻通訊協(xié)議,該協(xié)議以有損傳輸為代價換取較高的傳輸速率。有學(xué)者從事無線投影這方面的研究,也有以Android為平臺的無線顯示產(chǎn)品,但以Android為平臺實現(xiàn)多用戶無線投影的開發(fā)研究尚未發(fā)現(xiàn)。
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,智能移動設(shè)備可以感知和獲取周圍環(huán)境的信息,方便人們的生活和工作。本文設(shè)計了一個支持PC 機及Android手持移動設(shè)備的無線投影系統(tǒng),使用者能夠?qū)C 機和手持移動設(shè)備上的屏幕信息通過WIFI無線發(fā)射,經(jīng)無線網(wǎng)關(guān)傳輸?shù)酵队皟x和液晶電視機,并可在多個用戶間切換,不受線纜的束縛,方便通過投影系統(tǒng)展示,實現(xiàn)手持移動設(shè)備實時拍攝畫面的實時顯示。該系統(tǒng)對智能家庭娛樂和智能化辦公有較大意義,具備廣泛的應(yīng)用前景。
PC機或手持移動設(shè)備將顯存數(shù)據(jù)進行編碼,通過無線通信傳輸?shù)綗o線投影網(wǎng)關(guān),無線投影網(wǎng)關(guān)接收并解碼顯存數(shù)據(jù),通過VGA 接口或HDMI接口送到投影儀顯示。無線通信是基于TCP/IP 協(xié)議、802.11協(xié)議組的無線局域網(wǎng)[10]。系統(tǒng)由Android手持移動設(shè)備或PC 機、無線投影網(wǎng)關(guān)、投影儀組成。該系統(tǒng)中,Android手持移動設(shè)備和PC機作為客戶端,無線投影網(wǎng)關(guān)作為服務(wù)端??蛻舳送ㄟ^投影管理軟件獲取并發(fā)送顯存數(shù)據(jù),無線投影網(wǎng)關(guān)與投影儀連接,將接收到的顯存信息顯示在屏幕上。工作流程如圖1所示。
Figure 1 Working process圖1 工作流程圖
如圖2所示為多用戶無線投影網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)圖。在PC機、手持移動設(shè)備上運行自主設(shè)計的投影管理軟件,各臺從機間斷獲取顯存數(shù)據(jù)并發(fā)送給主機,主機上的投影管理軟件有四個預(yù)覽框分別顯示四臺從機的屏幕信息,主機將自己的屏幕顯存數(shù)據(jù)編碼發(fā)送給無線投影網(wǎng)關(guān)解碼顯示。當需要哪一臺從機投影時,點擊主機的投影管理軟件上相應(yīng)的預(yù)覽框,切換讓從機與無線投影網(wǎng)關(guān)通信,即主機可以讓任意一臺從機將顯存數(shù)據(jù)編碼發(fā)送給無線投影網(wǎng)關(guān)解碼顯示,自由切換,這樣便實現(xiàn)多用戶無線投影。
客戶端軟件包括PC 機和移動設(shè)備的無線投影軟件,客戶端軟件主要是與無線投影網(wǎng)關(guān)建立無線通信,將屏幕顯存數(shù)據(jù)發(fā)送給無線投影網(wǎng)關(guān)。為了提高無線傳輸速率,防止網(wǎng)絡(luò)傳輸阻塞,則需要對顯存數(shù)據(jù)進行壓縮編碼。但是,過度的壓縮會導(dǎo)致圖像失真,所以為了權(quán)衡圖像的清晰度和傳輸速率,采用了JPEG 圖像編碼算法。因為JPEG 圖像的壓縮率是30∶1,其圖像質(zhì)量幾乎沒損耗[11],圖像大小適合無線傳輸。
Figure 2 System structure of a wireless multi-user projection gateway圖2 多用戶無線投影網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)
在Visual Studio 2010平臺上使用C++編程語言設(shè)計PC 機的客戶端管理軟件。主機調(diào)用socket類的bind函數(shù)綁定本地地址、綁定應(yīng)用端口為5050 并開啟監(jiān)聽,從機連接主機時需調(diào)用socket類的connect函數(shù)發(fā)出連接請求,主機調(diào)用的socket類的accept函數(shù)會自動響應(yīng)從機的連接請求進行通訊,新建線程用于接收從機發(fā)送的顯存數(shù)據(jù)。
主機的監(jiān)視窗口顯示桌面信息是通過在線程中解碼接收到的顯存數(shù)據(jù)方式實現(xiàn)的。切換投影從機桌面信息時,主機先將用于無線投影網(wǎng)關(guān)的套接字發(fā)送給需要投影的從機,再斷開與無線投影網(wǎng)關(guān)的通信。從機接收到主機的套接字后,斷開與主機的連接,建立與無線投影網(wǎng)關(guān)的通信,將顯存數(shù)據(jù)發(fā)給無線投影網(wǎng)關(guān)。需投影主機時,從機斷開與無線投影網(wǎng)關(guān)的通信,重新建立與主機的連接并發(fā)送切換信號,主機接收到切換信號后,建立與無線投影網(wǎng)關(guān)的通信。工作過程如圖3所示。
Figure 3 Working process of management software on PC圖3 PC管理軟件工作過程
Eclipse是著名的跨平臺開源集成開發(fā)環(huán)境(IDE),主要用Java語言在Eclipse平臺上開發(fā),Eclipse的本身只是一個框架平臺,但是眾多插件的支持,使得Eclipse擁有較佳的靈活性[12],當然Eclipse也支持Android ADT 插件,這樣使得Android APP開發(fā)便捷。我們在Eclipse平臺上使用Java編程語言設(shè)計手持移動設(shè)備上的客戶端無線投影管理軟件。
手持移動設(shè)備上的客戶端無線投影管理軟件,調(diào)用socket類函數(shù)綁定服務(wù)端的IP和端口號,與服務(wù)端建立連接,調(diào)用service類在后臺獲取屏幕顯存數(shù)據(jù)。獲取屏幕顯存信息是讀取framebuffer中的數(shù)據(jù),其方法為:
攝像頭拍攝畫面實現(xiàn)無線投影設(shè)計主要是對手機相機功能的開發(fā),自定義surfaceView 來定義自己的相機類,顯示手機攝像頭實時攝像的畫面。無線投影管理軟件獲取自定義相機預(yù)覽畫面的數(shù)據(jù),對數(shù)據(jù)進行解析編碼,Android移動設(shè)備作為socket客戶端將采集到的數(shù)據(jù)發(fā)送給無線投影網(wǎng)關(guān)顯示。
《地貌學(xué)原理》[13]書中認為:花崗巖在3組相互正交的原生節(jié)理切割下,形成許多長方形或近似正方形的巖塊,由于風化作用將周邊棱角磨圓,巖塊逐漸球化,最后形成風化球又稱孤石。孤石是原巖不斷風化過程中尚且沒有風化完全的殘留物。如圖1中(b)所示,該工程邊坡上廣泛發(fā)育形態(tài)多樣的孤石,直徑一般為1~6 m。根據(jù)場地勘察報告,區(qū)內(nèi)地層主要為第四系人工堆積層、第四系殘積層和燕山期侵入花崗巖,而燕山時期的花崗巖是形成孤石的主要巖體。工程需要對孤石進行穩(wěn)定性分析,對不穩(wěn)定的孤石進行治理。
隨著PC機和智能手持設(shè)備的普及,無線技術(shù)應(yīng)用日新月異,本文設(shè)計了一款便攜式無線投影網(wǎng)關(guān),實現(xiàn)多PC用戶或智能手持移動設(shè)備用戶實時切換投影,對不具備無線投影功能的投影儀實現(xiàn)無線投影。無線投影網(wǎng)關(guān)是由基于ARM Cortex A8內(nèi)核處理器,內(nèi)嵌Android系統(tǒng),將接收到的客戶端屏幕顯存數(shù)據(jù)解碼顯示,數(shù)據(jù)經(jīng)過ARM Cortex A8嵌入式處理器處理以后,通過VGA 或HDMI接口送到投影儀顯示出來。
無線投影網(wǎng)關(guān)的硬件結(jié)構(gòu)圖如圖4 所示,包括:三星Cortex A8處理器、LCD 接口、USB接口、SD 接口、VGA 模塊、HDMI接口、WIFI模塊、按鍵、220V 電源接口和電源轉(zhuǎn)換模塊。
Figure 4 Hardware structure of a wireless projection gateway圖4 無線投影網(wǎng)關(guān)硬件結(jié)構(gòu)圖
為了使無線投影網(wǎng)關(guān)接收速度和圖像處理速度更快,本系統(tǒng)的無線投影網(wǎng)關(guān)采用Samsung S5PV210處理器,Ralink RT2070 無線網(wǎng)卡。Samsung S5PV210處理器的主要特性[13]:
(1)運行主頻可高達1 GHz,能夠流暢運行Android操作系統(tǒng),非常適合開發(fā)高端物聯(lián)網(wǎng)終端等設(shè)備。
(2)S5PV210 內(nèi)部集成了PowerVR SGX540高性能圖形引擎,支持2D/3D 圖形流暢運行,最高可支持1080p@30fps硬件解碼視頻流暢播放和1080p@30fps 硬 件 編 碼(Mpeg-2/VC1)視 頻 輸入。
Ralink RT2070 兼 容IEEE 802.11g、IEEE 802.11b標準,無線傳輸速率高達54 Mbps,是普通11b產(chǎn)品 的5 倍;支 持64/128/256 位WEP 數(shù)據(jù) 加 密,同 時 支 持 WPA/WPA-PSK、WPA2/WPA2-PSK 安全機制。內(nèi)置智能天線可適應(yīng)不同的工作環(huán)境,使臺式機或筆記本PC 機用戶方便地接入無線網(wǎng)絡(luò),同時支持無線漫游功能。另外還可以方便地與其它的11b、11g無線設(shè)備連接。
Samsung S5PV210 處 理 器 通 過 USB 與Ralink RT2070 連接進行數(shù)據(jù)的接收,通過TFT LCD 控制器與VGA 模塊連接,以便能連接上只有VGA 接口的投影儀。Samsung S5PV210 處理器也可通過HDMI接口連接上帶有HDMI接口的投影儀或者液晶電視機,以達到高清效果輸出。
從Android系統(tǒng)架構(gòu)來看,軟件堆棧包括在Linux內(nèi)核頂層上的Java應(yīng)用程序和用Java、C、C++、XML等語言編寫的系統(tǒng)組件[14]。在本文中,無線投影網(wǎng)關(guān)內(nèi)嵌入Android系統(tǒng)、使用Java語言設(shè)計的接收管理軟件。無線投影網(wǎng)關(guān)建立一個套接字的ServerSocket對象,新建一個監(jiān)聽端口,等待客戶端發(fā)送顯存數(shù)據(jù)的請求。若有客戶端的請求時,無線投影網(wǎng)關(guān)會新建線程負責接收顯存數(shù)據(jù);若沒有客戶端的請求時,但接收到主機的切換指令,便會中斷其他客戶端的通信,重新與主機指定的客戶端連接通信。無線投影網(wǎng)關(guān)接收完一幀顯存數(shù)據(jù),通過handle方法將一幀顯存數(shù)據(jù)傳輸?shù)街骶€程來更新UI顯示屏幕信息。如圖5 所示為無線投影網(wǎng)關(guān)工作流程。
Figure 5 Working process of a wireless projection gateway圖5 無線投影網(wǎng)關(guān)工作流程圖
對無線投影網(wǎng)關(guān)系統(tǒng)進行整體實驗測試是在100m2無障礙物的實驗室進行,局域網(wǎng)是由主機產(chǎn)生的熱點所形成的,目的是測試在沒有路由器環(huán)境下的通信效果,這樣也方便在沒有路由器的辦公教學(xué)場所進行無線投影。
分別對桌面分辨率為1 360*768、1 280*768和1024*768三種情況測試,經(jīng)測試,無線投影網(wǎng)關(guān)能夠顯示圖像信息的分辨率可高達1 360*768,滿足普遍PC 機和移動設(shè)備的無線顯示。經(jīng)計時器測試,無線投影過程延時約1s,測試過程基本流暢,PPT 演示和視頻播放效果達到要求。PC 機和移動設(shè)備測試結(jié)果數(shù)據(jù)如表1所示。
Table 1 Test result表1 測試結(jié)果
如圖6所示,使用多臺PC 機進行多用戶無線投影測試,圖中最左的PC 機為主機,其余為從機。圖7所示為主機上無線投影管理軟件,此軟件上的三個預(yù)覽圖分別是各臺從機的屏幕信息,一個是主機的屏幕信息。主機客戶端的預(yù)覽圖是為了方便辨別各臺從機和自由選擇哪臺從機進行無線投影,雙擊預(yù)覽圖即可切換從機無線投影,因而預(yù)覽圖不需要是實時從機屏幕信息,各從機可以每隔5s將顯存數(shù)據(jù)發(fā)送給主機解碼顯示。如圖8所示,使用手機進行Android移動設(shè)備無線投影測試,投影顯示流暢,手機操作正常。
Figure 6 Test of multi-user wireless projection圖6 多用戶無線投影測試
Figure 7 Management software of wireless projection on PCs圖7 PC機無線投影管理軟件
Figure 8 Test of wireless projection on mobile phone圖8 手機無線投影測試
基于Android的智能移動設(shè)備逐漸進入教育、家居等重要領(lǐng)域,服務(wù)于工作和生活的信息化。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,智能移動設(shè)備在人們的工作和生活中變得越來越重要。通過Android系統(tǒng)構(gòu)建的一個ARM 嵌入式服務(wù)端,通過獲取終端的顯存數(shù)據(jù)和無線傳輸,實現(xiàn)了多用戶無線投影,擴展了傳統(tǒng)投影儀的通訊功能,實現(xiàn)了無線投影系統(tǒng)中多用戶機自由切換和實時投影、手持設(shè)備攝像頭拍攝畫面無線投影等功能。本系統(tǒng)通過直接獲取顯存數(shù)據(jù)并傳輸投影,提高了手機和PC 機的軟件開發(fā)速度,可避開不同終端流媒體播放器兼容性問題。
本系統(tǒng)經(jīng)測試能夠顯示圖像信息的分辨率最高可達1 360*768,但無線投影過程還是存在約1s的延時,測試過程基本流暢,視頻播放效果基本達到要求,圖片和PPT 演示實時效果較佳,無延時感,滿足普通PC機和移動設(shè)備多用戶的無線顯示需求。視頻播放中出現(xiàn)的延時主要是因為無線投影網(wǎng)關(guān)采用的處理器只是單核ARM Cortex A8處理器,處理速度不理想。在同樣的硬件配置下,Lunix系統(tǒng)的方案同樣存在延時[7],若采用四核ARM Cortex A9處理器,可能能夠解決因處理器速度慢而導(dǎo)致的效果延時問題,對Android系統(tǒng)以及傳輸協(xié)議算法的優(yōu)化可能對改善延時有所幫助。Android與Linux系統(tǒng)相比較,二系統(tǒng)之間在延時問題上不存在明顯優(yōu)勢,Android在移動設(shè)備開發(fā)方面更具優(yōu)勢。無線連接是投影設(shè)備的發(fā)展趨勢,基于Android設(shè)計的多用戶無線投影系統(tǒng)極具應(yīng)用的優(yōu)勢。
[1] Khomh F,Yuan Hao,Zou Ying.Adapting Linux for mobile platforms:An empirical study of Android[C]∥Proc of 2012 28th IEEE International Conference on Software Maintenance(ICSM),2012:629-632.
[2] Shabtai A,F(xiàn)ledel Y,Elovici Y.Securing Android-powered mobile devices using SELinux[J].Security & Privacy,IEEE,2010,8(3):36-44.
[3] Wang Qian.A brief analysis on the framework and its kernel of android embedded system[J].Computer Development &Applications,2011,24(4):59-61.(in Chinese)
[4] Dai Wei,Zhu Guang-xi.Embedded hardware design of wireless projection gateway[J].Computer and Digital Engineering,2007,38(6):79-80.(in Chinese)
[5] Xu Duan-quan,Zhu Guang-xi.Design of wireless gateway of projector[J].Computer Engineering and Design,2008,29(5):1163-1165.(in Chinese)
[6] Cao Jie,F(xiàn)u Jie,Ma Xiao-yu.The design of Windows CE embedded system wirless projector[J].Computer Knowledge and Technology,2011,7(14):3274-3275.(in Chinese)
[7] Wu Peng-zhan,Long Zhao-h(huán)ua,Zhang Lin.Reseach and design of wireless projector gateway on Wi-Fi Direct[J].Computer Engineering and Design,2013,34(6):2223-2227.(in Chinese)
[8] Pura A,Raghu C.V.Design of a wireless adapter for multimedia projectors[C]∥Proc of 2011 2nd International Conference on Wireless Communication,Vehicular Technology,Information Theory and Aerospace & Electronic Systems Technology(Wireless VITAE),2011:1-4.
[9] Guan En-jing.The research of wireless projection connection device on WHDI[J].Science & Technology Information,2013(23):37.(in Chinese)
[10] Tsunashima K,Shida T,Kawano H,et al.Compact programmable network display system for portable projectors[J].IEEE Transactions on Consumer Electronics,2009,55(2):312-315.
[11] Descampe A,De Vleeschouwer C,Vandergheynst P,et al.Scalable feature extraction for coarse-to-fine JPEG 2000image classification[J].IEEE Transactions on Image Processing,2011,20(9):2636-2649.
[12] http://zh.wikipedia.org/wiki/Eclipse.
[13] User’s manual-S5PV210X[Z].Seoul:Samsung,2009.
[14] Butler M.Android:Changing the mobile landscape[J].Pervasive Computing,IEEE,2011,10(1):4-7.
附中文參考文獻:
[3] 王茜.Android嵌入式系統(tǒng)架構(gòu)及內(nèi)核淺析[J].電腦開發(fā)與應(yīng)用,2011,24(4):59-61.
[4] 戴維,朱光喜.無線投影網(wǎng)關(guān)的嵌人式硬件設(shè)計[J].計算機與數(shù)字工程,2007,38(6):79-80.
[5] 徐端全,朱光喜.無線投影機網(wǎng)關(guān)系統(tǒng)設(shè)計[J].計算機工程與設(shè)計,2008,29(5):1163-1165.
[6] 曹潔,付杰,馬曉昱.基于Windows CE的嵌入式無線投影系統(tǒng)設(shè)計[J].電腦知識與技術(shù),2011,7(14):3274-3275.
[7] 吳鵬展,龍昭華,張林.基于直接連接的無線投影網(wǎng)關(guān)的研究與設(shè)計[J].計算機工程與設(shè)計,2013,34(6):2223-2227.
[9] 管恩京.基于WHDI的無線投影連接設(shè)備的研究[J].科技信息,2013(23):37.