周雪燕,郭改文,趙 冰
(1.中原工學院計算機學院,鄭州450007;2.河南教育學院信息工程系,鄭州450002;3.中州大學 學報編輯部,鄭州450044)
Ad hoc網絡是一種點對點連接,不需要有線網絡和接入點的支持,以無線網卡連接的終端設備之間可以直接通信。而傳統的基礎設施網絡中,無線終端通過接入點(Access Point,AP)訪問骨干網上的設備。為實現Ad hoc網絡與傳統的基礎設施網絡之間互聯,大都通過多個BSS(Basic Service Set)互聯組成一個無線局域網以實現擴展更大的覆蓋范圍。在Ad hoc網絡的點對點拓撲結構中,至少需要包含兩個STA(Station)。Ad hoc網絡中各STA地位平等,且能直接通信,網絡中的STA可訪問同一BSS中其它STA的資源。基于上述原理設計本方案。
基于Ad hoc的Wi-Fi直連USB接口驅動的模型如圖1所示。

圖1 驅動實現模型
鑒于無線網絡使用的信道和帶寬有限,為了使基于Ad hoc的Wi-Fi直連USB接口驅動能夠滿足無線網絡實際,筆者按照MAC協議規定的時序分配媒體訪問規則,進而可以提供異步數據服務、安全服務和媒體訪問控制服務數據單元(MAC Service Data Unit,MSDU)排序。由于這些服務都依賴于基本數據幀的創建和傳輸,同時本文中的各個STA(Station)必須創建數據幀,并且根據標準幀格式解碼所接收的數據幀,本文采用的MAC幀格式如圖2所示。
在基于Ad hoc的Wi-Fi直連USB接口驅動設計方案中的USB數據包包括令牌包、數據包和握手包3種信息包,這三類數據包均包含同步字符字段、相應包數據和包結束(End Of Packet,EOP)。令牌包(Token)應用定義傳輸類型,表示事務處理開始;數據包(Data)用于表征傳輸的數據,端點和傳輸類型確定其數據量大小,最大為1024個字節,數據包格式如圖3所示;握手包(Handshake)用于接收方反饋給發送方明確此次數據傳輸是否成功。

圖2 MAC幀格式

圖3 數據包格式
其中:同步域(SYNC)用于數據通信的同步,包標識域(PID)指明信息包的類型,也可用來進行差錯控制,地址域(ADDR)指明USB總線上的一個USB設備,端點域(ENDP)指明USB的端點,幀號域(FRAM)指明當前幀的幀號,數據域(DATA)包含傳輸的數據,校驗域(CRC)用于循環冗余校驗。
主機和設備之間遵循的特定USB設備請求命令格式。所有的USB設備在設備缺省控制通道(EPO)處對主機的請求發出響應。標準的USB描述符集主要包括設備描述符、配置描述符、接口描述符、端點描述符、字符串描述符(可選)、設備限定描述符和其他速率配置描述符等[2],其中最后兩個描述符用于高速USB設備。
IEEE802.11的MAC層協議定義了STA的掃描、接入、安全認證、能源管理等方面的內容[1]?;贗EEE802.11的MAC層協議的以上內容,實現Wi-Fi直連。
設備發現是發現Wi-Fi Direct設備并交換設備信息的機制。IEEE802.11的MAC層協議的STA的掃描功能主要實現接入一個無線網絡,或者初始化、維護無線網絡中的STA站點的功能,主要包括主動掃描和被動掃描兩種模式[2]。通過掃描發現其他Wi-Fi設備并與之建立網絡連接,與常規的STA掃描發現AP類似。
整個設備發現過程包括2個步驟[3]:
1、在快速的主動掃描模式下,STA工作站點主動發送一個探尋幀,等待Wi-FI Direct設備針對該探尋幀的響應幀;
2、當STA接收到應答消息之后,就會保存與上述被動掃描相似的標識信息(信標中包含有時間戳、信道容量、信標間隔、ESSID和業務指示表(Traffic Indication Map,TIM)等信息)和接入請求。
無線局域網中的無線終端設備在完成掃描的過程之后,找到一個小組(這個小組是由一部Wi-FI Direct設備創建的)并加入。這部創建小組的Wi-FI Direct設備類似傳統的無線AP,當有多個Wi-Fi Direct設備時,可以使用邀請機制邀請其他Wi-Fi Direct設備加入小組,通過設備發現,邀請機制,協商達到互連。
在小組創建時,可以創建為永久型小組,以方便將來的再次直接使用。用戶發出打印請求,此小組即可啟動,且無須重復輸入WPS(Wi-Fi Protected Setup)的PIN碼重新啟動。由于整個啟動過程需要使用邀請信號重新調用永久型小組,因此永久型小組的Wi-Fi Direct設備必須支持邀請機制。
整個設備接入過程包括以下2個步驟[4]:
1、接收到STA探詢幀的Wi-FI Direct設備,發送探詢響應幀;
2、Wi-FI Direct設備發送接入響應。
安全認證可以確認授權(Authorized)用戶并阻止非授權(unauthorized)接入網絡,可以有效的提高無線網絡安全性。共享密鑰認證是一種相對比較復雜也比較安全的認證機制。
能源管理的解決方案是采用 P2P-PS和P2P-WMM Power Save的機制。P2P規范引入投機節能(Opportunistic Power Save)機制與缺席通知(Notice of Absence)機制。缺席通知機制通報小組中的設備缺席情況,包括一次性或是定期性的缺席。當連接的所有Wi-Fi設備(或Wi-Fi Direct設備)休眠時,投機節能機制能夠使管理該小組的Wi-Fi Direct設備也休眠。但是,這個設備定期進入可用狀態,以維持發現功能。節能機制可結合使用,以實現休眠時間的最大化。不過,Wi-Fi Direct能源管理不適用于包含有傳統設備的小組。
實驗采用的是TLG09UB09無操作系統USB接口 WLAN 模塊,符合 GB15629.11-2006、IEEE802.11 b/g國際標準。該模塊提供了插針式USB 2.0接口。根據設計目的創建/加入基于IEEE802.11協議的Ad hoc網絡,支持創建/加入基于私有協議的點對點傳輸網絡。用ANSI C89標準的C語言編寫驅動程序,不依賴任何系統調用,并能輕松移植(平臺須支持C編譯環境)。基于ARM920T內核,用RVCT2.0編譯器編譯,使用自帶的-O2優化編譯驅動代碼和相應代碼,如表1所示。

表1 Wi-Fi直連功能配置及其代碼和數據
USB打印機在接入接口模塊時的初始地址為0,接口模塊會為其分配一個地址,每個設備都有一個獨立的地址。USB打印機將設備描述符傳送到接口模塊,借口模塊收到后會為設備分配一個空閑地址,同時向設備發送設置地址(Set Address)命令,作為對設置命令的應答,設備會通過地址0發送一個長度為0的數據包給接口模塊,然后根據接口模塊的要求更改自身的地址,并通過此新地址完成打印任務。
當接口模塊加載了特定的固件程序后,就可以實現模塊內部的無線收發模塊的高級接口協議通訊功能,通知這個接口協議可以使用該模塊的無線通信功能,主要包括:
(1)掃描并喚醒已存在的直連接口模塊。直連接口模塊的能源管理采用P2P-PS和P2P-WMM Power Save的機制。
(2)連接到指定的直連USB接口模塊。主機發送命令給直連USB接口模塊,USB接口模塊的固件執行命令初始化接入過程(包括身份識別及關聯)。
(3)終止與直連USB模塊的連接。主機在完成打印任務之后發送給接口模塊的固件初始化鑒別斷離過程,主機就終止與直連USB模塊的連接。
直連接口模塊中所有802.11MAC管理任務都由固件負責處理。在發送數據時,模塊驅動將標準的802.11協議幀發送給固件,然后固件控制USB主機接口以USB協議數據發送出去。
(1)打開主機的無線網絡連接,刷新網絡列表。接口模塊加電時,會在無線網絡連接窗口中顯示某一USB打印機的描述符命名的網絡名稱(SSID)。且其網絡模式為點對點(Ad hoc)模式。
(2)選擇該選項進入下一步,輸入網絡密碼。經過網絡安全性認證后發現USB打印機并安裝打印機驅動程序。
Wi-Fi Direct在沒有熱點網絡的情況下提供了一種無線近距離傳輸的可能,給信息時代的百姓生活帶來更大的便利。本文基于Ad hoc的Wi-Fi直連USB接口驅動使得無需接入傳統網絡就可以與其他設備直接連接、傳輸或共享數據,充分利用了Wi-Fi的性能、范圍、無處不在、靈活性等優勢。
[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接口開發及功能實現[D].西安電子科技大學,2011.
[3]韓霜.基于Wi-Fi的無線傳感器網絡節點的設計及應用[D],北京郵電大學,2010.
[4]史闊.USB無線連接器的設計與實現[D].北京郵電大學,2010.