Bagikan melalui


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.

  1. Ambil kode ACPI Source Language (ASL) untuk perangkat HID SPI dari BIOS sistem.

  2. Menerbitkan reset host yang dimulai ke perangkat

    • Memanggil metode _RST ACPI
    • Perangkat menegaskan gangguan GPIO
    • Host membaca respons reset dari perangkat
  3. Mengambil deskriptor HID dari perangkat

    • Host menulis permintaan deskriptor HID
    • Perangkat menegaskan gangguan GPIO
    • Host membaca respons deskriptor HID
  4. 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

Bahasa Sumber ACPI (ASL)