共用方式為


隨插即用 透過 SPI 支援 HID

本文說明透過 SPI 傳輸支援 HID 的裝置隨插即用支援。

驅動程式載入

Windows 會根據硬體識別碼與 INF 之間的相容識別碼比對,載入 HID SPI 類別驅動程式。 標識碼是由 [進階設定] 和 [電源介面] (ACPI) 所產生。 系統會為 ACPI 中的 SPI 裝置節點產生硬體識別碼。 除了唯一的硬體標識碼之外,所有 HID SPI 相容裝置都必須公開相容性識別碼。

ACPI 5.0 規格包含 HID 類別裝置的支援。 HID SPI 的 ACPI 定義如下所示。

欄位 ACPI 物件 格式 註解
硬體識別碼 廠商特定 _藏 VVVVdd (格式的字串,例如MSFT0011) VendorID + DeviceID
相容的標識碼 PNP0C51 _Cid ACPIxxxx 或 PNPxxxx 格式的字串 CompatibleID
Subsystem 廠商特定 _子 以 VVVVSss (格式的字串,例如MSFQ1234) SubVendorID + SubSystemID
硬體修訂 廠商特定 _Hrv 0xRRRR (2 位元組修訂) 硬體修訂編號
目前的資源設定 廠商特定 _Crs 位元組數據流 - SpiSerialBus 以存取裝置。
- GpioInt 用於中斷。
裝置特定方法 GUID {6e2ac436-0fcf-41af-a265-b32a220dcfab} _Dsm 套件 定義包含裝置特定信息的結構。
裝置重設方法   _RST   ACPI 6.0 7.3.25 兼容裝置重設方法,由主機 OS 呼叫為 ACPI FLDR。

每個 HID SPI 裝置都必須提供下列必要欄位:

  • 硬體識別碼
  • 相容的標識碼
  • 硬體修訂
  • 目前的資源設定
  • 裝置特定方法
  • 裝置重設方法

如需詳細資訊,請參閱進階設定和 Power Interface (ACPI) 6.0 規格。

下列提供隨機 HID SPI 裝置的硬體識別碼和相容標識碼範例。 這些詳細數據是以一個範例裝置為基礎,以一個類別「廠商特定」類別的 HID 回報本身。

進階設定和電源介面 (ACPI) 會產生下列硬體識別碼和相容識別符,以載入 HID SPI 傳輸驅動程式:

硬體標識碼:相容的標識碼

ACPI\Vid_xxxx&Pid_yyyy&Rev_zzzz;: ACPI\PNP0C51

ACPI\Vid_xxxxPid_yyyy;

ACPI\xxxxyyyy;

在上一個範例中,硬體標識碼是使用從範例裝置的 _HID ACPI 方法擷取的值來產生。 相容標識碼是使用從範例裝置的 _CID ACPI 方法擷取的值來產生。 HID over SPI 的相容標識碼一律必須PNP0C51 1.0 版。

注意

如果您提供 INF,就應該只使用上表左欄中的硬體識別碼。 (請勿在右側數據行中使用相容的標識碼。)

HIDClass.sys 元件所產生的 HID 用戶端裝置節點硬體識別碼如下所示:

硬體標識碼:相容的標識碼

HID\VEN_MSFT&DEV_0010&REV_0002&Col01;: N/A

-HID\VEN_MSFT&DEV_0010&Col01 HID\MSFT0010&Col01;: N/A

-HID\*MSFT0010Col01: N/A

-HID_DEVICE_UP:FF00_U:0001;: N/A

-HID_DEVICE: N/A

硬體標識碼是由 HIDClass.sys 產生,而且所有傳輸都相同。 此標識碼是以從 ACPI) 擷取 HIDSPI.SYS (擷取至 HIDClass.sys 的值為基礎。

裝置列舉順序

一旦載入 HID SPI 裝置驅動器 (HIDSPI.SYS) ,它就會開始透過 SPI 總線與裝置通訊。 驅動程序執行的第一個作業是裝置列舉順序。

下列清單會提供列舉順序。 此清單的順序可能會在未來的 Windows 版本中變更。

  1. 從系統 BIOS 擷取 HID SPI 裝置的 ACPI 來源語言 (ASL) 程式代碼。

  2. 發出主機起始重設為裝置

    • 呼叫 ACPI _RST 方法
    • 裝置判斷提示 GPIO 中斷
    • 主機會從裝置讀取重設回應
  3. 從裝置擷取 HID 描述項

    • 主機寫入 HID 描述元要求
    • 裝置判斷提示 GPIO 中斷
    • 主機會讀取 HID 描述項回應
  4. 擷取報表描述項

    • 主機寫入報告描述項要求
    • 裝置判斷提示 GPIO 中斷
    • 主機讀取報告描述項回應

如果主機無法順利完成裝置的任何步驟,HIDSPI 驅動程式可能會載入錯誤值為 Code 10。 如果未收到回應,主機可能會重新嘗試重設裝置,但無法保證重試邏輯。

HID 報表作業

下表提供 HID SPI 通訊協定所支援 HID 報表作業的概觀,以及用來執行作業的輸入和輸出報告。

HID 報表類型 作業 輸出報表類型 輸入報表類型
輸入報表 GET 0x06
(要求 - 空白內容)
0x0B
(回應)
輸入報表 SET
不支援 ()
N/A N/A
輸入報表 插斷 N/A - 沒有要求 0x01
功能報表 GET 0x04
(要求 - 空白內容)
0x05
(回應)
功能報表 SET 0x03 0x09
(通知 - 空白內容)
輸出報表 GET
不支援 ()
N/A N/A
輸出報表 SET 0x05 0x0A
(通知 - 空白內容)

通訊協議作業

作業 要求報表類型 回應報告類型
裝置描述項要求 0x01 0x7
報表描述項要求 0x02 0x8
命令要求 0x07 0x4
重設回應 N/A 0x3

另請參閱

ACPI 來源語言 (ASL)