目錄
人機界面設備
編輯接收人類輸入并將輸出提供給人類的計算機設備
人機接口設備或HID是人類通常使用的一種計算機設備,它接受人類的輸入并將輸出提供給人類。
術語HID最常指的是USB-HID規范。該術語是由微軟的MikeVanFlandern在提議USB委員會創建一個人類輸入設備類工作組時創造的。在DEC的TomSchmidt的建議下,工作組更名為HumanInterfaceDevice類,因為提議的標準支持雙向通信。
HID標準
編輯采用HID標準主要是為了實現PC輸入設備的創新并簡化此類設備的安裝過程。在引入HID概念之前,設備通常遵循嚴格定義的鼠標、鍵盤和操縱桿協議;例如,當時的標準鼠標協議支持相對X軸和Y軸數據以及最多兩個按鈕的二進制輸入,沒有舊版支持。所有硬件創新都需要在現有協議中超載使用數據,或者創建自定義設備驅動程序并向開發人員宣傳新協議。相比之下,所有HID定義的設備都提供自描述包,其中可能包含任意數量的數據類型和格式。計算機上的單個HID驅動程序可以解析數據并實現數據I/O與應用程序功能的動態關聯,從而實現了快速創新和開發,以及新的人機界面設備的多樣化。
由多家知名公司代表組成的工作委員會制定了HID標準。參與者列表出現在人機接口設備(HID)文檔的設備類定義中。自描述可擴展協議的概念最初來自MikeVanFlandern和ManolitoAdan,當時他們在Microsoft從事名為Raptor的項目,獨立于SteveMcGowan,后者在Forte從事AccessBus設備協議的工作。在消費者游戲開發者大會上比較筆記后,史蒂夫和邁克同意就新興通用串行總線(USB)的新標準進行合作。
HID協議有其局限性,但所有現代主流操作系統都可以識別標準USBHID設備,例如鍵盤和鼠標,而無需專門的驅動程序。安裝后,屏幕上通常會出現一條消息,指出“已識別出“符合HID的設備”。相比之下,此消息通常不會出現在通過USB之前的PS/26針DIN連接器連接的設備上。PS/2通常不支持即插即用,這意味著在計算機開機的情況下連接PS/2鍵盤或鼠標并不總是有效,并且可能對計算機的主板造成危害。同樣,PS/2標準也不支持HID協議。這USB人機接口設備類描述了一個USBHID。
HID協議的組成部分
在HID協議中,有2個實體:主機和設備。設備是直接與人交互的實體,例如鍵盤或鼠標。主機與設備通信并從設備接收關于人類執行動作的輸入數據。輸出數據從主機流向設備,然后流向人。最常見的主機示例是PC,但一些手機和PDA也可以是主機。
HID協議使設備的實現非常簡單。設備定義它們的數據包,然后向主機提供HID描述符。HID描述符是一個硬編碼的字節數組,用于描述設備的數據包。這包括:設備支持的數據包數量、數據包的大小以及數據包中每個字節和位的用途。例如,帶有計算器程序按鈕的鍵盤可以告訴主機,按鈕的按下/釋放狀態存儲為數據包編號4中第6字節的第2位(注意:這些位置僅用于說明,是設備-具體的)。設備通常將HID描述符存儲在ROM中,并且不需要本質上理解或解析HID描述符。當今市場上的一些鼠標和鍵盤硬件僅使用8位實現中央處理器。
主機應該是比設備更復雜的實體。主機需要從設備中檢索HID描述符并對其進行解析,然后才能與設備完全通信。解析HID描述符可能很復雜。眾所周知,在設備驅動程序最初向公眾發布多年后,多個操作系統在負責解析HID描述符的設備驅動程序中出現了錯誤。然而,這種復雜性是HID設備快速創新成為可能的原因。
上述機制描述了所謂的HID報告協議。因為眾所周知,并非所有主機都能夠解析HID描述符,所以HID還定義了引導協議。在引導協議中,由于使用了固定的數據包格式,因此僅支持具有特定功能的特定設備。此模式不使用HID描述符,因此創新受到限制。但是,好處是在無法支持HID的主機上仍然可以使用最少的功能。引導協議中xxx支持的設備是
啟動模式的一個常見用法是在計算機啟動序列的最初時刻。直接配置計算機的BIOS通常只使用啟動模式。有時會出現一條消息,通知用戶設備已安裝正確的驅動程序并且現在可以使用。
設備的HID定義
根據HID規范,在報告模式期間,設備被描述為一組控件或一組控件。控件由包含數據的字段匹配,另一個包含使用標簽。每個使用標簽在spec作為構造函數建議使用報告模式中描述的數據。
使用HID的其他協議
編輯由于HID最初是通過USB定義的,因此HID現在也用于其他計算機通信總線。這使得傳統上只能在USB上找到的HID設備也可以在替代總線上使用。這樣做是因為對USBHID設備的現有支持通常可以比必須發明一個全新的協議來支持鼠標、觸摸板、鍵盤等更快地適應。使用HID的已知總線有:
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/136352/