999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

專用型低速USB設備通訊模塊的研究

2016-10-22 00:43:39崔陽
現代計算機 2016年25期
關鍵詞:設備

崔陽

(中國勞動關系學院數學與計算機部,北京100048)

專用型低速USB設備通訊模塊的研究

崔陽

(中國勞動關系學院數學與計算機部,北京100048)

目前大量專用型低速USB設備僅能在特定操作系統或軟件環境中識別和使用,給實際工作帶來很大限制。首先簡單分析低速USB設備的性能特點及通訊原理,在此基礎上設計出一個低速USB設備通訊模塊,并在Tangent Devices的Wave控制臺上進行編程實驗。實驗結果證明模塊能夠較好地實現專用型低速USB設備在不同操作系統和軟件環境下的雙向通訊。

低速USB設備;輸入輸出報表;中斷;Windows API

0 引言

低速USB設備近年來得到了廣泛應用,這類設備主要指游戲手柄、USB鍵盤、鼠標等單次數據傳輸量在8~1024字節之間的USB設備,又稱HID(人機接口設備)[1]。

專用化是低速USB設備的發展趨勢之一。當前很多應用軟件系統為增強用戶體驗、提高操作速度都配備有專用低速USB設備。然而多數專用型USB設備因設計等原因,通常只針對并僅能局限在某一特定軟件環境下使用,更無法實現跨操作系統平臺移植,這就給實際工作造成了許多不便。因此,通過對專用型低速USB設備的通訊特點和機制進行研究,并設計出一個功能完備、通用性強、效率較高的通訊模塊就非常有必要。

1 低速USB設備的主要特點

低速USB設備的特點主要有以下幾方面:

(1)傳輸的數據多為狀態或控制信息,這些信息都保存在輸入輸出報表(I/O Report)結構體內。低速USB設備通過報表與主機軟件系統進行數據交互[2]。

(2)以輪詢形式檢測設備狀態變化情況。低速USB設備會在一個固定的時間間隔內輪詢各控制口一次,檢測用戶通過設備向主機發送的數據,并以報表形式發送。

(3)通訊方式通常為控制和中斷兩種。區別在于前者對延遲性沒有特別要求,而后者對延遲容忍度低,且數據多具有周期性特征[3]。

2 USB設備的通信機制

2.1設備識別和打開

VID、PID和PVN三個屬性值是低速USB設備在計算機內的唯一標識[4],在設備說明書中可查。軟件系統在通訊前的第一步工作就是識別出特定的USB設備。方法是首先獲取并逐一枚舉當前主機中連接的各USB設備信息,并提取三個屬性值與特定的USB設備進行比較,當符合時表示設備找到。這時再將設備打開,并向軟件系統傳回設備的句柄。

2.2數據輸入和輸出

低速USB設備和主機軟件系統間數據交互通過輸入輸出報表實現。每當設備上任意控制器狀態發生變化,都將在下一次輪詢時根據這些變化的數據值生成一個輸入報表發送給主機。軟件系統接收輸入報表后首先檢查報表ID值,然后按照報表結構體的定義格式對數據進行解析并做相應處理。有些專用型低速USB設備的輸入報表沒有定義報表ID值,這種情況下應將接收到的輸入報表的ID值直接設置為0x00,否則輸入報表線程無法解析數據。

數據輸入過程中一個要特別注意的問題是:由于低速USB設備與主機的通訊時間不固定,在軟件系統運行期間負責讀取輸入報表的線程必須要以異步方式調用。這樣該線程在設備沒有向主機輸入數據時將阻塞;當有輸入報表到來時線程再恢復運行,將輸入報表中的數據保存在緩沖區中。之后線程將再次被阻塞,直到有新的輸入報表到來,從而有效減輕主機負載。設備成功打開后該線程就被創建,并隨軟件系統運行結束而銷毀。流程如圖2所示。

數據輸出是通過輸出報表實現的,但并非所有的USB設備都必備這一功能。主機軟件系統可能會向專用型低速USB設備輸出一些控制或狀態數據用來對設備進行監控[5],例如設備液晶屏上的顯示信息等。這些數據必須同步顯示,因此要求低延遲[6]。讀取輸出報表的線程首先將要輸出的數據按設備規定的報表結構格式進行封裝并復制到一個緩沖區內,再將緩沖區數據輸出到設備。這一過程同樣需要考慮主機的負載情況。

2.3設備關閉

當軟件系統與低速USB設備的通訊結束時,將設備直接關閉即可。如果軟件系統沒有及時關閉設備,可能會在下次打開設備時遇到報錯。

3 通訊模塊設計

以上述通訊原理為基礎,設計一個名為CUSBComModule的通訊模塊,其總體結構為:

其中,成員函數OpenUSBDevice()和CloseUSBDevice()分別用于識別、打開和關閉設備。ReadReport-TableThread()用于創建輸入報表線程。該線程中含有一個I/O完成后觸發事件的句柄。當設備沒有向主機輸入數據時,事件處于無信號狀態,線程被阻塞;當有數據輸入時事件被觸發線程恢復運行,將數據保存在輸入報表緩沖區。WriteReportTableThread()與Read-ReportTableThread()類似,用于創建輸出報表線程。

成員變量VID、PID和PVN用于保存三項屬性值,由用戶輸入。ReadBuffer和WriteBuffer分別是輸入報表緩沖區和輸出報表緩沖區。緩沖區大小由設備的輸入報表和輸出報表長度決定。該模塊的特點在于:實際應用中可以根據不同的低速USB設備,設置其對應的VID、PID和PVN值以及ReadReportBuffer和WriteReportBuffer緩沖區的大小;而設備的識別、打開、輸入/輸出數據等功能都無需修改。這樣就保證了模塊具有較強的通用性。

4 實驗

實驗環境為Windows 8操作系統,開發平臺為Visual Studio 2012,選用的低速USB設備為Tangent Devices的Wave Console。Tangent Wave Console是一類較復雜的專用型USB設備,設有41個按鍵、13個旋鈕和3個二維滾動跟蹤球三類控制器,另有3個微型液晶屏。Tangent Wave Console輸入報表長度是27字節,各字節的分配是0字節記錄報表ID,1-6字節前41比特記錄各按鍵的狀態,另有7比特未用,7-19字節記錄各旋鈕的狀態;20-25字節分別記錄三個二維滾動跟蹤球X軸和Y軸的狀態;26字節留作固件升級。輸出報表長度是41字節,各字節的分配是0-5字節為輸出控制信息,6-40字節為液晶屏顯示信息。Tangent Wave Console的數據傳輸方式為中斷方式,輪詢間隔時間為40ms。

在Windows環境下,通訊模塊的OpenUSBDevice()和CloseUSBDevice()功能可以通過調用相關API函數實現。為保證模塊在不同操作系統和軟件系統下的通用性,將模塊以COM接口形式實現。這樣當某一軟件系統需要接入某一專用型低速USB設備時,只須在系統中調用這一接口即可。

圖1 Tangent Wave Console與主機的通訊

圖1給出的是模擬主機軟件系統調用CUSBCom-Module實現與Tangent Wave Console雙向通訊的運行界面。從圖中可以看到,當用戶在界面中輸入設備三項屬性值并點擊“打開設備”后,軟件系統將根據屬性值完成對Tangent Wave Console的識別和打開工作。之后就可以對輸入、輸出報表的值進行讀取和解析,并可以在液晶屏上將本次輪詢內狀態發生變動的控制器信息同步顯示出來。當軟件系統對各個控制器定義對應的消息響應函數后,即可操縱Tangent Wave Console完成實際工作。

5 結語

提高專用型低速USB設備的通用性對科研和實際工作具有較大應用價值。通過Tangent Wave Console控制臺上進行的編程實驗表明CUSBComModule模塊具有較強的通用性,且基本不對軟件系統的運行效率造成影響。今后的工作主要是進一步擴展該接口的各項功能。

[1]Device Class Definition for Human Interface[EB/OL].http://www.usb.org/developers/devclass_docs/HID1_11.pdf,2001.

[2]楊晶菁,張浩.基于USB3.0的圖像采集系統硬件設計[J].微型機與應用,2014,33(17):40-43.

[3]湯重陽,趙志文,韓欽亭等.Windows環境下USB設備監控技術的研究與實現[J].計算機應用,2014,34(S1):60-63.

[4]索曉杰,翟正軍,姜紅梅.USB3.0協議分析與框架設計[J].計算機測量與控制,2012,20(8):2233-2235.

[5]王繼剛,鄭維民,滕志猛,鐘衛東.虛擬化環境下的USB設備訪問方法[J].計算機應用,2011,31(5):1439-1442.

[6]楊強,王志斌,李曉,張敏娟.Linux中USB設備驅動程序的設計及其應用[J].濟南大學學報(自然科學版),2014.28(3):224-229.

Low-Speed USB Device;I/O Reports;Interrupt;Windows API

Research on Communication Module of Special Low-Speed USB Devices

CUI Yang

(Department of Mathematics and Computer,China Institute of Industrial Relations,Beijing 100048)

Many special low-speed USB devices can only be identified and used in a specific operating system or software environment,which may cause some difficulties for practical work.Introduces the characteristics and communication mechanism of low-speed USB devices,based on it,designs a module for low-speed USB devices,and programs on Tangent Wave Console.Results show that the module can better achieve the two-way communication function of special low-speed USB devices in different operating systems and software environments. Keywords:

中央高校基本科研業務費專項資金資助項目(No.12zy019)

1007-1423(2016)25-0063-03DOI:10.3969/j.issn.1007-1423.2016.25.014

崔陽(1979-),男,內蒙古呼和浩特市人,博士研究生,講師,研究方向為知識工程與知識發現

2016-05-10

2016-08-25

猜你喜歡
設備
諧響應分析在設備減振中的應用
調試新設備
當代工人(2020年13期)2020-09-27 23:04:20
基于VB6.0+Access2010開發的設備管理信息系統
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發射設備中平衡輸入與不平衡輸入的轉換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點滿滿的可穿戴智能設備
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
HTC斥資千萬美元入股虛擬現實設備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設備篇
如何在設備采購中節省成本
主站蜘蛛池模板: 亚洲女同欧美在线| 亚洲va欧美va国产综合下载| 九色国产在线| 国产精品对白刺激| 国产一级二级在线观看| 天天婬欲婬香婬色婬视频播放| 天天摸天天操免费播放小视频| 亚洲成人精品在线| 免费Aⅴ片在线观看蜜芽Tⅴ| 日韩黄色在线| 日本免费a视频| 澳门av无码| lhav亚洲精品| 国产激情无码一区二区三区免费| 日本不卡在线视频| 日韩无码一二三区| 亚洲国产成人自拍| 欧美午夜理伦三级在线观看| 亚洲精品777| 欧美国产在线看| 白浆免费视频国产精品视频| 亚洲国产黄色| 成人日韩视频| 国产va视频| 亚洲,国产,日韩,综合一区| 91欧美亚洲国产五月天| 中文字幕日韩久久综合影院| YW尤物AV无码国产在线观看| 欧美在线视频a| 色九九视频| 91小视频在线观看免费版高清| 精品自拍视频在线观看| 视频二区国产精品职场同事| 成人国产小视频| 久久频这里精品99香蕉久网址| 无码一区中文字幕| 日韩精品毛片| 亚洲天堂视频在线观看| 这里只有精品国产| 亚洲AV无码久久天堂| 欧美一级夜夜爽www| 久久精品这里只有国产中文精品| 久久久久久尹人网香蕉| 制服丝袜国产精品| 成人国产精品一级毛片天堂| 亚洲欧洲自拍拍偷午夜色| 国产激情在线视频| 毛片a级毛片免费观看免下载| 四虎国产精品永久一区| 国产精品亚欧美一区二区| 狠狠综合久久| 在线免费亚洲无码视频| 日韩精品毛片人妻AV不卡| 毛片大全免费观看| 国产亚洲一区二区三区在线| 免费无码网站| 国产精品香蕉在线观看不卡| 国产视频久久久久| 国产二级毛片| 美女无遮挡被啪啪到高潮免费| 亚洲一区无码在线| 國產尤物AV尤物在線觀看| 亚洲色无码专线精品观看| 特级毛片免费视频| 亚洲成人黄色网址| 最新国产午夜精品视频成人| 国产成人1024精品| 理论片一区| 婷婷六月天激情| 国产亚洲精品无码专| 亚洲精品国产综合99| 四虎永久免费地址在线网站| 亚洲男人天堂网址| av一区二区三区高清久久| 国产日韩精品一区在线不卡| 亚洲天堂视频在线观看| 美女国内精品自产拍在线播放| 亚洲综合第一区| 国产欧美另类| 国产无人区一区二区三区| 99视频精品在线观看| a亚洲视频|