趙丙秀
摘 要: 文章通過介紹現(xiàn)在智能硬件和手機(jī)、平板近距離通信的場(chǎng)合,引出各種近距離通信解決方案,分析了紅外線、藍(lán)牙、NFC、WiFi等解決方案的優(yōu)勢(shì)和弱點(diǎn),總結(jié)出AdHoc是一個(gè)廉價(jià)、高效、安全、穩(wěn)定的解決方案。通過程序介紹AdHoc近距離通信中服務(wù)器端和客戶端的自動(dòng)配置的方法,強(qiáng)調(diào)AdHoc在智能硬件設(shè)備的UI展示中的易用性。AdHoc網(wǎng)絡(luò)將會(huì)受到更多的關(guān)注,得到更快速的發(fā)展和應(yīng)用。
關(guān)鍵詞: AdHoc; 智能硬件; 近距離通信; WLan
中圖分類號(hào):TP393.4 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):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 引言
近年智能硬件、智能穿戴、智能設(shè)備的發(fā)展一日千里。例如:共享單車的智能鎖、智能貓眼、智能手環(huán)、兒童手表、共享洗衣機(jī)等。這些智能硬件必須要有UI才能展現(xiàn)給用戶,我們往往是在手機(jī)或平板電腦上安裝相應(yīng)的APP。
智能硬件與手機(jī)/平板的通信主要有遠(yuǎn)距離通信和近距離通信兩種方式。遠(yuǎn)距離通信有:智能家居中的智能貓眼、智能開關(guān)、智能攝像頭,日常生活中的共享洗衣機(jī)等。其需要的數(shù)據(jù)不要求實(shí)時(shí),只要求能夠在一段時(shí)間到達(dá)。近距離通信有:在公共設(shè)置有公交卡、智能鎖,人體健康領(lǐng)域有脂肪秤、智能手環(huán),生活領(lǐng)域有兒童手表、各種電器等。這些領(lǐng)域?qū)?shù)據(jù)傳輸?shù)男视斜容^高的要求。近距離通信講究的就是效率和速度,對(duì)數(shù)據(jù)量一般要求較少。
1 近距離通信常見的各種解決方案
近距離通信的痛點(diǎn)就是如何讓設(shè)備快速與UI界面溝通,讓用戶快速的解決交互問題,以免過長(zhǎng)的延時(shí)造成用戶體驗(yàn)下降,從而放棄使用硬件。比如一個(gè)騎共享單車上班族,在那里為了開一個(gè)摩拜單車,花了十分鐘,通過上傳指令到遠(yuǎn)程,遠(yuǎn)程認(rèn)證后又下發(fā)指令到鎖,還要下發(fā)指令到手機(jī),還要識(shí)別車的位置,這當(dāng)中通信只要出現(xiàn)問題,就能造成用戶誤事,最后用戶會(huì)放棄單車。為了解決類似地矛盾,廠商推出了紅外、藍(lán)牙和NFC等近距離通信方式。
1.1 紅外線解決方案
紅外線通信是利用950nm近紅外波段的紅外線作為傳遞信息的媒體,即通信信道。發(fā)送端將基帶二進(jìn)制信號(hào)調(diào)制為一系列的脈沖串信號(hào),通過紅外發(fā)射管發(fā)射紅外信號(hào)。接收端將接收到的光脈轉(zhuǎn)換成電信號(hào),再經(jīng)過放大、濾波等處理后送給解調(diào)電路進(jìn)行解調(diào),還原為二進(jìn)制數(shù)字信號(hào)后輸出。
紅外線的優(yōu)勢(shì)在于容量大,保密性強(qiáng),抗電磁干擾性能好,設(shè)備結(jié)構(gòu)簡(jiǎn)單。劣勢(shì)在于有角度,傳輸速度僅能達(dá)到4Mbps,不能穿墻,現(xiàn)階段主要用于汽車開鎖和遙控等領(lǐng)域中。
紅外線的方案在2000年左右很受歡迎,但是不能穿墻,速度慢等限制導(dǎo)致現(xiàn)在的智能設(shè)備已經(jīng)基本不考慮這種方案了。
1.2 藍(lán)牙解決方案
藍(lán)牙是在2.4GHz頻段,使用跳頻技術(shù)將傳輸?shù)臄?shù)據(jù)分割成數(shù)據(jù)包,并遵從主從設(shè)備框架來傳輸數(shù)據(jù)的一種技術(shù)。
其優(yōu)點(diǎn)是耗電省,沒有方向性,能穿墻,支持七個(gè)設(shè)備,最多支持100m傳輸。缺點(diǎn)是匹配速度慢,傳輸速度也僅僅只有24Mbps。
藍(lán)牙傳輸近幾年得到了極大的發(fā)展,特別是智能家居和智能穿戴領(lǐng)域。比如現(xiàn)在小黃車的藍(lán)牙智能開鎖技術(shù),兒童手表的智能防丟技術(shù),手環(huán)脂肪秤和手機(jī)通信技術(shù),都抓住了痛點(diǎn),達(dá)到了智能設(shè)備和平板/手機(jī)近距離的通信需求。
但是藍(lán)牙也有弱點(diǎn),就是設(shè)備之間匹配速度慢,第一次使用認(rèn)證時(shí)間過長(zhǎng),還有就是傳輸速度不高,實(shí)際雙向傳輸?shù)臅r(shí)候,速度達(dá)不到400KB/s,無非滿足一些室外展示和VR視頻傳輸?shù)囊蟆?/p>
1.3 NFC解決方案
NFC近場(chǎng)通信技術(shù)是由非接觸式射頻識(shí)別(RFID)及互聯(lián)互通技術(shù)整合演變而來,工作頻率為13.56MHz,在單一芯片上結(jié)合感應(yīng)式讀卡器、感應(yīng)式卡片和點(diǎn)對(duì)點(diǎn)的功能,能在短距離內(nèi)與兼容設(shè)備進(jìn)行識(shí)別和數(shù)據(jù)交換的一種技術(shù)。
NFC的優(yōu)勢(shì)就是保密性強(qiáng),傳輸距離短,適合登機(jī)驗(yàn)證、大廈的門禁鑰匙、交通一卡通、信用卡、支付卡等應(yīng)用。但是缺點(diǎn)就是傳輸速度太慢,只有424 Kbit/s,距離也很近,一般僅僅10cm。
NFC主要用于安全保密性快速驗(yàn)證?,F(xiàn)在公交卡的主流技術(shù),基本能夠刷卡1s內(nèi)得到返回結(jié)果,效率很高,比起支付寶那種掃碼識(shí)別公交的技術(shù)快了幾個(gè)檔次,但是天性決定不適合做智能設(shè)備的近距離傳輸。
1.4 wifi方案
wifi是現(xiàn)在智能家居遠(yuǎn)距離傳輸?shù)耐ㄓ梅桨福撬娜觞c(diǎn)就是易受干擾,很容易掉線,設(shè)備與設(shè)備之間不能直接通信,必須通過路由中轉(zhuǎn),因此路由的防止地點(diǎn)就成為了項(xiàng)目成敗的關(guān)鍵,但是往往客戶的路由防止地點(diǎn)又不是你能決定的,所以近距離通信幾乎沒有使用wifi解決方案的。
2 AdHoc解決方案
綜上所述,近距離通信的主流解決方案是藍(lán)牙技術(shù),但是藍(lán)牙最大的問題就是傳輸速度,當(dāng)我們的設(shè)備要向平板每秒傳輸超過1MB/s的文件流的時(shí)候,藍(lán)牙技術(shù)就無能為力。經(jīng)過研究,我們發(fā)現(xiàn)AdHoc技術(shù)能夠很好的解決不受電源的供應(yīng)的影響下智能設(shè)備和平板手機(jī)大數(shù)據(jù)量通信的需求。
AdHoc是一種省去了無線中介設(shè)備AP而搭建起來的對(duì)等網(wǎng)絡(luò)結(jié)構(gòu),只要安裝了無線網(wǎng)卡,計(jì)算機(jī)彼此之間即可實(shí)現(xiàn)無線互聯(lián);其原理是網(wǎng)絡(luò)中的一臺(tái)計(jì)算機(jī)主機(jī)建立點(diǎn)到點(diǎn)連接,相當(dāng)于虛擬AP,而其他計(jì)算機(jī)就可以直接通過這個(gè)點(diǎn)對(duì)點(diǎn)連接進(jìn)行網(wǎng)絡(luò)互聯(lián)與共享。
AdHoc的優(yōu)點(diǎn)是無中心,可以點(diǎn)對(duì)點(diǎn),這樣就無需考慮路由的位置和方向,傳輸速率快,10米以內(nèi)5MB/s完全沒有問題,適合有影音傳輸要求的各種大數(shù)據(jù)量應(yīng)用。
缺點(diǎn)就是抗干擾性差,不過可以通過技術(shù)解決干擾問題,如自動(dòng)偵測(cè)周圍信號(hào),信號(hào)db,對(duì)于信號(hào)強(qiáng)的通道棄用,改用合適的信道等等。耗電巨大,耗電量是藍(lán)牙架構(gòu)的幾十倍,僅僅適合一天一充,但是商品展示一般都會(huì)外接電源,這個(gè)要求也很容易達(dá)到。
AdHoc的方案非常適合大數(shù)據(jù)量近距離通信,但是設(shè)置和匹配并不是一件容易的事情,需要用戶來編程實(shí)現(xiàn)。
3 AdHoc的配置與應(yīng)用
3.1 服務(wù)端的自動(dòng)配置
AdHoc的本質(zhì)還是基于WLan的網(wǎng)絡(luò)傳輸,故可以通過微軟的WLAN API來配置應(yīng)用AdHoc。首先是設(shè)置服務(wù)端,服務(wù)端一般是由一個(gè)帶主機(jī)的設(shè)備組成,這個(gè)設(shè)備一般都會(huì)攜帶一個(gè)無線網(wǎng)卡,通過設(shè)置這個(gè)無線網(wǎng)卡,可以輕易把無線網(wǎng)卡變成AdHoc的服務(wù)端。
Windows7之后的系統(tǒng),我們可以通過cmd命令行里面,敲入netsh wlan show drivers,如果網(wǎng)卡支持承載網(wǎng)絡(luò),就是可以作為adhoc的服務(wù)端了。輸入兩行命令:
netsh wlan set hostednetwork mode=allow
ssid=wifi key=12345678
netsh wlan start hostednetwork
這樣就配置好一個(gè)ssid名為wifi,密碼為12345678的AdHoc網(wǎng)絡(luò)了。配置完成后,我們可以通過命令:netsh wlan show hostednetwork來觀察配置結(jié)果。
實(shí)際編程中,我們可以通過調(diào)用WinExec等Windows API,來批處理這些命令,以完成服務(wù)端配置的自動(dòng)化。
3.2 客戶端的自動(dòng)配置
客戶端的自動(dòng)配置也非常簡(jiǎn)單,就是調(diào)用WLAN API,通過連接函數(shù)來連接即可,這里惟一的難點(diǎn)是wifi網(wǎng)絡(luò)的配置文件的設(shè)定,必須要符合微軟格式的XML文件才行。下面是用pascal代碼編寫的設(shè)置wifi配置文件的函數(shù)。其中函數(shù)參數(shù):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 結(jié)束語
經(jīng)過測(cè)試,AdHoc能很好的解決智能設(shè)備與平板數(shù)據(jù)之間大數(shù)量的傳輸,而且能夠自動(dòng)連接自動(dòng)查詢自動(dòng)修改密碼,具有一定的安全性,不失為一個(gè)在不考慮電量時(shí)的應(yīng)用解決方案。AdHoc技術(shù)的研究最初是為了滿足軍事應(yīng)用的需要,近年來AdHoc網(wǎng)絡(luò)的研究在民用和商業(yè)領(lǐng)域也受到了重視。近幾年的網(wǎng)絡(luò)國(guó)際會(huì)議基本都有AdHoc網(wǎng)絡(luò)專題,隨著移動(dòng)技術(shù)不斷發(fā)展和人們?nèi)找嬖鲩L(zhǎng)的自由通信需求,AdHoc網(wǎng)絡(luò)會(huì)受到更多的關(guān)注,得到更快速的發(fā)展和普及,AdHoc的應(yīng)用將會(huì)越來越廣泛。
參考文獻(xiàn)(References):
[1] 李強(qiáng),李健.AdHoc網(wǎng)絡(luò)監(jiān)控與管理軟件開發(fā)[J].電腦知識(shí)與
技術(shù),2017.4.
[2] 張道寧.基于Android智能終端的AdHoc功能庫的設(shè)計(jì)與實(shí)
現(xiàn)[D].北京郵電大學(xué)碩士學(xué)位論文,2014.
[3] 陳明.基于Android的Ad-hoc網(wǎng)絡(luò)多跳通信的研究與實(shí)現(xiàn)[D].
中央民族大學(xué)碩士學(xué)位論文,2015.
[4] 殷勇.Android平臺(tái)上Ad-Hoc通信模式的研究與實(shí)現(xiàn)[D].西
安電子科技大學(xué)碩士學(xué)位論文,2013.
[5] 朱麗平,鄧慧茹,焦雄偉,趙小兵.基于Ad-hoc的Android手
機(jī)多媒體通信開發(fā)與實(shí)現(xiàn)[J].電視技術(shù),2017.2.