Die Voraussetzungen für Plug and Play

Die Voraussetzungen für Plug and Play

Mithilfe von Plug and Play können wir eine Hardwarekomponente in einem System entdecken, ohne dass eine physische Konfiguration oder ein Benutzereingriff zur Lösung von Ressourcenkonflikten erforderlich ist.

Ich frage mich jedoch: Gibt es spezielle Anforderungen an die Hardware und/oder Software, damit Plug and Play funktioniert? Nehmen wir USB als Beispiel: Gibt es Anforderungen an USB-Speichersticks oder USB-Festplatten, damit die Standardtreiber von Microsoft verwendet werden können?

Antwort1

„Plug and Play“ ist ein Windows-spezifischer Begriff, der ursprünglich die Methode bezeichnete, mit der später ISA- und später PCI-Geräte dem Betriebssystem erlaubten, die von ihnen verbrauchten Ressourcen auszuwählen. Das BIOS konnte dies auch für DOS tun oder es ganz Windows überlassen.

Ressourcen sind A) Speicheradressen, B) I/O-Adressen, C) IRQs und/oder D) DMA-Kanäle. Jede, mehrere oder alle davon können von einem Gerät zur Kommunikation mit der CPU verwendet werden.

Ursprünglich war ein „Plug and Play“-Treiber ein Treiber, der die Initialisierung des Geräts verstand, d. h. es so konfigurierte, dass es Ressourcen nutzte, die von keinem anderen Gerät verwendet wurden.

Ein weiterer wichtiger Aspekt von Plug and Play ist eine Standardmethode zur Selbstidentifizierung eines Geräts. PCI (und möglicherweise ISAPNP) sorgt dafür, dass jedes Gerät eine eindeutige Hersteller- und Geräte-ID hat. Dies wurde auf USB übertragen. So kann das Host-Betriebssystem herausfinden, „was“ das Gerät ist, und den richtigen Treiber laden.

Wenn wir uns nun mit Geräten befassen, die als „Hot-Plug-Geräte“ konzipiert sind, ist das etwas anders, aber offensichtlich wird der Begriff „Plug and Play“ immer noch verwendet, um sie zu beschreiben. Die meisten Hot-Plug-Geräte werden von einem nicht Hot-Plug-fähigen Gerät „gehostet“. USB-Geräte werden von einem USB-Controller „gehostet“, der selbst ein PCI-Gerät ist, das eine oder mehrere Ressourcen verbraucht, die normalerweise über Plug and Play zugewiesen werden. Die Kommunikation mit Geräten über den USB-Bus erfolgt „durch“ den USB-Controller. Eine ähnliche Situation besteht für SCSI-, IDE- und SATA-Geräte.

Damit Hot-Plug-Fähigkeit funktioniert, muss der Treiber für den „Host“-Controller einen Mechanismus haben, der den Treibern, die „über“ ihm liegende Geräte repräsentieren, mitteilt, was vor sich geht. Ein USB-Controller-Treiber muss also einen Weg haben, einem USB-Massenspeichertreiber mitzuteilen, dass das Gerät getrennt wurde. Der „obere“ Treiber muss über Code verfügen, der sauber beendet werden kann, wenn er entfernt werden soll, anstatt zu erwarten, dass er bis zum Neustart resident bleibt.

Für die meisten Bustypen wie USB, SCSI oder SATA gelten Standards, die von den Treibern erkannt und implementiert werden müssen.

Auf Hardwareebene sind die meisten Hot-Plug-fähigen Geräte so konzipiert, dass ein Teil des Steckers statische Elektrizität abgibt und die Pins, die Strom übertragen, einen Bruchteil einer Sekunde vor den Pins, die Daten übertragen, verbunden werden. Schauen Sie sich die Pins der USB- und SATA-Anschlüsse genau an. Aus diesem Grund sind einige länger als andere. IDE-Anschlüsse tun dies NICHT und sind NICHT für Hotplugging geeignet.

Antwort2

Die ganze Plug & Play-„Magie“ hat – soweit ich weiß – nur zwei wesentliche Kernteile:

  • Die Software muss in der Lage sein, den Anschluss neuer Hardware zu erkennen (beispielsweise als Teil des USB-Standards).
  • Die Hardware kann identifiziert werden. Mittels einer speziellen Abfrage (ohne Verwendung herstellerspezifischer Treiber) kann eine eindeutige ID (normalerweise bestehend aus Hersteller-ID und Geräte-/Hardware-ID) abgerufen werden. Das Betriebssystem kann diese verwenden, um die spezifische Hardware zu identifizieren und die richtigen Treiber zu installieren, ohne den Benutzer vorher zu fragen.
  • (Optional:) Die Hardware und Software (Treiber) sollten im Idealfall funktionieren, ohne dass ein Neustart erforderlich ist.

Um mit den bereitgestellten Standardtreibern zu arbeiten, muss die Hardware die richtigen Reaktionen auf gesendete Befehle implementieren (d. h. die Hardware muss die richtige "Sprache" sprechen). Je nach Art der Hardware ist dies normalerweise standardisiert (z. B.USB-Massenspeichergeräte).

verwandte Informationen