DE60222142T2 - Impulstransient-erfassung und koprozessor zur datenerfassung - Google Patents

Impulstransient-erfassung und koprozessor zur datenerfassung Download PDF

Info

Publication number
DE60222142T2
DE60222142T2 DE60222142T DE60222142T DE60222142T2 DE 60222142 T2 DE60222142 T2 DE 60222142T2 DE 60222142 T DE60222142 T DE 60222142T DE 60222142 T DE60222142 T DE 60222142T DE 60222142 T2 DE60222142 T2 DE 60222142T2
Authority
DE
Germany
Prior art keywords
data
bit
memory
fifo
sharc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60222142T
Other languages
English (en)
Other versions
DE60222142D1 (de
Inventor
Ronald J. Murfreesboro BILAS
Avery D. Smyrna LONG
M. Jason Murfreesboro THURMOND
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Schneider Electric USA Inc
Original Assignee
Square D Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Square D Co filed Critical Square D Co
Application granted granted Critical
Publication of DE60222142D1 publication Critical patent/DE60222142D1/de
Publication of DE60222142T2 publication Critical patent/DE60222142T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R35/00Testing or calibrating of apparatus covered by the other groups of this subclass
    • G01R35/04Testing or calibrating of apparatus covered by the other groups of this subclass of instruments for measuring time integral of power or current
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R19/00Arrangements for measuring currents or voltages or for indicating presence or sign thereof
    • G01R19/25Arrangements for measuring currents or voltages or for indicating presence or sign thereof using digital measurement techniques
    • G01R19/2513Arrangements for monitoring electric power systems, e.g. power lines or loads; Logging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R13/00Arrangements for displaying electric variables or waveforms
    • G01R13/20Cathode-ray oscilloscopes
    • G01R13/22Circuits therefor
    • G01R13/34Circuits for representing a single waveform by sampling, e.g. for very high frequencies
    • G01R13/345Circuits for representing a single waveform by sampling, e.g. for very high frequencies for displaying sampled signals by using digital processors by intermediate A.D. and D.A. convertors (control circuits for CRT indicators)

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Microcomputers (AREA)
  • Analogue/Digital Conversion (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Hochspannungstransienten können Energieversorgungsnetzen schaden. Die hohen Datenraten, die bei der Transientenerkennung erforderlich sind, sind für gegenwärtige Mikroprozessoren zu schnell, um sie selbst zu bewältigen und dennoch andere Datenabtastungs- und Berichtfunktionen mit der gewünschten Rate auszuführen. Das Auftreten dieser Transienten ist oft intermittierend und unvorhersagbar.
  • Das Transienten-Strom-Spannungs-Modul (TCV-Modul) der Erfindung löst das Problem der unbemannten Erkennung, Speicherung und Analyse dieser Transienten. Der Erfassen-/Trigger-/Steuer-/Interface-Chip (ATCI-Chip) ist eine Komponente des TCV und macht das TCV möglich. Wenn er in einem System mit einem Universalmikroprozessor verwendet wird, macht der ATCI-Chip die kontinuierliche Echtzeiterkennung und -speicherung von Hochspannungstransienten auf einem von drei unabhängigen Kanälen möglich. Die „steckbare" Natur des Moduls macht es für den Kunden einfach, ein existierendes Strom-Spannungs-Überwachungsgerät (CVM) mit einem TCV hochzurüsten, indem lediglich das Modul ersetzt und die Grundzähler-Firmware heruntergeladen wird.
  • Square D, der Zessionar, stellt derzeit ein CVM her, welches als CM4-Zählwerk bekannt ist. Diese Erfindung fügt einem existierenden CM4-Zählerwerk durch ein kleines, relativ kostengünstiges Steckmodul die Fähigkeit zur Transientenanalyse hinzu und verbessert die Funktionalität des CM4. Sie ermöglicht dem Kunden, lediglich durch den Kauf des Moduls und das Hochrüsten der CM4-Firmware dem CM4 Transientenanalyse hinzuzufügen. Sie stellt Kunden bei deutlich geringeren Kosten als von Konkurrenzangeboten die Fähigkeit zur Transientenanalyse bereit. Der CM4 kann Daten mit einer Rate von 512 Abtastungen/Zyklus analysieren. Das TCV kann Daten mit einer Rate von 83 333 Abtastungen/Zyklus analysieren. Jeder Kunde, der zusätzlich zu der derzeitigen Analyse geringer Geschwindigkeit eine Transientenanalyse mit hoher Geschwindigkeit möchte, kann das TCV verwenden.
  • Das TCV macht die Transientenerkennung und -speicherung hoher Geschwindigkeit wie folgt möglich:
    • 1. Es stellt einem Universalmikroprozessor zum Zugreifen auf Daten und den Status ein Interface bereit.
    • 2. Es erkennt Transienten auf einer beliebigen Kombination von drei Kanälen mittels eines benutzerprogrammierbaren Spannungs-/Dauer-Triggermechanismus.
    • 3. Es verwendet zwei unabhängige, umschaltbare Speicherbanken, um die kontinuierliche und simultane Echtzeitspeicherung und -analyse eines eingehenden Transienten-Datenstroms zu ermöglichen. Es werden kontinuierlich Echtzeit-Ursprungsdaten in eine Bank des Speichers geladen, während der Universalmikroprozessor gleichzeitig die zuvor erfassten Daten in der anderen Bank ohne Unterbrechung des eingehenden Datenstroms analysiert. Die zwei Speicherbanken können auf Befehl von dem Universalmikroprozessor umgeschaltet und die Rollen der Speicherbanken ohne Datenverlust gewechselt werden. Diese Technik ermöglicht das Analysieren langer Transienten ohne den Verlust von Daten.
    • 4. Es stellt eine Speicherung im Speicher für mehrfache Trigger-Ansprech- und -Ausfallpunkte bereit. Dies beschleunigt das Verarbeiten der eingehenden Transienten sehr.
    • 5. Es stellt ein FIFO (Prioritätssteuerung) und einen nötigen Quittungsaustausches und einer nötigen Steuerung zur Kommunikation mit dem Hauptüberwachungsgerät bereit.
  • US 4979122 offenbart ein Leistungsüberwachungsgerät zum Bestimmen echter und imaginärer Leistung, die einem oder mehreren Leitungssignalen zugehörig ist, tastet während eines Beobachtungsfensters eine Vielzahl von Leitungszyklen ab, um für jeden Leitungszyklus eine Vielzahl von Spannungs-Strom-Abtastungsgruppen zu erzeugen. Das Abtasten der Abtastungsgruppen wird zeitlich so bestimmt, dass die Spannungs-Strom-Abtastungsgruppen bei unterschiedlichen relativen Zeitpositionen genommen werden. Das Leistungsüberwachungsgerät speichert eingehende Spannungs-Strom-Abtastungsdaten in einem Speicherbereich und analysiert gleichzeitig Abtastungsdaten, die bereits in einem anderen Speicherbereich gespeichert sind. Die Beseitigung von Abtastungsdaten wird nicht erlaubt, bevor die Transientenanalyse derartiger Daten vollendet ist. Bei einer anderen Ausführungsform umfasst das Leistungsüberwachungsgerät einen Betriebsdatenspeicherbereich, der so mit den Abtastschaltungsanordnungen verknüpft ist, dass die Abtastungsgruppen, die während jedes Beobachtungsfensters auftreten, in verschachtelter Art und Weise in dem Betriebsdatenspeicherbereich gespeichert werden, um einen einzelnen Zyklus an Daten zu simulieren.
  • In einem ersten Aspekt der Erfindung ist ein Gerät zur Erkennung impulsförmiger Transienten und zur Datenerfassung als eine Zusatzeinheit für eine Leistungsüberwachungsvorrichtung mit einem Leistungsmessungsvorrichtungsprozessor zum Ausführen von Datenabtastung und des Berichtens mit einer gegebenen Rate bereitgestellt, wobei das Gerät Folgendes beinhaltet: einen Geräteprozessor; ein Interface zum Zugreifen auf Daten von dem Geräteprozessor; eine Vielzahl von Kanälen zum Suchen und Überwachen von Transienten; und mindestens zwei unabhängige, umschaltbare Speicherbanken für die simultane Echtzeitspeicherung und die simultanen Echtzeitanalysen eines eingehenden Transienten-Datenstroms, wobei die Speicherbanken auf Befehle von dem Geräteprozessor reagieren, wobei die Befehle den Wechsel der Speicherbanken ohne Datenverlust umfassen, um zu ermöglichen, dass lange und/oder mehrfache Transienten ohne den Verlust von Daten analysiert werden.
  • In einem weiteren Aspekt der Erfindung ist ein Verfahren zum Überwachen eines Energieversorgungsnetzes bereitgestellt, um Transienten-Ereignisse zu erkennen, wobei das Überwachungsverfahren Folgendes beinhaltet: Zugreifen auf Daten von einem Prozessor; Kooperieren mit einer Leistungsüberwachungsvorrichtung mit einem Leistungsmessungsvorrichtungsprozessor zum Ausführen der Datenabtastung und des Berichtens mit einer gegebenen Rate; Suchen und Überwachen von Transienten; und Ausführen der simultanen Echtzeitspeicherung und der simultanen Echtzeitanalysen eines eingehenden Transienten-Datenstroms unter Verwendung von mindestens zwei unabhängigen, umschaltbaren Speicherbanken, wobei das Verfahren durch das Wechseln der Speicherbanken, die auf Befehle von dem Prozessor (10) reagieren, ohne Datenverlust gekennzeichnet ist, um zu ermöglichen, dass mehrfache und/oder lange Transienten ohne den Verlust von Daten analysiert werden.
  • Andere optionale Merkmale sind wie in den in der Anlage befindlichen Patentansprüchen beschrieben.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • In den Zeichnungen ist:
  • 1 ein Blockschema einer Ausführungsform eines Transienten;
  • 2 ein Logikflussdiagramm des Betriebs eines Schwellen-Triggerpunkts; und
  • 3 ein Entscheidungsdiagramm des Interface-FIFO.
  • DETAILLIERTE BESCHREIBUNG DER DARGESTELLTEN
  • AUSFÜHRUNGSFORM
  • Das TCV-Modul (Transienten-/Strom-/Spannungsmodul) ist ein verbesserter Steckersatz für ein existierendes CV-Modul (Strom-/Spannungsmodul) mit 512 Abtastungen/Zyklus. Es bietet eine viel schnellere Abtastrate mit fünf Abtastungen/s für jeden von drei Spannungskanälen und kann Spannungstransienten von bis zu ±5 000 Volt fassen und verarbeiten. Dies erlaubt das Fassen schneller Transienten, die weit über die Fähigkeiten des vorliegenden CV-Moduls hinausgehen. Zusätzlich zu diesem Fassen mit hoher Geschwindigkeit sind in dem Modul auch Schaltungsanordnungen geringer Geschwindigkeit mit 512 Abtastungen/Zyklus für Messungen mit hoher Genauigkeit und Kompatibilität mit dem vorliegenden CM4-Leistungsüberwachungsgerät, das von Square D Company, dem Zessionar, gefertigt wird, umfasst.
  • Es wird ein schneller Prozessor zur digitalen Signalverarbeitung (DSP) mit Hardware-Gleitkomma-Fähigkeit zur Analyse von schnellen Transienten verwendet und steht auch für zukünftige Verbesserungen zur Verfügung. Sowohl die langsam als auch die schnell abgetasteten Daten stehen dem DSP zur Verfügung, so dass er den Haupteinheit-Coldfire-Prozessor entlasten oder Funktionen ausführen kann, die über die Fähigkeiten des Coldfire hinausgehen, falls gewünscht.
  • Das TCV-Modul umfasst (siehe 1) einen Erfassen-/Trigger-/Steuer-/Interface-Chip (ATCI-Chip) 10 hoher Geschwindigkeit und einen Sharc DSP von ADI mit 60 MHz und einen zugehörigen Speicher 12 (z. B. Analog Devices ADSP 2106x). Das Signal RÜCKSETZEN des TCVs ist das erste Signal, dass erwähnt werden sollte, wenn das TCV mit dem Grundzähler des CM4 (nicht gezeigt) verbunden wird. Ein Coldfire-Prozessor 14, welcher ein Teil der CM4-Vorrichtung ist, kann ein Prozessor 5307 von Motorolasein, kann das TCV durch das Schreiben von Beliebigem an die Coldfire-Adresse 0x5060000C hart zurücksetzen. Obwohl das TCV seine eigenen Einschaltrücksetzungsschaltungsanordnungen aufweist, bietet dies dem Coldfire die Option, das TCV zu jedem Zeitpunkt rückzusetzen.
  • In einfachsten Worten ist das TCV-Modul ein Coprozessor für den Grundzähler. Die Kommunikationen zu und von dem Grundzähler werden durch ein 768-Wort-FIFO bewerkstelligt. Von dem Coldfire-Prozessor des CM4 kann über die Coldfire-Adresse 0x50600014 auf dieses FIFO zugegriffen werden. Es werden verschiedene Quittungsaustauschsignale bereitgestellt, um über den Zugriff auf den gemeinsamen Bus zu entscheiden. Diese Signale stellen sicher, dass lediglich der Grundzähler oder das TCV zu jedem gegebenen Zeitpunkt Zugriff auf den gemeinsamen Interface-Bus aufweist.
  • Eine allgemeine Beschreibung des Protokolls, das verwendet wird, um auf das Interface-FIFO zuzugreifen, kann in dem Abschnitt über das Steuerprotokoll des Bus-Interface-FIFO gefunden werden. Eine Tabelle der Coldfire-Adressen, die zum Verbinden mit dem TCV-Modul verwendet werden, ist unten in Tabelle 1 gezeigt. Tabelle 1 – Coldfire-Adressen
    COLDFIRE-ADRESSE FUNKTION BESCHREIBUNG
    0x50600006: Bit 3 TCV besitzt FIFO Lesen: '1' ⇒ TCV steuert Interface-FIFO Lesen '0' ⇒ Coldfire steuert Interface-FIFO
    0x50600006: Bit 2 TCV-FIFO leer Lesen: '0' ⇒ TCV-Interface-FIFO ist leer
    0x50600014 Interface-FIFO Lesen/Schreiben: TCV-Interface-FIFO
    0x5060000C TCV zurücksetzen Schreiben: TCV hart zurücksetzen
  • ATCI-Chip
    • Größe des Bus: 16 Bit
    • Chip-Auswahl: MS1
    • Adressenspanne: 0x1000000-0x100000B
  • Lesen/Schreiben
  • Ein vereinfachtes Blockdiagramm des Erfassen-/Trigger-/Steuer-/Interface-Chips (ATCI-Chip) ist in dem ATCI-Chip-Blockdiagramm (1) gezeigt. Jede Datenbewegung zwischen den A/D-Wandlern (ADC) 41 hoher Geschwindigkeit, dem Sharc 12 und dem Coldfire 14 werden entweder direkt durch den Erfassen-/Trigger-/Steuer-/Interface-Chip (ATCI-Chip) gesteuert oder durch diesen geleitet. Alle drei ATCI-Datenbusse 34, 36, 94 können simultan betrieben werden. Zusätzlich dazu führt der ATCI Triggerberechnungen aus, die den Sharc durch eine Unterbrechung warnen, dass eine zuvor programmierte Triggerbedingung erfüllt worden ist. Zwei ATCI-Erfassungs-RAM-Adressbusse 30 und 32 sind ebenfalls in 1 gezeigt.
  • Der ATCI führt sechs Hauptfunktionen aus:
    • 1. Transferieren von Daten von den A/D-Wandlern zu dem Erfassungsspeicher,
    • 2. Bereitstellen des Sharc-Zugriffs auf den Erfassungsspeicher,
    • 3. Berechnen des Triggers für jedes eingehende Datenwort und Unterbrechen des Sharc, falls die Triggerschwelle überstiegen wird,
    • 4. Bereitstellen des Erfassungs-DRAM-Zugriffs und Auffrischen der Steuerung,
    • 5. Bereitstellen eines Interface zwischen dem Sharc und dem Coldfire über ein Interface-FIFO 18.
    • 6. Bereitstellen eines FIFO 28 zum Speichern von Daten geringer Geschwindigkeit (512 Abtastungen/Zyklus) zur Verwendung durch den Sharc.
    • 7. Register
  • Der ATCI enthält zwölf Register. Durch diese Register stehen Steuerungs- und Systemstatusinformationen zur Verfügung. Die Adressen und eine kurze Beschreibung von jedem Register sind in der Tabelle 2 gezeigt. Detaillierte Beschreibungen von jedem folgen: Tabelle 2 ATCI-Register
    Register Adresse Beschreibung
    Zählerschwelle (42) 0x1000000 Einstellpunkt des Triggers bei H-zu-L-Zählerschwelle
    Zählerschwelle (42a) 0x1000001 Einstellpunkt des Triggers bei L-zu-H-Zählerschwelle
    Erfassenspeicher 0x1000002 Sharc-Zugriff auf den Erfassenspeicher (schreibgeschützt)
    Interface-FIFO (18) 0x1000003 Sharc-Zugriff auf das Interface-FIFO des Coldfire-/Sharc
    Statusregister (48) 0x1000004 Status
    Schwellen-FIFO (50) 0x1000005 Trigger-Schwellen-FIFO
    Zeiger (52) des Erfassenspeichers 0x1000006 zeigt auf die Adresse des Erfassenspeichers, die gelesen werden soll
    MSW des Erfassenspeichers 0x1000007 MS-Wort des gegenwärtigen Zählers des Erfassenspeichers
    Umschaltpunkt (56) 0x1000008 Adresse des letzten Punkts der Speicherumschaltung
    FIFO (28) der langsamen ADC 0x1000009 8-Wort-FIFO, das Daten der langsamen A/D enthält
    Statusregister 2 (48) 0x100000a zweites Statusregister
    Spannungsschwelle (40) 0x100000b Spannungstriggereinstell Punkt
  • Register der Zählerschwelle (H zu L)
    • Größe des Registers: 12 Bit
    • Adresse = 0x1000000
    • Rücksetzwert: 0xFFF
  • Lesen/Schreiben
  • Dieses Register 42 arbeitet mit dem Register 42a der L-zu-H-Zählerschwelle, um eine Triggerhysterese bereitzustellen. Der Betrag der Hysterese, in der Art und Weise, wie in 2 gezeigt und unten beschrieben, wird durch die Differenz der Werte, die in den Registern platziert werden, bestimmt – je größer die Differenz desto größer die Hysterese. Der Wert in jedem dieser Register wird mit dem Dauerzähler des gegenwärtigen Kanals verglichen und aus dem Ergebnis werden die Triggerbedingungen bestimmt. Der Wert in diesem Register enthält normalerweise eine Zahl ≤ dem Wert in dem Register der L-zu-H-Zählerschwelle. Die Werte können gleich sein. Dies resultiert in keiner Hysterese. In diesem Abschnitt ist ein Fließschema des Betriebs der Zählerschwelle gezeigt. Das Triggerbit ist das niedrigstwertige Bit des Worts aus 13 Bit, das aus dem Erfassungsspeicher gelesen wird. Wie in dem Diagramm (2) gezeigt ist, verursachen lediglich positive Kreuzungen einen Trigger-IRQ.
  • Register der Zählerschwelle (L zu H)
    • Größe des Registers: 12 Bit
    • Adresse = 0x1000001
    • Rücksetzwert: 0xFFF
  • Lesen/Schreiben
  • Der Betrieb dieses Registers 42a aus 12 Bit ist im Wesentlichen derselbe wie bei dem Register 42 der H-zu-L-Zählerschwelle, der oben erklärt wurde, außer, dass die Richtung positiv anstatt negativ ist. Dieses Register enthält den Wert der positiven Zählung, der erforderlich ist, um das Triggerbit zu aktivieren und den Trigger-IRQ zu triggern. Wenn die Schwelle überstiegen wird, wird die nächste Zählung des Dauerzählers (siehe unten) mit dem Register 42 der H-zu-L-Zählerschwelle verglichen und folglich wird die Schmidt-Trigger-Aktion bereitgestellt, die erforderlich ist, um Fremdtrigger um die Schwelle herum zu verhindern. Jeder der drei Kanäle wird unabhängig von den anderen betrieben, und jede Übergangsspannung wird auf einer „Pro-Kanal-Basis" verglichen.
  • Der Trigger-IRQ ist flankengetriggert. Wenn sich der Wert des Dauerzählers (siehe unten) von gleich auf größer als das Register der Spannungsschwelle ändert, wird die Unterbrechung auftreten. Lediglich eine „positive" Schwellenkreuzung verursacht eine Unterbrechung. Dies ist nicht der Fall, wenn von einem Wert oberhalb der Schwelle auf einen Wert, welcher gleich oder unterhalb der Schwelle ist, gegangen wird. Wenn der IRQ auftritt, wird gleichzeitig auch die Triggeradresse in das Register des Schwellen-FIFO geschrieben.
  • Betrieb des Dauerzählers:
  • Es gibt drei Zähler 60, 62, 64 aus 12 Bit (einen für jeden Spannungskanal) in dem ATCI für den Zweck des Abmessens der Zeitdauer, die ein Transient benötigt, um das Spannungsniveau, das in dem Register 40 der Spannungsschwelle eingestellt ist, zu erreichen. Jeder Zähler ist von den anderen völlig unabhängig und misst lediglich die Dauer seines zugewiesenen Spannungskanals. Wenn Daten von den A/D-Wandlern hoher Geschwindigkeit einströmen, werden die drei Kanäle in einer Round-Robin-Art adressiert. Jeder Zähler wird lediglich dann adressiert, wenn sein zugehöriger Spannungs-Datenpunkt zur Verfügung steht.
  • Falls der absolute Wert eines Spannungs-Datenpunkts den Wert, welcher in dem Register 40 der Spannungsschwelle vorhanden ist, übersteigt und ein Triggerpunkt gerade erreicht worden ist, da die Zählung in dem Zähler den Wert in dem Register der L-zu-H-Zählerschwelle übersteigt, wird der Zähler das Zählen stoppen und seine Zählung anhalten, bis die Daten der A/D-Wandler geringer sind als der Spannungswert, welcher in das Register der Spannungsschwelle geladen wurde. Wenn die Schwelle den Wert in dem Register der L-zu-H-Zählerschwelle gerade überstiegen hat, wird nun auch begonnen, den Zähler des Kanals mit dem Wert in dem Register der H-zu-L-Zählerschwelle zu vergleichen, um Hysterese bereitzustellen und ungewollte Trigger zu verhindern. Solange die A/D-Spannung ≤ dem Register der Spannungsschwelle ist, zählt der Zähler weiter zurück, bis er 0x000 erreicht oder eine andere positive Schwellenkreuzung verursacht, dass er anfängt, wieder hochzuzählen. (Das Zählen wird auch stoppen, falls der Zählwert beim Hochzählen 0xFFF erreicht.)
  • Betrieb des Triggerpunkts (siehe 2):
  • Wenn einer der Zähler die Schwelle des Registers 42 der L-zu-H-Zählerschwelle kreuzt, wird ein Trigger-IRQ auftreten (falls aktiviert) und bei derselben Adresse, wo der Trigger auftrat, wird eine '1' in dem Erfassungsspeicher platziert. Das Vergleichsregister wird ebenfalls geändert, so dass nachfolgende Vergleiche mit dem Register der H-zu-L-Zählerschwelle (das einen kleineren Wert enthält) gemacht werden. Diese '1' wird nun weiterhin bei jedem Zyklus in den Speicher geschrieben, solange der Wert des Zählers in dem Register der H-zu-L-Zählerschwelle oberhalb des Werts von 12 Bit bleibt.
  • Obwohl weiterhin eine '1' in den Speicher geschrieben wird, wird der Trigger-IRQ lediglich einmal auftreten, wenn der Zählerwert die Dauerschwelle übersteigt. Ein IRQ tritt lediglich bei positiven Schwellenkreuzungen auf.
  • Triggern:
  • Die Zeit, die ein eingehender Spannungskanal oberhalb der Spannungsschwelle verbringt, bestimmt, ob der ATCI eine Triggerbedingung signalisiert. In einfachsten Worten verursacht jeder eingehende Spannungsabtaststrom, welcher einen programmierten Betrag an Zeit oberhalb einer programmierten Spannungsschwelle verbringt, einen Trigger. Da der eingehende Spannungsstrom Wechselstrom ist, wird der absolute Wert von jedem Spannungsabtastpunkt mit dem Wert in dem Register der Spannungsschwelle verglichen, um zu bestimmen, ob dieser Punkt erreicht worden ist. Das Verwenden des absoluten Werts verursacht den Verlust des Vorzeichenbit in dem Register 40 der Spannungsschwelle, weshalb die Größe des Registers 11 Bit beträgt.
  • Auf Grund der hohen Datenrate bricht der ATCI die erforderliche Triggerberechnung in Stücke, die parallel betrieben werden, indem eine zeitverschachtelt arbeitende Architektur eingesetzt wird. Obwohl der ATCI mit 30 MHz läuft, ist die Datenrate von 15 MHz zu hoch, um die erforderliche Berechnung in einem einzigen Zyklus zu beenden (die Abtastrate für jeden Kanal beträgt 5 MHz, jedoch werden in jeder Abtastperiode drei Kanäle abgetastet, daraus folgt die Datenrate von 15 MHz). Die Daten in dem Erfassungsspeicher, das Triggerereignis und alle anderen Ereignisse, die mit den A/D hoher Geschwindigkeit verwandt sind, stehen nicht zur Verfügung, bis sie durch die ATCI-Pipeline verarbeitet wurden. Diese Verzögerungszeit beträgt fünf Taktzyklen des Sharc 12 oder 167 ns. Die A/D-Wandler weisen eine zusätzliche Zeitverzögerung von ungefähr zehn Perioden von 200 ns (2 μs) von dem Zeitpunkt, wenn das analoge Signal am A/D-Eingang erscheint bis es den digitalen Ausgang der A/D erreicht, auf. Für Synchronisierungszwecke ist diese Gesamtverzögerung von 2,17 μs im Vergleich mit der Abtastzeit des Coldfire 14 von 32,5 μs nicht von Bedeutung.
  • Die ATCI-Pipeline muss voll sein, damit sie mit voller Geschwindigkeit betrieben werden kann; allerdings wird die Pipeline nach den ersten fünf Zyklen immer voll sein. Selbst nach einer Speicherumschaltung wird kein „Füllzeitnachteil" erlitten. Der Chip wird mit voller Geschwindigkeit betrieben und verarbeitet und füllt den Erfassungsspeicher mit Daten der A/D-Wandler hoher Geschwindigkeit mit der Spitzenrate des ATCI. Nach dem anfänglichen Einschalten ist der einzige andere Zeitpunkt, wenn der „Füllzeitnachteil" von 167 ns erlitten wird, wenn der Erfassenprozess durch das Löschen des Bit EnAqr gestoppt wird. Wenn dieses Bit als nächstes eingestellt wird, wird es 167 ns dauern, bevor wieder gültige Daten erscheinen.
  • Register 44 des Erfassenspeichers
    • Größe des Bus: 16 Bit:
    • Bit 15-1 = bipolare Spannung
    • Bit 0 = Triggerbit,
    • Adresse = 0x1000002 schreibgeschützt
  • Dieses schreibgeschützte Register 44 wird von dem Sharc 12 verwendet, um auf den Erfassenspeicher zuzugreifen. Das Lesen dieses Registers transferiert den Wert, auf den gegenwärtig von dem Zeigerregister 52 des Erfassenspeichers gezeigt wird, zu dem Sharc. Dieses Register wirkt als ein Port zu der 1-MWort-Erfassungsspeicherkapazität. Das Lesen-/Schreiben-Zeigerregister 52 des Erfassenspeichers enthält die Adresse des Erfassenspeichers, welcher gelesen wird.
  • Es gibt keine Beschränkungen der Anzahl an Wörtern, die in einer Lesesequenz gelesen werden können. Nach jedem Lesen inkrementiert der ATCI das Zeigerregister des Erfassenspeichers gemäß den Regeln, die in dem Abschnitt über das Adressieren des Erfassungsspeichers unten erklärt werden. Wenn die letzte Speicheradresse (0xFFFFE) erreicht ist, läuft der Zähler auf 0 über.
  • Adressieren des Erfassungsspeichers
  • Auf Grund der hohen Betriebsgeschwindigkeit und der speziellen Erfordernisse der dynamischen Speicher wurde ein nichtsequentielles Adressierverfahren entworfen, um den Erfassungsspeicher während der Erfassung der A/D-Spannungs-Daten zu adressieren. Dies ist ein Ergebnis der Natur hohen Geschwindigkeit der Datenerfassung und erfordert einen spezialisierten Adresszähler. Um die Dinge so einfach wie möglich zu halten, wurde auf der Sharc-Seite der Erfassung eine Kopie desselben Zählers wie auf der A/D-Wandler-Seite verwendet. Der Sharc 12 kann folglich den Speicher sequentiell lesen und die Daten in seinem Speicher speichern, wobei einfaches lineares Lesen verwendet wird.
  • Der ATCI kann simultan zwei völlig unabhängige DRAM 70, 72 adressieren. Unter normalen Betriebsbedingungen befindet sich einer dieser Speicher in seinem Erfassungsmodus und einer steht dem Sharc zum Lesen zur Verfügung. Das Einstellen oder das Löschen des RAM-Auswahl-Bit in dem Statusregister kann die Rolle jedes Speichers ändern. Dies ist in der Tat die Triebfeder hinter der Gestaltung des Erfassungssystems. Durch das Umschalten der Rollen der Speicher kann der Sharc ohne irgendeinen Verlust die kürzlich erfassten Daten lesen und verarbeiten, während das System simultan neue Daten sammelt.
  • Damit die Geschwindigkeitsanforderungen des Systems und die Auffrischungsanforderungen des DRAM simultan erfüllt werden, wurde ein Adressierschema, das jede 16. Adresse überspringt, verwendet. Dies hat auch die Probleme der Datenabgleichung gelöst, die sich aus der Tatsache ergaben, dass es drei erfasste Datenpunkte anstatt einer „Zweierpotenz" gibt.
  • Die Zählsequenz für die ATCI-Adresszähler ist wie folgt:
    0x0, 0x1, 0x2, ... 0xd, 0xe, 0x10, 0x11, ... 0xffffd, 0xffffe, 0x0, 0x1, 0x2, ...
  • Einer der Vorteile dieses Zählschemas ist, dass die Adresse eines beliebigen Spannungskanals leicht gefunden werden kann, indem auf die niedrigstwertige Tetrade der Adressenbit geschaut wird. Der Rest aus dem Teilen der niedrigstwertigen Tetrade durch drei zeigt immer auf Va, Vb oder Vc, wie durch die folgenden Regeln definiert wird:
  • absoluter Triggermodus
    • Falls (LsAddrNibble % 3 = 0) LsAddrNibble ⇒ Va
    • Falls (LsAddrNibble % 3 = 1) LsAddrNibble ⇒ Vb
    • Falls (LsAddrNibble % 3 = 2) LsAddrNibble ⇒ Vc
  • differentieller Triggermodus
    • Falls (LsAddrNibble % 3 = 0) LsAddrNibble ⇒ Va – Vb
    • Falls (LsAddrNibble % 3 = 1) LsAddrNibble ⇒ Vb – Vc
    • Falls (LsAddrNibble % 3 = 2) LsAddrNibble ⇒ Vc – Va
  • Das Endergebnis von all diesem ist, dass jedes 16. Speicherwort verloren geht und jede 1048-kWort-Speichervorrichtung zu einer 983-kWort-Speichereinrichtung wird – ein Verlust von 65-kWort. Es macht auch die Berechnung der Zeit zwischen zwei Datenpunkten ein wenig komplizierter. Anstatt einfach zu Subtrahieren, muss nun ein komplizierterer Algorithmus durchgangen werden. Dies wird wichtig, wenn versucht wird, die Zeit zwischen zwei Datenpunkten zu bestimmen, was zum Beispiel verwendet werden könnte, um die Zeit herauszufinden, die eine Wellenform oberhalb der Schwelle verbringt.
  • Das Folgende ist eine Version, wie die Zeitdifferenz zwischen zwei Adressen A1 und A2 herausgefunden werden könnte.
  • Figure 00190001
  • Oder unter der Verwendung von Verschiebungen, ΔA = A1 – (A1 >> 4) – [A2 – (A2 >> 4)] (1)
  • Da alle 200 ns drei Spannungsabtastungen gelesen werden, beträgt die Zeit zwischen den Abtastungen 66,6667 ns. Dies ist nicht präzise (siehe unten), für die Zwecke dieser Berechnung wird aber angenommen, dass die Berechnung dennoch funktioniert. Die Zeit zwischen den zwei Punkten kann wie folgt erhalten werden: Δt = ΔA·66,66667 ns
  • Eine weitere Komplikation entsteht als ein Ergebnis des Überlaufens. Daher, falls die Zahl negativ ist: Δt = 0xF0000 + Δt
  • Dies ergibt die Zeitdifferenz zwischen zwei beliebigen Datenpunkten, in Wirklichkeit sind jedoch alle Zeitstempel für jede Spannungsdreiergruppe Va, Vb und Vc dieselben. Diese Tatsache kann verwendet werden, um die genaue Zeit zwischen zwei Datenpunkten herauszufinden, ohne auf Gleitkommaarithmetik zurückzugreifen.
  • Die drei Spannungen liegen nicht wirklich 66,6667 ns auseinander; Vb und Vc teilen sich den gleichen Zeitstempel wie Va, die ihnen direkt vorausgeht. Gleichung (1) kann modifiziert werden, um dies widerzuspiegeln. In Gleichung (2) sind die Ausdrücke [Ax – (Ax >> 4)]/3 immer genau und weisen keinen Rest auf. Δt = {[A1- (A1 >> 4)]/3 – [A2 – (A2 >> 4)]/3}·200 ns (2)
  • Falls ein Überlaufen auftritt, dann gilt dieselbe Logik wie bei der vorherigen Berechnung, mit der Ausnahme, dass der Ausdruck 0xF0000 zu 0x50000 geändert werden muss, da alles durch 3 geteilt wurde. Die Zeitdifferenz beträgt dann: Δt = 0x50000 + Δt
  • Der obige Abschnitt gilt lediglich für das Adressieren des ATCI. Der Sharc 12 liest die Daten in dem Erfassungsspeicher durch den Port des Registers des Erfassenspeichers. Der ATCI wird automatisch inkrementiert und erfordert keine Intervention seitens des Sharc 12. Sobald sich die Daten in dem Speicher des Sharc (12) befinden, sehen sie jedoch wie eine zusammenhängende Anordnung aus und es gilt keine der obigen Regeln. Die Daten werden in den zusammenhängenden Speicheradressen gespeichert, wobei keine Adressen übersprungen werden. Da der Zeiger des Erfassenspeichers lediglich 16 Bit breit ist, werden die vier niedrigstwertigen Bit der Speicheradresse aus 20 Bit gelöscht, wenn der Zeiger geschrieben wird. Dies heißt, dass Va immer der erste Kanal ist, der von dem Erfassungsspeicher gelesen wird (Va – Vb im differentiellen Modus).
  • Das Schwellen-FIFO 50 enthält Adressen aus 16 Bit, die ein einfacheres Verfahren des Herausfindens der Differenz zwischen zwei beliebigen Punkten, die darin enthalten sind, nahe legen. Jede Zählung in diesem FIFO 50 repräsentiert 1 μs. Es befinden sich 15 Datenpunkte innerhalb jeder Zählung, aber dies ist wahrscheinlich eine höhere Auflösung, als für die meisten Fälle benötigt wird. Die Zeitdifferenz zwischen zwei beliebigen Datenpunkten, die um mehr als 1 μs getrennt sind, kann schnell auf innerhalb 1 μs bestimmt werden, indem einfach die Werte in dem 16-Bit-Schwellen-FIFO linear subtrahiert werden. Dies wird wahrscheinlich für die meisten Zwecke ausreichen und vermeidet das Problem, das Überspringen von jedem 16. Wort berücksichtigen zu müssen.
  • Register 18 des Interface-FIFO
    • 16 Bit
    • Adresse = 0x1000003
  • Lesen/Schreiben
  • Dieses Register wird für alle Kommunikationen mit dem Coldfire-Hauptprozessor 14 verwendet. Es dient als ein Port zu einem FIFO 18 von 768·16, das für alle Coldfire-/Sharc-Kommunikationen verwendet wird. Es wird ein Software-Protokoll verwendet, um die Nachrichten, die bei den Kommunikationen verwendet werden, zu definieren.
  • Hardware-Entscheidung stellt sicher, dass zu jedem gegebenen Zeitpunkt lediglich der Coldfire 14 oder der Sharc 12 über die Steuerung dieses FIFO 18 verfügen. Es werden verschiedene Statusbit verwendet, um anzufordern und zu bestimmen, welcher Prozessor über die Steuerung des FIFO 18 verfügt.
  • Eine Erklärung der Entscheidung über dieses FIFO ist in dem Abschnitt über das Steuerprotokoll des Bus-Interface-FIFO erklärt.
  • Statusregister 48
    • Größe des Registers: 16 Bit
    • Adresse = 0x1000004
  • Lesen/Schreiben
  • Dies ist eines von zwei Statusregistern und enthält verschiedene Statusbit, die bei dem Betrieb des ATCI verwendet werden. Eine Tabelle dieser Bit ist unten gezeigt: Tabelle 3 ATCI-Statusbit
    Bit-Nr. Name Lesen/Schreiben Beschreibung
    15 Bit A SignalColdifre L/S signalisiert dem Coldfire, dass ein Trigger aufgetreten ist
    14 Bit B Signal Coldfire L/S alternierendes Coldfire-Signal-Bit
    13 Bit Ram Select L/S wählt den Erfassenspeicher für den Sharc zum Lesen aus
    12 EnAqr L/S aktiviert die Datenerfassung
    11 DoDiff L/S wählt den Differenz- oder den Ursprungsdatenmodus aus
    10 Slow ADC FIFO full schreibgeschützt signalisiert, wenn das 8-Wort-FIFO der langsamen ADC voll ist
    9 CVown Bus schreibgeschützt '1' bedeutet, dass der Sharc das Interface-FIFO steuert
    8 IfceFIFOempty schreibgeschützt '1' bedeutet, dass das Interface-FIFO leer ist
    7 IfceFIFOfull schreibgeschützt '1' bedeutet, dass das Interface-FIFO voll ist
    6 EnVaCtr L/S aktiviert/löscht den Schwellenzähler von Kanal A
    5 EnVbCtr L/S aktiviert/löscht den Schwellenzähler von Kanal B
    4 EnVcCtr L/S aktiviert/löscht den Schwellenzähler von Kanal C
    3 Slow FIFO IRQ L/S liest:'1' ⇒ FIFO der langsamen A/D voll, IRQ aktiv liest:'0' ⇒ FIFO der langsamen A/D voll, IRQ inaktiv schreibt: '1' ⇒ aktiviert FIFO-IRQ der langsamen A/D schreibt: '0' ⇒ deaktiviert und löscht Slow FIFO IRQ
    2 Bit Trigger IRQ L/S liest: '1' ⇒ Trigger-IRQ ist aufgetreten liest '0' ⇒ Trigger-IRQ ist nicht aktiv schreibt: '1' ⇒ tritt in den normalen IRQ-Modus ein, keine Auswirkung schreibt: '0' ⇒ löscht und deaktiviert TrigIRQ, tritt in den Auto-IRQ/DMA-Modus ein
    1 OwnGoesHiIRQ L/S liest: '1' ⇒ CVownsBus ↑ IRQ ist aufgetreten liest '0' ⇒ CVownsBus IRQ ist nicht aktiv schreibt: '1' ⇒ keine Auswirkung schreibt: '0' ⇒ löscht und deaktiviert OwnsGoesHiIRQ
    0 ownGoesLoIRQ L/S liest: '1' ⇒ CVownsBus ↓ IRQ ist aufgetreten liest '0' ⇒ CVownsBus IRQ ist nicht aktiv schreibt: '1' ⇒ keine Auswirkung schreibt: '0' ⇒ löscht und deaktiviert OwnsGoesHiIRQ
  • Tabelle 4 Statusbit beim Rücksetzen
    Figure 00240001
  • Schreiboperationen an das Statusregister:
  • Zu jedem Zeitpunkt beim Schreiben an das Statusregister, muss Acht gegeben werden, um sicherzustellen, dass die vier niedrigstwertigen Bit nicht versehentlich gelöscht werden. Diese vier Bit steuern die Unterbrechungen, und wird an eines von ihnen eine '0' geschrieben, werden jedwede hängigen Unterbrechungen sofort gelöscht. Da andere Bit dieses Register teilen, gibt es sehr viele Schreiboperationen, die nicht den Unterbrechungen zugehörig sind. Wenn das Statusregister geschrieben wird, muss die Software sichergehen, dass an jedes dieser Bit, das nicht gelöscht werden soll, eine '1' geschrieben wird, da ansonsten hängige Unterbrechungen versehentlich gelöscht werden können. Eine '1' kann keine Unterbrechung verursachen, aber eine '0' löscht immer eine Unterbrechung.
  • Das Bit A Signal Coldfire
    • Bit: 15
  • Lesen/Schreiben
    • Status beim Rücksetzen: '0'
  • Dieses Bit wird verwendet, um dem Coldfire-Hauptprozessor 14 zu signalisieren, dass ein Ereignis aufgetreten ist, das einen Datentransfer durch das Interface-FIFO 18 erfordert. Der Hauptzweck des Bit ist, dem Coldfire 14 zu signalisieren, dass ein Triggerereignis aufgetreten ist, allerdings könnte das Bit auch für zusätzliche Zwecke verwendet werden. Dieses Bit steht unter der Software-Steuerung des Sharc 12 und kann für jedweden Zweck verwendet werden. Das Einstellen dieses Bit stellt das Bit 15 der Daten der langsamen A/D ein, wenn der Coldfire-DMA es liest. Dies kann als ein Synchronisationspunkt verwendet werden, um zu signalisieren, wenn das Ereignis in dem Datenstrom der langsamen A/D aufgetreten ist.
  • Das Schreiben an dieses Bit aktualisiert nicht direkt die Daten, die an den Coldfire 14 gehen. Es sollte als eine Anforderung zum Aktualisieren betrachtet werden. Das tatsächliche Schreiben des Bit, das der Coldfire 14 liest, wird während des ersten Lesepulses der Lesesequenz der langsamen ADC aus 8 Wörtern des Coldfire vollbracht. Da der Sharc sofort dieselben Daten liest, nachdem das Slow ADC FIFO gefüllt ist, passen die Daten, die zu dem Coldfire 14 gehen, mit den Daten des Sharc 12 zusammen. Auf Grund dieser Verzögerung kann es zwischen der Anforderung, dass sich das Bit ändern soll, und wenn es sich tatsächlich ändert, eine Verzögerung von bis zu 32 μs geben.
  • Das Bit B Signal Coldfire
    • Bit: 14
  • Lesen/Schreiben
    • Status beim Rücksetzen: '0'
  • Dieses Bit ist ein Universalbit, das zur Signalisierung an den Coldfire 14 für jeden Zweck verwendet werden kann. Es ist nicht synchronisiert, wie das Bit A Signal Coldfire, weshalb Acht gegeben werden muss, wenn eine Synchronisierung erforderlich ist.
  • Das Bit Ram Select
    • Bit: 13
  • Lesen/Schreiben
    • Status beim Rücksetzen: '1'
  • Das Bit Ram Select wählt aus, welches Erfassungs-DRAM 70, 72 mit dem Sharc 12 verkoppelt wird. Eine '1' wählt einen der Speicher aus, welcher mit dem Sharc verkoppelt werden soll, während der andere kontinuierlich Daten von den schnellen A/D-Wandlern erfasst. Eine '0' tauscht die Funktion jedes Speichers aus. Die zwei Erfassungsspeicher sind funktional äquivalent und es spielt keine Rolle, welcher aktiv Daten erfasst und welcher zum Lesen durch den Sharc zur Verfügung steht.
  • Alles, was erforderlich ist, um die zwei Erfassungsspeicher auszutauschen, ist, dieses Bit zu invertieren. Eine Schreiboperation an diesem Bit führt die Umschaltung nicht wirklich aus. Sie sollte als eine Anforderung zum Umschalten betrachtet werden. Die Umschaltung tritt nicht sofort auf, nachdem das Bit invertiert wurde. Sie tritt lediglich dann auf, wenn die niedrigstwertige Tetrade des Adresszählers des Erfassenspeichers ein Vielfaches von drei ist. Dies stellt sicher, dass alle drei Kanäle in demselben physikalischen DRAN und nicht über zwei Vorrichtungen verstreut sind. Auch andere Dinge, wie etwa ein Auffrischen, das auftritt, wenn die Umschaltung angefordert wird, verzögern die tatsächliche Umschaltung. Aus diesem Grund ist es wichtig, das Bit Ram Select zu lesen, bevor auf den Erfassungsspeicher zugegriffen wird, um sicherzugehen, dass die Umschaltung wirklich aufgetreten ist. Eine Leseoperation dieses Bit reflektiert immer, welcher Speicher mit dem Sharc verkoppelt ist.
  • Auffrischen des Erfassungsspeichers
  • Wie zuvor bemerkt, verwendet der Erfassungsspeicher die dynamischen Speichervorrichtungen 70, 72. Sie bieten eine weitaus höhere Dichte bei weitaus geringeren Kosten als jedweder äquivalente statische Speicher. Sie erfordern jedoch konstantes Auffrischen, ansonsten verlieren sie ihre Daten.
  • Der ATCI 10 sorgt für all dies und ist gewöhnlicherweise dem Sharc 12 gegenüber transparent. Das einzige Mal, wenn sich der Sharc 12 um das Auffrischen sorgen muss, ist während einer Speicherumschaltung.
  • Wenn der ATCI Daten von den A/D-Wandlern hoher Geschwindigkeit zu dem Erfassungsspeicher transferiert, unterscheidet sich Technik, die verwendet wird, gänzlich von den Sharc-Zugriffen auf den Erfassungsspeicher. Um die Erfordernisse des Auffrischens des DRAM zu befriedigen, werden die zwei Speicher 70, 72 unterschiedlich aufgefrischt.
  • Die Erfassungsspeichervorrichtung wird mit einer 16-mal so schnellen Rate wie der Erfassungsspeicher, welcher mit dem Sharc verkoppelt ist, aufgefrischt.
  • Die Auffrischrate des Speichers (?), welcher mit dem Sharc 12 verkoppelt ist, ist fast (aber nicht ganz) zweimal so schnell wie nötig ist, um die Speicherspezifikation zu erfüllen. Die Speichervorrichtung, die an den A/D-Wandlern hoher Geschwindigkeit angesetzt ist, ist etwa 16-mal schneller als nötig.
  • Der entscheidende Punkt, an den beim Auffrischen gedacht werden muss, ist, dass jede Zeile des Erfassungsspeichers mindestens einmal alle 16 ms aufgefrischt werden muss. Der TCV-Erfassungsspeicher enthält 1 024 Zeilen. Jede Zeile des Speichers, welcher mit dem Sharc verkoppelt ist, wird mindestens einmal alle 8,192 ms aufgefrischt (fast zweimal so schnell wie die erforderlichen 16 ms). Jede Zeile des Speichers, welcher mit den A/D-Wandlern verkoppelt ist, wird einmal alle 1,024 ms aufgefrischt (geringfügig weniger als 16-mal so schnell wie die Spezifikation erfordert).
  • Falls der Speicher nicht umgeschaltet wird, wird die Auffrischspezifikation klar erfüllt. Falls der Speicher einmal umgeschaltet wird, wird die Spezifikation ebenfalls erfüllt. Es wird angenommen, dass sich die Zeilenadresse A in dem Speicher befindet, welcher gegenwärtig mit dem Sharc verkoppelt ist, und sie ist genau die nächste Stelle, die für das Auffrischen eingeplant ist. Das heißt, dass sie für etwa 8,192 ms nicht aufgefrischt worden ist. Kurz bevor das Auffrischen auftritt, wird der Speicher umgeschaltet, so dass nun A von den A/D-Erfassungsschaltungsanordnungen gesteuert wird.
  • Nun wird der schlimmste Fall angenommen, dass der Speicherzähler, welcher den A/D-Erfassungsspeicher steuert, gerade erst das Auffrischen der Adresse A beendet hat, bevor die Umschaltung erfolgt ist. Folglich ist, wenn die Umschaltung erfolgt, die erste Zeile, die aufgefrischt wird, A + 1. Das heißt, dass für weitere 1,024 ms – die Auffrischperiode der A/D-Wandler-Seite des Erfassungsspeichers – nicht zu erwarten ist, dass A aufgefrischt wird. Im schlimmsten Fall beträgt somit die maximale Gesamtzeit, um die die Zeilenadresse A auf ein Auffrischen warten muss, Folgendes: tmax = 8,192 ms + 1,024 ms tmax = 9,216 ms
  • Diese liegt weit unter der erforderlichen Auffrischzeit von 16 ms. Es kann ein ähnliches Argument verwendet werden, um zu zeigen, dass eine Zeilenadresse, die sich gegenwärtig in dem Adressraum des Sharc befindet, im schlimmsten Fall dieselbe maximale Zeit aufweisen wird, falls sie zu dem Adressraum der A/D-Wandler umgeschaltet wird.
  • Nun wird der Fall von zwei Speicherumschaltungen betrachtet. Ein längeres Warten als 1,024 ms für die zweite Umschaltung wird immer funktionieren, da alle Speicherstellen in beiden Adressräumen garantiert in 2,048 ms aufgefrischt werden (Zeit, die für zwei Umschaltungen erforderlich ist).
  • Es gibt viele weitere komplizierte Szenarios, aber dies ist womöglich die einfachste Regel, um zu garantieren, dass alle Zeilen in beiden Erfassungsspeichern aufgefrischt werden:
    Es sollte sichergestellt werden, dass die minimale Zeit zwischen Speicherumschaltungen mehr als 1,024 ms beträgt.
  • Das Bit EnAqr
    • Bit: 12
  • Lesen/Schreiben
    • Status beim Rücksetzen: '1'
  • Das Bit EnAqr wird verwendet, um die Datenerfassung von den A/D-Wandlern hoher Geschwindigkeit an den Erfassungsspeicher zu aktivieren. Der ATCI wird das Erfassen von Daten direkt nach einem Rücksetzen beginnen, da die Vorgabe dieses Bit beim Rücksetzen eine '1' ist. Normalerweise sollte dieses Bit nie eine '0' sein, aber es kann Umstände geben, wenn es nützlich sein könnte, die Erfassung zu stoppen. Falls zum Beispiel ein sehr langes Festhalten gewünscht ist, könnte es einem der Erfassungsspeicher erlaubt werden, sich komplett zu füllen. Dann könnte eine Speicherumschaltung befohlen und der andere Speicher komplett gefüllt werden. Nachdem dieser Speicher komplett gefüllt ist, könnte das Bit EnAqr gelöscht werden, wodurch die Erfassung gestoppt wird.
  • Diese Technik würde die Speicherung von sehr langen Datenströmen erlauben, da die ganzen 2 MWort des Erfassungsspeichers in Verwendung sein würden. Auf diese Art und Weise könnten 131 ms oder mehr als 8 ganze Zyklen an Daten hoher Geschwindigkeit gespeichert werden.
  • Wie das Bit Ram Select, erfolgt das Bit EnAqr nicht sofort. Die Regeln, die für das Bit Ram Select gelten, gelten auch für das Bit EnAqr.
  • Das Bit DoDiff
    • Bit: 11
  • Lesen/Schreiben
    • Status beim Rücksetzen: '0'
  • Das Bit DoDiff stellt den ATCI-Triggermodus ein. Der ATCI weist zwei Triggermodi auf – absolut und differentiell. Beim Rücksetzen wird der Triggermodus auf absolut eingestellt (Bit DoDiff = '0'). Der absolute Triggermodus verwendet die tatsächlichen Daten von den A/D-Wandlern hoher Geschwindigkeit, um seine Triggerberechnung durchzuführen. Der differentielle Triggermodus (Bit DoDiff = '1') verwendet die Differenz zwischen den Kanälen, um die Berechnung durchzuführen. Die drei Differenzen, die verwendet werden, sind:
    Va – Vb
    Vb – Vc
    Vc – Va
  • In beiden Betriebsmodi werden immer eher tatsächliche Datenpunkte direkt von den A/D-Wandlern mit langsamer Geschwindigkeit (an bipolare Daten angepasst) als berechnete Werte in dem Erfassungsspeicher platziert. Zum Beispiel wird, selbst wenn die Triggerberechnung Vb – Va verwenden würde, um einen Triggerpunkt zu bestimmen, dieser berechnete Wert nicht in dem Erfassungsspeicher platziert.
  • Das Bit Slow ADC FIFO full
    • Bit: 10 schreibgeschützt
    • Status beim Rücksetzen: '0'
  • Dieses Bit signalisiert, wenn das 8-Wort-FIFO 28 der langsamen A/D voll ist. Falls es voll ist, müssen die Daten vor dem nächsten Coldfire-DMA-Zyklus gelesen werden (innerhalb 32 μs), ansonsten gehen die Daten verloren.
  • Das Bit CVownBus
    • Bit: 9 schreibgeschützt
    • Status beim Rücksetzen: '1'
  • Dieses Bit wird verwendet, um zu bestimmen, ob der Coldfire 14 oder der Sharc 12 das Interface-FIFO 18 steuert. Eine Entscheidungsschaltung auf der Digitalplatte des Grundzählers steuert das Bit. Die Entscheidungsschaltung gewährt die Steuerung über das Interface-FIFO 18 basierend darauf, welcher Prozessor die Steuerung zuerst angefordert hat. Siehe den nachfolgenden Abschnitt über das Steuerprotokoll des Bus-Interface-FIFO hinsichtlich einer Beschreibung des Betriebs der FIFO-Entscheidungsschaltung.
  • Das Bit IfceFIFOempty
    • Bit: 8 schreibgeschützt
    • Status beim Rücksetzen: '1'
  • Dieses Bit wird verwendet, um zu bestimmen, ob das Interface-FIFO 18 leer ist. Eine '1' zeigt an, dass das FIFO 18 leer ist und keine Daten zum Kommunizieren zu oder von dem Coldfire vorhanden sind. Eine '0' zeigt an, dass Daten in dem FIFO 18 vorhanden sind. Ein Protokoll bestimmt, welche Handlung unternommen werden muss.
  • Das Bit IfceFIFOfull
    • Bit: 7 schreibgeschützt
    • Status beim Rücksetzen: '1'
  • Dieses Bit wird verwendet, um zu bestimmen, ob das Interface-FIFO 18 voll ist. Eine '1' zeigt an, dass das FIFO 18 voll ist.
  • Das Bit EnVaCtr
    • Bit: 6
  • Lesen/Schreiben
    • Status beim Rücksetzen: '0'
  • Dieses Bit aktiviert oder löscht den Va-Schwellenzähler. Eine '0' löscht den Zähler asynchron und eine '1' aktiviert ihn, um unter der Verwendung der Triggeralgorithmusregeln zu zählen. Nach einer Hartrücksetzung wird der Zähler deaktiviert und zurückgesetzt und muss von der Software aktiviert werden. Siehe Betrieb des Dauerzählers hinsichtlich einer Beschreibung des Betriebs des Schwellenzählers.
  • Das Bit EnVbCtr
    • Bit: 5
  • Lesen/Schreiben
    • Status beim Rücksetzen: '0'
  • Dieses Bit aktiviert oder löscht den Schwellenzähler des Spannungskanals B. Eine '0' löscht den Zähler asynchron und eine '1' aktiviert ihn, um unter der Verwendung der Triggeralgorithmusregeln zu zählen. Nach einer Hartrücksetzung wird der Zähler deaktiviert und zurückgesetzt und muss von der Software aktiviert werden. Siehe Betrieb des Dauerzählers oben hinsichtlich einer Beschreibung des Betriebs des Schwellenzählers.
  • Das Bit EnVcCtr
    • Bit: 4
  • Lesen/Schreiben
    • Status beim Rücksetzen: '0'
  • Dieses Bit aktiviert oder löscht den Schwellenzähler des Spannungskanals C. Eine '0' löscht den Zähler asynchron und eine '1' aktiviert ihn, um unter der Verwendung der Trigger-Algorithmus-Regeln zu zählen. Nach einer Hartrücksetzung wird der Zähler deaktiviert und zurückgesetzt und muss von der Software aktiviert werden. Siehe Betrieb des Dauerzählers oben hinsichtlich einer Beschreibung des Betriebs des Schwellenzählers.
  • Das Bit Slow FIFO IRQ
    • Bit: 3
  • Lesen/Schreiben
    • Status beim Rücksetzen: '0'
  • Die Stifte IRQ2 und DMAR2 des Sharc sind auf der Leiterplatte kurzgeschlossen. Ob ein Eingangsstimulus verursacht, dass als Folge ein DMA oder ein IRQ auftritt, hängt von den Einstellungen der DMA- und IRQ-Aktivierungsbit des Sharc ab. Das Bit Slow FIFO IRQ ist ein Mehrzweckbit und wird verwendet, um entweder den Unterbrechungsstatus des FIFO 28 der langsamen ADC zu bestimmen oder DMA-Sequenzen ablaufen zu lassen. Das Bit weist unterschiedliche Bedeutungen auf, abhängig davon, ob es gelesen oder geschrieben wurde. Ein normaler IRQ-Betrieb der FIFO-Unterbrechung tritt auf, wenn eine '1' an dieses Bit geschrieben wird. In diesem Modus wird eine Unterbrechung an den Sharc gesendet, wenn das FIFO 28 der langsamen ADC gefüllt ist. Das Lesen einer '1' zeigt an, dass das FIFO (enthält 8 Wörter) voll ist und verursacht hat, dass eine Unterbrechungsanforderung an den Sharc gesendet wurde. Da diese Unterbrechung die schnellste Antwortzeit erfordert, wird sie nicht mit anderen geteilt, sondern direkt mit dem Sharc IRQ 2 verkoppelt. Es sollte beachtet werden, dass das Schreiben einer '1' an dieses Bit eine Unterbrechung aktiviert, diese jedoch nicht verursacht. Beim Lesen des Bit wird nicht der Status dieses Bit gelesen, sondern eher der Unterbrechungsstatus selbst. Das Lesen einer '1' bedeutet, dass eine Unterbrechung des FIFO 28 der langsamen ADC aufgetreten ist. Das Lesen einer '0' bedeutet, dass keine Unterbrechung aufgetreten ist.
  • Obwohl Unterbrechungen verwendet werden können, um Daten zwischen dem FIFO der langsamen ADC und dem Sharc zu transferieren, bewerkstelligt der DMA dasselbe mit weitaus höherer Effizienz. Das Einstellen des Bit Slow FIFO IRQ auf '0' (Vorgabe) stellt den ATCI auf seinen DMA-Modus FIFO der langsamen ADC ein. Der DMA-Modus ist der bevorzugte Betriebsmodus, da er für den Betrieb des Sharc am wenigstens betriebsunterbrechend ist. Das Schreiben einer '0' an das Bit deaktiviert und löscht die Unterbrechung und verursacht, dass der ATCI in den DMA-Modus eintritt.
  • In diesem Modus ist der Datentransfer von dem ATCI zu dem internen Datenspeicher des Sharc gänzlich automatisch, nachdem die DMA-Verkettungstabelle geladen und der DMA gestartet wurde. Der DMA-Transfer tritt ohne jegliche Intervention des Sharc auf, mit Ausnahme von DMA-Unterbrechungen, die in der Verkettungstabelle eingestellt sind, um in programmierbaren Intervallen das Verarbeiten der Daten zu ermöglichen (siehe das Sharc-Anwender-Handbuch). Der Betrieb läuft wie folgt ab:
    Ungefähr alle 32 μs soll der Sharc 12 acht Wörter an Daten aus dem FIFO der langsamen ADC 28 einlesen. Dies ist ein kontinuierliches Erfordernis hoher Priorität ohne Rücksicht auf jedwede anderen Aufgaben, die der Sharc ausführen mag. Der Overhead, der erforderlich ist, diese einfache Datenbewegung mit einem IRQ auszuführen ist sehr hoch. Eine viel effizientere Art und Weise, dies zu bewerkstelligen, ist, einen der externen DMA-Kanäle des Sharc zu verwenden. Für diesen Zweck wird der externe Hardware-DMA-Kanal 2 des Sharc (der externe Kanal höchster Priorität) verwendet. Aus einem unerklärlichen Grund verkoppelt Analog Devices den Hardware-DMA-Kanal 2 (DMAR2-Stift auf dem Chip) mit den externen DMA0-Variablen in der Makrodatei der 'C'-Definitionen des Sharc. In Bezug auf die Software ist der externe DMA-Kanal höchster Priorität '0' und das ist derjenige, der für den DMA der Daten geringer Geschwindigkeit verwendet wird.
  • Jedes Mal, wenn das FIFO 28 der langsamen ADC gefüllt wird, sendet der ATCI acht DMA-Anforderungen an den Sharc 12. Jede Anforderung hat zur Folge, dass der Sharc ein Word aus dem FIFO liest. Nach acht Leseoperationen terminiert der ATCI alle weiteren Anforderungen bis zur nächsten Grenze von 32 μs.
  • Das FIFO 28 der langsamen ADC ist genau wie jede andere Speicheradresse und kann mit Software gelesen werden. Wenn es jedoch mit dem DMA verwendet wird, muss Acht gegeben werden, um sicherzustellen, dass Daten nicht ungewollt verfälscht werden. Der DMA beginnt den Betrieb, wenn das FIFO der langsamen ADC gefüllt wird. Von diesem Punkt an wird der ATCI jedes Mal, wenn der Sharc die Adresse des FIFO der langsamen ADC liest, einen neuen DMA-Wort-Transfer anfordern (acht Mai pro Zyklus von 32 μs). Dies geschieht, ob die Leseoperation die Folge einer Software-Anweisung oder eines DMA-Transfers war. Aus diesem Grund müssen Software-Leseoperationen des FIFO zeitlich abgepasst sein, so dass sie DMA-Transfers nicht behindern, ansonsten sind ungewollt verfälschte Daten die Folge.
  • Falls es zum Beispiel jemals nötig ist, den DMA für einen einzigen Zyklus von 32 μs auszuschalten, müssen alle Einrichtungen (das Aktivieren von Unterbrechungen, das Deaktivieren des DMA etc.) innerhalb des Fensters der Inaktivität von 25 μs bewerkstelligt werden, ansonsten sind ungewollt verfälschte Daten die Folge.
  • Um den DMA-Modus zu verwenden, wird der externe Software-DMA-Kanal 0 des Sharc eingerichtet und für den „getakteten privilegierten Modus" aktiviert. Dies wird ihm erlauben, die Signale von dem ATCI als DMA-Anforderungen zu interpretieren. Es sollte auch sichergestellt werden, dass der externe IRQ 2 des Sharc deaktiviert ist (in dem Register zum Aktivieren der Sharc-IRQ auf '0' einstellen), und das Bit Slow FIFO IRQ wird auf '0' eingestellt (Vorgabe).
  • Das Einrichten der DMA-Verkettungstabelle, das Starten des DMA und das Einrichten des Speichers für kurze Wörter ist nicht unkompliziert, aber ich habe einen Code, der das bewerkstelligt und habe verifiziert, dass die Transfers sehr schnell sind und eine höhere Priorität als die anderen externen DMA-Kanäle aufweisen. Der Sharc hat vor in Gang befindlichen DMA1-Transfers automatisch Vorrang (wie etwa einem, der von dem ATCI-Erfassungsspeicher oder dem Interface-FIFO in Gang befindlich ist) und liest die acht Datenwörter mit langsamer Geschwindigkeit, bevor er mit dem gegenwärtigen DMA1-Transfer fortfährt.
  • Falls nicht auf den ATCI zugegriffen wird, ist die Transfergeschwindigkeit aller acht Wörter etwa 800 ns. Falls auf den ATCI zugegriffen wird (wie etwa unter Verwendung des DMA 1, um Daten zur gleichen Zeit, wie der DMA 0 ausgeführt wird, aus dem Erfassenspeicher zu lesen), ist die Datenrate ein wenig langsamer. Auf Grund des Sharc-Entscheidungsschemas sind, falls der DMA 1 ausgeführt wird, die DMA-1- und DMA-0-Transfers in der Tat verschachtelt, bis die acht Datenwörter mit langsamer Geschwindigkeit vollständig transferiert wurden. Aber selbst mit den Entscheidungsverzögerungen geschieht der Transfer aller acht Wörter weniger als 1,5 μs ab dem Zeitpunkt, wenn das FIFO der langsamen ADC gefüllt ist. Das heißt, dass im schlimmsten Fall lediglich etwa 7 oder 8 μs des Gesamtbetrags von 32 μs verwendet werden, um die Daten von dem ATCI zu dem internen Speicher des Sharc zu transferieren, selbst wenn die Coldfire-DMA-Transferzeit umfasst ist. Die restlichen 24 bis 25 μs sollten ausreichen, um jedwede DMA-verwandten Unterbrechungen, die in der DMA-Verkettungstabelle geladen sind, zu verarbeiten.
  • Unter der Verwendung der DMA-„Verkettung” kann eine beliebige Anzahl an Blöcken aus 8 Wörtern ohne eine direkte Programmintervention oder sogar -kenntnis in den internen Speicher geladen werden. Dies ist ein weitaus effizienteres Mittel zum Bewegen der Daten. Falls es richtig gemacht wird, kann die Verkettungstabelle bei der Initialisierung eingerichtet werden und danach unberührt belassen werden. DMA-IRQ können in verschiedene Teile der Tabelle eingefügt werden (zum Beispiel bei jedem Viertel oder jeder Hälfte eines Zyklus), um den Prozessor zu warnen, die vorherigen Daten zu verarbeiten. In diesem Modus arbeiten der Sharc 12 und der ATCI 10 transparent zusammen, um die Daten der langsamen ADC mit minimaler Intervention der CPU in den Speicher zu laden.
  • Das Bit Trigger IRQ
    • Bit: 2
  • Lesen/Schreiben
    • Status beim Rücksetzen: '0'
  • Das Bit 2 wird verwendet, um zu bestimmen, ob eine durch ein programmiertes Triggerereignis verursachte Unterbrechung aufgetreten ist. Das Lesen einer '1' bedeutet, dass ein Trigger-IRQ aufgetreten ist. Eine '0' zeigt an, dass kein Triggerereignis aufgetreten ist.
  • Das Schreiben an dieses Bit ist nicht ganz unkompliziert (siehe Abschnitt über die Schreiboperationen an das Statusregister). Das Schreiben einer '0' an das Bit löscht und deaktiviert die Unterbrechung. Das Schreiben einer '1' verursacht nicht, dass eine Unterbrechung auftritt, aber aktiviert Hardware, um eine Unterbrechung zu ermöglichen. Dies ist eine wichtige Unterscheidung und wenn das Bit nicht richtig programmiert ist, wird ein versehentlicher Verlust von Unterbrechungen auftreten. Um also für die nächste Unterbrechung bereit zu sein, muss dieses Bit zuerst gelöscht und dann eingestellt werden. Dieser IRQ, das OwnGoesHiIRQ und das OwnGoesLoIRQ teilen sich alle die Sharc-IRQ1, somit muss die Firmware bestimmen, welches Ereignis die Unterbrechung verursacht hat.
  • Das Bit OwnGoesHiIRQ
    • Bit: 1
  • Lesen/Schreiben
    • Status beim Rücksetzen: '0'
  • Dieser IRQ wird bereitgestellt, um dem Sharc 12 zu ermöglichen, ohne kontinuierliches Abfragen des Bit CvownBus Daten zu verarbeiten. Das Steuerprotokoll des Bus-Interface-FIFO stellt eine Art und Weise des Verwendens der Flanken des Bit CvownBus bereit, um zu bestimmen, wenn Daten von dem Coldfire übertragen oder empfangen werden können. Dieser IRQ könnte verwendet werden, um zu bestimmen, wenn der Coldfire das Übertragen einer Nachricht an den Sharc 12 beendet hat. Falls der Coldfire 14 das Interface-FIFO besitzt, ist das Bit CvownBus niedrig und es ist für den Sharc 12 nicht möglich, die Steuerung über das Bus wiederzuerlangen, bis der Coldfire es durch das Schreiben einer '1' an sein Anforderungs-Bit freigibt. Der Sharc kann jedoch weiterhin eine '0' an sein Bit Flag 10 schreiben.
  • Wenn der Coldfire das FIFO freigibt, wird diese Unterbrechung ausgelöst (falls aktiviert), da das Signal des CvownsBus von L zu H geht, wobei angedeutet wird, dass der Sharc nun über die Steuerung des Interface-FIFO verfügt.
  • Dieser IRQ, der Trigger-IRQ und das OwnGoesIRQ teilen sich alle die Sharc-IRQ1, somit muss die Firmware bestimmen, welches Ereignis die Unterbrechung verursacht hat.
  • Das Bit OwnGoesLoIRQ
    • Bit: 0
  • Lesen/Schreiben
    • Status beim Rücksetzen: '0'
  • Dieser IRQ funktioniert genau wie das OwnGoesHiIRQ, verwendet jedoch die H-zu-L-Flanke des Signals des CVownBus. Um diesen IRQ zu verwenden, wäre das Bit CvownBus anfangs eine '1', was bedeutet, dass der Sharc über die Steuerung des Bus verfügt. Der Sharc würde dann sein Bit Flag 10 auf '1' einstellen. Dies allein würde nicht verursachen, dass sich der FIFO-Besitz ändert. Der Sharc würde die Steuerung über das FIFO behalten, bis der Coldfire sein Anforderungsbit auf '0' einstellt. Dies würde verursachen, dass sich der FIFO-Besitz ändert, und das Bit CvownBus würde von H zu L übergehen und das Auslösen dieses IRQ verursachen.
  • An diesem Punkt würde der Coldfire über die Steuerung des Bus verfügen und der Sharc würde keinen Zugriff auf das FIFO haben. Dies würde lediglich signalisieren, dass der Coldfire nun etwas mit dem FIFO macht, aber nicht fertig ist. Der Sharc könnte diese Unterbrechung verwenden, um dann das OwnGoesHiIRQ zu aktivieren und sein Anforderungsbit auf '0' einzustellen. Dies würde das OwnGoesHiIRQ triggern, wenn der Coldfire die Verwendung des FIFO beendet hat.
  • Dieser IRQ, der Trigger-IRQ und das OwnGoesHiIRQ teilen sich alle die Sharc-IRQ1, somit muss die Firmware bestimmen, welches Ereignis die Unterbrechung verursacht hat.
  • Register (50) des Schwellen-FIFO
    • Größe des Bus: 16 Bit
    • Adresse = 0x1000005 schreibgeschützt
  • Jedes Mal, wenn ein Übergang (entweder positiv gehend oder negativ gehend) durch einen Schwellenpunkt, definiert durch das Register 40 der Spannungsschwelle und das Register 42 der Zählerschwelle, auftritt, wird ein Eintrag in diesem 21×64-Schwellen-FIFO vorgenommen. Es wird für jeden Übergang ein Eintrag vorgenommen, ob er positiv gehend oder negativ gehend ist. Zwanzig Bit des Schwellen-FIFO sind der Adresse zugewiesen, wo der Übergang auftrat, und ein Bit ist der Richtung des Übergangs zugewiesen – '1' zeigt positiv gehend an und '0' zeigt negativ gehend an. Da der ATCI 10 mit dem Sharc 12 durch einen Bus aus 16 Bit verbunden ist, werden die Daten in dem Schwellen-FIFO 18 in zwei Teile geteilt.
  • Dieses Register enthält die 16 höchstwertigen Bit der Adresse aus 20 Bit, die in dem FIFO 50 enthalten ist. Die vier niedrigstwertigen Bit der Adresse aus 20 Bit und anderer Status über das Schwellen-FIFO 50 sind in dem Statusregister 58 enthalten.
  • Das Lesen dieses Registers 50 inkrementiert automatisch den FIFO-Lesezähler, dieses Register wird gelesen, nachdem das Statusregister 58 gelesen wurde (das Lesen des Statusregisters 2 inkrementiert keine FIFO-Zeiger). Das Platzieren der 16 Bit des Registers Schwellen-FIFO in den Bitpositionen 19 bis 4 und dann das Platzieren der Bit 3 bis 0 des Statusregisters 2 in den Bitpositionen 3 bis 0 dieses neu gebildeten langen Wortes hat die Adresse aus 20 Bit eines Schwellenkreuzungspunkts in dem Erfassungsspeicher zur Folge.
  • Es können bis zu 64 Schwellenkreuzungen in dem Schwellen-FIFO gespeichert werden. Alle zusätzlichen Kreuzungen gehen verloren. Das FIFO läuft nicht über, somit gehen die Primärdaten nicht verloren, jedoch alle zusätzlichen Schwellenkreuzungen.
  • Ein Beispiel dafür, wie dieses FIFO verwendet werden könnte und wie die Adressen, die in dem FIFO gespeichert sind, interpretiert werden, ist in dem Abschnitt über das Adressieren des Erfassungsspeichers zu finden.
  • Zeigerregister (52) des Erfassenspeichers
    • Größe des Registers: 16 Bit
    • Adresse = 0x1000006
  • Lesen/Schreiben
  • Dieses Register 52 enthält die höchstwertigen 16 Bit der Adresse, die das nächste Mal, wenn der Sharc den Erfassungsspeicher durch das Register des Erfassenspeichers liest, gelesen wird. Da der Erfassungsspeicher 20 Bit erfordert, um auf seine ganze Bandbreite zuzugreifen, bedeutet dies, dass die niedrigstwertigen vier Bit der Adresse auf 0x0 eingestellt werden, wenn dieses Register geschrieben wird. Folglich tritt der Startpunkt für jede Sharc-Leseoperation des Erfassungsspeichers immer an einer 15-Wort-Grenze auf. Es können weiterhin alle Stellen des Erfassungsspeichers gelesen werden (gemäß den Einschränkungen des Abschnitts über das Adressieren des Erfassungsspeichers), jedoch tritt der Startpunkt jeder Lesesequenz immer an einer 15-Wort-Grenze auf.
  • Die Zählsequenz dieses Zeigers (einschließlich der versteckten niedrigstwertigen Tetrade) ist unten gezeigt:
    0x0, 0x1, 0x2, ... 0xd, 0xe, 0x10, 0x11, ... 0xffffd, 0xffffe, 0x0, 0x1, 0x2, ...
  • Register des MSW des Erfassenspeichers
    • Größe des Registers: 16 Bit
    • Adresse = 0x1000007 schreibgeschützt
  • Dieses Register enthält die gegenwärtigen höchstwertigen 16 Bit des Zählers des Erfassungsspeichers.
  • Register 56 des Umschaltpunkts
    • Größe des Registers: 16 Bit
    • Adresse = 0x1000008 schreibgeschützt
  • Dieses Register 56 enthält die niedrigstwertigen 16 Bit der Adresse, wo in der Tat eine Speicherumschaltung aufgetreten ist. Die höchstwertigen vier Bit der Adresse befinden sich in den Bitpositionen 8 bis 5 des Statusregisters 2. Die Kombination an Daten aus diesen zwei Quellen bildet eine Adresse aus 20 Bit, die auf die erste Adresse des Erfassungsspeichers zeigt, die, nachdem eine Speicherumschaltung aufgetreten ist, von den A/D-Wandlern hoher Geschwindigkeit geladen wurde.
  • Register (28) des FIFO der langsamen ADC
    • Größe des Bus: 16 Bit
    • Bit 15-14: nicht von dem FIFO verwendet, aber als Coldfire-Signal-Bit gelesen
    • Bit 13-0: ADC-Daten
    • Adresse = 0x1000009 schreibgeschützt
  • Dieses Register 28 dient als ein Port zu einem Acht-Wort-FIFO, das dieselben Daten enthält, wie sie der Coldfire 14 aus den langsamen A/D-Wandlern liest. Es sollte beachtet werden, dass dieses FIFO 14 Bit breit ist, die Daten, die von den A/D-Wandlern mit geringer Geschwindigkeit zu dem Coldfire transferiert werden, jedoch 16 Bit breit sind. Die zwei restlichen Bit (Bit A Signal Coldfire und Bit B Signal Coldfire) werden zusammen mit den tatsächlichen 14 Bit der Daten der langsamen A/D direkt zu dem Coldfire transferiert, wenn der Coldfire-DMA die langsamen A/D-Wandler auswählt (siehe Abschnitt über Analog mit geringer Geschwindigkeit [R1]). Ein Zähler zählt acht Coldfire-Leseoperationen und triggert bei Vervollständigung der achten Leseoperation eine Unterbrechung des Slow FIFO IRQ.
  • Coldfire-/Sharc-Synchronisation:
  • Die folgende Beschreibung gilt nur, wenn Unterbrechungen verwendet werden, um Daten zwischen dem FIFO 28 der langsamen ADC und dem Sharc 12 zu transferieren. Der DMA-Modus ist selbstsynchronisierend und erfordert keine Synchronisationsprozedur.
  • Das Fassen von Daten geringer Geschwindigkeit des Coldfire 14 und des Sharc 12 muss synchron ablaufen, wenn ihre Daten zusammenpassen sollen. Konditionen, wie etwa das Hochfahren des Coldfire und des Sharc zu unterschiedlichen Zeiten, oder ein Coldfire-Rücksetzbefehl an den Sharc unter der Verwendung der Rücksetz-TCV-Chipansteuerung kann verursachen, dass der Coldfire nicht synchron mit dem Sharc ist. Falls dies geschieht, sind die Sharc-Daten entweder ungewollt verfälscht oder bestenfalls nicht synchron (die Coldfire-Daten sind von dieser Kondition nicht betroffen).
  • Der Coldfire 14 erhält alle 32 μs acht Wörter an Daten von den A/D- Wandlern geringer Geschwindigkeit. Wie oben erklärt wurde, erhält der Sharc unter der Verwendung des Registers 28 des FIFO der langsamen ADC dieselben Daten. Es muss Acht gegeben werden, um sicherzustellen, dass die Datenströme zusammenpassen. Die Beobachtung des Coldfire-/Sharc-Interface-Bus hat gezeigt, dass die maximale Transferzeit für die acht Kanäle der langsamen A/D etwa 7 μs beträgt. Dies lässt in jedem Transferzyklus etwa 25 μs an Leerlaufzeit, in der die Synchronisation sicher bewerkstelligt werden kann.
  • Ein Verfahren des Synchronisierens des Sharc 12 und des Coldfire 14 wäre die Verwendung dieser Leerlaufzeit, um während dieser Leerlaufzeit den Wortzähler des FIFO der langsamen ADC zu löschen, da dies das einzige Mal ist, wenn der Coldfire-Zugriff garantiert nicht in Gang befindlich ist. Der Zähler wird jedes Mal, wenn das FIFO der langsamen ADC gelesen wird, gelöscht.
  • Das Synchronisationsverfahren würde wie folgt ablaufen:
    Es wird auf eine Kondition Slow ADC FIFO voll gewartet, indem das Bit Slow ADC FIFO full abgefragt wird. Wenn dies geschieht, befindet sich der Coldfire irgendwo in seinem aktiven DMA-Zyklus von 7 μs, man weiß nur nicht sicher, wo. Die ganze Synchronisierungsaktivität muss in der Leerlaufzeit von 25 μs auftreten, damit sie funktioniert. Die optimale Stelle, die Synchronisation durchzuführen, wäre kurz nachdem sicher bekannt ist, dass der Coldfire 14 nicht aktiv Daten erfasst. Da die maximale Zeit, die der Coldfire benötigt, um alle Daten zu erfassen, 7 μs beträgt, ist garantiert, falls ein Spielraum hinzugefügt und angenommen 15 μs gewartet wird, bevor das FIFO synchronisiert wird, dass der nächste FIFO-Zyklus synchronisiert sein wird. Das Warten über 15 μs ab einer Kondition FIFO voll garantiert, dass der Synchronisationspunkt bei mindestens 8 μs und höchstens 15 μs der Leerlaufzeit von 25 μs liegen wird.
  • Es könnte ein Taktgeber verwendet werden, um diese Zeit zu messen, und die Auszeit könnte abgefragt werden, um zu bestimmen, wann der Taktgeber abläuft. Falls zu dieser Zeit eine einzige FIFO-Leseoperation vollbracht ist, wird der FIFO-Zähler gelöscht und muss bis 8 zählen, bevor die nächste Unterbrechung auftritt. Dies synchronisiert den Sharc 12 und den Coldfire 14.
  • Dies ist ein eher enger Zeitplan und es könnte eher das Abfragen als eine Taktgeber-Unterbrechung verwendet werden, um ihn zu bewerkstelligen.
  • Falls Taktgeber-Unterbrechungen für das Synchronisieren der zwei Prozessoren verwendet werden können, ermöglicht dies, dass die Synchronisation auf einer sich in Gang befindlichen Basis alle N-Zyklen auftritt, und hat eine robustere Gestaltung als lediglich einmaliges Synchronisieren beim Rücksetzen zur Folge.
  • Statusregister 2 (48)
    • Größe des Registers: 16 Bit
    • Bit 15-11 = '0',
    • Bit 10 = Schwellen-FIFO leer,
    • Bit 9 = Schwellen-FIFO voll,
    • Bit 8-5 = Bit der oberen Adresse des Registers des Umschaltpunkts
    • Bit 4 = Richtung des Übergangs (T = '1', ↓ = '0'),
    • Bit 3-0 = niedrigstwertige Adressen-Tetrade des Schwellenkreuzungspunkts
    • Adresse = 0x100000A schreibgeschützt
  • Anmerkung: Dieses Register 48 muss immer vor dem Register 58 des Schwellen-FIFO oder dem Register 56 des Umschaltpunkts gelesen werden.
  • Dieses Register wird in Kombination mit dem Register 58 des Schwellen-FIFO und dem Register 56 des Umschaltpunkts verwendet, um die Schwellenkreuzungen und die Speicherumschaltpunkte des Datenstroms der A/D-Wandler hoher Geschwindigkeit zu bestimmen. Wie in dem Abschnitt über das Register des Schwellen-FIFO erklärt wurde, ist das Schwellen-FIFO 21 Bit breit. Bit 0 bis 4 in diesem Register enthalten den Rest der Daten, die nicht in das Register des Schwellen-FIFO gepasst haben. Bit 5 bis 8 enthalten die Adressbit, die nicht in das Register des Umschaltpunkts gepasst haben.
  • Bit 10 und 9 enthalten den Status des Schwellen-FIFO. Bit 4 enthält eine '1', falls der Übergang dieses Eintrags in das Schwellen-FIFO positiv gehend war, und eine '0', falls negativ gehend. Bit 3-0 enthalten die niedrigstwertige Tetrade der Adresse des Erfassungsspeichers des Übergangspunkts. Diese vier niedrigstwertigen Bit werden mit den 16 höchstwertigen Adressbit des Registers des Schwellen-FIFO kombiniert, um in den Erfassungsspeicher einen Adressenzeiger des Übergangspunkts aus 20 Bit zu bilden. Diese Adresse aus 20 Bit (normalisiert auf eine 15-Wort-Grenze) minus einem Versatz, um Stammdaten zu berücksichtigen, kann an das Zeigerregister des Erfassenspeichers geschrieben werden, um auf eine Leseoperation des Erfassungsspeichers unter der Verwendung des Registers des Erfassenspeichers vorzubereiten.
  • Dieses Register muss vor dem Register des Schwellen-FIFO gelesen werden, ansonsten können eine inkorrekte Adresse des Zeigers und inkorrekte Statusdaten die Folge sein.
  • Register (40) der Spannungsschwelle
    • Größe des Registers: 12 Bit: differentieller Modus; 11 Bit: absoluter Modus
    • Adresse = 0x100000B
    • Rücksetzwert: 0xFFF
  • Lesen/Schreiben
  • Dieses Register 40 aus 12 Bit enthält den absoluten Wert (immer positiv) des Spannungsniveaus, das erforderlich ist, um jeden der drei Zähler 60, 62, 64 des Registers der Dauerschwelle zu aktivieren. Im absoluten Modus (siehe Bit DoDiff) sind die eingehenden abgetasteten Daten von den A/D-Wandlern hoher Geschwindigkeit zwölf Bit breit, somit ist der absolute Wert jedes Datenpunkts 11 Bit. Falls der absolute Wert eines beliebigen Worts (an bipolar angepasst), das von den A/D-Wandlern hoher Geschwindigkeit gelesen wird, den Wert in diesem Register übersteigt, wird der zugehörige Schwellenzähler für den Datenwert gemäß den Einschränkungen, die in dem Abschnitt über den Dauerzähler erklärt wurden, inkrementiert. Im absoluten Modus sollte dieses Register 40 nie eine positive Zahl mit mehr als 11 Bit enthalten.
  • Im differentiellen Modus wird dieses Register 40 zu einem Register aus zwölf Bit, um die höhere mögliche dynamische Spanne differentieller Signale zu berücksichtigen. Die positive 12-Bit-Zahl, die in diesem Register platziert wird, wird für die folgenden drei Konditionen als ein Schwellentriggerpunkt verwendet:
    Va – Vb,
    Vb – Vc,
    Vc – Va.
  • Falls der absolute Wert von einer der drei Berechnungen den Wert in diesem Register übersteigt, wird der zugehörige Dauerzähler wie oben beschrieben inkrementiert.
  • Test-DAC
  • Ein Vier-Kanal-Test-DAC AD5324 (nicht gezeigt) von Analog Devices ist für schaltungsinterne Textzwecke auf der Leiterplatte umfasst und es kann durch den seriellen Port 1 des Sharc darauf zugegriffen werden. Er kann für die Applikationsentwicklung oder als der Stimulus für einen kompletten Ende-Ende-Systemtest verwendet werden. An Punkten kurz vor den Eingangsverstärkern und nach den Eingang-Herunterdividierungs-Widerständen ist Kanal 1 des DAC mit dem Eingangsspannungskanal Va verkoppelt, ist Kanal 2 mit Vb verkoppelt und ist Kanal 3 mit Vc verkoppelt.
  • Auf Grund dieser Platzierung können die gesamten Analog- und Digital-Erfassungsschaltungsanordnungen mit dem DAC getestet werden. Der DAC ist 12 Bit breit weist eine Anstiegs- und eine Abfallzeit von etwa 0,7 V/μs auf. Obwohl dies relativ kurz ist, ist es für schaltungsinterne Testzwecke adäquat. Wenn nicht aktiv, kann er in seinen Herabschaltzustand gesetzt werden. In diesem Zustand sind die Ausgänge hochohmig, das TCV erfasst Daten von den Herunterdividierungs-Widerständen, ohne von dem DAC betroffen zu sein.
  • Temperatursensor
  • Ein Temperatursensor AD7814 (nicht gezeigt) ist ebenfalls auf der Leiterplatte vorhanden und es kann durch den seriellen Port 0 des Sharc auf ihn zugegriffen werden. Er wird physisch nahe an den A/D-Wandlern hoher Geschwindigkeit platziert und kann verwendet werden, um die Temperatur um die Vorrichtungen zu überwachen und, falls nötig, Kalibrierungsanpassungen vorzunehmen.
  • Analog mit hoher Geschwindigkeit
  • Drei A/D-Wandler (ADC) 41 wandeln Spannungen aus drei Kanälen in digitale Werte um. Diese Werte werden sequentiell gelesen, vorverarbeitet und durch den ATCI-Chip in dem Erfassungsspeicher gespeichert.
  • Der Analog-Abschnitt des TCV hoher Geschwindigkeit besteht aus drei 12-Bit-A/D-Wandlern und zugehörigen Pufferschaltungsanordnungen. Die A/D-Wandler stellen dem System Spannungsdaten mit einer Datenrate von 15 MHz bereit (drei Kanäle mit jeweils 5 MHz). Die Daten werden von dem ATCI gelesen und in den Erfassungsspeicher geschrieben.
  • Den digitalen Schaltungsanordnungen können Transienten-Spannungen von bis zu ±5 000 Volt Spitzenspannung bereitgestellt werden.
  • Analog mit geringer Geschwindigkeit
  • Zwei A/D-Wandler (ADC) 41 wandeln vier Spannungen und vier Stromstärken in digitale Werte um. Die Ausgänge dieser A/D-Wandler gehen sowohl zu dem Prozessor des Sharc 12 als auch des Coldfire 14, folglich stehen jedem Prozessor dieselben Daten geringer Geschwindigkeit zur Verfügung.
  • Die A/D-Wandler geringer Geschwindigkeit, die verwendet werden, sind dieselben wie das vorliegende CV-Modul. Da jedoch Bit 15 und 14 des TCV als Coldfire-Signalisierungsbit verwendet werden, wird sich die Software des Coldfire ein wenig ändern, wenn an Stelle des vorhandenen CV-Moduls das TCV-Modul verwendet wird. Bei dem vorliegenden Zählwerk ist Bit 13 in Bit 15 und 14 vorzeichenerweitert. Das TCV verwendet Bit 15 und 14 als Coldfire-Signalisierungsbit und somit ist Bit 13 das einzige Vorzeichenbit. Wenn der Coldfire-DMA die A/D-Wandler mit langsamer Geschwindigkeit liest, überträgt das TCV die zwei Coldfire-Signalisierungsbit (Bit A Signal Coldfire und Bit B Signal Coldfire) direkt von dem Statusregister an den Coldfire in den Bitpositionen 15 und 14 der Daten der ADC langsamer Geschwindigkeit.
  • Der Sharc 12 und der Coldfire 14 haben Zugriff auf dieselben Daten geringer Geschwindigkeit (solange die Signalisierungsregeln befolgt werden). Folglich kann der Sharc beim Verarbeiten der Daten mit 512 Abtastungen/s Coprozessor verwendet werden und somit, falls gewünscht, den Coldfire entlasten. Da der Sharc ein weitaus effizienterer numerischer Prozessor ist, eröffnet dies viele neue Anwendungen, die nicht durchführbar wären, wenn der Coldfire der einzig zur Verfügung stehende Prozessor wäre.
  • CPU
  • Der Zentralprozessor für das TCV-Modul ist der Sharc-DSP 12 von ADI (z. B. Analog Devices 21065). Das CPU-Teil umfasst von dem Sharc 12 256 kByte des feldprogrammierbaren Flash-Speichers, 4 MByte des DRAM, die Rücksetzschaltungsanordnungen und einen Temperatursensor.
  • CPU-E/A-Flags
  • Flag 8 – Zeitüberwachungseinrichtung
  • Dieses Flag ist an der externen Zeitüberwachungseinrichtung angesetzt. Falls es pro Sekunde nicht mindestens ein Mal umgeschaltet wird, wird ein Hardware-Rücksetzen auftreten.
  • Flag 9 – Kalibrieren der A/D-Wandler hoher Geschwindigkeit
  • Dieses Flag ist an allen drei A/D-Wandlern hoher Geschwindigkeit angesetzt und wird verwendet, um diese zu kalibrieren.
  • Flag 10 – Anfordern der Steuerung über das Interface-FIFO
  • Dieses Bit CvownBus fordert durch das Schreiben einer '0' an dieses Bit die Steuerung über das Interface-FIFO an. Das Schreiben einer '0' fordert die Sharc-Steuerung über das Interface-FIFO an. Das Schreiben einer '1' gibt die Steuerung über das FIFO an den Coldfire frei, wann immer, aber erst wenn, der Coldfire die Steuerung anfordert. Die Steuerung über das Interface-FIFO wird von dem Status des Bit CvownBus bestimmt.
  • Flag 11 – Heartbeat-LED
  • Dieses Flag ist an einer Heartbeat-LED angesetzt. Das Schreiben einer '0' schaltet die LED ein.
  • Steuerprotokoll des Bus-Interface-FIFO (siehe 3)
  • Eine Entscheidungsschaltung auf der Digitalplatte des Grundzählers bestimmt, ob der Sharc 12 oder der Coldfire 14 über die Steuerung des Interface-FIFO 18 verfügen. Das Protokoll, das jeder Prozessor verwendet, um die Steuerung über das FIFO anzufordern und zu erhalten, ist dasselbe. Von dem Standpunkt des Sharc aus ist das Protokoll wie folgt:
    Es sei denn, der Sharc verfügt über die Steuerung des FIFO oder ist dabei, diese anzufordern, sollte er sein Bit Flag 10 hoch halten lassen. Die Entscheidungsschaltung weist zwei aktive niedrige Anforderungseingänge auf: einen von dem Sharc und einen von dem Coldfire. Falls beide '1' sind, ändert sich der Zustand der Entscheidung nicht. Falls zum Beispiel der Sharc gerade erst über die Steuerung des FIFO verfügte und dann sein Bit Flag 10 auf '1' stellt, bleibt der Zustand der Entscheidungsschaltung so lange derselbe (Bit Sharc CVownBus bleibt hoch), wie das Bit der Anforderung der Steuerung über das Bus vom Coldfire hoch bleibt. Falls das Anforderungsbit des Coldfire jedoch gering ist, wenn das Bit Flag 10 hoch ist, erlaubt die Entscheidungsschaltung dem Coldfire die Steuerung über das FIFO und das Bit CVownBus des Sharc geht auf '0'. An diesem Punkt kann der Sharc die Steuerung über das FIFO nicht erhalten, bis der Coldfire sein Anforderungsbit auf '1' einstellt. Selbst wenn der Sharc die Steuerung durch das niedrige Schreiben seines Bit Flag 10 anfordert, ermöglicht ihm die Entscheidungsschaltung keinen Zugriff, bis der Coldfire das FIFO durch das Einstellen seines Anforderungsbit auf '1' freigibt.
  • Zusammengefasst sind die Regeln für den Sharc, die Steuerung über das FIFO zu erlangen, wie folgt:
    Anfordern der FIFO-Steuerung durch das Einstellen des Flag 10 auf '0'.
  • Überprüfen des Busbit CVownsBus, um zu sehen, ob es '1' ist.
  • Falls das Bit CvownsBus nach wie vor '0' ist, besitzt der Coldfire das FIFO und der Sharc muss auf den Zugriff warten.
  • Falls das Bit CvownsBus '1' ist, dann ist dem Sharc die ganze Lese-/Schreib-Steuerung über das FIFO garantiert, ganz gleich, was der Coldfire mit seiner Anforderungsleitung macht.
  • Wenn der Sharc mit dem FIFO fertig ist, wird das Bit Flag 10 auf '1' gestellt, um dem Coldfire den Zugriff auf das FIFO zu ermöglichen.
  • Das Wichtige, das man sich zu dieser Prozedur merken muss, ist, immer zu verifizieren, dass der Sharc über die Steuerung des Bus verfügt, indem das Bit CVownsBus überprüft wird, bevor aus dem FIFO gelesen und in dieses geschrieben wird. Das Anfordern der Steuerung über das FIFO bedeutet nicht unbedingt, dass die Entscheidungsschaltung die Steuerung erlaubt. Ebenso sollte sichergestellt werden, dass das Anforderungsbit Flag 10 auf '1' zurückgesetzt wird, wenn beendet, um dem Coldfire zu ermöglichen das FIFO zu steuern, wenn nötig.
  • Die obige Prozedur beschreibt, wie jeder Prozessor die Steuerung über das FIFO erhält, beschreibt jedoch nicht, wie jeder von ihnen weiß, ob sich in dem FIFO gültige Daten befinden. Zu diesem Zweck ist ein Bit IfceFIFOempty bereitgestellt. Falls dieses Bit '1' ist, befinden sich keine Daten in dem FIFO und der Sharc kann davon ausgehen, dass der Coldfire keine Daten zum Übertragen aufweist. Falls das Bit jedoch '0' ist, befinden sich in dem FIFO Daten, die Aufmerksamkeit erfordern.
  • CPU-Speicher
  • Der Sharc 12 hat direkten Zugriff auf einen Flash-Speicher (z. B. Atmel AT49LV002N12TI) (nicht gezeigt), seinen eigenen SDRAM- Speicher (z. B. Hyundai HY57V161610D) (nicht gezeigt) und indirekten Zugriff auf verschiedene andere Speicheradressbereiche durch den ATCI. Unten steht eine Tabelle mit Adressen der externen Speicher, die dem Sharc zur Verfügung stehen: Tabelle 5 – Übersicht der externen Speicher
    Beschreibung Busbreite (Bit) Adressenbereich
    SDRAM 32 0x0020000-0x03FFFFF
    ATCI-Chip 16 0x1000000-0x100000B
    Flash 8 0x3000000-0x303FFFF
  • CPU-Flash
    • 256 k × 8, byteadressierbar
    • Chip-Auswahl: MS3
    • Adressenbereich: 0x3000000-0x303FFFF
  • Lesen/Schreiben
  • Der Betriebscode wird in einem feldprogrammierbaren Flash von 256 k·8 gespeichert. Das TCV wird eingerichtet, um diesen Code beim Einschalten und jederzeit, wenn eine Hartrücksetzung erfolgt, herunterzuladen. Das Format dieses Codes muss den Regeln in der Sharc-Dokumentation entsprechen.
  • Es ist möglich, dass ein Sektor dieses Flash zur nichtflüchtigen Datenspeicherung verwendet werden kann, falls nötig.
  • Der Flash ist feldprogrammierbar, und es kann durch den Sharc-Speicher-Auswahl-Stift MS3 auf ihn zugegriffen werden.
  • CPU-SDRAM
    • 1 M·32, langwortadressierbar
    • Chip-Auswahl: MS0
    • Adressenbereich: 0x0020000-0x03FFFFF
  • Lesen/Schreiben
  • Der Sharc hat direkten Zugriff auf 4 MByte des SDRAM. Dieser Speicher steht sowohl der Programm- als auch der Datenspeicherung zur Verfügung.
  • Erfassungs-DRAM
    • 2 M·16, durch den ATCI-Chip wortadressierbar schreibgeschützt
  • Es kann durch das Register des Erfassenspeichers in dem ATCI-Chip 10 auf die erfassten Daten zugegriffen werden. Die Adresse der Daten, auf die zugegriffen werden soll, muss zuerst in den Zeiger des Erfassenspeichers geladen werden.
  • Andere Komponenten des ATCI-Chips, in 1 gezeigt, sind wie folgt:
    Die Schwellenberechnungssteuerung 66 führt die Steuerung des Triggeralgorithmus aus. Der ATCI lässt kontinuierlich einen Algorithmus ablaufen, um zu bestimmen, ob ein Triggerpunkt aufgetreten ist. Dieser Block lässt den Algorithmus ablaufen.
  • Der Kasten mit der Differenzschaltung 82 berechnet die Differenz zwischen den drei eingehenden Phasen. Dieser Modus wird im Differenzbetriebsmodus des ATCI-Chips und nicht im absoluten Modus verwendet. Va – Vb, Vb – Vc, Vc – Va werden hier berechnet.
  • Die Daten-Pipes 84 hoher Geschwindigkeit 1 bis 4 halten Register für den eingehenden Datenstrom. Da der ATCI mehrfache Taktzyklen benötigt, um die Triggerpunkte zu berechnen, muss es einen Ort geben, um jeden Datenpunkt zu speichern, während die Berechnung fortfährt. Wenn der ATCI seine Berechnung vervollständigt, wird das Resultat mit dem Datenpunkt, der sich gegenwärtig in dem Daten-Pipe 4 befindet, abgeglichen und das Resultat wird in den Erfassenspeicher geschrieben.
  • Das Daten-Latch 86 ist ein internes Latch zur Synchronisation der Daten von dem Erfassenspeicher auf die zeitliche Abstimmung Sharc-Bus.
  • Der Erfassenadresszähler 88 erzeugt Adressen zum Lesen/Schreiben des Erfassungsspeichers. Dies sind die tatsächlichen Adresszeilen, die den Erfassungsspeicher adressieren.
  • Der Adressensteuerungsdecodierer 90 ist der interne ATCI-Steuerungsblock, der zum Lesen und Schreiben unterschiedliche Teile des ATCI auswählt.
  • Der Steuerungsblock 92 ist ein generischer Block, der alle verschiedenen Steuerschaltungsanordnungen in dem Chip bezeichnet, die seine verschiedenen Funktionen, wie etwa DRAM-Auffrischung, Ein- und Ausschalten der Hochohmpuffer, verschiedene Zustandsmaschinen etc. steuern.
  • Eine zusätzliche Erklärung der anderen hierin verwendeten Begriffe folgt:
    Sharc addr ist der Adressbus des Sharc. 0x1000000 bis 0x100000b greifen auf unterschiedliche Teile des ATCI-Chips zu.
  • Sharc-Steuerung sind die Sharc-Steuerungszeilen des ATCI. Sie steuern Leseoperationen, Schreiboperationen, Chip-Auswahlen etc.
  • Der ATCI verwendet absolute Werte, um Triggerpunkte zu bestimmen, so dass sowohl positive als auch negative Werte einen Trigger verursachen. Der Absolutwert-Kasten 80 wandelt die eingehenden Daten in einen absoluten Wert um, welcher bei der Berechnung verwendet wird.
  • Der Trigger-IRQ ist die Unterbrechung, die dem Sharc signalisiert, dass ein gültiger Triggerpunkt erreicht worden ist. Es ist eine einzige Steuerungszeile, die von dem ATCI zu dem Sharc verläuft.
  • Das Register Interface-FIFO ist der Port bei der Adresse 0x1000003, durch den der Sharc unter der Verwendung des Interface-FIFO mit dem Coldfire kommuniziert. Daten, die an diese Adresse geschrieben werden, gehen für spätere Leseoperationen durch den Coldfire in das 768-Wort-Interface-FIFO. Leseoperationen des Port lesen Daten aus dem Interface-FIFO, die zuvor Coldfire-Schreiboperationen waren.
  • Der Coldfire-DMA ist das Mittel, das der Coldfire verwendet, um das, was Daten mit langsamer Geschwindigkeit genannt wird, von den A/D-Wandlern geringer Geschwindigkeit zu erhalten. Anstatt die Daten direkt zu lesen, verwendet der Coldfire eher seine Fähigkeit des direkten Speicherzugriffs, um Daten von den A/D-Wandlern in seinen Speicher zu lesen.
  • Die ISR ist eine Unterbrechungsserviceprogramm. Ein Programm in dem Mikroprozessor, das ablaufen gelassen wird, wenn eine Unterbrechung auftritt.
  • Das Register des Erfassenspeichers ist der Port, welcher die Daten in dem Erfassungsspeicher liest. Es ist dem obigen Register Interface-FIFO ähnlich, ist jedoch schreibgeschützt.
  • Das Register des MSW des Erfassenspeichers sind die höchstwertigen 16 Bit einer Adresse des Erfassenspeichers aus 20 Bit. Da der Interface-Bus des ATC/Sharc lediglich 16 Bit breit ist, muss die vollständige Adresse in mehr als einem Register gespeichert werden.
  • Der Flash-Speicher ist der nichtflüchtige Speicher, der verwendet wird, um das Betriebsprogramm des Sharc zu speichern. Jedes Mal, wenn der Sharc entweder eingeschaltet oder zurückgesetzt wird, wird das Programm von dem Flash zu dem Sharc-SDRAM oder dem internen Speicher des Sharc transferiert und ausgeführt.
  • Der SDRAM (Synchronous Dynamic Random Access Memory) ist einer der Speicher, die direkt an dem Sharc angesetzt sind. Sowohl die Daten als auch die Programme sind in diesem Speicher gespeichert, damit der Sharc mit ihnen arbeiten kann.
  • Während bestimmte Ausführungsformen und Anwendungen der vorliegenden Erfindung dargestellt und beschrieben worden sind, versteht es sich, dass die Erfindung nicht auf die genaue Konstruktion und die genauen Kompositionen, welche hierin offenbart sind, beschränkt ist, und dass möglicherweise verschiedene Abwandlungen, Veränderungen und Variationen aus der vorangehenden Beschreibung offensichtlich sind, ohne von dem Bereich der Erfindung, wie er in den sich in der Anlage befindlichen Patentansprüchen definiert ist, abzuweichen.

Claims (14)

  1. Ein Gerät zur Erkennung impulsförmiger Transienten und zur Datenerfassung als eine Zusatzeinheit für eine Leistungsüberwachungsvorrichtung mit einem Leistungsmessungsvorrichtungsprozessor (14) zum Ausführen von Datenabtastung und des Berichtens mit einer gegebenen Rate, wobei das Gerät Folgendes beinhaltet: einen Geräteprozessor (10); ein Interface (18) zum Zugreifen auf Daten von dem Geräteprozessor (10); eine Vielzahl von Kanälen zum Suchen und Überwachen von Transienten; und mindestens zwei unabhängige, umschaltbare Speicherbanken (70, 72) für die simultane Echtzeitspeicherung und die simultanen Echtzeitanalysen eines eingehenden Transienten-Datenstroms, wobei das Gerät dadurch gekennzeichnet ist, dass die Speicherbanken (70, 72) auf Befehle von dem Geräteprozessor (10) reagieren, wobei die Befehle den Wechsel der Speicherbanken (70, 72) ohne Datenverlust umfassen, um zu ermöglichen, dass lange und/oder mehrfache Transienten ohne den Verlust von Daten analysiert werden.
  2. Gerät gemäß Anspruch 1, das ferner einen programmierbaren Spannungsdauertriggermechanismus zum Erkennen von Transienten auf der Vielzahl von Kanälen umfasst.
  3. Gerät gemäß Anspruch 1 oder 2, das ferner einen FIFO-Speicher (18) zur Kommunikation mit einem Leistungsmessungsvorrichtungsprozessor (14) umfasst.
  4. Gerät gemäß Anspruch 1, 2 oder 3, das ferner ein Schwellen-FIFO-Speicher-Zeigerregister (50) zum Speichern von Transienten-Informationen umfasst.
  5. Gerät gemäß einem der Ansprüche 1 bis 4, das ferner einen FIFO-Speicher (28) zum Speichern von Daten, die von dem Leistungsüberwachungsvorrichtungsprozessor (14) gelesen werden, umfasst.
  6. Gerät gemäß Anspruch 1, 2 oder 3, das ferner einen Speicher (12) zum Speichern von Transienten-Daten umfasst.
  7. Gerät gemäß Anspruch 4, das ferner zum Speichern von Daten, die sich auf mehrfache Transienten-Ereignisse beziehen, eine Speichervorrichtung (12) umfasst, die mit dem Schwellen-FIFO-Speicher (50) verknüpft ist.
  8. Ein Verfahren zum Überwachen eines Energieversorgungsnetzes, um Transienten-Ereignisse zu erkennen, wobei das Überwachungsverfahren Folgendes beinhaltet: Zugreifen auf Daten von einem Prozessor (10); Kooperieren mit einer Leistungsüberwachungsvorrichtung mit einem Leistungsmessungsvorrichtungsprozessor (14) zum Ausführen der Datenabtastung und des Berichtens mit einer gegebenen Rate; Suchen und Überwachen von Transienten; und Ausführen der simultanen Echtzeitspeicherung und der simultanen Echtzeitanalysen eines eingehenden Transienten-Datenstroms unter Verwendung von mindestens zwei unabhängigen, umschaltbaren Speicherbanken (70, 72), wobei das Verfahren durch das Wechseln der Speicherbanken, die auf Befehle von dem Prozessor (10) reagieren, ohne Datenverlust gekennzeichnet ist, um zu ermöglichen, dass mehrfache und/oder lange Transienten ohne den Verlust von Daten analysiert werden.
  9. Verfahren gemäß Anspruch 8, das ferner das Erkennen von Transienten auf der Vielzahl von Kanälen unter Verwendung eines programmierbaren Spannungs-und-Dauertriggermechanismus umfasst.
  10. Verfahren gemäß Anspruch 8 oder 9, das ferner das Kommunizieren mit einem Leistungsmessungsvorrichtungsprozessor (14) über einen FIFO-Speicher (18) umfasst.
  11. Verfahren gemäß Anspruch 8, 9 oder 10, das ferner das Speichern von Transienten-Informationen in einem Schwellen-FIFO-Speicher (50) umfasst.
  12. Verfahren gemäß Anspruch 8, 9, 10 oder 11 das ferner das Speichern von Daten, die von dem Leistungsüberwachungsvorrichtungsprozessor (14) gelesen werden, in einem FIFO-Speicher (28) umfasst.
  13. Verfahren gemäß Anspruch 8, 9 oder 10, das ferner das Speichern von Transienten-Daten in einem Speicher (12) umfasst.
  14. Verfahren gemäß Anspruch 11, das ferner das Speichern von Daten, die sich auf mehrfache Transienten-Ereignisse beziehen, in einer Speichervorrichtung (12), die mit dem Schwellen-FIFO-Speicher (50) verknüpft ist, umfasst.
DE60222142T 2001-04-02 2002-04-02 Impulstransient-erfassung und koprozessor zur datenerfassung Expired - Lifetime DE60222142T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US824414 2001-04-02
US09/824,414 US6708124B2 (en) 2001-04-02 2001-04-02 Impulsive transient detection and data acquisition coprocessor
PCT/US2002/010245 WO2002079787A1 (en) 2001-04-02 2002-04-02 Impulsive transient detection and data acquisition coprocessor

Publications (2)

Publication Number Publication Date
DE60222142D1 DE60222142D1 (de) 2007-10-11
DE60222142T2 true DE60222142T2 (de) 2008-05-21

Family

ID=25241349

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60222142T Expired - Lifetime DE60222142T2 (de) 2001-04-02 2002-04-02 Impulstransient-erfassung und koprozessor zur datenerfassung

Country Status (4)

Country Link
US (1) US6708124B2 (de)
EP (1) EP1421394B1 (de)
DE (1) DE60222142T2 (de)
WO (1) WO2002079787A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526391B2 (en) * 2006-12-14 2009-04-28 Bickel Jon A Method and apparatus to evaluate transient characteristics in an electrical power system
GB2472565B (en) * 2009-06-13 2013-12-11 Agilent Technologies Inc System and method for increasing the speed of measurements in an instrument
CN105092999B (zh) 2014-05-19 2017-12-12 罗克韦尔自动化技术公司 利用多个指示的电力质量事件定位
US9541586B2 (en) 2014-11-24 2017-01-10 Rockwell Automation Technologies, Inc. Capture of power quality information at the time a device fails
CN104614696A (zh) * 2015-01-15 2015-05-13 国家电网公司 电子式互感器与合并单元暂态测试的暂态采样前置单元
CN111490428B (zh) * 2020-04-23 2021-12-31 厦门立林科技有限公司 一种高效的智能插座功率校准方法
CN113886293B (zh) * 2021-10-20 2023-09-01 中电科思仪科技股份有限公司 一种快速测量的微波功率计及控制方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3893060A (en) * 1973-08-28 1975-07-01 Xonics Inc Aircraft vortex detection system
US4510571A (en) * 1981-10-08 1985-04-09 Tektronix, Inc. Waveform storage and display system
US4727314A (en) * 1982-12-23 1988-02-23 The United States Of America As Represented By The Secretary Of The Air Force Transient detector apparatus
US4980845A (en) * 1985-08-23 1990-12-25 Snap-On Tools Corporation Digital engine analyzer
US4979122A (en) * 1989-02-01 1990-12-18 Ge Fanuc Automation North America Inc. Apparatus and method for monitoring power
US5801952A (en) * 1994-05-19 1998-09-01 Reliable Power Meters, Inc. Apparatus and method for power disturbance analysis and storage of unique impulses
US6112136A (en) * 1998-05-12 2000-08-29 Paul; Steven J. Software management of an intelligent power conditioner with backup system option employing trend analysis for early prediction of ac power line failure
US6334175B1 (en) * 1998-07-22 2001-12-25 Ati Technologies, Inc. Switchable memory system and memory allocation method
US6424927B1 (en) * 1999-06-18 2002-07-23 Sri International Computer-based real-time transient pulse monitoring system and method

Also Published As

Publication number Publication date
EP1421394B1 (de) 2007-08-29
DE60222142D1 (de) 2007-10-11
US20030018441A1 (en) 2003-01-23
EP1421394A1 (de) 2004-05-26
US6708124B2 (en) 2004-03-16
WO2002079787A1 (en) 2002-10-10

Similar Documents

Publication Publication Date Title
DE60012132T2 (de) Mikroprozessor mit Prüfinstruktionsspeicher
US20180267848A1 (en) Methods for Data Acquisition Systems in Real Time Applications
EP1720100B1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE69825915T2 (de) Verfahren und vorrichtung zur umschaltung zwischen quellen-synchron-takt/- und gemeinsam-takt-datenübertragungs-modi in einem mehragent-übertragungs-system
CN108693821A (zh) 控制装置、存储介质、控制方法及控制系统
DE60222142T2 (de) Impulstransient-erfassung und koprozessor zur datenerfassung
DE3743114A1 (de) Schnittstelleneinheit und verfahren zum schaffen einer schnittstelle zwischen analogen eingangssignalen und einem digitalen systembus
EP2841880A2 (de) Sensor mit zeitstempel für abtast-zeitpunkt
DE112013001213T5 (de) Datentransfereinrichtung, Datentransferverfahren und Datentransferprogramm
DE102007039822A1 (de) Speicherschaltung, DRAM-Speicher, System mit Speicher sowie Gleitkomma-Einheit und Verfahren zum Speichern digitaler Daten
DE102014211245A1 (de) System zur Fehlersuche bei der Datenübertragung im DMA-System
DE4033854A1 (de) System zur prioritaetsueberwachung
DE102006041444A1 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
US6711509B2 (en) Impulsive transient hardware simulation
DE60130300T2 (de) Bus, der auf einer Flanke eines Taktsignals abtastet und auf der anderen Flanke treibt
DE112017005778T5 (de) Mikrocontroller-energie-profiler
DE10306285A1 (de) Mikrocomputersystem
DE102009031001B4 (de) System-Profiling
DE3530602C2 (de)
DE112019006932T5 (de) Programmierbarer direct-memory-access-controller mitbeliebiger reihenfolge zur konfiguration von mehreren kernunabhängigen peripheriegeräten
DE19742673C2 (de) Ein-Ausgabepufferspeicherschaltung, durch die die für Ein- und Ausgabepufferoperationen erforderlichen Datentransferoperationen minimiert werden können
DE2102935A1 (de) Verfahren und Vorrichtung zur Be Stimmung der Leistungsfähigkeit von Maschinenprogrammen
CH679339A5 (de)
DE102008053201A1 (de) Histogrammerzeugung mit Mehrfachinkrement-Lese-Modifizier-Schreib-Zyklen
DE102023126259A1 (de) Halbleitervorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition