Plug and Play dukungan untuk HID melalui SPI
Artikel ini menjelaskan dukungan plug and play untuk perangkat yang mendukung HID melalui transportasi SPI.
Pemuatan Driver
Windows memuat driver kelas HID SPI berdasarkan kecocokan pengidentifikasi yang kompatibel antara pengidentifikasi perangkat keras dan INF. Pengidentifikasi dihasilkan oleh Konfigurasi Tingkat Lanjut dan Antarmuka Daya (ACPI). Pengidentifikasi perangkat keras dihasilkan untuk simpul perangkat SPI di ACPI. Semua perangkat yang kompatibel dengan HID SPI harus mengekspos pengidentifikasi kompatibilitas, selain pengidentifikasi perangkat keras yang unik.
Spesifikasi ACPI 5.0 mencakup dukungan untuk Perangkat Kelas HID. definisi ACPI untuk HID SPI adalah sebagai berikut.
Bidang | Nilai | Objek ACPI | Format | Komentar |
---|---|---|---|---|
ID Perangkat Keras | Vendor Spesifik | _HID | String dalam format VVVVdddd (misalnya MSFT0011) | VendorID + DeviceID |
ID yang Kompatibel | PNP0C51 | _CID | String dalam format ACPIxxxx atau PNPxxxx | CompatibleID |
Subsistem | Vendor Spesifik | _SUB | String dalam format VVVVSsss (misalnya MSFQ1234) | SubVendorID + SubSystemID |
Revisi Perangkat Keras | Vendor Spesifik | _HRV | 0xRRRR (revisi 2byte) | Nomor revisi perangkat keras |
Pengaturan Sumber Daya Saat Ini | Vendor Spesifik | _CRS | Aliran byte | - SpiSerialBus untuk akses ke perangkat.- GpioInt untuk interupsi. |
Metode Khusus Perangkat | GUID {6e2ac436-0fcf-41af-a265-b32a220dcfab} | _DSM | Paket | Menentukan struktur yang berisi informasi khusus perangkat. |
Metode Reset Perangkat | _RST | Metode reset perangkat yang sesuai dengan ACPI 6.0 7.3.25, untuk dipanggil oleh OS host sebagai FLDR ACPI. |
Setiap perangkat HID SPI harus menyediakan bidang wajib berikut:
- ID Perangkat Keras
- ID yang Kompatibel
- Revisi Perangkat Keras
- Pengaturan Sumber Daya Saat Ini
- Metode Khusus Perangkat
- Metode Reset Perangkat
Lihat spesifikasi Konfigurasi Tingkat Lanjut dan Power Interface (ACPI) 6.0 untuk informasi tambahan.
Berikut ini menyediakan contoh ID perangkat keras dan ID yang kompatibel untuk perangkat HID SPI acak. Detail ini didasarkan pada perangkat sampel yang melaporkan dirinya sebagai HID dengan satu koleksi tingkat atas kelas "khusus vendor".
Konfigurasi Tingkat Lanjut dan Antarmuka Daya (ACPI) menghasilkan ID Perangkat Keras dan ID yang Kompatibel berikut untuk memuat driver HID SPI Transport:
Pengidentifikasi Perangkat Keras: Pengidentifikasi yang Kompatibel
ACPI\Vid_xxxx&Pid_yyyy&Rev_zzzz;: ACPI\PNP0C51
ACPI\Vid_xxxxPid_yyyy;:
ACPI\xxxxyyyy;:
Dalam contoh sebelumnya, ID Perangkat Keras dihasilkan dengan menggunakan nilai yang diekstrak dari metode acpi _HID untuk perangkat sampel. ID yang Kompatibel dihasilkan dengan menggunakan nilai yang diekstrak dari metode acpi _CID untuk perangkat sampel. ID yang Kompatibel untuk HID melalui SPI harus selalu PNP0C51 untuk versi 1.0.
Catatan
Jika Anda menyediakan INF, Anda hanya boleh menggunakan pengidentifikasi perangkat keras di kolom kiri tabel sebelumnya. (Jangan gunakan pengidentifikasi yang kompatibel di kolom kanan.)
ID Perangkat Keras untuk simpul perangkat Klien HID yang dihasilkan oleh komponen HIDClass.sys adalah sebagai berikut:
Pengidentifikasi Perangkat Keras: Pengidentifikasi yang Kompatibel
HID\VEN_MSFT&DEV_0010&REV_0002&Col01;: T/A
-HID\VEN_MSFT&DEV_0010&Col01 HID\MSFT0010&Col01;: T/A
-HID\*MSFT0010Col01: N/A
-HID_DEVICE_UP:FF00_U:0001;: N/A
-HID_DEVICE: T/A
ID Perangkat Keras dihasilkan oleh HIDClass.sys dan identik untuk semua transportasi. Pengidentifikasi ini didasarkan pada nilai yang diteruskan ke HIDClass.sys dari HIDSPI.SYS (diekstrak dari ACPI).
Urutan enumerasi perangkat
Setelah driver perangkat HID SPI (HIDSPI.SYS) dimuat, ia mulai berkomunikasi dengan perangkat melalui bus SPI. Operasi pertama yang dilakukan driver adalah urutan enumerasi perangkat.
Daftar berikut memberikan urutan enumerasi. Urutan daftar ini dapat berubah dalam versi Windows yang akan datang.
Ambil kode ACPI Source Language (ASL) untuk perangkat HID SPI dari BIOS sistem.
Menerbitkan reset host yang dimulai ke perangkat
- Memanggil metode _RST ACPI
- Perangkat menegaskan gangguan GPIO
- Host membaca respons reset dari perangkat
Mengambil deskriptor HID dari perangkat
- Host menulis permintaan deskriptor HID
- Perangkat menegaskan gangguan GPIO
- Host membaca respons deskriptor HID
Mengambil deskriptor laporan
- Host menulis permintaan deskriptor laporan
- Perangkat menegaskan gangguan GPIO
- Host membaca respons deskriptor laporan
Jika host gagal menyelesaikan salah satu langkah dengan perangkat, driver HIDSPI dapat dimuat dengan nilai kesalahan Kode 10. Host dapat melakukan percobaan ulang untuk mengatur ulang perangkat jika tidak ada respons yang diterima, tetapi logika coba lagi tidak dijamin.
Operasi laporan HID
Tabel di bawah ini memberikan gambaran umum tentang operasi laporan HID yang didukung oleh protokol HID SPI dan laporan input dan output yang digunakan untuk melakukan operasi.
Jenis laporan HID | Operasi | Jenis laporan output | Jenis laporan input |
---|---|---|---|
Laporan Input | GET | 0x06 (Permintaan - konten kosong) |
0x0B (Respons) |
Laporan Input | SET (Tidak didukung) |
T/A | T/A |
Laporan Input | INTERUPSI MASUK | T/A - Tidak ada permintaan | 0x01 |
Laporan Fitur | GET | 0x04 (Permintaan - konten kosong) |
0x05 (Respons) |
Laporan Fitur | SET | 0x03 | 0x09 (Pengakuan - konten kosong) |
Laporan Output | GET (Tidak didukung) |
T/A | T/A |
Laporan Output | SET | 0x05 | 0x0A (Pengakuan - konten kosong) |
Operasi protokol
Operasi | Jenis laporan permintaan | Jenis laporan respons |
---|---|---|
Permintaan Deskriptor Perangkat | 0x01 | 0x7 |
Permintaan Deskriptor Laporan | 0x02 | 0x8 |
Permintaan Perintah | 0x07 | 0x4 |
Reset Respons | T/A | 0x3 |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk