-
Die
vorliegende Patentanmeldung beansprucht die Priorität der U.S.-Provisional-Anmeldung mit
der Seriennummer 60/527,141, eingereicht am 5. Dezember 2003 mit
dem Titel „Architecture
and Backplane Optimized for Implementation of Synchronous, Multi-channel,
Moderate Bandwidth, Galvanically Isolated Instrumentation Devices".
-
Eine
modulare Instrumentierung ermöglicht eine
kostengünstige
Konfiguration einer Instrumentierung gemäß spezifischen Bedürfnissen
und Anwendungen. Es gibt unterschiedliche Systemtypen, die eine
modulare Instrumentierung liefern, einschließlich VXI, PCI und zahlreiche
proprietäre
Systeme. Eine modulare Instrumentierung besteht typischerweise aus
einem Kartenkäfiggehäuse und
einer Backplane bzw. Rückwandplatine
mit einer Steuerung. Instrumentierungsmodule passen in das Gehäuse, verbinden
mit der Backplane und kommunizieren mit der Steuerung.
-
Bei
bestimmten Situationen ist es wünschenswert,
dass Module miteinander synchronisiert sind, so dass Operationen,
die in einem Modul durchgeführt
werden, auf Operationen bezogen werden können, die in einem anderen
Modul durchgeführt werden.
Eine solche Synchronisation liefert beträchtliche zusätzliche
Fähigkeit
in dem System als Ganzes. In einigen Fällen wird jedoch eine enge
Synchronisation auf Kosten der galvanischen Trennung zwischen den
Modulen erreicht. Eine Trennung ist wünschenswert, weil Energie von
einem Modul in ein anderes koppeln kann, was zu einer beeinträchtigten Leistungsfähigkeit
und fehlerhaftem oder falschem Betriebsverhalten führt.
-
Es
gibt daher einen Bedarf an einem modularen Instrumentierungssystem
mit Modulen, die galvanisch voneinander getrennt sind, während sie
nach wie vor eine Intermodulsynchronisationsfähigkeit aufweisen.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung, ein
Verfahren zum Konfigurieren eines Moduls über eine Kommunikationsverbindung,
ein Verfahren für
synchrones Auslösen
von Ereignissen in mehreren Modulen und eine Vorrichtung zum Durchführen von
synchronem Auslösen von
Ereignissen in mehreren Modulen und eine Testvorrichtung mit verbesserten
Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch Vorrichtungen gemäß Anspruch 1, 54, 59 und 79
sowie Verfahren gemäß Anspruch
35 und 49 gelöst.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Blockdiagramm einer Backplane eines Kartenkäfigs gemäß den vorliegenden Lehren, das
Leistungsverteilung, Kommunikationsverbindungen und galvanische
Intermodultrennung zeigt;
-
2 eine
Darstellung eines Außenanschlussmusters
für jedes
Modulaufnahmeelement gemäß den vorliegenden
Lehren;
-
3 eine
Dreileitungskommunikationsverbindung zwischen der Steuerung und
einem einzelnen Modul;
-
4 ein
relatives Zeitgebungsdiagramm zwischen dem Takt, der Rahmensynchronisation
und dem Senden und Empfangen von Paketen, wobei eine „steuerungszentrische" Konvention angenommen
wird, so dass die Steuerung Daten an Module „sendet" und Daten von Modulen „empfängt";
-
5 eine
Rahmensynchronisationsschaltung;
-
6 ein
Rahmenresynchronisationszeitgebungsdiagramm;
-
7 eine
Sendepaketfeldstruktur, wobei der Begriff „senden" erneut eine „steuerungszentrische" Perspektive darstellt,
bei der Daten von der Steuerung an Module „gesendet" werden;
-
8 eine
Empfangspaketfeldstruktur, wobei der Begriff „empfangen" erneut eine „steuerungszentrische" Perspektive darstellt,
bei der Daten durch die Steuerung von Modulen „empfangen" werden;
-
9 und 10 Ausführungsbeispiele
von Empfangspaketfeldstrukturen für spezifische Modultypen;
-
11 eine
Modullogik, die für
eine weiche Konfiguration über
einen seriellen Bitstrom spezifisch ist;
-
12 ein
Zeitgebungsdiagramm, das eine relative Zeitgebung des weichen Konfigurationsprozesses
zeigt;
-
13 ein
Flussdiagramm, das Schritte darstellt, die durchgeführt werden,
um ein Modul nach einer Modulrücksetzung
zu konfigurieren; und
-
14 ein
Logikdiagramm für
die Implementierung einer selektiven Rücksetzungsfunktion.
-
Nachfolgend
wird näher
Bezug genommen auf die vorliegende Erfindung, von der Beispiele
in den beiliegenden Zeichnungen dargestellt sind, wobei sich gleiche
Bezugszeichen überall
auf gleiche Elemente beziehen. Im allgemeinen umfasst die vorliegende
Erfindung eine Architektur und eine Backplane, die wiederum aus
einer physikalischen Schicht, verschiedenen seriellen Kommunikationsprotokollen
und einer Unterstützungshardwareinfrastruktur
bestehen kann. Die folgende detaillierte Beschreibung stellt Verfahren
dar, die verkörpert
sein können
durch Routinen und symbolische Darstellungen von Operationen von
Datenbits in einem computerlesbaren Medium, zugeordnete Prozessoren, Leistungsversorgungen,
Kommunikationsbusse, Universalcomputern, die mit Datenerfassungskarten konfiguriert
sind, und dergleichen. Die Architektur, Backplane, seriellen Kommunikationsprotokolle
und unterstützende
Hardware liefern eine Kombination aus Merkmalen und Attributen,
die die Implementierung von merkmalsreichen, hochleistungsfähigen programmierbaren
Mehrkanalsystem-Leistungsversorgungen ermöglichen. Diese Merkmale und
Attribute können
auch vorteilhaft angewendet werden bei anderen Instrumentenklassen,
wie z. B. Signalverlaufdigitalisierern, Voltmetern, Signalgeneratoren,
Signalanalysatoren und einer anderen Instrumentierung, die von der
zeitsynchronen Erzeugung und Erfassung von Signalen auf mehreren
Kanälen
mit hoher galvanischer Trennung profitieren kann. Die mehreren Kanäle, die
in Betracht gezogen werden, können
von einer gleichen Art sein, z. B. mehrere Kanäle von systemprogrammierbaren
Leistungsversorgungen, oder von unterschiedlicher Art, z. B. gemischte Kanäle von Leistungsversorgungen,
elektronischen Lasten, Signalverlaufdigitalisierern und synthetisierte Signalgeneratoren.
Wie er hierin verwendet wird, kann sich der Begriff „Backplane" auf jede Gruppe von
Leitern beziehen, die in der Lage sind, das hierin beschriebene
Kommunikationssystem und die Leistungsversorgung zu implementieren.
Obwohl ein spezifisches Ausführungsbeispiel
einer Backplane, wie sie hierin beschrieben ist, eine Sammlung von Leiterbahnen
auf einer gedruckten Schaltungsplatine umfasst, kann die Backplane
auch als ein Mehrfachleiterkabel, als mehrere Kabel und/oder eine
Reihe von Drähten
implementiert sein, die Vorrichtungen für die Zwecke der Kommunikation
und/oder Leistungsverteilung miteinander verbinden. Eine solche
Backplane kann auch durch optische Signale implementiert sein, beispielsweise
durch Faseroptikkabel, die mit entsprechenden optischen Sendern
und Empfängern
eine Schnittstelle bilden.
-
Bezüglich jeder
hierin beschriebenen Software wird ein Durchschnittsfachmann auf
diesem Gebiet erkennen, dass eine Vielzahl von Plattformen und Sprachen
zum Erzeugen von Software zum Durchführen der hierin aufgezeigten
Prozeduren existiert. Das bevorzugte Ausführungsbeispiel der vorliegenden
Erfindung kann unter Verwendung jeder einer Vielzahl von Variationen
von C implementiert werden, ein Durchschnittsfachmann auf diesem Gebiet
wird jedoch auch erkennen, dass die Wahl der genauen Plattform und
Sprache häufig
durch die Gegebenheiten des tatsächlichen
aufgebauten Systems vorgegeben wird, so dass was für einen
Systemtyp funktionieren kann, bei einem anderen System nicht effizient
ist. Es sollte auch klar sein, dass die Routinen und Berechnungen,
die in dieser Erfindung beschrieben sind, nicht darauf beschränkt sind,
als Software auf einem Computer oder Digitalsignalprozessor (DSP)
ausgeführt
zu werden, sondern auch in einem Hardwareprozessor implementiert
sein können. Beispielsweise
könnten
die Routinen und Berechnungen mit Hardwarebeschreibungssprache (HDL) in
einer ASIC oder in einem feldprogrammierbaren Gatterarray (FPGA)
implementiert sein.
-
Mit
besonderer Bezugnahme auf 1 der Zeichnungen
ist eine massebezogene Steuerung 100, ein erstes, zweites
und n-tes Modul 102, 104, 106, eine Isolatorvorspannungsleistungsquelle 108 und
eine Volumenleistungsquelle 110 gezeigt. Die Volumenleistung,
wie sie hierin verwendet wird, bezieht sich auf eine Leistungsquelle
für eine
verteilte Leistungsarchitektur, in der eine oder mehrere Leistungsquellen
Leistung für
eine Mehrzahl von Leistungslastpunkten liefert. Bei einem alternativen
Ausführungsbeispiel
kann die Volumenleistung auch die Isolatorvorspannungsleitung liefern.
Ein Gehäuse (nicht
gezeigt) hält
die Steuerung und die Module als eine einzige physikalische Einheit,
die vermittels eines Gestells in ein größeres Testsystems eingebaut sein
kann. Das Gehäuse
umfasst auch eine Backplane 101. Zusätzliche Module können dem
Gehäuse hinzugefügt werden,
abhängig
von dem bestimmten Ausführungsbeispiel
des Gehäuses,
der Backplane 101 und der Unterstützungsinfrastruktur des spezifischen
Ausführungsbeispiels.
Die Module 102, 104, 106 können jede
Kombination aus einer oder mehreren programmierbaren Leistungsversorgungen,
Signalverlaufdigitalisierer, Voltmeter, Signalgeneratoren, Signalanalysatoren
oder andere Ein- oder Mehrkanalinstrumente sein. Bei einem spezifischen
Ausführungsbeispiel
ist zumindest eines der Module, das das Gehäuse besetzt, ein Leistungsversorgungsmodul.
Das Leistungsversorgungsmodul umfasst einen ersten und einen zweiten
Signalverlaufgenerator für die
Steuerung einer Leistungsversorgungsausgangsspannung und -strom
und einen ersten und einen zweiten Digitalisierer für die Messung
der Leistungsversorgungsausgangsspannung und -strom. Bei einem anderen
Ausführungsbeispiel
ist zumindest eines der Module, das das Gehäuse besetzt, ein elektronisches
Lastmodul zum Aufnehmen der Leistung, die von einer externen Vorrichtung
ausgegeben wird.
-
Die
Steuerung 100 weist einen eingebetteten Mikroprozessor
und Logikschaltungen auf, zum Durchführen von Steuerungsoperationen,
die nachfolgend näher
beschrieben werden. Die Steuerung 100 weist auch GP-IP,
USB- und LAN-Schnittstellen 103 auf, für eine optionale Kommunikation
zwischen dem modularen System und einem Computer oder einer anderen
externen Hardware. Ein Durchschnittsfachmann auf diesem Gebiet erkennt,
dass andere standardisierte Kommunikationsschnittstellen, wie z.
B. RS-232 oder IEEE-1394/Firewire optional vorgesehen sein können. Proprietäre und nichtstandardisierte
Kommunikationsschnittstellen werden ebenfalls in Betracht gezogen.
Obwohl es ferner architektonisch für die Steuerung 100 praktisch
ist, massebezogen zu sein, ist klar, dass alternative Ausführungsbeispiele
eine andere galvanische Trennungsbarriere zwischen die Steuerung 100 und Schnittstellen 103 einfügen können und
es dadurch der Steuerung 100 ermöglichen, bezüglich den
geerdeten externen Vorrichtungen zu „schweben", die mit den Schnittstellen 103 verbunden
sind, und dadurch eine Einrichtung zum Unterbrechen von Masseströmen zu liefern,
die andernfalls zwischen der Steuerung 100 und diesen externen
Vorrichtungen fließen können. Noch
ein weiteres Ausführungsbeispiel
kann das Massebeziehen der Steuerung 100 beibehalten, während eine
Trennung in den Schnittstellen 103 vorgesehen ist, um es
externen Vorrichtungen zu ermöglichen,
zu „schweben". Die beschriebene LAN-Schnittstelle
liefert eine Trennung externer Vorrichtungen auf genau diese Weise.
Eine serielle Kommunikationsverbindung 112 verbindet jedes
Modul 102, 104, 106 mit der Steuerung 100 durch
einen Kommunikationsverbindungsisolator 114, der auf jedem
Modul 102, 104, 106 angeordnet ist. Die
Kommunikationsverbindungstrenner 114 können jeder herkömmliche
und geeignete Isolator sein, der für einen Fachmann auf diesem
Gebiet vertraut ist und bei einem spezifischen Ausführungsbeispiel
einen magnetisch gekoppelten Isolator umfasst, aber kann auch einen
Optokoppler, einen Pulstransformator oder eine kapazitiv gekoppelte
Vorrichtung umfassen. An einer Modulseite des Isolators 114 ist
die Kommunikationsverbindung 112 mit der Modulseitenlogik 116 verbunden,
für eine
intelligente Kommunikation zwischen der Steuerung 100 und
den Modulen 102, 104, 106. Die Modulseitenlogik 116 steuert auch
spezifische Modulfunktionen und sendet Status- und Messinformationen
an die Steuerung 100 zurück. Die Isolatorvorspannungsleistungsquelle 108 wird über einen
Isolatorvorspannungsbus auf der Backplane 101 an jedes
Modul 102 – 106 verteilt. Leistung
von der Volumenleistungsquelle 110 wird über einen
Volumenleistungsbus 118 verteilt, der ebenfalls Teil der
Gehäusebackplane 101 ist
und durch transformatorgetrennte Gleichsignal/Gleichsignaltyp-Leistungswandler 117 mit
jedem Modul 102, 104, 106 verbunden ist.
Bei einem bevorzugten Ausführungsbeispiel
bestehen galvanisch getrennte Volumenleistungs-Gleichsignal/Gleichsignalwandler 117 aus
Transformatoren und zugeordneten Schaltungen, die in jedem Einsteck-
bzw. Plug-In-Modul 102, 104, 106 unter gebracht
sind. Andere Trennungsvorrichtungen sind annehmbar, abhängig von dem
Leistungspegel, der über
die galvanische Trennungsgrenze befördert werden muss. Bei einem
anderen spezifischeren Ausführungsbeispiel
gibt es ein einzelnes Modul, das das Gehäuse besetzt. In diesem Fall
kann das einzelne Modul in die Rückebene des
Gehäuses
eingesteckt sein. Alternativ kann das Eliminieren der Einsteckfähigkeit
Kosten zum Herstellen des Systems reduzieren auf Kosten möglicher Erweiterbarkeit
und Wiederverwendbarkeit des Moduls in einem anderen System, in
diesem Fall kann die „Backplane" eine Mehrzahl von
Drähten
umfassen, um die Kommunikationsverbindung und Leistungsverteilung
zu liefern. Ein Durchschnittsfachmann auf diesem Gebiet wird andere
physikalische Implementierungen erkennen, die geeignet sind, um die
hierin beschriebene Grundarchitektur zu realisieren.
-
Die
Backplane 101 umfasst drei einzelne Systeme; das Leistungsverteilungssystem,
das Isolatorvorspannungsleistungsverteilungssystem und das Kommunikationssystem.
Das Leistungsverteilungssystem 118 ist in einer Buskonfiguration
implementiert und kann Wechselsignal- oder Gleichsignalleistung
verteilen, abhängig
von der Entwurfsauswahl. Bei einem spezifischen Ausführungsbeispiel liefert
das Leistungsverteilungssystem etwa 175 Watt Gesamteingangsleistung
bei 48 Volt Gleichspannung pro Modul für bis zu vier Module. Jedes
Modul ist von dem Gehäuse,
in dem dasselbe gehalten wird, galvanisch getrennt, und nimmt die
Leistungsverteilung durch einen Gleichsignal/Gleichsignalwandler 117 auf.
Der Gleichsignal/Gleichsignalwandler 117 ist Teil der Modularchitektur
und ist durch einen Backplaneverbinder mit dem Leistungsverteilungssystem
verbunden, das Teil der Backplane 101 ist. Bei einem spezifischen
Ausführungsbeispiel
ist der Backplaneverbinder ein Einstücksockelverbinder, der aus
einer Gesamtzahl von 26 Stiften auf 100 Tausendstel Zoll Zentren
besteht. Genauer gesagt, der Backplanesockelverbinder ist ein TSM-113-03-S-DV,
der durch Samtec, Inc., hergestellt und verkauft wird. Ein passendes Modulaufnahmeelement
ist auf dem Modul angeordnet, für
eine direkte Verbindung mit dem Backplanesockelverbinder und ist
bei einem spezifischen Ausführungsbeispiel
Teil Nr. 69154-313,
hergestellt von FCI/Framatome Connectors Inc. Die Anzahl von Stiften
in dem Backplaneverbinder überschreitet
die Anzahl von Signalen aufgrund der Gesamtstromtragekapazitätsbeschränkungen
des Verbinders. Es gibt beispielsweise eine Gesamtzahl von zehn
Stiften, die der +48-V-Leistungsverteilung
in jedem Modulverbinder zugewiesen sind. Ein Durchschnittsfachmann
auf diesem Gebiet erkennt, dass bei alternativen Ausführungsbeispielen
andere Gleichspannungspegel und andere Konfigurationen und Anzahlen
von Stiften verwendet werden können. Weil
in den Modulen 102, 104, 106 eine galvanische Trennung
implementiert ist, gibt es kein Problem mit einer Trennung oder
einem Sicherheitsabstand innerhalb des Backplaneverbinders. Bei
einem anderen Ausführungsbeispiel,
das nicht dargestellt ist, kann die Volumenleistung eine Wechselleistung
sein, die durch einen Wechselsignal/Wechselsignaltransformator oder
einen Gleichsignal/Wechselsignal-Inverter an jedes Modul verteilt
wird, je nachdem. Weil die Transformatoren/Wandler auf dem Modul 102, 104, 106 angeordnet
sind, ist es möglich,
dass unterschiedliche Module unterschiedliche Typen und Pegel von
Volumenleistung empfangen.
-
Das
Isolatorvorspannungsleistungsverteilungssystem liefert Leistung
an die Kommunikationssystemtrenner, die auf jedem Modul zwischen
der Backplane 101 und den Kommunikationsverbindungen 112 angeordnet
sind. Das Isolatorvorspannungsleistungsverteilungssystem ist in
einer Buskonfiguration implementiert. Das Isolatorvorspannungsleistungsverteilungssystem
liefert Leistung an den massebezogenen Abschnitt der Trenner 114,
der zwischen der Backplane 101 und der Kommunikationsverbindung 112 angeordnet
ist. Modulbezogene Abschnitte der Trenner 114 empfangen
Vorspannungsleistung von Leistungsversorgungen, die von der Modulseite
der Volumenleistungswandler 117 abgeleitet sind.
-
Mit
besonderer Bezugnahme auf 2 der Zeichnungen
ist ein Außenanschlussmuster
eines spezifischen Ausführungsbeispiels
eines Modulaufnahmeelements 250 gezeigt, zum Zusammenpassen mit
einem Backplaneverbinder gemäß der vorliegenden
Lehre, wobei fünf
(5) der Verbinderaufnahmeelemente Leistungsaufnahmeelemente 251 sind,
die der Verteilung der 48 Volt Volumenleistung zugeordnet sind,
und fünf
(5) der Verbinderaufnahmeelemente sind Leistungsrückführaufnahmeelemente 252,
die einem Rückführweg für die Volumenleistung
zugewiesen sind. Drei (3) der Verbinderaufnahmeelemente sind Kommunikationsverbindungsaufnahmeelemente 253 und
weitere drei (3) der Verbinderaufnahmeelemente sind Kommunikationsverbindungsrückkehrwege 254.
Außerdem
liegt in dem Modulaufnahmeelement 250 ein Lüfterleistungsaufnahmeelement 255 und
ein Lüfterleistungsrückführaufnahmeelement 256,
eine Isolatorvorspannungsleistung 257 und ein Isolatorvorspannungsleistungsrückführaufnahmeelement 258 und
zwei Abschirmaufnahmeelemente 259 vor. Wie es für einen
Durchschnittsfachmann auf diesem Gebiet klar ist, gibt es viele
mögliche
Außenanschlussmuster
für den
Modulverbinder und die Aufnahmeelemente 250, die mit der
vorliegenden Lehre übereinstimmen,
abhängig
von der Anzahl der Module und Leistungsanforderungen des Gesamtsystems.
-
Mit
besonderer Bezugnahme auf 3 der Zeichnungen
ist ein Blockdiagramm der seriellen Dreileitungskommunikationsverbindung 112 zwischen
jedem Modul 102, 104, 106 und der Steuerung 100 gezeigt.
Jede Kommunikationsverbindung 112 liefert die Kommunikationsinfrastruktur
von der Steuerungsseitenlogik 100 und der Modulseitenlogik 116. Das
serielle Dreileitungskommunikationssystem umfasst eine Konfiguration,
bei der es eine eigens vorgesehene Kommunikationsverbindung zwischen
der Steuerung 106 und jedem der Bestimmungsortmodule 102, 104, 106 gibt.
Wie es in vorhergehenden Absätzen
allgemeiner erwähnt
wurde, ist jede Leitung der Kommunikationsverbindung 112 von
dem Backplaneverbinder und der Backplane 101 galvanisch getrennt.
Jede serielle Kommunikationsverbindung 112 umfasst eine
Datenausgabeleitung 104, eine Dateneingabeleitung 106 und
eine Taktleitung 208. Jede Taktleitung 208 ist
von einer gemeinsamen Taktquelle 210 abgeleitet und trägt ein Taktsignal, das
die Steuerung 100 mit den Modulen 102, 104, 106 verbindet.
Jedes Taktsignal ist unabhängig
von allen anderen Taktsignalen, aber alle Taktsignale sind von der
gleichen Taktquelle 210 in der Steuerung 100 abgeleitet,
um eine synchrone Operation zwischen den Modulen 102, 104, 106 zu
liefern. Das Taktsignal kann nach Wunsch selektiv gesperrt werden,
wie es hierin beschrieben ist, aber aktivierte Taktsignale sind
alle mit der gemeinsamen Taktquelle 210 synchronisiert.
Bei einem spezifischen Ausführungsbeispiel
verwendet das serielle Kommunikationssystem eine „hoch wahre" Logikübereinkunft.
Ein „wahr" ist definiert als
eine logische „1", was einem hohen
Spannungszustand in Hardware entspricht. Beispielsweise ist bei
der Verwendung einer 3,3-V-Logik eine logische „1" ein Spannungszustand von mehr als 2,4
Volt.
-
Bei
einem spezifischen Ausführungsbeispiel umfasst
die Backplane 101 gedruckte Leiterbahnen auf einer gedruckten
Schaltungsplatine. Die Datenausgabeleitung 204, die Dateneingabeleitung 206 und
die Taktleitungen 208 sind Leiterbahnen der gedruckten
Schaltungsplatine mit einer gesteuerten Impedanz von im Wesentlichen
75 Ohm +/– 10
%. Die gesteuerten Impedanzleiterbahnen werden bevorzugt, um eine
hohe Datenratenübertragung über die Backplane 101 zuverlässig zu
erreichen und müssen für ein Ausführungsbeispiel,
das eine langsamere Datenrate implementiert, nicht notwendig sein.
Signalrückführwege können unter
Verwendung von einer oder mehreren gemeinsamen Schichten einer leitfähigen Ebene
in der gedruckten Schaltungsplatine implementiert werden, die die
Backplane 101 umfasst.
-
Die
Grundgerätsteuerung 100 kommuniziert mit
jedem Modul 102, 104, 106 unter Verwendung von
Sendedatenpaketen, die über
die Datenausgabeleitung 204 gesendet werden. Jedes Modul 102, 104, 106 kommuniziert
mit der Grundgerätsteuerung 100 unter
Verwendung von Empfangsdatenpaketen, die über die Dateneingabeleitung 206 gesendet
werden. Bei einem spezifischen Ausführungsbeispiel definiert die
Steuerung alle 5,12 Mikrosekunden einen Kommunikationsrahmen. Die
Grundgerätsteuerung 100 leitet
die Übertragung
von einem Sendepaket an dem Beginn jedes Kommunikationsrahmens ein.
Die Sendepakete sind einmalig und sind modulabhängig, werden aber an jedes
Modul 102, 104, 106 zur gleichen Zeit
gesendet und mit dem gleichen Taktsignal synchronisiert. Falls eines
oder mehrere Module 102, 104, 106 ein
Empfangspaket erzeugt, wird dasselbe während dem gleichen Kommunikationsrahmen
an die Grundgerätsteuerung 100 gesendet,
und alle Module 102, 104, 106 senden
ihre entsprechenden Empfangspakete zur gleichen Zeit und synchronisiert mit
dem gleichen Taktsignal. Während
jedem Kommunikationsrahmen wird ein Sendepaket an jedes Modul gesendet.
Bei einem spezifischen Ausführungsbeispiel
wird ebenfalls während
jedem Kommunikationsrahmen ein Empfangspaket an die Grundgerätsteuerung 100 gesendet,
aber alternative Ausführungsbeispiele,
bei denen Empfangspakete an einem ganzzahligen Teilvielfachen von
Kommunikationsrahmen gesendet werden, liegt ebenfalls innerhalb
des Schutzbereichs der vorliegenden Lehre. Sendepaketdatenbits ändern den
Zustand auf ansteigenden Flanken des Grundgerätsteuerungstakts 208,
während
Empfangspaketdatenbits, wenn sie in der Grundgerätsteuerungslogik empfangen
werden, ihren Zustand an abfallenden Flanken des Takts 208 ändern. Bei
einem spezifischen Ausführungsbeispiel ist
der Halbtaktzykluszeitgebungsversatz durch Invertieren des seriellen
Taktsignals in den Modulen 102, 104, 106 implementiert.
Mit weiterer Bezugnahme auf 3 der Zeichnungen
ist ein Ausführungsbeispiel
einer Logik zum Implementieren des Taktversatzes zwischen den Sende-
und Empfangspaketen gezeigt. Das Taktsignal 208 von der
Grundgerätsteuerung 200 ist
an der Modulseite bei 211 invertiert. Alle Modulkommunikationslogik
verwendet das resultierende invertierte Taktsignal 212.
Das Steuerungsseitentaktsignal 208 taktet Steuerungsseitenschieberegister 230 zum
Senden und Empfangen einzelner Bits, die die Sende- und Empfangspakete
bilden. Gleichartig dazu taktet das invertierte Taktsignal 212 auf
der Modulseite Modulseitenschieberegister 214 zum Empfangen
und Senden einzelner Bits, die die Empfangs- und Sendedatenpakete
bilden. Folglich werden Daten auf der Modulseite an der ansteigenden
Flanke des invertierten Takts 212 und der abfallenden Flanke
des Grundgerätsteuerungstakts 208 getaktet.
-
Jedes
Sende- und Empfangspaket hat eine feste Bitlänge. Abhängig von bestimmten Beschränkungen
bezüglich
der Datenfeldstruktur des Pakets ist der Dateninhalt jedes Sendepakets
typischerweise einmalig für
jedes Modul. Ein Ausnahmetyp zu dieser allgemeinen Regel sind Fälle, wo
Auslösesignale
oder Befehle parallel an mehrere Module gesendet werden, um eng
synchronisierte Aktionen in den mehreren Modulen zu erreichen. Bei
einem spezifischen Ausführungsbeispiel
kann jedes Modul 102, 104, 106 unabhängig von
anderen Modulen arbeiten, aber ein Teilsatz oder alle mehreren Module
können auch
auf eine eng synchronisierte Weise arbeiten, je nach Wahl des Systemnutzers,
ohne Leistungsfähigkeitskompromisse.
-
Jedes
Modul kommuniziert mit der Steuerung unter Verwendung der Dateneingabeleitung 206 mit
Empfangsdatenpaketen. Die Logik in jedem Modul leitet die Übertragung
von einem Empfangsdatenpaket während
dem gleichen Kommunikationsrahmen ein. Die Empfangspaketdateninhalte
sind normalerweise auch einmalig für jedes Modul, erneut abhängig von
bestimmten Beschränkungen
bezüglich
der Feldstruktur. Folglich empfängt
die Steuerung ein Empfangsdatenpaket für jedes Modul, mit dem dasselbe
in einem System während
jedem Kommunikationsrahmen kommuniziert. Das Empfangsdatenpaket
ist relativ zu dem Beginn des Sendedatenpakets zeitlich um zwei
serielle Taktperioden verzögert.
Jedes Sende- und Empfangsdatenpaket ist 64 Bits lang. Die resultierende
Bitrate ist 12,5 Mbps, Vollduplex (oder 80 nsek/Bit). Bei einem
spezifischen Ausführungsbeispiel
wird es daher bevorzugt, dass die Datentrenner 114 bemessen
sind, um zumindest die Datenraten unterzubringen, die in dem System vorliegen.
Falls höhere
Datenraten gewünscht
sind, können
schnellere Datenisolationsvorrichtungen verwendet werden. Die Sendepaketdatenbits ändern den
Zustand auf den ansteigenden Flanken des Takts, während die
Empfangspaketdatenbits den Zustand auf abfallenden Flanken des Takts ändern. Die Halbtaktzykluszeitgebung
kann durch Invertieren des Taktsignals in einer Logik implementiert
werden, die in den Modulen 102, 104, 106 angeordnet
ist. Ein spezifisches Ausführungsbeispiel
der Kommunikationssystemlogik verwendet eine hoch wahre Logikübereinkunft.
Ein „wahrer" Zustand, der als
logische „1" definiert ist, entspricht
einem hohen Spannungszustand in der Hardware. Beispielsweise ist
V > 2,4 V für 3,3 V
Logikvorrichtungen.
-
Mit
besonderer Bezugnahme auf 3 und 4 der
Zeichnungen ist ein Zeitgebungsdiagramm für die Sende- und Empfangspakete
gezeigt. Pfeile, die in dem Zeitgebungsdiagramm des Takts 208 gezeigt
sind, stellen ansteigende Flanken des Mastertakts dar, und die Pfeile,
die in dem Zeitgebungsdiagramm für
den invertierten Takt 212 gezeigt sind, stellen ansteigende
Flanken des Komplements des Takts 208 dar, die mit den
abfallenden Flanken des Grundgerättakts 208 zusammenfallen.
Die Steuerung 100 leitet ein Sendepaket 354 ein,
mit dem Beginn des Rahmenbits 300 als einer logischen „1" auf der ansteigenden
Flanke des Steuertakts 208. Die Modulseitenlogik 102 erkennt
den Beginn des Rahmenbits 300 an der ansteigenden Flanke
des invertierten Takts 208, der relativ zu der ansteigenden Flanke
des Takts 208 zeitlich einen halben Zyklus später ist.
Ein Verzögerungselement 215 fügt eine Ein(1)-Zyklus-Verzögerung des
invertierten Takts 208 ein, und an der nächsten ansteigenden
Flanke des invertierten Takts 212 wird ein erstes Bit des Empfangspakets 308 auf
der Dateneingabeleitung 206 präsentiert. Die nächste ansteigende
Flanke des Takts 208 speichert dann das Empfangspaketbit
in einem Empfangspaketschieberegister 213 zwischen, das
zwei volle Zyklen des Grundgerätsteuerungstakts 208 nach
dem Beginn des Rahmens 300 in dem Sendepaket 354 ist.
Folglich sind die Sende- und Empfangspakete 354, 358 mit
dem gleichen Taktsignal 208 synchronisiert und zeitlich
relativ zueinander um zwei vollständige Zyklen des Grundgerättakts 208 verzögert.
-
Bezüglich der
hierin beschriebenen Zeitgebungsversätze erkennt ein Durchschnittsfachmann auf
diesem Gebiet, dass es eine Vielzahl von Einrichtungen gibt, durch
die die Zeitversätze
erhalten werden können.
Darüber
hinaus ist auch klar, dass die Ausbreitungsverzögerungen in dem seriellen Kommunikationsweg,
insbesondere diejenigen, die den Trenner 114 zugeordnet
sind, abhängig
von dem bestimmten Ausführungsbeispiel
variieren können.
Daher folgt, dass die Auswahl aktiver Taktflanken und die absichtliche
Einfügung
von Verzögerungselementen
geändert
werden kann, um die hierin beschriebenen Zeitversätze zu erreichen
oder um andere Zeitversätze
zu erreichen, die für
das spezifische Ausführungsbeispiel
als angemessen angesehen werden.
-
Die
Grundgerätsteuerung 100 beendet
das Sendepaket mit einem 4-Bit-Resynchronisationsintervall 310,
bevor das nächste
Sendepaket 354 mit einem weiteren Beginn des Rahmenbits 300 eingeleitet
wird. Mit besonderer Bezugnahme auf 5 und 6 der
Zeichnungen sind eine Logik und Zeitgebungsdiagramme gezeigt, die
für die
Kommunikationsrahmenresynchronisation verwendet werden. Diese Logik
ist in jedem Modul 102, 104, 106 angeordnet
und liefert eine Synchronisation zwischen Sendepaketen 354 der
Grundgerätsteuerung 100, und
den Empfangsdatenpaketen 158 der Module 102, 104, 106.
Der Mechanismus verlässt
sich auf die Tatsache, dass die Gesamtrahmenperiode, die Zeitperiode
zwischen aufeinander folgenden Sendepaketen 354, zumindest
eine Taktperiode länger
ist als die Rahmendatenperiode, die Zeitperiode, in der das Sendepaket
relevanten Dateninhalt enthält.
Bei einem spezifischen Ausführungsbeispiel
ist die Rahmendatenperiode insgesamt 60 Bits, und vier (4) Bits weniger
als die Kommunikationsrahmenperiode, die insgesamt 64 Bits ist,
wobei die zusätzlichen
vier (4) Bits das Rahmenresynchroni sationsintervall 310 sind.
Die Rahmensynchronisationsschaltung erzeugt einen Rahmensynchronisationspuls 808 mit
einer ansteigenden Flanke an dem Beginn des Rahmenbits 300.
Ein Rahmenzähler 800 empfängt den
invertierten Takt 212. Auf das Erreichen eines Endzählwerts von
60 hin setzt der Rahmenzähler 800 ein
Endzählwertsignal 802,
das in ein Zählwert-Freigabe-ODER-Gatter 806 zurückgeführt wird.
Das Sendedatenpaket 354 wird auch in das Zählwert-Freigabe-ODER-Gatter 806 eingegeben.
Folglich besteht während
dem Rahmenresynchronisationsintervall 310 das Sendedatenpaket
nur aus logischen Nullen, und der Ausgang des Zählwert-Freigabe-ODER-Gatters 806 deaktiviert
weiteres Zählen
des Rahmenzählers 800.
Wenn das Endzählwertsignal 802 niedrig
ist, ist das Rahmensynchronisationslogikgatter 804 freigegeben,
um die nächste
ankommende logische „1" in dem Sendepaket 354 zu
erfassen, was als Beginn des Rahmenbits 300 interpretiert
wird, und das Rahmensynchronisationssignal 808 auf eine
logische „1" einstellt. Außerdem führt der
Beginn des Rahmenbits 300 in dem Sendepaket auch dazu,
dass eine logische „1" an dem Ausgang des
Zählwert-Freigabe-Gatters 806,
aktiviert wird. Zu diesem Zeitpunkt „rollt" der Rahmenzähler 800 „über" zu einem Zählwertzustand
von 0, leitet einen neuen Zählwert
ein und das Endzählwertsignal 802 ist
deaktiviert und ermöglicht
es dem Rahmenzähler 800,
Flanken des invertierten Takts 212 bis zu dem nächsten Rahmenresynchronisationsintervall 310 zu
zählen.
Identische Schaltungen in jedem Modul 102, 104, 106 sprechen daher
parallel auf den Beginn der Rahmenbits 300 an, die durch
die Grundgerätsteuerung 100 parallel zu
jedem Modul 102, 104, 106 übertragen
werden. In einigen Fällen
kann es wünschenswert
sein, dass ein Modul von einem gewissen Bit in dem Sendedatenpaket 304 ausgelöst wird,
das nicht der Beginn des Rahmenbits 300, sondern ein anderes
Bit ist. In diesem Fall kann das Rahmensynchronisationssignal 808 in
Verbindung mit einer Decodierschaltung (nicht gezeigt) verwendet
werden, die einen spezifischen Zählwert
des Rahmenzählers 800 nach
dem Beginn des Rahmenbits 300 identifiziert. Dies ermöglicht vorteilhafterweise
die Synchro nisation mit dem Beginn des Rahmenbits 300,
während
auch eine Flexibilität
geliefert wird, um tatsächlich
zu jedem Punkt innerhalb des Sendedatenpakets 354 auszulösen.
-
Obwohl
dies nicht bei allen Ausführungsbeispielen
gemäß den vorliegenden
Lehren erforderlich ist, kommunizieren bei einem spezifischen Ausführungsbeispiel
alle Module 102, 104, 106 mit der gleichen
Datenrate, unabhängig
von der Datenrate, die für
die Logik in dem Modul 102, 104, 106 verwendet wird.
Geringere Moduldatenraten können
sich ergeben, weil es keine Anforderung für höhere Datenraten gibt oder weil
durch eine bestimmte Modulimplementierung Leistungsfähigkeitsbeschränkungen
auferlegt werden, die die Verwendung von Datenraten erfordert, die
geringer sind als die volle Rahmenrate. Beispielsweise können die
Empfangsdatenpakete 358 nur in jedem vierten Rahmen mit
Informationsinhalt besetzt sein, falls die Fähigkeit des Logikteilsystems
eines bestimmten Modus praktische Beschränkungen auferlegt auf die Fähigkeit
des Moduls, Daten zu erzeugen und zu senden. Gleichartig dazu können Entwurfs-
oder Definitionseinzelheiten für
ein bestimmtes Modul zu der Implementierung von geringeren oder
variablen Datenraten führen.
Empfangsdatenpakete 358 ohne Informationsinhalt in bestimmten Feldern
werden durch die Steuerung 200 empfangen, und diese können durch
Funktionen höherer Ebene
ignoriert werden, die an Daten innerhalb dieser Felder arbeiten.
Es ist auch möglich,
Ausführungsbeispiele
von Modulen mit unterschiedlichen Rahmenraten für unterschiedliche Modulklassen
zu verwenden. Bei solch einem Ausführungsbeispiel ist es vorteilhaft,
aber nicht notwendig, dass die langsameren Rahmenraten ganzzahlige
Teilvielfache der Steuerungskommunikationsrahmenrate sind.
-
Die
Steuerungskommunikationsrahmenrate legt eine maximale synchrone
Messungsdigitalisierungsrate oder eine digitale Syntheserate ohne
Datenpuffern fest, die in dem Modul 102, 104, 106 vorgesehen
ist. Zu Erklärungszwecken
durch Darstellung können
drei Module mit jeweils zwei Messungsdaten quellen, die 200k Datenpunkte
pro Sekunde mit Umwandlungsauflösungen
von 18 Bit oder weniger für
jede Quelle liefern, ohne lokales Puffern unterstützt werden.
Höhere
Auflösungsumwandlungen oder
schnellere Umwandlungen können
ohne lokales Puffern unterstützt
werden, falls nur eine Datenquelle verwendet wird. Höhere effektive
Umwandlungsraten oder zusätzliche
gleichzeitige Quellen können
für niedrigere
Umwandlungsauflösungen
unterstützt werden
durch Packen von Rücksendedatenwörtern von
mehreren Quellen in jedes von zwei 18-Bit-Synchronmessungsempfangsdatenfeldern, die
für Empfangsdatenpakete 358 definiert
sind. Innerhalb der Beschränkungen,
die durch die Bitrate, die synchronen Datenfeldgrößen und
die mögliche Verwendung
von zugeordneten reservierten Feldern auferlegt werden, gibt es
eine Vielzahl von Optionen zum Verwalten der Übertragung von Daten zu oder von
mehreren Quellen bei verschiedenen Umwandlungsraten.
-
Mit
besonderer Bezugnahme auf 7 der Zeichnungen
ist ein Diagramm von Datenfelddefinitionen in einer Datenstruktur
eines Sendepakets 354 gezeigt. Bei einem spezifischen Ausführungsbeispiel enthält das Sendedatenpaket 354 eine
Gesamtzahl von 60 Bits, die asynchrone Befehle, Daten und Auslöserbits
darstellen. Zusätzlich
zu den 60 Sendepaketbits gibt es zusätzliche vier (4) Bits 310,
die zum Sicherstellen der Resynchronisation aller Module 102, 104, 106 zu
der gleichen Taktflanke 300, wie sie hierin beschrieben
ist, verwendet werden. Allen Sendepaketen 354 gemeinsam
ist der Beginn des Rahmenbits 300 in der Bit-0-Position.
Bei einem spezifischen Ausführungsbeispiel
ist der Beginn des Rahmenbits 300 auf eine logische „1" eingestellt, um
die Synchronisation zwischen der Steuerung 100 und den
Modulen 102, 104 oder 106, an die das
Sendepaket gerichtet wird, wiederherzustellen. Die Resynchronisationsperiode 310 stellt
sicher, dass alle Modulseitenlogiksysteme auf die gleiche Taktflanke
ansprechen, wenn der Anfang eines seriellen Kommunikationsrahmens
erkannt wird. Dieser Mechanismus wiederum stellt sicher, dass sich
die Synchronisati onsgranularität
auf die serielle Taktperiode bezieht, die bei einem spezifischen
Ausführungsbeispiel
80 nsek ist, anstatt auf die Rahmenperiode, die bei einem spezifischen
Ausführungsbeispiel
5,12 μs
ist. Die Synchronisation mit einer spezifischen Taktflanke wird
bei dem Systemeinschalten festgelegt und nachfolgend ohne Unterbrechung,
bis zu einem Zeitpunkt beibehalten, zu dem das System abgeschaltet wird.
Während
dem normalen Betrieb sind die vier Rahmenresynchronisationsbits 310 nicht
notwendig, aber dieselben liefern einen Fehlerspielraum, der die Resynchronisation
an jedem Beginn des Rahmenbits 300 ermöglicht, sollten unerwartete
Fehler auftreten, die die Rahmensynchronisation beeinträchtigen.
Die Rahmensynchronisationslogik, die allen Modulseitenlogiksystemen
gemeinsam ist, liefert jedoch eine Einrichtung nicht nur zum Festlegen
der Synchronisation der Module 102, 104, 106 beim
Einschalten, sondern auch, bei Bedarf, zum Wiederherstellen der gemeinsamen
Rahmensynchronisation mit einer einzelnen Taktflanke in allen Modulseitenlogiksystemen. Eine
Rahmensynchronisation wird erreicht, indem die serielle Datenausgabeschaltungsanordnung
in dem Logikblock 210 die seriellen Datensignale auf der
Datenausgabeleitung 204 für alle Module 102, 104, 106 zu
einem „niedrigen" Zustand zwingt,
für eine
Zeitdauer, die länger
ist als die Länge
der relevanten Daten in den Sendepaketen 354. Auf diese Weise
hat die Rahmensynchronisationsschaltung jedes Moduls (in 5 gezeigt
und hierin beschrieben) ihren „Endzählwert"-Zustand erreicht
und ist daher bereit, synchron eine Taktflanke des Beginns des Rahmenbits 300 zu
erfassen, das am Anfang eines neuen seriellen Kommunikationsrahmens
gleichzeitig an alle Module 102, 104 und 106 übertragen
wird.
-
Ebenso
gemeinsam für
alle Sendepakete 354 sind ein erstes und ein zweites Steuerungsauslösebitfeld 302, 304 in
der Bitposition 1 und 33 des Sendepakets 354. Jedes Auslösebit 1,
33 ist in dem Sendepaket 354 positioniert, um Auslöser, die
durch die Steuerung 100 erfasst werden, an relevante Module 102, 104 und/oder 106 zu übertragen,
mit einer maximalen Unsicherheit von der Hälfte des Kommunikationsrahmenintervalls,
das bei diesem spezifischen Ausführungsbeispiel
2,56 μs
ist. Obwohl die Auslöseverzögerungsunsicherheit
gleich einer Hälfte der
Rahmenperiode ist, werden Auslöser,
die an mehrere Module 102, 104, 106 parallel
in der gleichen Rahmenperiode und in der gleichen Auslöserbitposition
in dem Rahmen gesendet werden, innerhalb 80 ns oder weniger miteinander
synchronisiert.
-
Ein
Leistungsfehlerbit 306 ist an dem Bit 32 positioniert,
und das Systemfehlerbit 308 ist an dem Bit 34 positioniert.
Alle verbleibenden Bitpositionen sind modulspezifisch, d. h. definiert
auf der Basis des Moduls, das das bestimmte Sendepaket empfängt, obwohl
bei einem bestimmten Ausführungsbeispiel bestimmte
Module bestimmte Bitpositionen auf ähnliche Weise definieren können. Bei
einer bestimmten Implementierung stellen die Bits 2 – 13 ein Adress-/Befehlsfeld 312 dar,
die Bits 14 – 31
stellen ein Datenfeld 314 dar, die Bits 35 – 43 sind
für modulspezifische
Funktionen 316 und die Bits 44 – 59 sind reserviert für Daten,
bei denen die Zeitgebung ihrer Übertragung
mit der Zeitgebung des seriellen Kommunikationsrahmens gekoppelt
ist. Darstellende Beispiele von Daten, bei denen die Zeitgebung
ihrer Übertragung
mit dem seriellen Kommunikationsrahmen gekoppelt ist, sind Signalverlaufsdigitalisierung oder
Synthese, wo es wünschenswert
ist, eine definierte Abtastrate (Abtasttakt) zu haben, die von einer Hochqualitätstaktquelle
abgeleitet wird. Bei einem spezifischen Ausführungsbeispiel ist die Abtasttaktquelle
der Beginn des Rahmenbits 300 oder eines oder mehrerer
der ersten und zweiten Steuerungsauslösebits 302, 304,
oder ein anderes Signal, das von dem Anfang des Rahmenbits 300 abgeleitet
und synchronisiert ist. Falls es keinen Informationsinhalt zum Besetzen
von einem oder mehreren der verschiedenen Felder gibt, weist ein
bestimmtes Ausführungsbeispiel
Nullen zu Bitpositionen in diesen Feldern zu, beispielsweise um
einen Nulloperations- (NOP-) Befehl für das Befehlsfeld 312 darzustellen.
-
Eine
Position der Auslöserbits
in dem Sendepaket 354 und die Taktrate bestimmen Auslöserzeitgebungscharakteristika,
wie z. B. Latenzzeit und Jitter. Bei einem spezifischen Ausführungsbeispiel
ist die Auslöserlatenzzeit
etwa 2,56 μs
Maximum für eine
5,12-μs-Rahmenrate
für die
offenbarten Bitdefinitionen und die Auslöserbitpositionen in dem Senderpaket 354.
Jitter für
mehrere Auslöseereignisse ist
auch etwa 2,56 μs.
Verschiedene Sekundäreinflüsse, wie
z. B. Genauigkeitstoleranzen an dem Takt und auch kleinere Beiträge von Logikzeitgebungsverzögerungen
und ausbreitungsverzögerungsinduzierten
Versätzen
beeinträchtigen
die tatsächliche
Auslöserlatenzzeit
und Jitter von Paket zu Paket. Folglich ist die Auslöserlatenzzeit
2,56 μs
im schlimmsten Fall, unter der Annahme von null Logikverzögerungen,
idealer Taktgenauigkeit und keinem Versatz. Genauer gesagt, zusätzliche
Verzögerungen und/oder
Jitter können
in der Steuerung 100 oder dem Modul 102, 104, 106 bewirkt
werden. Beispielsweise gibt es wahrscheinlich Hardwareverzögerungen,
die zwischen dem Erkennen eines externen Auslöserereignisses durch die Steuerung 100 und der
nachfolgenden Übertragung
von Auslöserbits 302 oder 304 an
eines oder mehrere der Module 102, 104, 106 bewirkt
werden. Weitere Verzögerungen und/oder
Jitter können
in der Logik 202 bewirkt werden, die in dem Modul 102, 104, 106 verwendet
wird. Das 2,56-μs-Beispiel
ist daher der Einfluss des Kommunikationssystems im schlechtesten
Fall und der beste Fall, der für
das System als Ganzes möglich
ist. Es ist auch möglich,
die beiden Auslöserfelder
als getrennte und einzelne Auslöser
zu behandeln, in diesem Fall ist die Auslöserlatenzzeit und Verzögerung der
Wert des seriellen Kommunikationsrahmens oder zweimal die Werte,
die durch Behandeln der beiden Felder als eine gemeinsame Auslöserquelle
für Operationen
in der Modullogikfunktion erreicht werden.
-
Ereignisse,
die mit dem Beginn des Rahmenbits 300 synchronisiert sind,
oder mit beliebigen Bitpositionen in dem Sendepaket 354,
können
bessere Zeitgebungs- und Jittereigenschaften haben als die Auslöserbits.
Als ein Beispiel kann eine Analog-/Digital-Abtastung und Umwandlung
mit dem Beginn des Rahmenbits 300 synchronisiert sein,
um einen Abtastwert-zu-Abtastwert-Zeitgebungsjitter von weniger als
80 nsek zu erreichen. Ausführungsbeispiele,
die Datenraten von mehr als 5,12 μs
verwenden, können noch
geringere Werte für
Zeitgebungsjitter erreichen. Beispielsweise weniger als 40 nsek
für eine
Taktquelle von 25 MHz. Diese niedrigeren Werte von Jitter bezüglich eines
einzelnen Moduls oder zwischen mehreren Modulen kann erreicht werden
zum Auslösen von
Ereignissen durch Speichern des Empfangs des Auslösers in
der Modullogik und dann Übertragen des
Auslösers
synchron mit einem definierten Paketereignis, wie z. B. dem Rahmensynchronisationsbit 300.
-
Besondere
Bezugnahme wird auf das Leistungsfehlerbit 306 genommen,
das in 7 der Zeichnungen gezeigt ist. Wenn die Steuerung 100 eine
Leistungsfehlerbedingung an dem Volumenleistungssystem 110 erfasst,
setzt dieselbe das Leistungsfehlerbit 306 auf eine logische „1" in dem nächsten Sendepaket 350.
Die Module 102, 104, 106 leiten eine
geeignete Leistungsfehlerantwort ein, auf den Empfang des Leistungsfehlerbits 306 in
dem Sendepaket 354 hin. Das Leistungsfehlerbit 306 bleibt
wahr, außer
und bis das Volumenleistungsverteilungssystem zu normalen Betriebsgrenzen
zurückkehrt.
-
Besondere
Bezugnahme wird auf das Systemfehlerbit 308 genommen, das
ebenfalls in 7 der Zeichnungen gezeigt ist.
Das Systemfehlerbit 308 wird gesetzt bzw. eingestellt,
wenn eine systemweite Antwort angemessen ist. Falls bei einer spezifischen
Anwendung der vorliegenden Lehren eines der Module einen Fehler
erfasst, der eine Benachrichtigung an andere Module rechtfertigt,
sendet das betreffende Modul in einem Empfangspaket 358 eine Anzeige
an die Steuerung 100. Die Steuerung 100 setzt
dann das Systemfehlerbit 308 in dem Stromsendepaket 354,
d. h. das Sendepaket 354, das in der gleiche Rahmenperiode
gesendet wird und das Empfangspaket 358, das die Fehlerbenachrichtigung geliefert
hat. Der Empfang durch ein Modul 102, 104, 106 des
Systemfehlerbits 308 in dem aktuellen Empfangspaket 358 bewirkt,
dass das Empfangsmodul eine schützende
Aktion einleitet. Das Systemfehlerbit 308 wird daher verwendet,
um die Erfassung der Fehlerbedingungen in einem oder mehreren der
Module 102, 104, 106 zu kommunizieren,
die Schutzantworten von den verbleibenden Modulen 102, 104, 106 erfordern
können.
Aufgrund der relativen Zeitgebung der Sende- und Empfangspakete 354, 358 und der
relativen Positionierung der hervorstehenden Bits in den jeweiligen
Paketen, treten der Empfang der Fehlerbenachrichtigung und das Weiterleiten
der Benachrichtigung tritt in einem einzigen Rahmen auf. Wie es
für einen
Durchschnittsfachmann auf diesem Gebiet klar ist, ermöglicht dies
eine schnelle systemweite Antwort auf einen Fehler, der in einem
einzigen Modul erfasst wurde, während
gleichzeitig eine galvanische Trennung zwischen den Modulen 102, 104, 106 und
zwischen den Modulen und der Steuerung 100 geliefert wird.
-
Bei
einem spezifischen Ausführungsbeispiel und
mit einer weiteren Bezugnahme auf 7 der Zeichnungen
liefern das Adress-/Befehlsfeld 312 des Sendepakets 354 und
das Datenfeld 314 des Sendepakets 354 einen Mechanismus
zum Senden von Befehlen von der Steuerung 100 an die Module 102, 104, 106.
Bei dem spezifischen Ausführungsbeispiel sind
diese Felder als solche für
alle Module 102, 104, 106 definiert,
und eine Mehrzahl von unterschiedlichen Modulen verwenden einen ähnlichen
Teilsatz der gleichen Befehlscodes. Ein Durchschnittsfachmann auf
diesem Gebiet erkennt jedoch von einem genauen Durchlesen der vorliegenden
Offenbarung, dass gemeinsame Bitpositionen und Befehlscodes für das Adress-/Befehlsfeld 312 des
Sendepakets 354 nicht erforderlich sind, um ein Ausführungsbeispiel
gemäß den vorliegenden
Lehren zu implementieren.
-
Mit
besonderer Bezugnahme auf 8 der Zeichnungen
ist ein Diagramm einer allgemeinen Struktur eines Empfangsdatenpakets 358 gezeigt. Die
Bitposition 26 des Empfangspakets 358 ist als das Schnellschutzfeld 412 definiert
und bezieht sich auf das Systemfehlerfeld 308 des Sendepakets 354. Genauer
gesagt, wenn die Steuerung 100 in dem Schnellschutzfeld 412 einen
logisch wahren Wert empfängt,
kann die Steuerung unmittelbar das Systemfehlerfeld 308 des
Sendepakets 354, das in dem gleichen Rahmen gesendet wird
wie das Empfangspaket 358, das das logische Wahr in dem
Schnellschutzfeld empfängt,
auf einen Wert von „1" oder einen logisch
wahren Wert setzen. Aufgrund der relativen Zeitgebung und des Versatzes
zwischen dem Sende- und dem Empfangspaket 354, 358 empfängt die
Steuerung 100 den Wert in dem Schnellschutzfeld 412,
bevor dieselbe das Bit sendet, das als das Systemfehlerfeld 308 bestimmt
ist. Eine Logik in der Steuerung 100 ist in der Lage, das
Schnellschutzfeld 412 des Empfangspakets 358 zu
empfangen und zu decodieren, und einen wahren Wert in das Systemfehlerfeld 308 des
Sendepakets 354 zu verschieben, bevor der Rest des Sendepakets,
der das Systemfehlerfeld 308 umfasst, gesendet wird. Folglich
kann ein Fehler in jedem der Module innerhalb einer Periode erfasst
werden, die etwas länger
ist als eine Rahmenperiode, um genau zu sein, 69 Bitperioden. Außerdem kann
jedes Modul 102, 104, 106 individuell einen
oder mehrere verfügbare
Zustände
definieren, die, wenn sie erfasst würden, das Schnellschutzfeld 412 einstellen
würden.
Bei jeder spezifischen Anwendung kann ein Benutzer programmatisch
keinen der verfügbaren
Zustände,
einen Teilsatz der verfügbaren
Zustände
oder alle der verfügbaren
Zustände freigeben,
um ferner zu definieren, welcher der verfügbaren Zustände arbeiten würde, um
das Schnellschutzfeld 412 zu jedem Zeitpunkt zu setzen.
Das Modul kann jede Anzahl von Fehlerzuständen aufweisen. Eine Logik
in dem Modul kann selektiv einen oder mehrere der Fehlerzustandsstatusindikatoren aktivieren.
Das Schnellschutzbitfeld 412 reflektiert die logische OR-Operation
von jedem der freigegebenen Fehlerzustände. Eine programmierbare Torsteuerungs logik
in der Steuerung 100 ermöglicht eine selektive Verteilung
der „wahren" schnellen Schutzbits 412,
die durch eines der Module 102, 104, 106 gesetzt
werden, an ein oder mehrere andere Module 102, 104, 106,
gemäß den Wünschen des
Systemnutzers. Ferner ermöglicht
es diese Torsteuerungslogik Systemnutzern, eine oder mehrere „Gruppen" von Modulen zu definieren,
die das Vorliegen eines Fehlerzustands oder von Fehlerzuständen, angezeigt
durch das Setzen der Schnellschutzbits 412 auf wahr, an
andere Module in der definierten Gruppe kommunizieren können. Die
Erfassung, Übertragung,
der Empfang und die Antworten auf erfasst Fehlerzustände können in
mehreren Gruppen, die so definiert sind, gleichzeitig auftreten.
Darüber
hinaus kann jedes Modul in einer definierten Gruppe die „Quelle" eines erfassten
Fehlerzustands oder erfasster Fehlerzustände sein, während alle anderen Module in
der definierten Gruppe die „Empfänger" der Anzeige sein
können,
dass ein Fehlerzustand, der eine Antwort erfordert, erfasst wurde.
Insbesondere kann ein Benutzer eine Torsteuerungslogik in der Grundgerätsteuerung 100 während der
Ausführungszeit
programmieren, um selektiv auf ein empfangenes „Wahr" in dem Schnellschutzfeld 412 anzusprechen,
abhängig
davon, welches Modul das Schnellschutzbit gesetzt hat und davon,
welche Module als „Empfänger" ausgewählt werden
sollen. Im einfachsten Fall kann die Steuerung 100 alle
Torsteuerungen des Schnellschutzbitfelds von einem oder mehreren der
Module 102, 104, 106 deaktivieren. In
einem anderen Fall kann die Steuerung 100 Antworten auf
ein „Wahr", das in dem Schnellschutzbitfeld 412 von
einem spezifischen Modul durch Torsteuern dieses Bits identifiziert
wird, freigeben, um das Einstellen des Systemfehlerfelds 308 auf „wahr" in dem nächsten Sendepaket 354 für einen
Teilsatz der vorliegenden Module 102, 104, 106 zu
ermöglichen.
Der Teilsatz der Module, die das „wahre" Systemfehlerfeld 308 empfangen,
kann anders definiert sein, abhängig
davon, welches der Module 102, 104 oder 106 das Schnellschutzfeld 412 seines
Empfangspakets 358 „wahr" eingestellt hat.
Das Einstellen des Systemfehlerfelds 308 ansprechend auf
den „wahren" Wert in dem Schnellschutzfeld 412 liefert
die schnellste Antwort eines Moduls 102, 104 oder 106 auf
ein Ereignis in einem anderen Modul 102, 104 oder 106.
Als ein langsamere Alternative kann die Steuerung 100 auch auf
ein „wahres" Schnellschutzfeld 412 antworten, durch
Ausgeben eines spezifischen Befehls an eines oder mehrere der Module.
Weil die Torsteuerungslogik in der Steuerung 100 während der
Ausführungszeit
programmiert werden kann, können
die Definitionen, wie die Steuerung 100 antworten soll,
zu jeder Zeit geändert
werden. Außerdem
können
die Module 102, 104, 106 konfiguriert
sein, um auf eine Anzahl von Weisen auf den Empfang eines „wahren" Systemfehlerfelds 308 zu
antworten. Bei einem Ausführungsbeispiel
kann das Empfangsmodul antworten durch Durchführen eines Typs definierter
Aktion, wie z. B. Abschalten aller Funktionen. Bei einem anderen Ausführungsbeispiel
kann das Empfangsmodul antworten durch Liefern eines Teils, aber
nicht seiner gesamten Funktionalität. Die Modulantwort kann abhängig von
dem Modultyp definiert werden und kann an der Modulkonfigurationsstufe
programmiert werden. Alternativ kann das Modul an der Konfigurationsstufe
so konfiguriert werden, um einen auswählbaren Bereich von Antwortcharakteristika
zu liefern, aus denen der Benutzer optional zu jeder Zeit nach der
Konfiguration auswählen
kann, d. h. während
der Ausführungszeit
durch eine benutzergesteuerte Torsteuerungslogik. Vorteilhafterweise
liefern diese Optionen die Fähigkeit
einer weichen Konfiguration eines Moduls und/oder Ausführungszeitauswahl
von Modulantwortcharakteristika, während eine hardwaremäßige Geschwindigkeit
der Antwort geliefert wird.
-
Die
Bitposition 28 ist als ein messungsausgelöstes Statusfeld 406 definiert.
Eine logische „1" oder ein wahrer
Wert in dem messungsausgelösten Statusfeld
wird in das nächste
Empfangspaket platziert, nachdem ein Messungsteilsystem in einem
Modul ausgelöst
ist und liefert eine Anzeige an die Steuerung 100, dass
dieses Ereignis aufgetreten ist. Der ausgelöste Status wird für jedes
erfasste Auslöserereignis einmal
in einem Empfangsdatenpaket 358 angezeigt und wird dann
in dem nächsten
Empfangspaket 358 gelöscht,
falls kein neuer Auslöser
aufgetreten ist. Folglich liefert das messungsausgelöste Statusfeld 406 auch
relative Zeitgebungsinformationen für Daten, die aus dem Modul
stammen, bei dem das messungsausgelöste Statusfeld 406 gesetzt
ist. Als ein darstellendes Beispiel können Auslösungsereignisse autonom in
einem einzigen Modul auftreten, z. B. ein Pegelauslösungsereignis,
das von digitalisierten Abtastwerten von ausgegebenen aktuellen
Daten abgeleitet wird. Nur das bestimmte Modul hat unmittelbare „Kenntnisse", das ein solches
Ereignis aufgetreten ist, da das Ereignis für das Modul lokal ist, dennoch
ist es häufig
wünschenswert,
das Auftreten zu kommunizieren und es kann gelegentlich wünschenswert
sein, dasselbe zu verwenden, um „Ereignisse" anderswo in dem
Gesamtsystem aufzurufen, z. B. zum Markieren von Auslösungsereignispositionen
in den speichergepufferten Zeitaufzeichnungen von digitalisierten
Daten oder um möglicherweise Ausgangsänderungen
in anderen Modulen 102, 104, 106 auszulösen. Als
ein Beispiel der Erwünschtheit der
Kenntnis, wann ein Auslösungsereignis
aufgetreten ist, ohne Berücksichtigung
der Quelle des Auslösungsereignisses,
wünschen
Benutzer von Signalverlaufdigitalisierinstrumenten, wie z. B. digitalen
Oszilloskopen, häufig,
digitalisierte Informationen zu beobachten, die vor dem Auslöseereignis
erhalten wurden. Es kann auch wünschenswert
sein, einige Daten vor dem Ereignis und einige Daten, die nach dem
Ereignis erhalten wurden, zu betrachten. Mit weiterer Bezugnahme
auf 8 der Zeichnungen ist die Bitposition 29 ein Empfangsdatengültigbit 408,
das anzeigt, dass das aktuelle Empfangspaket 358 gültige synchrone
Messdaten enthält.
Das Gültige-Daten-Bit 408 wird
für jedes
Empfangsdatenpaket 358 wahr oder falsch gesetzt, abhängig von
dem aktuellen Status der Informationen, die darin enthalten sind.
Bei einem spezifischen Ausführungsbeispiel
ist das messungsausgelöste
Statusfeld 406 nicht wahr gesetzt, bis das Gültige-Synchrone-Messdaten-Feld 408 auch
wahr gesetzt ist, um sicherzustellen, dass die Steuerung 100 Messungs auslöseereignisse
umfasst, die mit tatsächlichen
Messereignissen synchronisiert sind.
-
Mit
besonderer Bezugnahme auf 8 der Zeichnungen
umfasst das Empfangsdatenpaket 358 durch ein erstes und
ein zweites Auslösebit-Feld 402 und 404 in
den Bitpositionen 27 beziehungsweise 59. Das erste und das zweite
Modulauslöserbitfeld
ermöglichen
es einzelnen Modulen 102, 104, 106, Auslöser an die
Steuerung 100 zu senden, mit einer maximalen Verzögerung von
2,56 Mikrosekunden. Eine Auswahl der Bitpositionen für das erste
und das zweite Modulauslöserbitfeld 402, 406 ermöglicht ferner, dass
Auslöser,
die in einem der Module 102, 104, 106 ihren
Ursprung haben, durch die Steuerung 100 empfangen werden
und mit einer minimalen zusätzlichen Verzögerung in
einem Sendepaket 354 an einen Bestimmungsortmodul weitergeleitet
werden. Bei den offenbarten Ausführungsbeispiel
ist diese minimale zusätzliche
Verzögerung
etwa 320 nsek oder vier Taktperioden. Eine programmierbare Torsteuerungslogik
in der Steuerung 100 ermöglicht eine selektive Verteilung
von Auslösern,
die von einem Modul 102, 104 oder 106 stammen,
an ein oder mehrere Module 102, 104, 106,
gemäß den Wünschen des
Systemnutzers. Ferner ermöglicht
es diese Torsteuerungslogik den Systemnutzern, eine oder mehrere „Gruppen" von Modulen zu definieren,
die aktiviert werden können,
um auf das Auslöserereignis
anzusprechen, das von einem Modul innerhalb der definierten Gruppe
stammt. Die Erfassung, Übertragung,
der Empfang und die Antworten auf Auslöser können gleichzeitig in mehreren
Gruppen auftreten, die so definiert sind. Darüber hinaus kann jedes Modul
in einer definierten Gruppe die „Quelle" eines Auslösers sein, während alle
anderen Module in der definierten Gruppe die „Empfänger" des Auslösers sein können. Genauer gesagt, die Torsteuerungslogik
in der Steuerung 100 programmiert sein, um auf den Empfang
eines gesetzten Empfangsauslösefeld 402, 404 zu
antworten, durch Setzen des Sendeauslösefelds 302 oder 304 in
eines oder mehrere der nächsten
Sendepakete 354, die für
ein oder mehrere ausgewählte
der Module 102, 104, 106 bestimmt sind.
-
Die
Torsteuerungslogik in der Steuerung 100 kann ferner anders
programmiert sein, abhängig
davon, welches Modul 102, 104 oder 106 das
Auslösefeld 402, 404 gesetzt
hat. Als ein Beispiel kann der Empfang des „wahren" Empfangsauslösebits 402 oder 404 von
einem spezifischen Modul, beispielsweise 102, bewirken,
dass die Steuerung das Sendeauslöserbitfeld 302 oder 304 „wahr" setzt, in dem nächsten Sendepaket 354,
das zu einem Modul geht, beispielsweise 106, aber nicht
zu einem anderen Modul, beispielsweise 104. Außerdem kann
der Empfang eines „wahren" Empfangsauslösebits 402 oder 404 von
einem anderen spezifischen Modul, beispielsweise 104, bewirken,
dass die Steuerung das Sendeauslösebitfeld 302 oder 304 in
dem nächsten Sendepaket 354 „wahr" setzt, das zu zwei
Modulen geht, beispielsweise 104 und 106. Folglich wird
die Antwort der Steuerung auf einen „wahren" Wert in dem Empfangsauslösefeld 402 oder 404 selektiv
gesteuert, abhängig
von den Vorzügen
und Bedürfnissen
des Benutzers. Unterschiedliche Module können als „Quellen" und als „Empfänger" ausgewählt werden, und diese Auswahl
kann zu jedem Zeitpunkt geändert
werden, während
das System läuft.
Vorteilhafterweise liefert ein System, das so definiert ist, einem Benutzer
Flexibilität,
während
es Hardwaregeschwindigkeitsantworten und galvanische Trennung zwischen
Modulen beibehält.
Die Bitpositionen 60 – 63
sind ungenutzt.
-
Das
Empfangsdatenpaket 358 umfasst sowohl synchrone digitalisierte
gemessene Daten als auch asynchrone Abfrageantworten. Bei einem
spezifischen Ausführungsbeispiel
und mit spezifischer Bezugnahme auf 9 und 10 der
Zeichnungen umfassen die Bitpositionen 0 – 23 und die Bitpositionen
30 – 41
einen ersten und zweiten Abschnitt eines Synchrone-Messdaten-Felds 400 beziehungsweise 414.
Das Asynchrone-Empfangsdaten-Feld 416 besetzt
die Bitpositionen 43 – 58.
Ein Asynchrone-Empfangsdaten-Gültig-Feld 418 in
der Bitposition 42 des Empfangsdatenpakets ist auf eine logische „1" gesetzt, falls eine
asynchrone Abfrageantwort in dem Empfangsdatenpaket 358 enthalten
ist. Daten in dem Asynchrone- Daten-Feld 416 und
dem Asynchrone-Daten-Gültig-Feld 418 werden
zusammen in dem gleichen Empfangsdatenpaket übertragen, ansprechend auf
Abfragen von der Steuerung 100. Antworten auf Steuerungsabfragen
sind bei normalem Betrieb nicht typisch, weil Steuerungsabfragebefehle höchstwahrscheinlich
entweder unregelmäßige oder seltene
Ereignisse sind. Die Position der Asynchrone-Antwort-Felder nahe
dem Ende des Empfangspakets ermöglicht
die Einleitung von Abfragen und das Zurücksenden von entsprechenden
Antworten innerhalb der gleichen Rahmenperiode. Es ist jedoch zum Praktizieren
der vorliegenden Lehren nicht notwendig, dass Rücksendeabfrageantworten innerhalb
der gleichen Rahmenperiode liegen wie die einleitenden Abfragen.
Diese Antworten könnten
in der Tat durch eine beliebige Anzahl von Rahmen verzögert werden,
abhängig
von den Antwortcharakteristika des betreffenden Moduls und der bestimmten
Art der Abfrage. Bei einem spezifischen Ausführungsbeispiel ist definiert,
dass ein Modul schließlich
auf eine Abfrage antwortet und dass eine Reihe von Abfragen und
Antworten in einer Reihenfolge auftreten, d. h. Abfrage 1, Antwort
1, Abfrage 2, Antwort 2 usw. Bei einem alternativen und allgemeinen
Ausführungsbeispiel
muss eine Reihenfolge von Antworten auf Abfragen beibehalten werden,
falls Informationen in der Antwort codiert sind, die dieselbe eindeutig
mit der bestimmten Abfrage verbindet, auf die dieselbe eine Antwort
ist. 9 der Zeichnungen ist ein Diagramm eines Ausführungsbeispiels
einer Empfangsdatenpaketstruktur 358, die zwei 18-Bit-Wörter von
digitalen Daten pro Paket liefert. 10 der
Zeichnungen ist ein Diagramm eines Ausführungsbeispiels einer Empfangsdatenpaketstruktur 358,
die ein einzelnes 24-Bit-Wort von digitalen Daten pro Paket liefert.
Wie es für
einen Durchschnittsfachmann auf diesem Gebiet klar ist, hat das
in 10 gezeigte Empfangspaket ungenutzte Datenbits,
die bei einem bestimmten Ausführungsbeispiel
verwendet werden können.
-
Es
ist möglich,
dass ein bestimmtes Empfangsdatenpaket 358 weder synchrone
Messdaten noch asynchrone Abfrageantwortda ten enthält. In diesem
Fall sind weder das Asynchrone-Empfangsdaten-Gültig-Feld 418 noch
das Empfangsdaten-Gültig-Bit 408 auf
wahr gesetzt, und die Steuerung 100 kann diese Felder in
dem Empfangsdatenpaket 358 ignorieren. Falls ein System
mehr als ein Modul aufweist, das bei Datenraten von weniger als
etwa 200k Wörter/Sekunde,
d. h. bei der Rahmenrate, arbeitet ist es nicht notwendig, dass
alle aktiven Kanäle
Rücksendedaten
gleichzeitig übertragen.
Die Möglichkeit existiert
unabhängig
davon, ob mehrere Kanäle
bei identischen Datenraten arbeiten oder nicht. Andererseits können Anwendungen
gewünscht
sein, die synchronisierte Mehrkanaldigitalisierung oder andere Aktionen
liefert, die zeitlich gleichzeitig in mehreren Modulen auftreten.
Die Implementierung der Kommunikationssystemarchitektur in einer
Sternkonfiguration mit einer gemeinsamen Taktquelle und synchronem
Rahmen unterstützt
die Erzeugung von „Ereignissen", wie zum Beispiel
Auslösern
oder Befehlen, die als Teil von Sendedatenpaketen gesendet werden,
die verwendet werden können,
um parallele Aktionen, wie zum Beispiel A/D-Abtastung, in mehreren
Modulen zu synchronisieren. Die Synchronisation paralleler Aktionen,
wie zum Beispiel Digitalisierung und/oder Synthese in und zwischen
mehreren Modulen liefert Vorteile, die einem Durchschnittsfachmann
auf dem Gebiet der Digitalsignalsynthese und Analyse bekannt sind.
Eine typische Anwendung kann das Ausgeben mehrerer Kanäle mit dynamisch variablen
Gleichsignalleistungs-„Signalverläufen" an eine zu testende
Vorrichtung (DUT) umfassen, mit gleichzeitiger und synchroner Mehrkanaldigitalisierung
von Stromsignalverläufen,
die jeder der ausgegebenen Spannungen zugeordnet sind. Viele andere Anwendungen
sind möglich,
einschließlich,
ohne Beschränkung,
synchrone Mehrkanalfunktionserzeugung, synchrone Mehrkanalhochgeschwindigkeitsvoltmeterdigitalisierung
und verschiedene Mischungen beider Funktionen.
-
Mit
besonderer Bezugnahme auf 9 der Zeichnungen
ist ein Diagramm eines spezifischen Ausführungsbeispiels von Bitzuweisungen
für Empfangsdatenpakete
gezeigt, die von einem Dualkanal-18-Bit-Modul stammen. Der erste
und der zweite Abschnitt des Synchrone-Messdaten-Felds 400, 414 umfassen
zusammen eine Gesamtzahl von 36 Bits. Zwei 18-Bit-Datenwörter besetzten
den ersten und den zweiten Abschnitt des Synchrone-Messdaten-Felds 400, 414,
wo ein erstes Kanalmessdatenwort 500 Bitpositionen 0 bis
17 in dem ersten Abschnitt des Synchrone-Messdaten-Felds 400 besetzt,
und ein zweites Kanalmessdatenwort 502 die Bitpositionen
18 – 23
des ersten Abschnitts des Synchrone-Messdaten-Felds 400 und
alle Bitpositionen des zweiten Abschnitts des Synchrone-Messdaten-Felds 414 besetzt.
Obwohl dies etwas beliebig und hauptsächlich aufgrund unmittelbarer
Zweckmäßigkeit
durchgeführt
wird, positioniert ein spezifisches Ausführungsbeispiel das niedrigstwertigste
Bit in der höchsten
Bitposition, weil eine Digitalisierung unter Verwendung aufeinanderfolgender
A/D-Wandler des Näherungstyps
implementiert wird. Wandler dieses Typs implementieren einen Umwandlungsprozess,
der das MSB erzeugt, dem zuerst Bits geringerer Wertigkeit folgen,
und der mit dem LSB endet. Folglich ist es möglich, Daten in das Empfangsdatenpaket 358 raus
zu schieben, wenn dasselbe in die Modulseitenlogik kommt. Alle verbleibenden
Statusbits und Auslösebits,
wie sie definiert sind, bleiben dieselben.
-
Mit
besonderer Bezugnahme auf 10 der Zeichnungen
ist ein Diagramm eines spezifischen Ausführungsbeispiels von Bitzuweisungen
für Empfangsdatenpakete
gezeigt, die von einem Einkanal-24-Bit-Wortmodul stammen. Die 24
Bits, die in dem Empfangsdatenpaket gesendet werden, besetzen bestimmte
Bits in dem ersten und zweiten Abschnitt des Synchrone-Messdaten-Felds 400, 414. Wie
es für
einen Durchschnittsfachmann auf diesem Gebiet klar ist, unterstützt die
Empfangsdatenpaketstruktur ein bis zu 38-Bit-Wort von digitalen
Daten pro Empfangsdatenpaket.
-
Obwohl
es von einer gemeinsamen Quelle abgeleitet ist, wird jedes Modultaktsignal
invertiert und durch eine Logiktorsteuerungsfunktion in der Steuerungsseitenlogik
gelei tet, bevor dasselbe in die Taktleitung 208 eingekoppelt
wird. Diese Torsteuerungsfunktion ermöglicht das selektive Sperren
von Takten zu einem oder mehreren Modulen nach Bedarf, um das Rücksetzen
und/oder die Konfiguration einzelner Module zu beeinträchtigen.
Außerdem
können
beim Systemeinschalten alle Module parallel zurückgesetzt werden, durch paralleles
Sperren der Taktsignale. Bei einem spezifischen Ausführungsbeispiel
sind Taktsignale auf innerhalb einige wenige Nanosekunden synchronisiert.
Dieser enge Synchronisationspegel ist möglich, trotz individueller
Torsteuerung, aufgrund sehr niedriger Logiktorverzögerungen
in der Vorrichtung, die die Steuerseitenlogik implementiert.
-
Das
serielle Kommunikationssystem und die unterstützende Architektur, die hierin
beschrieben sind, liefern vier (4) einzelne Betriebsmodi. Die einzelnen
Modi sind: (1) ein normaler Betriebsmodus, der oben beschrieben
ist, (2) ein Einschalt- und Entdeckungsmodus, (3) ein Konfigurationsmodus
und (4) ein Fehlererfassungs- und Schutzmodus. Die vorhergehenden
Absätze
haben den normalen Betriebsmodus näher beschrieben und den Fehlererfassungs-
und Schutzmodus kurz erwähnt.
Das offenbarte serielle Kommunikationssystem und die unterstützende Architektur
liefern auch eine automatische Erfassung von Identifizierung von
installierten Modulen auf das Einschalten der Instrumentierung hin.
Die Erfassung bezieht sich auf die Entdeckung, dass ein Modul physikalisch
vorliegt, und die Identifikation bezieht sich auf das Bestimmen
einer spezifischen Identität
und Funktion eines installierten Moduls und das Bestimmen, ob das
Modul funktionsfähig
ist. Die Erfassung ist vorteilhaft, weil das System für einen ordnungsgemäßen Betrieb
nicht voll mit Modulen besetzt sein muss. Wenn ein Modul als vorliegend
erfasst wird, ermöglicht
die Identifizierung eine automatische Konfiguration und Kommunikation
zwischen der Steuerung und dem identifizierten Modul vor der Einleitung
eines normalen Betriebs. Die Steuerung spricht erst auf ein Einschaltereignis
an (d. h. Anlegen einer Netzleistung an das Grundgerät). Wenn
die 48-V-Grundgerätleistungsversorgung
eine bestimmte Grenzspannung erreicht, leitet das Grundgerät eine Bootsequenz
ein. Die Bootsequenz ist in dem Flashspeicher in dem Grundgerät enthalten.
Die Verwendung des Flashspeichers ermöglicht vorteilhafterweise die
Modifikation der Bootsequenz durch weiche Konfiguration. Bis die
Grundgerätgrenzspannung
erreicht wird, wird der Prozessor in dem Grundgerät in einem
Rücksetzzustand
gehalten. Während das
Grundgerät
hochfährt
bzw. bootet, stabilisieren sich die Leistungsversorgungen zu dem
Grundgerät und
den Gleichsignalwandlern, die Spannungen zu anderen Teilen des Grundgeräts und zu
den verschiedenen Modulen über
Trennungsgrenzen zuführen,
weiter. Wenn der Prozessor seinen Bootprozess abschließt, konfiguriert
und initiiert er die Grundgerätserienkommunikationslogik
und prüft
dann ein „Leistung
gut" Statusbit,
das anzeigt, dass die 48-V-Leistungsversorgung innerhalb ausreichend enger
Toleranzen funktionsfähig
ist. Eine Prüfung des „Leistung-Gut"-Status, das den
Betrieb innerhalb engerer Toleranzen anzeigt als für ein Grundgerät und Logikoperation
erforderlich ist, ist vorteilhaft, weil eine geringere Spannung
für eine
Zeitperiode ein funktionsfähiges
Grundgerät
liefern kann, kann aber zu einer Überstromsituation führen, wenn
Leistung an die Module verteilt wird, was Ausfälle aufgrund von Übererhitzen
bewirkt.
-
Falls
das Grundgerät-„Leistung-Gut"-Statusbit nach der
Hochfahrsequenz als wahr bestimmt wird, leitet der Prozessor einen
Prozess ein zum Herausführen
jedes Moduls, das das Grundgerät
bevölkert,
unter Verwendung eines Prozesses, der einen Identifikationsschritt,
gefolgt von einem Konfigurationsschritt umfasst. Bei einem aktuellen
Ausführungsbeispiel
werden Module parallel konfiguriert. Alternative Ausführungsbeispiele
könnten
jedoch eine sequentielle Modulkonfiguration implementieren. Die Grundgerätsteuerung
bestimmt 1301 zunächst,
ob ein Modul physikalisch vorliegt oder nicht. Dies wird implementiert
durch eine Übereinkunft,
bei der ein eingebautes und nicht konfiguriertes Modul 102, 104, 106 die
Dateneingabeleitung Modul 102, 104, 106 die Dateneingabeleitung 206 zu
einem logisch „niedrigen" oder „0" Zustand zwingt.
Ein schwacher Pull-Up-Widerstand, beispielsweise 30 Kiloohm, ist auf
den Dateneingabeleitung 206 in der Steuerung 100 angeordnet.
Der schwache Pull-Up-Widerstand bewirkt einen logisch „hohen" oder „1" Zustand, außer die
Module 102, 104, 106 liegen vor, um die
Dateneingabeleitung 206 auf einen logisch „niedrigen" oder „0" Zustand zu zwingen.
Folglich kann die Steuerung 100 verfügbare Dateneingabeleitungen 206 zu Zeiten
abfragen, wenn die serielle Kommunikation nicht aktiv ist, entweder
für alle
oder für
ausgewählte Module,
um die Zustände
dieser Leitungen zu bestimmen und somit zu bestimmen, ob Module
vorliegen oder nicht. Bei einem spezifischen Ausführungsbeispiel
kann dieser Abfragprozess nur unmittelbar nach der Einschaltbootsequenz
stattfinden, oder nachdem ein Modul oder Module explizit zurückgesetzt
wurden. Bei einem normalen Betriebsmodus schließt die serielle Kommunikationsaktivität eine Abfrageaktion
aus. Alternative Ausführungsbeispiele könnten jedoch
ein System implementieren, das den Abfragprozess zu jedem Zeitpunkt
ermöglicht.
-
Für jedes
installierte Modul bestimmt das Grundgerät das Vorliegen und die Identität der Module
und konfiguriert dann das Modul für einen normalen Betrieb. Genau
vor dem Eintritt in einen normalen Betrieb werden durch die Grundgerätsteuerung
Aktionen durchgeführt,
um zu bestimmen, ob installierte Module ordnungsgemäß auf die
Konfigurationssequenz geantwortet haben. Ausfälle können entweder zum Markieren
ausgefallener Module als nicht funktionsfähig oder zu zusätzlichen
Versuchen bei der Konfiguration führen. Mit besonderer Bezugnahme auf 11 der
Zeichnungen ist ein vereinfachtes Blockdiagramm einer Logik gezeigt,
das bei der Modulidentifikation und Konfiguration verwendet wird. 11 zeigt
sowohl die normale serielle Kommunikationsschaltung als auch eine
serielle JTAG-Schnittstellenschaltung
(JTAG = Joint Test Action Group), die verwendet wird, um während der
Modulidentifikation und -konfiguration einen alternativen „Grenzabtast"- Betriebsmodus zu implementieren. Standard-JTAG-Operation
und Protokolle sind in dem IEEE-Standard 1149.1-2001: IEEE Standard
Test Access Port and Boundary-Scan Architecture beschrieben, dessen
Inhalt hierin durch Bezugnahme aufgenommen ist. Im allgemeinen ist
ein JTAG-Boundary-Scan (Grenzabtastung), der in dem erwähnten Standarddokument
beschrieben ist, ein quasi passiver Betriebsmodus, durch den eine
erste Vorrichtung durch ein Taktsignal, ein Steuersignal und ein
Dateneingabesignal mit einer zweiten Vorrichtung kommunizieren kann
und dadurch durch ein Datenausgabesignal Informationen über den
Zustand der I/O-Logik und/oder internen Logik in der zweiten Vorrichtung extrahieren
kann. Die zweite Vorrichtung nimmt nicht aktiv an der Kommunikationsaktivität teil oder
steuert dieselbe, sondern empfängt
stattdessen den Takt, das Steuereingangssignal und Dateneingangssignal von
der ersten Vorrichtung und schiebt ansprechend darauf Testdaten
hinaus. Es ist nur notwendig, dass I/O-Schaltungen und Boundary-Scan-Logik
in der zweiten Vorrichtung währenddem
JTAG-Scan-Prozess aktiv und funktionsfähig sind. Bei dem offenbarten
Ausführungsbeispiel
wird der JTAG-Prozess verwendet, um die Selbstidentifikation von
Modulen zu bewirken und den Modulprozessor 1101 zu konfigurieren
oder effektiv zu programmieren. Der Modulprozessor 1101 ist
eine Verarbeitungs- und Steuervorrichtung, die Steuerungs- und Logikfunktionen
in jedem Modul 102, 104, 106 implementiert,
das das System besetzt. Bei einem spezifischen Ausführungsbeispiel
ist der Modulprozessor 1101 ein RAM-basiertes feldprogrammierbares
Gatterarray. Ein Durchschnittsfachmann auf diesem Gebiet erkennt,
dass eine Fähigkeit
zum Programmieren und Neuprogrammieren komplexer Logikvorrichtungen
in Instrumentierungssystemen wertvolle Vorteile liefert und dies
noch viel mehr, falls diese Fähigkeit
zusammen mit einer Hardwareinfrastruktur, die aus anderen Gründen notwendigerweise
vorliegt, besteht und diese „wiederverwendet", in diesem Fall
zum Bewirken einer Serienkommunikation und Steuerung, wie es hierin
beschrieben ist. Für
die folgende Erörterung
ist klar, dass die serielle Kommunikationsverbindung 112 zwi schen
der Steuerung 100 und jedem Modul 102, 104, 106 aus
drei Signalleitungen besteht, während
das JTAG-Schnittstellentor
für die
Modulprozessorvorrichtung aus vier Signalleitungen besteht. Ein Merkmal
gemäß den vorliegenden
Lehren, das bezüglich
der JTAG-Operation beschrieben ist, leitet sich daher teilweise
von der Einrichtung ab, durch die die drei Kommunikationssystemssignalleitungen 112 verwendet
werden, um eine Kommunikation mit dem Modulprozessorvorrichtungs-JTAG-Tor
herzustellen, was vier Signale erfordert. Ein weiteres Merkmal gemäß den vorliegenden
Lehren ist die Einrichtung, durch die die Drei-Signal-Kommunikationsverbindung 112 betrieben
wird, manchmal gemäß einem Protokoll
und manchmal gemäß einem
anderen, genauer gesagt, um manchmal im „normalen" Kommunikationsmodus zu arbeiten, wie
im vorhinein beschrieben ist, und zu anderen Zeiten in einem JTAG-Modus,
wie es in den folgenden Absätzen
beschrieben wird.
-
Jedes
Modul 102, 104, 106 empfängt die
serielle Kommunikationsverbindung 112 durch einen Isolator 114.
An einer Modulseite des Isolators 114 sind die drei Leitungen,
die die serielle Kommunikationsverbindung 112 bilden, Dateneingabeleitung
(in 11 als SDI gezeigt) 204, Datenausgabeleitung (in 11 als
SDO gezeigt) 206 und der Takt (in 11 als
SCK gezeigt) 208, mit drei Stiften des Modulprozessors 1101 verbunden.
Diese Verbindungen mit dem Modulprozessor 1101 umfassen
die normale serielle Kommunikationsverbindung 112. Bei
einem spezifischen Ausführungsbeispiel
ist der Modulprozessor 1101 ein feldprogrammierbares Gatterarray mit
JTAG-Funktionsfähigkeit
und somit ein JTAG-Testtor. Wie es für einen Durchschnittsfachmann
auf diesem Gebiet klar ist, kann der Modulprozessor 1101 jedes
Logik- oder Verarbeitungselement sein, das in der Lage ist, die
hierin beschriebenen Prozessschritte durchzuführen. Jede Leitung in der seriellen
Kommunikationsverbindung 112 ist auch mit drei JTAG-Stiften
verbunden; TCK (Test Clock Input) 1103, TDI (Test Data
Input) 1104 und TDO (Test Data Output) 1105 des
JTAG-Tors an dem Modulprozessor 1101 durch serielle Widerstände 1102.
Eine externe Schaltung umfasst ein D-Flip-Flop 1107, das
von der seriellen Kommunikationstaktleitung 208 getaktet
ist mit einem D-Eingang von der Datenausgabeleitung 204,
und ein Q-Ausgang ist mit einem JTAG-Testmodusauswahl- (TMS-) Stift 1110 des
Modulprozessors 1101 verbunden. Diese vier Verbindungen
mit dem Modulprozessor 1101, TCK 1103, TDI 1104,
TDO 1105 und TMS (Test Mode Select) 1110 umfassen eine
Standard-4-Signal-JTAG-Hardwareschnittstelle oder „Tor". Das serielle Kommunikationsdatenausgabesignal
der Grundgerätsteuerung,
eines pro Modul, wird sowohl an einen D-Eingang 1115 des
Flip-Flops 1107 als SDI 204 als auch an den TDI-Eingang 1104 des
JTAG-Tors des Modulprozessors über einen
Widerstand 1102 angelegt. Aktive Taktflanken sowohl für das Flip-Flop 1107 als
auch das JTAG-Takteingangssignal TCK 1103 sind positive Übergänge. Logische
Zustände,
die an den Eingängen
TDI 1104 und TMS 1110 des JTAG-Tors des Modulprozessors 1101 vorliegen,
sind daher beide an positiven Übergängen von
dem Taktsignal SCK 208 der seriellen Kommunikation zwischengespeichert
oder gespeichert. Ein Logikinverter 16 invertiert das serielle Kommunikationstaktsignal 208 jedoch,
bevor dasselbe an den Takteingang des Flip-Flops 1107 angelegt
wird. Folglich werden Signalzustände,
die auf der seriellen Kommunikationsleitung SDI 204 vorliegen,
in dem Flip-Flop 1107 an negativen Übergängen von SCK 208 zwischengespeichert.
Daher sind die Signalzustände,
die auf der SDI 204 vorliegen, in das Flip-Flop 1107 zwischengespeichert
und die serielle JTAG-Boundary-Scan-Logik Eingabesignalleitung TDI 1104 auf
gegenüberliegenden
Flanken des seriellen Kommunikationstakts SCK 208. Der
Q-Ausgang 1117 des Flip-Flops 1107 ist
mit dem JTAG-TMS-Eingangsstift 1110 des Modulprozessors 1101 verbunden.
Da der Q-Ausgang 1117 des Flip-Flops 1107 den
Zustand an positiven Übergängen seines
Takteingangs ändert,
folgt daraus, dass Logikzustandsänderungen
an dem TMS-Eingang 1110 des Modulprozessors 1101 an
negativen Übergängen des
seriellen Kommunikationstakts SCK 208 auftreten und konstant
bleiben, genau vor, während und
unmittelbar nach positiven Übergängen von
SCK 208. Mit besonderer Bezugnahme auf 12 und den
Betrieb der seriellen Kommunikationsverbindung 112 im JTAG-Modus
ist eine Leiterbahn gezeigt, die das serielle Kommunikationstaktsignal 208,
das von der Steuerung 100 stammt, und eine invertierte
Form 212 des seriellen Kommunikationstakts darstellt. Der serielle
Kommunikationsdatenausgabesignal 204, wie es durch ein
Modul 102, 104, 106 empfangen wird, ist
ebenfalls gezeigt. Bei abwechselnden Zeitperioden innerhalb des
seriellen Datenstroms gibt es TDI-Fenster 1204 und TMS-Fenster 1205.
Diese Fenster sind von einer Dauer, die nominal gleich ist wie die
Hälfte
der Periode von SCK 208 und zeitlich versetzt, so dass
die Zeitgrenzen oder Übergänge zwischen
abwechselnden Fenstern an den Mittelpunkten des hohen und niedrigen
Zustands sowohl der wahren 208 als auch der invertierten 212 Form von
SCK 208 sind. Es ist auch ein TMS-Signal 1206 gezeigt,
das dem Q-Ausgang 1117 des
Flip-Flops 1107 entspricht, und auch der TMS-Eingang 1110 des
JTAG-Tors des Modulprozessors 1101. Schließlich sind
Zeitreferenzen 1207 gezeigt, die der ansteigenden Flanke
von SCK 208 entsprechen. Wenn angemerkt wird, dass die
hierin vorher gelieferten Funktionsbeschreibungen bezüglich der
Speicherung des Zustands des seriellen Datenstroms in dem Flip-Flop 1107 als
TMS 1205 an positiven Übergängen der
invertierten Version SCK 212 als auch die Speicherung der
logischen Zustände
von sowohl TDI 1104 als auch TMS 1110 innerhalb
der JTAG-Boundary-Scan-Logik auf positiven Flanken von SCK 208 sind,
ist ersichtlich, dass die Anordnung von TDI und TMS Datenfenstern 1204 und 1205 in
dem seriellen Datenstrom und die Zeitversatzspeicheraktion des Flip-Flops 1207 derart
ist, dass zu jeder Zeitreferenz 1207 gültige und stabile Zustände von
sowohl TDI 1104 als auch TMS 1110 an dem JTAG-Tor
des Modulprozessors 1101 verfügbar gemacht werden. Anders
ausgedrückt,
die Übertragung
von Informationen von TDI 1104 und TMS 1110 bei
Raten gleich zweimal der seriellen Taktfrequenz zusammengenommen
mit der Zeitversetzaktion des Flip-Flops 1107 liefert eine
Einrichtung zum Demultiplexen von zwei getrennten Informationsströmen von
einer einzigen seriellen Kommunika tionsleitung 204. Es
ist dann für
die Grundgerätlogik 100 nur
noch notwendig, die beiden Informationsströme zusammenzusetzen oder zu
multiplexieren, auf eine Weise, die mit der hierin beschriebenen
Demultiplexeraktion übereinstimmt.
Bei dem vorliegenden Ausführungsbeispiel
wird die notwendige Multiplexieraktion erreicht durch Codeoperationen
und die Kommunikationsrate, die auf eine Frequenz beschränkt ist,
die niedrig genug ist zum Sicherstellen, dass solche Operationen
in der Tat in Code ausgeführt
werden können. Ein
Durchschnittsfachmann auf diesem Gebiet erkennt, dass viele alternative
aber funktional äquivalente
Verfahren verwendet werden können,
einschließlich
solchen, die vollständig
aus Hardware bestehen, um das gleiche Multiplexier-/Demultiplexierschema
im Zusammenhang des gelegentlichen Lieferns einer Vier-Leitung-Logikoperation über eine
serielle Drei-Leitung-Kommunikationsverbindung 112 zu bewirken.
-
Mit
erneuter Bezugnahme auf 11 wird ein
DONE-Stift 1108 des Modulprozessors 1101, der durch
Logik in dem Modulprozessor 1101 betrieben wird, um den
Abschluss des Bitstromkonfigurationsprozess zu kennzeichnen, durch
den Pull-Up-Widerstand 1112 mit einer Logikvorspannungsspannung 1111 und
mit der Voreinstellung bzw. dem Voreinstellungseingang 1109 des
D-Flip-Flops 1107 verbunden. Der DONE-Stift 1108 schwebt in einem
logisch hohen Zustand, außer
er wird durch den Modulprozessor tief gezogen. Die Aktion des DONE-Signals
ist wie folgt: Wenn die Modulidentifikations- und Konfigurationsprozesse abgeschlossen
sind, wobei diese beiden Prozesse normalerweise in einer Sequenzreihenfolge
der Identifikation gefolgt von Konfiguration durchgeführt werden,
erfasst eine Logik in dem Modulprozessor 1101 den Abschluss
der Konfiguration, wie es hierin beschrieben ist, und treibt den
DONE-Stift 1108 auf einen logisch hohen Zustand, und zwar
unter Voreinstellen des D-Flip-Flop 1107 und fortlaufendes
Hoch- oder Wahr-Einstellen des TMS 1110. Gemäß Standard-JTAG-Protokollen
platziert das Halten von TMS 1110 als wahr für fünf oder
mehr Zyklen von TCK 1103 die Zustandsmaschine in der JTAG-Boundary-Scan-Logik
in den sogenannten „Testlogikrücksetz"-Zustand, und beendet
dadurch den Betrieb in dem JTAG-Modus und ermöglicht die Einleitung von normalen
Modulprozessoroperationen, einschließlich normaler serieller Kommunikation.
Andererseits, nach der Rücksetzung
der Module 102, 104, 106 und vor dem
Abschluss der Identifikation und Konfiguration, wird das DONE-Signal 1108 in
einem fortlaufend niedrigen Zustand gehalten, wodurch der voreingestellte
Eingang 1109 zu dem Flip-Flop 1107 entfernt wird,
und dadurch die vorher hierin beschriebenen Demultiplexieraktionen
ermöglicht
werden. Sobald eine Konfiguration abgeschlossen ist, wird das DONE-Signal 1110 fortlaufend
in dem hohen Zustand gehalten und das Flip-Flop 1107 wird
in den voreingestellten Zustand gezwungen, wodurch eine Neu-Einleitung
des JTAG-Betriebsmodus verhindert
wird, unabhängig
von den logischen Zuständen,
die auf den seriellen Kommunikationsleitungen 112 vorliegen.
Ein Durchschnittsfachmann auf diesem Gebiet wird erkennen, dass
Signale mit anderen Namen, die eine ähnliche Funktion bezüglich der Einleitung
und dem Abschluss der Identifikations- und Konfigurationsprozesse
haben, und den Demultiplexieraktionen, die hierin beschrieben sind,
bei alternativen Realisierungen verwendet werden können, um Übergänge in und
aus dem JTAG-Kommunikationsmodus
als auch den Betrieb in dem JTAG-Modus zu bewirken.
-
Es
gibt 20 parallele Identifikationsleitungen 1106, die durch
die Logik ausgegeben werden, die in dem Modul verteilt ist, und
in den Modulprozessor 1101 eingegeben werden, für die Verwendung
als Modulselbstidentifikation. Ein Wert auf den Identifikationsleitungen 1106 liefert
einen Code, der ein Modul und einen Modulmerkmalssatz eindeutig
identifiziert. Bei alternativen Ausführungsbeispielen können mehr oder
weniger Leitungen verwendet werden, um ein Modul eindeutig zu identifizieren.
Die 20 Eingangsleitungen, die mit I/O-Stiften des Modulprozessors 1101 verbunden
sind, werden durch die Grundgerätsteuerung 100 unter
Ver wendung von Standard-JTAG-Boundary-Scan-Testprotokollen gelesen.
Der Modulprozessor 1101 treibt die Leitung 206, während das
Grundgerät 100 die
Leitungen 204 und 208 über den Isolator 114 treibt.
Die TMS-Leitung 1110 wird so getrieben, wie es vorher beschrieben
ist. Das SCK-Signal 208 treibt den TCK-JTAG-Taktstift, das
SDI-Signal 203 treibt den TDI-JTAG-Testdateneingabestift,
während
der Wert der Identifikationsleitungen 1106 von dem JTAG-TDO-Stift 206 zu
der Grundgerätsteuerung 100 zurückgesendet
wird. Das Grundfunktionsverhalten dieser drei Signalleitungen ist
eng parallel zu dem Funktionieren der verwandten seriellen Kommunikationssignale,
wenn dieselben in dem „normalen" Modus arbeiten,
wie es vorher beschrieben wurde, obwohl, wie es hierin angemerkt wurde,
die Modulprozessorkernlogik nicht aktiv ist, wie es der Fall wäre, wenn
dieselbe in einem „normalen" seriellen Kommunikationsmodus
arbeitet. Die Grundgerätsteuerung 100 erhält somit
eine numerische Identifikation des Moduls 102, 104, 106.
Weil der Modulprozessor 1101 ordnungsgemäß mit Leistung
versorgt und minimal funktionsfähig
sein muss, um eine Identifikation zu liefern, nimmt ein ordnungsgemäßer Empfang
durch die Grundgerätsteuerung 100 des
Modulidentifikationscodes an, dass das identifizierte Modul in der
Lage ist, unter Verwendung von Standard-JTAG-Protokollen über das
JTAG-Tor konfiguriert zu werden. Nach der Identifikationsphase bleibt
der Modulprozessor 1101 in dem Testmodus und die Grundgerätsteuerung 100 sendet
einen seriellen Konfigurationsbitstrom über die serielle Kommunikationsverbindung 112,
erneut unter Verwendung von Stanard-JTAG-Kommunikationsprotokollen.
Der Modulprozessor 100 empfängt die Konfigurationsinformationen
durch die JTAG-Leitungen 1103, 1004, 1105 und 1110,
bis der Modulkonfigurationsprozess abgeschlossen ist. Der Konfigurationsprozess
und die Informationen sind modulabhängig und basieren auf der Identifikation,
die durch die Grundgerätsteuerung
empfangen wird. Folglich ist der weiche Konfigurationsprozess unter
Verwendung des JTAG-Tors jedes Modulprozessors 1101 flexibel und
spezifisch für
einen bestimmten Modultyp. Wenn der weiche Konfigurationsprozess abgeschlossen
ist, aktiviert der Modulprozessor 1101 das DONE-Signal 1108,
das das D-Flip-Flop 1107, wie vorher beschrieben, voreinstellt,
und nimmt den Modulprozessor aus dem Testmodus. An diesem Punkt
leitet die Grundgerätsteuerung 100 normale
serielle Kommunikationsverbindungsoperationen ein, durch Einkoppeln
des seriellen Normalbetriebstaktsignals auf die Taktleitung 208 und
ein Sendedatenpaket auf die Datenausgabeleitung 204.
-
Die
JTAG-Leitungen TCK 1103, TDI 1104, TDO 1105 und
TMS 1110 sind ebenfalls mit einem getrennten Teststiftsockel 1113 verbunden,
der sich auf dem Modul 102, 104, 106 befindet.
Der Teststiftsockel liefert Zugriff zu den JTAG-Leitungen TCK 1103, TDI 1104,
TDO 1105 und TMS 1110 durch eine Testvorrichtung,
wie z. B. einen Logikanalysator, während normalen Kommunikationsoperationen
für die
Zwecke der Entwicklung und Fehlersuche. Ein Benutzer des Systems
hätte normalerweise
keinen Zugriff zu dem Testverbinder, aber derselbe ist als Teil
eines verbesserten Entwurfs für
Testbarkeits- und Fehlersuchzwecke aufgenommen.
-
Mit
besonderer Bezugnahme auf 13 der Zeichnungen
ist ein vereinfachtes Flussdiagramm des Modulkonfigurationsprozesses
unter Verwendung der Modulprozessor-JTAG-Funktionalität gezeigt. Nach dem Einschalten
des Gesamtsystems und nach dem Hochfahren der Grundgerätsteuerung 100 wird
eine Prüfung,
ob die Leistung gut ist, durchgeführt, nach der die Grundgerätsteuerung
das Vorliegen 1301 von einem oder mehreren Modulen 102, 104 und 106 erfasst.
Für alle
Module, die als vorliegend erfasst wurden, leitet die Grundgerätsteuerung 100 eine
explizite Rücksetzaktion 1302 ein,
durch Sperren des seriellen Takts 208, wie es vorher beschrieben
wurde. Für
alle vorliegenden Module ist dann bekannt, dass der Modulprozessor 1101 in
einem Rücksetzzustand
ist, nicht konfiguriert ist und daher nicht in der Lage ist für eine normale
serielle Kommunikation über
die serielle Kommunikationsverbindung 112. Folglich wird
der Modulprozessor 1101 unmittelbar in einen JTAG-Testmodus platziert, durch
Aktivieren des JTAG-Torsignals TMS 1110 und Einleiten der
Taktaktivitäten 1303.
Der Modulprozessor 1101, der nun in einem JTAG-Boundary-Scan-Modus
arbeitet, sendet 1304 den Modulidentifikationscode an die
Grundgerätsteuerung 100 zurück, wodurch
die Steuerung 100 in der Lage ist, die notwendigen Modulkonfigurationsschritte
zu identifizieren, die für
die Module 102, 104, 106 erforderlich
sind. Die Steuerung 100 konfiguriert 1305 dann
den/die Modulprozessor(en) 1101 durch Übertragen eines seriellen Bitstroms
unter Verwendung der seriellen Kommunikationsverbindung an das JTAG-Tor.
Wenn der Konfigurationsprozess abgeschlossen ist, aktiviert der
Modulprozessor 1101 autonom das DONE-Signal 1108 zum
Deaktivieren des JTAG-Testmodus 1306.
Unmittelbar danach leitet 1307 die Grundgerätsteuerung 100 eine
normale serielle Kommunikation über
die serielle Kommunikationsverbindung 112 ein. Unmittelbar
auf das Einleiten der normalen seriellen Kommunikation hin bestätigt die
Grundgerätsteuerung 100,
dass die Module 102, 104, 106 normal
antworten 1308. Die Erfassung normaler Antworten beschließt 1310 den
Erfassungs- und Konfigurationsprozess. Das Versagen 1309,
normale Antworten von einem oder mehreren Modulen 102, 104, 106 zu
erfassen, führt
zu einem Test zum Bestimmen, wie viele Versuche durchgeführt wurden, um
das/die Modul(e) zu konfigurieren. Falls die Anzahl von Versuchen
eine vorbestimmte obere Grenze 1311 überschreitet, wird das Modul
oder die Module, die nicht in der Lage sind, normal zu antworten,
als „schlecht" gekennzeichnet 1312,
und der Erfassungs- und Konfigurationsprozess endet. Falls die Anzahl
von Versuchen die vorbestimmten oberen Grenzen 1313 für Versuche
nicht überschreitet,
wird eine Wiederholung der Schritte 1302 – 1308 eingeleitet.
Wie es für
einen Durchschnittsfachmann auf diesem Gebiet klar ist, können verschiedene
Einzelheiten des Erfassungs- und Konfigurationsprozesses, einschließlich der
Anzahl von Konfigurationsversuchen, geändert werden, wie es für ein bestimmtes Ausführungsbeispiel
als praktisch und geeignet erscheint. Ferner, wie es für einen
Durchschnittsfachmann auf diesem Gebiet ebenfalls gut verständlich ist, müssen feldprogrammierbare
Logikvorrichtungen nicht durch einen seriellen Bitstrom unter Verwendung
von JTAG-Protokollen
konfiguriert werden, sondern können
beispielsweise durch ROM-Vorrichtungen, Mikrocontrollerschnittstellen
usw. konfiguriert werden. In solchen Fällen kann das innovative Abbilden
eines Vier-Signal-JTAG-Kommunikationsverfahrens
auf einen seriellen Drei-Signal-Kommunikationsbus,
wie es hierin beschrieben ist, lediglich dem Identifikationsprozess
oder anderen Zwecken dienen.
-
Das
so beschriebene System unterstützt
zumindest vier unterschiedliche Formen von Selbstschutzmerkmalen.
Wie es hierin beschrieben ist, umfasst ein Selbstschutzmerkmal das
Schnellschutzbit 412 des Empfangsdatenpakets 358 und
das Systemfehlerbit 308 des Sendedatenpakets 354.
Als ein Beispiel können
eines oder mehrere der Module 102, 104, 106 einen Überspannungs-
oder Übertemperaturzustand
erfassen. Eine solche Bedingung beeinträchtigt typischerweise das gesamte
System und rechtfertigt eine systemweite Antwort. Folglich setzen das
Modul oder die Module 102, 104, 106,
die den Zustand erfassen, das Schnellschutzbit 412 des Empfangsdatenpakets 358.
Wie es ebenfalls hierin beschrieben ist, empfängt die Grundgerätsteuerung 100 das
Schnellschutzbit 412 und kann optional und selektiv das
Systemfehlerbit 308 von einem oder mehreren Sendedatenpaketen 354 in
dem gleichen Kommunikationsrahmen setzen. Die Module 102, 104, 106,
an die das Systemfehlerbit gesendet wird, kann dann antworten durch
Sperren des Betriebs und Deaktivieren jedes Modulausgangs oder eine
andere geeignete Aktion, während
es nach wie vor die Systemkommunikation beibehält.
-
Ein
weiteres Systemschutzmerkmal umfasst die autonome Rücksetzung
durch ein Modul 102, 104, 106. Bei einem
typischen Szenario überwacht eine
Leistungsüberwachungsschaltung
die Modulsekundärleistungsversorgungen.
Falls die Überwachungsschaltung
erfasst, dass eine oder mehrere der Leistungsversorgungen außerhalb
der vorbestimmten Schwellenwerte liegt, wird dieselbe den Modulprozessor
in einen Rücksetzzustand
versetzen, da Fehler dieser Art typischerweise zu ungesteuertem und
unerwünschtem
Verhalten führen
können.
In diesem Zustand kann das Modul 102, 104, 106 nicht mehr über die
serielle Kommunikationsverbindung 112 kommunizieren. Die
Grundgerätsteuerung 100 erfasst
diesen Zustand als ein Versagen des Moduls, normal auf serielle
Kommunikationsaktivitäten
anzusprechen, und kann dann versuchen, das Modul weich zu konfigurieren
unter Verwendung des JTAG-Tors und der Protokolle, wie es vorher
hierin beschrieben ist. Falls sie dies nicht kann, kennzeichnet
die Grundgerätsteuerung 100 dann
das Modul 102, 104, 106 als nicht betriebsfähig, wie
es ebenfalls hierin vorher beschrieben wurde, und fährt damit
fort, mit den verbleibenden Modulen 102, 104, 106 zu kommunizieren.
Vorteilhafterweise erfordert ein Ausfall eines Moduls 102, 104, 106 kein
Rücksetzen
des gesamten Systems, sondern liefert nur eine Nachricht eines solchen
Ausfalls.
-
Noch
ein weiteres Systemschutzmerkmal umfasst eine Grundgerätsteuerungsrücksetzung
von einem oder mehreren Modulen durch selektives Sperren des Taktsignals 208.
Auf diese Weise ist es möglich,
dass die Grundgerätsteuerung
eines oder mehrere der Module 102, 104, 106 neu
konfiguriert, ohne die Rücksetzung
und die Neukonfiguration aller Module in dem System zu erfordern.
Diese Rücksetzung
kann bei einem Systempegel oder einem Modulpegel implementiert werden,
wie es durch die Grundgerätsteuerung 100 programmiert
ist. Mit besonderer Bezugnahme auf 14 der
Zeichnungen ist eine Logik gezeigt zum Implementieren eines spezifischen
Ausführungsbeispiels
des selektiven Sperrens von einem oder mehreren Taktsignalen 208.
Der Zustand nach der Rücksetzung
ist ein vordefinierter Zustand, typischerweise der „Einschalt"-Zustand, obwohl
es nicht notwendig ist, diese Übereinkunft
zu übernehmen.
Die Rücksetzung
wird von der Steuerung 100 zu dem Modul 102, 104, 106 kommuniziert, durch
Sperren des Taktsignals 208 für eine Periode von mehr als
10 Millisekunden. Bei einem spezifischen Ausführungsbeispiel umfasst das „Sperren" des Taktsignals das
Halten des Takts 208 in einem logischen „1" oder „hohen" Zustand. Die selektive
Taktinhibitor- bzw. -sperrerschaltung umfasst ein getrenntes Taktsperr-NAND-Gatter 1401 für die Taktleitung 208 jedes
Moduls. Bei dem offenbarten Ausführungsbeispiel
hat das Halten des Taktsignals in einem logischen „0" oder „niedrigen" Zustand keine Auswirkung
bezüglich
des Rücksetzens
von Modulen. Ein Taktfreigaberegister 1402 nimmt ein Bit
für jedes
Modul 102, 104, 106 an, wobei jedes Bit
ein Eingangssignal in jedes Taktsperr-NAND-Gatter 1401 ist. Das Inverse
des Mastertakts ist das andere Eingangssignal in jedes Taktsperr-NAND-Gatter 1401. Ein
Benutzer kann das Taktfreigaberegister 1402 programmieren,
um selektiv einen oder mehrere der Takte 208 zu deaktivieren,
auf ausgewählte
der Module 102, 104, 106. Das Modul antwortet
durch Versetzen des Modulprozessors 1101 in einen Rücksetzzustand,
nach einer gewissen Anzahl von versäumten Taktzyklen. Die Anzahl
von Taktzyklen wird unter Verwendung eines RC-Filters 1403 und
einer Schaltung eines Komparators 1404 bestimmt. Während einer
normalen seriellen Kommunikation läuft der Takt 208 und
entlädt
die RC-Schaltung 1403 fortlaufend, um eine Schwellenwertspannung
unter einem Wert von etwa 1,65 Volt beizubehalten. Wenn das Taktsignal 208 gesperrt
ist, hält
das NAND-Gatter 1401 das Taktsignal in einem „hohen" Zustand, der die
RC-Schaltung 1403 auf einen Wert lädt, der schließlich die
1,65 Volt überschreitet.
Wenn dies auftritt, wird der Ausgang des Komparators 1404,
der mit einer modulprozessorinvertierten Rücksetzung 1405 verbunden
ist, „tief" gezogen und setzt
dadurch den Modulprozessor 1101 zurück. Es wird bevorzugt, dass
alle Module 102, 104, 106 mit ähnlichen
vordefinierten Konfigurationen und auch jedem lokalisierten vordefinierten
Status, wie er für
jedes spezifische Modul geeignet ist, auf die Systempegelrücksetzung antworten.
Nach der Rücksetzung,
entweder auf den Systempegel oder den Modulpegel, zwingen die Module 102, 104, 106,
die rückgesetzt
haben, ihre jeweiligen Daten in den Signalleitungen 206 auf
logisch „niedrig" oder „0", und ermöglichen
dadurch eine nachfolgende Erfassung und Identifikation, wie es oben
beschrieben ist. Nachdem das Modul rückgesetzt ist, konfiguriert
die Grundgerätsteuerung 100 das
Modul 102, 104, 106 neu, unter Verwendung
der JTAG-Konfigurationsfähigkeit,
wie sie hierin beschrieben ist.
-
Die
verschiedenen Fehlererfassungs- und Antwortmodi, die hierin präsentiert
sind, liefern eine flexible und robuste Antwort auf erfasste Fehlerzustände, während sie
eine maßvolle
Verwendung des seriellen Kommunikationssystems erfordern.