周雪燕,郭改文,趙 冰
(1.中原工學(xué)院計(jì)算機(jī)學(xué)院,鄭州450007;2.河南教育學(xué)院信息工程系,鄭州450002;3.中州大學(xué) 學(xué)報(bào)編輯部,鄭州450044)
Ad hoc網(wǎng)絡(luò)是一種點(diǎn)對(duì)點(diǎn)連接,不需要有線網(wǎng)絡(luò)和接入點(diǎn)的支持,以無線網(wǎng)卡連接的終端設(shè)備之間可以直接通信。而傳統(tǒng)的基礎(chǔ)設(shè)施網(wǎng)絡(luò)中,無線終端通過接入點(diǎn)(Access Point,AP)訪問骨干網(wǎng)上的設(shè)備。為實(shí)現(xiàn)Ad hoc網(wǎng)絡(luò)與傳統(tǒng)的基礎(chǔ)設(shè)施網(wǎng)絡(luò)之間互聯(lián),大都通過多個(gè)BSS(Basic Service Set)互聯(lián)組成一個(gè)無線局域網(wǎng)以實(shí)現(xiàn)擴(kuò)展更大的覆蓋范圍。在Ad hoc網(wǎng)絡(luò)的點(diǎn)對(duì)點(diǎn)拓?fù)浣Y(jié)構(gòu)中,至少需要包含兩個(gè)STA(Station)。Ad hoc網(wǎng)絡(luò)中各STA地位平等,且能直接通信,網(wǎng)絡(luò)中的STA可訪問同一BSS中其它STA的資源?;谏鲜鲈碓O(shè)計(jì)本方案。
基于Ad hoc的Wi-Fi直連USB接口驅(qū)動(dòng)的模型如圖1所示。
圖1 驅(qū)動(dòng)實(shí)現(xiàn)模型
鑒于無線網(wǎng)絡(luò)使用的信道和帶寬有限,為了使基于Ad hoc的Wi-Fi直連USB接口驅(qū)動(dòng)能夠滿足無線網(wǎng)絡(luò)實(shí)際,筆者按照MAC協(xié)議規(guī)定的時(shí)序分配媒體訪問規(guī)則,進(jìn)而可以提供異步數(shù)據(jù)服務(wù)、安全服務(wù)和媒體訪問控制服務(wù)數(shù)據(jù)單元(MAC Service Data Unit,MSDU)排序。由于這些服務(wù)都依賴于基本數(shù)據(jù)幀的創(chuàng)建和傳輸,同時(shí)本文中的各個(gè)STA(Station)必須創(chuàng)建數(shù)據(jù)幀,并且根據(jù)標(biāo)準(zhǔn)幀格式解碼所接收的數(shù)據(jù)幀,本文采用的MAC幀格式如圖2所示。
在基于Ad hoc的Wi-Fi直連USB接口驅(qū)動(dòng)設(shè)計(jì)方案中的USB數(shù)據(jù)包包括令牌包、數(shù)據(jù)包和握手包3種信息包,這三類數(shù)據(jù)包均包含同步字符字段、相應(yīng)包數(shù)據(jù)和包結(jié)束(End Of Packet,EOP)。令牌包(Token)應(yīng)用定義傳輸類型,表示事務(wù)處理開始;數(shù)據(jù)包(Data)用于表征傳輸?shù)臄?shù)據(jù),端點(diǎn)和傳輸類型確定其數(shù)據(jù)量大小,最大為1024個(gè)字節(jié),數(shù)據(jù)包格式如圖3所示;握手包(Handshake)用于接收方反饋給發(fā)送方明確此次數(shù)據(jù)傳輸是否成功。
圖2 MAC幀格式
圖3 數(shù)據(jù)包格式
其中:同步域(SYNC)用于數(shù)據(jù)通信的同步,包標(biāo)識(shí)域(PID)指明信息包的類型,也可用來進(jìn)行差錯(cuò)控制,地址域(ADDR)指明USB總線上的一個(gè)USB設(shè)備,端點(diǎn)域(ENDP)指明USB的端點(diǎn),幀號(hào)域(FRAM)指明當(dāng)前幀的幀號(hào),數(shù)據(jù)域(DATA)包含傳輸?shù)臄?shù)據(jù),校驗(yàn)域(CRC)用于循環(huán)冗余校驗(yàn)。
主機(jī)和設(shè)備之間遵循的特定USB設(shè)備請(qǐng)求命令格式。所有的USB設(shè)備在設(shè)備缺省控制通道(EPO)處對(duì)主機(jī)的請(qǐng)求發(fā)出響應(yīng)。標(biāo)準(zhǔn)的USB描述符集主要包括設(shè)備描述符、配置描述符、接口描述符、端點(diǎn)描述符、字符串描述符(可選)、設(shè)備限定描述符和其他速率配置描述符等[2],其中最后兩個(gè)描述符用于高速USB設(shè)備。
IEEE802.11的MAC層協(xié)議定義了STA的掃描、接入、安全認(rèn)證、能源管理等方面的內(nèi)容[1]。基于IEEE802.11的MAC層協(xié)議的以上內(nèi)容,實(shí)現(xiàn)Wi-Fi直連。
設(shè)備發(fā)現(xiàn)是發(fā)現(xiàn)Wi-Fi Direct設(shè)備并交換設(shè)備信息的機(jī)制。IEEE802.11的MAC層協(xié)議的STA的掃描功能主要實(shí)現(xiàn)接入一個(gè)無線網(wǎng)絡(luò),或者初始化、維護(hù)無線網(wǎng)絡(luò)中的STA站點(diǎn)的功能,主要包括主動(dòng)掃描和被動(dòng)掃描兩種模式[2]。通過掃描發(fā)現(xiàn)其他Wi-Fi設(shè)備并與之建立網(wǎng)絡(luò)連接,與常規(guī)的STA掃描發(fā)現(xiàn)AP類似。
整個(gè)設(shè)備發(fā)現(xiàn)過程包括2個(gè)步驟[3]:
1、在快速的主動(dòng)掃描模式下,STA工作站點(diǎn)主動(dòng)發(fā)送一個(gè)探尋幀,等待Wi-FI Direct設(shè)備針對(duì)該探尋幀的響應(yīng)幀;
2、當(dāng)STA接收到應(yīng)答消息之后,就會(huì)保存與上述被動(dòng)掃描相似的標(biāo)識(shí)信息(信標(biāo)中包含有時(shí)間戳、信道容量、信標(biāo)間隔、ESSID和業(yè)務(wù)指示表(Traffic Indication Map,TIM)等信息)和接入請(qǐng)求。
無線局域網(wǎng)中的無線終端設(shè)備在完成掃描的過程之后,找到一個(gè)小組(這個(gè)小組是由一部Wi-FI Direct設(shè)備創(chuàng)建的)并加入。這部創(chuàng)建小組的Wi-FI Direct設(shè)備類似傳統(tǒng)的無線AP,當(dāng)有多個(gè)Wi-Fi Direct設(shè)備時(shí),可以使用邀請(qǐng)機(jī)制邀請(qǐng)其他Wi-Fi Direct設(shè)備加入小組,通過設(shè)備發(fā)現(xiàn),邀請(qǐng)機(jī)制,協(xié)商達(dá)到互連。
在小組創(chuàng)建時(shí),可以創(chuàng)建為永久型小組,以方便將來的再次直接使用。用戶發(fā)出打印請(qǐng)求,此小組即可啟動(dòng),且無須重復(fù)輸入WPS(Wi-Fi Protected Setup)的PIN碼重新啟動(dòng)。由于整個(gè)啟動(dòng)過程需要使用邀請(qǐng)信號(hào)重新調(diào)用永久型小組,因此永久型小組的Wi-Fi Direct設(shè)備必須支持邀請(qǐng)機(jī)制。
整個(gè)設(shè)備接入過程包括以下2個(gè)步驟[4]:
1、接收到STA探詢幀的Wi-FI Direct設(shè)備,發(fā)送探詢響應(yīng)幀;
2、Wi-FI Direct設(shè)備發(fā)送接入響應(yīng)。
安全認(rèn)證可以確認(rèn)授權(quán)(Authorized)用戶并阻止非授權(quán)(unauthorized)接入網(wǎng)絡(luò),可以有效的提高無線網(wǎng)絡(luò)安全性。共享密鑰認(rèn)證是一種相對(duì)比較復(fù)雜也比較安全的認(rèn)證機(jī)制。
能源管理的解決方案是采用 P2P-PS和P2P-WMM Power Save的機(jī)制。P2P規(guī)范引入投機(jī)節(jié)能(Opportunistic Power Save)機(jī)制與缺席通知(Notice of Absence)機(jī)制。缺席通知機(jī)制通報(bào)小組中的設(shè)備缺席情況,包括一次性或是定期性的缺席。當(dāng)連接的所有Wi-Fi設(shè)備(或Wi-Fi Direct設(shè)備)休眠時(shí),投機(jī)節(jié)能機(jī)制能夠使管理該小組的Wi-Fi Direct設(shè)備也休眠。但是,這個(gè)設(shè)備定期進(jìn)入可用狀態(tài),以維持發(fā)現(xiàn)功能。節(jié)能機(jī)制可結(jié)合使用,以實(shí)現(xiàn)休眠時(shí)間的最大化。不過,Wi-Fi Direct能源管理不適用于包含有傳統(tǒng)設(shè)備的小組。
實(shí)驗(yàn)采用的是TLG09UB09無操作系統(tǒng)USB接口 WLAN 模塊,符合 GB15629.11-2006、IEEE802.11 b/g國際標(biāo)準(zhǔn)。該模塊提供了插針式USB 2.0接口。根據(jù)設(shè)計(jì)目的創(chuàng)建/加入基于IEEE802.11協(xié)議的Ad hoc網(wǎng)絡(luò),支持創(chuàng)建/加入基于私有協(xié)議的點(diǎn)對(duì)點(diǎn)傳輸網(wǎng)絡(luò)。用ANSI C89標(biāo)準(zhǔn)的C語言編寫驅(qū)動(dòng)程序,不依賴任何系統(tǒng)調(diào)用,并能輕松移植(平臺(tái)須支持C編譯環(huán)境)。基于ARM920T內(nèi)核,用RVCT2.0編譯器編譯,使用自帶的-O2優(yōu)化編譯驅(qū)動(dòng)代碼和相應(yīng)代碼,如表1所示。
表1 Wi-Fi直連功能配置及其代碼和數(shù)據(jù)
USB打印機(jī)在接入接口模塊時(shí)的初始地址為0,接口模塊會(huì)為其分配一個(gè)地址,每個(gè)設(shè)備都有一個(gè)獨(dú)立的地址。USB打印機(jī)將設(shè)備描述符傳送到接口模塊,借口模塊收到后會(huì)為設(shè)備分配一個(gè)空閑地址,同時(shí)向設(shè)備發(fā)送設(shè)置地址(Set Address)命令,作為對(duì)設(shè)置命令的應(yīng)答,設(shè)備會(huì)通過地址0發(fā)送一個(gè)長度為0的數(shù)據(jù)包給接口模塊,然后根據(jù)接口模塊的要求更改自身的地址,并通過此新地址完成打印任務(wù)。
當(dāng)接口模塊加載了特定的固件程序后,就可以實(shí)現(xiàn)模塊內(nèi)部的無線收發(fā)模塊的高級(jí)接口協(xié)議通訊功能,通知這個(gè)接口協(xié)議可以使用該模塊的無線通信功能,主要包括:
(1)掃描并喚醒已存在的直連接口模塊。直連接口模塊的能源管理采用P2P-PS和P2P-WMM Power Save的機(jī)制。
(2)連接到指定的直連USB接口模塊。主機(jī)發(fā)送命令給直連USB接口模塊,USB接口模塊的固件執(zhí)行命令初始化接入過程(包括身份識(shí)別及關(guān)聯(lián))。
(3)終止與直連USB模塊的連接。主機(jī)在完成打印任務(wù)之后發(fā)送給接口模塊的固件初始化鑒別斷離過程,主機(jī)就終止與直連USB模塊的連接。
直連接口模塊中所有802.11MAC管理任務(wù)都由固件負(fù)責(zé)處理。在發(fā)送數(shù)據(jù)時(shí),模塊驅(qū)動(dòng)將標(biāo)準(zhǔn)的802.11協(xié)議幀發(fā)送給固件,然后固件控制USB主機(jī)接口以USB協(xié)議數(shù)據(jù)發(fā)送出去。
(1)打開主機(jī)的無線網(wǎng)絡(luò)連接,刷新網(wǎng)絡(luò)列表。接口模塊加電時(shí),會(huì)在無線網(wǎng)絡(luò)連接窗口中顯示某一USB打印機(jī)的描述符命名的網(wǎng)絡(luò)名稱(SSID)。且其網(wǎng)絡(luò)模式為點(diǎn)對(duì)點(diǎn)(Ad hoc)模式。
(2)選擇該選項(xiàng)進(jìn)入下一步,輸入網(wǎng)絡(luò)密碼。經(jīng)過網(wǎng)絡(luò)安全性認(rèn)證后發(fā)現(xiàn)USB打印機(jī)并安裝打印機(jī)驅(qū)動(dòng)程序。
Wi-Fi Direct在沒有熱點(diǎn)網(wǎng)絡(luò)的情況下提供了一種無線近距離傳輸?shù)目赡埽o信息時(shí)代的百姓生活帶來更大的便利。本文基于Ad hoc的Wi-Fi直連USB接口驅(qū)動(dòng)使得無需接入傳統(tǒng)網(wǎng)絡(luò)就可以與其他設(shè)備直接連接、傳輸或共享數(shù)據(jù),充分利用了Wi-Fi的性能、范圍、無處不在、靈活性等優(yōu)勢(shì)。
[1]Youjin Kim,Haewon Jung,Hyeong Ho Lee,et al.MAC implementation for IEEE802.11 wireless LAN[J].ATM(ICATM 2001)and High Speed Intelligent Internet Symposium,2001.Joint 4th IEEE International Conference,2001:191-195.
[2]萬婷婷.USB接口開發(fā)及功能實(shí)現(xiàn)[D].西安電子科技大學(xué),2011.
[3]韓霜.基于Wi-Fi的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的設(shè)計(jì)及應(yīng)用[D],北京郵電大學(xué),2010.
[4]史闊.USB無線連接器的設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大學(xué),2010.