-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung
zum Extrahieren einzelner Pulse aus einem Eingangssignal, insbesondere,
doch nicht ausschließlich
zum Extrahieren einzelner Pulse, die eventuell stark moduliert sind, und/oder
Pulse in einem verrauschten Signal.
-
Bei
dem schnellen Wachstum von drahtlosen Telekommunikationssystemen
sind Systemanbieter gefordert, Qualitätshochfrequenzsignale (Qualitäts-HF-Signale)
mit einer maximalen Abdeckung zu liefern. Bei einem drahtlosen Kommunikationssystem muss
ein Mobiltelefon kalibriert sein, um die Leistung zu liefern, die
notwendig ist, um die Basisstation zu erreichen. Um jedoch eine
Batterielebensdauer zu bewahren, sollte die gesendete Leistung nicht
mehr betragen, als was benötigt
wird. Das Mobiltelefon muss in der Lage sein, die Ausgangsleistung
für eine optimale
Verbindung abzustimmen. Ferner dürfen
die Basisstation und das Mobiltelefon die maximale zulässige gesendete
Leistung gemäß Regierungsstandards
und Regelungen nicht überschreiten.
Deshalb ist ein Sicherstellen, dass die gesendete Leistung die zulässige Grenze
nicht überschreitet,
die sich auf einen bekannten Standard verfolgen lässt, ein
primärer Belang.
Somit sind genaue Leistungsmessungen wichtig zum Beibehalten einer
Verbindung mit hoher Qualität
bei modernen Telekommunikationssystemen.
-
Wie
bei vielen anderen Typen von Signalen kann ein HF-Signal aus einer
Sequenz von Pulsen gebildet sein. In dem Fall eines gepulsten HF-Leistungssignals
weisen die Pulse eine vorauseilende ansteigende Flanke und eine
nachlaufende abfallende Flanke auf. Die Leistungshüllkurve
des HF- Signals ist
in manchen Fällen
durch den Modulationstyp des HF-Signals bestimmt. Um beispielsweise
die durchschnittliche gesendete Leistung zu messen, ist es notwendig,
jeden Puls zu identifizieren und spezielle Parameter jedes Pulses
einzeln zu messen. Bei Drahtlos-LAN-Anwendungen jedoch weisen die
Pulse eventuell nicht die gleiche Breite auf, was eine Identifikation
und Messung derselben ziemlich schwierig macht. Falls ferner ein
Puls sich nicht einen genau vorbestimmten festen Abstand von einem Auslösepunkt
weg befindet, kann derselbe erneut schwierig zu lokalisieren sein,
insbesondere über eine
relativ lange Zeitskala ohne irgendwelche Pulse. Falls sich wiederholende
Pulse gemessen werden sollen, dann ist es beinahe unmöglich, dies
zu tun, falls dieselben positionsmäßig relativ zu dem Auslösepunkt
variieren.
-
In
anderen Fällen
weisen die Pulse innerhalb einer Sequenz eventuell unterschiedliche
Charakteristika zu anderen in der Sequenz auf, beispielsweise weil
sich die Verstärker,
die bei der Erzeugung der Pulse verwendet werden, erwärmen. Eine
Messung der Differenzen ist dann notwendig, um sicherzustellen,
dass alle Pulse innerhalb der erforderlichen Parameter bleiben.
-
Bei
einer bekannten Schaltungsanordnung zum Extrahieren einzelner Pulse
aus einer Sequenz von Pulsen, die unregelmäßig auftreten können, wurde
zuerst die ganze Sequenz oder zumindest ein großer Teil derselben in einem
Speicher aufgenommen bzw. erfasst und dann nachfolgend verarbeitet,
um die Pulse zu suchen und Messungen an denselben durchzuführen. Es
kann deshalb eine ziemliche Menge an Zeit auf ein Verarbeiten der
nicht gepulsten Informationen verschwendet werden. Ferner kann ein Extrahieren
und Entwerfen der Pulse bei dem Vorhandensein von seltsam geformten
oder modulierten Pulsen algorithmisch komplex sein. Der Hauptnachteil
dieser Technik besteht darin, dass der Speicher eine finite Größe aufweist.
Falls die Pulse zu weit voneinander entfernt sind, dann werden dieselben entweder
verpasst oder die Abtastrate des Analog-zu-Digital-Wandlers (ADC
= Analog to Digital Converter), der zum Digitalisieren des analogen
Eingangssignals verwendet wird, müsste reduziert werden, um über eine
längere
Zeitperiode hinweg abzutasten. Der Nachteil des Letzteren ist, dass
die Messauflösung
reduziert ist. Derselbe kann im schlimmsten Fall mit einer Rate
abtasten, die geringer als die Pulsbreite ist, was in lediglich
einem oder sogar keinen Abtastwerten des erwünschten Pulses resultiert.
-
Bei
anderen bekannten Techniken werden, um Speicher zu sparen, die Räume zwischen
Pulsen nicht gespeichert. Dies ermöglicht, dass die Pulse selbst
mit maximalen Datenraten aufgenommen werden, aber dieselben müssen offensichtlich
für eine Aufnahme
nicht genau extrahiert werden. Um jedoch einen Puls zu verarbeiten,
ist es notwendig, zu wissen, was das Signal vor dem Vorderflankenauslösepunkt
machte und was dasselbe nach dem Hinterflankenauslösepunkt
macht. Ein Beispiel dafür,
wo dies notwendig ist, ist bei der Bestimmung einer Pulsflankenanstiegs-
und -abfallzeitmessung. Bei zwei Pulsen, die sehr nahe beieinander
sind, kann die nacheilende Flanke eines Pulses einen Teil der vorauseilenden
Flanke des nächsten
Pulses bilden. In derartigen Fällen
kann die Bestimmung der nacheilenden Flanke des ersten Pulses auftreten,
nachdem die vorauseilende Flanke des nächsten Pulses durchgelaufen
ist. Falls dies geschieht, dann wird der zweite Puls eventuell nicht
ordnungsgemäß oder gar nicht
aufgenommen, weil die Existenz desselben nicht gesucht würde, bis
die nachlaufende Flanke des vorhergehenden Pulses erfasst ist.
-
Die
vorliegende Erfindung versucht deshalb, ein Verfahren und eine Vorrichtung
zum Extrahieren einzelner Pulse in einem Signal insbesondere, doch nicht
ausschließlich
zum Erfassen vorauseilender Flanken von stark modulierten Pulsen
und/oder Pulsen in einem verrauschten Signal zu schaffen, das bzw.
die die oben erwähnten
Probleme des Stands der Technik überwindet
oder zumindest reduziert.
-
Es
ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung zum
Extrahieren einzelner Pulse aus einem Eingangssignal und ein Verfahren zum
Extrahieren einzelner Pulse aus einem Eingangssignal mit verbesserten
Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1 und ein Verfahren
gemäß Anspruch
11 gelöst.
-
Die
vorliegende Erfindung versucht deshalb, ein Verfahren und eine Vorrichtung
zum Extrahieren einzelner Pulse aus einem Eingangssignal zu schaffen,
das bzw. die die oben erwähnten
Probleme des Stands der Technik überwindet
oder zumindest mäßigt.
-
Folglich
sieht in einem Aspekt die Erfindung eine Vorrichtung zum Extrahieren
einzelner Pulse aus einem Eingangssignal vor, wobei die Vorrichtung einen
Eingangsanschluss zum Empfangen eines Eingangssignals, das einen
Strom von Pulsen aufweist, einen Analog-zu-Digital-Wandler (ADC),
der einen Eingang, der mit dem Eingangsanschluss gekoppelt ist,
zum Empfangen des Eingangssignals, wobei der ADC das empfangene
Eingangssignal in digitale Datenabtastwerte umwandelt, und einen Ausgang
zum Liefern der digitalen Abtastwerte aufweist, einen Speicher,
der eine Mehrzahl von logisch getrennten Speicherpuffern aufweist,
die mit dem Ausgang des ADC zum Speichern der digitalen Datenabtastwerte
gekoppelt sind, eine Pulsextraktionsschaltung, die einen Eingang,
der mit dem Ausgang des ADC zum Erfassen vorauseilender und nacheilender
Pulsflanken bei den digitalen Datenabtastwerten gekoppelt ist, und
einen Ausgang aufweist, eine Speicherpuffersteuerung, die mit dem
Ausgang des ADC, dem Speicher und dem Ausgang der Pulsextraktionsschaltung
zum Steuern einer Speicherung der digitalen Datenabtastwerte in
dem Speicher gekoppelt ist, wobei die digitalen Datenabtastwerte
in zumindest zwei Speicherpuffern gespeichert sind, derart, dass
die digitalen Datenabtastwerte in zumindest einen aktuellen Puffer
und einen nächsten
Puffer gespeichert wer den, und wobei, wenn eine nacheilende Pulsflanke
in dem aktuellen Puffer erfasst wird, dieser aktuelle Puffer an
einem Speichern weiterer digitaler Datenabtastwerte gehindert wird
und der nächste
Puffer zu dem aktuellen Puffer wird, wobei ein neuer Puffer zu dem
nächsten
Puffer wird, und einen Ausgangsanschluss zum Liefern der digitalen Datenabtastwerte
aus dem aktuellen Puffer aufweist, nachdem derselbe ein Speichern
weiterer digitaler Abtastwerte beendet hat.
-
Die
Vorrichtung kann ferner eine Signalverlaufsverarbeitungsschaltungsanordnung aufweisen,
die mit dem Ausgangsanschluss zum Empfangen der digitalen Datenabtastwerte
gekoppelt ist, die sich auf einen erfassten Puls aus einem Speicherpuffer
beziehen, der an einem Speichern weiterer digitaler Datenabtastwerte
gehindert wurde, wobei dieser Speicherpuffer dann verfügbar wird,
um zu einem nächsten
Puffer zu werden.
-
Die
Pulsextraktionsschaltung kann eine Steuerung, einen ersten und einen
zweiten Hystereseschwellenkomparator, die jeweils einen ersten Eingang
zum Empfangen der digitalen Datenabtastwerte, einen zweiten Eingang
zum Empfangen eines ersten und eines zweiten Hystereseschwellenwerts
und einen Ausgang aufweisen, der mit der Steuerung gekoppelt ist,
wobei der erste und der zweite Hystereseschwellenkomparator die
digitalen Datenabtastwerte mit einem ersten bzw. einem zweiten Hystereseschwellenpegel
vergleichen, einen ersten und einen zweiten Qualifikationszeitgeber,
die jeweils durch die Steuerung gesteuert sind und einen Zeitablaufausgang
aufweisen, der mit der Steuerung gekoppelt ist, wobei die Steuerung
die Ausgaben der Komparatoren und der Zeitgeber empfängt und
ein Starten der Zeitgeber steuert, um zu ermöglichen, dass die Steuerung
bestimmen kann, ob ein Übergang
der digitalen Datenabtastwerte über
einen Hystereseschwellenpegel eine vorauseilende Pulsflanke bildet
oder nicht, und ob ein Übergang
des Eingangssignals über
einen Hystereseschwellenpegel eine nacheilende Pulsflanke des Eingangssignals
bildet oder nicht.
-
Der
aktuelle Puffer kann an einem Speichern weiterer digitaler Datenabtastwerte
nach einer Zeitverzögerung
gehindert werden, nachdem die nacheilende Pulsflanke in dem aktuellen
Puffer erfasst ist. Die Speicherpuffersteuerung kann eine Mehrzahl
von Registern jeweils zum Speichern von Informationen bezüglich eines
speziellen extrahierten Pulses aufweisen.
-
Bei
einem Ausführungsbeispiel
können
die Daten in den zumindest zwei Speicherpuffern in einer zeitgemultiplexten
Weise gespeichert sein.
-
Die
in dem Register gespeicherten Informationen bezüglich eines speziellen Pulses
können
zumindest Zeitinformationen und Speicheradressinformationen und/oder
eine Pulsnummer umfassen, wobei die Pulsnummern jedes Mal inkrementiert
werden, wenn ein neuer Puls extrahiert wird.
-
Die
Speicherpuffersteuerung kann einen Eingang zum Empfangen von Steuerinformationen zum
Steuern der Speicherpuffer umfassen, um lediglich vorbestimmte Pulse
gemäß der Pulsnummer
derselben zu speichern.
-
Die
Vorrichtung kann ferner eine Akquisitionsschaltung bzw. Gewinnungsschaltung
aufweisen, die einen Eingang, der mit dem Ausgang der Pulsextraktionsschaltung
gekoppelt ist, und einen Ausgang aufweist, der mit der Speicherpuffersteuerung
gekoppelt ist, wobei die Akquisitionsschaltung einen Zeitgeber zum
Freigeben bzw. Aktivieren der Speicherpuffersteuerung eine vorbestimmte
Zeit nachdem eine Pulsflanke erfasst ist umfasst.
-
Gemäß einem
zweiten Aspekt sieht die Erfindung ein Verfahren zum Extrahieren
einzelner Pulse aus einem Eingangssignal vor, wobei das Verfahren die
Schritte eines Empfangens eines Eingangssignals, das einen Strom
von Pulsen aufweist, eines Umwandelns des empfangenen Eingangssignals
in digitale Datenabtastwerte, eines Erfassens vorauseilender und
nacheilender Pulsflanken in den digitalen Datenabtastwerten, eines
Speicherns der digitalen Datenabtastwerte in zumindest zwei Speicherpuffer, derart,
dass die digitalen Datenabtastwerte in zumindest einen aktuellen
Puffer und einen nächsten
Puffer gespeichert werden, und wobei, wenn eine nacheilende Pulsflanke
in den Datenabtastwerten erfasst wird, die in dem aktuellen Puffer
gespeichert sind, dieser Puffer an einem Speichern weiterer digitaler Datenabtastwerte
gehindert wird und der nächste Puffer
zu dem aktuellen Puffer wird, wobei ein neuer Puffer zu dem nächsten Puffer
wird, und eines Ausgebens der digitalen Datenabtastwerte aus dem
aktuellen Puffer aufweist, nachdem derselbe ein Speichern weiterer
digitaler Abtastwerte beendet hat.
-
Das
Verfahren kann ferner den Schritt eines Verarbeitens der digitalen
Datenabtastwerte, die aus einem Speicherpuffer ausgegeben werden,
der an einem Speichern weiterer digitaler Datenabtastwerte gehindert
wurde, aufweisen, wobei dieser Speicherpuffer dann verfügbar wird,
um zu einem nächsten Puffer
zu werden.
-
Der
Schritt eines Erfassens vorauseilender und nacheilender Pulsflanken
kann die Schritte eines Startens eines ersten Qualifikationszeitgebers,
wenn ein erster Übergang
der digitalen Datenabtastwerte über
eine erste Hystereseschwelle erfasst wird, ein Starten eines zweiten
Qualifikationszeitgebers, wenn ein Übergang der digitalen Datenabtastwerte über eine
zweite Hystereseschwelle erfasst wird, während der erste Qualifikationszeitgeber
eine Zeit nimmt, und eines Validierens des ersten Übergangs
als eine vorauseilende Flanke eines Pulses des Eingangssignals,
falls die digitalen Datenabtastwerte erneut über der ersten Hystereseschwelle
waren, wenn der erste Qualifikationszeitgeber einen Zeitablauf feststellt, oder
nachdem der erste Qualifikationszeitgeber einen Zeitablauf festgestellt
hat, aber bevor der zweite Qualifikationszeitgeber einen Zeitablauf
feststellt, und ein Starten des zweiten Qualifikationszeitgebers, wenn
ein zweiter Übergang
der digitalen Datenabtastwerte über
die zweite Hystereseschwelle erfasst wird, und ein Validieren des
zweiten Übergangs
als eine nacheilende Flanke des Pulses der digitalen Datenabtastwerte
aufweist, falls das Eingangssignal unter der zweiten Hystereseschwelle
bleibt, bis der zweite Qualifikationszeitgeber einen Zeitablauf
feststellt.
-
Der
aktuelle Puffer kann an einem Speichern weiterer digitaler Datenabtastwerte
nach einer Zeitverzögerung
gehindert werden, nachdem die nacheilende Pulsflanke in den Datenabtastwerten
erfasst wird, die in dem aktuellen Puffer gespeichert sind. Das
Verfahren kann ferner den Schritt eines Speicherns von Informationen
bezüglich
eines speziellen extrahierten Pulses aufweisen.
-
Bei
einem Ausführungsbeispiel
können
die Daten in den zumindest zwei Speicherpuffern in einer zeitgemultiplexten
Weise gespeichert werden.
-
Die
in dem Register gespeicherten Informationen bezüglich eines speziellen Pulses
können
zumindest Zeitinformationen und Speicheradressinformationen und/oder
eine Pulsnummer umfassen, wobei die Pulsnummern jedes Mal inkrementiert
werden, wenn ein neuer Puls extrahiert wird.
-
Das
Verfahren kann ferner den Schritt eines Empfangens von Steuerinformationen
zum Steuern der Speicherpuffer aufweisen, um lediglich vorbestimmte
Pulse gemäß der Pulsnummer
derselben zu speichern.
-
Ein
Ausführungsbeispiel
eines Verfahrens und einer Vorrichtung gemäß dieser Erfindung zum Extrahieren
einzelner Pulse aus einem Eingangssignal wird nun durch ein Beispiel
mit Bezug auf die zugehörigen
Zeichnungen beschrieben.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
schematisches Blockdiagramm einer Vorrichtung gemäß einem
Ausführungsbeispiel der
vorliegenden Erfindung;
-
2 ein
schematisches Blockdiagramm einer Pulsextraktionsschaltung, die
bei der Schaltung von 1 verwendet werden kann;
-
3 ein
Beispiel eines Signalverlaufs, der die Auslöseerfassungssignale angibt,
die durch die Pulsextraktionsschaltung von 2 erzeugt
werden;
-
4 ein
schematisches Diagramm, das Puffer aus der Schaltung von 1 zeigt;
-
5 ein
Zustandsdiagramm für
eine Pulsaufnahmezustandsmaschine, die bei der Schaltung von 1 verwendet
wird; und
-
6 ein
Zustandsdiagramm für
eine Pulsakquisitionszustandsmaschine, die bei der Schaltung von 1 verwendet
wird.
-
Somit
zeigt 1 eine Vorrichtung 1 zum Extrahieren
einzelner Pulse aus einem Eingangssignal, das eine Sequenz von Pulsen,
jedoch nicht notwendiger Weise in regelmäßigen Intervallen, enthält, die an
einem Eingang 3 geliefert werden. Das Eingangssignal wird
zu einem Analog-zu-Digital-Wandler (ADC) 2 geliefert,
bei dem dasselbe in digitale Abtastwerte umgewandelt wird. Die digitalen
Abtastwerte werden an einem Ausgang des ADC 2, von dem
aus dieselben einem externen Speicher 4 für eine Speicherung
präsentiert
werden, und einem zweiten Ausgang des ADC 2 geliefert,
von dem aus dieselben einer Pulsextraktionsschaltung 5 zugeführt werden.
-
Die
Pulsextraktionsschaltung 5 umfasst eine Auslöseschaltung 6,
die immer Auslöser
bzw. Trigger liefert, wenn das „digitalisierte" Eingangssignal einen oder
mehrere Auslösepegel überschreitet,
um die vorauseilenden und nacheilenden Flanken von Pulsen in dem
Eingangssignal zu erfassen. Die Pulsextraktionsschaltung 5 liefert
somit ein positives Auslösesignal
und ein negatives Auslösesignal,
die die vorauseilenden und nacheilenden Flanken eines extrahierten
Pulses angeben. Die Pulsextraktionsschaltung 5 kann eine
sein, wie es beispielsweise in der UK-Patentanmeldung Nr. GB0427344.7
beschrieben ist, die im Namen von Agilent Technologies, Inc. eingereicht ist.
Die Schaltung, die in dieser Anmeldung beschrieben ist, weist eine
Steuerung, einen ersten und einen zweiten Hystereseschwellenkomparator,
die jeweils einen ersten Eingang zum Empfangen des (digitalisierten)
Eingangssignals, einen zweiten Eingang zum Empfangen eines Hystereseschwellenwertes und
einen Ausgang aufweisen, der mit der Steuerung gekoppelt ist, wobei
der erste und der zweite Hystereseschwellenkomparator das Eingangssignal
mit einem ersten bzw. einem zweiten Hystereseschwellenpegel vergleichen,
einen ersten und einen zweiten Qualifikationszeitgeber auf, die
jeweils durch die Steuerung gesteuert sind und einen Zeitablaufausgang
aufweisen, der mit der Steuerung gekoppelt ist, wobei die Steuerung
die Ausgaben der Komparatoren und der Zeitgeber empfängt und
ein Starten der Zeitgeber steuert, um zu ermöglichen, dass die Steuerung
bestimmt, ob ein Übergang
des Eingangssignals über
einen Hystereseschwellenpegel eine vorauseilende Pulsflanke des
Eingangssignals bildet oder nicht.
-
Wie
es in 2 gezeigt ist, umfasst folglich ein Ausführungsbeispiel
der Pulsextraktionsschaltung 5 eine Auslöseschaltung 6,
die eine Steuerung 38, einen oberen Hystereseschwellen-
und einen unteren Hystereseschwellenkomparator 39 und 40,
einen Positiv-Qualifikationszähler 41 und
einen Negativ-Qualifikationszähler 42 aufweist.
-
Ein
erster Eingang 43 zu der Auslöseschaltung 6 liefert
ein Eingangssignal von einem ADC 2, in dem das Signal,
dessen Pulse erfasst werden sollen, beispielsweise ein HF-Leistungssignal,
digitalisiert wird. Dieser Eingang 43 ist zu ersten Eingängen des ersten
und des zweiten Komparators 39 und 40 und zu einem
direkten Ausgang 44 der Auslöseschaltung 6 zu dem
Speicher 4 geführt.
Die Auslöseschaltung 6 weist
zwei weitere Eingänge 45 und 46 auf,
die vorbestimmte obere und untere Hystereseschwellenpegel für die zwei
Komparatoren 39 bzw. 40 liefern. Ein letzter Eingang 47 zu
der Auslöseschaltung 6 liefert einen
vorbestimmten Qualifikationszeitwert zu dem positiven und dem negativen
Qualifikationszeitgeber 41 und 42. Ausgänge 48 und 49 der
Komparatoren 39 und 40 sind mit der Steuerung 38 gekoppelt,
die ferner über
Verbindungen 75 und 76 mit den Qualifikationszeitgebern 41 und 42 gekoppelt
ist, um die Ausgaben derselben zu empfangen sowie den Betrieb der
Qualifikationszeitgeber zu steuern.
-
Die
Steuerung 38 wird verwendet, um ansteigende und abfallende
Flanken von Pulsen in dem digitalisierten Signal von dem Eingang 43 zu
erfassen, wie es unten ausführlicher
erläutert
wird. Wenn die Steuerung 38 eine ansteigende oder abfallende
Flanke erfasst, werden Ausgaben 77 und 78 zu der
Pulsaufnahmeschaltung 7 geleitet. Die Pulsaufnahmeschaltung 7 steuert
die Speicherung der digitalisierten Signalabtastwerte in dem Speicher 4 und
leitet die Adresse in dem Speicher 4, wo die digitalisierten Daten
gespeichert werden sollen, zu dem Speicher 4. Die Ausgaben 77 und 78 der
Steuerung 38 liefern einen positiven bzw. einen negativen
Validierungsauslöser
zu der Pulsaufnahmeschaltung 7, wobei eine Angabe geliefert
wird, dass spezielle Übergänge, die in
dem Speicher 4 gespeichert wurden, als Flanken validiert
wurden. Die Adressen derartiger Übergänge in dem
Speicher 4, die als vorauseilende und nacheilende Flanken
validiert wurden, werden an Ausgängen 79 bzw. 80 zu
der Pulsaufnahmeschaltung 7 geleitet.
-
Ein
Betrieb der Auslöseschaltung 6 wird
nun mit Bezug auf 3, die einen relativ einfachen
Signalverlauf zeigt, ausführlicher
erläutert.
Zuerst wird der Status des Signals 81 bestimmt. Dies ist
innerhalb der Periode gezeigt, die durch einen Pfeil 82 angegeben
ist, wobei der Signalpegel unter dem Pegel der oberen (und unteren)
Hystereseschwellen, durch Linien 83 bzw. 84 angegeben,
eine Periode lang bleibt, die größer als
eine Qualifikationszeit ist, die durch einen der zwei Qualifikationszeitgeber
geliefert werden kann. In jedem Fall wird der Signalzustand als „niedrig" bestimmt, wie es
durch ein digitales Signal 85 angegeben ist, das sich in
einem niedrigen Zustand befindet, was angibt, dass die nächste Flanke, die
erfasst werden soll, eine ansteigende Flanke ist.
-
Somit
tritt der erste ansteigende Übergang, der
durch den Komparator 39 erfasst wird, bei einem Punkt 86 auf,
wo das Signal 81 die obere Hystereseschwelle 83 übertritt.
Dies bewirkt, dass der Positiv-Qualifikationszeitgeber 41 gestartet
wird, der dann eine Positiv-Qualifikationsperiode 87 zeitlich bestimmt.
Ferner bewirkt die Erfassung des ansteigenden Übergangs bei dem Punkt 86 ebenfalls,
dass die Adresse in dem Speicher 4, wo dieser Teil des
Signals gespeichert ist, durch die Steuerung 38 für den Fall
zwischengespeichert bzw. gelatcht wird, dass dieser ansteigende Übergang
später
als eine ansteigende Flanke validiert werden sollte. Es wird eine
Bestimmung vorgenommen, dass das Signal über der unteren Hystereseschwelle 34 bleibt,
bis der Positiv-Qualifikationszeitgeber einen Zeitablauf feststellt, so
dass ein Positiv-Validierungsauslöser 88 erzeugt wird,
wie es bei einem digitalen Signal 89 gezeigt ist. Wenn
dieser Positiv-Validierungsauslöser
erzeugt ist, validiert die Steuerung 38 den ansteigenden Übergang
bei dem Punkt 86 als eine ansteigende Flanke (bei A angegeben),
und dies ist schematisch als ein digitales Signal 90 ge zeigt,
das durch den Beginn des Pulses 91 angegeben ist. Es ist
natürlich
ersichtlich, dass das digitale Signal 90 nicht in Echtzeit
parallel mit den digitalen Signalen 85, 89 und 92 erzeugt
werden kann, da zu der Zeit, zu der der ansteigende Übergang
zuerst erfasst wird, noch nicht bekannt ist, ob derselbe eine ansteigende
Flanke bildet oder nicht.
-
Wenn
der Positiv-Validierungsauslöser 88 erzeugt
ist, bewirkt dies ferner, dass der Pegel des digitalen Signals 85 umschaltet
(wie es bei einem Punkt 93 gezeigt ist), um anzugeben,
dass das Eingangssignal sich in einem „hohen" Zustand befindet, so dass die nächste Flanke,
die erfasst werden soll, eine abfallende Flanke ist. Zu dem nächsten abfallenden Übergang übergehend,
bei einem Punkt 94 angegeben, bei dem das Signal 81 die
untere Hystereseschwelle 84 übertritt, bewirkt dies, dass
der Negativ-Qualifikationszeitgeber 42 gestartet wird,
der dann eine Negativ-Qualifikationsperiode 95 zeitlich bestimmt.
Ferner bewirkt die Erfassung des abfallenden Übergangs bei dem Punkt 94 ebenfalls,
dass die Adresse in dem Speicher 4, wo die Datei des Signals gespeichert
ist, durch die Steuerung 38 für den Fall zwischengespeichert
wird, dass dieser abfallende Übergang
später
als eine abfallende Flanke validiert werden sollte. In diesem Fall
ist zu sehen, dass das Signal unter der unteren Hystereseschwelle 84 bleibt,
bis der Negativ-Qualifikationszeitgeber
einen Zeitablauf feststellt, so dass ein Negativ-Validierungsauslöser 96 erzeugt
wird, wie es bei dem digitalen Signal 92 gezeigt ist. Wenn
dieser Negativ-Validierungsauslöser
erzeugt ist, validiert die Steuerung 38 den abfallenden Übergang
bei dem Punkt 94 als eine abfallende Flanke (bei B angegeben),
und dies ist schematisch bei dem digitalen Signal 90 als
das Ende des Pulses 91 gezeigt.
-
Wenn
der Negativ-Validierungsauslöser 96 erzeugt
ist, bewirkt dies ferner, dass der Pegel des digitalen Signals 85 umschaltet
(wie es bei einem Punkt 97 gezeigt ist), um an zugeben,
dass das Eingangssignal sich in einem „niedrigen" Zustand befindet, so dass die nächste Flanke,
die erfasst werden soll, eine ansteigende Flanke sein wird. Der
nächste ansteigende Übergang,
bei einem Punkt 98 angegeben, tritt auf, wo das Signal 81 die
obere Hystereseschwelle 83 übertritt. Dies bewirkt, dass
der Positiv-Qualifikationszeitgeber 41 gestartet wird,
der dann eine Positiv-Qualifikationsperiode 100 zeitlich bestimmt.
Wiederum bewirkt die Erfassung des ansteigenden Übergangs bei dem Punkt 98 ferner,
dass die Adresse in dem Speicher 4, wo dieser Teil des
Signals gespeichert ist, durch die Steuerung 38 zwischengespeichert
wird. In diesem Fall ist zu sehen, dass das Signal 81 unter
die untere Hystereseschwelle 84 fällt (wie es bei einem Punkt 102 gezeigt ist),
während
die Positiv-Qualifikationsperiode 100 immer
noch läuft,
wobei bewirkt wird, dass der Negativ-Qualifikationszeitgeber 42 beginnt,
eine Negativ-Qualifikationsperiode 104 zeitlich zu bestimmen. Nachdem
jedoch die Positiv-Qualifikationsperiode 100 endet und
die Negativ-Qualifikationsperiode 104 ebenfalls endet,
ohne dass das Signal 81 die obere Hystereseschwelle 83 übertreten
hat, wird der ansteigende Übergang
bei dem Punkt 98 nicht als eine ansteigende Flanke betrachtet
und wird deshalb der nächste
ansteigende Übergang
gesucht, der bei einem Punkt 106 gefunden wird, bei dem
das Signal 81 die obere Hystereseschwelle 83 übertritt.
Erneut wird der Positiv-Qualifikationszeitgeber 42 gestartet,
der dann eine Positiv-Qualifikationsperiode 108 zeitlich bestimmt,
und die Erfassung des ansteigenden Übergangs bei dem Punkt 106 bewirkt
ferner, dass die Adresse in dem Speicher 4, bei der dieser
Teil des Signals gespeichert ist, durch die Steuerung 38 zwischengespeichert
wird. In diesem Fall ist zu sehen, dass das Signal 81 die
Positiv-Qualifikationsperiode 108 lang über der unteren Hystereseschwelle 84 bleibt,
so dass ein Positiv-Validierungsauslöser 110 erzeugt wird,
wobei bewirkt wird, dass der ansteigende Übergang bei dem Punkt 106 als
eine ansteigende Flanke (bei C angegeben) eines Pulses 112 validiert
wird.
-
Deshalb
ist zu sehen, dass die Steuerung den ersten Qualifikationszeitgeber
startet, wenn ein erster Übergang
des Eingangssignals über
den ersten Hystereseschwellenpegel erfasst wird, den zweiten Qualifikationszeitgeber
startet, wenn ein Übergang
des Eingangssignals über
den zweiten Hystereseschwellenpegel erfasst wird, während der
erste Qualifikationszeitgeber eine Zeit nimmt, und wobei die Steuerung
den ersten Übergang
als eine vorauseilende Flanke eines Pulses des Eingangssignals validiert,
falls das Eingangssignal erneut über
dem ersten Hystereseschwellenpegel ist, wenn der erste Qualifikationszeitgeber
einen Zeitablauf feststellt oder bevor der zweite Qualifikationszeitgeber
einen Zeitablauf feststellt.
-
Der Übergang
kann ein ansteigender Übergang
sein und die Steuerung kann den ersten Qualifikationszeitgeber steuern,
um ein Zeitnehmen zu starten, wenn ein ansteigender Übergang
durch den ersten Hystereseschwellenkomparator erfasst wird, und
wobei der ansteigende Übergang
als eine vorauseilende, ansteigende Pulsflanke des Eingangssignals
validiert wird, falls das Eingangssignal über einem unteren Hystereseschwellenpegel
bleibt, bis der erste Qualifikationszeitgeber einen Zeitablauf feststellt.
-
Der Übergang
kann ein ansteigender Übergang
sein und die Steuerung kann den ersten Qualifikationszeitgeber steuern,
um ein Zeitnehmen zu starten, wenn ein ansteigender Übergang
durch den ersten Hystereseschwellenkomparator erfasst wird, und
wobei der ansteigende Übergang
als eine vorauseilende ansteigende Pulsflanke des Eingangssignals
validiert wird, falls das Eingangssignal über einem unteren Hystereseschwellenpegel
ist, wenn der erste Qualifikationszeitgeber einen Zeitablauf feststellt.
-
Der Übergang
kann ein ansteigender Übergang
sein und die Steuerung kann den ersten Qualifikationszeitgeber steuern,
um ein Zeitnehmen zu starten, wenn ein ansteigender Übergang
durch den ersten Hystereseschwellenkomparator erfasst wird, und
kann den zweiten Qualifikationszeitgeber steuern, um ein Zeitnehmen
zu starten, wenn ein abfallender Übergang durch den zweiten Hystereseschwellenkomparator
erfasst wird, während
der erste Qualifikationszeitgeber immer noch eine Zeit nimmt, und
wobei der ansteigende Übergang
als eine vorauseilende, ansteigende Pulsflanke des Eingangssignals
validiert wird, falls das Eingangssignal wieder einen oberen Hystereseschwellenpegel übertritt, während der
zweite Qualifikationszeitgeber immer noch eine Zeit nimmt, nachdem
der erste Qualifikationszeitgeber einen Zeitablauf festgestellt
hat.
-
Die
Steuerung kann den zweiten Qualifikationszeitgeber steuern, um jedes
Mal wieder ein Zeitnehmen zu starten, wenn ein abfallender Übergang durch
den zweiten Hystereseschwellenkomparator erfasst, wird, während der
erste Qualifikationszeitgeber immer noch eine Zeit nimmt. Die Periode,
die durch den ersten Qualifikationszeitgeber zeitlich bestimmt wird,
kann die gleiche sein wie die Periode, die durch den zweiten Qualifikationszeitgeber
zeitlich bestimmt wird. Jeder Qualifikationszeitgeber kann eine
Periode zeitlich bestimmen, die längenmäßig gleich einer minimalen
Pulsbreite ist.
-
Somit
kann die Pulsextraktionsschaltung 5 zwischen einem einzigen
modulierten Puls, einem Paar von Rauschspitzen oder zwei getrennten
Pulsen innerhalb des Eingangssignals unterscheiden, derart, dass
die Erfassung einer Flanke eine finite Zeit nachdem die Flanke auftritt
auftritt, und in dem Fall von stark modulierten Pulsen kann die
Zeit zwischen der Flanke und dem Erfassungspunkt variabel sein.
-
Die
positiven und negativen Auslösesignale von
der Pulsextraktionsschaltung 5 werden zu einer Pulsaufnahmeschaltung 7 geleitet,
die ein Auslöserauswahlgatter 8 umfasst,
das eines der Signale zu einer Pulsaufnahmezustandsmaschine 10 leitet.
Die Pulsaufnahmezustandsmaschine 10 liefert ein RAM-Schreibfreigabesignal
zu dem externen Speicher 4, um zu ermöglichen, dass die digitalen
Abtastwerte von dem ADC 2 bei gegebenen Adressen in einem
gegebenen Speicherpuffer 14 des externen Speichers 4 gespeichert
werden. Der gegebene Speicherpuffer 14 und die gegebenen
Adressen sind durch die Pulsaufnahmezustandsmaschine 10 gesteuert,
wobei die Auslösesignale
von der Pulsextraktionsschaltung 5 durch die Pulsaufnahmezustandsmaschine 10 verwendet
werden, um das RAM-Schreibfreigabesignal zu sperren bzw. zu deaktivieren
und dadurch zu verhindern, dass die Daten überschrieben werden, wenn einmal
ein Puls erfasst ist.
-
Wie
es schematisch in 1 zu sehen ist, steuert die
Pulsaufnahmezustandsmaschine 10 Pufferzeiger 11 in
einer Mehrzahl von Sätzen 12 von
Registern 13, die angeben, welche von einer Mehrzahl von
Speicherpuffern 14 in dem externen Speicher 4 zu
einer speziellen Zeit als aktuelle und nächste Speicherpuffer verwendet
werden. Ein Direktzugriffsspeicher (RAM = Random Access Memory)
in der Pulsaufnahmezustandsmaschine 10 liefert so viele Sätze 12 von
Registern 13, wie es Speicherpuffer 14 in dem
externen Speicher 4 gibt. Jeder Satz 12 ist aus
einer Anzahl von Registern 13 gebildet, beispielsweise
acht. Jeder Satz 12 von Registern 13 kann Informationen
bezüglich
eines speziellen Pulses speichern, der in einem Speziellen der Speicherpuffer 14 des
externen Speichers 4 gespeichert sein kann. Wie es oben
erwähnt
ist, wird zu irgendeiner speziellen Zeit einer der Speicherpuffer 14 als
ein aktueller Puffer verwendet und wird einer der Puffer 14 als
ein nächster
Puffer verwendet. Die Speicheradressen, die diesen Puffern 14 entsprechen,
sind in dem entsprechenden Satz 12 von Registern gespeichert
und werden zu dem externen Speicher 4 geliefert, um zu
ermöglichen,
dass die geeigneten digitalen Abtastwerte bei diesen Adressen im
externen Speicher 4 gespeichert werden. Somit speichert
jeder Registersatz 12 die Startadresse (Basisadresse) für die Daten,
die in dem entsprechenden Speicherpuffer gespeichert sind, die Größe des Puffers,
die Endadresse, die Adressen des positiven und des negativen Auslösers, sowie
andere Informationen, wie bei spielsweise eine Nummer, die dem speziellen Puls
gegeben ist.
-
Die
Pulsaufnahmeschaltung 7 ist durch eine Akquisitionszustandsmaschine 9 gesteuert,
um die Aufnahme eines Pulses zu starten, wenn erforderlich. Falls
beispielsweise lediglich spezielle gewählte Pulse aufgenommen werden
müssen,
dann steuert die Akquisitionszustandsmaschine 9 die Aufnahmezustandsmaschine
entsprechend. Ein Lesen der Speicherpuffer 14 und des entsprechenden
Registersatzes 12 ist ebenfalls durch die Akquisitionszustandsmaschine 9 gesteuert.
Eine Signalverlauf verarbeitende Digitalsignalverarbeitungsschaltungsanordnung
(DSP-Schaltungsanordnung; DSP = Digital Signal Processing) 15 liest
die Daten aus den Speicherpuffern 14 des externen Speichers 4 und
den Registersätzen 12 und
führt die
erforderliche Pulsmessanalyse aus, deren Ergebnis dann an einem Ausgang
geliefert wird.
-
Die
Speicheradressen, die durch die Pufferzeiger 11 in Verbindung
mit der Pulsaufnahmezustandsmaschine 10 zu den Registersätzen 12 geliefert
werden, werden durch eine digitale Schaltungsanordnung in der Pulsaufnahmeschaltung 7 verwendet,
um zeitgemultiplexte Adressen zu dem externen Speicher 4 zu
liefern, so dass die digitalen Abtastwerte sowohl in dem aktuellen
Speicherpuffer als auch in dem nächsten
Speicherpuffer gespeichert sind.
-
Jeder
Puffer innerhalb des externen Speichers 4 ist unter Verwendung
eines der Registersätze 12 beschrieben.
Die Basisadress- und Größenregister
werden verwendet, um den speziellen Puffer 14 innerhalb
des Speichers 4 zu lokalisieren. Daten werden konsekutiv
zwischen Basisadresse und Basisadresse + Größe geschrieben, bevor in einer
Schleife zu Basisadresse zurückgekehrt
wird. Jeder Satz 12 sollte die Basisadresse und Größe desselben
programmiert haben, um nichtüberlappende
Puffer zu liefern. Wenn die Aufnahmezustandsmaschine 10 gestartet
wird, werden die Basisadress- und
Größenwerte
für den
aktuellen Puffer aus dem Register array 13 gelesen und über Multiplexer 18 & 19 in
ein aktuelles Startadressregister 22 bzw. ein aktuelles
Größenregister 21 geladen.
Ein Versatz wird dann unter Verwendung eines Zählers erzeugt, der einen Multiplexer 23,
einen Addierer 24 und ein Register 25 aufweist.
Dieser Zähler
beginnt mit einem Wert von Null. Wenn ADC-Abtastwerte ankommen,
werden dieselben verdoppelt und jeder Satz von zwei Abtastwerten wird
bei jedem zweiten Zyklus in den aktuellen Speicherpuffer 14 geschrieben.
Die Adresse, in die die Daten geschrieben werden, ist durch ein
Addieren der aktuellen Startadresse aus dem Register 22 zu dem
aktuellen Versatz aus dem Register 25 unter Verwendung
eines Addierers 26 und eines Registers 27 gebildet.
Diese Adresse wird bei jedem zweiten Zyklus durch einen Phasenmultiplexer 28 geleitet. Der
aktuelle Versatz inkrementiert weiter, bis derselbe den gleichen
Wert wie die Größe des Puffers
aufweist. An diesem Punkt wird derselbe rückgesetzt, derart, dass die
nächsten
ankommenden Datenpaare die vorhergehenden Daten überschreiben, die bei aktueller
Startadresse + 0,1,2,3 und so weiter in den Puffer aufgenommen wurden.
Der Aktuell-Versatz-Zähler (23–25)
wird rückgesetzt,
wenn ein Komparator 29 erfasst, dass die aktuelle Größe und der aktuelle
Versatz gleich sind.
-
Bei
diesem Ausführungsbeispiel
der Erfindung ist der nächste
Puffer mit dem aktuellen Puffer zeitgemultiplext. Die oben beschriebene
Aktuell-Pufferadresse-Erzeugungsschaltungsanordnung aktualisiert
sich bei jedem zweiten Taktzyklus. Bei den abwechselnden Taktzyklen
werden die nächsten
Pufferadressen unter Verwendung einer ähnlichen Schaltung eines Registers 30,
eines Addierers 32, eines Registers 33, eines
Addierers 34, eines Registers 35 und eines Komparators 36 erzeugt.
Bei den Zyklen, die diesen unmittelbar folgen, bei denen die aktuelle Basisadresse
und Größe in die
Register 21 und 22 gelesen werden, werden die
nächste
Basisadresse und die nächste
Größe aus dem
korrekten Registersatz 12 gelesen und in das nächste Startadressregister 30 und
das nächste
Größenadressregister 31 zwischengespei chert.
Der nächste
Versatz wird unter Verwendung des Zählers erzeugt, der aus dem
Addierer 32 und dem Register 33 gebildet ist,
der wiederum durch den Addierer 34 zu der nächsten Startadresse
addiert wird, um die nächste
Adresse 35 zu erzeugen. Diese Adresse wird über den
Phasenmultiplexer 28, der bei jedem Taktzyklus zwischen
der aktuellen und der nächsten
Adresse auswählt,
dem externen Speicher 4 zugeführt. Somit wird jedes ADC-Datenpaar
in sowohl den aktuellen als auch den nächsten Puffer geschrieben.
-
Die
Schaltung ist zum Aufnehmen einer Sequenz von Pulsen in der Lage.
An dem Punkt, an dem ein Puls aufgenommen wurde, werden keine weiteren
Daten zu dem aktuellen Puffer geschrieben. Der nächste Puffer wird zu dem aktuellen
Puffer und auf den Registersatz 12 wird zugegriffen, um
einen neuen Satz von Werten zu liefern, um zu einem neuen nächsten Puffer
zu zeigen. Das Wichtigste ist, sicherzustellen, dass die Daten,
die vor dem Wechsel in den nächsten
Puffer geschrieben werden, über den Übergang
hinweg kontinuierlich sind, bei dem der nächste Puffer zu dem aktuellen
Puffer wird.
-
Wenn
das letzte Datenpaar zu der letzten Position innerhalb des aktuellen
Puffers geschrieben ist, wird der Versatz dieser Position zurück zu dem Registersatz 12 als
die Endversatzadresse geschrieben, so dass die letzte und die erste
Position innerhalb des Puffers gefunden werden können. Zu dem gleichen Zeitpunkt
routen bzw. leiten die Multiplexer 18 und 19 die
nächste
Startadresse aus dem Register 30 und die Größe aus dem
Register 31 in das aktuelle Startadressregister 22 und
das aktuelle Größenregister 21.
Der nächste
Versatz wird durch den Multiplexer 23 in den Addierer 24 geführt, um
einen aktuellen Versatz in dem Register 25 zu erzeugen, der
um Eins größer als
der letzte Wert in dem nächsten
Versatzregister 33 ist. Dieser Prozess muss innerhalb eines
einzigen Zyklus auftreten, da die nächste Adresse, die in der „nächsten" Phase ausgegeben
wurde, nun in der „aktuellen" Phase einen einzigen
Zyklus später
aus gegeben werden muss. Die Struktur des Zählers 23–25 ist
es, die den ordentlichen Übergang
von Adressen von dem nächsten
zu dem aktuellen „Zeitschlitz" ermöglicht.
Eine Warnung besteht darin, dass, sollte der nächste Versatz an dem Punkt
eines Wechsels gleich der nächsten
Größe sein,
dann die Rücksetzung
von dem Komparator 36 tatsächlich das aktuelle Versatzregister 25 rücksetzt,
um zu ermöglichen,
dass der nächste
Puffer zu der nächsten
Pufferadresse schreibt, die die erste Position innerhalb des Puffers
(Versatz 0) wäre,
aber dies ist nicht gezeigt.
-
Ein
Speichern der digitalen Abtastwerte in zwei Puffern, dem aktuellen
Puffer und dem nächsten Puffer,
stellt sicher, dass keine Daten verloren werden. Wie es schematisch
in 4 gezeigt ist, besteht der Eingangssignalverlauf 50 aus
einem ersten Einzelpuls 52 nach einiger Zeit gefolgt durch
ein Paar von Pulsen 54, 56 eng beieinander. Bei
dem Start einer Aufnahme ist ein erster Puffer 62 der aktuelle
Puffer 58 und wird ein zweiter Puffer 64 zu dem
nächsten Puffer 60.
Beide Puffer weisen die gleiche Größe auf und nehmen eine Menge
an Daten auf, wie es durch die Kästen
gezeigt ist, die durch lange gestrichelte Linien definiert sind.
So lange keine Pulse vorhanden sind, füllen sich beide Puffer und
Daten werden weiter in die Puffer durch ein Überschreiben der vorhergehend
gespeicherten Daten geschrieben, bis ein Puls erfasst wird. Die
Pulsextraktionsschaltung 5 erfasst die vorauseilende Flanke
des Pulses bei einem Vorderflankenerfassungspunkt 66 und
die nacheilende Flanke des Pulses bei einem Hinterflankenerfassungspunkt 68.
-
Zu
der Zeit, zu der der erste Puls 52 durch die Pulsextraktionsschaltung 16 erfasst
wird, enthält der
erste Puffer den Abschnitt des Signalverlaufs, wie es in dem ersten
Puffer 62 gezeigt ist. Der zweite Puffer 64 nimmt
ebenfalls den gleichen Puls auf, aber dieser wird überschrieben,
wenn eine Zeit fortschreitet. Wenn die nacheilende Flanke des ersten
Pulses erfasst wird (bei dem Hinterflankenerfas sungspunkt 68),
wird der zweite Puffer 64 zu dem aktuellen Puffer und wird
ein dritter Puffer 70 zu dem nächsten Puffer. Wenn die nacheilende
Flanke des nächsten
Pulses bei dem Hinterflankenerfassungspunkt 72 erfasst wird,
beendet der zweite Puffer 64 ein Aufnehmen und wird den
gezeigten Signalverlauf enthaltend belassen. Dieser umfasst einen
kleinen Abschnitt des folgenden Pulses, da die Zeit, die benötigt wird,
um diesen Signalverlauf als einen einzigen Puls zu entwerfen, mit
dem Anfang des nächsten
Pulses überlappt.
Der dritte Puffer 70 nimmt die Daten weiter auf. Nun wird
die vorauseilende Flanke des Pulses 56 nicht verpasst,
da dieselbe in dem nächsten
Puffer (in diesem Fall dem dritten Puffer 70) aufgenommen wird,
bis der Hinterflankenerfassungspunkt 74 des Pulses 56 erreicht
ist. Zu dieser Zeit beendet der dritte Puffer 70, der zu
dem aktuellen Puffer wurde, als der Hinterflankenerfassungspunkt 72 erreicht
war, eine Aufnahme und umfasst beide Pulse 54 und 56, wie
es zu sehen ist. Jedoch liefert das Register, das diesem dritten
Puffer entspricht, die Adressinformationen, die die Speicheradressen
angeben, bei denen der relevante Puls gespeichert ist. Somit ist
zu sehen, dass jeder Puffer einen Puls enthält, sowie die Daten, die bis
zu dem Puls führen,
und, abhängig
von der Zeitverzögerung
zwischen dem Hinterflankenerfassungspunkt und dem Ende einer Aufnahme,
Daten, die auf den Puls folgen, was ermöglicht, dass Anstiegs- und
Abfallzeitmessungen an jedem Puffer unabhängig auftreten.
-
Da
die Schaltung zum Aufnehmen einzelner Pulse in einzelne Speicherpuffer
in der Lage ist, ist es nicht mehr notwendig, eine Zeit als die
einzige Einrichtung zum Lokalisieren eines Pulses zu verwenden.
Anstelle einer Zeit können
Pulse durch eine Nummer entworfen sein. Somit ist beispielsweise
der Puls, der in dem ersten Puffer gespeichert ist, Puls Nr. 1 genannt,
dieser in dem zweiten Speicher ist Puls Nr. 2, usw. Dies bedeutet,
dass spezielle Pulse nun ohne weiteres für eine Aufnahme und eine Verarbeitung
gewählt
werden können
und diese Pulse, die nicht erforderlich sind, ausge sondert werden
können.
Herkömmlicherweise
mussten Gatter relativ zu einem Auslösepunkt eingerichtet werden,
um die Pulse zu filtern, die erforderlich waren. In den meisten Fällen mussten
Gatter tatsächlich
relativ zu der Flanke des Pulses platziert sein. Dies kann nun ohne
weiteres erreicht werden und Gatter können nicht nur relativ zu dem
vorderen Ende eines Pulses, sondern auch relativ zu dem hinteren
Ende oder sogar der Mitte des Pulses platziert sein. In der Vergangenheit war
das Gatter einen festen Abstand weg von einem Auslösepunkt
vorgesehen und wies eine feste Breite auf. Es ist nun möglich, Gatter
basierend auf der Breite eines Pulses zu platzieren, z. B. ein Gatter über den
mittleren 60 % eines Pulses zu platzieren. Somit können bedeutsame
Leistungsmessungen in einem einzigen Durchlauf an allen Pulsen variabler
Breite vorgenommen werden.
-
Eine
kleine Änderung
an der Pulsaufnahmezustandsmaschine 10 ermöglicht,
dass Pulse ausgelassen werden. Wenn jeder Puls erfasst ist, wird
ein Zähler
dekrementiert und lediglich der Puls, der mit einem Zählwert von
Null zusammenfällt,
wird aufgenommen. Somit könnte
bei einer Sequenz von 600 Pulsen jeder zehnte Puls aufgenommen und
immer noch innerhalb einer Grenze von 64 Pulsen gemessen werden.
Die Eingliederung dieser Mehrpulsaufnahme- und Gattersteuerverbesserungen
in ein Leistungsmessgerät
würde ermöglichen,
dass der Benutzer eine große
Anzahl von nützlichen
Messungen in höchstens
wenigen Sekunden durchführen
kann. Gegenwärtig
könnte
diese Aufgabe unter Verwendung einer existierenden Leistungsmessgerät-Messfähigkeit
mehrere Stunden dauern.
-
Um
in der Lage zu sein, Pulse lediglich durch eine Pulsnummer auszuwählen, ist
es natürlich
notwendig, zu bestimmen, welcher Puls in einem Strom von Pulsen
der erste ist. Die Auslöseschaltung 6 sendet
jedes Mal ein positives Auslösesignal
aus, wenn ein positiver Puls erfasst wird und jedes Mal ein negatives
Auslösesignal,
wenn ein negativer Puls erfasst wird. Dem Puls ist ein Positionsindikator
zugeordnet, der der Akquisitionszustandsmaschine 9 genau
sagt, wo die Auslöser
auftraten. Die getrennte Akquisitionszustandsmaschine 9 steuert
die Aufnahme von Daten basierend auf den Angaben von der Auslöseschaltung 6 durch
ein „Aufschieben" der Akquisition.
Wenn ein positiver Auslösepuls
zu der Akquisitionszustandsmaschine 9 geleitet wird, wird
ein Aufschiebezeitgeber innerhalb der Akquisitionszustandsmaschine 9 gestartet.
Die Auslöseschaltung 6 erzeugt
weiter Auslöser
ohne eine Kenntnis des Aufschiebezeitgebers. Jedes Mal, wenn die
Auslöseschaltung 6 einen
Puls erfasst, während
der Aufschiebezeitgeber aus ist, wird eine neue Aufschiebeperiode
gestartet. Offensichtlich weisen Auslöser, die während einer Aufschiebeperiode
auftreten, keine Wirkung auf den Aufschiebezeitgeber auf.
-
Die
Akquisitionszustandsmaschine 9 reagiert lediglich auf den
Aufschiebezeitgeber, wenn eine Akquisition gestartet ist. Sollte
eine Akquisition während
der Aufschiebeperiode gestartet werden, dann ignoriert die Akquisitionszustandsmaschine 9 Auslöser, bis
der Aufschiebezeitgeber fertig ist. Sobald die Akquisitionszustandsmaschine 9 die
Aufnahme von Daten gestartet hat, werden Aufschiebeperioden, die
durch nachfolgende positive Auslösepulse
erzeugt werden, ignoriert.
-
Dies
gestattet eine Verbesserung der Mehrpulsschaltung, um mehrere Bursts
bzw. Stöße von Pulsen
aufzunehmen. Falls beispielsweise ein Testsignal aus Bursts von
zehn Pulsen innerhalb 1 ms besteht, ist jeder Burst um 10 ms beabstandet.
Die Aufschiebeperiode ist auf 2 ms gesetzt. Sollte die Akquisitionszustandsmaschine 9 zwischen
den Bursts gestartet werden, dann startet dieselbe wie normal bei dem
ersten Puls des Bursts. Dieselbe nimmt die zehn Pulse in zehn Puffer
auf, aber kann fortfahren, nachfolgende Pulse in nachfolgende Puffer
aufzunehmen. Dies ist so, trotz der Tatsache, dass der 11., 21.
etc. Puls neue Aufschiebeperioden starten. Der Benutzer kann dann
mehrere Bursts auf einmal untersuchen und in einem einzigen Durchlauf
genau den Abstand zwischen Bursts messen.
-
Sollte
die Akquisitionszustandsmaschine 9 während eines Bursts gestartet
werden, wird der Aufschiebezeitgeber betrachtet und eine Akquisition wird
aufgeschoben, bis derselbe einen Zeitablauf feststellt. Der erste
gewonnene Puls wird der erste des nächsten Bursts sein. Weil der
Aufschiebezeitgeber kontinuierlich von den positiven Auslösepulsen aus
läuft,
ist das Problem vermieden, dass der allererste Auslöser irgendwo
auftritt. Obwohl jede Akquisition gebeten werden könnte, um
in der Mitte eines Bursts zu starten, hat sich der Aufschiebezeitgeber dank
der Tatsache, dass derselbe lief seit die Auslöseschaltung 6 gestartet
wurde, bereits mit den Bursts ausgerichtet.
-
Bei
einem Ausführungsbeispiel
der Erfindung ist die Schaltung in einem feldprogrammierbaren Gatterarray
(FPGA = Field Programmable Gate Array) implementiert, der 512×36-Bit-Blöcke eines Dual-Port-
bzw. Dual-Tor-Direktzugriffspeichers (Dual-Tor-RAM) liefert. Dieser
Speicher wurde ausgenutzt, um 64 Sätze 12 mit jeweils
acht Steuer-/Statusregistern 13 zu liefern, wie es oben
erwähnt
ist. Jeder Registersatz 12 steuert vollständig einen
von 64 Speicherpuffern 14 in dem externen ZBT-Hauptspeicher 4 (ZBT
= Zero Bus Turnaround = Null-Bus-Umkehrung). Eine einzige Schaltung
kann implementiert sein, die alle notwendigen Operationen durchführt, um
die Aufnahme eines Pulses (und die simultane Aufnahme des Signals,
das bis zu dem nächsten Puls
führt)
zu liefern. Durch das einfache Mittel eines Bereitstellens eines
Registers, das zu den oberen Adressbits des Dual-Tor-RAM zeigt,
können
alle Sätze
von Steuerung/Status durch ein Ändern
dieses Registers ausgewählt
werden.
-
Wie
es oben erwähnt
ist, enthält
jeder Registersatz 12 acht Steuer-/Statusregister 13.
Zwei Register speichern Basisadress- bzw. Puffergrößeninformationen.
Wenn eine Pulsakquisition stattfindet, werden andere Register aktualisiert.
Die Speicheradressen der auslösenden
positiven Flanke und/oder negativen Flanken werden in zweien der
Register des Satzes gespeichert. Ferner ist ein 32-Bit-Zeitstempel
gespeichert, der die hintere Flanke des Pulses lokalisiert. Wenn
eine Pulsaufnahme fortschreitet, werden die Minimal- und Maximalwerte
des eingehenden Signals herausgefunden und in ein Spitzenwerteregister
gespeichert, wenn eine Aufnahme abgeschlossen ist. Am Ende einer
Aufnahme wird ebenfalls der Endversatz des letzten gespeicherten Wortes
gespeichert. Die Kombination der Anfangspuffer-, Puffergrößen- und Endversatzdatenregister wird
verwendet, um den Start und das Ende der tatsächlichen Speicherung innerhalb
eines Puffers zu finden. Die Start- und Größenregister werden vor einer
Akquisition programmiert, um die Position und Größe jedes Puffers einzurichten.
-
Andere
Steuerbits innerhalb der acht Register werden verwendet, um die
Reihenfolge und Anzahl von verwendeten Puffern zu steuern. Ein Stoppbit
in dem Register, das die Basisadresse speichert, kann beispielsweise
verwendet werden, so dass, falls dasselbe nicht gesetzt ist, dann
die Zustandsmaschine zu dem nächsten
Puffer übergeht.
Falls dasselbe gesetzt ist, dann hat die Akquisition den letzten Puls
derselben aufgenommen und die Schaltung geht in die Phase eines
Lesens der Ergebnisse aus dem ZBT-Speicher 4 in die Signalverlaufsverarbeitungsschaltungsanordnung 15 über. Die Signalverlaufsverarbeitungsschaltungsanordnung 15 kann
eine Schaltungsanordnung sein, die innerhalb des gleichen Chips
enthalten ist, oder kann in einem externen DSP-Chip vorgesehen sein.
-
Ein
anderes Bit in dem Basisadressregister bewirkt, dass die Akquisition
bei einem Abschluss der Aufnahme des aktuellen Pulses zurück zu dem
Puffer Nr. 0 springt, anstatt sich zu dem Puffer mit der nächsten Nummer
zu bewegen. Durch ein Programmieren einiger Bits in jedem Satz von
Puffern können dieselben
somit miteinander verkettet werden, um irgendeine Anzahl von Pulsen
aufzunehmen. Diese weiche Steuerung ermöglicht, dass eine Aufnahme
in einem Teilsatz von Puffern auftritt, während die Daten in anderen
gehalten sind.
-
Die
Registersätze 12,
die den Betrieb jedes Speicherpuffers 14 einrichten und
aufzeichnen, nehmen aufeinanderfolgende Bereiche des speicherbasierten
Registerarrays ein. Um auf einen speziellen Satz zuzugreifen, werden
die oberen Adressbits verändert.
Der Satz „Nächster Puffer" ist normalerweise der
Satz nach dem Satz „Aktueller
Puffer". Um die Zähler und
arbeitenden Register des aktuellen und des nächsten Puffers einzurichten,
werden die oberen Adressbits zwischen dem aktuellen und dem nächsten Puffersatz
abgewechselt, wobei zugehörige
Daten bei abwechselnden Zyklen gelesen werden.
-
Die
Adresse, in die Auslösedaten
geschrieben werden, wird zwischengespeichert. Wenn sich der Auslöser bzw.
Trigger qualifiziert (durch einen Puls an trig_pos oder trig_neg
angegeben), wird die Auslöseadresse
zu der korrekten Position innerhalb des 8-Register-Satzes geschrieben.
Dies kann unmittelbar durch einen Schreibvorgang des Zeitstempels
zu dem Zeitstempelregister gefolgt sein, falls dies als der letzte
Auslöser
eines Satzes erachtet wird. Ein trig_pos-Puls kann bei einer Phase der zweiphasigen
Pipeline ankommen. Falls derselbe an der Frühen ankommt, wird derselbe
um einen Zyklus gestreckt, so dass die Auslöseadresse immer bei der aktuellen
Phase der Aktueller/Nächster-Abwechslung
geschrieben wird.
-
Bei
einer Inbetriebnahme werden Basisadresse und Größe jedes Puffers aus dem Registersatz
desselben gelesen. Die tatsächlichen
externen Speicheradressen werden durch ein Addieren eines Zeigerversatzes
zu der Basisadresse herausgefunden. Dieser Zeiger wird nach jedem
externen Schreibvorgang inkrementiert. Wenn der Zeiger gleich der
Größe ist,
wird derselbe auf null rückgesetzt.
Somit adressiert der Zeiger umlaufend alle Positionen in dem vorprogrammierten
Puffer. Die oberen Registersatzadressen werden abge wechselt, wenn
erforderlich, und sobald die Basisadresse und Größen in arbeitende Register
geladen sind, beginnt die Vorfüllung.
Die tatsächliche
ZBT-Adresse zeigt die Kombination der aktuellen und nächsten Adressen
zu einem Speicher.
-
Der
externe ZBT-Speicher 4 ist ein großer, zusammenhängender
Speicherbereich. Derselbe kann in irgendeine Anzahl von Puffern
irgendeiner Größe (abhängig von
der Gesamtspeichergrößengrenze)
geformt sein. Vor einem Starten einer Akquisition findet die Akquisitionszustandsmaschine 9 heraus,
wie viele Puffer (von 1 bis 64) erforderlich sind und
wie groß dieselben
sein müssen.
Dann programmiert dieselbe die Basisadress- und Puffergrößenregister
innerhalb jedes 8-Register-Satzes 12,
um den Speicher 4 in die Puffer 14 zu entwerfen.
Sobald der Speicher 4 eingerichtet wurde, werden die Puffer 14 miteinander
verkettet, wenn notwendig, unter Verwendung der oben erwähnten „Stopp"- und „zurück-zunull"-Bits. Die Auslöseschaltung 6 (die
von der Akquisition getrennt ist) ist mit derartigen Dingen wie
Auslösepegeln,
Hysterese, maximale Pulsbreite etc. programmiert. Schließlich wird
die Nummer des Puffers, der als erster verwendet werden soll, programmiert
und die Akquisition kann beginnen.
-
Die
Akquisitionszustandsmaschine 9 und die Pulsaufnahmezustandsmaschine 10 übernehmen dann
und die Schaltung nimmt automatisch Pulse auf und führt dieselben
zu der Signalverlaufsschaltungsanordnung 15. Beide Zustandsmaschinen
sind in einer Weise implementiert, die Fachleuten auf dem Gebiet
gut bekannt ist, und die Details der Implementierung werden hier
nicht weiter beschrieben. Die Akquisitionszustandsmaschine 9 ermöglicht,
dass der Prozess kontinuierlich laufen gelassen wird, d. h. wenn ein
Aufnahmezyklus abgeschlossen ist, wird ein anderer automatisch gestartet,
und dieser Prozess geht weiter, bis der Prozessor einschreitet,
um eine Aufnahme zu stoppen.
-
Ein
Betrieb der Pulsaufnahmezustandsmaschine 10 wird nun mit
Bezug auf 5 ausführlicher beschrieben. In dieser
Figur sind Zustände
durch Kreise angegeben, Flüsse
zwischen Zuständen durch
Pfeile und der Grund einer Zustandsänderung ist in einem Rechteck
zwischen Zuständen
gezeigt. Die Gleichungen innerhalb der Rechtecke verwenden die Kurzschreibweise:
!
= NICHT;
. = UND;
+ = ODER.
-
(!aufschieben
+ (sel_trig.!zu_groß))
bedeutet somit beispielsweise „(NICHT
aufschieben) ODER (ausgewählter
Trigger UND nicht zu_groß)".
-
Unter
jetziger Bezugnahme auf 5 wartet deshalb die Pulsaufnahmezustandsmaschine 10 in dem
LEERLAUF-Zustand S1 (IDLE-Zustand), bis eine Akquisition gestartet
ist. Wenn dieselbe gestartet ist, bewegt sich die Zustandsmaschine
zu einem LESE_START_AD-Zustand S2 (READ_START_AD-Zustand), dann
einem LESE_GRÖSSE-Zustand
S3 (READ_SIZE-Zustand) und kopiert die speicherbasierte Startadresse
und Größe in arbeitende
Register. Bei dem nächsten
Zustand S4 START_ADRESS-ZÄHLWERT (START_ADDRESS_COUNT)
startet ein interner Adresszähler
bei der START_ADRESSE.
-
Die
Wahl ABLADEN/nicht ABLADEN (DUMP/not DUMP) bezieht sich auf ein
ABLADEN von Daten aus dem Puffer (den Puffern). Die Schaltungsanordnung,
die Aufnahmen durchführt,
wird teilweise wieder verwendet, um die aufgenommenen Daten zu der
Signalverlaufsverarbeitungsschaltungsanordnung 15 abzuladen.
Um eine Treiberlogik zu minimieren (und die Schaltung zu beschleunigen), wurde
die Abladesteuerung der Pulsaufnahmezustandsmaschine 10 „an die
Seite genietet".
Bei einem Ignorieren eines Abladens für jetzt entlang dem nicht/ABLADEN-Weg
jedoch wird der VORFÜLLUNG_ERWARTEN_UND_AUFSCHIEBEN-Zustand
S5 (AWAIT_PREFILL_AND_HOLDOFF-Zustand) erreicht. Bei diesem Zustand
wird der Speicher 4 bei Adressen beschrieben, zu denen
durch den internen Adresszähler
gezeigt wird.
-
Die
Pulsaufnahmezustandsmaschine 10 kann bei „normalen" Einzelflankenaufnahmen
sowie Einzelpulsaufnahmen und Mehrpulsaufnahmen verwendet werden.
In einem normalen Modus ist ein Puls oder eine Flanke an einer Anzeige
gezeigt, so dass der Benutzer Messungen an dem angezeigten Signalverlauf
vornehmen kann. Damit der Puls oder die Flanke an dem Schirm gut
zentriert ist, ist es notwendig, den Speicher 4 vorzufüllen, bevor
ermöglicht wird,
dass ein Auslösepuls
die Akquisition auslöst. Falls
dies nicht vorgenommen würde,
dann könnte der
Auslösepuls
(der, wie man sich ins Gedächtnis rufen
sollte, eine ziemliche Zeit nach der Auslöseflanke auftreten kann) mit
dem allerersten Abtastwert ausgerichtet auftreten. Eine ausgelöste Aufnahme würde dann
vor einem Führen
der Daten zu der Anzeige (über
die Signalverlaufsverarbeitungsschaltungsanordnung) etwas mehr Signalverlauf
aufnehmen. Leider wird in einigen Fällen die tatsächliche Auslöseflanke
eventuell nicht aufgenommen, falls dieselbe einige Abtastwerte vor
der ersten auftrat, die zu dem RAM geschrieben wird. Um dies zu überwinden,
wird ein programmierter Vorfüllwert
verwendet, der bewirkt, dass die Akquisitionsschaltung eingehende
Auslöseangaben
ignoriert, bis der Speicher 4 mit genügend Abtastwerten vorgefüllt wurde,
derart, dass, wenn ein Auslöser
das nächste
Mal auftritt, derselbe garantiert innerhalb der Vorfüllspeicherpositionen
aufgenommen wurde. Sollte ein gültiger
Auslöser
während
einer Vorfüllung
angegeben werden, wird derselbe ignoriert und der nächste Auslöser anstelle
dessen verwendet.
-
Der
Aufschiebemechanismus wurde bereits beschrieben. Irgendwelche Auslösepulse,
die erfasst werden, wenn ein Aufschieben nicht gesetzt ist, bewirken,
dass der Aufschiebezähler
startet. Nachfolgende Auslösepulse
während
des Zählens
dieses Aufschiebezählers
werden ignoriert. Die Akqui sition geht nicht weiter als VORFÜLLUNG_ERWARTEN_UND_AUFSCHIEBEN,
bis der Aufschiebezähler
auszählt.
Somit kann der erste Puls einer isolierten Pulsfolge entworfen werden,
wie es früher
beschrieben ist.
-
Der VORFÜLLUNG_ERWARTEN_UND_AUFSCHIEBEN-Zustand
S5 wartet auf die Vorfüllung
und darauf, dass die Aufschiebezähler
auszählen,
bevor sich derselbe zu einem Zustand bewegt, der auf einen Auslöser wartet.
In einem Pulsauslösemodus
wird auf zwei Flanken gewirkt, die hier die erste und die letzte
genannt werden. In einem Flankenauslösemodus wird lediglich auf
eine Flanke gewirkt, so dass die Zustandsmaschine ein Verarbeiten
der ersten Flanke überspringt
und sich direkt zu der letzten bewegt. Ein Pulsauslösen ist
unter Verwendung eines „Burst"-Steuerbits programmiert.
Falls dasselbe gesetzt ist, soll ein Puls gefunden werden, so dass
sich die Zustandsmaschine zu einem ERSTEN_TRIG_ERWARTEN-Zustand
S6 (AWAIT_FIRST_TRIG-Zustand) bewegt. Falls „Burst" nicht gesetzt ist, dann soll nach einem
Einzelflankenauslöser
gesucht werden und die Zustandsmaschine bewegt sich zu einem LETZTEN_TRIG_ERWARTEN-Zustand
S7 (AWAIT_LAST_TRIG-Zustand).
-
Bei
dem ERSTEN_TRIG_ERWARTEN-Zustand S6 füllt die Zustandsmaschine 10 den
Speicher 4 weiter, während
danach gesucht wird, dass der ausgewählte Auslöser (sel_trig) auftritt. Die
Auslöseschaltung 6 gibt
getrennte Pulse für
positive und negative Auslöseereignisse
aus. Sel_trig findet heraus, welche Polarität eines Auslösers den
nächsten
Auslöser
bewirkt, basierend auf einer programmierten Auslöserpolarität und einem Auslösertyp,
und leitet den korrekten Puls zu der Zustandsmaschine 10.
-
Wenn
das ausgewählte
Auslösesignal
auftritt, bewegt sich die Zustandsmaschine 10 zu einem ERSTER_TRIG-Zustand
S8. Dieser Zustand soll der Schaltungsanordnung genug Zeit geben,
um die Auslöseadresse
in eines des Satzes 12 von acht Registern zu schreiben
und die gesamte Auslösesteuerschaltungsanordnung
umzuschalten, um die andere Flanke zu be trachten. Die Zustandsmaschine
bewegt sich dann zu dem LETZTEN_TRIG_ERWARTEN-Zustand S7.
-
Ungeachtet
dessen, wie der LETZTEN_TRIG_ERWARTEN-Zustand S7 erreicht wurde,
sucht die Schaltung nach dem ausgewählten Auslöser und bewegt denselben, wenn
derselbe auftritt, in den Nach-Auslöser-Teil des Zustandsmaschinenbetriebs,
wo eine ausreichende Menge an Aufnahmen stattfindet, um zu zeigen,
was nach dem Auslöser
geschieht, oder, falls erforderlich, einen Abschnitt des Signalverlaufs,
der eine lange Zeit nach dem Auslösepunkt auftritt, aufzunehmen.
-
Die
eine Warnung besteht darin, dass, sollte die Schaltung nach einem
Puls suchen und die hintere Flanke des Pulses nicht innerhalb der
Zeit zu sehen sein, die benötigt
wird, um einmal in einer Schleife den Speicherpuffer zu durchlaufen,
die Zustandsmaschine dann den Puls als zu breit aussondert und durch
den PULS_ZU_GROSS-Zustand S9 (PULSE_TOO_BIG-Zustand) sich in einer
Schleife zurückbewegt,
den sel-trig zurückschaltet,
um erneut nach der ersten Flanke zu suchen, und sich zu dem ERSTEN_TRIG_ERWARTEN-Zustand
S6 bewegt, um zu versuchen, einen Puls aufzunehmen, der ausreichend
schmal ist, um in den Puffer zu passen.
-
Falls
die Schaltung einfach auf die letzte Flanke eines zu breiten Pulses
warten gelassen würde,
dann würde
das Fehlen einer vorderen Flanke (aufgrund dessen, dass dieselbe überschrieben
wurde, wenn der Speicherpuffer ein zweites Mal eine Schleife durchläuft) eine
jegliche nachgeschaltete Schaltungsanordnung ernsthaft verwirren,
die beispielsweise versucht, Pulsbreitenmessungen oder Messungen
vorzunehmen, die auf einem Kennen der Position der Flanken basieren.
Deshalb kann der Benutzer eine maximale Pulsbreite setzen und jegliche Pulse
wegwerfen, die zu breit sind. Der Benutzer würde informiert, dass dies geschehen
ist, und könnte
die maximale Pulsbreite, falls erforderlich, für nachfolgende Aufnahmen einstellen.
-
Sobald
der letzte Auslöser
auftritt, bewegt sich die Zustandsmaschine von dem LETZTEN_TRIG_ERWARTEN-Zustand
S7 zu einem ZWEITER_TRIG-Zustand S10 (SECOND_TRIG-Zustand). Bei
dem ZWEITER_TRIG-Zustand S10 wird die Adressposition des Auslösers in
dem relevanten Register des Registersatzes 12 gespeichert
und wird ferner ein Zeitstempel geschrieben, so dass der Abstand
zwischen Pulsen/Flanken genau herausgefunden werden kann.
-
Abhängig davon,
ob zwei Flanken oder eine Flanke (unter Verwendung eines „Burst") aufgenommen wurden,
bewegt sich die Zustandsmaschine dann zu einem Zustand, der auf
eine programmierte „Nachfüll"- bzw. „Post-fill"-Anzahl von weiteren
Abtastwerten wartet, die aufgenommen werden sollen, bevor die Aufnahme
fertiggestellt ist. Wie es früher erwähnt ist,
kann der Benutzer wünschen,
den Auslöser
zu verwenden, um ein Ereignis aufzunehmen, das lange danach auftritt.
Aus diesem Grund wird die Adresse, bei der der Auslöseabtastwert
aufgenommen wurde, mit dem Adress_Zähler (address_counter) verglichen,
der die Pufferspeicherschreibadresse bildet. Falls ausreichende
Abtastwerte nach einem Auslöser
aufgenommen sind, so dass die Pufferadresse die Schleife wieder
durchläuft
und die Daten überschreibt,
die zu dem tatsächlichen
Auslösepunkt
gehören,
dann wird ein Einzelbitflag gesetzt, das die Nachverarbeitungsschaltungsanordnung
informiert, dass der Auslösepunkt nicht
mehr gespeichert ist, und die Anzeige/Messungen werden entsprechend
eingestellt. Bei einem Mehrpulsmodus ist der Nachfüllwert programmiert, um
klein (oder null) zu sein, so dass der Aktueller/Nächster-Wechsel
nicht so spät
auftritt, dass ein nachfolgender Puls nicht korrekt aufgenommen
wird.
-
Die
Zustandsmaschine macht, nachdem dieselbe in einen der drei NACHFÜLLUNG_ERWARTEN-Zustände S11,
S12, S13 (AWAIT_POSTFILL-Zustände)
eingetreten ist, Auslöseadressen
ungültig,
falls die Nachfüllung
ausreichend groß ist,
dass die Auslöseposition überschrieben
ist. Dies wird durch ein Vergleichen der Auslöseadresse, die in dem Registersatz 12 ge speichert
ist, mit dem aktuellen Versatz unter Verwendung des Komparators 29 und
des Multiplexers 37 vorgenommen. Wenn der Nachfüllzähler auszählt, bewegt
sich dieselbe dann zu dem FERTIG_ODER_SCHLEIFE-Zustand S14 (FINISH_OR_LOOP-Zustand).
-
Bei
dem FERTIG_ODER_SCHLEIFE-Zustand S14 treten eine Anzahl von Dingen
auf: die aktuelle Speicheradresse wird in das End_Adress-Register
des Registersatzes 12 übertragen
und der minimale und der maximale Signalwert seit der letzten Pufferumschaltung
werden ebenfalls gespeichert. Somit kann die Signalverlaufsverarbeitungsschaltungsanordnung 15 die
Signalgrößengrenzen
schnell messen und ferner wissen, von welcher Position in einem
Speicher der Puffer beginnt und endet (die Startadresse ist gewöhnlich diejenige
nach dem End_Versatz (end_offset)).
-
Falls
dies der letzte Puffer ist, der beschrieben werden soll (das STOPP-Bit
ist gesetzt), dann bewegt sich die Zustandsmaschine zurück zu dem LEERLAUF-Zustand
S1, bis derselben durch höhere Entitäten gesagt
wird, den Prozess eines Zurücklesens
der Daten zu beginnen.
-
Falls
derselbe nicht der letzte Puffer ist, der gefüllt werden soll, dann bewegt
sich die Zustandsmaschine zu einem NÄCHSTEN_ZU_AKTUELLEM_ÜBERTRAGEN-Zustand
S15 (XFER_NEXT_TO_CURRENT-Zustand) der eine Steuerung des nächsten Puffers
(der sich im Hintergrund still füllte) überträgt, um unter
eine Steuerung der Zustandsmaschine als der aktuelle Puffer zu kommen.
Der NÄCHSTEN_KICKEN-Zustand
S16 (KICK_NEXT-Zustand)
erlangt dann den neuen nächsten
Puffer aus dem korrekten Satz von Pufferregistern und beginnt den
Prozess eines Schreibens zu demselben (im Hintergrund). Die Schleife
ist dann abgeschlossen, wenn sich der Zustand zu dem ERSTEN_TRIG_ERWARTEN-Zustand
S6 oder dem LETZTEN_TRIG-ERWARTEN-Zustand S7 bewegt, abhängig davon,
ob eine einzelne Flanke oder ein einzelner Puls gesucht wird. Der
Prozess wiederholt sich, bis der letzte Puffer erreicht ist. Bei einem
Abschluss der Datenaufnahme des letzten Puffers kehrt die Zustandsmaschine
zu dem LEERLAUF-Zustand S1 zurück,
und ist bereit zum Abladen von Daten zu der Nachverarbeitungsschaltungsanordnung.
-
Ein
Abladen von Daten aus den RAM-basierten Puffern zu einer Nachverarbeitungsschaltungsanordnung
verwendet die gleiche Adresserzeugungslogik, die verwendet wurde,
um die Daten anfangs zu den Puffern zu schreiben. Wenn die Akquisitionszustandsmaschine
Satz ABLADEN STARTEN (START DUMPING set) sendet, werden die Startadresse
und die Größe in die
gleichen aktuellen Register 21 und 22 gelesen,
die für
eine Akquisition verwendet werden. Falls die Gesamtaufnahmelänge geringer
als eine Pufferlänge
war, dann existieren die Daten von einem Versatz 0 bis zu dem Versatz,
der in dem End_Versatz-Register gespeichert ist. Falls die Gesamtaufnahme
länger
als der Puffer war, dann wird die Aufnahme eine Schleife durchlaufen
haben und wird von End_Versatz + 1 bis zu dem Ende des Puffers und
dann von Versatz 0 bis End_Versatz gespeichert sein. Die Tatsache,
dass ein Puffer „in
einer Schleife durchlaufen wurde",
wurde als ein Angabebit zusammen mit dem Endversatz in dem gleichen
Register gespeichert. Der Abladeprozess wird deshalb von Versatz
0 oder einem Versatz End_Versatz + 1 starten müssen, abhängig von der Einstellung des „Schleifen"-Angabebits bzw. „Looped"-Angabebits. Bei
dem Zustand S4 wird der Endversatz in den Zähler 23–25 durch
den Multiplexer 23 gelesen, der automatisch inkrementiert,
während
dies geschieht. Der Endversatz wird ferner unter Verwendung des
Komparators 29 über
den Multiplexer 37 mit dem aktuellen Größenregister 21 verglichen
(wobei der Endversatz aus dem Registersatz 12 an diesem
Punkt gelesen wird). Dies gestattet, dass die Schaltung den speziellen
Fall erfasst, bei dem der Endversatz zu der letzten Position innerhalb
des Puffers zeigt, was erfordert, dass dieselbe von einem Versatz
0 aus startet. Es ist deutlich zu erkennen, dass praktisch keine zusätzliche
Schaltungsanordnung benötigt
wurde, um diesen speziellen Fall einzufangen.
-
Falls
deshalb der Puffer in einer Schleife durchlaufen wurde, bewegt sich
die Zustandsmaschine von dem Zustand S4 zu einem Zustand S17, bei dem
der Multiplexer 37 gesetzt ist, um die Größe mit dem
aktuellen Versatz zu vergleichen. Wenn eine Übereinstimmung auftritt, wird
das aktuelle Versatzregister 25 rückgesetzt und bewegt sich die
Zustandsmaschine zu einem Zustand S18. Bei dem Zustand S18 wird
der Endversatz (der kontinuierlich aus dem Registersatz 12 gelesen
wird) mit dem aktuellen Versatz unter Verwendung des Multiplexers 37 und des
Komparators 29 verglichen. Wenn eine Übereinstimmung auftritt, bewegt
sich die Zustandsmaschine zu dem Zustand FERTIG_ODER_SCHLEIFE S14. Das
Fazit von all diesem besteht darin, dass die Daten für ein Lesen
aus dem Speicher 4 von der Adresse nach dem Endversatz
bis zu dem Ende des Puffers und dann von dem Anfang des Puffers
bis zu dem Endversatz adressiert werden, ohne auf eine zusätzliche
Schaltungsanordnung zurückzugreifen.
In dem Fall, in dem der Puffer nicht in einer Schleife durchlaufen
wurde, bewegt sich die Zustandsmaschine von dem Zustand S4 direkt
zu dem Zustand S18 und vergleicht einfach den Versatz mit dem Endversatz.
Dies resultiert darin, dass Daten von dem Anfang des Puffers (Versatz
0) bis zu dem Endversatz gelesen werden.
-
Eine
Anzahl von Puffern kann mit Daten bestückt sein. Wenn die Zustandsmaschine
den Zustand S14 erreicht, wird das Stopp-Bit geprüft, und falls
dasselbe nicht gesetzt ist, bewegt sich die Zustandsmaschine zu
einem Zustand LOOPING_DUMP S19, bei dem der Pufferzeiger zu dem
nächsten
Puffer bewegt wird und der Prozess das Abladen des nächsten Puffers
wiederholt usw., bis der letzte Puffer erreicht ist. Der letzte
Puffer (dadurch angegeben, dass das STOPP-Bit desselben gesetzt ist) bewirkt,
dass sich die Zustandsmaschine von dem Zustand S14 zu dem LEERLAUF-Zustand S1
bewegt. An diesem Punkt wurden alle Daten zu der nachgelagerten
Signalverlaufsverarbeitungsschaltungsanordnung 15 weitergereicht
und die Akquisitionsschaltungsanordnung könnte eine neue Aufnahme zu
der gleichen Zeit starten, wenn die nachgelagerte Signalverlaufsverarbeitungsschaltungsanordnung 15 den
aktuellen Satz von Signalverläufen
verarbeitet.
-
Ein
alternativer Ansatz zu dem Obigen, wodurch die die nächste und
die aktuelle Adresse erzeugende Logik einfach zwischen der Nächste-Adresse-Schaltungsanordnung
und der Aktuelle-Adresse-Schaltungsanordnung hin- und hergeschaltet
wird, kann alternativ verwendet werden. Obwohl derselbe zuerst einfacher
zu implementieren scheint, wurde dieser Ansatz untersucht und es
wurde erkannt, dass die ganze Schaltungsanordnung, die durch die
Aktuelle-Adresse-Logik für
eine Endadressübereinstimmung,
eine Auslöseadressübereinstimmung
und eine enge Kopplung mit der Zustandsmaschine erforderlich ist,
genau bei der Nächste-Adresse-Schaltungsanordnung
repliziert sein müsste
(als dieselbe die Aktuelle-Adresse-Schaltungsanordnung wurde). Durch
ein Übernehmen
der oben beschriebenen Implementierung wird die Nächste-Adresse-Schaltungsanordnung
beträchtlich
einfacher als die Aktuelle-Adresse-Schaltungsanordnung und weist
eine viel geringere Verbindung mit „externen" Schaltungen auf. Diese Schaltungsvereinfachung
und Verbindungsreduzierung ermöglicht,
dass die Funktionalität
schneller abläuft,
da die entscheidenden Zeitwege zahlenmäßig reduziert und innerhalb
des implementierenden Geräts
geografisch kleiner sind.
-
An
dem Fertigstellungspunkt, bei dem der nächste Puffer zu dem aktuellen
Puffer wird, beträgt der
aktuelle Zeigerversatz N und beträgt der nächste Versatz X. Die ZBT-RAM-ADRESSE schreibt
die Alte Aktuelle Basis + N (OCBS + X) (OCBS = Old Current Base)
gefolgt durch die Alte Nächste
Basis + X (ONBS + X) ( Next Base). Bei einem Eintreten
in den NÄCHSTEN_ZU_AKTUELLEM_ÜBERTRAGEN-Zustand
S15 wird das aktuelle Versatzzeigerregister 25 mit dem
nächsten
Zeigerwert aus dem Register 33 (X) plus eins geladen. Gewöhnlich wird
dasselbe mit dem eigenen Zeigerwert desselben plus eins geladen,
so dass der gleiche „plus-eins"-Addierer 24 für beide
verwendet werden kann.
-
Somit
weist der aktuelle Versatz nun den nächsten Versatzwert auf. Die
Basisadresse ist ebenfalls übertragen.
Bei dem Zyklus, der dem ONBS+X-Schreibvorgang unmittelbar folgt,
wird die Schreibleitung zu dem externen RAM für einen Zyklus aufgehoben,
wobei ein Schreibvorgang zu der OCBS+N+1-Adressposition verhindert
wird. Die gespeicherte Endadresse des aktuellen Puffers beträgt N, nicht
N + 1. Es wäre
deshalb keine gute Idee, einen zusätzlichen Datenwert an diesem
Punkt zu schreiben.
-
Der ÜBERTRAGEN-Zustand
(XFER-Zustand) bewirkt ferner, dass die nächste Basisadresse mit der „neuen" nächsten Basisadresse
(NNBS = "New" Next Base Address),
zu der ordnungsgemäß geschrieben
wird, in dem externen Speicher überschrieben
wird. Der folgende Zyklus schreibt ONBS + X + 1, was die Adresse
ist, die der letzten unmittelbar folgt, zu der geschrieben wurde,
während
der alte „nächste Puffer" noch der „nächste Puffer" und nicht der „aktuelle" war. Die inkrementierenden
Zeiger liefern weiter externe Adressen für die zwei Puffer und die eingehenden
Daten werden weiter bei abwechselnden Zyklen in die zwei Puffer
geschrieben.
-
Es
ist ohne weiteres zu erkennen, dass die Daten, die zu dem „nächsten" Puffer geschrieben werden, über den
Wechsel hinweg kontinuierlich sind, obwohl dieselben von der nächsten Phase
zu der aktuellen Phase Phasen überspringen
müssen.
-
Das
Zustandsmaschinendiagramm von 5 gehört hauptsächlich zu
dem aktuellen Puffer. Wie es früher
erwähnt
ist, werden Abtastwertdaten zu zwei Stellen in einer abwechselnd
zeitgemultiplexten Weise geschrieben. Wie ein Schreiben von Daten
in einer zeitgemultiplexten Weise, ist auch die Zustandsmaschine
und eine angeschlossene Adresssteuerschaltungsanordnung zeitgemultiplext.
Dies ist in dem Zustandsmaschinendiagramm nicht gezeigt, um dasselbe
einfacher verständlich
zu machen. Die Zustandsmaschine aktualisiert sich lediglich alle
zwei Zyklen. In einigen Fällen
wird dies ausgenutzt, um zwei Steuerregisterschreibvorgänge und/oder
-lesevorgänge
in einem Schritt durchzuführen.
Aktualisierungen an der Zustandsmaschine treten lediglich jeden
zweiten Taktzyklus auf. Ereignisse, wie beispielsweise einen Zyklus
breite Auslösepulse,
müssen
verbreitert werden, wo notwendig (bei der sel_trig-Schaltung), so
dass die Zustandsmaschine auf dieselben anspricht, selbst wenn dieselben
bei dem dazwischenliegenden Zyklus auftreten.
-
Wenn
eine Dezimierung eingeschaltet ist (z. B. Aufnehmen jedes zehnten
Abtastwerts), wird die Zustandsmaschine ebenfalls verlangsamt, derart, dass
die Beziehung zwischen Speicherschreibvorgängen und Zustandsmaschinenänderungen
beibehalten ist. Dies hilft die Schaltung mit einer spezifischen
Dezimierungssteuerschaltungsanordnung unüberhäuft zu halten.
-
6 beschreibt
den Betrieb der Akquisitionszustandsmaschine 9. Der Zweck
dieser Zustandsmaschine besteht darin, den zeitlichen Ablauf einer
Akquisition, eines Abladens und einer Wiederakquisition zu steuern.
Die Akquisitionszustandsmaschine 9 wartet in dem LEERLAUF-Zustand
S20, solange dieselbe über
das GEWINNEN-AUSFÜHREN-Steuersignal
(RUNACQUIRE-Steuersignal) nicht angewiesen wird, die Akquisition
zu starten. Wenn dieselbe so angewiesen wird, bewegt sich die Zustandsmaschine
zu einem PUFFER_KOPIEREN-Zustand S21 (COPY_BUFFER-Zustand), bei
dem dieselbe herausfindet, welcher Puffer verwendet wird, und denselben
in ein arbeitendes Register kopiert. Dieselbe bewegt sich dann zu
dem AUFNAHME_STARTEN-Zustand S22 (START_CAPTURE-Zustand) und sendet
ein START zu der Aufnahmezustandsmaschine. In dem nächsten Zustand
S23 AUFNAHME_ENDE_ERWARTEN (AWAIT_CAPTURE_FINISH) wartet die Akquisitionszustandsmaschine 9 darauf,
dass die Aufnahmezustandsmaschine die Aufnahme fertigstellt, und
bewegt sich dann zu einem Zustand S24, bei dem dieselbe einen ABLADEN_STARTEN-Befehl (START_DUMP-Befehl) zu der Pulsaufnahmezustandsmaschine
sendet. Erneut wartet die Akquisitionszustandsmaschine 9 in
einem Zustand S25 darauf, dass das Abladen abschließt, und
sobald das Abladen bei einem Zustand S26 abgeschlossen ist, kann
dieselbe dann eine Anzahl von Dingen tun. In einem Einmal_Ausführen-Modus
(run_once-Modus) stoppt dieselbe ein Gewinnen und bewegt sich zu
einem STOPP_NACH_EINMAL_AUS-FÜHREN-Zustand
S27 (STOP_AFTER_RUN_ONCE-Zustand). Alternativ bewegt sich dieselbe
in einem KONTINUIERLICH-Modus (CONTINUOUS-Modus) zu einem Zustand
S28, um zu prüfen,
ob eine andere Aufnahme aus dem nächsten Puffer (oder Puffersatz)
in der Reihe durchgeführt
werden kann. Eine Aufnahme kann auftreten, während die vorhergehende Aufnahme
verarbeitet wird. Die Signalverlaufsverarbeitung benötigt eine
finite Zeit und die Signalverlaufsverarbeitungsschaltungsanordnung
hat eventuell die abgeladenen Daten derselben noch nicht verarbeitet, so
dass die Option eines Aufschiebens der nächsten Aufnahme bei einem Zustand
S30 existiert, bis die Signalverlaufsverarbeitungsschaltungsanordnung ein
Flag setzt. In jedem Fall gelangt die Zustandsmaschine zu einem
PUFFER_EINSTELLEN-Zustand S29 (ADJUST_BUFFER-Zustand), bei dem der nächste Puffer
herausgefunden wird und eine andere Aufnahme gestartet wird. Der
Prozess durchläuft weiter
eine Schleife, bis der Hauptprozessor „kontinuierlich" rücksetzt,
wobei derselbe sauber am Ende einer Aufnahme stoppt. Eine Aufnahme
kann ebenfalls zwangsweise durch ein Rücksetzen der GEWINNEN_AUSFÜHREN-Steuerleitung
gestoppt werden (bei Situationen, in denen ein Fehlen von Auslösern einen
ordentlichen Abschluss verhindert).
-
Bei
einem Aufnehmen kann die gesamte Schaltung bei der dezimierten Rate
laufen. Falls der Dezimierungsfaktor groß ist (z. B. eine Aufnahme
alle 1000 Taktzyklen), dann würde
das Abladen auch eine lange Zeit benötigen, wenn dasselbe die gleiche Schaltungsanordnung
verwendet. Um die Dinge zu beschleunigen, schaltet die Akquisitionszustandsmaschine 9 automatisch
von der dezimierten Rate um, um während eines Abladens einen
Betrieb abzuflachen, und schaltet für die nächste Aufnahme zurück zu der
dezimierten Rate.
-
Es
ist ersichtlich, dass, obwohl lediglich ein bevorzugtes Ausführungsbeispiel
der Erfindung detailliert beschrieben wurde, verschiedene Modifikationen
und Verbesserungen durch einen Fachmann auf dem Gebiet vorgenommen
werden können,
ohne von dem Schutzbereich der Erfindung abzuweichen.