人體學介面裝置
此條目需要補充更多來源。 (2017年3月21日) |
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
人體學介面裝置(英語:Human interface device,縮寫HID,直譯為人類介面裝置)也常被稱為人體學輸入裝置,是一類與人類直接互動的電腦裝置,它通常提供一種人類可用的輸入方法,以及可能將輸出資訊傳遞給人類。術語「HID」一般指USB-HID標準。該術語由微軟的Mike Van Flandern提出,他提議USB委員會建立一個「人體學輸入裝置」(Human Input Device)類工作群組。該工作群組後被更名「人體學介面裝置」(Human Interface Device)類,因為DEC的Tom Schmidt建議:所提出的標準支援雙向通訊。[來源請求]
HID輸出裝置 | |
常用HID | |
不常用HID | |
HID標準
HID標準的設立主要是為革新PC輸入裝置和簡化安裝此類裝置的流程。在HID概念引入前,裝置通常要符合為滑鼠、鍵盤和控制杆嚴格定義的協定。例如,標準的滑鼠協定支援相對的X和Y軸資料,以及最多兩個按鈕的二進制輸入,沒有其他支持。所有硬體創新必須多載現有的協定資料,或者建立自訂的裝置驅動程式並為開發者提供新的協定。與此相反,所有HID定義的裝置驅動程式提供可包含任意數量資料類型和格式的自我描述包。電腦上的單個HID驅動程式就可以解析資料和實現資料I/O與應用程式功能的動態關聯。這加快了創新和發展,使人類介面裝置的類型、功能更加豐富、多樣化。
多個著名企業代表組成的工作委員會開發了HID標準。參與者名單列在「Device Class Definition for Human Interface Devices (HID)」[1]文件中。一個自描述可延伸協定的概念最初來自Mike Van Flandern和Manolito Adan在微軟與Steve McGowan的「Raptor」專案工作期間,他們在Forte工作期間研究用於訪問匯流排的裝置協定。在消費者遊戲大會交換意見後,Steve和Mike同意就新生的通用序列匯流排(USB)標準合作。
HID協定有其局限性,但所有現代主流作業系統都辨識標準USB HID裝置(例如鍵盤和滑鼠),而無需專門的驅動程式。在裝置安裝時,螢幕上可能呈現「一個『HID相容裝置』已安裝」訊息。相較而言,此訊息一般不會在裝置使用通過USB連接的PS/2 6針DIN連接器連接時出現。 PS/2通常不支援隨插即用,這意味著連接PS/2鍵盤或滑鼠到電腦不一定能正常工作,並有可能損害電腦主機板。同樣的,PS/2標準不支援HID協定。USB人類介面裝置類描述了USB HID。
HID協定的組件
HID協定中有兩個實體:主機(host)和裝置(device)。裝置是直接與人類互動的實體,例如鍵盤或滑鼠;主機則是負責與裝置通訊並接收人類在裝置上輸入的資料。輸出資料則是主機傳送給裝置,裝置再展現給人類。最常見的主機就是PC,但有些手機和PDA也可作為主機。
HID協定使得裝置的實現非常簡單。裝置定義它們的封包,然後向主機呈遞「HID描述符」。HID描述符是描述裝置的封包的寫死位元組陣列,其中包括:裝置支援多少個封包,封包大小,以及封包中各個位元組和位元的目的。例如,計算機程式的鍵盤按鈕可以告訴主機,該按鈕的按壓/鬆開狀態被儲存為封包4號中第6個位元組中的第2位元(注意:這些位置僅為說明目的,並且依裝置而不同)。裝置通常將HID描述符儲存在ROM中,並且不需要本質上理解或解析HID描述符。目前市場上的一些滑鼠和鍵盤硬體僅使用8位元CPU來實現。
主機的預期是比裝置更複雜的實體。主機需要檢索來自裝置的HID描述符,並需要解析它才可以與裝置進行完全通訊。解析HID描述符可能很複雜。已知有多個作業系統的負責解析HID描述符的驅動程式在發布給公眾幾年後被發現存在缺陷。[來源請求]但是,這種複雜性也成就了HID裝置的快速創新。
上述機制描述了什麼是HID「報告協定」。因為可以理解並非所有主機都能夠解析HID描述符,HID還定義了「引導協定」(boot protocol)。因為引導協定中使用固定的封包格式,所以只支援特定功能的特定裝置。在該模式中不使用HID描述符,因此創新是有限的,但好處是可以在無法支援HID的主機上仍可實現有限的功能。引導協定中支援裝置只有:
- 鍵盤 – 定義在HID使用表中的前256個鍵盤代碼,使用頁7可以由鍵盤使用引導協定報告,但大多數系統只處理這些鍵的子集。大多數系統支援IBM AT-101布局上的全部104個按鍵,以及為Microsoft Windows 95的額外三個按鍵(左側和右側Windows鍵,以及一個選單鍵)。許多系統還支援基本的西方附加鍵——歐洲105-、韓國106-、巴西ABNT 107,以及日本DOS/V 109鍵布局。沒有被報告的按鈕、旋鈕和按鍵將不可用。例如通用的美式鍵盤的QWERTY鍵將有效,而客製化化的計算機、註銷登入等按鍵將無效,因為它們在頁12上定義,並且不能在引導協定中報告。
- 滑鼠只有X軸、Y軸和前3個按鈕可用。滑鼠上的任何額外功能將不可用。
引導模式的一個常見用法是在電腦剛剛啟動時使用。直接組態電腦的BIOS通常只能用引導模式完成。有時會出現一條訊息,通知使用者該裝置已經安裝正確的驅動程式,並且現在可以使用[需要解釋]。
裝置的HID定義
根據HID標準,一個裝置在其報告模式期間描述作為控制器集或者控制器組。
其他使用HID的協定
HID最初定義為通過USB,但它現在也可使用在其他電腦通訊匯流排。允許傳統上只支援USB的HID裝置能用在其他匯流排上是為現有的USB HID裝置可以更快適配,而不必重新發明新協定以支援滑鼠、鍵盤和其他裝置。已知使用HID的匯流排有:
- 藍牙HID – 通過藍牙連接的滑鼠和鍵盤
- 串行HID – 用於微軟的Windows媒體中心PC遙控接收器。
- ZigBee輸入裝置 – ZigBee(RF4CE)通過「ZigBee輸入裝置規範」支援HID裝置。
- 基於I²C的HID – 用於Microsoft Windows 8中的嵌入式裝置[2]
- HOGP(基於GATT的HID) – 使用藍牙低功耗技術連接的HID裝置
參見
參考資料
- ^ Device Class Definition for Human Interface Devices (HID): Firmware Specification -- Final 1/30/97. USB Implementer's Forum. 1997 [2014-04-28]. (原始內容存檔於2020-09-15).
- ^ HID over I2C. Microsoft. [2016-01-19]. (原始內容存檔於2016-02-22).
- HID developers forum, USB.org
- HID Device Class Definition 1.11 Specification, USB.org
- (頁面存檔備份,存於網際網路檔案館), USB.org