-
HINTERGRUND DER ERFINDUNG
-
Die
Erfindung betrifft ein System mit Signalwandlervorrichtungen, insbesondere
ADCs (Analog-Digital-Wandler), eine Vorrichtung zur Verwendung in
einem Signalwandlersystem und ein Verfahren zum Betrieb eines Signalwandlersystems.
-
Herkömmliche
Mikrocontroller- oder Mikroprozessorsystem umfassen eine oder mehrere
CPUs (Central Processing Units). Die CPU(s) ist/sind mit einem oder
mehreren Speichern verbunden, beispielsweise mit einem Programmspeicher
und einem Datenspeicher usw.
-
Die
Speicher können
auf dem gleichen Chip wie die CPU(s) angeordnet ("eingebettetes" Mikrocontroller-
oder Mikroprozessorsystem) oder alternativ getrennt von der/den
CPU(s) angeordnet sein.
-
Der
Programmspeicher beispielsweise kann die von der/den CPU(s) auszuführende Befehlsfolge, das
heißt
das Programm, speichern und der Datenspeicher kann beispielsweise
die jeweiligen Variablen, beispielsweise Variablen zum Ändern durch
die CPU(s) beim Ausführen
des Programms, speichern.
-
Zusätzlich umfassen
herkömmliche
Mikrocontroller- oder Mikroprozessorsysteme häufig eine oder mehrere Signalwandlervorrichtungen,
beispielsweise ADCs (Analog-Digital-Wandler).
-
Durch
die Verwendung eines ADC kann ein Dauereingangssignal, beispielsweise
eine analoge Messspannung, ein jeweiliges Stromsignal usw., in eine
digitale Zahl umgewandelt wer den. Die digitale Zahl kann dann beispielsweise
von der/den CPU(s) verarbeitet werden.
-
Die
Anzahl der unterschiedlichen digitalen Zahlen, die ein ADC für den zulässigen Bereich
eines Dauereingangssignals erzeugen kann, wird als "Auflösung" des ADC bezeichnet.
Ein ADC beispielsweise, der eine analoge Messspannung in eine von
256 unterschiedlichen digitalen Zahlen (0 ... 255) verschlüsselt, weist
eine Auflösung
von acht Bit auf gemäß der Formel
28 = 256.
-
Da
das Eingangssignal zeitkontinuierlich ist, muss die Geschwindigkeit
definiert werden, mit der neue digitale Zahlen/neue diskrete Werte
aus dem Eingangssignal abgefragt werden. Die Geschwindigkeit der
neuen Werte wird als "Abfragegeschwindigkeit" oder "Abfragefrequenz" des ADC bezeichnet.
-
Für einige
Anwendungen ist ggf. das gleichzeitige Abfragen von zwei oder mehr
unterschiedlichen Messspannungen erforderlich. Typische Beispiele
sind das Abfragen von Messspannungen mit Bezug auf zwei parallel
gemessene Phasenströme eines
WS-Motors, die Positionsmessung mit Koordinatenwandler usw.
-
Für diese
Anwendungen können
mehrere separate Abfrage- und
Haltevorrichtungen verwendet werden, wobei die Abfrage- und Haltevorrichtungen parallel
(gleichzeitig) die jeweiligen unterschiedlichen Messspannungen erfassen
und sequentiell die erfassten analogen Werte für den ADC zur sequentiellen
Umwandlung der analogen Werte in die entsprechenden digitalen Zahlen
bereitstellen. Alternativ können
die entsprechenden Abfrage- und
Haltevorrichtungen am ADC selbst angeordnet werden.
-
Als
eine weitere Alternative können
mehrere ADCs verwendet werden, wobei für jeden parallelen ADC eine
der oben genannten unterschiedlichen Messspannungen bereitgestellt
wird, die parallel abgefragt und anschließend in entsprechende digitale Zahlen
umgewandelt werden.
-
Ein
Vorzug der Verwendung von mehreren ADCs statt mehreren Abfrage-
und Haltevorrichtungen ist, dass mehr Messungen/Abfragen in einem
bestimmten Zeitraum durchgeführt
werden können.
-
Beim
Durchführen
paralleler Messungen/Abfragen müssen
die einzelnen ADCs synchronisiert werden.
-
Zum
Synchronisieren der ADCs können
ein "Master"-ADC und ein oder
mehrere "Slave"-ADCs bereitgestellt
werden. Wenn die Master-ADCs eine parallele Umwandlung/Abfrage von
einem Slave-ADC anfordern, führt
der Slave-ADC die entsprechende Umwandlung zu einem definierten
Zeitpunkt (beispielsweise mit Bezug auf einen Systemtakt) durch.
Wenn der Master-ADC keine parallele Umwandlung vom Slave-ADC anfordert,
kann der entsprechende Slave-ADC separate, unabhängige Messungen durchführen. Wegen
der definierten Funktionen der ADCs (als "Master"-ADC
bzw. "Slave"-ADC) ist jedoch
die Flexibilität
des Systems eingeschränkt. Aus
diesen und anderen Gründen
besteht ein Bedarf für
die vorliegende Erfindung.
-
KURZE ZUSAMMENFASSUNG DER
ERFINDUNG
-
Gemäß einem
Ausführungsbeispiel
der Erfindung wird ein System mit einer Vielzahl von Signalwandlervorrichtungen
bereitgestellt, wobei jede Signalwandlervorrichtung so angepasst
ist, dass ihr variabel eine von mehreren definierten Funktionen
im System zugewiesen werden kann. Die mehreren definierten Funktionen
können
beispielsweise die Funktion einer Master-Signalwandlervorrichtung und die Funktion
einer Slave-Signalwandlervorrichtung usw. umfassen. Zweckmäßigerweise
umfasst jede Signalwandlervorrichtung wenigstens ein programmierbares
Register für
das Speichern von Daten zum Definieren der Funktion der jeweiligen
Signalwandlervorrichtung im System. Gemäß einem weiteren Ausführungsbeispiel
der Erfindung wird eine Signalwandlervorrichtung zur Verwendung
in einem System mit mehreren Signalwandlervorrichtungen bereitgestellt, wobei
die Vorrichtung wenigstens ein programmierbares Register für das Speichern
von Daten zum Definieren umfasst, ob von einer weiteren Signalwandlervorrichtung
im System empfangene Status- und/oder
Steuerdaten berücksichtigt
werden sollen oder nicht. Gemäß einem
weiteren Ausführungsbeispiel
der Erfindung wird eine Signalwandlervorrichtung zur Verwendung
in einem System mit mehreren Signalwandlervorrichtungen bereitgestellt,
wobei die Vorrichtung wenigstens ein programmierbares Register für das Speichern
von Daten zum Definieren umfasst, ob in der Signalwandlervorrichtung
erzeugte Status- und/oder Steuerdaten und/oder in einer weiteren
Signalwandlervorrichtung im System erzeugte Status- und/oder Steuerdaten
berücksichtigt werden
sollen oder nicht.
-
Weitere
Merkmale und Vorzüge
der vorliegenden Erfindung werden in der folgenden detaillierten
Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen offensichtlich.
-
KURZE BESCHREIBUNG DER VERSCHIEDENEN ANSICHTEN
DER ZEICHNUNG(EN)
-
Die
beigefügten
Zeichnungen sind enthalten, um ein besseres Verständnis der
vorliegenden Erfindung zu ermöglichen,
sind integriert in die vorliegende Beschreibung und bilden einen
Bestandteil dieser. Die Zeichnungen zeigen Ausführungs beispiele der vorliegenden
Erfindung und dienen zusammen mit der Beschreibung zum Erläutern der
Grundgedanken der Erfindung. Andere Ausführungsbeispiele der vorliegenden
Erfindung und viele der beabsichtigten Vorzüge der vorliegenden Erfindung
sind einfach zu beurteilen, da sie unter Bezugnahme auf die folgende detaillierte
Beschreibung besser zu verstehen sind.
-
1 stellt
schematisch ein System mit ADCs (Analog-Digital-Wandlern) gemäß einem
Ausführungsbeispiel
der Erfindung dar.
-
2 stellt
schematisch ein Synchronisierungsregister eines in 1 gezeigten
ADC dar.
-
3 stellt
schematisch einen Teil eines in 1 gezeigten
ersten und eines zweiten ADC dar.
-
4 stellt
schematisch einen weiteren Teil des in 1 gezeigten
ersten und zweiten ADC dar.
-
5 stellt
schematisch einen weiteren Teil des in 1 gezeigten
ersten und zweiten ADC dar.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
In
der folgenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen
Bezug genommen, die einen Teil dieser bilden und in denen zur Erläuterung
spezifische Ausführungsbeispiele
gezeigt werden, in denen die Erfindung ausgeführt werden kann. Es ist darauf
hinzuweisen, dass andere Ausführungsbeispiele
verwendet und strukturelle oder anderweitige Änderungen vorgenommen werden können, ohne
dass vom Umfang der vorliegenden Erfindung abgewichen wird. Die
folgende detaillierte Beschreibung darf daher nicht in einem einschränkenden
Sinn verstanden werden und der Umfang der vorliegenden Erfindung
ist durch die beigefügten
Ansprüche
definiert.
-
1 zeigt
eine schematische, beispielhafte Darstellung eines Systems 1 mit
mehreren ADCs (Analog-Digital-Wandlern) 3a, 3b, 3c, 3d gemäß einem
Ausführungsbeispiel
der Erfindung.
-
Jeder
ADC 3a, 3b, 3c, 3d kann ein
Dauereingangssignal, beispielsweise eine analoge Messspannung, ein
entsprechendes Stromsignal usw., das für einen jeweiligen ADC 3a, 3b, 3c, 3d über einen
aus einer Vielzahl von Eingangskanälen 2a, 2b, 2c bereitgestellt
wird, in eine jeweilige digitale Zahl umwandeln. Die digitale Zahl
kann dann in jeweils einem von mehreren Ausgangsregistern 4a, 4b, 4c, 4d vom ADC 3a, 3b, 3c, 3d gespeichert
werden. Später
kann die digitale Zahl beispielsweise ausgelesen und von einem entsprechenden
Mikroprozessor oder Mikrocontroller eines Mikrocontroller- oder
Mikroprozessorsystems weiterverarbeitet werden.
-
Die
ADCs 3a, 3b, 3c, 3d können auf
dem gleichen Chip oder alternativ auf separaten Chips angeordnet
werden.
-
Das
System 1 kann eine feste Anzahl von ADCs 3a, 3b, 3c, 3d,
beispielsweise zwei, drei, vier oder mehr ADCs, umfassen. Alternativ
ist die Anzahl der ADCs 3a, 3b, 3c, 3d im
System variabel anpassbar (so dass das System 1 variabel
beispielsweise zwei, drei, vier oder mehr ADCs umfassen kann).
-
Wie
detaillierter weiter unten beschrieben, ist jeder ADC 3a, 3b, 3c, 3d ähnlich oder
im Wesentlichen ähnlich
konstruiert. Wie ebenfalls detaillierter weiter unten beschrie ben,
kann jedoch jeder ADC 3a, 3b, 3c, 3d unterschiedlich
programmiert werden, um eine von mehreren definierten Funktionen
einem jeweiligen ADC zuzuweisen.
-
Wie
detaillierter weiter unten beschrieben, kann insbesondere jedem
ADC 3a, 3b, 3c, 3d variabel
die Funktion eines "Master"-ADC oder die Funktion
eines "Slave"-ADC oder die Funktion
eines "autonomen" ADC zugewiesen werden.
Daher kann beispielsweise dem ersten ADC 3a ("ADC 1") gemäß beispielsweise
den spezifischen Anforderungen einer ersten Anwendung beispielsweise
die Funktion eines "Master"-ADC zugewiesen werden,
während gemäß beispielsweise
den spezifischen Anforderungen einer von der ersten Anwendung abweichenden zweiten
Anwendung dem gleichen ADC 3a ("ADC 1") die Funktion eines "Slave"-ADC zugewiesen werden kann usw.
-
Wie
ebenfalls detaillierter weiter unten beschrieben wird, können jedem "Master"-ADC ein oder mehrere "Slave"-ADCs zugewiesen
werden. Daher, wenn beispielsweise die Funktion eines "Master"-ADC dem ersten ADC 3a ("ADC 1") zugewiesen wird,
kann beispielsweise gemäß den spezifischen Anforderungen
von beispielsweise einer dritten Anwendung beispielsweise ein zweiter
ADC 3b ("ADC 2") als "Slave"-ADC dem ersten ADC 3a ("ADC 1") zugewiesen werden,
während
gemäß beispielsweise den
spezifischen Anforderungen von beispielsweise einer von der dritten
Anwendung abweichenden vierten Anwendung beispielsweise ein dritter
und vierter ADC 3c, 3d ("ADC 3" und "ADC 4") als "Slave"-ADCs dem ersten ADC 3a ("ADC 1") zugewiesen werden können usw.
-
Die
Gesamtzahl der ADCs, denen die Funktion eines "Master"-ADC zugewiesen wird, und/oder die Gesamtzahl
der ADCs, denen die Funktion eines "Slave"-ADC zugewiesen wird, ist variabel.
-
Ein "Master"-ADC und der eine
oder mehrere diesem "Master"-ADC zugewiesene "Slave"-ADCs bilden eine
jeweilige "Synchronisierungsgruppe". Wie in der vorhergehenden
Erläuterung
dargelegt, ist die Gesamtzahl der "Synchronisierungsgruppen" des Systems 1 variabel
anpassbar.
-
Wie
in 1 gezeigt, wird für die Synchronisierung des
einen oder von mehreren "Master"-ADCs mit ihrem bzw.
ihren jeweiligen einen oder mehreren verknüpften "Slave"-ADCs insbesondere zum Ausführen einer
jeweiligen parallelen Umwandlung ein Bussystem 5 bereitgestellt,
das jeden der ADCs 3a, 3b, 3c, 3d des
Systems 1 verbindet.
-
Das
Bussystem 5 umfasst einen Steuerbus 5a, durch
dessen Verwendung jeweilige Steuersignale mit Bezug auf einen jeweiligen
Satz von Steuerdaten, die von einem jeweiligen "Master"-ADC bereitgestellt werden, vom jeweiligen "Master"-ADC zu allen anderen
ADCs des Systems 1 geschickt werden können. Der Satz von Steuerdaten
wird im Allgemeinen vom einen oder von mehreren mit dem jeweiligen "Master"-ADC verknüpften "Slave"-ADCS nur ausgewertet/berücksichtigt,
der die Steuersignale sendet (das heißt der eine oder mehrere "Slave"-ADCs, die zur gleichen
Synchronisierungsgruppe gehören
wie der jeweilige "Master"-ADC). Im einen oder
in mehreren verknüpften "Slave"-ADCs wird der empfangene Satz von Steuerdaten
verwendet, um die auszuführende
jeweilige Analog-Digital-Wandlung zu steuern (beispielsweise in
Bezug auf Kanalwahl, Abfragegeschwindigkeit, Auflösung, Zeitsteuerung
usw.). Ferner ignoriert ein jeweiliger "Master"-ADC die über den Steuerbus 5a empfangenen
jeweiligen Sätze
von Steuerdaten. Stattdessen verwendet ein jeweiliger "Master"-ADC seinen "eigenen" Satz von Steuerdaten
(das heißt
den oben genannten Satz von Steuerdaten, die beispielsweise in jeweiligen
Registern des jeweiligen "Master"- ADC gespeichert sind und vom jeweiligen "Master"-ADC über den
Steuerbus 5a an die anderen ADCs geschickt werden) zum
Steuern der im jeweiligen "Master"-ADC durchzuführenden jeweiligen
Analog-Digital-Wandlung.
-
Daher
werden die Analog-Digital-Wandlungen einer jeweiligen Synchronisierungsgruppe
(umfassend einen jeweiligen "Master"-ADC und einen oder
mehrere verknüpfte "Slave"-ADCs) durch einen einzigen
Satz von Steuerdaten gesteuert, die vom jeweiligen "Master"-ADC der jeweiligen
Synchronisierungsgruppe bereitgestellt werden.
-
Im
Gegensatz hierzu wird in einem "autonomen" ADC, dem weder die
Funktion eines "Master"-ADC noch die Funktion
eines "Slave"-ADC (oder genauer
gesagt die Funktion eines "Master"-ADC ohne einen verknüpften "Slave"-ADC) zugewiesen wurde, nur ein jeweiliger "eigener" Satz von Steuerdaten
(das heißt
nur ein Satz von in jeweiligen Registern des jeweiligen ADC gespeicherten
Steuerdaten) verwendet, um die Durchführung der jeweiligen Analog-Digital-Wandlung
zu steuern.
-
Wie
ferner in 1 gezeigt, umfasst das Bussystem 5 zusätzlich zum
Steuerbus 5a einen Steuerbus 5b, durch dessen
Verwendung jeweilige Statussignale mit Bezug auf Statusinformationsdaten,
die beispielsweise von einem jeweiligen "Slave"-ADC
bereitgestellt werden, vom jeweiligen "Slave"-ADC an alle anderen ADCs des Systems 1 geschickt
werden können.
Die Statusinformationsdaten werden im Allgemeinen nur vom mit dem "Slave"-ADC, der die Statussignale
sendet, verknüpften "Master"-ADC ausgewertet/berücksichtigt
(das heißt vom "Master"-ADC, der zur gleichen Synchronisierungsgruppe
gehört
wie der jeweilige "Slave"-ADC). Mit den Statusinformationsdaten
kann beispielsweise signalisiert werden, dass ein jeweiliger "Slave"-ADC frei/bereit
für eine
neue Umwandlung oder nicht frei/nicht bereit für eine neue Umwandlung ist
(beispielweise weil die vorhergehende Umwandlung noch nicht abgeschlossen
ist).
-
Im "Master"-ADC wird durch Verwendung der
von allen verknüpften "Slave"-ADCs empfangenen
Statusinformationsdaten geprüft,
ob alle verknüpften "Slave"-ADCs frei/bereit
für neue
Umwandlungen sind oder nicht. Wenn ein oder mehrere verknüpfte "Slave"-ADCs nicht frei/nicht
bereit sind, wartet der "Master"-ADC, bis er von
allen verknüpften "Slave"-ADCs jeweilige Statusinformationsdaten empfängt, dass
alle verknüpften "Slave"-ADCs frei/bereit
für neue
Umwandlungen sind. Nur dann, und wenn der "Master"-ADC selbst frei/bereit für eine neue
Umwandlung ist, startet der "Master"-ADC eine jeweilige
(parallele) Umwandlung (und entsprechend ähnlich, das heißt parallel),
die verknüpften "Slave"-ADCs (siehe unten).
-
Somit
werden simultane, parallele Umwandlungen durch alle ADCs der gleichen
Synchronisierungsgruppe durchgeführt,
wobei die jeweiligen Abfragephasen zum gleichen Zeitpunkt beginnen.
Dabei werden jeweilige Dauereingangssignale, bereitgestellt am gleichen
oder an unterschiedlichen Eingangskanälen 2a, 2b, 2c (siehe
unten), in jeweilige digitale Zahlen umgewandelt und in den entsprechenden
Ausgangsregistern 4a, 4b, 4c, 4d gespeichert.
-
Somit
kann beispielsweise erreicht werden, dass zwei oder mehr unterschiedliche
Messspannungen, die an den jeweiligen Eingangskanälen 2a, 2b, 2c bereitgestellt
werden, gleichzeitig abgerufen werden (beispielsweise zwei parallel
gemessene Phasenströme
eines WS-Motors, mehrere parallel gemessene Koordinatenwandlerspannungen
usw.).
-
Im
Gegensatz zu einem "Master"- oder "Slave"-ADC muss ein "autonomer" ADC keine über den Statusbus 5b bereitgestellte
Statusinformationsdaten auswerten/berücksichtigen. Somit kann ein "autonomer" ADC eine Umwandlung
ungeachtet der von anderen ADCs bereitgestellten Statusinformationen starten.
-
Wie
detaillierter weiter unten beschrieben, umfasst jeder ADC 3a, 3b, 3c, 3d zum
Zuweisen der oben genannten Funktionen ("Master", "Slave" oder "autonom") zu den ADCs 3a, 3b, 3c, 3d und
zum Synchronisieren der ADCs 3a, 3b, 3c, 3d einer
Synchronisierungsgruppe ein jeweiliges Synchronisierungsregister 6a, 6b, 6c, 6d (siehe
ebenfalls 2). Die Synchronisierungsregister 6a, 6b, 6c, 6d der ADCs 3a, 3b, 3c, 3d können durch
den Mikroprozessor/Mikrocontroller des oben genannten Mikrocontroller-
oder Mikroprozessorsystems während
des normalen Betriebs des Systems variabel programmiert werden.
Somit können
die in den Synchronisierungsregistern 6a, 6b, 6c, 6d gemäß den spezifischen
Anforderungen einer jeweiligen Anwendung während der Laufzeit des Systems
geändert
werden.
-
Wie
in 3, 4 und 5 dargestellt, umfasst
jeder ADC 3a, 3b, 3c, 3d, entsprechend ähnlich wie
herkömmliche
ADCs, einen digitalen Teil 7a, einen analogen Teil 8a, 8b und
einen Arbiter 9a, 9b. Der Arbiter 9a, 9b beispielsweise
entscheidet, welche Umwandlung als nächstes in einem jeweiligen ADC 3a, 3b, 3c, 3d gestartet
wird.
-
Zu
Synchronisierungszwecken müssen
die Arbiter 9a, 9b der ADCs der gleichen Synchronisierungsgruppe
parallel laufen bzw. gestartet werden (oder genauer die Zustandsmaschinen
der jeweiligen Arbiter 9a, 9b). Das gleiche gilt
beispielsweise für
die analogen Teile 8a, 8b (beispielsweise für in den
analogen Teile 8a, 8b der ADCs der gleichen Synchronisierungsgruppe
enthaltenen internen Dividierer/für ADC-Kernel-Takte, gesteuert
durch jeweilige Kernel-Taktsteuerungen 10a, 10b der
jeweiligen ADCs usw. (siehe 3)).
-
Zum
Ausführen
eines synchronisierten Starts der Arbiter 9a, 9b/analogen
Teile 8a, 8b usw. wird in einem ersten Schritt
eine in einem Register 11a, 11b eines jeweiligen
ADC gespeicherte Variable ANON (Analog ein) auf einen ersten definierten
Wert, beispielsweise auf "00B",
gesetzt (siehe 3).
-
Wie
detaillierter weiter unten beschrieben, wird der im Register 11a, 11b gespeicherte
Wert (beispielsweise der oben genannte, erste definierte Wert "00B") über einen
Multiplexer 12a, 12b für ein weiteres Register 13a, 13b bereitgestellt,
in diesem gespeichert und für
den jeweiligen Arbiter 9a, 9b und die jeweilige
Kernel-Taktsteuerung 10a, 10b des jeweiligen "Master"-ADC /"autonomen" ADC bereitgestellt,
wenn ein jeweiliger ADC ein "Master"-ADC oder ein "autonomer" ADC ist.
-
Als
Reaktion auf den Empfang des oben genannten ersten definierten Werts
(beispielsweise des oben genannten Werts "00B") vom weiteren Register 13a, 13b werden
die oben genannten internen Dividierer, Arbiter-Zustandsmaschinen
usw. in einen definierten Ausgangszustand versetzt und der jeweilige analoge
Teil 8a, 8b wird ausgeschaltet.
-
Wie
in 3 zu sehen ist, wird die im Register 11a, 11b eines
jeweiligen ADC gespeicherte a-Variable ANON (Analog ein) nicht nur,
wie oben erläutert,
für den
Multiplexer 12a, 12b des jeweiligen ADC bereitgestellt,
sondern über
die jeweiligen Leitungen 105a, 105b, 105c, 105d (Leitung
ANONx, ANONy usw.) der oben genannten Busse 5a, 5b für alle weiteren
ADCs des Systems (insbesondere für
die jeweiligen Eingänge
der in den ADCs 3a, 3b, 3c, 3d angeordneten
jeweiligen Multiplexer 12a, 12b) bereitgestellt.
Beispielsweise, wie exemplarisch in 3 gezeigt,
wird die im Register 11a des ersten ADC 3a gespeicherte
Variable ANON (Analog ein) für
einen ersten Eingang (anon_0) des Multiplexers 12a des
ersten ADC 3a und über
die Leitungen 105b der oben genannten Busse 5a, 5b beispielsweise
für einen dritten
Eingang (anon2_i) des Multiplexers 12b des oben genannten
zweiten ADC 3b usw. bereitgestellt. Ferner, wie ebenfalls
in 3 gezeigt, wird die im Register 11b des
zweiten ADC 3b gespeicherte Variable ANON (Analog ein)
für einen
ersten Eingang (anon_0) des Multiplexers 12b des zweiten
ADC 3b und über
die Leitungen 105c der oben genannten Busse 5a, 5b beispielsweise
für einen
dritten Eingang (anon2_i) des Multiplexers 12a des oben
genannten ersten ADC 3a usw. bereitgestellt. Wie detaillierter
weiter unten beschrieben wird, ermöglicht dies das parallele Setzen
von Variablen in mehreren unterschiedlichen ADCs mit einem einzigen
CPU-Zugriff.
-
Welcher
der an den Eingängen
(anon_0, anon1_i, anon2_i, anon3_i) eines jeweiligen Multiplexers 12a, 12b vorhandenen
Werte über
den Multiplexer 12a, 12b für das oben genannte weitere
Register 13a, 13b bereitgestellt wird, hängt vom
Wert einer in einem Register 14a, 14b gespeicherten
Variable STSEL ab, das heißt
von einer les-/schreibbaren Variable STSEL, die, wie in 2 gezeigt,
Teil der im oben genannten Synchronisierungsregister 6a, 6b des
jeweiligen ADC 3a, 3b gespeicherten Variablen
ist.
-
Wenn
der jeweilige ADC 3a, 3b die Funktion eines "Master"-ADC oder eines "autonomen" ADC übernehmen
soll, wird der Wert der im Register 14a, 14b des
jeweiligen ADC gespeicherten Variablen STSEL auf einen ersten definierten
Wert, beispielsweise auf "00B",
gesetzt. In diesem Fall wird der am ersten Eingang (anon_0) eines
jeweiligen Multiplexers 12a, 12b vorhandene Wert,
das heißt
der Wert der im oben genannten Regis ter 11a, 11b gespeicherten
Variablen ANON (Analog On) über
den Multiplexer 12a, 12b für das oben genannte weitere
Register 13a, 13b bereitgestellt.
-
Wenn
stattdessen der jeweilige ADC 3a, 3b die Funktion
eines "Slave"-ADC eines "Master"-ADC übernehmen
soll, wird der Wert der im Register 14a, 14b des
jeweiligen ADC gespeicherten Variablen STSEL auf einen weiteren
definierten Wert, beispielsweise auf "01B", "10B" oder "11B" gesetzt. Wenn der im
Register 14a, 14b gespeicherte Wert beispielsweise "01B" lautet, wird der
am zweiten Eingang (anon1_i) eines jeweiligen Multiplexers 12a, 12b vorhandene
Wert über
den Multiplexer 12a, 12b für das oben genannte weitere
Register 13a, 13b bereitgestellt. Wenn jedoch
der im Register 14a, 14b gespeicherte Wert beispielsweise "10B" lautet, wird der
am dritten Eingang (anon2_i) eines jeweiligen Multiplexers 12a, 12b vorhandene
Wert über
den Multiplexer 12a, 12b für das oben genannte weitere
Register 13a, 13b bereitgestellt, und wenn der
im Register 14a, 14b gespeicherte Wert "11B" lautet, wird der
am vierten Eingang (anon3_i) eines jeweiligen Multiplexers 12a, 12b vorhandene
Wert über
den Multiplexer 12a, 12b für das oben genannte weitere
Register 13a, 13b bereitgestellt.
-
Insbesondere
wird der Wert der im Register 14a, 14b eines jeweiligen "Slave"-ADC gespeicherten
Variable STSEL so gewählt,
dass durch den jeweiligen Multiplexer 12a, 12b der
Wert der Variablen ANON, die vom mit dem jeweiligen "Slave"-ADC verknüpften "Master"-ADC bereitgestellt
wird, das heißt vom "Master"-ADC der gleichen
Synchronisierungsgruppe wie der jeweilige "Slave"-ADC (wobei die Variable wie oben erläutert an
den oben genannten Leitungen 105a, 105b, 105c, 105d bereitgestellt
wird) für
das Register 13a, 13b bereitgestellt wird.
-
Wenn
somit ein jeweiliger ADC ein "Slave"-ADC ist und wenn,
wie oben erläutert,
der entsprechende "Master"-ADC in einem ersten
Schritt den Wert der im Register 11a, 11b gespeicherten
Variablen ANON auf den oben genannten ersten definierten Wert "00B" setzt, wird dieser
Wert über
die Leitungen 105a, 105b, 105c, 105d und
den jeweiligen Multiplexer 12a, 12b des "Slave"-ADC für das (weitere)
Register 13a, 13b des "Slave"-ADC
bereitgestellt. Ferner wird entsprechend ähnlich wie oben erläutert mit
Bezug auf den verknüpften "Master"-ADC der Wert (hier: "00B") vom Register 13a, 13b für den jeweiligen
Arbiter 9a, 9b und die jeweilige Kernel-Taktsteuerung 10a, 10b des "Slave"-ADC bereitgestellt.
-
Als
Reaktion auf den Empfang des oben genannten ersten definierten Werts
(hier: "00B")
vom weiteren Register 13a, 13b werden die oben
genannten internen Dividierer, Arbiter-Zustandsmaschinen usw. des "Slave"-ADC entsprechend ähnlich wie
im Falle des "Master"-ADC und parallel
hierzu (siehe vorhergehende Erläuterungen)
in einen definierten Ausgangszustand versetzt und der jeweilige
analoge Teil 8a, 8b wird ausgeschaltet.
-
Zum
tatsächlichen
Starten der Arbiter 9a, 9b/analogen Teile 8a, 8b eines "autonomen" ADC oder zum simultanen
Starten der Arbiter 9a, 9b/analogen Teilen 8a, 8b eines "Master"-ADC und der jeweiligen "Slave"-ADCs wird nach dem
oben genannten ersten Schritt mit Setzen der Variablen ANON (Analog
ein) des Registers 11a, 11b auf den oben genannten
ersten definierten Wert "00B" in
einem zweiten Schritt die Variable ANON (Analog ein) des Registers 11a, 11b des
jeweiligen "autonomen" ADC oder "Master"-ADC gemäß den internen
Einstellungen des jeweiligen "autonomen" ADC oder "Master"-ADC vom oben genannten
ersten Wert ("00B") auf
einen vom ersten Wert abweichenden zweiten Wert (beispielsweise
auf einen Wert, der dem Wert einer in einem Register mit der Adresse
GLOBALCTR, programmiert im jeweiligen ADC, entspricht) gesetzt.
-
Wie
aus den vorhergehenden Erläuterungen folgt,
wird, wenn der jeweilige ADC ein "autonomer" ADC oder "Master"-ADC ist (und der Wert der im Register 14a, 15b gespeicherten
Variable STSEL auf "00B" gesetzt
ist, wobei der Multiplexer 12a, 12b entsprechend
gesteuert wird), der im Register 11a, 11b gespeicherte
neue Wert (das heißt
der Wert der im Register mit der Adresse GLOBALCTR gespeicherten
Variable) über
den Multiplexer 12a, 12b für das weitere Register 13a, 13b bereitgestellt,
in diesem gespeichert und für
den jeweiligen Arbiter 9a, 9b und die jeweilige
Kernel-Taktsteuerung 10a, 10b des "autonomen" ADC oder "Master"-ADC bereitgestellt.
-
Als
Reaktion auf den Empfang des oben genannten Werts der im Register
mit der Adresse GLOBALCTR gespeicherten Variable vom weiteren Register 13a, 13b beginnen
die oben genannten internen Dividierer, Arbiter-Zustandsmaschinen
usw. gemäß den durch
die im Register mit der Adresse GLOBALCTR gespeicherten Variable
definierten Einstellungen zu laufen. Somit wird der jeweilige analoge Teil 8a, 8b eingeschaltet.
-
Wie
ebenfalls aus den vorhergehenden Erläuterungen folgt, wird, wenn
ein jeweiliger ADC ein "Slave"-ADC ist und wenn,
wie oben erläutert,
der entsprechende "Master"-ADC im oben genannten zweiten
Schritt den Wert der im Register 11a, 11b gespeicherten
Variablen ANON auf den oben genannten zweiten Wert (das heißt den Wert
der im Register mit der Adresse GLOBALCTR gespeicherten Variable)
gesetzt hat, dieser Wert wegen der oben genannten Einstellung des
jeweiligen Registers 14a, 14b zum Steuern des
jeweiligen Multiplexers 12a, 12b des "Slave"-ADC über die
Leitungen 105a, 105b, 105c, 105d und
den jeweiligen Multiplexer 12a, 12b des "Slave"-ADC für das (wei tere)
Register 13a, 13b des "Slave"-ADC bereitgestellt. Ferner wird entsprechend ähnlich wie
oben erläutert
mit Bezug auf den verknüpften "Master"-ADC dieser neue
Wert (das heißt
der Wert der im Register mit der Adresse GLOBALCTR gespeicherten
Variable) vom Register 13a, 13b für den jeweiligen
Arbiter 9a, 9b und die jeweilige Kernel-Taktsteuerung 10a, 10b des "Slave"-ADC bereitgestellt.
-
Als
Reaktion auf den Empfang des oben genannten Werts der im Register
mit der Adresse GLOBALCTR gespeicherten Variable vom weiteren Register 13a, 13b beginnen
die oben genannten internen Dividierer, Arbiter-Zustandsmaschinen
usw. des verknüpften "Master"-ADC gemäß den durch
die im Register mit der Adresse GLOBALCTR gespeicherten Variable
definierten Einstellungen zu laufen. Somit wird der jeweilige analoge
Teil 8a, 8b des "Slave"-ADC parallel zum analogen Teil 8a, 8b des "Master"-ADC (und mit entsprechenden
Einstellungen) eingeschaltet.
-
Zusammengefasst
definieren die oben genannten, in den Registern 14a, 14b gespeicherten Variablen
STSEL zum Steuern der Multiplexer 12a, 12b, welches
Signal von welcher Quelle zum Starten eines jeweiligen ADC-Kernels
verwendet wird.
-
Entsprechend ähnlich wie
in herkömmlichen ADCs
wird im Arbiter 9a, 9b der ADCs 3a, 3b, 3c, 3d des
Systems 1 ermittelt, welche Umwandlungsanfrage die höchste Priorität hat und
welche Eingangskanalnummer mit der jeweiligen Umwandlungsanfrage verknüpft ist.
-
Die
ermittelte Kanalnummer wird, wie in 5 gezeigt,
vom Arbiter 9a, 9b für ein Register 15a, 15b und
von diesem Register 15a, 15b für ein Aliasmodul 16a, 16b und
in nicht modifizierter Form oder, wenn die Aliasfunktion des Ali asmoduls
aktiv ist, in einer modifizierten Form (siehe unten) für den jeweiligen
analogen Teil 8a, 8b des ADC 3a, 3b, 3c, 3d bereitgestellt.
-
Der
analoge Teil 8a, 8b wandelt dann das am jeweiligen
Eingangskanal 2a, 2b, 2c vorhandene Dauereingangssignal
gemäß der Festlegung
durch die empfangene Kanalnummer in eine jeweilige digitale Zahl
um, die, wie oben erläutert,
dann in den Ausgangsregistern 4a, 4b, 4c, 4d des
ADC 3a, 3b, 3c, 3d gespeichert
wird.
-
Wenn
die Aliasfunktion des Aliasmoduls 16a, 16b aktiv
ist, wird nicht die Kanalnummer wie vom Arbiter 9a, 9b ermittelt
für den
analogen Teil 8a, 8b bereitgestellt, sondern eine
modifizierte Kanalnummer, das heißt eine von der vom Arbiter 9a, 9b bereitgestellten
Kanalnummer abweichende Kanalnummer, die aber mit dieser Kanalnummer
verknüpft
ist, und in einem entsprechenden variabel programmierbaren Aliasregister
des Aliasmoduls 16a, 16b gespeichert.
-
In
diesem Fall wandelt der analoge Teil 8a, 8b das
an einem Eingangskanal 2a, 2b, 2c wie
von der modifizierten Kanalnummer festgelegt (das heißt an einem
anderen Eingangskanal wie von der nicht modifizierten Kanalnummer
festgelegt) vorhandene Eingangssignal um.
-
Wie
in 5 zu sehen ist, wird die Kanalnummer, wie vom
Arbiter 9a, 9b eines ADC 3a, 3b, 3c ermittelt,
nicht nur vom jeweiligen Register 15a, 15b für das entsprechende
Aliasmodul 16a, 16b/den analogen Teil 8a, 8b bereitgestellt,
sondern auch über
die jeweiligen Leitungen 106a, 106b, 106c, 106d der
oben genannten Busse 5a, 5b (insbesondere eines
parallelen Kanalnummer-Subbusses) für alle weiteren ADCs des Systems
(insbesondere für
die jeweiligen Eingänge
der in den ADCs 3a, 3b, 3c, 3d angeordneten
jeweiligen weiteren Multiplexer 112a, 12b) bereitgestellt.
-
Beispielsweise,
wie exemplarisch in 5 gezeigt, wird die im Register 15a des
ersten ADC 3a gespeicherte Kanalnummer parchnr_o über die
Leitungen 106d des oben genannten Busses beispielsweise
für einen
ersten Eingang des Multiplexers 112b des oben genannten
zweiten ADC 3b usw. bereitgestellt. Ferner, wie ebenfalls
in 5 gezeigt, wird die im Register 15b des
zweiten ADC 3b gespeicherte Kanalnummer parchnr_o über die
Leitungen 106c des oben genannten Busses beispielsweise
für einen ersten
Eingang des Multiplexers 112a des oben genannten ersten
ADC 3a usw. bereitgestellt.
-
Welcher
der an den Eingängen
eines jeweiligen Multiplexers 112a, 12b vorhandenen
Werte über den
Multiplexer 112a, 12b für den jeweiligen Arbiter 9a, 9b bereitgestellt
wird (und ob überhaupt
Werte für den
jeweiligen Arbiter 9a, 9b bereitgestellt werden (siehe
unten)), kann wiederum vom Wert der oben genannten Variable STSEL
des jeweiligen ADC abhängen,
das heißt
von der les-/schreibbaren Variable STSEL, die, wie in 2 gezeigt,
Teil der im oben genannten Synchronisierungsregister 6a, 6b des
jeweiligen ADC 3a, 3b gespeicherten Variablen
ist.
-
Entsprechend ähnlich kann,
wie oben erläutert,
der Wert der Variablen STSEL eines jeweiligen "Slave"-ADC beispielsweise so gewählt werden, dass
durch den jeweiligen Multiplexer 112a, 112b die Kanalnummer
parchnr_o, die vom mit dem jeweiligen "Slave"-ADC verknüpften "Master"-ADC bereitgestellt wird, das heißt vom "Master"-ADC der gleichen Synchronisierungsgruppe
wie der jeweilige "Slave"-ADC (wobei die Kanalnummer
wie oben erläutert an
den oben genannten Leitungen 106a, 106b, 106c, 106d bereitgestellt
wird) für
den jeweiligen Arbiter 9a, 9b des "Slave"-ADC bereitgestellt
wird.
-
Ferner
wird die Variable STSEL eines "Master"-ADC beispielsweise
so gewählt,
dass die auf dem oben genannten parallelen Kanalnummer-Subbus/den
Leitungen 106a, 106b, 106c, 106d bereitgestellten
Werte ignoriert werden, das heißt
vom jeweiligen Multiplexer 112a, 112b nicht für den jeweiligen Arbiter 9a, 9b des "Master"-ADC bereitgestellt
werden.
-
Ein
jeweiliger Arbiter 9a, 9b ermittelt, zusätzlich zum
Ermitteln, wie oben erläutert,
welche Umwandlungsanfrage die höchste
Priorität
hat und welche Eingangskanalnummer mit der jeweiligen Umwandlungsanfrage
verknüpft
wird, ebenfalls, ob der ermittelte Eingangskanal als Quelle für eine parallele Umwandlung
programmiert ist.
-
Falls,
wie in 5 gezeigt, durch einen jeweiligen Arbiter 9a, 9b ermittelt
wird, dass der ermittelte Eingangskanal als Quelle für eine parallele
Umwandlung programmiert ist, und falls der jeweilige ADC, der diesen
Arbiter 9a, 9b umfasst, ein "Master"-ADC ist, wird ein paralleles Anfragesignal parqst_o,
bereitgestellt auf einer jeweiligen parallelen Anfrageleitung, aktiviert.
-
Das
parallele Anfragesignal parqst_o wird vom jeweiligen "Master"-ADC über die
jeweiligen Leitungen 107a, 107b, 107c, 107d der
oben genannten Busse 5a, 5b (insbesondere eines
parallelen Anfrage-Subbusses) für
alle weiteren ADCs des Systems (insbesondere für jeweilige Eingänge der
jeweiligen zusätzlichen
Multiplexer 113a, 113b, bereitgestellt in den
ADCs 3a, 3b, 3c, 3d) bereitgestellt.
-
Beispielsweise,
wie exemplarisch in 5 gezeigt, wird das vom ersten
ADC 3a bereitgestellte parallele Anfragesignal parqst_o über eine
Leitung 107d des oben genannten parallelen Anfrage-Subbusses
beispielsweise für
einen ersten Eingang des Multiplexers 113b des oben genannten
zweiten ADC 3b usw. bereitgestellt. Ferner, wie ebenfalls
in 5 gezeigt, wird das vom zweiten ADC 3b bereitgestellte parallele
Anfragesignal parqst_o über
eine Leitung 107c des oben genannten parallelen Anfrage-Subbusses
beispielsweise für
einen ersten Eingang des Multiplexers 113a des oben genannten
ersten ADC 3a usw. bereitgestellt.
-
Ob
ein jeweiliges paralleles Anfragesignal parqst_o vom jeweiligen
Multiplexer 113a, 113b für den jeweiligen Arbiter 9a, 9b eines
ADC bereitgestellt wird oder nicht, kann wiederum vom Wert der oben genannten
Variable STSEL des jeweiligen ADC abhängen, das heißt von der
les-/schreibbaren Variablen STSEL, die, wie in 2 gezeigt,
Teil der im oben genannten Synchronisierungsregister 6a, 6b des
jeweiligen ADC 3a, 3b gespeicherten Variablen
ist.
-
Entsprechend ähnlich kann,
wie oben erläutert,
der Wert der Variablen STSEL eines jeweiligen "Slave"-ADC beispielsweise so gewählt werden, dass
durch den jeweiligen Multiplexer 113a, 113b nur ein
paralleles Anfragesignal parqst_o von einem mit dem jeweiligen "Slave"-ADC verknüpften "Master"-ADC, das heißt vom "Master"-ADC der gleichen Synchronisierungsgruppe
wie der jeweilige "Slave"-ADC, für den jeweiligen
Arbiter 9a, 9b des "Slave"-ADC bereitgestellt wird.
-
Ferner
wird die Variable STSEL eines "Master"-ADC beispielsweise
so gewählt,
dass die auf dem oben genannten parallelen Anfrage-Subbus/den Leitungen 107a, 107b, 107c, 107d bereitgestellten Signale
ignoriert werden, das heißt
vom je weiligen Multiplexer 113a, 113b nicht für den jeweiligen
Arbiter 9a, 9b des "Master"-ADC bereitgestellt werden.
-
Wenn
die jeweiligen Multiplexer 112a, 112b, 113a, 113b eines "Slave"-ADC, wie oben erläutert, ein
jeweiliges paralleles Anfragesignal parqst_o und die verknüpfte Kanalnummer
parchnr_o, beide wie erläutert
empfangen vom mit dem jeweiligen "Slave"-ADC verknüpften "Master"-ADC, an den Arbiter 9a, 9b des "Slave"-ADC weiterleiten,
erkennt der Arbiter des "Slave"-ADC, ungeachtet
anderer Anfragen, die verknüpfte
(parallele) Umwandlungsanfrage vom "Master"-ADC als die Anfrage, welche die höchste Priorität besitzt.
-
Somit
wird die vom verknüpften "Master"-ADC empfangene Kanalnummer,
entsprechend ähnlich
wie oben erläutert,
vom Arbiter 9a, 9b des "Slave"-ADC über das oben genannte Register 15a, 15b für das jeweilige
Aliasmodul 16a, 16b und vom Aliasmodul, in modifizierter
oder nicht modifizierter Form (siehe vorhergehende Erläuterungen),
für den jeweiligen
analogen Teil 8a, 8b des "Slave"-ADC bereitgestellt.
-
Der
analoge Teil 8a, 8b des "Slave"-ADC, parallel zum "Master"-ADC, wandelt dann das am jeweiligen
Eingangskanal 2a, 2b, 2c vorhandene Dauereingangssignal
gemäß der Festlegung
durch die empfangene modifizierte oder nicht modifizierte Kanalnummer
in eine jeweilige digitale Zahl um, die, wie oben erläutert, dann
in den Ausgangsregistern 4a, 4b, 4c, 4d des "Slave"-ADC gespeichert
wird.
-
Somit
fragen alle ADCs einer Synchronisierungsgruppe die gleiche Kanalnummer
(wie durch den "Master"-ADC definiert) ab;
sie können
aber Signale von unterschiedlichen Eingangskanälen 2a, 2b, 2c umwandeln,
wenn diese Kanalnummer durch jeweilige Aliasmodule 16a, 16b modifiziert
wurde. Mit anderen Worten kann, wie oben erläutert, eine angefragte Kanalnummer
durch die Aliaseinstellung eines jeweiligen Aliasmoduls 16a, 16b umgeleitet
werden.
-
Um
parallele Umwandlungen zu gewährleisten,
müssen
die von den jeweiligen Taktgebern in allen ADCs einer jeweiligen
Synchronisierungsgruppe verwendeten Frequenzen identisch sein. Somit
müssen
jeweilige Register in den ADCs zum Definieren dieser Frequenzen
mit identischen Werten programmiert werden.
-
Zweckmäßigerweise
kann eine parallele Umwandlung nach dem Start nicht vom "Master"-ADC unterbrochen
werden, selbst wenn der "Master"-ADC nach dem Start
der parallelen Umwandlung eine Anfrage mit höherer Priorität als die mit
der parallelen Umwandlung verknüpfte
Anfrage empfängt.
-
Jeder "Master"-ADC kann autonom
(ohne die verknüpften "Slave"-ADCs) oder bei Bedarf
zusammen mit den verknüpften "Slave"-ADCs arbeiten.
-
Wenn
ein "Slave"-ADC keine parallele
Umwandlungsanfrage von einem verknüpften "Master"-ADC empfängt, kann der Arbiter 9a, 9b des
jeweiligen "Slave"-ADC eine Umwandlungsanfrage vom "Slave"-ADC selbst als eine
Anfrage mit höchster
Priorität
erkennen. Somit kann dann der jeweilige "Slave"-ADC seine eigenen Anfragen ausführen.
-
Wenn
ein "Slave"-ADC, der nicht frei
ist und der momentan eine mit einer eigenen Anfrage verknüpfte Umwandlung
ausführt,
eine parallele Umwandlungsanfrage vom verknüpften "Master"-ADC empfängt, führt die parallele Umwandlungsanfrage zu
einem "Abbrechen-Wiederholen" der im jeweiligen "Slave"-ADC momentan ausgeführten Umwandlung. Somit
wird die momentan ausgeführte
Umwandlung abgebrochen und nach Abschließen der vom "Master"-ADC angefragten
parallelen Umwandlung neu gestartet. Dadurch kann beispielsweise
erreicht werden, dass ein "Slave"-ADC, der momentan eine Umwandlung mit
einer relativ langen Abfragephase (beispielsweise durch eine relativ
hohe Impedanz der jeweiligen Quelle) ausführt, eine relativ wichtige
parallele Umwandlung nicht blockiert.
-
In
einem "Master"-ADC oder "autonomen" ADC kann eine "Warten-auf-Lesen"-Funktion unterstützt werden.
Die "Warten-auf-Lesen"-Funktion kann durch
entsprechendes Programmieren eines jeweiligen Registers aktiviert
werden. Wenn die "Warten-auf-Lesen"-Funktion aktiviert
ist, wird eine neue Umwandlung/eine neue parallele Umwandlung nur durchgeführt, wenn
das Ergebnis der vorhergehenden Umwandlung bereits vom jeweiligen
Ausgangsregister 4a, 4b, 4c, 4d (beispielsweise
durch den oben genannten Mikroprozessor/Mikrocontroller) ausgelesen
wurde.
-
Im
Gegensatz hierzu kann in einem "Slave"-ADC ein aktiviertes "Warten-auf-Lesen" ignoriert werden,
insbesondere wenn eine parallele Umwandlung ausgeführt werden
soll. Wenn somit die "Warten-auf-Lesen"-Funktion aktiviert
ist, kann eine neue (parallele) Umwandlung ausgeführt werden
und es kann das Ergebnis der Umwandlung in ein jeweiliges Ausgangsregister 4a, 4b, 4c, 4d auch
dann geschrieben werden, wenn das Ergebnis der vorhergehenden Umwandlung
noch nicht aus diesem Register 4a, 4b, 4c, 4d ausgelesen
wurde; (somit wird das vorhergehende Ergebnis überschrieben).
-
Der
eigentliche Start einer Umwandlung/parallelen Umwandlung wird, wie
in 4 gezeigt, vom digitalen Teil 7a, 7b eines
jeweiligen ADC 3a, 3b ausgelöst. Ein Start wird vom jeweiligen
digitalen Teil 7a, 7b ausgelöst, wenn der entsprechende
analoge Teil 8a, 8b des jeweiligen ADC (und ggf.
die analogen Teile der anderen ADCs der gleichen Synchronisie rungsgruppe
(siehe unten)) bereit zum Start einer neuen Umwandlung sind.
-
Wenn
vom digitalen Teil 7a, 7b erkannt wird, dass der
entsprechende analoge Teil 8a, 8b bereit für eine neue
Umwandlung ist, sendet der entsprechende digitale Teil 7a, 7b ein "Bereit"-Signal ready_o auf einer
Leitung 109.
-
Wie
in 4 zu sehen ist, wird das Bereit-Signal ready_o
für einen
ersten Eingang einer UND-Schaltung 110 des jeweiligen ADC
bereitgestellt. Ferner wird das Bereit-Signal ready_o über eine
Leitung 108a der oben genannten Busse 5a, 5b an
alle anderen ADCs des Systems (insbesondere an jeweilige Eingänge der
jeweiligen ODER-Schaltungen 111a, 111b, 111c,
bereitgestellt in den ADCs 3a, 3b, 3c, 3d)
gesendet.
-
Beispielsweise,
wie exemplarisch in 4 gezeigt, wird ein vom digitalen
Teil 7a des ersten ADC 3a bereitgestelltes Bereit-Signal über die
Leitung 108a des oben genannten Busses beispielsweise für einen
ersten Eingang einer ersten ODER-Schaltung des oben genannten zweiten
ADC 3b und beispielsweise für einen ersten Eingang einer zweiten
ODER-Schaltung des oben genannten dritten ADC 3c usw. bereitgestellt.
Ferner, wie ebenfalls in 4 gezeigt, wird ein vom digitalen
Teil des zweiten ADC 3b bereitgestelltes Bereit-Signal über eine weitere
Leitung 108b des oben genannten Busses beispielsweise für einen
ersten Eingang einer ersten ODER-Schaltung 111a des oben
genannten ersten ADC 3a und beispielsweise für einen
ersten Eingang einer ersten ODER-Schaltung des oben genannten dritten
ADC 3c usw. bereitgestellt.
-
Wie
ferner in 4 gezeigt, wird für jeweilige zweite
Eingänge
der oben genannten ODER-Schaltungen 111a, 111b, 111c ein
invertierter Ausgang der jeweiligen Register 122a, 122b, 122c bereitgestellt.
-
In
den Registern 122a, 122b, 122c werden jeweilige
Variablen EVALR0, EVALR1, EVALR2 (hier: jeweilige lese-/schreibbare Variablen
EVALR0, EVALR1, EVALR2) gespeichert, die, wie in 2 gezeigt,
Teil der im oben genannten Synchronisierungsregister 6a, 6b des
jeweiligen ADC 3a, 3b gespeicherten Variablen
sind.
-
Wenn
ein ADC ein "autonomer" ADC sein soll, werden
die in den Registern 122a, 122b, 122c gespeicherten
Werte alle auf einen ersten definierten Wert, beispielsweise auf "0", gesetzt.
-
Somit
wird für
die zweiten Eingänge
aller ODER-Schaltungen 111a, 111b, 111c eines
jeweiligen ADCs, wegen der oben genannten Invertierung des Ausgangs
der Register 122a, 122b, 122c durch jeweilige
Invertierschaltungen 123a, 123b, 123c,
der Wert "1" bereitgestellt.
-
aher
wird im Falle eines "autonomen" ADC der Wert "1" an den Ausgängen der ODER-Schaltungen 111a, 111b, 111c,
ungeachtet des Zustands der ersten Eingänge der ODER-Schaltungen 111a, 111b, 111c,
ausgegeben.
-
Wie
ferner in 4 gezeigt, werden die Ausgänge der
ODER-Schaltungen 111a, 111b, 111c (hier;
die oben genannten Werte "1") für einen
zweiten, dritten und vierten Eingang der oben genannten UND-Schaltung 110 des
jeweiligen ADC bereitgestellt.
-
Somit
hängt der
Ausgang der UND-Schaltung 110, im Falle eines "autonomen" ADC, nur vom Zustand
des ersten Eingangs der UND-Schaltung 110 ab, das heißt vom Bereit-Signal,
das vom digitalen Teil 7a des jeweiligen "autonomen" ADC bereitgestellt
wird.
-
Daher
wird, im Falle eines "autonomen" ADC, das auf der
oben genannten Leitung 109 empfangene Bereit-Signal über die
UND-Schaltung 110 zu einer Leitung 120 weitergeleitet,
die mit einem Eingang des digitalen Teils 7a des jeweiligen
ADC verbunden ist.
-
Wenn
der digitale Teil 7a über
die Leitung 120 ein Bereit-Signal empfängt, löst er den Start einer Umwandlung/parallelen
Umwandlung durch Senden eines "Start"-Signals auf einer
Leitung 121 zum jeweiligen analogen Teil 8a, 8b aus.
-
Wenn
ein ADC ein "Master"- oder "Slave"-ADC sein soll, werden
die in einigen oder allen der Register 122a, 122b, 122c gespeicherten
Werte auf einen zweiten definierten Wert, beispielsweise auf "1", für
alle mit ODER-Schaltungen 111a, 111b, 111c,
die über
jeweilige Leitungen 108a, 108b, 108c, 108d mit
digitalen Teilen von ADCs der gleichen Synchronisierungsgruppe wie
der "Master"- oder "Slave"-ADC verbunden sind,
verknüpften
Register 122a, 122b, 122c gesetzt.
-
Wenn
beispielsweise der erste ADC 3a (beispielsweise als ein "Master"-ADC) und der zweite ADC 3b (beispielsweise
als ein "Slave"-ADC) eine Synchronisierungsgruppe
bilden sollen, muss im Register 122a des ersten ADC 3a ein
Wert EVALR0 = "1" gespeichert werden,
muss im Register 122b ein Wert EVALR1 = "0" gespeichert werden und muss im Register 122c ein
Wert EVALR2 = "0" gespeichert werden.
-
Somit
wird für
die zweiten Eingänge
der ODER-Schaltungen 111b, 111c des ersten ADC 3a, wegen
der oben genannten In vertierung des Ausgangs der Register 122b, 122c,
der Wert "1" bereitgestellt und
für den
zweiten Eingang der ODER-Schaltung 111a des ersten ADC 3a der
Wert "0" bereitgestellt.
-
Daher
wird der Wert "1" an den Ausgängen der
ODER-Schaltungen 111b, 111c,
ungeachtet des Zustands der ersten Eingänge der ODER-Schaltungen 111b, 111c,
ausgegeben.
-
Jedoch
hängt der
am Ausgang der ODER-Schaltung 111a ausgegebene Wert vom
Zustand des ersten Eingangs der ODER-Schaltung 111a ab: Die Ausgabe
der ODER-Schaltung 111a lautet nur "1",
wenn die ODER-Schaltung 111a, über die Leitung 108b,
ein jeweiliges Startsignal ready1_i vom zweiten ADC 3b,
das heißt
vom ADC, der zur gleichen Synchronisierungsgruppe wie der erste ADC 3a gehört, empfängt.
-
Wie
oben erläutert,
werden die Ausgänge der
ODER-Schaltungen 111a, 111b, 111c für einen zweiten,
dritten und vierten Eingang der oben genannten UND-Schaltung 110 des
jeweiligen ADC bereitgestellt.
-
Da
der Ausgang der ODER-Schaltung 111a vom Zustand von dessen
ersten Eingang abhängt, hängt der
Ausgang der UND-Schaltung 110 nicht
nur vom Zustand des ersten Eingangs der UND-Schaltung 110 ab,
das heißt
ob ein Bereit-Signal vom digitalen Teil 7a des ersten ADC 3a bereitgestellt
wurde oder nicht, sondern auch vom Zustand des zweiten Eingangs
der UND-Schaltung 110,
das heißt
ob ein Startsignal ready1_i vom zweiten ADC 3b bereitgestellt
wurde oder nicht.
-
Somit
wird nur dann ein Bereit-Signal am Ausgang der UND-Schaltung 110 ausgegeben
und über
die Leitung 120 zum digitalen Teil 7a des ersten ADC 3a gesendet
(wodurch das Senden eines "Start"-Signals vom digitalen
Teil 7a zum analogen Teil 8a ausgelöst wird),
wenn alle digitalen Teile der ADCs der gleichen Synchronisierungsgruppe
wie der erste ADC 3a erkennen, dass ihre verknüpften analogen
Teile bereit für
eine neue Umwandlung sind. Das Auslösen des Starts einer (parallelen)
Umwandlung wird mit anderen Worten durch einen Handshake-Mechanismus
zwischen allen ADCs der gleichen Synchronisierungsgruppe gesteuert
und synchronisiert.
-
Vorzugsweise
werden die oben genannten Werte EVALR0, EVALR1, EVALR2, die im Synchronisierungsregister 6a eines
jeweiligen ADC 3a, 3b gespeichert sind (siehe 2),
nur berücksichtigt/in
die oben genannten Register 122a, 122b, 122c geschrieben,
wenn eine synchronisierte, parallele Umwandlung durchgeführt werden
soll/von einem jeweiligen "Master"-ADC angefragt ist.
Wenn andernfalls keine synchronisierte, parallele Umwandlung ausgeführt werden
soll, müssen
die Werte der Variablen EVALR0, EVALR1, EVALR2 ignoriert werden/dürfen diese
nicht in die oben genannten Register 122a, 122b, 122c geschrieben
werden, so dass ein Wert "1" an den zweiten Eingängen aller
ODER-Schaltungen 111a, 111b, 111c eines
jeweiligen ADC vorhanden ist, was zu einem Auslösen einer Umwandlung des jeweiligen
ADC ungeachtet des Zustands der analogen Teile von ADCs der gleichen
Synchronisierungsgruppe führt.
-
Obwohl
hier spezifische Ausführungsbeispiele
dargestellt und beschrieben wurden, ist für Fachleute auf diesem Gebiet
erkennbar, dass eine Vielzahl von alternativen und/oder gleichwertigen Ausführungen
für die
gezeigten und beschriebenen Ausführungsbeispiele
ersatzweise verwendet werden kann, ohne dass vom Umfang der vorliegenden Erfindung
abgewichen wird. Diese Anmeldung soll jegliche Anpassungen oder
Variationen der hier behandelten spezifischen Ausführungsbeispiele
abdecken. Daher soll die vorliegende Erfindung nur durch die Ansprüche und
die Entsprechungen eingeschränkt
werden.