-
Gebiet der Erfindung
-
Die
vorliegende Erfindung bezieht sich im Allgemeinen auf Systeme und
Verfahren zur Reduzierung der Arbeitslast eines Hostcomputers und
insbesondere auf Systeme und Verfahren zum Vorladen einer Bussteuerung
mit einem Befehlsplan, der ohne Unterbrechung des Hostcomputers,
typischerweise in einer sich wiederholenden Weise ausgeführt werden
kann und durch den Hostcomputer, wenn gewünscht, aktualisiert werden
kann.
-
Hintergrund der Erfindung
-
Da
Systeme wie z.B. Multimediaunterhaltungssysteme, Kommunikationssysteme,
Prozesssteuerungssysteme und Diagnosesysteme, die in der Automobil-
und Luftfahrtindustrie verwendet werden, immer komplexer werden,
entsteht eine Notwendigkeit für
zusätzliche
Geräte
entweder mit sich selbst oder mit einer Zentralsteuerung oder etwas Ähnlichem
zu kommunizieren. Historisch gesehen umfassen diese Systeme eine dedizierte
Verdrahtung, die sich zwischen den verschiedenen Bauteilen erstreckt,
um die Kommunikation zwischen den Bauteilen zu unterstützen. Da
Systeme immer stärker
integriert worden sind und die Kommunikationsanforderungen angestiegen
sind, kann die Menge der dedizierten Verdrahtung, die erforderlich
wäre, schnell übermäßig groß werden.
Dies gilt sowohl in Bezug auf den benötigten Raum zur Verdrahtung
als auch in Bezug auf die Kosten der Ver drahtung und der damit einhergehenden
Installation. Da sich die Menge der dedizierten Verdrahtung vergrößert, vergrößert sich
darüber
hinaus im Allgemeinen auch die Gesamtkomplexität des Systems und auch die
Wahrscheinlichkeit, dass ein Teil der Verdrahtung möglicherweise
während oder
nach der Installation beschädigt
oder gebrochen wird.
-
Netzwerkbusse
als solche sind entwickelt worden, um einen gemeinsamen Kommunikationsweg
zwischen einer Vielzahl von Geräten
bereitzustellen. In Automobil- und Luftfahrtanwendungen zum Beispiel
kann ein Netzwerkbus dazu verwendet werden, um verschiedene Komponenten
zu überwachen
und um Diagnose und Statusinformationen zu sammeln. In dieser Hinsicht
können
Diagnose- und Statusinformationen gesammelt und analysiert werden,
die sich auf eine Beanspruchung, eine Beschleunigung, einen Druck
und/oder eine Temperatur beziehen, denen die verschiedenen Komponenten
ausgesetzt sind. Durch ein weiteres Beispiel wird nun eine Netzwerkbusarchitektur
entwickelt, die die Kommunikation und die Versorgung mit Multimediainformationen
der Insassen eines Fahrzeugs, wie z.B. ein Automobil, ein Minivan,
ein SUV (Sport Utility Vehicle), ein Flugzeug, ein Boot oder Ähnliches,
unterstützt.
Vorteilhafterweise würde
dieser Netzwerkbus die Audiosignale, umfassend fließende Audiosignale
(Streaming-Audiosignale),
die von einem Radio, einem Kassettenspieler, einem Kompaktdiskspielers
und/oder Ähnlichem
stammen, zu ausgewählten
Lautsprechern oder zu Kopfhörerbuchsen überall im
Fahrzeug transportieren. In ähnlicher
Weise kann der Netzwerkbus Sprach- und Datenkommunikationen mit
einem Zelltelefon unterstützen,
das von einem Insassen des Fahrzeugs getragen wird, genauso wie
Kommunikationen mit einem Laptop, einem tragbaren Rechengerät oder Ähnlichem.
Ebenso kann der Netzwerkbus Videosignale, umfassend fließende Videosignale
(Streaming-Videosignale), von einem Fernsehempfänger, einem Videokassettenspieler
oder einer anderen Videoquelle zu einem oder zu mehreren Videomonitoren
senden. Zusätzlich
kann der Netzwerkbus Sensor- und Aktuator signale hin zu und weg von
Bauteilen, wie z.B. Antriebsbauteile, passive Anschnallbauteile,
Unfallvermeidungsbauteile, Drive-By-Wire-Bauteile oder Ähnlichem,
senden.
-
Zusätzlich zu
der Vielfalt der Bauteile, die mit einem Netzwerkbus verbunden sind,
sind im Allgemeinen auch eine oder mehrere Kontrolleinheiten mit
dem Netzwerkbus verbunden, um Daten von verschiedenen Bauteilen
zu empfangen und um Befehle an die Bauteile zu senden. Unter anderem
spezifizieren diese Befehle eine Weise, in der die verschiedenen
Bauteile funktionieren, umfassend eine Weise, in der die verschiedenen Bauteile
Informationen über
den Netzwerkbus senden. Zusätzlich
kann die Kontrolleinheit(en) Eingaben von einem Benutzer, wie z.B.
einem Insassen des Fahrzeugs, empfangen. Diese Eingaben können z.B.
einen Hinweis auf die Quelle(n) von den Signalen, die über den
Netzwerkbus zu senden sind, als auch auf das Ziel der Signale umfassen.
-
In
einem System arbeiten eine oder mehrere Bussteuerungen unter der
Kontrolle eines oder in Verbindung mit einem Hostcomputer, der auch
als Hostprozessor bekannt ist. Der Hostcomputer stellt typischerweise
der Bussteuerung(en) die Befehle bereit, die über den Netzwerkbus zu übertragen
sind. Im Gegenzug erhält
der Hostcomputer eine Antwort der Netzwerkbauteile von der Bussteuerung(en).
Der Hostcomputer kann die Aktivitäten von der Bussteuerung(en),
die auf der zeitlichen Koordinierung der Befehle basiert, die von
dem Hostcomputer zu der Bussteuerung(en) ausgegeben werden, koordinieren
oder synchronisieren. Zusätzlich
führt der
Hostcomputer die Prozesskontrollalgorithmen durch, die eine Anzahl
von systemweiten Operationen leiten, während er ebenfalls eine beträchtliche
Menge an Datenanalysen und Datengewinnung durchführt, die von den Netzwerkbauteilen
bereitgestellt werden.
WO 94/08298 offenbart
eine Methode zur Verbesserung von SCSI-Kontrolloperationen durch
aktives Korrigieren der SCSI-Prozessorinstruktionen.
-
Wegen
der verschiedenen Funktionen, die der Hostcomputer durchführen muss,
kann der Hostcomputer im Ergebnis manchmal unfähig sein, der Bussteuerung(en)
Befehle im Einklang mit dem gewünschten Plan
bereitzustellen. In dieser Hinsicht werden die systemweiten Operationen,
die von dem Hostcomputer durchgeführt werden, typischerweise
als Operationen mit hoher Priorität gekennzeichnet, die durchgeführt werden
müssen,
auch wenn andere Funktionen abgeschaltet werden, die die Bereitstellung
von Befehlen für die
Bussteuerung(en) umfassen. Die Schwierigkeiten, die sich einem Hostcomputer
stellen, werden von Systemen mit einer großen Bandbreite erschwert, da
von dem Hostcomputer erwartet wird, häufiger mit der Bussteuerung(en)
zu interagieren. Zusätzlich
ist eine Anzahl von Systemen derart ausgebildet, dass sie zeitdeterministisch
sind in der Hinsicht, dass die Netzwerkbauteile getriggert sind,
eine Funktion durch Befehle auszuführen, die von der Bussteuerung(en)
ausgegeben wurden. Da es häufig
für ein
Netzwerkbauteil wünschenswert
ist, eine bestimmte Funktion auszuführen, so wie beispielsweise
Probedaten zu einer bestimmten Zeit zu erhalten, gibt die Bussteuerung(en)
vorzugsweise Befehle zu bestimmten Zeiten aus, um auch das Netzwerkbauteil
für die
Durchführung
einer bestimmten Funktion zu triggern. Wenn die Arbeitslast des
Hostcomputers mit größerer Bandbreite
anwächst,
wird es jedoch weniger wahrscheinlich sein, dass der Hostcomputer
fähig ist,
die Ausgabe von Befehlen an die Bussteuerung zeitlich zu koordinieren,
so dass die Bussteuerung wiederum die Befehle auf dem Netzwerkbus
in einer zeitdeterministischen Weise platzieren kann.
-
Z.B.
kann das System ausgebildet sein, um Daten von einer Vielzahl von
Sensoren mit einer vorbestimmten Abtastfrequenz zu sammeln. Da das
Sammeln von Daten von den Befehlen getriggert ist, die von der Bussteuerung
ausgegeben werden, müssen
die Befehle, die von der Bussteuerung ausgegeben werden, mit derselben
vorbestimmten Abtastfrequenz ausgegeben werden. Wenn der Hostcomputer
unfähig
ist, die Bussteuerung anzuweisen, die Befehle mit derselben vorbestimmten
Abtastfrequenz auszugeben, wird das System als solches unfähig sein,
Daten in Übereinstimmung
mit dem gewünschten
Plan zu beschaffen und daher werden die Daten eine signifikante
Menge an Instabilitäten
bezüglich
der zeitlichen Koordination (Timing Jitter) enthalten, die in Amplituden-
und Phasenverzerrungen resultiert.
-
In
einem Versuch diese Nachteile zu behandeln, sind Hostcomputer mit
schnelleren Prozessoren benutzt worden, die einen eingebetteten
Software-Prozess oder ein Echtzeitoperationssystem enthalten. Während dieser
Ansatz in einer zeitdeterministischen Art operieren kann, muss der
Hostprozessor noch immer den Netzwerkverkehr zusammen mit der Durchführung seiner
anderen Funktionen planen. Zusätzlich
enthalten einige Systeme Protokoll-Kodierer und Dekodierer als einen
Versuch, diese Nachteile zu bewältigen,
aber diese Systeme erfordern noch immer die Planung des Netzwerkverkehrs.
Daher erleichtert keiner dieser Ansätze den Hostcomputer um die
Notwendigkeit den Netzwerkverkehr über die Bussteuerung(en) zu
leiten. Es wäre daher
wünschenswert
die Arbeitslast des Hostcomputers zu verringern, so dass der Bussteuerung(en)
Befehle in einer besser vorhersagbaren Art bereitgestellt werden
können,
wobei der Bussteuerung(en) erlaubt ist, Befehle in einer zeitdeterministischen
Art auszugeben.
-
Zusammenfassung der Erfindung
-
Angesichts
des zuvor genannten Hintergrundes stellt die vorliegende Erfindung
ein verbessertes System und Verfahren zur Kommunikation mit mindestens
einem Netzwerkbauteil über
einen Netzwerkbus bereit. Das System und Verfahren der vorliegenden
Erfindung verringert die Arbeitslast eines Hostcomputers, indem es
der Bussteuerung erlaubt ist, Befehle in Übereinstimmung mit einem Befehlsplan
(manchmal als ein Operationsplan bezeichnet) auszugeben, in einer
Weise, die unabhängig
von einem Hostcomputer ist. Dementsprechend kann der Hostcomputer
eine Serie von Instruktionen zu der Bussteuerung übertragen,
so dass die Bussteuerung mit einem Befehlsplan vorgeladen ist. Entsprechend
einem Aspekt der vorliegenden Erfindung enthält das System einen Hostcomputer
und eine Bussteuerung, die sich in elektrischer Kommunikation mit sowohl
dem Hostcomputer als auch mit dem Netzwerkbus befindet. Die Bussteuerung
enthält
ein Speicherbauteil zur Speicherung einer Serie von Instruktionen
und ist angepasst die Serie von Instruktionen, typischerweise wiederholend,
in einer Weise unabhängig
von dem Hostcomputer auszuführen,
um die Kommunikation zu steuern, die über den Netzwerkbus geführt wird.
-
Daher
wird eine Serie von Instruktionen zunächst von dem Hostcomputer zu
der Bussteuerung übertragen,
so dass die Bussteuerung mit einem Befehlsplan vorgeladen ist. Anschließend wird
die Serie von Instruktionen typischerweise wiederholend, auf eine
Art, die unabhängig
von dem Hostcomputer ist, ausgeführt, um
die Kommunikation zu kontrollieren, die über den Netzwerkbus zwischen
der Bussteuerung und den Netzwerkbauteilen geführt wird. Da die Bussteuerung
die Serie von Instruktionen ohne weitere Unterbrechung des Hostcomputers
ausführen
kann, ist es dem Hostcomputer erlaubt, andere Operationen gleichzeitig
mit der Ausführung
der Serie von Instruktionen von der Bussteuerung durchzuführen. Z.B.
kann der Hostcomputer eine Datenanalyse und Systemoperationen durchführen, ohne
dass er die Bussteuerung anweisen muss Befehle auszugeben. Zusätzlich kann
die Bussteuerung durch das Vorladen der Bussteuerung mit einem Befehlsplan
die Befehle in einer zeitdeterministischen Art ausgeben, um die
Beschaffung von Daten und anderen Arten der Kommunikation über den
Netzwerkbus in Übereinstimmung
mit einem gewünschten
Plan zu unterstützen.
-
Wie
oben illustriert und diskutiert stellen die Systeme und Verfahren
der vorliegenden Erfindung die Funktion bereit, deterministische
Netzwerkprozesse ohne die Verwendung des Hostprozessors auszuführen. Insbesondere
identifizieren die Systeme und Verfahren der vorliegenden Erfindung
Instanzen, bei denen die Befehle, die von der Bussteuerung ausgegeben
werden, netzwerkprotokollspezifisch und periodisch wiederholend
sind (das ist eine Serie von Protokollbefehlen, die in periodischer
Folge wiederholt wird). Die Systeme und Verfahren der vorliegenden
Erfindung entfernen diese sich wiederholende Serie von Befehlen
von den Operationen, die der Hostprozessor durchführen muss
und laden die Befehle und Daten typischerweise in der Form von einer
Serie von Instruktionen in einen Befehlsplan. Wie bisher beschrieben
laden die Systeme und Verfahren der vorliegenden Erfindung jedoch
nur Befehlspläne
vor, die Serien von Befehlen und Daten enthalten, die sich während der
Operation des Netzwerksystems nicht ändern. Es existieren allerdings
einige Instanzen, bei denen eine dynamische Veränderung der Befehle oder Daten,
die während
der Durchführung
des periodischen Befehlsplans in den Befehlplan gelistet werden,
vorteilhaft ist, um dem Netzwerksystem zu erlauben, eine bessere
Prozesskontrolle zu erreichen. Mit anderen Worten, es wäre vorteilhaft,
einen vorgeladenen Befehlsplan mit Befehlen und Daten bereitzustellen,
die während
der Operation, basierend auf dem Prozess der mit dem Netzwerksystem
verbunden ist, verändert
oder aktualisiert werden können.
-
Vor
diesem Hintergrund stellen das System und die Verfahren der vorliegenden
Erfindung in einigen Ausgestaltungen Prozeduren bereit, die dem
Hostprozessor erlauben, den Inhalt und die Ausführung des eingebetteten Befehlsplanes
zu ändern
und dabei eine bessere Prozesskontrolle bereitzustellen. Die Systeme und
Verfahren der vorliegenden Erfindung ermöglichen der Hostkontrolleinheit
Daten von dem Netzwerk zu empfangen und zu analysieren, analytische
Ergebnisse zu berechnen und angemessene Prozessveränderungen
zu produzieren, die wiederum als Befehle oder Argumente in den Befehlsplan
eingefügt
werden können. Obwohl
der Hostprozessor die vorgeladenen Befehle und Daten des Befehlsplans
in diesen Ausgestaltungen periodisch evaluieren und verändern muss,
ist der Hostprozessor frei, Verarbeitungen höherer Level durchzuführen, da
der Großteil
der Verarbeitung in Übereinstimmung
mit dem Befehlsplan durch die Bussteuerung durchgeführt wird.
-
Kurze Beschreibung der Zeichnungen
-
Nachdem
nun die Erfindung mit allgemeinen Begriffen beschrieben wurde, werden
nun die angehängten
Zeichnungen referenziert, die nicht notwendigerweise maßstabsgetreu
sind und wobei:
-
1 eine
schematische Darstellung eines Systems entsprechend einer Ausgestaltung
der vorliegenden Erfindung ist, die ein Paar von Bussteuerungen
enthält,
die mit gegenüberliegenden
Enden eines Netzwerkbusses verbunden sind;
-
2 ein
Blockdiagramm eines Systems entsprechend einer Ausgestaltung der
vorliegenden Erfindung ist, welches einen Befehlsplan abbildet,
der in eine Bussteuerung vorgeladen ist;
-
3 ein
Blockdiagramm eines Systems entsprechend einer weiteren Ausgestaltung
der vorliegenden Erfindung ist, in welcher die Bussteuerung, in
der der Befehlsplan vorgeladen ist, unter der Kontrolle eines externen
Takts operiert, die verwendet werden kann, um die Operationen der
mehreren Bussteuerungen zu synchronisieren; und
-
4 eine
schematische Darstellung eines Systems entsprechend einer weiteren
Ausgestaltung der vorliegenden Erfindung ist, die eine Einzelbussteuerung
enthält;
-
5 ein
Blockdiagramm eines Systems entsprechend einer Ausgestaltung der
vorliegenden Erfindung darstellt, welche die Operation des Sende-Daten-vom-Register-Befehls
(Send-Data-From-Register-Befehls)
gemäß einer
Ausgestaltung der vorliegenden Erfindung abbildet; und
-
6 ein
Blockdiagramm eines Systems entsprechend einer Ausgestaltung der
vorliegenden Erfindung darstellt, welche die Operation des Absoluter-Sprung-vom-Register-Befehls
(Absolute-Jump-From-Register-Befehls)
gemäß einer
Ausgestaltung der vorliegenden Erfindung abbildet.
-
Detaillierte Beschreibung
der Erfindung
-
Die
vorliegende Erfindung wird nun hiernach ausführlich mit Bezug zu den begleitenden
Zeichnungen beschrieben, in welchen bevorzugte Ausgestaltungen der
Erfindung dargestellt sind. Diese Erfindung kann allerdings auf
viele verschiedene Arten ausgestaltet werden und sollte nicht als
zu den Ausgestaltungen limitiert interpretiert werden, die im Folgenden
dargestellt sind; diese Ausgestaltungen sind eher beschrieben, damit diese
Offenbarung genau und vollständig
ist und damit sie den Rahmen der Erfindung den Fachleuten vollständig übermittelt.
Gleiche Bezugszeichen beziehen sich durchweg auf gleiche Elemente.
-
Bezugnehmend
auf 1 wird nun ein System 10 gemäß einer
ersten Ausgestaltung der vorliegenden Erfindung dargestellt. Während mehrere
Ausgestaltungen des Systems dargestellt sind und nun mit der Absicht
ein Beispiel zu geben beschrieben werden, können andere Systemtypen die
vorliegende Erfindung nutzen. Darüber hinaus wird das System
und Verfahren der vorliegenden Erfindung zunächst im Zusammenhang mit Automobil-
und Luftfahrtanwendungen beschrieben. Beispielsweise sind Automobil-
und Luftfahrtanwendungen ausgebildet, Kommunikationen und die Bereitstellung
von Multimediainformationen an die Insassen eines Fahrzeugs zu unterstützen und/oder
verschiedene Komponenten zu überwachen
und Diagnose- und Statusinformationen zu sammeln und/oder für Prozesskontrollanwendungen
wie sie bei Motorsteuerungen, Getriebesteuerungen, Drive-or-Brake-by-Wire-Systemen,
etc., Anwendung finden. Allerdings kann das System und Verfahren
der vorliegenden Erfindung in Verbindung mit einer Vielzahl von
anderen Anwendungen in den Automobil- und/oder Luftfahrtindustrien
und/oder außerhalb
dieser Industrien verwendet werden. Z.B. kann das System und Verfahren
in der industriellen Automation und in Bodenprüfungen verwendet werden.
-
Wie
in 1 gezeigt umfasst das System 10 einer
Ausgestaltung einen Netzwerkbus 12, der eine erste Bussteuerung 14,
eine zweite Bussteuerung 16 und eine Vielzahl von Netzwerkbauteilen 18.
Die Bussteuerungen sind mit dem Netzwerkbus elektrisch verbunden.
In der illustrierten Ausgestaltung sind die erste und zweite Bussteuerung
zusammen platziert, so dass der Netzwerkbus einen Kreis zwischen
dem Paar von Bussteuerungen bildet. Es ist ersichtlich, dass die
Bussteuerungen an verschiedenen Positionen im Netzwerk platziert
werden können.
Das in 1 abgebildete System enthält ebenfalls eine Vielzahl
von Netzwerkbauteilen 18, die an verschiedenen Punkten
entlang des Netzwerkbusses mit dem Netzwerkbus elektrisch verbunden sind
und damit auch mit den Bussteuerungen. Damit unterstützt der
Netzwerkbus die Kommunikation zwischen den Bussteuerungen und den
Netzwerkbauteilen genau so wie die Kommunikationen zwischen den Netzwerkbauteilen
selbst.
-
Die
Bussteuerungen
14 und
16 sind so ausgebildet,
dass sie Befehle an jeweilige Netzwerkbauteile
18 ausgeben
und in zumindest einigen Fällen
Daten von Netzwerkbauteilen empfangen. Zum Beispiel können die
Befehle vorschreiben, dass ein Netzwerkbauteil einen bestimmten
Datentyp bereitstellt wie z. B. Statusdaten oder andere Diagnosedaten.
Andererseits können
die Befehle, die von den Bussteuerungen ausgegeben werden eine oder
mehrere der Netzwerkbauteile anweisen Signale eines vorbestimmten
Typs, wie z. B. Audiosignale, Videosignale oder Ähnliche, bereitzustellen und
für ein
oder mehrere der anderen Netzwerkbauteile Signale zu empfangen.
Obwohl verschiedene Typen von Bussteuerungen verwendet werden können, ist
eine vorteilhafte Art einer Bussteuerung die Netzwerksteuerung,
die in der
US-Patentanmeldung,
Nummer 09/736,878 , mit dem Titel „Network controller for digitally
controlling network devices via a common bus", angemeldet am 14. Dezember 2000, beschrieben
ist.
-
Wie
in der
US-Patentanmeldung, Nummer
09/736,878 , beschrieben und wie in
1 illustriert,
befinden sich die Bussteuerungen
14 und
16 im
Allgemeinen ebenfalls in elektrischer Kommunikation mit einem Hostcomputer
20,
der auch als Hostprozessor bezeichnet wird, der im Allgemeinen die
Operation der Bussteuerungen leitet. Zum Beispiel leitet der Hostcomputer
in einem konventionellen System die Ausgabe von Befehlen der Bussteuerungen
genauso wie die zeitliche Koordination der Befehle. Zusätzlich kann
der Hostcomputer die Daten, die die Bussteuerungen von den Netzwerkbauteilen
empfangen, gewinnen oder auch analysieren und er kann eine Zahl
von anderen systemweiten Operationen mit hoher Priorität durchführen. Zusätzliche
Einzelheiten, die sich auf die Interaktion und entsprechende Funktionen
der Bussteuerungen und des Hostcomputers beziehen, werden nun beschrieben.
-
Während einer
gewöhnlichen
Operation des Systems 10, das in 1 dargestellt
ist, dient die erste Bussteuerung 14 typischerweise als
Mastersteuerung und ist verantwortlich für die Ausgabe von Befehlen über den
Netzwerkbus 12. Die erste Bussteuerung arbeitet ebenfalls
als erster Monitor des Netzwerkbusses und kann Antworten empfangen,
die von den Netzwerkbauteilen 18 bereitgestellt werden.
-
Verschiedene
Typen von Netzwerkbussen 12 können verwendet werden. Typischerweise
enthält
der Netzwerkbus eins, zwei, drei oder mehr Drahtpaare, wie z. B.
differentielle, verdrillte Kupferdrahtleitungen, zur Übertragung
von Befehlen, Daten oder anderen Signalen. Der Netzwerkbus als solcher
kann so ausgestaltet sein, dass er entweder eine Standardhalbduplexkonfiguration über ein
Drahtpaar oder eine Vollduplexkonfiguration über zwei Drahtpaare unterstützt. In
einigen Ausgestaltungen, die für
synchronen Betrieb ausgebildet sind, kann eines der Drahtpaare für die Übertragung
eines Taktsignals, typischerweise von einer Bussteuerung zu den
Netzwerkbauteilen 18, verwendet werden. Weiterhin kann
der Netzwerkbus für
die Spannungsversorgung ein Drahtpaar und einen gewöhnlichen
Erdanschluss für
die Netzwerkbauteile umfassen.
-
Das
System 10 kann eine breite Auswahl von Netzwerkbauteilen 18 umfassen;
die meisten, wenn nicht alle von ihnen, liegen entfernt von den
Bussteuerungen. Zum Beispiel können
die Netzwerkbauteile Sensoren umfassen, die den Bussteuerungen und
wiederum dem Hostcomputer 20 Daten zur Verfügung stellen, wie
z. B. Status- oder Diagnosedaten, so dass die Funktionsfähigkeit
und/oder die Operation von was immer die Sensoren wahrnehmen überwacht
werden kann. Zum Beispiel können
in einer Automobilanwendung die Netzwerkbauteile Sensoren für die Überwachung
der Drosselposition, des Öldrucks,
der Wassertemperatur, des Übertragungsflüssigkeitsdrucks,
der Sitzposition, des Antiblockierbremssystems, der Aufhängung, des passiven
Rückhaltesystems
und des Lenksystems, um nur ein paar wenige zu nennen, umfassen.
Um dem Benutzer eine Rückmeldung
zu geben, können
die Netzwerkbauteile ebenso ein oder mehrere Displays umfassen,
wie z. B. das Armaturenbrettdisplay in einem Fahrzeug, um Status-
oder Diagnosedaten entweder direkt oder nach zweckmäßiger Verarbeitung
darzustellen. Andererseits können
die Netzwerkbauteile einen Aktuator umfassen, der eine bestimmte
Funktion als Antwort zu einem Befehl der Bussteuerung durchführt.
-
In
der Automobilanwendung z. B. können
die Netzwerkbauteile Aktuatoren zur Kontrolle der Drosselposition,
des Antiblockierbremssystems, der Aufhängung, des passiven Rückhaltesystems
und des aktiven Aufhängungssystems,
um nur ein paar zu nennen, umfassen. Weiterhin können die Netzwerkbauteile eine
Audio- oder Videoquelle
umfassen. Dementsprechend können
die Netzwerkbauteile Radioempfänger,
Kassettenspieler, Kompaktdiskspieler, zellulare Telefonempfänger oder
andere Audioquellen umfassen, um Kontrollsignale und Audiosignale,
die in einigen Fällen
fließende
Audiosignale umfassen, dem Netzwerkbus bereitzustellen. Entsprechend
können
die Netzwerkbauteile Lautsprecher, Kopfhörerbuchsen oder Ähnliches
für den
Empfang von Audiosignalen von dem Netzwerkbus und für die Bereitstellung
einer entsprechenden hörbaren
Ausgabe umfassen. Genauso können
die Netzwerkbauteile einen Fernsehempfänger, einen Videokassettenspieler
oder andere Videoquellen umfassen, um dem Netzwerkbus Videosignale,
umfassend fließende
Videosignale, bereitzustellen. Entsprechend können Netzwerkbauteile einen
Videomonitor oder Ähnliches
zum Empfang von Videosignalen und zur bildbasierten Darstellung
von Videosignalen umfassen.
-
Während die
Netzwerkbauteile
18 direkt mit dem Netzwerkbus
12 verbunden
sein können,
sind die Netzwerkbauteile einer vorteilhaften Ausgestaltung mit
den jeweiligen Netzwerkbauteilschnittstellen
22 verbunden,
wie beschrieben durch die
US-Patentanmeldung,
Nummer 09/735,146 , mit dem Titel „Network Device Interface
for Digitally Interfacing Data Channels to a Controller via a Network", angemeldet am 12.
Dezember 2000. In dieser vorteilhaften Ausgestaltung ist die Netzwerkbauteilschnittstelle
für das Übertragen
von Signalen zu dem Netzwerkbus und für den Empfang von Signalen
von dem Netzwerkbus in elektrischer Kommunikation mit dem Netzwerkbus
angeordnet. Jede Netzwerkbauteilschnittstelle befindet sich ebenso über entsprechende
Datenkanäle
in Kommunikation mit einem oder mit mehreren Netzwerkbauteilen.
Während
jede Netzwerkbauteilschnittstelle entsprechend
1 mit
einem einzelnen Netzwerkbauteil verbunden ist, könnte eine Netzwerkbauteilschnittstelle
mit zwei oder mehreren Netzwerkbauteilen verbunden werden, wenn
gewünscht. Wie
beschrieben in der
US-Patentanmeldung,
Nummer 09/735,146 , führt
eine Netzwerkbauteilschnittstelle verschiedene Funktionen aus, um
Kommunikationen des Netzwerkbauteils über den Netzwerkbus zu ermöglichen.
Zum Beispiel kann eine Netzwerkbauteilschnittstelle Daten speichern,
die von dem verbundenen Netzwerkbauteil(en) ge sammelt wurden, so
dass die gespeicherten Daten den Bussteuerungen
14 und
16 bei
einer Anfrage über
den Netzwerkbus zur Verfügung
gestellt werden können.
Wenn das Netzwerkbauteil ein analoges Bauteil ist, kann die Netzwerkbauteilschnittstelle
die Signale zwischen dem digitalen Format, das von dem Netzwerkbus
unterstützt
wird, und dem analogen Format umwandeln, das von dem Netzwerkbauteil
unterstützt
wird.
-
Nach
der Initialisierung des Systems
10 inventarisiert die erste
Bussteuerung
14 die Netzwerkbauteile
18, die mit
dem Netzwerkbus
12 verbunden sind, und ordnet jedem Netzwerkbauteil
eine eindeutige, logische Adresse zu, so dass die Bussteuerungen
mit einem bestimmten Netzwerkbauteil oder einer bestimmten Gruppe
von Netzwerkbauteilen kommunizieren können. Eine breite Auswahl von
Techniken zur Inventarisierung der Netzwerkbauteile, die mit dem
Netzwerkbus verbunden sind und zur Zuordnung von eindeutigen logischen Adressen
zu den Netzwerkbauteilen kann verwendet werden. Eine vorteilhafte
Technik für
das Inventarisieren der Netzwerkbauteile und das Zuordnen von eindeutigen,
logischen Adressen ist die Bittkonkurrenztechnik (Bit Competition
Technique), die durch die
US-Patentanmeldung,
Nummer 09/735,146 , genauso wie durch die provisorische
US-Patentanmeldung, Nummer 60/286,793 ,
mit dem Titel „Systems
and Methods for Assigning an Address to a Network Device Added to
an Existing Network",
angemeldet am 26. April 2001, und die PCT-Patentanmeldung, Nummer
..., mit dem Titel „Systems
and Methods for Assigning an Address to a Network Device Added to
an Existing Network",
die gleichzeitig mit dieser Anmeldung angemeldet wurde, beschrieben
ist.
-
Im
Betrieb gibt die erste Bussteuerung
14 verschiedene Befehle
aus und die jeweiligen Netzwerkbauteile
18 antworten basierend
auf diesen Befehlen. Die Bussteuerung und die Netzwerkbauteile können entsprechend
verschiedener Protokolle kommunizieren. Wie z. B. in der
US-Patentanmeldung, Nr. 09/736,878 , beschrie ben,
können
die Bussteuerungen und die Netzwerkbauteile entsprechend einem Manchester-kodiertem
Zweiphasen-Sensor-und-System-Protokoll (BiSenSys) kommunizieren.
Alternativ können
die Bussteuerungen und die Netzwerkbauteile entsprechend einem Protokoll,
das kompatibel mit einer universellen, asynchronen physikalischen
Empfänger-Sender-Schicht
(UART, universal asynchronous receiver transmitter pysical layer)
kommunizieren. Vorzugsweise jedoch wird das Protokoll ausgewählt, um
den Aufwand zu minimieren und die Datentransferfähigkeit entsprechend zu maximieren.
Weiterhin wird das Protokoll vorzugsweise so ausgewählt, dass
es relativ einfach ist, so dass weder die Netzwerkbauteile noch
die Netzwerkbauteilschnittstellen
22 einen Prozessor auf
hoher Ebene benötigen.
Stattdessen können
die Bussteuerungen und der verbundene Hostcomputer
20 den
Großteil
der Verarbeitungsleistung beinhalten und die Netzwerkbauteilschnittstellen
können
Logik beinhalten, die fertig in Hardware, Software oder Firmware
implementiert ist. Die Kommunikationen, die von dem System
10 unterstützt werden,
können
auch entweder synchron oder asynchron sein und können die Übertragung von verschiedenen
Arten von Nachrichten involvieren. Wie z. B. in der
US-Patentanmeldung, Nr. 09/736,878 ,
beschrieben basiert eine vorteilhafte Kommunikationstechnik auf
der Übertragung
von Nachrichtenrahmen, die Befehlsrahmen und Datenrahmen enthalten,
die jeweils eine vorbestimmte Länge
oder Größe haben.
-
Abhängig von
dem Protokoll kann das System auch verschiedene Befehlssätze unterstützen. So
wie das Protokoll ist der Befehlssatz vorzugsweise so auszuwählen, dass
der Aufwand minimiert wird, der über den
Netzwerkbus übertragen
werden muss, und dass es relativ einfach ist. Ein Beispiel eines
geeigneten Befehlssatzes ist in der
US-Patentanmeldung,
Nr. 09/735,146 , beschrieben und ist unten nachgebildet.
Befehl
(hex) | Befehlsbeschreibung |
Servicebefehle |
00 | Keine
Operation (No Op) |
01 | Eingebauter
Test (Built in Test) |
02 | Zurücksetzen
(Reset) |
03 | Lies-Status-Register
(Read Status Register) |
04 | Bauteil-Inventarisierung-Ein
(Device Inventory Enable) |
05 | Bauteil-Inventarisierung
(Device Inventory) |
06 | Kontroll-Übergabe
(Control Pass) |
07 | Wach-auf
(Wake) |
08 | Schlaf
(Sleep) |
09 | E-Kallibrierung
(E-Calibration) |
0A | Z-Kallibrierung
(Z-Calibration) |
0B | Synchroniziere
(Synchronize) |
0C | Baud-Auswahl
(Baud Select) |
0D | Setze-Quelle
(Set Source) |
0E | Füge-Terminierung-ein
(Insert Terminator) |
0F | Reserviert
(reserved) |
Datenbefehle |
20 | Trigger
(Trigger) |
21 | Trigger-und-Impuls
(Trigger and Pip) |
22 | Trigger-und-Lesen
(Trigger and Read) |
23 | Lese-Eingangsdaten-Register-Wort
(Read In-Data Register Word) |
24 | Lese-Eingangsdaten-Stapel-Wort
(Read In-Data Stack Word) |
25 | Lese-Eingangsdaten-Stapel-Doppel-Wort
(Read In-Data Stack Double Word) |
26 | Lese-Eingangsdaten-Stapel-Block-ein
(Read In-Data Stack Block) |
27 | Abfrage-Eingangsdaten-Ausgangsdaten-Stapeltiefe
(Query In-Data/Out-Data Stack Depth) |
28 | Schreibe-Ausgangsdaten-Stapelwort
(Write Out-Data Stack Word) |
29 | Schreibe-Ausgangsdaten-Stapelwort/Beschaffen-zu-Eingangsdaten-Register
(Write Out-Data Stack Word/Acquire to In-Data Register) |
2A | Schreibe-Ausgangsdaten-Stapel-Block
(Write Out-Data Stack Block) |
2B-2F | Reserviert
(Reserved) |
Speicherbefehle |
30 | Setze-Speicher-Pfeil
(Set Memory Pointer) |
31 | Lese-Speicher-Wort-mit-aktuellem-Pfeil
(Read Memory Word with Current Pointer) |
32 | Lese-Speicher-Block-mit-aktuellem-Pfeil
(Read Memory Block with Current Pointer) |
33 | Schreibe-Speicher-Wort-mit-aktuellem-Pfeil
(Write Memory Word with Current Pointer) |
34 | Schreibe-Speicher-Block-mit-aktuellem-Pfeil
(Write Memory Block with Current Pointer) |
35 | Lese-Speicher-Wort-mit-übergebenem-Pfeil
(Read Memory Word with Passed Pointer) |
36 | Lese-Speicher-Block-mit-übergebenem-Pfeil
(Read Memory Block with Passed Pointer) |
37 | Schreibe-Speicher-Wort-mit-übergebenem-Pfeil (Write
Memory Word with Passed Pointer) |
38 | Schreibe-Speicher-Block-mit-übergebenem-Pfeil (Write
Memory Block with Passed Pointer) |
39-7F | Reserviert
(Reserved) |
-
Eine
Ebene von Befehlen sind die Servicebefehle. Servicebefehle werden
für die
Netzwerkorganisation, den Netzwerkbauteilschnittstellenstatus, die
Leistungskontrolle, die Kalibrierung und die Entscheidung des Busmasters
verwendet. Eine zweite Art von Befehlen sind die Datentypenbefehle.
Diese Befehle sind für
die zeitdeterministische Datenbeschaffung und die Kontrolle zugeschnitten.
Netzwerkeffizienz wird maximiert, indem den Netzwerkbauteilen erlaubt
wird, eine oder mehrere Datenpunkte oder mehr als ein Datenpunkt
als Blockübertragung
mit definierter Länge
direkt zu bewegen. Beispielsweise wird der Trigger-Befehl von den Bussteuerungen
verwendet, um eine ankommende Datenmessung eines Sensors zu veranlassen
oder um eine Datenumwandlung einer physikalischen Größe für einen
Aktuator zu verursachen.
-
Zusätzlich zu
den Service- und Datentypenbefehlen enthält der Befehlssatz in diesem
Beispiel auch Speicherbefehle. Diese Befehle erlauben den Zugriff
auf spezifisch definierte Speicherplätze oder Funktionen, auf die
Daten geschrieben oder aus denen Daten ausgelesen werden können. Diese
erlaubt, dass zufällige Zugriffsdatenblöcke effizient
zwischen einem und einem anderen System mit geringem Aufwand übertragen werden
können.
Das erlaubt ebenfalls den direkten Speicherzugriff und/oder das
Bewegen von einem oder von mehreren Datenpufferblöcken. Weitere
Einzelheiten bzgl. des Befehlssatzes werden in der
US-Patentanmeldung,
Nummer 09/735,146 , genauso wie in der provisorischen
US-Patentanmeldung, Nummer 60/286,644 ,
mit dem Titel „System
and Method for Reestablishing the Impedance Stability of a Network
Bus", in der provisorische
US-Patentanmeldung, Nummer 60/286,759 ,
mit dem Titel „System,
Methods and Bus Controllers for Creating an Event Trigger an a Network
Bus", beide angemeldet
am 26. April 2001, und in der PCT-Patentanmeldung, Nummer
PCT/US 02/13367 , mit dem
Titel „Systems
and Methods for Maintaining Network Stability" und in der PCT Patentanmeldung, Nr.
PCT/US 02/13303 , mit dem
Titel „Systems,
Methods and Bus Controllers for Creating an Event Trigger an a Network
Bus", die beide
gleichzeitig hiermit angemeldet sind, bereit gestellt. Die Inhalte
von all diesen Anmeldungen sind in ihrer Gesamtheit ebenfalls hier
eingebunden.
-
Entsprechend
der vorliegenden Erfindung wird die Bussteuerung 14 und
insbesondere ein Speicherbauteil 24, das mit der Bussteuerung
verbunden ist, mit einer Serie von Instruktionen vorgeladen, die
als Mikrocode bezeichnet wird, wobei ein Befehlsplan (manchmal bezeichnet
als ein Operationsplan) gebildet wird (siehe z. B. 2).
Während
die Serie von Instruktionen auf verschiedene Arten bereit gestellt
werden kann, lädt
der Hostcomputer 20 typischerweise das Speicherbauteil
der Bussteuerung mit der Serie von Instruktionen vor. Die Bussteuerung
kann danach die Serie von Instruktionen ohne weitere Unterbrechung
oder Anleitung durch den Hostcomputer ausführen. Es ist dem Hostcomputer
entsprechend erlaubt einen größeren Prozentsatz
seiner Verarbeitungszeit und Leistung für andere Funktionen zu verwenden,
die systemweite Operationen und Datenanalyse beinhalten. Darüber hinaus
kann die Bussteuerung durch das Vorladen einer Serie mit Instruktionen
(das ist der Befehlsplan) in die Bussteuerung sicherstellen, dass
verschiedene Befehle auf dem Netzwerkbus zu vorbestimmten Zeiten
platziert werden, wobei die zeit-deterministische Operation des Systems 10 erlaubt
wird.
-
Während jede
Serie von Instruktionen in die Bussteuerung 14 vorgeladen
werden kann, lädt
das System 10 einer vorteilhaften Ausgestaltung eine Serie
von Instruktionen vor, die wiederholt ausgeführt wird. Deshalb kann eine
relativ kleine Serie von Instruktionen in die Bussteuerung vorgeladen
werden und von der Bussteuerung wiederholt ausgeführt werden,
um die Kommunikation über
den Netzwerkbus 12 für
eine substanzielle Zeitdauer zu kontrollieren, wobei der Hostcomputer 20 für andere
Funktionen befreit wird. Obwohl eine wiederholende Serie von Instruktionen
in die Bussteuerung vorgeladen wird und von der Bussteuerung wiederholt
ausgeführt
wird, muss der Hostcomputer möglicherweise
gelegentlich zusätzliche
Instruktionen bereitstellen, um die Bussteuerung anzuweisen, Funktionen
auszuführen,
die anders als jene sind, die in der vorgeladenen Serie von Instruktionen
aufgenommen sind. Sogar in diesem Beispiel wird jedoch die Arbeitslast
des Hostcomputers substanziell verringert und die Zuverlässigkeit,
mit der die Bussteuerung auf eine zeitdeterministische Art operieren
kann, ist vergrößert.
-
Typischerweise
wird die Serie von Instruktionen in die Bussteuerung 14 entweder
vor oder während der
Laufzeit der Bussteuerung vorgeladen. In Ausgestaltungen, bei denen
das Speicherbauteil 24, welches die Serie von Instruktionen
speichert, nicht flüchtiger
Speicher ist, kann die Bussteuerung beginnen die Befehle auf Einschalten
oder auf Anweisung des Hostcomputers 20 ausführen. Alternativ
muss in Ausgestaltungen, bei denen das Speicherbauteil flüchtiger
Speicher ist, der Computer die Serie von Instruktionen nach dem
Einschalten und bevor die Bussteuerung mit der Ausführung der
Befehle beginnt in die Bussteuerung laden.
-
Die
Serie von Instruktionen kann eine Vielfalt von Mikrocode-Befehlen
enthalten, von denen einige entsprechende Datenfelder haben können. Beispielhaft
wird jedoch ein Satz von Mikrocode-Befehlen nachfolgend beschrieben.
In dieser exemplarischen Ausgestaltung beinhalten die Mikrocode-Befehle
einen Zurücksetzen-Befehl (Reset-Befehl),
um die Ausführung
der Serie von Instruktionen zu einer Adresse des Speicherbauteils 24 zurückzusetzen,
die mit Null bezeichnet wird. Wie in 2 angedeutet,
werden die Serien von Instruktionen im Allgemeinen in das Speicherbauteil
geladen, so dass der erste Befehl sich an der Speicheradresse von
Null befindet. Damit verursacht der Zurücksetzen-Befehl im Wesentlichen,
dass die Ausführung
der Serie von Instruktionen erneut mit dem ersten Befehl beginnt.
Wie später
ersichtlich wird, ist der Zurücksetzen-Befehl
nur gültig,
wenn dass Speicherbauteil, das mit der Bussteuerung verbunden ist,
Mikrocode-Befehle enthält,
wobei keine Aktion unternommen wird, wenn das Speicherbauteil keinen
Mikrocode-Befehle enthält.
-
Die
Mikrocode-Befehle enthalten auch einen Pause-Befehl für das pausieren
der Ausführung
der Serie von Instruktionen. Im Anschluss an den Pause-Befehl kann
die Operation als Antwort auf den Eingang eines vorbestimmten Signals
wieder aufgenommen werden. Ein anderer Mikrocode-Befehl ist der
Verzögerung-Befehl
(Delay-Befehl), der eine Zeitverzögerung zwischen Mikrocodes
einfügt,
die über
den Netzwerkbus 12 ausgegeben werden. Obwohl weder der
Zurücksetzen-
noch der Pause-Befehl ein entsprechendes Datenfeld haben, spezifiziert
das Datenfeld, das mit dem Verzögerung-Befehl
korrespondiert die Menge der Verzögerung, (typischerweise gemessen
in Nanosekunden) die einzufügen
ist.
-
Ein
anderer Mikrocode-Befehl ist der Antwort-Verzögerung-Befehl (Response-Delay-Befehl). Der
Antwort-Verzögerung-Befehl
fügt eine
Verzögerung
zwischen Mikrocodes ein, die über
den Netzwerkbus 12 ausgegeben werden, was aus organisatorischen
Gründen
eine Antwort zu dem unverzüglich
vorangehenden Mikrocode erlaubt, die von einem Netzwerkbauteil 18 bereitgestellt
wird. Für
alle weiteren Verzögerungen
wird der Verzögerung-Befehl
verwendet. Ein Datenfeld, das mit dem Antwort-Verzögerung-Befehl
verbunden ist, spezifiziert die Anzahl von Datenbytes der Verzögerung.
Deshalb wird die tatsächliche
Verzögerungszeit
von der Baud-Rate abhängen,
mit der Kommunikationen über
den Netzwerkbus durchgeführt
werden.
-
Die
Mikrocode-Befehle enthalten auch einen Sende-Befehl, der die Bussteuerung 14 anweist,
Befehle über
den Netzwerkbus 12 zu übertragen.
Der Befehl, der über
den Netzwerkbus übertragen
wird, ist durch ein Datenfeld definiert, das mit der Senden-Befehlsinstruktion
verbunden ist. Wie beispielsweise unten beschrieben ist, kann der
Sende-Befehl anweisen, dass ein Lese-Befehl oder ein Schreib-Befehl über den
Netzwerkbus gesendet wird. In diesen Beispielen würde das
Datenfeld als solches, welches mit dem Sende-Befehl verbunden ist,
ebenfalls die Adresse des Netzwerkbauteils 18 identifizieren,
an welche der Befehl geleitet wird. Typischerweise ist ein Paritätsbit nicht
in dem Datenfeld enthalten, aber es wird von der Bussteuerung nach
der Übertragung
des Befehls über
den Netzwerkbus automatisch berechnet und angehängt. Ebenso enthalten die Mikrocode-Befehle auch einen
Sende-Daten-Befehl (Send-Data-Befehl), um einem Datenrahmen die Übertragung über den
Netzwerkbus, typischerweise von einem Netzwerkbauteil zu der Bussteuerung,
zu erlauben, wobei der Datenrahmen, der zu übertragen ist, in dem Datenfeld
definiert ist, das mit den Sende-Daten-Befehl verbunden ist. Wie
bei dem Sende-Befehl ist das Paritätsbit nicht in dem verbundenen
Datenfeld enthalten, sondern wird eher automatisch berechnet und
durch die Bussteuerung zu der Zeit der Übertragung des Befehls über den
Netzwerkbus angehängt.
-
Der
Mikrocode-Befehlssatz dieser exemplarischen Ausgestaltung enthält auch
einen Absoluter-Sprung-Befehl (Absolute-Jump-Befehl), der verursacht,
dass die Ausführung
der Serie von Instruktionen zu einer Speicheradresse springt, die
durch das verbundene Datenfeld definiert ist. So wie der Zurücksetzen-Befehl
ist der Absoluter-Sprung-Befehl nur gültig, wenn das Speicherbauteil 24,
das mit der Bussteuerung 14 verbunden ist, Mikrocode-Befehle
enthält,
wobei keine Aktion auftritt, wenn das Speicherbauteil keine Mikrocode-Befehle
enthält.
Zum Schluss können
die Mikrocode-Befehle einen Echo-Daten-Befehl (Echo-Data-Befehl)
enthalten, der einen Datenrahmen über den Netzwerkbus 12 unter
Verwendung von Daten überträgt, die sich
aktuell in einem Empfangspuffer der Bussteuerung befinden (nicht
gezeigt). Wenn der Empfangspuffer keine Daten enthält oder
wenn die Daten in dem Puffer nicht gültig sind, wird der Echo-Daten-Befehl
ausgelassen und keine Daten werden über den Netzwerkbus übertragen.
Wie zuvor wird das Paritätsbit
automatisch berechnet und durch die Bussteuerung während der Übertragung
von dem Datenrahmen über
den Netzwerkbus angehängt.
-
Obwohl
der Mikrocode-Befehlssatz dieser exemplarischen Ausgestaltung oben
beschrieben wurde, wird eine Zusammenfassung des Mikrocodebefehlssatzes
und der verbundenen Datenfelder in der folgenden Tabelle bereit
gestellt:
Mikrocode-Befehl | Datenfeld |
Zurücksetzen
(Reset) | Datenfeld
wird nicht verwendet |
Pause
(Pause) | Datenfeld
wird nicht verwendet |
Verzögerung (Delay) | Spezifiziert
Anzahl von Busdatenbits einer Verzögerung |
Antwort-Verzögerung (Response
Delay) | Spezifiziert
Anzahl von Busdatenbits einer Verzögerung |
Sende-Befehl
(Send Command) | Daten
für zu
sendenden Befehlsrahmen (Parität nicht
enthalten) |
Sende-Daten
(Send Data) | Daten
für zu
sendenden Befehlsrahmen (Parität nicht
enthalten) |
Absoluter-Sprung
(Absolute Jump) | Adresse
des Sprungortes |
Echo-Daten
Echo Data | Datenfeld
wird nicht verwendet |
-
Abhängig von
den Operationen, die die Bussteuerung 14 durchführt, werden
eine vordefinierte Serie von Instruktionen, die aus Mikrocode-Befehlen
und verbunde nen Datenfeldern bestehen in das Speicherbauteil 24 geladen,
das mit der Bussteuerung verbunden ist. Der Einsatz von Mikrocode-Befehlen
und Datenfeldern wird in 2 illustriert. Wie gezeigt wird
die Serie von Instruktionen beginnend mit der Speicheradresse Null
gespeichert, obwohl die Instruktionen an anderen Orten gespeichert
werden können,
wenn dies gewünscht
ist. Nach dem Beginn von Operationen führt die Bussteuerung den ersten
Mikrocode-Befehl aus, welcher ein Sende-Befehl ist. Der Sende-Befehl
hat ein verbundenes Datenfeld, das den Befehl, der über den Netzwerkbus 12 übertragen
wird, als einen Trigger-Befehl
definiert. Danach wird ein anderer Sende-Befehl, für das verbundene
Datenfeld bereit gestellt, das den zu sendenden Befehl als ein Lese-Befehl
für das
Netzwerkbauteil mit der Adresse 1 definiert (bezeichnet mit N1 in 2),
dann wird der Antwort-Verzögerungs-Befehl (Response-Delay-Befehl)
ausgeführt,
um dem Netzwerkbauteil N1 eine Gelegenheit zu geben, Daten auf den Netzwerkbus 12 zu
lesen, die mit w bezeichnet sind, danach wird ein anderer Sende-Befehl
mit dem verbundenen Datenfeld ausgeführt, das einen Lese-Befehl
bezeichnet, der zu dem Netzwerkbauteil mit der Adresse 2 zu senden
ist (bezeichnet N2 in 2). Ein Antwort-Verzögerungs-Befehl
wird dann ausgeführt,
um dem Netzwerkbauteil N2 eine Zeitperiode bereitzustellen, in der
die angefragten Daten, die mit x bezeichnet sind, auf dem Netzwerkbus
zu lesen sind.
-
Nachdem
die Daten x auf dem Netzwerkbus gelesen wurden, wird ein Sende-Befehl erneut mit
dem verbundenen Datenfeld ausgeführt,
das andeutet, dass Daten zu dem Netzwerkbauteil mit Adresse 3 geschrieben
werden sollen (bezeichnet mit N3 in 2). Folglich
wird ein Sende-Daten-Befehl ausgeführt mit dem Datenfeld, das
die Daten identifiziert, die mit y bezeichnet sind und die zu dem
Netzwerkbauteil N3 zu senden sind. Zum Schluss wird ein anderer
Sende-Befehl mit dem Datenfeld ausgeführt, das spezifiziert, dass
Daten zu dem Netzwerkbauteil mit der Adresse 4 geschrieben werden
sollen (bezeichnet N4 in 2). Dann wird ein Sende-Daten-Befehl
erneut mit dem verbundenen Datenfeld ausgeführt, das die Daten bereitstellt,
die auf das Netzwerkbauteil N4 zu schreiben sind. In diesem Beispiel
werden die Daten mit z bezeichnet. Um die Serie von Instruktionen
zu wiederholen, wird ein Absoluter-Sprung-Befehl mit dem Datenfeld
ausgeführt,
der bestimmt, dass die Ausführung
zu dem Speicherplatz Null springen soll, wobei tatsächlich die
Ausführung
des Prozesses erneut gestartet wird. Daher liest die Serie von Instruktionen
in diesem Beispiel periodisch Daten, die von Netzwerkbauteilen N1
und N2 bereitgestellt werden, wie beispielsweise ein erster und
zweiter Sensor, und schreibt Daten periodisch auf die Netzwerkbauteile
N3 und N4, die beispielsweise einen dritten und vierten Aktuator
darstellen.
-
Wie
auch in 2 gezeigt enthält die Bussteuerung 14 einen
Empfänger 26 für den Empfang
der Daten, die aus dem Netzwerkbus 12 ausgelesen werden.
Diese Daten werden typischerweise dem Hostcomputer 20 zur
zusätzlichen
Verarbeitung zur Verfügung
gestellt. Zum Beispiel kann der Hostcomputer die Daten parsen und
kann dann verschiedene Datenanalysen und/oder Datengewinnungsoperationen
durchführen,
die von der Anwendung abhängen.
-
Obwohl
die Ausführung
der Serie von Instruktionen, die in das Speicherbauteil 24 vorgeladen
ist, das mit der Bussteuerung 14 der 2 verbunden
ist, durch einen internen Takt 28 kontrolliert wird, kann
die Ausführung
der Serie von Instruktionen durch einen externen Takt kontrolliert
werden. In dieser Hinsicht zeigt 3 ein ähnliches
System 10, in dem ein externer Takt 30 für die Bussteuerung
und insbesondere für
die Speicherbauteile bereitgestellt ist, die die Serie von Instruktionen
speichern. Deshalb kann derselbe externe Takt für verschiedene Bussteuerungen
bereitgestellt werden, um die Operationen der Bussteuerungen und
der jeweiligen Netzwerkbusse zu kontrollieren und zu synchronisieren.
-
Während ein
System 10, das einen Netzwerkbus 12 verwendet,
der sich zwischen einem Paar von Bussteuerungen 14 und 16 erstreckt,
erläutert
und beschrieben worden ist, sind das System und das Verfahren der
vorliegenden Erfindung für
eine breite Vielfalt von anderen Netzwerkbusarchitekturen geeignet.
Zum Beispiel kann das System einen Netzwerkbus beinhalten, der eine
einzelne Bussteuerung hat, die mit dem Netzwerkbus entweder an einen
Ende des Netzwerkbusses oder an jedem beliebigen Punkt entlang des
Netzwerkbusses, wie in der 4 gezeigt,
verbunden ist.
-
Gemäß jedweder
Ausgestaltung der vorliegenden Erfindung sind ein System 10 und
ein Verfahren für das
Vorladen eines Befehlplans typischerweise in der Form einer Serie
von Instruktionen in einem Speicherbauteil 24 bereitgestellt,
das mit einer Bussteuerung 14 verbunden ist. Danach kann
die Bussteuerung die Serie von Instruktionen ausführen, um
geeignete Befehle auf dem Netzwerkbus zu platzieren. Durch das Vorladen
der Serie von Instruktionen in die Bussteuerung, wird die Arbeitslast
des Hostcomputers 20 reduziert. Die Reduktion der Arbeitslast
des Hostcomputers erlaubt dem Hostcomputer andere Funktionen auszuführen, wie z.
B. das Ausführen
von systemweiten Operationen und/oder Datenanalyse, während die
Bussteuerung die vorgeladene Serie von Instruktionen ausführt. Indem
der Bussteuerung erlaubt wird, die Ausführung der Serie von Instruktionen
zu kontrollieren, kann die Bussteuerung zusätzlich sicherstellen, dass
Befehle in einer zeitdeterministischen Art ausgegeben werden, um
so geeignet mit verschiedenen Netzwerkbauteilen zu interagieren.
-
Wie
oben illustriert und diskutiert stellen die Systeme und Methoden
der vorliegenden Erfindung die Fähigkeit
bereit, deterministische Netzwerkprozesse ohne Verwendung des Hostprozessors
auszuführen.
Insbesondere identifizieren die Systeme und Verfahren der vorliegenden
Erfindung Beispiele, bei denen die Befehle, die von der Bussteuerung
ausgegeben werden, netzwerkprotokollspezifisch sind und periodisch
wiederholend (das ist eine Serie von Protokollbefehlen, die sich
in periodischer Folge wiederholt). Die Systeme und Verfahren der
vorliegen den Erfindung beseitigen diese wiederholende Serie von
Befehlen von den Operationen, die der Hostprozessor durchführen muss,
und laden die Befehle und Daten in einen Befehlsplan vor, typischerweise
in der Form einer Serie von Instruktionen. Der Befehlsplan wird
für die
Ausführung
des Befehlsplans in der Bussteuerung zusammen mit Codes gespeichert,
die als Mikrocode bezeichnet werden. In dem Betrieb werden die wiederholenden
Befehle unter Verwendung des periodischen Befehlsplans durch die
Bussteuerung anstelle des Hostprozessors durchgeführt.
-
Wie
bisher beschrieben laden die Systeme und Verfahren der vorliegenden
Erfindung jedoch den Befehlsplan nur vor, der eine Serie von Befehlen
und Daten enthält,
die sich während
der Operation des Netzwerksystems nicht verändern. Mit anderen Worten enthält der periodische
Befehlsplan nur fixe Befehle und Daten, die nicht veränderbar
sind. Der periodische Plan als solcher erlaubt nur einen kontinuierlichen
Strom von vorprogrammierter Datenbeschaffung oder Ausgaben auszuführen. Während dies
für Anwendungen
zur Datenbeschaffung oder einfache wiederholende Kontrollsequenzen
akzeptabel ist, die keine Modifikation des Prozesses erfordern,
existieren einige Beispiele bei denen die dynamische Veränderung
der Befehle oder Daten, die in dem Befehlsplan gelistet sind, während der
Abarbeitung des periodischen Befehlsplans vorteilhaft ist, um dem
Netzwerksystem zu erlauben eine bessere Prozesskontrolle zu erreichen.
Mit anderen Worten, es wäre
vorteilhaft, einen vorgeladenen Befehlsplan mit Befehlen und Daten,
die während
der Operation, die auf dem Prozess basiert, der mit dem Netzwerksystem
verbunden ist, verändert
oder aktualisiert werden können, bereitzustellen.
-
Zum
Beispiel kann das Netzwerksystem in Verbindung mit einem Prozess
verwendet werden, der Variablen besitzt, die sich mit der Zeit verändern können. Wenn
sich diese Variablen ändern,
müssen
die Befehle und Daten, die zu den verschiedenen Netzwerkbauteilen übertragen
wurden, möglicherweise
verändert
wer den, um sicherzustellen, dass der Prozess im Hinblick auf diese
Veränderungen
angemessen und präzise
kontrolliert wird. In diesen Beispielen sollen einige der Befehle
und Daten, die in den Befehlsplan vorgeladen sind, verändert werden,
um eine gute Kontrolle bereitzustellen.
-
Vor
diesem Hintergrund stellen das System und die Verfahren der vorliegenden
Erfindung in einigen Ausgestaltungen Prozeduren bereit, die es dem
Hostprozessor erlauben, den Inhalt und die Ausführung des eingebetteten Befehlsplans
zu verändern
um dabei eine bessere Prozesskontrolle bereitzustellen. Die Systeme
und Verfahren der vorliegenden Erfindung ermöglichen der Hoststeuerung Daten
von dem Netzwerk zu empfangen und zu analysieren, analytische Ergebnisse
zu berechnen und geeignete Prozessveränderungen zu produzieren, die
wieder als Befehle oder Argumente in den Befehlsplan eingesetzt
werden können.
Obwohl der Hostprozessor die vorgeladenen Befehle und Daten des
Befehlsplans in diesen Ausgestaltungen periodisch evaluieren und
modifizieren muss, ist der Hostprozessor frei, Verarbeitungen eines
höheren
Levels durchzuführen,
weil der Großteil
der Verarbeitung entsprechend dem Befehlsplan von der Bussteuerung durchgeführt wird.
-
Mit
Bezug zu den 5 und 6 ist es
bedeutsam, dass die Systeme und Verfahren der vorliegenden Erfindung
eine Serie von Registern 40 bereitstellen, die sich in
dem Speicherbauteil 24 befinden, das mit der Bussteuerung
verbunden ist. Diese Register, die vorzugsweise 17 Bit lang sind,
werden benutzt, um Werte von Variablen in dem Befehlsplan zu speichern.
Mit anderen Worten, wenn der Hostprozessor Daten von dem Netzwerksystem
analysiert, dann berechnet er analytische Ergebnisse und produziert
angemessene Prozessveränderungen
für diese
Variablen des Befehlsplans. Diese Updates werden in Registern gespeichert,
wo sie wieder als Befehle oder Argumente in den Befehlsplan eingefügt werden
können.
-
Um
die aktualisierten oder modifizierten Werte in den Befehlsplan einzufügen, enthalten
die Systeme und Verfahren der vorliegenden Erfindung einen zusätzlichen
Satz von Mikrocodes für
das Laden von Werten aus der Serie von Registern in den Befehlsplan,
um variable Befehle und Daten in dem Befehlsplan zu verändern und
dabei eine bessere Prozesskontrolle bereitzustellen. Diese zusätzlichen
Mikrocodes sind in der folgenden Tabelle aufgeführt:
Aktion | Datenfeld |
Sende-Befel-vom-Register
(Send Command From Register) | Adresse eines internen
Registers um einen Befehl abzurufen |
Sende-Daten-vom-Register
(Send Data From Register) | Adresse eines internen
Registers um einen Datenwert abzurufen |
Verzögerung-vom-Register
(Delay From Register) | Adresse eines internen
Registers um einen Verzögerungswert
abzurufen |
Absoluter-Sprung-vom-Register
(Absolute Jump From Register) | Adresse eines internen
Registers um einen Sprungwert abzurufen |
-
Der
Sende-Befehl-vom-Register-Microcode (Send-Command-From-Register-Microcode) ist ähnlich zu
dem traditionelleren Sende-Befehl, aber die Daten in dem Datenfeld
sind durch den Hostprozessor veränderbar.
Insbesondere in den vorherigen Ausgestaltungen, bei denen die Befehle
und Daten vorgeladen werden und nicht rekonfigurierbar sind, sendet
der Sende-Befehl die Daten in das Datenfeld, welches mit dem Befehl in
dem Befehlsplan vorgespeichert ist. Allerdings verwendet das Sende-Befehl-Register
(Send-Command-Register) Daten von einem der Register 40 als
Daten für
den Befehlsrahmen. Das Register ist in dem Datenfeld des Sende-Befehl-vom-Register-Microcode
definiert und die Befehle als solche, die von der Bussteuerung ausgegeben
werden, wenn die Bussteuerung den Befehlsplan abarbeitet, sind durch
den Hostprozessor durch bloßes
Verändern
der Werte konfigurierbar, die in dem entsprechenden Register 40 gespeichert
sind.
-
Der
Sende-Daten-vom-Register-Microcode-Befehl (Send-Data-From-Register-Microcode-Befehl)
ist ähnlich
zu dem Sende-Befehl-vom-Register-Microcode, allerdings wird er verwendet,
um Daten anstelle von Befehlen zu senden. Insbesondere verwendet
das Sende-Befehl-Register Daten von einem der Register 40 als
Daten für
den Datenrahmen. Das Register ist in dem Datenfeld für den Sende-Daten-Befehl definiert
und die Daten als solche, die von der Bussteuerung gesendet werden,
sind, wenn die Bussteuerung den Befehlsplan abarbeitet, von dem
Hostprozessor durch bloßes
Verändern
des Werts konfigurierbar, der in dem entsprechenden Register 40 gespeichert
ist.
-
Wie
vorher diskutiert enthalten die Systeme und Verfahren der vorliegenden
Erfindung Verzögerungsmikrocodes,
die spezifische Verzögerungen
in der Operation erlauben. In den vorherigen Ausgestaltungen, in denen
die Befehle und Daten vorgeladen wurden und nicht rekonfigurierbar
waren, sind die Daten für
den Verzögerungswert
mit dem Verzögerungsbefehl
in dem Befehlsplan vorgespeichert. Allerdings verwendet der Verzögerung-vom-Register-Befehl
(Delay-From-Register-Befehl)
Daten von einem der Register 40 als Daten für die Verzögerungszeit.
Das Register ist in dem Datenfeld für den Verzögerung-Befehl definiert. Und
hier sind wiederum die Verzögerungswerte,
die von dem Verzögerung-vom-Register-Befehle
gesendet sind, die von der Bussteuerung ausgegeben worden sind,
wenn sie den Befehlsplan abarbeitet, von dem Hostprozessor durch bloßes Verändern des
Wertes konfigurierbar, der in dem entsprechenden Register 40 gespeichert
ist.
-
Zusätzlich enthalten
die Systeme und Verfahren der vorliegenden Erfindung einen Absoluter-Sprung-vom-Register-Microcode-Befehl
(Absolute-Jump-From-Register-Microcode-Befehl).
Dieser Befehl leistet dieselben Aktionen wie der Absoluter-Sprung-Code
(Absolute-Jump-Code), mit der Ausnahme, dass die Da ten für den absoluten
Sprungwert im Gegensatz zu einem Datenfeld, das mit dem Befehl in
dem Befehlsplan gespeichert ist, von den Registern 40 kommt,
wobei das Register in dem Datenfeld für den Absoluter-Sprung-Code
definiert ist. So wie bei den anderen zugefügten Befehlen, sind die Sprungwerte
von dem Hostprozessor durch bloßes
Verändern
des Wertes konfigurierbar, der in dem entsprechenden Register 40 gespeichert
ist, das als Datenfeld für
den Befehl verwendet wird. Der Hostprozessor als solcher kann durch
Verändern
des Wertes in dem Register kontrollieren, wohin die Bussteuerung
in dem Befehlsplan springt.
-
In
den 5 und 6 werden Beispiele zur Verwendung
der Sende-Daten-vom-Register-
und der Absoluter-Sprung-vom-Register-Befehle illustriert. Zum Beispiel
werden in 5 die Serien von Instruktionen beginnend
mit der Speicheradresse Null gespeichert. Nach Beginn der Operationen
führt die
Bussteuerung den ersten Mikrocodebefehl aus, welcher ein Sende-Befehl
ist. Der Sende-Befehl hat ein verbundenes Datenfeld, das den Befehlsrahmen
definiert, der über
den Netzwerkbus 12 zu übertragen
ist, um ein Trigger-Befehl zu sein. Danach wird einem anderen Sende-Befehl
das verbundene Datenfeld bereitgestellt, was andeutet, dass der
zu sendende Befehlsrahmen eine Leseoperation für das Netzwerkbauteil mit der
Adresse 1 sein soll (bezeichnet mit N1 in 2). Der
Antwort-Verzögerung-Befehl wird dann
ausgeführt,
um dem Netzwerkbauteil N1 eine Gelegenheit zu geben, Daten bereitzustellen,
die mit w bezeichnet sind. Danach wird ein weiterer Send-Befehl
ausgeführt
und das verbundene Datenfeld weist darauf hin, dass ein zu sendender
Befehlsrahmen eine Leseoperation für das Netzwerkbauteil mit der
Adresse 2 sein soll (bezeichnet mit N2 in 2). Ein Antwort-Verzögerung-Befehl wird dann
ausgeführt,
um dem Netzwerkbauteil N2 eine Zeitperiode bereitzustellen, in welcher
die angefragten Daten bereitzustellen sind, die mit x bezeichnet
sind.
-
Im
Hinblick auf den folgenden Satz von Befehlen enthält der Befehlsplan
den Sende-Daten-vom-Register-Befehl, der erlaubt, dass Daten, die
mit dem Befehl verbunden sind, von dem Hostprozessor verändert werden.
Dieses Verfahren erlaubt der Hoststeuerung Daten asynchron zu den
Netzwerkoperationen aber trotzdem in Echtzeit zurück auf das
Netzwerk zu legen, so dass Kontrolloperationsdaten, die von Daten
berechnet sind, die von dem Netzwerk und anderen Quellen extrahiert
sind, auf dem Netzwerk fast in Echtzeit platziert werden können.
-
Insbesondere
wird ein Sende-Befehl mit dem Datenfeld erneut ausgeführt, das
mit dem Sende-Befehl verbunden ist, was andeutet, dass Daten zu
dem Netzwerkbauteil mit der Adresse 3 geschrieben werden sollen
(bezeichnet mit N3 in 2). Die mit dem Befehl verbunden
Daten werden von dem Register 40 mit der Adresse 10 unter
Verwendung des Sende-Daten-vom-Register-Befehls bereitgestellt.
Der Wert y als solcher, der in dem Register mit Adresse 10 gespeichert
ist, wird zu dem Netzwerkbauteil mit Adresse 3 gesendet. Weil der
Wert y in einem der Register gespeichert ist, ist der Wert y variabel
und wird durch den Hostprozessor definiert.
-
Weiterhin
wird ein anderer Sende-Befehl mit dem Datenfeld ausgeführt, das
spezifiziert, dass Daten auf das Netzwerkbauteil mit der Adresse
4 geschrieben werden sollen (bezeichnet mit N4 in 2).
Danach wird ein Sende-Daten-vom-Register-Befehl
mit dem verbundenen Datenfeld erneut ausgeführt, das die Daten breit stellt,
die zu dem Netzwerkbauteil N4 von dem Register mit der Adresse 12 geschrieben
werden sollen. Die Daten, die mit z bezeichnet sind und die in dem
Register mit Adresse 12 gespeichert sind, sind wieder variabel
und durch den Hostprozessor, basierend auf der Analyse des Hostprozessors
von den Daten aus dem Netzwerk, konfigurierbar. Um diesen Prozess
zu wiederholen, wird ein Absoluter-Sprung-Befehl mit dem Datenfeld
ausgeführt,
das besagt, dass die Ausführung
zu dem Speicherort Null springen soll, wobei tatsächlich die
Ausführung
des Prozesses erneut gestartet wird. Daher liest die Serie von Instruktionen
in diesem Beispiel periodisch Daten, die von den Netzwerkbauteilen
N1 und N2, beispielsweise ein erster und zweiter Sensor, bereitgestellt
werden und schreibt Daten periodisch auf die Netzwerkbauteile N3
und N4, beispielsweise wie ein dritter und vierter Aktuator.
-
Mit
Bezug zu 6 wird der Absoluter-Sprung-vom-Register-Befehl
erläutert.
Dieser Befehl erlaubt der Hoststeuerung von der Hauptprogrammschleife
zu einer anderen Programmschleife zu springen, die einen anderen
Codesatz ausführen
kann. Wie illustriert, liefert der Hostprozessor insbesondere die
Adresse für
den Absoluter-Sprung-vom-Register-Befehl. Wie illustriert, kann
die Adresse des Codes für
den zweiten Prozess (bezeichnet mit Adresse A) in dem Register mit
der Adresse 14 gespeichert werden, so dass die Bussteuerung, basierend
auf der Analyse des Prozesses, der von dem Hostprozessor durchgeführt wird,
zu dem zweiten Satz von Befehlen schaltet. An dieser Stelle muss
verstanden werden, dass die 5 und 6 nur
illustrative Ausgestaltungen von der Verwendung des zusätzlichen
Mikrocodes sind. Die Mikrocodes haben viele denkbare Anwendungen
in dem Zusammenhang mit einem Netzwerksystem.
-
Viele
Modifikationen und andere Ausgestaltungen von der Erfindung, zu
denen diese Erfindung gehört und
die den Nutzen der Lehre haben, die in der vorangegangen Beschreibung
und den verbundenen Zeichnungen präsentiert wurde, werden einem
Fachmann einfallen. Daher ist zu verstehen, dass die Erfindung nicht zu
der speziellen offenbarten Ausgestaltung limitiert ist und dass
beabsichtigt ist, Modifikationen und andere Ausgestaltungen im Rahmen
der anhängenden
Ansprüche
zu umfassen. Obwohl hier spezifische Ausdrücke verwendet wurden, werden
sie ausschließlich
in einem generischen und beschreibenden Sinn verwendet und nicht
mit der Absicht zur Eingrenzung.