Windows集成筆設備一般是指屏(數字化儀/筆數字化轉換器)和筆(筆傳感器)構成的整體。屏、筆、主機之間的連接包含了屏與筆的連接、屏與主機的連接、筆與主機的連接,集成筆的主要功能由屏與筆的連接和屏與主機的連接來實現,筆與主機的連接可以實現一些可選的擴展功能。
屏與主機的連接
屏通過USB或I2C或SPI(或其他能夠提供兼容的HID驅動的總線),使用HID連接到主機上。
在微軟的一些文檔中,會把數字化儀(屏)和筆傳感器(筆)組合在一起叫做集成筆設備。在物理層上,和主機連接的是屏(標準筆設備,不包含筆和主機的藍牙連接)

- Pen Reports用於實現書寫和向主機傳遞筆的唯一標識符
- Mouse Reports用於在Win10以前的系統上顯示鼠標光標
- Device Certification Status
- Latency Mode用於主機通知集成筆設備何時進入高延遲(低功耗)模式
筆與主機的連接
筆通過藍牙使用HID連接到主機上,主要實現觸覺反饋、提筆檢測、快捷按鍵功能。

- Stylus Identifier用來傳遞筆的唯一標識符。觸摸屏也會給主機傳遞筆的唯一標識符,因此主機系統可以將筆與觸摸屏的輸入報告關聯起來
- Haptic Parameters/Waveform/Configuration用於實現觸覺反饋(即某些操作會使筆身振動)
- Keyboard Reports用於實現提筆檢測和快捷按鈕
- 放入/取出筆槽時報告WIN+CTRL+F19/WIN+CTRL+F20的鍵盤組合按鍵
- 單擊/雙擊/長按快捷按鈕時報告WIN+F20/WIN+F19/WIN+F18的鍵盤組合按鍵
筆與主機的藍牙無縫配對
Surface pro8和pro11的筆看標籤應該是同一個型號的,兩支筆在兩個平板上都能自動連接(放入充電槽或者靠近屏都可以),已經有筆連接的情況下,另一支筆也可以自動連接。
hp的筆也是mpp協議的,在surface上可以書寫,但不能自動連接。
把surface的筆放在旁邊,然後用hp的筆在surface上書寫,不能自動連接上surface的筆,這説明筆需要發送某些信息才能夠觸發自動連接。(筆靠近屏時可以通過mpp協議發送信息給屏,通過屏傳遞給系統,放入充電槽時怎麼發送給系統?通過NFC傳遞給充電槽,由充電槽傳遞給系統?)

實現筆與系統的藍牙無縫配對需要相關的設備實現Microsoft Bluetooth Out-of-Band集合(這是Vendor-defined類型的集合,usage_page為0xFFF4,usage_id為0x01)。該集合應由屏或充電槽實現。
Device Capability Report用於主機向設備報告自己是否支持無縫配對,並獲取設備是否支持無縫配對
Device Bluetooth Report用於向主機報告筆的藍牙參數
Host Bluetooth Report用於主機向設備提供自己的藍牙參數
Pairing Key Report用於主機向指定的筆發送藍牙配對密鑰
無縫配對的一般流程:

筆與屏的連接
筆與屏之間沒有一一對應的連接關係,只要符合約定的電氣傳輸的協議就能夠進行通信。筆輸出的是經過編碼的高壓打碼信號,觸摸屏按照約定的協議對主動筆的信號進行採樣和解碼,得到筆尖位置、壓力等信息。用於約定筆和觸摸屏之間電氣信號的交互流程、時序、頻點等信息的就是主動筆協議(也就是説,協議沒有定義觸摸屏/主動筆如何跟系統交互),目前使用比較廣泛的是微軟主導的MPP協議和谷歌主導的USI協議。
筆到觸摸屏的通信使用筆尖的編碼脈衝,觸摸屏到筆的通信使用整屏的編碼脈衝
主動式電容筆和被動式電容筆的最大區別在於,主動式電容筆的內部電路會通過電極向觸摸屏發送電信號,從而實現更高性能的書寫。主動式電容筆並不會以無線傳輸的方式與觸摸屏或系統進行通信。和被動式電容筆的基本原理一樣,觸摸屏需要通過檢測它和筆尖之間的電信號來識別觸摸。區別在於,使用被動式電容筆時,電信號是觸摸屏-筆尖-人-地通路產生的,需要較粗的筆尖來產生電信號,而使用主動式電容筆時,電信號是筆的內部電路產生後通過筆尖電極傳輸到觸摸屏的,筆尖可以做到很細。


MPP歷史版本
- mpp1.51:支持單個傳輸電極並提供 1024 級壓力靈敏度
- mpp2.0:支持兩個傳輸電極以實現傾斜功能,並將壓力靈敏度提高到 2048 級
- mpp2.5:支持觸摸和顯示驅動程序集成(TDDI)
- mpp2.6:添加了藍牙和觸覺反饋功能(通過帶上行的筆協議實現觸覺反饋跟mpp有關,通過藍牙實現觸覺反饋跟mpp無關)
參考鏈接
MPP_2.0_TC.pdf
應用於電容筆的雙協議切換方法_參考網
Windows 筆無縫配對實施指南_ Microsoft Learn
觸覺筆實施指南_Microsoft Learn
集成筆設備所需的 HID 頂級集合_Microsoft Learn