Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Firma Microsoft udostępnia sterownik zgodny ze specyfikacją interfejsu UCSI (USB Type-C® Connector System Software Interface) na potrzeby transportu Advanced Configuration and Power Interface (ACPI). Jeśli projekt zawiera kontroler osadzony z transportem ACPI, zaimplementuj UCSI w systemie BIOS/EC i załaduj standardowy sterownik UCSI (UcmUcsiCx.sys i UcmUcsiAcpiClient.sys).
Jeśli sprzęt zgodny ze standardem UCSI korzysta z transportu innego niż ACPI, musisz napisać sterownik klienta interfejsu użytkownika.
Sterowniki do obsługi komponentów USB Type-C dla systemów z osadzonymi kontrolerami
Oto przykład systemu z osadzonym kontrolerem.
Przełączanie roli USB jest obsługiwane w oprogramowaniu układowym systemu. Stos sterowników sterujących przełącznikiem ról USB nie został załadowany. W innym systemie stos sterowników może nie zostać załadowany, ponieważ funkcja podwójna nie jest obsługiwana.
Sterowniki po stronie urządzenia USB
Sterowniki po stronie urządzenia USB obsługują funkcję/urządzenie/sprzęt peryferyjny. Rozszerzenie klasy kontrolera funkcji USB obsługuje protokół MTP (Media Transfer Protocol) i ładowanie przy użyciu ładowarki BC 1.2. Firma Microsoft udostępnia wbudowane sterowniki klienta dla kontrolerów Synopsys USB 3.0 i ChipIdea USB 2.0. Niestandardowy sterownik klienta dla kontrolera funkcji można napisać przy użyciu interfejsów programowania sterowników klienta kontrolera funkcji USB. Aby uzyskać więcej informacji, zobacz Tworzenie sterowników systemu Windows dla kontrolerów funkcji USB.
Dostawca SoC może zapewnić niższy sterownik filtru funkcji USB do wykrywania ładowarki. Jeśli używasz wbudowanego sterownika klienta Synopsys USB 3.0 lub ChipIdea USB 2.0, możesz zaimplementować własny sterownik filtru.
Sterowniki po stronie hosta USB
Sterowniki po stronie hosta USB to zestaw sterowników współpracujących z kontrolerami hosta USB zgodnymi ze standardami EHCI lub XHCI. Jeśli sterownik przełącznika ról wylicza rolę hosta, sterowniki są ładowane. Jeśli kontroler hosta nie jest zgodny ze specyfikacją, możesz napisać sterownik niestandardowy przy użyciu interfejsu programowania rozszerzenia kontrolera hosta USB. Aby uzyskać więcej informacji, zobacz Tworzenie sterowników systemu Windows dla kontrolerów hosta USB.
Menedżer łącznika USB
Firma Microsoft udostępnia wbudowany sterownik UCSI z systemem Windows (UcmUcsiCx.sys), który implementuje funkcje zdefiniowane w specyfikacji interfejsu programowego systemu łącznika USB Type-C. W specyfikacji opisano możliwości UCSI. Wyjaśniono w nim rejestry i struktury danych dla projektantów składników sprzętu, konstruktorów systemów i deweloperów sterowników urządzeń.
Ten sterownik jest przeznaczony dla systemów z kontrolerami osadzonymi. Ten sterownik jest klientem sterownika rozszerzenia klasy łącznika USB dostarczonego przez firmę Microsoft (Ucmcx.sys). Sterownik obsługuje zadania, takie jak inicjowanie żądania do oprogramowania układowego w celu zmiany danych lub ról zasilania oraz uzyskiwanie informacji potrzebnych do dostarczania komunikatów dotyczących rozwiązywania problemów użytkownikowi.
Polecenia UCSI wymagane przez system Windows
Zobacz specyfikację UCSI dla poleceń wymaganych we wszystkich implementacjach UCSI.
Oprócz poleceń oznaczonych jako Wymagane system Windows wymaga następujących poleceń:
- GET_ALTERNATE_MODES
- GET_CAM_SUPPORTED
- GET_PDOS
- SET_NOTIFICATION_ENABLE: System lub kontroler musi obsługiwać następujące powiadomienia w SET_NOTIFICATION_ENABLE:
- Zmiana obsługiwanych możliwości dostawcy
- Wynegocjowana zmiana poziomu zasilania
- GET_CONNECTOR_STATUS: system lub kontroler musi obsługiwać te zmiany stanu łącznika w GET_CONNECTOR_STATUS:
- Zmiana obsługiwanych możliwości dostawcy
- Wynegocjowana zmiana poziomu zasilania
Aby uzyskać więcej informacji, zobacz Implementacja UCSI w systemie BIOS firmy Intel.
UCM-UCSI urządzenie ACPI dla UCSI 2.0 lub nowszego
Począwszy od aktualizacji wrześniowej systemu Windows 11, wersja 22H2, sterowniki urządzeń UCM-UCSI ACPI obsługują specyfikację UCSI w wersjach 2.0 i 2.1. Specyfikacja UCSI 2.0 zawiera zmiany powodujące niekompatybilność w mapowaniu pamięci jej struktur danych, jak zdefiniowano w Tabeli 3-1 Specyfikacji UCSI Struktury danych.
Aby zachować zgodność wsteczną, system Windows wymaga, aby UCSI PPM wersji specyfikacji 2.0 lub wyższej zaimplementował następującą funkcję _DSM w urządzeniu ACPIUCM-UCSI w oprogramowaniu układowym ACPI i zwrócił wartość niezerową, aby wskazać, że UCSI OPM powinien postępować zgodnie ze zgłoszoną wersją specyfikacji UCSI.
- Arg0: UUID = 6F8398C2-7CA4-11E4-AD36-631042B5008F
- Arg1: Identyfikator poprawki = 0
- Arg2: Indeks funkcji = 5
- Arg3: Pusty pakiet (nie jest używany)
Wartość zwracana:
| Składnik | Typ obiektu | Opis |
|---|---|---|
| UsePpmReportedUcsiVersion | Liczba całkowita (32-bitowa) | 0x00000000 (ustawienie domyślne): jeśli VERSION struktura zdefiniowana w specyfikacji interfejsu użytkownika Table 3-1 Data Structures ma wartość 2.0 lub nowszą, funkcja OPM interfejsu użytkownika nadal jest zgodna ze specyfikacją interfejsu użytkownika 1.2. W przeciwnym razie UCSI OPM postępuje zgodnie ze specyfikacją UCSI, zgodnie z wartością VERSION w strukturze. |
Uwaga / Notatka
W przypadku urządzeń UCM-UCSI ACPI ta funkcja jest nowa w istniejącej metodzie _DSM. Inne funkcje tej metody _DSM powinny zostać zaimplementowane zgodnie z dokumentem implementacji systemu BIOS Intel dotyczącym UCSI. Funkcja 0, która zwraca maskę bitową wszystkich obsługiwanych funkcji, powinna zostać odpowiednio zaktualizowana.
Przykładowy przepływ dla UCSI
W przykładach w tej sekcji opisano interakcję między sprzętem i oprogramowaniem układowym USB Type-C, sterownikiem UCSI oraz systemem operacyjnym.
Wykrywanie ról DRP
USB Type-C sprzęt lub oprogramowanie układowe wykrywa zdarzenie podłączenia urządzenia. System DRP systemu Windows 10 początkowo staje się rolą UFP.
- Oprogramowanie układowe wysyła powiadomienie wskazujące zmianę łącznika.
- Sterownik UCSI wysyła żądanie GET_CONNECTOR_STATUS.
- Oprogramowanie układowe odpowiada, że jego stan połączenia =
1i typ partnera łącznika =DFP.
Sterowniki w stosie funkcji USB odpowiadają na enumerację.
Rozszerzenie klasy menedżera łącznika USB rozpoznaje, że stos funkcji USB jest załadowany, więc system jest w nieprawidłowym stanie. Informuje sterownik UCSI, aby wysłał żądania „Set USB Operation Role” oraz „Set Power Direction Role” do oprogramowania układowego.
Sprzęt/oprogramowanie układowe USB Type-C inicjuje operację zamiany ról za pomocą programu DFP.
Wykrywanie stanu błędu niezgodności ładowarki
USB Type-C sprzęt/firmware wykrywa podłączenie ładowarki oraz negocjuje domyślny kontrakt zasilania. Zauważa również, że ładowarka nie zapewnia wystarczającej mocy dla systemu.
USB Type-C sprzęt/oprogramowanie układowe ustawia bit wolnego ładowania.
- Oprogramowanie układowe wysyła powiadomienie wskazujące zmianę łącznika.
- Sterownik UCSI wysyła żądanie GET_CONNECTOR_STATUS.
- Oprogramowanie układowe odpowiada stanem połączenia =
1, typ partnera łącznika =DFP, i stan ładowania baterii =Slow/Trickle.
Rozszerzenie klasy menedżera złącza USB wysyła powiadomienie do interfejsu użytkownika, aby wyświetlić komunikat o niezgodności ładowarki.
Jak przetestować UCSI
Istnieje wiele sposobów testowania implementacji UCSI. Aby przetestować poszczególne polecenia w implementacji UCSI BIOS/EC, użyj programu UCSIControl.exe, który jest dostarczany w pakiecie oprogramowania Microsoft USB Test Tool (MUTT). Aby przetestować kompletną implementację UCSI, należy użyć zarówno testów UCSI, które można znaleźć w zestawie Windows Hardware Lab Kit (HLK), jak i kroków w Type-C Ręczne procedury interoperacyjne.
UCSIControl.exe
Poszczególne polecenia można przetestować w implementacji BIOS/EC UCSI przy użyciu UCSIControl.exe. To narzędzie umożliwia wysyłanie poleceń UCSI do oprogramowania układowego za pośrednictwem sterownika UCSI. Wymaga to załadowania i uruchomienia sterownika. Masz również włączony interfejs testowy do sterownika. Domyślnie ten interfejs nie jest włączony, aby uniemożliwić dostęp do nieautoryzowanych użytkowników w systemie detalicznym.
Znajdź węzeł urządzenia w Menedżerze urządzeń (devmgmt.msc) o nazwie Menedżer złącza USB UCSI. Węzeł znajduje się w kategorii Kontrolery uniwersalnej magistrali szeregowej .
Wybierz i przytrzymaj lub kliknij prawym przyciskiem myszy urządzenie. Wybierz pozycję Właściwości i otwórz kartę Szczegóły .
Wybierz Ścieżka instancji urządzenia z menu rozwijanego i zapisz wartość właściwości.
Otwórz Edytor rejestru (regedit.exe).
Przejdź do ścieżki instancji urządzenia pod tym kluczem.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\<device-instance-path>\Device ParametersUtwórz wartość DWORD o nazwie TestInterfaceEnabled i ustaw wartość na 0x1.
Aby ponownie uruchomić urządzenie, w węźle urządzenia w Menedżerze urządzeń wybierz pozycję Wyłącz, a następnie wybierz pozycję Włącz. Alternatywnie można ponownie uruchomić komputer.
Pomoc można wyświetlić, uruchamiając UcsiControl.exe /?.
Oto typowe polecenia:
| Polecenie UCSI | UcsiControl.exe polecenie |
|---|---|
| Resetowanie aplikacji PPM | UcsiControl.exe Wyślij 0 1 |
| Resetowanie łącznika | Resetowanie nietrwałe: UcsiControl.exe Wyślij 0 10003 Twarde resetowanie: UcsiControl.exe Wyślij 0 810003 |
| Włącz powiadomienia | Wszystkie powiadomienia: UcsiControl.exe Wyślij 0 ffff0005 Tylko uzupełnianie poleceń: UcsiControl.exe Wyślij 0 00010005 Brak powiadomienia: UcsiControl.exe Wyślij 0 00000005 |
| Uzyskiwanie możliwości | UcsiControl.exe Wyślij 0 6 |
| Pobierz możliwości łącznika | UcsiControl.exe Wyślij 0 10007 |
| Ustaw UOM | DFP: UcsiControl.exe Wyślij 0 810008 UFP: UcsiControl.exe Wyślij 0 1010008 DRP: UcsiControl.exe Wyślij 0 2010008 |
| Ustaw UOR | DFP: UcsiControl.exe Wyślij 0 810009 UFP: UcsiControl.exe Wyślij 0 1010009 Zaakceptuj: UcsiControl.exe Wyślij 0 2010009 |
| Ustaw PDR | Dostawca: UcsiControl.exe Wysłać 0 81000B Odbiorca: UcsiControl.exe wyślij 0 101000B Zaakceptuj: UcsiControl.exe Wyślij 0 201000B |
| Pobierz PDO | Źródło lokalne: UcsiControl.exe Send 7 00010010 Ujście lokalne: UcsiControl.exe Wyślij 3 00010010 Zdalne źródło: UcsiControl.exe wyślij 7 00810010 Zdalny odbiornik: UcsiControl.exe Wyślij 3 00810010 |
| Uzyskiwanie stanu łącznika | UcsiControl.exe Wyślij 0 010012 |
| Pobierz stan błędu | UcsiControl.exe Wyślij 0 13 |