USB Touch Pad 建立

  • 精確式觸控板 ( Precision Touchpad , PTP )
1.  觸控板裝置應該使用 Human Interface Device ( HID ) 通訊協定與其 Windows 主機通訊。

2.  需要 I ² C HID 描述項。



3.  Windows精確度觸控板裝置應公開 3 個強制的最上層集合 : Windows精確度觸控板、滑鼠和設定
滑鼠集合 : Windows Precision Touchpad 的滑鼠集合提供主機符合 HID 規範的滑鼠報告。 對於無法使用Windows Precision Touchpad 集合來取用輸入的主機而言,這特別重要。
滑鼠集合應該支援輸入報表,以便至少報告 (x、y) 和左右按鈕的相對位置。

設定集合 : Windows Precision Touchpad 的組態集合可讓主機設定裝置的兩個不同層面。 集合應支援兩個功能報告:一個允許主機選取輸入模式,另一個則允許主機在報告的內容中選擇性。
a. 輸入模式功能報告是由主機與 Windows Precision Touchpad 通訊,以指出應該使用哪一個最上層集合來輸入報告。 有兩個集合可用於輸入報告:滑鼠集合和Windows Precision Touchpad 集合。
b. 選擇性報告功能報告是由主機與Windows精確度觸控板通訊,以指出應該報告哪種類型的輸入。 有兩種類型的輸入可以報告:表面接觸點和按鈕狀態。

Windows Precision Touchpad 集合 : 提供豐富的多連絡人(下面所描述的連絡人指的是手指)和按鈕報告給主機,以及與這些報表相關的裝置資訊。
集合應支援兩個功能報告:一個可讓主機取得裝置功能,另一個則用來取得裝置的認證狀態。
舉例 : 掃描時間配置,Finger 計數設置,按鍵狀態配置,最大連絡人計數報告,設備證書狀態功能報表配置。
  • Touch Pad Deivce Descriptor

1.  在 Function "USB_DeviceGetDeviceDescriptor()" 中可以追蹤到 g_UsbDeviceDescriptor , 藉由設定 g_UsbDeviceDescriptor 內容來讓 USB 獲得 device descriptor 參數。

如下範例即為此次的 device descriptor 配置




                

  • Touch Pad Configration Descriptor

1.  在 Function "USB_DeviceGetConfigurationDescriptor()" 中可以追蹤到 g_UsbDeviceConfigurationDescriptor , 藉由設定 g_UsbDeviceConfigurationDescriptor 內容來讓 USB 獲得 Configuration Descriptor 參數。

如下範例即為此次的 Configuration Descriptor 配置






2.  在 g_UsbDeviceConfigurationDescriptor 中接著 Configuration Descriptor 後繼續設定 Interface Descriptor 、 HID Descriptor 和 Endpoint Descriptor 參數。


如下範例即為此次的 Interface Descriptor 、 HID Descriptor 和 Endpoint Descriptor 配置






  • Touch Pad HID Report Descriptor

1.  在 Function "USB_DeviceGetHidReportDescriptor()" 中可以追蹤到 g_UsbDeviceHidPTPReportDescriptor, 藉由設定 g_UsbDeviceHidPTPReportDescriptor內容來讓 USB 獲得 hid report descriptor 參數。

可參考如下微軟的 hid report descriptor 配置





  • 回覆 USB data 內容

1.  獲取 PTP 裝置功能報告內容

2.  將獲取的報告內容放入 usb buffer 並透過相對應 Interrupt 的 endpoint 回覆給 host



* 參考文獻 : 

1. 必要的隱藏描述項 (windows-精確度-觸控板-必要-) HID | Microsoft Learn

2. 需要觸控板的 HID Top-Level集合 | Microsoft Learn

3. windows-precision-touchpad-sample-report-descriptors (範例報表描述元) | Microsoft Learn

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能