Ta fram dubbelrollskontrollern för ett USB-Type-C-Windows-system

Sammanfattning

  • OEM tar upp uppgifter för en styrenhet med dubbla roller som har en USB-Type-C-anslutning

Gäller för

  • Windows 10 Mobile

Viktiga API:er

USB-rollväxeldrivrutiner (URS) är en uppsättning WDF-klasstillägg och klientdrivrutin som hanterar rollväxlingsfunktionen för en tvårollskontroller. Om systemet har en dubbel rollkontrollant kan du växla systemets roll beroende på vilken enhet som är ansluten till partnerporten för USB-Type-C-anslutningsappen i systemet. Detta möjliggör intressanta scenarier som kabelansluten dockning.

System kan utformas så att USB-styrenheten med dubbla roller behöver Windows för att konfigurera den till värd- eller funktionsläge. De här designerna använder USB-rollväxlingsstacken. Om systemet inte använder en dubbla rollkontroller från Synopsys eller ChipIdea måste du skriva en klientdrivrutin för USB-rollväxling för systemets dubbla rollkontroller.

Anmärkning

System kan utformas så att USB-porten med dubbla roller behöver Windows för att konfigurera den till värd- eller funktionsläge. De här designerna använder USB-rollväxlingsstacken. Om systemet inte använder en Dubbel rollkontrollant för Synopsys måste du skriva en USB-rollväxelklientdrivrutin för systemets dubbla rollstyrenhet.

Klientdrivrutinen hanterar maskinvaruhändelser och rapporterar dem till klasstillägget. Vid maskinvaruhändelser för rollväxling bestämmer URS rollen och läser därför in drivrutinerna för den rollen. Om styrenheten är i värdrollen läses USB-drivrutinerna på värdsidan in. för funktionsrollen läses drivrutinerna på enhetssidan in.

På system med USB micro-AB-kontakter fattar klientdrivrutinen för dubbelrollskontrollern det beslutet baserat på ID-stiftet i kontakten via avbrottsresurser som tilldelats den. På system med USB-Type-C-anslutningsappar fattas det här beslutet av klientdrivrutinen för anslutningsappen. Drivrutinen avgör rollen baserat på CC-stiften och rapporterar resultatet till USB Connector Manager (UCM), som sedan skickar resultatet till rollbytesdrivrutinerna.

USB rollomkopplardrivrutiner.

1. Aktivera URS-drivrutinen i system ACPI

För att kunna använda URS måste du göra ACPI-ändringar. Ersätt enheten där USB-drivrutinerna på enhetens sida läses in med en enhet där URS måste läsas in. Mer information om hur du ändrar ACPI-definition finns i exemplet i STACK-arkitekturen för USB-drivrutin med dubbla roller. Se till att du tar bort avbrottsresursen. Detta krävs inte för USB Type-C.

2. Läs in USB-rollväxeldrivrutinerna för styrenheten med dubbla roller

USB roll switch stack.

  • Om systemet använder ChipIdea- och Synopsys-styrenheter läser du in Microsofts inbyggda klientdrivrutiner för ChipIdea- och Synopsys-styrenheter.

    För att läsa in drivrutinen måste du skapa ett installationspaket för drivrutinen. INF-filen måste ha direktivet Include-Needs som refererar till in-box INF för de styrenheter som stöds. In-box INF innehåller redan maskinvaru-ID:n för andra styrenheter. Det här steget krävs om din styrenhet med dubbel roll inte har ett maskinvaru-ID som finns i standard INF-drivrutinsfilen. Kontakta soc-leverantören.

    Mer information finns i "URS-drivrutinspaket" under Installationspaket för drivrutin.

  • Om systemet använder en anpassad styrenhet skriver du en rollväxelklientdrivrutin. Mer information finns i:

    Programmeringsreferens för USB-kontroller med dubbla roller