趙丙秀
摘 要: 文章通過介紹現在智能硬件和手機、平板近距離通信的場合,引出各種近距離通信解決方案,分析了紅外線、藍牙、NFC、WiFi等解決方案的優勢和弱點,總結出AdHoc是一個廉價、高效、安全、穩定的解決方案。通過程序介紹AdHoc近距離通信中服務器端和客戶端的自動配置的方法,強調AdHoc在智能硬件設備的UI展示中的易用性。AdHoc網絡將會受到更多的關注,得到更快速的發展和應用。
關鍵詞: AdHoc; 智能硬件; 近距離通信; WLan
中圖分類號:TP393.4 文獻標志碼:A 文章編號:1006-8228(2017)12-32-03
Implementation of short distance communication based on AdHoc
Zhao Bingxiu1,2
(1. School of computing, Wuhan vocational college of Software & Engineerig, Wuhan, Hubei 430205, China;
2. School of computing, Wuhan Television and Radio Univisity)
Abstract: Through the introduction of the scenarios of short distance communication existed in between the intelligent hardware and the mobile phone, tablet and so on, various kind of short distance communication solutions are introduced, and the advantages and disadvantages of the solutions such as the infrared, Bluetooth, NFC, WiFi etc., are analyzed to reach a conclusion that AdHoc is a cheap, efficient, safe and stable solution. The method of automatic configuration of server-side and client-side of AdHoc short distance communication is described with the commands and program, to emphasize that AdHoc is easy using for intelligent hardware device UI display. AdHoc network will receive more attention, and get more rapid development and application.
Key words: AdHoc; intelligent hardware; short distance communication; WLan
0 引言
近年智能硬件、智能穿戴、智能設備的發展一日千里。例如:共享單車的智能鎖、智能貓眼、智能手環、兒童手表、共享洗衣機等。這些智能硬件必須要有UI才能展現給用戶,我們往往是在手機或平板電腦上安裝相應的APP。
智能硬件與手機/平板的通信主要有遠距離通信和近距離通信兩種方式。遠距離通信有:智能家居中的智能貓眼、智能開關、智能攝像頭,日常生活中的共享洗衣機等。其需要的數據不要求實時,只要求能夠在一段時間到達。近距離通信有:在公共設置有公交卡、智能鎖,人體健康領域有脂肪秤、智能手環,生活領域有兒童手表、各種電器等。這些領域對數據傳輸的效率有比較高的要求。近距離通信講究的就是效率和速度,對數據量一般要求較少。
1 近距離通信常見的各種解決方案
近距離通信的痛點就是如何讓設備快速與UI界面溝通,讓用戶快速的解決交互問題,以免過長的延時造成用戶體驗下降,從而放棄使用硬件。比如一個騎共享單車上班族,在那里為了開一個摩拜單車,花了十分鐘,通過上傳指令到遠程,遠程認證后又下發指令到鎖,還要下發指令到手機,還要識別車的位置,這當中通信只要出現問題,就能造成用戶誤事,最后用戶會放棄單車。為了解決類似地矛盾,廠商推出了紅外、藍牙和NFC等近距離通信方式。
1.1 紅外線解決方案
紅外線通信是利用950nm近紅外波段的紅外線作為傳遞信息的媒體,即通信信道。發送端將基帶二進制信號調制為一系列的脈沖串信號,通過紅外發射管發射紅外信號。接收端將接收到的光脈轉換成電信號,再經過放大、濾波等處理后送給解調電路進行解調,還原為二進制數字信號后輸出。
紅外線的優勢在于容量大,保密性強,抗電磁干擾性能好,設備結構簡單。劣勢在于有角度,傳輸速度僅能達到4Mbps,不能穿墻,現階段主要用于汽車開鎖和遙控等領域中。
紅外線的方案在2000年左右很受歡迎,但是不能穿墻,速度慢等限制導致現在的智能設備已經基本不考慮這種方案了。
1.2 藍牙解決方案
藍牙是在2.4GHz頻段,使用跳頻技術將傳輸的數據分割成數據包,并遵從主從設備框架來傳輸數據的一種技術。
其優點是耗電省,沒有方向性,能穿墻,支持七個設備,最多支持100m傳輸。缺點是匹配速度慢,傳輸速度也僅僅只有24Mbps。
藍牙傳輸近幾年得到了極大的發展,特別是智能家居和智能穿戴領域。比如現在小黃車的藍牙智能開鎖技術,兒童手表的智能防丟技術,手環脂肪秤和手機通信技術,都抓住了痛點,達到了智能設備和平板/手機近距離的通信需求。
但是藍牙也有弱點,就是設備之間匹配速度慢,第一次使用認證時間過長,還有就是傳輸速度不高,實際雙向傳輸的時候,速度達不到400KB/s,無非滿足一些室外展示和VR視頻傳輸的要求。
1.3 NFC解決方案
NFC近場通信技術是由非接觸式射頻識別(RFID)及互聯互通技術整合演變而來,工作頻率為13.56MHz,在單一芯片上結合感應式讀卡器、感應式卡片和點對點的功能,能在短距離內與兼容設備進行識別和數據交換的一種技術。
NFC的優勢就是保密性強,傳輸距離短,適合登機驗證、大廈的門禁鑰匙、交通一卡通、信用卡、支付卡等應用。但是缺點就是傳輸速度太慢,只有424 Kbit/s,距離也很近,一般僅僅10cm。
NFC主要用于安全保密性快速驗證。現在公交卡的主流技術,基本能夠刷卡1s內得到返回結果,效率很高,比起支付寶那種掃碼識別公交的技術快了幾個檔次,但是天性決定不適合做智能設備的近距離傳輸。
1.4 wifi方案
wifi是現在智能家居遠距離傳輸的通用方案,但是他的弱點就是易受干擾,很容易掉線,設備與設備之間不能直接通信,必須通過路由中轉,因此路由的防止地點就成為了項目成敗的關鍵,但是往往客戶的路由防止地點又不是你能決定的,所以近距離通信幾乎沒有使用wifi解決方案的。
2 AdHoc解決方案
綜上所述,近距離通信的主流解決方案是藍牙技術,但是藍牙最大的問題就是傳輸速度,當我們的設備要向平板每秒傳輸超過1MB/s的文件流的時候,藍牙技術就無能為力。經過研究,我們發現AdHoc技術能夠很好的解決不受電源的供應的影響下智能設備和平板手機大數據量通信的需求。
AdHoc是一種省去了無線中介設備AP而搭建起來的對等網絡結構,只要安裝了無線網卡,計算機彼此之間即可實現無線互聯;其原理是網絡中的一臺計算機主機建立點到點連接,相當于虛擬AP,而其他計算機就可以直接通過這個點對點連接進行網絡互聯與共享。
AdHoc的優點是無中心,可以點對點,這樣就無需考慮路由的位置和方向,傳輸速率快,10米以內5MB/s完全沒有問題,適合有影音傳輸要求的各種大數據量應用。
缺點就是抗干擾性差,不過可以通過技術解決干擾問題,如自動偵測周圍信號,信號db,對于信號強的通道棄用,改用合適的信道等等。耗電巨大,耗電量是藍牙架構的幾十倍,僅僅適合一天一充,但是商品展示一般都會外接電源,這個要求也很容易達到。
AdHoc的方案非常適合大數據量近距離通信,但是設置和匹配并不是一件容易的事情,需要用戶來編程實現。
3 AdHoc的配置與應用
3.1 服務端的自動配置
AdHoc的本質還是基于WLan的網絡傳輸,故可以通過微軟的WLAN API來配置應用AdHoc。首先是設置服務端,服務端一般是由一個帶主機的設備組成,這個設備一般都會攜帶一個無線網卡,通過設置這個無線網卡,可以輕易把無線網卡變成AdHoc的服務端。
Windows7之后的系統,我們可以通過cmd命令行里面,敲入netsh wlan show drivers,如果網卡支持承載網絡,就是可以作為adhoc的服務端了。輸入兩行命令:
netsh wlan set hostednetwork mode=allow
ssid=wifi key=12345678
netsh wlan start hostednetwork
這樣就配置好一個ssid名為wifi,密碼為12345678的AdHoc網絡了。配置完成后,我們可以通過命令:netsh wlan show hostednetwork來觀察配置結果。
實際編程中,我們可以通過調用WinExec等Windows API,來批處理這些命令,以完成服務端配置的自動化。
3.2 客戶端的自動配置
客戶端的自動配置也非常簡單,就是調用WLAN API,通過連接函數來連接即可,這里惟一的難點是wifi網絡的配置文件的設定,必須要符合微軟格式的XML文件才行。下面是用pascal代碼編寫的設置wifi配置文件的函數。其中函數參數:AName為代碼名稱,APwd為連接密碼。
function SetWifiProfile(AName, APwd: string): Boolean;
var
dwVer, dwRet, dwReason: DWORD;
phClient: THandle;
profileXml: PWideChar;
pList: PWLAN_INTERFACE_INFO_LIST;
pInfo: WLAN_INTERFACE_INFO;
CsProfile: string;
begin
CsProfile:='<?xml version="1.0"?>'
+ '
+ '
+ '
+ '
+ '
+ '
'
+ '
'
+ '
+ '
+ '
+ '
+ '
+ '
+ '
+ '
'
+ '
+ '
+ '
+ '
+ '
'
+ '
'
+ '
'
+ '';
Result:=False;
dwRet:=WlanOpenHandle(1, nil, @dwVer, @phClient);
if dwRet <> ERROR_SUCCESS then
Exit;
pList:=nil;
dwRet:=WlanEnumInterfaces(phClient, nil, @pList);
if dwRet <> ERROR_SUCCESS then
begin
Exit;
end;
if pList.dwNumberOfItems>0 then
begin
pInfo:=pList.InterfaceInfo[0];
profileXml:=PWideChar(CsProfile);
dwRet:=WlanSetProfile(phClient, @pInfo.InterfaceGuid,
0, profileXml, nil, True, nil, dwReason);
Result:=dwRet=ERROR_SUCCESS;
end;
WlanFreeMemory(pList);
WlanCloseHandle(phClient, nil);
end;
4 結束語
經過測試,AdHoc能很好的解決智能設備與平板數據之間大數量的傳輸,而且能夠自動連接自動查詢自動修改密碼,具有一定的安全性,不失為一個在不考慮電量時的應用解決方案。AdHoc技術的研究最初是為了滿足軍事應用的需要,近年來AdHoc網絡的研究在民用和商業領域也受到了重視。近幾年的網絡國際會議基本都有AdHoc網絡專題,隨著移動技術不斷發展和人們日益增長的自由通信需求,AdHoc網絡會受到更多的關注,得到更快速的發展和普及,AdHoc的應用將會越來越廣泛。
參考文獻(References):
[1] 李強,李健.AdHoc網絡監控與管理軟件開發[J].電腦知識與
技術,2017.4.
[2] 張道寧.基于Android智能終端的AdHoc功能庫的設計與實
現[D].北京郵電大學碩士學位論文,2014.
[3] 陳明.基于Android的Ad-hoc網絡多跳通信的研究與實現[D].
中央民族大學碩士學位論文,2015.
[4] 殷勇.Android平臺上Ad-Hoc通信模式的研究與實現[D].西
安電子科技大學碩士學位論文,2013.
[5] 朱麗平,鄧慧茹,焦雄偉,趙小兵.基于Ad-hoc的Android手
機多媒體通信開發與實現[J].電視技術,2017.2.