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