吳鵬展,龍昭華,張 林
(重慶郵電大學 計算機系統結構研究所,重慶400065)
現有的802.11技術包含的兩種網絡類型:基礎結構網絡和Ad-Hoc網絡[1],都有一些不足,其中基礎結構網絡需要AP來管理和控制網絡;而Ad-Hoc雖不需要AP的支持,但是配置繁瑣,市場支持率低。這兩種網絡并不能很好的滿足這一需求。因此 Wi-Fi聯盟提出了一種新的網絡模式:Wi-Fi Direct。
Wi-Fi Direct是一種新的 Wi-Fi認證商標名稱[2],它對應的技術規范是 Wi-Fi Alliance Peer-to-Peer(P2P)Specification,符合該技術標準的設備在無需AP的情況下,就可以方便地與其他設備實現直接連接,從而傳輸數據或共享應用,這將極大的擴大無線局域網的應用范圍,并對未來的移動智能辦公和智能家居生活等消費電子領域產生深遠的影響。因此本文把Wi-Fi Direct與投影技術結合起來,研究和設計了一種基于Wi-Fi Direct的無線投影網關,試圖把Wi-Fi Direct技術擴展到投影領域,以擴大 Wi-Fi Direct的影響并使投影設備擺脫線纜的束縛。
Wi-Fi Direct旨在提供一種類似藍牙的P2P (個人對個人)網絡。它的基本單元是組,組內包含兩類設備:GO(group owner)和 GC (group client)[3]。GO 提 供 傳 統WLAN網絡中類似AP的功能,可為P2P網絡中的其它客戶端提供分布式服務,并且它同時支持傳統WLAN網絡中的STA角色;GC則是連接到GO的、類似于傳統網絡中的STA的客戶端設備。
在P2P網絡的組中,GO與GC的連接可以是一對一,也可以是一對多的。因為GO可以同時充當兩個角色,所以GO可以同時加入傳統WLAN網絡和P2P網絡,這種特性被稱為并發連接。對于傳統的不支持Wi-Fi Direct技術的STA,它可與GO的軟AP角色連接,也能加入到P2P組中,從而保持了良好的兼容性[4]。圖1所示為 Wi-Fi Direct的網絡拓撲。

圖1 Wi-Fi Direct的網絡拓撲
Wi-Fi Direct是基于802.11系列標準的規范,它的主要特點有:
(1)使普通STA支持軟AP的角色,從而提供了一種無需真實AP即可使多個終端建立P2P網絡進而直接通信的方式,并且對不支持 Wi-Fi Direct的傳統 WLAN的STA保持了良好的兼容性;
(2)允許設備支持并發連接,即一個無線終端設備可以同時以多種身份 (軟AP、STA)加入多個無線網絡中;
(3)建 立 連 接 時 采 用 的 是 WPS (Wi-Fi protected setup)[5],WPS是 Wi-Fi聯盟的一個認證項目,主要目的是為了簡化WLAN的安裝及安全性配置工作,使用該技術,用戶只用按下一個按鈕或輸入一個密碼就可以方便、快速的建立起安全的無線網絡;Wi-Fi Direct還允許建立連接的所有支持Wi-Fi Direct的設備在適當的時候都進入休眠狀態,從而節約電量;
(4)Wi-Fi Direct還提供服務發現功能,即在設備建立連接之前就可獲得目標設備所能提供的服務,如在與一個打印機連接之前就可知道這個打印機是否支持彩色打印。
1.3.1 組的建立
在Wi-Fi Direct中,組的建立包含了3個過程:設備發現、GO協商、條件提供。設備發現過程促使兩個設備停駐到同一個信道并交換設備信息;而協商GO過程則由相互發現的設備協商由哪個設備作為GO;條件提供則是在GO與GC之間使用WPS來快速的建立安全的連接[6]。
設備發現過程的目的是為了快速找到設備并決定要與哪個設備建立連接。該過程包含兩個階段:掃描和查找。掃描階段是為了收集設備周圍的設備和網絡的信息,它采用的技術與802.1-2007標準中所用的掃描技術一樣,但是在發送的掃描幀中,加入了WPS信息元素和P2P信息元素。而查找階段則用來使兩個P2P設備到達同一信道進而通信。查找階段是依靠P2P設備周期性的在監聽狀態和搜索狀態切換來實現的,其中監聽狀態在一個固定的信道上捕獲探詢請求幀,而搜索狀態則在一系列指定的信道上發送探詢請求幀。兩個設備能到達同一信道有賴于一種把監聽狀態的周期隨機化的機制。
一旦發現P2P設備,兩者就可進行GO協商,以確定哪一個設備作為GO,而判斷標準取決協商設備的意愿值及Tie Break位。往往是軟、硬件資源比較豐富的終端成為GO。
在相互發現的設備確定GO后,用戶只需要在設備上輸入密碼或按下WPS按鈕,即可自動觸發WPS過程,最終會形成受WPA2保護的P2P組了,并且SSID、臨時密鑰都是隨機生成的。無需用戶對設備設置進行太多的干涉。
1.3.2 Wi-Fi Direct的電源管理
在傳統WLAN中,AP是不能進入休眠狀態,但在Wi-Fi Direct中,多由移動終端充當軟AP角色,而高效的使用電源對于移動終端來說具有重要意義。因此在P2P規范中,以 Wi-Fi的Power Save和 WMM-PS[7]為基礎進行修改,創建了兩種新的節能機制:P2P-PS和P2P-WMM-PS,以期能達到最大化的節省能源。P2P節能機制的核心是機會節能和缺席通知。機會節能幫助GO進入休眠狀態,缺席通知則是告知P2P組中的其它設備GO的休眠計劃,這樣P2PGC也可在此段時間內進入休眠狀態[8]。P2PGC也可給GO發送Presence Request幀來對GO的休眠計劃施加影響。
在數字技術迅猛發展的今天,投影機已經成為多媒體教室、家庭影院、多功能會議廳等演示場所的標準配置。但大多投影機傳輸數據還以線纜為媒介,這導致了諸多麻煩,如布線的更換,會場人員的頻繁移動等。因此在文中,設計了一種無線投影網關,該網關使用Wi-Fi Direct技術傳輸數據,可做為普通投影儀的外接模塊,方便用戶連接,解決了上述問題。
如圖2所示為無線投影網關系統結構圖。在該系統中,無線投影網關通過VGA或HDMI接口與投影儀連接,并使用Wi-Fi Direct與其它無線終端通信。并且無線投影網關充當GO,它的軟AP角色與其它無線終端建立P2P網絡。而它的STA角色則可與傳統WLAN網絡的AP建立連接,同時把無線投影網關的軟AP角色與STA角色橋接起來,這樣無線終端的桌面信息則會經無線投影網關的軟AP角色傳遞給投影儀,而其它訪問互聯網的數據則可經過無線投影網關的軟AP轉發給STA角色、并進一步傳遞給實體AP,此時無線終端即可通過無線進行投影又可通過無線訪問互聯網了。

圖2 無線投影網關系統結構
無線投影網關的主要功能包含:完成無線信號的收發;處理無線終端發送過來的桌面數據;同時還要具備向投影儀輸出高分辨率及高刷新率的圖像的能力。這就需要提供對HDMI接口的支持,但是為了與只有VGA接口的設備保持良好的兼容性,還需要支持VGA接口。因此,在硬件選擇中,微處理器采用三星S5PV210[9],無線網卡芯片選擇Atheros的AR9374,VGA輸出芯片SDA7123。
其中S5PV210是三星推出的一款適用于智能手機和平板電腦等多媒體設備的應用處理器,它的主要特點有:
(1)采用了 ARM CortexTM-A8內核,ARM V7指令集,主頻可達1GHZ,可以實現每秒運算2億條指令集的高性能運算能力;
(2)對多媒體提供了良好的支持,支持流暢的2D/3D圖形加速,可支持 MPEG-4/MPEG2、H.264/H263等,并支持高達1080p@30fps硬件解碼。支持高達1080p的HDMI高清輸出,并可提供8-channel/112kHz/24-bit的立體聲音輸出;
(3)TFT-LCD接口支持并行的24位RGB輸出,分辨率最高可達1024x768;
(4)支持4路SDIO接口,可直接使用DMA。
AR9374是Atheros專門為嵌入式設備提供的高度集成的、低功耗802.11a/b/g/n解決方案。被廣泛應用在數字電視、藍光播放機、數字媒體適配器、無線音頻等產品中。AR9374使用了Atheros的第六代802.11技術,可工作在2.4GHz和5GHz雙頻段中,提供高達300Mbps的數據吞吐率。它內部集成了功能強大的CPU及內存子系統,可有效緩解主CPU的壓力,以使主CPU專心處理其它數據流。它同時提供極為安全的鏈路訪問,安全上除支持AES,TKIP,WEP外,也支持中國WLAN的強制安全標準WAPI。通信接口還提供對GPIO的支持,以縮小設計難度[10]。
SDA7123是三路10位視頻D/A轉換器,它包括三路高速、10位輸入的視頻DA轉換器、標準的TTL輸入和互補輸出高阻抗的模擬輸出電源。它有三路獨立的10位輸入端口,可以在單電源5V下工作,也可以在單電源3.3V下工作。綠通道可帶同步信號輸出。它的數據更新頻率MSPS為140MHz,SDA7123內帶1.23V基準,工作溫度范圍寬 (-40+85℃),它采用QFP型48線方形扁平封裝。適用于數字視頻系統、圖像處理、儀器、高精度顯示器、視頻信號重建等系統中。
無線投影網關硬件框圖如圖3所示。微處理器S5PV210通過SDIO與AR9374連接,負責無線信號的收發,SDA7123通過TFT LCD控制器與S5PV210連接[11],并向外提供VGA接口,以對只有VGA接口的設備提供良好的兼容性;而S5PV210的HDMI控制器則可直接連接HDMI接口,向外提供HDMI信號。

圖3 無線投影網關硬件框架
整個無線投影網關系統的軟件設計包含兩個部分:投影網關端和客戶端。其中投影網關端的軟件燒錄在嵌入式無線投影網關硬件中,客戶端則安裝在要投影的無線終端中,如PC機、智能手機等。如圖4所示為系統的軟件設計。

圖4 無線投影網關系統的軟件設計
2.3.1 建立直接連接網絡軟件設計
在投影網關端,使用Linux作為嵌入式系統,為對Wi-Fi Direct提供支持,內核采用3.0。對 Wi-Fi Direct的控制和配置則使用wpa_supplicant[12]。在上述無線投影網關的硬件平臺上移植Linux 3.0及wpa_supplicant等相關依賴的軟件,即可開啟 Wi-Fi Direct了。開啟一個固定SSID的Wi-Fi Direct的命令[13]為:

此時Linux系統就會打開兩個無線接口:wlan0和mon.wlan0。無線投影網關也對應有了兩個角色了,一個STA角 色 wlan0,一 個 GO 角 色 mon.wlan0。其 中mon.wlan0為客戶端提供軟AP功能,供客戶端加入到Wi-Fi Direct網絡。而wlan0則可加入到附近的傳統WLAN網絡,并可橋接wlan0和mon.wlan0,以便客戶端的訪問互聯網的數據經無線投影網關轉發到實體AP。實現橋接功能的轉發命令為:
2.3.2 桌面捕捉與渲染軟件設計
一旦建立P2P網絡,客戶端設備就直接連接無線投影網關了。而無線投影網關創建一個進程A監聽端口50001,負責從客戶端處接收H.264流,使用S5PV210的硬件解碼器解碼H.264數據流,并渲染到HDMI或VGA接口供投影儀顯示。
在客戶端,即使該設備不支持Wi-Fi Direct,它也可加入到P2P網絡中,并使用socket在端口50001與無線投影網關建立傳輸屏幕數據流的連接。在獲得訪問投影儀的權限之后,就可抓取屏幕的內容,把獲得的內容編碼為H.264,最后把H.264流發送給無線投影網關。之所以沒有使用JPEG等靜態圖像編碼,是因為高分辨率的桌面抓取的桌面圖像數據量比較大,會給無線網絡的傳輸帶來很大的壓力。而H.264則是一種高性能的視頻編碼技術[14],它具有很高的數據壓縮比率的同時還能擁有高質量的圖像效果,這對使用無線網絡傳輸來說是一個比較合適的選擇。
2.3.3 用戶投影切換軟件設計
投影儀在很多場合的應用,都涉及到用戶切換的問題。如在圓桌會議中,一個演講者做完演講,就需要把訪問投影儀的權限釋放給下一個演講者。在本文中,采用多進程、多端口的設計方法來有效解決這一問題。客戶端和無線投影網關端的一個進程A在端口50001負責傳輸H.264流,另一個進程B在端口50002負責傳輸用戶切換的控制數據。多進程、多端口的方法可以有效的識別H.264數據流和控制信息,避免在如何區分數據流和控制信息上占用太多的MCU資源,從而使得H.264數據流得到及時的處理,進而保證屏幕顯示的實時性。
無線投影網關端也創建一個進程B負責監聽端口50002,判斷是否有訪問投影儀的申請。如果有申請,就詢問正在投影的設備是否愿意釋放投影的權限,并根據正在投影設備的回復響應預投影設備的請求。如圖5所示為無線投影網關的進程B的流程圖。

圖5 無線投影網關的進程B的流程
為了驗證無線投影網關的實際效果,特通過實驗對其進行測試。試驗的條件是:無線投影網關和客戶端都使用802.11n,桌面分辨率分別設置為1024x768和1280x800兩種情況,兩者的距離為5m,并且分別在開啟橋接和關閉橋接的條件下進行測試。并且通過計算客戶端的桌面與投影儀投影的桌面的時鐘差來估算傳輸的時延。試驗結果數據見表1。

表1 試驗數據結果
實驗數據顯示在關閉橋接的時候,無線投影網關只負責通過無線收發桌面數據流,沒有客戶端訪問互聯網數據的分流,此時接收到的桌面幀數比打開橋接時要多一些;而對于高分辨率的桌面,因為其數據量比低分辨率的要大,因此接收數據幀的能力也明顯低于低分辨率時的能力。在上面的實驗環境中,通過計算時鐘的差距,可以估算到時延都約為1秒。對于PPT演示、媒體播放等還是能夠給予良好的支持。
Wi-Fi Direct作為一項新近誕生的技術規范,解決了人們在無AP時進行直接連接的需求,必將成為無線局域網下一個發展熱點。本文在研究 Wi-Fi Direct特性的基礎上,設計了一種無線投影網關,該網關可以作為外接模塊用在已經面市的投影儀上,也可作為內嵌模塊接入到正在研究的產品中,方便用戶通過無線與投影儀直接連接,滿足了人們對無線辦公的需求。但在網絡環境復雜的條件下,性能會有一些下降,因此需要在下一步的工作中加強對RTP協議的研究。
:
[1]IEEE 802.11-2007,Information technology-telecommunications and information exchange between systems-local and metropolitan area networks-specific requirements-Part 11:Wireless LAN medium access control and physical layer specifications [S].
[2]Wi-Fi Alliance:Wi-Fi voice-enterpise white paper [EB/OL].http://www.wi-fi.org/register.php?file=wp_Wi-Fi_Direct_20101025_Industry.pdf,2010.
[3]Wi-Fi Alliance.Wi-Fi certified Wi-Fi direct frequently asked questions [EB/OL].[2010-10-21].http://www.wi-fi.org/sites/default/files/uploads/files/faq_20101021_Wi-Fi_Direct_FAQ.pdf.
[4]Yoon H,Kim J.Collaborative streaming-based media content sharing in WiFi-enabled home networks [J].IEEE Transactions on Consumer Electronics,2010,56 (4):2193-2200.
[5]Wi-Fi protected setup specification – version 1.0,Wi-Fi protected setup specification [S].
[6]Wi-Fi Peer-to-Peer technical specification v1.1,Wi-Fi Peer-to-Peer technical specification [S].
[7]WMM Specification v1.1,WMM (including WMM Power Save)specification [S].
[8]Camps Mur D,Perez Costa X,Sallent Ribes S,et al.Designing energy efficient access points with Wi-Fi direct [J].Computer Networks,2011,55 (13):2838-2855.
[9]CHEN Wenzhen,BIAN Weifeng,ZHANG Yawei.Porting LCD drive based on android OS [J].Instrumentation Technology,2012 (4):16-19 (in Chinese). [陳文震,卞衛鋒,張亞偉.Android系統下的LCD驅動移植 [J].儀表技術,2012(4):16-19.]
[10]Atheros.AR9374datasheet[EB/OL].[2012-06-25].http://www.qca.qualcomm.com/media/product/product_113_file1.pdf.
[11]FANG Peng,ZHANG Hongyu,ZHAO Minghui.Design of VGA display technology based on ARM CPU S3C2440 [J].International Electronic Elements,2011,19 (11):174-176(in Chinese). [方鵬,張紅雨,趙明輝.基于ARM處理器S3C2440的VGA顯示技術 [J].電子設計工程,2011,19(11):174-176.]
[12]Malinen J.Linux WPA/WPA2/IEEE 802.1Xsupplicant[EB/OL].[2012-07-03].http://w1.fi/wpa_supplicant/.
[13]linuxwireless.org,P2Phow to [EB/OL]. [2010-06-25].http://linuxwireless.org/en/developers/p2p/howto.
[14]TAO Guidong,ZHANG Zhanjun.Research on the QoS guarantee for H.264video stream transmission based on RTP [J].Journal of Armored Force Engineering Institute,2006,20(5):58-60 (in Chinese).[陶桂東,張占軍.基于RTP協議H.264視頻流傳輸QoS保證的研究 [J].裝甲兵工程學院學報,2006,20 (5):58-60.]