Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
I det här avsnittet beskrivs hur du skriver en drivrutin för en enkel SPB-styrenhet ( kringutrustningsbuss ) eller för en kringutrustningsenhet som är ansluten till en SPB. SPB-kategorin inkluderar bussar som I²C och SPI. Maskinvaruleverantören för en SPB-styrenhet tillhandahåller en SPB-styrenhetsdrivrutin för att hantera maskinvarufunktionerna i styrenheten. Den här drivrutinen kan ha stöd för en familj med liknande kontrollantenheter. Maskinvaruleverantören för en SPB-ansluten kringutrustningsenhet tillhandahåller en SPB-kringutrustningsdrivrutin för att hantera maskinvarufunktionerna i kringutrustningen. Den här drivrutinen kan ha stöd för en familj av kringutrustning på en mängd olika maskinvaruplattformar som tillhandahåller kompatibla SPB:er.
I versioner av Windows före Windows 8 fick operativsystemet information från SPB-anslutna enheter på ett pc-moderkort endast indirekt via plattformens inbyggda programvara. Från och med Windows 8 kan maskinvaruleverantörer tillhandahålla Windows-drivrutiner för att direkt styra sina SPB-styrenheter och deras SPB-anslutna kringutrustning och för att göra dessa enheter tillgängliga för användning av operativsystemet och av program. Mer information finns i SPB-styrenhetsdrivrutiner och SPB-kringutrustningsdrivrutiner.
SPBs används ofta för att ansluta låg hastighet kringutrustning till moderkort chipsets och System on a Chip (SoC) moduler. En integrerad krets kräver färre stift för att ansluta till en seriebuss än till en parallell buss, som överför flera bitar data per klockcykel. Normalt används SPB:er i kostnadskänsliga program där lågt antal pin-koder och enkla anslutningar är viktigare än dataöverföringshastigheten. Eftersom SPB:er körs i låga hastigheter och kräver få elektriska anslutningar, används de ofta i program där batterikraften måste sparas.
Pc-moderkortet i en bärbar dator kan till exempel använda en I²C-buss för att kommunicera med en låg hastighetsenhet som övervakar batterinivån. På samma sätt kan SoC-modulen i en smart telefon eller annan mobil enhet använda en I²C-buss för att ansluta till en sensorenhet, till exempel en accelerometer, en GPS-enhet eller en temperatursensor.
En SPB är inte en Plug and Play-buss. Kringutrustning har vanligtvis fasta anslutningar till en SPB och kan inte tas bort. Även om en periferienhet kan kopplas från ett fack på en SPB, är facket vanligtvis avsett för denna enhet. Under systemstarten räknar ACPI-inbyggda programvara i maskinvaruplattformen upp de SPB-anslutna kringutrustningsenheterna för Plug and Play-hanteraren och anger de maskinvaruresurser som är dedikerade till varje enhet.
I de här resurserna ingår ett anslutnings-ID som identifierar enhetens anslutning till SPB. Anslutnings-ID:t kapslar in informationen (till exempel en bussadress och en frekvens för bussklocka) som en SPB-styrenhet kräver för att upprätta en anslutning till enheten. Andra maskinvaruresurser kan innehålla ett avbrott som drivrutinen ansluter sin ISR till. Maskinvaruresurserna för enheten innehåller dock inte minne för enhetsregister. En SPB-ansluten kringutrustningsenhet är inte minnesmappad och kan endast nås via SPB. Mer information finns i Anslutnings-ID för SPB-Connected kringutrustning.
En SPB tillhandahåller inget bussspecifikt sätt att förmedla avbrottsbegäranden från kringutrustning till processorn. I stället signalerar en SPB-ansluten kringutrustning ett avbrott via en separat maskinvarusökväg som ligger utanför både SPB och SPB-styrenheten. Avbrottstjänstens rutin (ISR) för en SPB-ansluten kringutrustning måste köras på IRQL = PASSIVE_LEVEL så att den synkront kan skicka I/O-begäranden för att seriellt komma åt enhetens maskinvaruregister via SPB. Mer information finns i Avbrott från SPB-Connected kringutrustningsenheter.