Aracılığıyla paylaş


I2C için Tak Çalıştır desteği

Bu makalede, I2C aktarımı üzerinden HID'yi destekleyen cihazlar için tak çalıştır desteği açıklanmaktadır.

Sürücü Yükleme

Windows, donanım tanımlayıcısı ile INF arasındaki uyumlu tanımlayıcı eşleşmesini temel alarak HID I2C sınıf sürücüsünü yükler. Gelişmiş Yapılandırma ve Güç Arabirimi (ACPI) tanımlayıcıyı oluşturur. Donanım tanımlayıcısı ACPI'deki I2C cihaz düğümü için oluşturulur. Tüm HID I2C uyumlu cihazlar, benzersiz bir donanım tanımlayıcısına ek olarak uyumluluk tanımlayıcısını kullanıma sunmalıdır.

ACPI 5.0 Belirtimi HID Sınıf Cihazları için destek içerir. HID I2C için ACPI tanımları aşağıdaki gibidir.

Saha Değer ACPI nesnesi Biçim Yorumlar
Uyumlu Kimlik PNP0C50 _CİD ACPI0C50 veya PNP0C50 biçiminde dize CompatibleID
Donanım Kimliği Tedarikçiye Özgü _SAKLADI VVVVdddd biçiminde dize (örn. NVDA0001) Satıcı ID + Cihaz ID
Alt sistem Tedarikçiye Özgü _ALT "VVVVssss" biçiminde dize (örneğin, "INTL1234") SubVendorID + SubSystemID
Donanım Düzeltmesi Tedarikçiye Özgü _HRV 0xRRRR (iki baytlık revizyon) Düzeltme Kimliği
Geçerli Kaynak Ayarları Tedarikçiye Özgü _CRS Bayt akışı I2C denetleyicisi ve GPIO kesmeleri için sırasıyla I2CSerialBus ve GPIO_INT içermelidir.
Cihaza Özgü Yöntem GUID {3CDFF6F7-4267-4555-AD05-B30A3D8938DE} _DSM Paket HID Tanımlayıcısı adresini içeren bir yapı tanımlar.

Her HID I2C cihazı aşağıdaki zorunlu alanları sağlamalıdır:

  • Uyumlu Kimlik
  • Donanım Kimliği
  • Donanım Düzeltmesi
  • Geçerli Kaynak Ayarları
  • Cihaza Özgü Yöntem

Daha fazla bilgi için bkz. Gelişmiş Yapılandırma ve Güç Arabirimi Belirtimi Sürüm 5.0.

Aşağıdaki donanım kimlikleri ve uyumlu kimlikler rastgele HID I2C cihazı için bir örnek sağlar. Bu ayrıntılar, kendisini "satıcıya özgü" sınıfında üst düzey bir koleksiyona sahip bir HID olarak raporlayan örnek bir cihazı temel alır.

Gelişmiş Yapılandırma ve Güç Arabirimi (ACPI), HID I2C Aktarım sürücüsünü yüklemek için aşağıdaki Donanım Kimliklerini ve Uyumlu Kimlikleri oluşturur:

Donanım Tanımlayıcıları: Uyumlu Tanımlayıcılar

ACPI\Vid_xxxx&Pid_yyyy&Rev_zzzz;: ACPI\PNP0C50

ACPI\Vid_xxxxPid_yyyy;:

ACPI\xxxxyyyy;:

Önceki örnekte Donanım Kimliği, örnek cihaz için _HID ACPI yönteminden ayıklanan değerler kullanılarak oluşturulmuştur. Uyumlu Kimlik, örnek cihaz için _CID ACPI yönteminden ayıklanan değerler kullanılarak oluşturulur. I2C üzerinden HID için Uyumlu Kimlik her zaman sürüm 1.0 için PNP0C50 olmalıdır.

Not BIR INF sağlarsanız, yalnızca önceki tablonun sol sütunundaki donanım tanımlayıcılarını kullanmanız gerekir. (Sağ sütunda uyumlu tanımlayıcıyı kullanmayın.)

HIDClass.sys bileşeni tarafından oluşturulan HID İstemcisi cihaz düğümü için Donanım Kimliği aşağıdaki gibidir:

Donanım Tanımlayıcısı: Uyumlu Tanımlayıcı

HID\VEN_MSFT&DEV_0010&REV_0002&Col01;: Yok

-HID\VEN_MSFT&DEV_0010&Col01 HID\MSFT0010&Col01;: Yok

-HID\*MSFT0010Col01: Kullanılamıyor

-HID_DEVICE_UP:FF00_U:0001;: Yok

-HID_DEVICE: Yok

HIDClass.sys Donanım Kimliğini oluşturur ve tüm aktarımlar için aynıdır. Bu tanımlayıcı, ACPI'den ayıklanan HIDI2C.sys'den HIDClass.sys'a geçirilen değerlere dayanır.

Cihaz numaralandırma sırası

HID I2C cihaz sürücüsü (HIDI2C.sys) yüklendikten sonra, I2C veri yolu üzerinden cihazla iletişim kurmaya başlar. Sürücünün gerçekleştirdiği ilk işlem, cihaz numaralandırma dizisidir.

Aşağıdaki liste numaralandırma sırasını verir. Bu listenin sırası Windows'un gelecek sürümlerinde değişebilir.

  1. Sistem BIOS'tan HID I2C DEVICE için ACPI Kaynak Dili (ASL) kodunu alın.

  2. Cihazdan HID Tanımlayıcısı'nı alın.

    • HID Tanımlayıcı Adresi Yazma
    • HID Tanımlayıcısı'nı okuma
  3. Cihaza bir SET_POWER verme.

    • Yaz SET_POWER komutunu
  4. Cihaza BİR RESET (Ana Makine Tarafından Başlatılan Sıfırlama) uygulayın.

    • RESET Komutunu Yaz
    • Cihaz, GPIO kesintisi onaylar
    • Giriş yazmacından değer oku (0x00 0x00)
  5. Cihazdan rapor tanımlayıcısını alın.

    • Rapor tanımlayıcı adresi yazma
    • Rapor tanımlayıcısını okuma

HOST, DEVICE ile 1-5 arası adımlardan herhangi birini başarıyla tamamlayamazsa, HIDI2C sürücüsü Kod 10 hata değeriyle yüklenebilir. Bu komutların hiçbirine yerleşik bir yeniden deneme mantığı yoktur.

Not: 4. ve 5. adımlar, I2C'de zamanı iyileştirmek için paralel olarak yapılabilir. Rapor tanımlayıcıları (a) statik ve (b) uzun olduğundan Windows 8, 4'te cihazdan yanıt beklerken 5 için bir istek gönderebilir.

Desteklenen HID I2C komutları

HIDI2C.SYS sürücüsü aşağıdaki komutları destekler:

Komut Nasıl kullanılır? Kullanıldığında
Sıfırla Windows, Ana Bilgisayar Tarafından Başlatılan Sıfırlamayı destekler. Windows bu komutu aşağıdaki senaryolar sırasında sağlar - cihaz başlatma - devre dışı bırakma/etkinleştirme - kaldırma/yeniden yükleme
Al/Ayarla_Rapor Windows, Get/Set_Report komutlarını destekler. Windows aşağıdaki senaryolarda bu komutu çalıştırır: - Bir HID istemci sürücüsü get/set özellik raporu isteğinde bulunduğunda - Bir HID istemci sürücüsü zaman uyumlu bir giriş/çıkış raporu çıkardığında.
Set_Güç Windows, Set_Power komutunu destekler Windows bu komutu aşağıdaki senaryolarda (sistem düşük güçte S3 / bağlı bekleme durumuna geçtiğinde) sistem kapatıldığında verir.