人體學接口設備

人體學接口設備(英語:Human interface device,縮寫HID,直譯為人類接口設備)也常被稱為人體學輸入設備,是一類與人類直接交互的計算機設備,它通常提供一種人類可用的輸入方法,以及可能將輸出信息傳遞給人類。術語「HID」一般指USB-HID英語USB human interface device class標準。該術語由微軟的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英語Manolito Adan微軟與Steve McGowan的「Raptor」項目工作期間,他們在Forte工作期間研究用於訪問總線英語Access Bus的設備協議。在消費者遊戲大會交換意見後,Steve和Mike同意就新生的通用串行總線(USB)標準合作。

HID協議有其局限性,但所有現代主流操作系統都識別標準USB HID設備(例如鍵盤和鼠標),而無需專門的驅動程序。在設備安裝時,屏幕上可能呈現「一個『HID兼容設備』已安裝」消息。相較而言,此消息一般不會在設備使用通過USB連接的PS/2 6針DIN連接器連接時出現。 PS/2通常不支持即插即用,這意味着連接PS/2鍵盤或鼠標到計算機不一定能正常工作,並有可能損害計算機主板。同樣的,PS/2標準不支持HID協議。USB人類接口設備類英語USB human interface device class描述了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英語IBM PC keyboard布局上的全部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的總線有:

參見 編輯

參考資料 編輯

  1. ^ 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). 
  2. ^ HID over I2C. Microsoft. [2016-01-19]. (原始內容存檔於2016-02-22).