设备总线连接 (pen-device-bus-connectivity)
注意
本文包含对术语“从属”的引用,这是 Microsoft 不再使用的术语。 在从软件中删除该术语后,我们会将其从本文中删除。
本主题讨论 Windows 笔设备的总线连接方法。
集成的 Windows 笔设备可以使用 Microsoft 提供的内置驱动程序通过基于 USB 的 HID、基于 I²C 的 HID 或(从 Windows 11 开始)基于 SPI 的 HID 连接到其 Windows 主机。 不过,你可以使用所需的任何其他总线,只要你为笔设备提供所需的与 Windows 兼容的第三方 HID 小型端口驱动程序即可。 下图显示了 Windows 笔设备的 Windows 11 驱动程序堆栈。
为了与 Windows 11 桌面版(家庭版、专业版、企业版和教育版)完全兼容,我们建议使用 Microsoft 提供的收件箱驱动程序。 如果你决定使用第三方微型端口驱动程序,则必须将此第三方驱动程序添加到相应的 OEM 和系统还原映像,然后使这些映像可在 Windows 更新上下载。
以下各部分提供了一些设备配置示例。
I²C 设备
集成的 Windows 笔模块定义为控制器 IC 和传感器的组合。
通过 I²C 总线连接到其 Windows 主机的 Windows 笔模块至少必须公开以下五个连接引脚:
- 数据线 (SDA)
- 时钟线 (SCL)
- 中断线
- 电源线
- 接地 (GND)
下面是 Windows 笔设备与其 Windows 主机之间的连线图。
连接到 I²C 控制器时,了解共享该控制器的所有组件的带宽需求非常重要。 对于集成的 Windows 笔,建议使用 400 KHz 的最小 I²C 时钟速度。 强烈建议集成的 Windows 笔控制器不要与具有高带宽使用的组件共享相同的 I²C 控制器。
建议将中断线(也称为 ATTN 线)连接到 SoC 上 GPIO 控制器或 IOAPIC。 中断线路连接到的 GPIO 或 IOAPIC 资源应能够(并配置为)唤醒 SoC。 唤醒功能支持集成的 Windows 笔在各种情况下唤醒系统。
如果决定使用唤醒功能,则不应将连接到集成的 Windows 笔设备的电源线与其他不支持唤醒功能的设备共享。 为了使唤醒方案正常工作,在处于联网待机/S3 情况下,所使用的电源线必须是通电的。
ACPI 表条目
通过 I²C 进行连接的 Windows 笔设备必须在主机的高级配置和电源接口 (ACPI) 表中定义一个条目,以便主机识别该设备。 有关 ACPI 的详细信息,请参阅高级配置和电源接口规范。
ACPI 表条目应指定以下信息:
条目 | 说明 |
---|---|
ACPI 设备条目名称 | 特定于此 ACPI 表的 4 字符标识,用于引用设备。 例如“WPEN”。 |
ACPI 硬件 ID | 4 字符 + 4 数字 ACPI 硬件 ID,用于引用设备。 这在设备管理器中公开。 例如“MSFT0001”。 |
兼容 ID | 此项应始终为“PNP0C50”,表示设备与 HID I²C 兼容。 |
I²C 控制器 | 指定 Windows 主机上的 I²C 控制器。 此控制器用于将笔连接到 Windows 主机,并使笔和主机能够进行通信。 例如,“I2C3”表示 I²C 控制器 #3。 |
I²C 从属地址 | 指定设备的 I²C 从属地址。 主机使用此地址在 I²C 总线上挑出笔设备进行通信。 例如“0x6F”。 |
I²C 速度 | 指定设备和 I²C 控制器支持的最大速度。 在 ACPI 表中指定速度可确保可靠的通信。 此速度不应低于 400KHz (0x61A80)。 |
GPIO 控制器 | 笔的中断线连接到的 GPIO 控制器。 这会告诉主机“侦听”中断信号的位置。 例如,“GPIO0”表示 GPIO 控制器 #0。 |
GPIO 资源/引脚 | 笔的中断线连接到的 GPIO 控制器引脚。 然后,主机将此特定 GPIO 引脚与来自笔的中断信号相关联。 例如,“{35}”表示引脚 35。 |
GPIO 资源类型 | 定义 GPIO 资源的约束。 ACPI 表的此条目应设置为“独占”,除非要选择 SoC 唤醒。 如果决定选择“SoC 唤醒”,请将此条目设置为“ExclusiveAndWake”。 |
GPIO 中断断言类型 | 定义笔将为其中断提供的触发类型。 这可以是“边缘触发”或“水平触发”。 符合 HID I²C 标准的设备应使用“水平触发”中断。 |
GPIO 中断断言电平 | 当设备断言中断时,定义中断线路上的电压电平。 此项可以指定为“ActiveLow”或“ActiveHigh”。 |
USB 设备
通过 USB 2.0 连接的高速/全速集成 Windows 笔模块应公开主机连接所需的引脚。
与主机的连接可以采用多种形式,这取决于集成商。
请注意,连接到 USB 集线器时,了解共享该集线器的所有组件的带宽需求非常重要。 强烈建议不要让高带宽设备和集成的 Windows 笔控制器共享同一个 USB 集线器,因为这可能会导致带宽需求超出总线所能提供的量。
USB 桥接设备 (I²C -> USB)
如果使用 USB 桥接将集成的 I²C Windows 笔连接到主机,则网桥应将集成的 Windows 笔公开为具有设备唯一属性(wVendorID、wProductID、wVersionID)的不同设备节点。
HID SPI 设备
Windows 笔模块定义为控制器 IC 和传感器的组合。
通过 SPI 总线连接到其 Windows 主机的 Windows 笔模块至少必须公开以下五个连接引脚:
- 数据线 (SDA)
- 时钟线 (SCL)
- 芯片选择线 (SS)
- 中断线
- 电源线
- 接地 (GND)
下面是 Windows 笔设备与其 Windows 主机之间的连线图。
ACPI 表条目
通过 SPI 进行连接的 Windows 笔设备必须在主机的高级配置和电源接口 (ACPI) 表中定义一个条目,以便主机识别该设备。 有关 ACPI 的详细信息,请参阅高级配置和电源接口规范。
ACPI 表条目应指定基于 SPI 的 HID 的即插即用支持一文所述的信息。