-
Die Erfindung betrifft ein Verfahren
und ein System zur Anbindung von Baugruppen an ein insbesondere
nach den Peripheral-Component-Interconnection-Standard arbeitenden
Bussystem (PCI-Bus).
-
Mit der Entwicklung leistungsfähiger Peripheriebaugruppen
(Grafikkarten, Soundkarten, Netzwerkkarten usw.) entstand Ende der
80er Jahre ein Bedarf nach einem leistungsfähigen Bussystem zur Anbindung
von Hardwarebaugruppen an einen Personalcomputer (PC). Die ersten
Bussysteme, wie zum Beispiel der ISA-Bus (Industry Standard Architecture)
oder der VL-Bus (Vesa Local), zeichneten sich durch eine geringe
Performance aus, da durch die direkte Verbindung der Peripheriebaugruppen
mit der Prozessoreinheit (CPU) über
den Bus die Leistungsfähigkeit
der Prozessoreinheit deutlich eingeschränkt wurde.
-
Mit der Entwicklung des Peripheral-Component-Interconnection-Standards
(PCI) durch Intel im Jahre 1991 gelang es, diesen Schwachpunkt zu
beseitigen. Die Peripheriebaugruppen haben zwar über den PCI-Bus Zugriff auf
den Systemspeicher, werden aber über
die Busanschaltung (Bus Bridge) vom Systembus, der die Prozessoreinheit
(CPU) mit dem Systemspeicher verbindet, getrennt. Somit ist es möglich, über den
PCI-Bus eine deutlich höhere
Anzahl an Peripheriebaugruppen als beim ISA- bzw. VL-Bus in den
Personalcomputer zu integrieren, ohne damit das Leistungsverhalten
der CPU zu mindern. Der PCI-Bus erlangte aber erst 1995 mit der Entwicklung
des Betriebssystems Windows95 und der in Windows95 realisierten "Plug & Play"-Technologie seinen
vollen Durchbruch. Mit der "Plug & Play"-Technologie kann
ohne erneutes Rücksetzen und
Hochfahren (Booten) des gesamten Personalcomputers eine neue Baugruppe
in einem dafür
vorgesehenen Steckplatz gesteckt werden und im laufenden Betrieb
des PCs initialisiert und konfiguriert und somit in den laufenden
Betrieb des PCs integriert werden.
-
Das Anwendungsspektrum des PCI-Buses ist
weit reichend. Der PCI-Bus ist insbesondere bei Echtzeitanwendungen
mit einer Vielzahl von Peripheriebaugruppen inzwischen weit verbreitet,
wie sie in den Bereichen Meß-,
Steuer- und Regelungstechnik, Medizintechnik und Nachrichtentechnik
anzutreffen sind. Auch der in der
DE 101 24 372 A1 dargestellte Signalgenerator
zur Erzeugung eines digitalen Basisbandsignals mittels einer Basisbandeinheit
enthält
einen Steuer-Bus, der vorzugsweise als PCI-Bus ausgebildet werden
kann. In diesem Signalgenerator sind unterschiedlichste Baugruppen,
wie zum Beispiel Modulatoren, Fading- und Rausch-Einheiten, über einen
PCI-Bus zum Datenaustausch – Parametrierung
und Konfigurierung der Baugruppen, Visualisierung der Baugruppensignale – mit einer
Hauptrechner-Einheit verbunden.
-
Die Anbindung der einzelnen Baugruppen
an den PCI-Bus erfolgt über
so genannte Busschnittstellen (Bus-Interface), die im allgemeinen
aus feldprogrammierbaren Gatterschaltungen (FPGA) realisiert sind.
Die Programmierung dieser FPGAs erfolgt über Konfigurationsspeicher,
in denen Daten über
die Schaltungskonfiguration des FPGAs abgespeichert sind. Wie in
der
DE 100 34 405
A1 dargestellt, wird das FPGA dazu unter Zwischenschaltung
eines Multiplexers mit dem die Konfigurationsdaten enthaltenden
EE-PROM verbunden. Nach Auslesen der Konfigurationsdaten aus einer
Speichervorrichtung des Computers und Einprogrammieren dieser Konfigurationsdaten
in das EE-PROM erfolgt in einem zweiten Schritt die Konfiguration
des FPGAs mit den im EE-PROM abgespeicherten Konfigurationsdaten.
-
Aufgrund der Vielzahl an Baugruppen
steigt der schaltungstechnische Aufwand zur Anbindung dieser Baugruppen
an dem PCI-Bus nicht unerheblich. Einsparungen an hardware-technischen
Aufwand diesbezüglich
ist folglich das Ziel bei der Entwicklung eines derartigen Signalgenerators.
Kosteneinsparungen im Bereich der Busschnittstellen werden im allgemeinen
nicht zielführend
sein, da Busschnittstellen unabdingbar für die kontinuierliche Anbindung
von Peripheriebaugruppen an ein Bussystem sind. Realistischere Kosteneinsparungspotenziale
sind vielmehr in den für
die Konfigurierung der programmierbaren Bus-Interface notwendigen
Konfigurationsspeicher zu sehen, da diese im Gegensatz zu den Busschnittstellen
nur in der Phase die Initialisierung benötigt werden und im laufenden
Betrieb des Bussystems ohne Bedeutung sind. Hinzukommt, dass derartige
Konfigurationsspeicher wie auch in der
DE 100 34 405 A1 aus vergleichsweise
teuren programmier- und löschbaren
Speicherbausteinen (EE-PROM) aufgebaut werden und somit die aufzuwendenden
Hardware-Kosten
deutlich erhöhen.
-
Der Erfindung liegt also die Aufgabe
zugrunde, ein Verfahren und ein System zu schaffen, das zur Anbindung
einer Baugruppe an einen insbesondere nach dem Peripheral-Component-Interconnection-Standard
(PCI) arbeitenden Bussystem eine aufwandsarme Lösung zur Initialisierung und
Konfigurierung der programmierbaren Busschnittstellen realisiert.
Um eine erhöhte
Flexibilität
hinsichtlich Veränderungen
in der Systemsoftware (aktualisierte Versionsstände der Firmware der Baugruppen
und der Busverwaltungssoftware etc.) aufrechtzuerhalten, ist darüber hinaus
eine jederzeit umprogrammierbare Lösung anzustreben.
-
Die Aufgabe wird hinsichtlich des
Verfahrens durch die Merkmale des Anspruchs 1 und hinsichtlich des
Systems durch die Merkmale des Anspruchs 7 gelöst.
-
Wie oben schon erwähnt, stellt
die Lösung des
Stands der Technik, bei dem in jedem Bus-Interface auf einer zum
PCI-Bus gehörigen Baugruppe
jeweils ein als Konfigurationsspeicher dienendes EE-PROM vorgesehenen
ist, eine vergleichsweise teure Lösung dar. Auch die Speicherung
der Konfigurationsdaten auf einer mit dem PCI-Bus verbundenen kostengünstigen
Massenspeichereinheit, wie beispielsweise auf einer Festplatte,
scheidet wegen nicht realisierbarer Zugriffsmöglichkeit zum Zeitpunkt des
Einschaltens des Systems aufgrund fehlender Anmeldung der Baugruppe
am PCI-Bus aus.
-
Die Lösung, die erfindungsgemäß verfolgt wird,
geht einen Mittelweg zwischen diesen beiden Lösungswegen, indem nur in einer
als Pilotbaugruppe bezeichneten Baugruppe ein Konfigurationsspeicher
vorgesehen ist. Der Inhalt dieses Konfigurationsspeichers wird nach
Einschalten des Signalgenerator-Systems in die frei programmierbare
Gatterschaltung der Pilotbaugruppe zur Konfigurierung als Busschnittstelle
geladen. Nach Identifizierung und Konfigurierung der Baugruppe durch
das BIOS und dem Laden der entsprechenden Baugruppen-Firmware durch
das Betriebssystem steht die Pilotbaugruppe als einzige am (PCI)-Bus
funktionierende Baugruppe zur Verfügung. Über den (PCI)-Bus, die Pilotbaugruppe
als Daten-Schnittstelle und einem internen Systembus im Signalgenerator-System
werden von einer speziellen Anwendungssoftware unter Umgehung des
BIOS sowie des Betriebssystems Konfigurationsdaten für die frei
programmierbaren Gatterschaltungen der übrigen Baugruppen aus der Festplatte
der Hauptrechner-Einheit in die FPGAs der übrigen Baugruppen zur Schaltungskonfiguration geladen.
-
Der Schaltungsaufwand ist bei dieser
Lösung
folglich auf den auf der Pilotbaugruppe befindlichen Konfigurationsspeicher
beschränkt.
Der Konfigurationsspeicher der Pilotbaugruppe wird hinsichtlich
der oben genannten Änderungsflexibilität als programmierbarer
Speicherbaustein ausgeführt.
-
Die Unteransprüche betreffen vorteilhafte Weiterbildungen
der Erfindung.
-
Ein Ausführungsbeispiel der Erfindung
wird nachfolgend unter Bezugnahme auf die Zeichnung näher beschrieben.
In der Zeichnung zeigen:
-
1 eine
Blockschaltbild des PCI-Gesamtsystems
-
2,2A,2B ein Ablaufdiagramm der Einbindung
der einzelnen Baugruppen in das PCI-Bussystem Anhand der 1 wird im Folgenden der
systemtechnische Aufbau der Schaltungsanordnung zur Anbindung von
Baugruppen an ein nach dem Peripheral-Component-Interconnection-Standard arbeitendes
Bussystem (PCI-Bus) erläutert.
-
Das PCI-Gesamtsystem besteht aus
der Hauptrechner-Einheit 10, die über das PCI-Bussystem 30 mit
der als Signalgenerator-System arbeitenden Baugruppensystem-Einheit 20 verbunden
ist. Die Hauptrechner-Einheit 10 besteht im wesentlichen aus
einer Prozessoreinheit (CPU) 11, die über einen internen Systembus 12 mit
dem Systemspeicher 13 und der Busanschaltung (Bus Bridge) 14 verbunden ist.
Bei dem internen Systembus 12 kann es sich um einen Industry-Standard-Architecture-Bus
(ISA-Bus), Vesa-Local-Bus (VL-Bus) oder einen anderen Personal-Computer-(PC)-kompatiblen
Systembus handeln. Bei der Busanschaltung (Bus Bridge) 14 handelt
es sich um eine Schaltung zur Anbindung des PCI-Buses 30 an
den internen Systembus 12. Die Hauptrechner-Einheit 10 enthält zusätzlich noch
einen Massenspeicher, z. B. eine Festplatte 15.
-
Die Baugruppensystem-Einheit 20 enthält die n
Baugruppen 211 bis 21n . Jede einzelne Baugruppe 211 bis 21n ist
jeweils mit einer frei programmierbaren Gatterschaltung (FPGA) 221 bis 22n ausgestaltet.
Die als Pilotbaugruppe bezeichnete Baugruppe 211 enthält zusätzlich als
einzige Baugruppe einen elektrisch löschbaren, programmierbaren Bausteinen
(EE-PROM) 23, der über
eine Verbindungsleitung 24 mit der frei programmierbaren
Gatterschaltungen (FPGA) 221 unidirektional verbunden ist. Jede
der frei programmierbaren Gatterschaltungen (FPGA) 221 bis 22n ist
an den internen Systembus 25 angeschlossen.
-
Der PCI-Bus 30 steht mit
allen frei programmierbaren Gatterschaltungen (FPGA) 221 bis 22n der Baugruppen 211 bis 21n auf
der Baugruppensystem-Einheit 20 und dem Systemspeicher 13,
der Busanschaltung 14 und der Festplatte 15 der
Hauptrechner-Einheit 10 in Verbindung.
-
Im Folgenden werden die einzelnen
Schritte zur Anbindung von Baugruppen in einem PCI-Bussystem anhand
der 2, 2A und 2B beschrieben.
-
Nach Einschaltung in des PCI-Gesamtsystems,
was im allgemeinen durch Zuschalten der Stromversorgung erfolgt,
wird in Verfahrensschritt S10 die Busschnittstelle (Bus-Interface) 221 der Pilotbaugruppe 211 durch
programmgestütztes
Konfigurieren der programmierbaren Schaltung erzeugt. Hierzu wird,
wie in 1 dargestellt,
eine frei programmierbare Gatterschaltung (FPGA) 221 verwendet,
deren logische Gatterzellen mit Hilfe von Konfigurationsdaten zu
funktionsfähigen
logischen Schaltungen anwendungsspezifisch verknüpft werden können. Die
Schaltungskonfiguration des FPGAs 221 führt nach
erfolgreicher Programmierung die Funktion einer für den PCI-Bus
geeigneten Busschnittstelle aus.
-
Die Konfigurationsdateien für das FPGA 221 sind in dem als Konfigurationsspeicher
dienenden EE-PROM 23 abgespeichert und werden nach Einschalten
des Systems von einer auf dem FPGA 221 befindlichen
FPGA-Programmier-Software aus dem EE-PROM 23 ausgelesen
und zur Konfigurierung des FPGAs 221 im
Hinblick auf eine Busschnittstelle herangezogen. Die Speicherung
von Konfigurationsdaten in einem EE-PROM 23 ermöglicht die schnellstmögliche und
hoch flexibelste Anpassung der im FPGA 221 realisierten
Busschnittstelle an neue Versionsstände des PCI-Buses sowie geänderte Buskonfigurationen.
-
Alternativ zur Konfigurierung eines
FPGAs 221 hinsichtlich einer Busschnittstelle
mit Hilfe von in einem EE-PROM 23 abgespeicherten Konfigurationsdaten
kann unter Aufgabe der Flexibilität auch ein handelsüblicher,
festverdrahteter Busschnittstellen-Baustein verwendet werden. Hierbei
entfällt
der Verfahrenschritt S10 der Konfigurierung des FPGAs 221 .
-
Die Pilotbaugruppe 211 ist mit ihrer funktionierenden Busschnittstelle 221 nun initialisiert und in der Lage,
sich für
eine Anmeldung am PCI-Bus zu identifizieren. Der Verfahrensschritt
S20 der Anmeldung der Pilot-Baugruppe 211 am
PCI-Bussystem beginnt mit dem Unter-Verfahrensschritten S21. Im Unter-Verfahrensschritten
S21 erfolgt durch das "Plug & Play"-BIOS, eine Initialisierungssoftware
des Busverwaltungssystems, ein "Abscannen" des PCI-Buses nach
vorhandenen Baugruppen. Hierzu sendet das "Plug & Play"-BIOS ein definiertes
Signal an eine in einem PCI-Bus-Steckplatz befindliche Baugruppe
mit der Aufforderung, sich zu identifizieren. Ist der PCI-Bus-Steckplatz
von einer Baugruppe besetzt, die aufgrund ihrer funktionierenden
Busschnittstelle initialisiert ist, so sendet diese Baugruppe zur
Identifizierung ein bestimmtes Identifizierungssignal an das "Plug & Play"-BIOS.
-
Nach Identifizierung der Pilotbaugruppe 211 durch das "Plug & Play"-BIOS in Verfahrensschritt S21
erfolgt im sich anschließenden
Unter-Verfahrensschritt S22 bei Bedarf die Bestimmung der Konfigurationsdaten
für die
Pilotbaugruppe 211 durch das "Plug & Play"-BIOS. Zu den Konfigurationsdateien der
am PCI-Bus beteiligten Baugruppen zählen vor allem folgende Daten:
- – Adresse
der Baugruppe am PCI-Bus
- – Adressen
der der Baugruppe zugewiesenen Speicherplätze ins Systemspeicher
- – Adresssen
der der Baugruppe zugewiesenen Ein-/Aus-gabe-Schnittstellen
- – Adressen
der der Baugruppe zugewiesenen DMA-Speicherplätze
- – baugruppenspezifische
Zuweisung der Interrupt-Anforderung-Signale
-
Das "Plug & Play"-BIOS überprüft in einer speziell
für die
Abspeicherung von Konfigurationdaten vorgesehenen Konfigurationsdatei
(Extended System Configuration Data (ECSD)), ob für die Pilotbaugruppe 221 entsprechende Daten abgelegt sind. Falls
die Pilotbaugruppe 221 neu installiert
wurde, liegen diese Konfigurationsdaten in der Konfigurationsdatei
noch nicht vor und müssen
vom "Plug & Play"-BIOS für die Pilotbaugruppe 221 festgelegt werden und in der ECSD-Datei abgelegt werden.
-
Im darauf folgenden Unter-Verfahrensschritt S23
führt das "Plug & Play"-Betriebssystem im
Rahmen des Bootvorgangs die Installation des Baugruppentreibers
für die
Pilotbaugruppe 221 durch. Mit der Treibersoftware
ist es der Pilotbaugruppe 221 im
Folgenden möglich,
Kommunikation mit dem "Plug & Play"-Betriebssystem zu
führen.
Der Verfahrensschritt S20 der Anmeldung der Pilotbaugruppe am PCI-Bus
ist somit abgeschlossen.
-
Nachdem die Pilotbaugruppe 221 erfolgreich am PCI-Bus angemeldet
wurde und im Normalbetrieb des PCI-Bussystemes mit den Funktionseinheiten
der Hauptrechner-Einheit 10 kommunizieren kann, erfolgt
im nächsten
Verfahrensschritt S30 die Initialisierung der übrigen Baugruppen 222 bis 22n der Baugruppensystem-Einheit 20.
Diese Initialisierung wird durch eine spezielle Anwendungssoftware durchgeführt, die
nach Beendigung des Anmeldevorgangs der Pilotbaugruppe 221 und sämtlicher Funktionseinheiten
der Hauptrechner-Einheit 10 gestartet wird.
-
Diese spezielle Anwendungssoftware
ruft im ersten Schritt die auf der Festplatte 15 der Hauptrechner-Einheit 10 abgelegte
FPGA-Programmiersoftware auf. Die FPGA-Programmiersoftware liest von der Festplatte 15 die
Konfigurationsdaten zur Programmierung der feldprogrammierbaren
Gatterschaltungen 222 bis 22n der übrigen Baugruppen 212 bis 21n und überträgt sie über den
PCI-Bus 30, die als Datenschnittstelle dienende Pilotbaugruppe 211 und den auf der Baugruppensystem-Einheit 20 befindlichen
internen Systembus 25 in die jeweilige frei programmierbare
Gatterschaltung 222 bis 22n der Baugruppen 211 bis 21n . Mit den Konfigurationsdateien werden
die einzelnen frei programmierbaren Gatterschaltungen 222 bis 22n Baugruppen 212 bis 21n mit Hilfe
der FPGA-Programmiersoftware konfiguriert. Mit der Konfigurierung
der FPGAs sind die übrigen Baugruppen 212 bis 21n initialisiert.
-
Im darauf folgenden Verfahrensschritt
S40 erfolgt die Anmeldung der übrigen
Baugruppen 212 bis 21n am PCI-Bussystem 30. Mit Beendigung
der Initialisierung der übrigen
Baugruppen 212 bis 21n führt
die spezielle Anwendungssoftware im Unter-Verfahrenschritt S41 des
Anmeldungsprozesses S40 ein "Rescannen" des PCI-Buses nach
neu gesteckten und initialisierten Baugruppen durch. Hierzu sendet
die spezielle Anwendungssoftware ein definiertes Signal an alle
neu gesteckten Baugruppen am PCI-Bus mit der Aufforderung sich zu
identifizieren. Die in den FPGAs 222 bis 22n realisierten Busschnittstellen in
den übrigen
Baugruppen 212 bis 21n empfangen dieses definierte Anforderungssignal
und senden ihr charakteristisches Identifizierungssignal an die
spezielle Anwendungssoftware in der Hauptrechner-Einheit 10 zurück.
-
Nach Identifizierung der übrigen Baugruppen 212 bis 21n im
Unter-Verfahrenschritt S41 erfolgt im nächsten Unter-Verfahrensschritt
S42 die Zuweisung der Konfigurationsdaten an die übrigen Baugruppen 212 bis 21n durch
die spezielle Anwendungssoftware. Zu den Konfigurationsdaten der
am PCI-Bus beteiligten Baugruppen zählen die im obigen Abschnitt
genannten Daten. Für
jede der übrigen
Baugruppen 212 bis 21n überprüft die spezielle
Anwendungssoftware in der ESCD-Datei das korrekte Vorhandensein
dieser Konfigurationsdaten. Falls die übrigen Baugruppen 212 bis 21n am
PCI-Bus neu installiert wurden, liegen die entsprechenden Konfigurationsdateien noch
nicht in der ESCD-Datei vor und müssen, nachdem sie von der speziellen
Software für
jede Baugruppe 211 bis 21n bestimmt wurden, dort abgespeichert
werden.
-
Im letzten Unter-Verfahrensschritt
S43 des Anmeldungsprozesses S40 installiert die spezielle Anwendungssoftware
für jede
der übrigen
Baugruppen 212 bis 21n den jeweiligen Baugruppentreiber.
Mit Installation den jeweiligen Baugruppentreiber ist es den übrigen Baugruppen 212 bis 21n möglich, mit dem "Plug & Play"-Betriebssystem zu
kommunizieren und somit einen Datenaustausch mit allen Baugruppen
und Funktionseinheiten der Hauptrechner-Einheit 10, der
Baugruppensystem-Einheit 20 und den sonstigen am PCI-Bus
angeschlossenen System-Einheiten durchzuführen. Mit erfolgreicher Treiberinstallation
im Unter-Verfahrensschritt S43 ist der Anmeldungsprozess S40 abgeschlossen.
Die spezielle Anwendungssoftware ist vollständig durchlaufen und ruft das "Plug & Play"-Betriebssystem für den Normalbetrieb
des Gesamtsystems auf. Sämtliche
Baugruppen und Funktionseinheiten, die am PCI-Bus angemeldet sind,
können
nun über
diesen mit allen anderen Busteilnehmern kommunizieren.
-
Das Ausführungsbeispiel wurde am Anwendungsfall
eines PCI-Busses
nur beispielhaft erläutert. Die
Erfindung eignet sich jedoch auch zur Anwendung an anderen Baugruppen
miteinander verbindenden Bussystemen, beispielsweise einen USB- oder
LAN-Bus.