Wykrywanie urządzeń Plug and Play

 

Architektura Plug and Play jest kombinacją systemowego BIOS, urządzeń sprzętowych,

zasobów systemu, sterowników urządzeń i oprogramowania systemu operacyjnego.

Kombinacja ta umożliwia dynamiczną, zautomatyzowaną instalację oraz konfigurację

nowych komponentów sprzętu i urządzeń Plug and Play. Więcej informacji o implementacji

Plug and Play stosowanej w systemie Windows 2000 znajduje się w rozdziale „Zarządzanie urządzeniami”.

*

BIOS systemowy

Podstawowy system wejścia/wyjścia (BIOS) dostarcza zbioru podstawowych instrukcji

do uruchomienia komputera. BIOS wykonuje wszystkie zadania potrzebne przy uruchamianiu,

w tym testy POST oraz uruchomienie systemu operacyjnego z dyskietki lub dysku twardego.

BIOS korzysta z biblioteki procedur obsługujących przerwania w celu udostępnienia systemowi

operacyjnemu interfejsu do bazowego sprzętu. Na przykład po każdym naciśnięciu klawisza

CPU wykonuje przerwanie w celu odczytania klawisza. Sytuacja jest podobna w przypadku

innych urządzeń I/O, takich jak porty seryjne i równoległe, karty wideo i dźwiękowe, kontrolery

dysków twardych itd. Niektóre stare komputery są niekompatybilne z nowoczesnym sprzętem

z powodu braku odpowiedniej procedury BIOS. Problem ten można rozwiązać poprzez

wymianę BIOS lub instalację sterownika danego urządzenia.

Sposób interakcji BIOS z urządzeniami Plug and Play zależy od tego, który komponent – systemowy

BIOS czy system operacyjny – jest odpowiedzialny za konfigurację urządzenia. Istnieją trzy możliwości:

BIOS steruje tylko urządzeniami początkowego załadowania/rozruchu

Urządzenia początkowego załadowania programu (IPL) są potrzebne do uruchomienia systemu.

Mogą one być wbudowane w płytę systemową lub w urządzenia dodatkowe.

W tym przypadku możliwa jest także dynamiczna konfiguracja, czyli instalacja urządzenia

nierozruchowego (na przykład karty PCMCIA) bez wyłączania komputera. Po każdym uruchomieniu

dynamicznie konfigurowanego systemu urządzenia zostają ponownie zbadane. Teoretycznie,

po restarcie przydział zasobów może zostać zmieniony w przypadku wykrycia dodanych lub usuniętych urządzeń.

BIOS konfiguruje wszystkie urządzenia

Jeśli opcję Włącz system operacyjny Plug and Play wyłączono i konfiguracja urządzenia jest statyczna,

to usunięcie urządzenia wymaga wyłączenia systemu. Usunięcie prawie każdego urządzenia wymaga

wyłączenia systemu, z wyjątkiem urządzeń zewnętrznych portów i typów szyn naturalnie

wspieranych przez Plug and Play, takich jak szyna USB i IEEE 1394.

BIOS nie konfiguruje żadnych urządzeń

W interfejsie ACPI w Windows 98 i Windows 2000 system operacyjny konfiguruje prawie wszystkie urządzenia,

z wyjątkiem urządzeń służących do uruchomienia systemu operacyjnego i typów szyn, które same wykonują konfigurację,

takich jak PCI, USB i IEEE 1394.

 

Zasoby systemowe

Zasobami systemowymi są BIOS, linie żądania przerwania (IRQ), bezpośredni dostęp do pamięci (DMA),

adresy portów I/O oraz pamięć zarezerwowana. Zasoby te umożliwiają bezkonfliktowy dostęp różnych komponentów

sprzętu do CPU. Przed wprowadzeniem technologii Plug and Play konieczna była ręczna konfiguracja każdego zasobu.

Menedżer Plug and Play przydziela zasoby urządzeniom. Przydział może zostać zmieniony, na przykład

w przypadku dodania nowego urządzenia. Wspierane jest także wykrywanie i konfigurowanie architektury

ISA innej niż Plug and Play. Linie IRQ są kanałami lub przełącznikami używanymi przez urządzenia do przesyłania

sygnałów do CPU. W tradycyjnej architekturze istnieje 16 linii IRQ. Niektóre są wykorzystane przez urządzenia

wewnętrzne, takie jak zegar systemowy, klawiatura i mysz, a pozostałe mogą być używane przez dodatkowe karty rozszerzenia.

Gdy wszystkie linie IRQ są już przydzielone, urządzenia mogą zacząć wspólnie używać linii. Istnieją także metody

nie wymagające IRQ. Niektóre nowe typy szyn, takie jak USB i IEEE 1394, wymagają co najmniej jednej linii IRQ

dla kontrolera szyny, ponieważ są one dostępne poprzez szynę PCI. W systemach ACPI, domyślnie, wszystkie

urządzenia PCI mogą wspólnie używać IRQ 9. Większość problemów wynikających ze wspólnego wykorzystania

linii IRQ wiąże się z szerokością pasma. Wspólnie wykorzystywane linie IRQ umieszczane są przez system w stosie

zarządzanym według systemu FIFO (pierwsze weszło, pierwsze wyszło). Im większy stopień wspólnego wykorzystania,

tym dłużej linie pozostają w stosie i tym bardziej prawdopodobne jest przekroczenie limitu czasu lub wystąpienie innych problemów.

Adres portu I/O

Po przekazie sygnału z urządzenia do CPU przez IRQ, urządzenie przesyła informacje do CPU przez pamięć. Adres portu

I/O jest obszarem pamięci zarezerwowanym dla informacji przekazywanych z urządzenia do sterownika, który przekazuje

je do CPU. Nie są to liniowe obszary pamięci, lecz liczbowe wskazówki lub reprezentacje fizycznych obszarów pamięci.

Na każdym urządzeniu istnieje chip ROM przechowujący zbiór deskryptorów w postaci rejestrów sprzętu lub w postaci

obszaru pamięci konfiguracyjnej na szynie PCI. Adresy portu I/O pełnią rolę „soczewki” izolującej jeden rejestr od drugiego.

Aktualnie systemy posiadają 65 535 takich portów, ale porty te (tak jak linie IRQ) są zarezerwowane dla określonych urządzeń.

Porty I/O mogą być posegregowane według typu szyny (część adresów I/O przeznaczona jest dla PCI, a inne dla ISA).

DMA

Kanały bezpośredniego dostępu do pamięci (DMA) umożliwiają urządzeniom dostęp do pamięci fizycznej z ominięciem CPU.

Zazwyczaj istnieje osiem kanałów DMA – część jest zarezerwowana dla istniejących urządzeń, a około pięciu dostępnych jest

urządzeniom dodatkowym. Wyjątkiem jest szyna PCI, w której kanały DMA zastąpione są przez system mastering.

Wykrywanie urządzeń typu Plug and Play

Proces wykrywania urządzeń typu Plug and Play w systemie Windows 2000 przebiega podobnie jak w Windows 98.

Po uruchomieniu Windows 2000 Professional następuje identyfikacja każdego urządzenia połączonego z komputerem.

Urządzenia nie służące do uruchomienia komputera są aktywowane dopiero po uruchomieniu systemu operacyjnego.

Po identyfikacji urządzeń system Plug and Play określa zasoby systemowe potrzebne każdemu urządzeniu, zapisuje

konfigurację w pamięci i przydziela zasoby urządzeniom. Następnie Plug and Play identyfikuje i ładuje odpowiednie sterowniki.

Plug and Play stanowi interfejs pomiędzy systemem a sterownikami, obejmujący procedury I/O, pakiety żądania przerwania

(IRP), punkty wejścia sterowników oraz rejestr. Oprócz tego Plug and Play obsługuje zdarzenia związane z zarządzaniem

zasilaniem lub wykrywaniem sprzętu, na przykład usunięcie komputera mobilnego ze stacji dokowania lub dodanie albo

usunięcie urządzenia sprzętowego. Plug and Play umożliwia aplikacjom obsługę niektórych zdarzeń.

Więcej informacji o urządzeniach typu Plug and Play znajduje się w rozdziale „Zarządzanie urządzeniami”.

Budowanie drzewa urządzeń

Drzewo urządzeń zawiera informacje o połączonych z systemem urządzeniach.

Drzewo zostaje utworzone przez system operacyjny na podstawie informacji otrzymanych od

sterowników i innych komponentów i jest aktualizowane w przypadku dodania lub usunięcia urządzeń.

Drzewo urządzeń jest hierarchiczne – urządzenia usytuowane na szynie reprezentowane są jako

podkomponenty jej adaptera lub kontrolera. Aby zobaczyć tę hierarchię, należy wybrać

Urządzenia według połączeń z menu Widok w Menedżerze urządzeń.

Struktura drzewa urządzeń przedstawiona jest na rysunku.

Rysunek 6.1 Struktura drzewa urządzeń

Rysunek - Struktura drzewa urządzeń

Każdy węzeł drzewa urządzeń składa się z obiektów urządzenia dla sterowników oraz informacji

wewnętrznych utrzymywanych przez system operacyjny.

Hierarchia drzewa urządzeń odzwierciedla system połączeń pomiędzy urządzeniami a komputerem.

System operacyjny wykorzystuje tę hierarchię do zarządzania urządzeniami. Na przykład, jeśli użytkownik

komputera pokazanego na rysunku zażąda odłączenia kontrolera USB, to Menedżer Plug and Play nakaże

sterownikom tego kontrolera usunąć kontroler oraz zażąda od sterowników informacji dotyczących

ewentualnych urządzeń zależnych. W tym przypadku Menedżer Plug and Play ustali, że usunięcie

tego kontrolera spowoduje odłączenie koncentratora USB, joysticka i aparatu fotograficznego.

Wykrywanie urządzeń typu Plug and Play w systemach nie-ACPI

Przed instalacją systemu Windows 2000 na systemie innym niż ACPI należy wyłączyć opcję

System operacyjny Plug and Play w systemowym BIOS.

Po uruchomieniu komputera nie-ACPI Plug and Play zostaje skonfigurowany nie przez system operacyjny,

lecz przez systemowy BIOS. BIOS wykonuje następujące zadania:

1.

Izolacja ewentualnych urządzeń ISA Plug and Play do konfigurowania.

2.

Utworzenie mapy przydziału zasobów dotyczącej zasobów wykorzystanych przez urządzenia inne niż Plug and Play.

3.

Opcjonalnie, zapisanie poprzedniej konfiguracji zasobów na dysku lub w pamięci.

4.

Wybór i włączenie urządzeń wejściowych i wyjściowych potrzebnych podczas procesu uruchamiania.

5.

Inicjacja ROM urządzeń startowych.

6.

Przydział bezkonfliktowych zasobów urządzeniom, których jeszcze nie skonfigurowano.

7.

Aktywizacja wszystkich urządzeń.

8.

Inicjacja ewentualnych opcjonalnych ROM.

9.

Uruchomienie programu początkowego ładowania.

Plug and Play wymaga możliwości izolacji pojedynczych kart do konfigurowania. Karty PCI są izolowane

przez samą architekturę PCI. Ponieważ początkowa specyfikacja ISA nie określała metody izolacji kart,

zadania te mogą być wykonywane przez system operacyjny lub przez systemowy BIOS.

W przypadku architektury ACPI proces wykrywania jest prawie identyczny, ale za wykrywanie

i konfigurację urządzeń jest odpowiedzialny system operacyjny, a nie BIOS.

Wykrywanie urządzeń typu Plug and Play w systemach ACPI

ACPI łączy i udoskonala Plug and Play oraz zarządzanie zasilaniem. Na komputerze ACPI Plug and Play

zostaje skonfigurowany przez system operacyjny, nie przez systemowy BIOS.

W poniższym przykładzie użytkownik instaluje joystick typu USB Plug and Play w koncentratorze USB

na kontrolerze USB. Koncentrator USB jest urządzeniem szyny Plug and Play (możliwe jest dołączenie

do niego innych urządzeń). W tym przykładzie sterownik funkcji USB zostaje zawiadomiony o zmianie

podkomponentów. System operacyjny wykonuje poniżej opisane zadania:

1.

Sterownik funkcji urządzenia ustala, że istnieje nowe urządzenie na jego szynie.

2.

Sterownik zawiadamia Menedżera Plug and Play o zmianie.

3.

Menedżer Plug and Play żąda od sterowników szyny informacji o bieżącym drzewie urządzeń.

4.

Menedżer Plug and Play wysyła pakiet żądania przerwania (IRP) do stosu urządzeń szyny, żądając

aktualnej listy urządzeń znajdujących się na szynie.

5.

Po wykonaniu pakietu IRP przez główny sterownik koncentratora USB (para sterowników klasy/miniklasy

kontrolera hosta USB) pakiet wraca przez stos urządzeń za pomocą ewentualnych procedur końcowych

zarejestrowanych przez sterowniki koncentratora.

Po otrzymaniu przez Menedżera Plug and Play aktualnej listy urządzeń Menedżer ustala, czy urządzenia

dodano lub usunięto z szyny. W tym przykładzie istnieje jedno nowe urządzenie, a jedynym sterownikiem

skonfigurowanym odpowiednio dla joysticka jest główny sterownik koncentratora USB.

W stosie urządzeń znajdują się także ewentualne opcjonalne sterowniki filtrów szyny.

6.

Menedżer Plug and Play zbiera informacje o nowym urządzeniu i rozpoczyna jego konfigurowanie.

7.

Menedżer Plug and Play sprawdza w rejestrze, czy dane urządzenie było już wcześniej zainstalowane na komputerze.

8.

Menedżer Plug and Play przechowuje informacje o urządzeniu w rejestrze.

9.

Menedżer Plug and Play w trybie jądra poszukuje i ewentualnie ładuje odpowiednie sterowniki funkcji i filtrów.

10.

Menedżer Plug and Play przydziela urządzeniu potrzebne zasoby oraz wysyła pakiet IRP w celu uruchomienia urządzenia.