Udostępnij przez


Omówienie sterowników kontrolerów SPB

Kontroler SPB to urządzenie, które kontroluje prostą magistralę peryferyjną (SPB) i przesyła dane do i z urządzeń peryferyjnych podłączonych do spB. Dostawca sprzętu kontrolera SPB udostępnia sterownik kontrolera SPB do zarządzania funkcjami sprzętowymi w kontrolerze.

Począwszy od systemu Windows 8, rozszerzenie struktury SPB (SpbCx) upraszcza opracowywanie sterowników kontrolerów dla prostych magistrali peryferyjnych (SPB). SpbCx to rozszerzenie dostarczane przez system do Kernel-Mode Driver Framework (KMDF). Dostawca sprzętu dla urządzenia kontrolera SPB dostarcza sterownik kontrolera do wykonywania wszystkich operacji sterowników specyficznych dla sprzętu. Ten sterownik komunikuje się z komponentem SpbCx w celu wykonywania operacji specyficznych dla kontrolerów SPB i komunikuje się bezpośrednio z platformą KMDF w celu wykonywania ogólnych operacji sterowników.

Na przykład sterownik kontrolera SPB zwykle wywołuje metodę WdfDeviceInitSetPnpPowerEventCallbacks we frameworku KMDF, aby zarejestrować się do odbierania wywołań zwrotnych zdarzeń zasilania, i wywołuje metodę WdfInterruptCreate w celu połączenia rutyny obsługi przerwania sterownika (ISR) z przerwaniem z kontrolera SPB. Aby wykonać operacje specyficzne dla SPB, kontroler SPB komunikuje się z SpbCx za pośrednictwem interfejsu sterowników urządzeń (DDI).

SpbCx współpracuje ze sterownikiem kontrolera SBP w celu obsługi żądań I/O dla urządzeń peryferyjnych podłączonych do SPB. SpbCx wykonuje zadania przetwarzania, które są wspólne dla sterowników kontrolera SPB. Te zadania obejmują zarządzanie kolejkami żądań we/wy dla kontrolera SPB. Te kolejki zawierają żądania wejścia/wyjścia od sterowników zarządzających urządzeniami peryferyjnymi podłączonymi do magistrali. Sterownik kontrolera SPB wykonuje wszystkie operacje specyficzne dla sprzętu, które są wymagane do obsługi tych żądań.

Na poniższym diagramie przedstawiono sterownik kontrolera SPB i SpbCx.

diagram blokowy składników spb.

Sterownik SPB i SpbCx działają w trybie jądra i komunikują się ze sobą za pośrednictwem interfejsu DDI SpbCx. Sterownik kontrolera SPB wywołuje metody obsługi sterowników, które są implementowane przez spbCx. SpbCx wywołuje funkcje wywołania zwrotnego zdarzeń implementowane przez sterownik kontrolera SPB.

Sterowniki wysyłające żądania we/wy do kontrolera SPB są sterownikami trybu jądra korzystającymi z Kernel-Mode Driver Framework (KMDF) lub sterowników trybu użytkownika korzystających z User-Mode Driver Framework (UMDF). Te sterowniki mogą wysyłać żądania odczytu i zapisu w celu transferu danych do i z urządzeń peryferyjnych połączonych z usługą SPB. Ponadto sterowniki mogą wysyłać żądania kontroli wejścia/wyjścia (IOCTL) do wykonywania operacji specyficznych dla SPB.

Sterownik kontrolera SPB uzyskuje bezpośredni dostęp do rejestrów sprzętowych urządzenia kontrolera SPB w celu zainicjowania transferów danych do i z urządzeń peryferyjnych podłączonych do spB. W przypadku usługi SPB, takiej jak I2C, te transfery danych odbywają się z stosunkowo niskimi prędkościami. Mimo że rejestry sprzętowe kontrolera SPB mogą być zmapowane w pamięci, rejestry urządzeń peryferyjnych muszą być odczytywane szeregowo przez SPB.

W odpowiedzi na żądanie we/wy dotyczące transferu danych do lub z urządzenia peryferyjnego podłączonego do magistrali SPB, sterownik kontrolera SPB inicjuje transfer, oznacza żądanie we/wy jako oczekujące i zwraca wynik bez oczekiwania na zakończenie transferu. Później, gdy sprzęt kontrolera SPB zakończy transfer, kontroler sygnalizuje przerwanie, a ISR w sterowniku kontrolera SPB albo kończy oczekujące żądanie we/wy, albo rozpoczyna następny transfer w ramach żądanej operacji we/wy.

Tylko sterowniki mogą wysyłać żądania we/wy bezpośrednio do kontrolera SPB. Gdy aplikacja w trybie użytkownika przesyła dane do lub z urządzenia peryferyjnego połączonego przez SPB, musi polegać na sterowniku urządzenia peryferyjnego obsługującym SPB w celu wysyłania odpowiednich żądań odczytu lub zapisu do kontrolera SPB.