-
Die
vorliegende Erfindung betrifft einen Mikrocontroller, der eine Central
Processing Unit und einen mit einem Bus gekoppelten Speicher enthält.
-
Für die Entwicklung
von Mikrocontroller-basierten Applikationen, wobei der Mikrocontroller
einen internen Speicher (z. B. RAM) und Schnittstellen zu Peripheriegeräten aufweist,
ist es normalerweise erforderlich, den Datenverkehr zwischen einem Bus-Master
wie z. B. der Central Processing Unit (CPU) und internen Speichern
oder Schnittstellen zu Peripheriegeräten zu überwachen. Aktuelle Mikrocontroller-Plattformen
verwenden Softwarelösungen oder
Direktspeicherzugriff (DMA), um interne Daten an eine externe Vorrichtung
zur Datenprotokollierung, Datenprüfung und Entstörung zu übertragen. Der
herkömmliche
Ansatz erfordert jedoch ein Aussetzen der laufenden Datenverarbeitung,
um die Daten an die externe Vorrichtung zu übertragen, und ein Wiederaufnehmen
des normalen Betriebs, wenn die zusätzliche Datenübertragung
abgeschlossen ist. Wenn DMA zur Übertragung
von Daten an eine externe Vorrichtung verwendet wird, kann die CPU
zwar den normalen Betrieb fortführen,
aber der Zugriff auf dieselbe Speicherressource durch die CPU ist
während
DMA nicht möglich.
-
Ein
Ziel der vorliegenden Erfindung ist es, einen Mikrocontroller mit
verbesserter Transparenz bezüglich
der internen Datenübertragungen
und einer geringeren Beeinträchtigung
des Zielbetriebs während
der Applikationsentwicklung bereitzustellen.
-
Dementsprechend
wird ein Mikrocontroller bereitgestellt, der eine Central Processing
Unit, einen Speicher, einen den Speicher mit einem Bus-Master wie
z. B. der CPU koppelnden Bus und ein Speicher-Trace-Modul zur Aufzeichnung
von Daten eines Schreibzugriffs auf und/oder eines Lesezugriffs
von dem Speicher enthält.
Das Speicher-Trace-Modul enthält
ferner eine erste Schnittstelle, die mit dem Bus gekoppelt ist,
um die Daten und entsprechende Adressinformationen auf dem Bus zu
erfassen, und eine zweite Schnittstelle, die so eingerichtet ist,
dass sie an eine externe Vorrichtung gekoppelt werden kann, wobei
das Speicher-Trace-Modul eingerichtet ist, um in einem Aufzeichnungsmodus
die erfassten Daten und Adressinformationen von der ersten zu der
zweiten Schnittstelle und von der zweiten Schnittstelle an eine
externe Vorrichtung zu übertragen.
Ein Mikrocontroller mit einem Speicher-Trace-Modul gemäß der vorliegenden Erfindung
ist in der Lage, Daten direkt von dem Bus zu erfassen, der den Speicher bzw.
eine Mehrzahl von Speichern mit einer beliebigen Bus-Master-Vorrichtung
wie zum Beispiel der CPU oder dem DMA verbindet. Das Speicher-Trace-Modul
ist ferner so eingerichtet, dass es die Daten und die entsprechenden
Adressinformationen im Wesentlichen in der Form erfasst, in der
die Daten auf dem Bus auftreten, d. h. an den Eingangs- und Ausgangsanschlüssen des
Speichers, und die Daten zur Prüfung
an eine externe Vorrichtung überträgt. Da der
Bus-Master und die CPU in diesem Erfassungsprozess nicht involviert
sind, bleiben die Master- bzw. CPU-Ressourcen für den normalen Betrieb des
Mikrocontrollers erhalten. Folglich zeigt der Mikrocontroller gemäß der vorliegenden
Erfindung dasselbe Verhalten während
der Applikationsentwicklung, der Produktion und der finalen Zielapplikation.
Vorzugsweise könnte
der interne Speicher ein flüchtiger
Speicher wie ein Direktzugriffsspeicher (RAM) sein, wobei auch andere
Speichereinheiten alternativ verwendet werden können. Da die Daten- und Adressinformationen
im Wesentlichen in einer Form erfasst werden, in der die Daten an
den E/A-Anschlüssen des
Speichers auftreten, können
die Daten ohne wesentliche Dekodierung oder ähnliche Modifizierungsschritte übertragen
werden. Dementsprechend kann das Speicher-Trace-Modul mit geringer
Komplexität
implementiert werden.
-
Das
Speicher-Trace-Modul kann einen Datenbuffer wie zum Beispiel einen
FIFO-Buffer enthalten, der so eingerichtet ist, dass er die erfassten
Daten und/oder Adressinformationen, die über die erste Schnittstelle
ankommen, zwischenspeichert, bevor die Daten über die zweite Schnittstelle
zu übertragen sind.
Wenn die Trace-Einheit so eingerichtet ist, dass sie eine Mehrzahl
von Erfassungsquellen wie zum Beispiel eine Mehrzahl von Speicherblöcken (z.
B. RAM-Blöcke)
aufzeichnen kann, kann eine Mehrzahl von FIFOs bereitgestellt werden,
und das Speicher-Trace-Modul sollte vorzugsweise ein Mittel zur Implementierung
eines Round-Robin-Schemas zur Entleerung der FIFOs für die Mehrzahl
von Erfassungsquellen enthalten. Ein FIFO kann so eingerichtet sein,
dass er ein Überlaufsignalisierungsmittel
zur Signalisierung eines FIFO-Überlaufs
an eine externe Vorrichtung bereitstellt. Zur Anzeige des Auftretens eines Überlaufs
kann ein Statusbit verwendet werden. Es können auch andere Signalisierungsmittel für andere
Zwecke, die zusätzliche
Statusbits bereitstellen, implementiert werden. Die Verwendung von FIFOs
als Zwischenbuffer zwischen der ersten und der zweiten Schnittstelle
erlaubt es, den Datenverkehr zwischen den internen Erfassungsprozessen und
der Übertragung
an die externe Vorrichtung über die
zweite Schnittstelle zu organisieren und zu verbessern.
-
Gemäß einem
Aspekt der Erfindung kann der Mikrocontroller ein dediziertes Erfassungsregister
enthalten, und das Speicher-Trace-Modul kann so eingerichtet sein,
dass es zwischen einem Aufzeichnungsmodus (wie oben beschrieben)
und einem Direktdatenschreibmodus umgeschaltet werden kann. In dem
Direktdatenschreibmodus werden die Daten direkt in das dedizierte
Erfassungsregister (durch die CPU oder den DMA) geschrieben und über die
zweite Schnittstelle an die externe Vorrichtung durch das Speicher-Trace-Modul übertragen.
Die entsprechenden Adressinformationen müssen lediglich aus der Reihenfolge
von Zugriffen durch die Central Processing Unit oder den Direktspeicherzugriff
bestimmt werden. Dieser Aspekt der Erfindung gestattet es, bestimmte
Daten und Adressinformationen von einem Bus-Master, der CPU oder
anderen Ressourcen auszulesen. Zur Bereitstellung eines schnellen
Zugriffs auf die aufzuzeichnenden Informationen wird ein spezifisches,
dediziertes Register implementiert, das ausschließlich für diesen
Zweck verwendet wird. Folglich können
die zusätzlichen
Informationen äußerst effektiv
und ohne Programmverwaltungsaufwand bereitgestellt werden. Des Weiteren
kann der Mikrocontroller so eingerichtet sein, dass er einen Direktdatenlesemodus
bereitstellt, wobei gelesene Daten direkt in den FIFO geschrieben
und über
die zweite Schnittstelle übertragen
werden.
-
Gemäß einem
anderen Aspekt der Erfindung sind die über die zweite Schnittstelle
an die externe Vorrichtung zu übertragenden
Daten gemäß einem dedizierten
Aufzeichnungsmodusprotokoll, einschließlich eines spezifischen Paketformats,
organisiert. Das Aufzeichnungsmoduspaketformat stellt Pakete bereit,
die Informationen bezüglich
der Erfassungsquelle enthalten, die sich zum Beispiel auf den bestimmten
RAM-Block, zu dem die Daten gehören, beziehen.
Andere individuelle Pakete können
Informationen über
den Status der FIFOs, die Startadresse und die Größe der erfassten
Daten enthalten. Es wird ebenfalls ein spezifisches Paket für die erfassten Daten
bereitgestellt.
-
Das
Paketformat kann für
den Direktdatenmodus (Lesen und Schreiben) unterschiedlich sein, so
dass lediglich Daten in einem einzelnen Paket ohne zusätzliche
Adress- oder Statusinformationen übertragen werden. Hierdurch
wird es ermöglicht, Daten
effizienter zu übertragen.
Weitere Aspekte des Protokolls ergeben sich aus der nachfolgenden
Beschreibung.
-
Die
zweite Schnittstelle kann einen oder mehrere Anschlüsse für den Empfang
von Signalen von der externen Vorrichtung bereitstellen. Das empfangene
Signal kann angeben, ob die externe Vorrichtung bereit zur Datenübertragung
ist. Dieser Aspekt der Erfindung gestattet die Einrichtung eines einfachen
Kommunikationsprotokolls zwischen der externen Vorrichtung und dem
Anschluss-Trace-Modul. Dementsprechend kann die Datenübertragung so
lange ausgesetzt oder unterbrochen werden wie die externe Vorrichtung über die
dedizierten Anschlüsse
der zweiten Schnittstelle einen vorbestimmten Zustand (wie z. B.
externe Vorrichtung ist nicht bereit für den Datenempfang) signalisiert.
-
Des
Weiteren kann die zweite Schnittstelle des Speicher-Trace-Moduls
vorzugsweise als serielle Schnittstelle implementiert sein, um über einen oder
mehrere Anschlüsse
eine serielle Datenübertragung
auszuführen.
Die Bereitstellung einer seriellen Schnittstelle ist hilfreich,
um die Anzahl von externen Anschlüssen des Mikrocontrollers gering
zu halten. Die serielle Schnittstelle kann jedoch entweder zwei, vier,
acht oder sechzehn Anschlüsse
aufweisen, um Flexibilität
für verschiedene
Applikationen und unterschiedlich große zu übertragende Datenmengen zu bieten.
Die Mehrzahl von Anschlüssen
stellt eine Mehrzahl von parallelen Übertragungsleitungen bereit,
die jeweils Daten seriell übertragen.
-
Das
Speicher-Trace-Modul des Mikrocontrollers kann so eingerichtet sein,
dass es allgemein über die
CPU oder eine dedizierte JTAG-Scankette konfigurierbar ist, um eine
berührungsfreie
Steuerung durch externe Entstörungshardware
zu gestatten.
-
Gemäß einem
Aspekt der Erfindung ist das Speicher-Trace-Modul mit einem Bus
gekoppelt, der mit einer Schnittstelle zu einem Peripheriegerät gekoppelt
ist, um Daten bezüglich
des Peripheriegeräts zu
erfassen. Auf gleiche Weise wie in dem Falle des Speicherblocks
erfasst das Speicher-Trace-Modul die Daten auf dem Bus, überträgt die Daten
von der ersten Schnittstelle zu der zweiten Schnittstelle und von
der zweiten Schnittstelle an die externe Vorrichtung. Dementsprechend
ist das Speicher-Trace-Modul in der Lage, Daten von einem Speicher
sowie von Busstrukturen, die die CPU mit Schnittstellen für Peripheriegeräte verbinden,
zu erfassen. Die erfassten Daten können über die zweite Schnittstelle
gemäß einem
spezifischen, dedizierten Datenprotokoll übertragen werden.
-
Für Aufzeichnungsmodusvorgänge von
Peripheriegeräten
wird das Protokoll, insbesondere das oben beschriebene Paketformat,
angepasst. Für
viele Applikationen ist es nützlich,
ein bestimmtes Paket (oder Flags) bereitzustellen, das Bereiche
der Erfassungsquellen anzeigt, insbesondere für die Aufzeichnung von Peripheriegeräten. Häufig überschreitet
der Adressbereich für
Peripheriegeräte
den Adressbereich für
die Speicherblöcke.
Dementsprechend wird das die eigentliche Adresse enthaltende Paket
reduziert, so dass die gespeicherten Bit zur Anzeige eines bestimmten
Bereichs verwendet werden können. Das
zur Identifizierung der Speicherblöcke verwendete Paket kann auch
dazu verwendet werden, allgemein anzuzeigen, dass eine Peripherieaufzeichnung ausgeführt wird.
Das Bereichspaket (bzw. Flag) zeigt einen von zumindest zwei Peripherieadressbereichen
an. Dementsprechend kann das Bereichspaket zur Reduzierung der Datenmenge
verwendet werden, so dass lediglich bestimmte Abschnitte des Peripherieadressbereichs
aufgezeichnet werden. Ein Bereichs-Flag gestattet es, Adressbereiche,
die von geringem Interesse sind, auszuschließen. Die tatsächliche
Startadresse oder der Adressbereich innerhalb des gesamten Peripherieadressbereichs kann
in einem zusätzlichen
Register gespeichert werden, auf das sich das Bereichs-Flag bezieht.
-
Das
Anschluss-Trace-Modul kann ebenfalls mit einer zusätzlichen
Busstruktur für
den Empfang von Einstellinformationen für das Anschluss-Trace-Modul
gekoppelt sein. Dementsprechend kann die Einstellung des Anschluss-Trace- Moduls mit Peripheriegeräten über die
Peripherieschnittstellen durchgeführt werden.
-
Die
vorliegende Erfindung betrifft auch ein Verfahren zur Aufzeichnung
von Daten und entsprechenden Adressinformationen, die von einem
internen Speicher eines Mikrocontrollers gelesen oder in diesen
geschrieben werden, wobei das Verfahren die Schritte der Erfassung
der Daten und der entsprechenden Adressinformationen von einem Bus,
der mit den Eingangs- oder
Ausgangsanschlüssen
des Speichers gekoppelt ist, der Speicherung der erfassten Daten
und Adressinformationen in einem FIFO und der Übertragung der Daten an eine
externe Vorrichtung über
eine externe Schnittstelle umfasst.
-
Die
bevorzugten Ausführungsformen
der Erfindung und weitere wichtige Aspekte der vorliegenden Erfindung
werden untenstehend unter Bezugnahme auf die beigefügten Zeichnungen
beschrieben. Es zeigen:
-
1 ein
vereinfachtes Blockdiagramm eines Mikrocontrollers gemäß einer
ersten Ausführungsform
der vorliegenden Erfindung,
-
2 ein
vereinfachtes Blockdiagramm eines Speicher-Trace-Moduls gemäß einer
Ausführungsform
der vorliegenden Erfindung,
-
3 verschiedene
Paketstrukturen gemäß einem
Aspekt der vorliegenden Erfindung,
-
4 Signalwellenformen
und die zeitliche Steuerung gemäß einem
Aspekt der vorliegenden Erfindung, und
-
5 weitere
Signalwellenformen gemäß Aspekten
der vorliegenden Erfindung.
-
1 zeigt
die vereinfachte Grundstruktur eines Mikrocontrollers gemäß einer
ersten Ausführungsform
der Erfindung. Eine CPU 1 und ein erster Speicherblock 2 sowie
ein zweiter Speicherblock 3 sind in die integrierte elektronische
Vorrichtung integriert. Obwohl lediglich zwei Speicherblöcke gezeigt werden,
ist die Anzahl von Speicherblöcken
im Grunde nicht begrenzt. Die CPU 1 ist über Busstrukturen und
ein Busmatrixmodul 9 sowie Wrapper-Units 10, 11 mit
den Speicherblöcken 2 und 3 gekoppelt.
Das Busmatrixmodul 9 und die Wrapper-Units 10, 11 führen jegliche
notwendige Umwandlungs- oder Dekodierungsschritte aus, um Daten
korrekt zwischen den Speicherblöcken 2, 3 und
der CPU 1 zu übertragen, Die
Busstrukturen 17 und 18 sind mit den die Speichereinheiten 2, 3 mit
der CPU 1 verbindenden Busabschnitten 23 und 24 gekoppelt.
Das Speicher-Trace-Modul 4 erfasst Daten und Adressinformationen über die
Busstrukturen 17 und 18 im Wesentlichen in einer
Form wie die Daten und die Adressinformationen an den Eingangs-
und Ausgangsanschlüssen der
Speicherblöcke 2, 3 auftreten.
Die Speicherblöcke 2, 3 sind
vorzugsweise Direktzugriffsspeicher (RAM), wobei aber auch andere
Speicherarten verwendet werden können.
Das Speicher-Trace-Modul 4 enthält einen FIFO-Bufferabschnitt 5 zur
Pufferung der eingehenden Daten und der entsprechenden Adressinformationen.
-
Das
Speicher-Trace-Modul 4 enthält eine erste interne Schnittstelle
zur Kopplung des Moduls 4 mit den Busabschnitten 17, 18 und 19.
Die erste interne Schnittstelle ist ferner mit dem FIFO 5 gekoppelt,
in dem eingehende Daten gespeichert werden. Die zweite externe Schnittstelle 6 enthält eine
Gruppe von Anschlüssen 8,
die an eine externe Vorrichtung (nicht gezeigt) zu koppeln sind.
Die externe Schnittstelle 6 ist im Wesentlichen so eingerichtet, dass
sie die über
die Busabschnitte 17 und 18, über die interne Schnittstelle
und über
den FIFO 5 empfangenen Daten und Adressinformationen unter
Verwendung eines spezifischen Protokolls an eine externe Vorrichtung übertragen.
Die Anzahl von Anschlüssen
der Gruppe von externen Anschlüssen 8 hängt von
der spezifischen Implementierung des Mikrocontrollers und der Anwendung,
für die
der Mikrocontroller verwendet werden soll, ab. Eine geringe Anzahl von
Anschlüssen
für eine
im Grunde serielle Datenübertragung
wie zum Beispiel 2, 4 oder 8 Anschlüsse könnte jedoch vorteilhaft sein.
Weitere Busstrukturen 22, 25 und 26 werden
für den
Anschluss der Schnittstellen 14, 15 und 16 für Peripheriegeräte an die
CPU 1 bereitgestellt. Es können zusätzliche Protokollübersetzungseinheiten 12 und 13 implementiert
werden, um die Kommunikation zwischen der CPU 1 und den Peripheriegeräten 14, 15 und 16 herzustellen.
Die Schnittstellen 14, 15 und 16 sind
ebenfalls über
die Busabschnitte 26 mit der Schnittstelle 6 des
Speicher-Trace-Moduls 4 gekoppelt. Dementsprechend können die über den
Busabschnitt 26 laufenden Einstellinformationen zur Konfiguration
des Speicher-Trace-Moduls 4 verwendet werden. Die in 1 gezeigte
Architektur ist nicht nur nützlich
zur Aufzeichnung von Datenverkehr zwischen der CPU 1 und
den Speicherblöcken 2, 3,
sondern es können auch
alle anderen Daten, die zu oder von den Speicherblöcken 2, 3 von
oder zu einem Bus-Master übertragen
werden, aufgezeichnet werden.
-
2 zeigt
ein weiteres vereinfachtes Diagramm gemäß einer Ausführungsform
der Erfindung. In 2 sind die internen Blöcke des
Speicher-Trace-Moduls 4 ausführlicher
als in 1 dargestellt. 2 zeigt
drei FIFOs, FIFO1, FIFO2 und FIFO4, sowie die entsprechenden Logikkomponenten
und Busverbindungen für
jeden der FIFOs. Das Speicher-Trace-Modul stellt zwei allgemeine
Betriebsarten bereit: einen Aufzeichnungsmodus und einen Direktdatenmodus.
In dem Aufzeichnungsmodus werden die Schreibdaten der aufgezeichneten
Speicherblöcke über die
Busabschnitte 240 empfangen. Somit betrifft der Bus 240 Schreibdaten,
und der Bus 241 transportiert Lesedaten in dem Direktdatenmodus,
der untenstehend erläutert
wird. Der Bus kann eine Busbreite von 64 Bit aufweisen.
-
Der
Direktdatenmodus ist in einen Schreib- und einen Lesemodus unterteilt.
In dem Direktdatenschreibmodus werden nur die Daten übertragen,
die in ein dediziertes Register, das als Direktdatenmodusregister 250 bezeichnet
wird, geschrieben werden. In dem Direktdatenlesemodus werden von
dem Speicher (z. B. RAM) gelesene Daten direkt in die FIFOs geschrieben.
Die Multiplexer 251 und 252 und die Auswahlsignale
SEL1, SEL2 werden bereitgestellt, um die entsprechende Quelle für die Daten,
die an den FIFO1 weiterzuleiten sind, auszuwählen. Der FIFO1 empfängt ebenfalls
Steuersignale, die nicht gezeigt sind. Im Grunde sind die gleichen
Strukturen für
FIFO2 und FIFO4 gezeigt, wobei der Einfachheit halber weitere Auswahlsignale
weggelassen sind. Die entsprechenden zu erfassenden Daten kommen über die
Busabschnitte 242, 243 und den Multiplexer 253 bei
FIFO2 bzw. über
den Busabschnitt 244 und den Multiplexer 254 bei
FIFO4 an. Der Bus 244 ist so eingerichtet, dass er entweder
Schreib- oder Lesedaten überträgt.
-
In
dem Direktdatenmodus (Lesen und Schreiben) werden keine anderen
Informationen als die eigentlichen Daten übertragen. Die Adresse der geschriebenen
Daten kann nur durch die Reihenfolge von Schreib- oder Lesezugriffen
der CPU 1 oder des DMA bestimmt werden. Die Übertragungsgröße (wie
zum Beispiel 8, 16 oder 32 Bit) ist programmierbar.
-
Daten,
die nicht in der korrekten Übertragungsgröße geschrieben
oder gelesen werden, werden abgeschnitten oder erweitert. Wenn zum
Beispiel die auf einen 16-Bit- und einen 32-Bit-Schreibvorgang programmierten Übertragungsgrößen benötigt werden,
sind die in den FIFO geschriebenen Daten 32 Bit breit, wobei jedoch
lediglich die unteren 16 Bit des FIFO übertragen werden. Wenn ein
8-Bit-Vorgang auszuführen ist,
sind die Bit 8 bis 15 des FIFO unbestimmt, so dass die oberen 8
Bit der übertragenen
Daten von dem vorhergehenden Inhalt des FIFO abhängen. Bei Direktdatenmodus-Schreibvorgängen wird
die Programmierung der Bereiche aller FIFOs verworfen, und es wird
keine Datenaufzeichnung durchgeführt.
Ausschließlich
Schreibvorgänge
in das Register 250 sind gültig. In der Direktdatenmodus-Lesekonfiguration
werden die gelesenen Daten direkt in den FIFOs gespeichert, aber
es werden keine Kopfzeilen- und Adressinformationen übertragen. Somit
muss die Lesereihenfolge die korrekte Adresse bestimmen. Die CPU 1 kann
alle FIFOs, FIFO1, FIFO2 und FIFO2, zur Erfassung von Daten verwenden.
Die CPU 1 muss sicherstellen, dass ein FIFO1 vollständig geleert
ist, bevor der nächste
FIFO (z. B. FIFO2, der sich auf eine andere Speichereinheit bezieht,
d. h. auf einen anderen RAM-Block) gefüllt wird, da das an die externe
Vorrichtung zu übertragende
Datenpaket keine Informationen über
den Speicherblock (RAM-Block) enthält. Das in 2 gezeigte
Modul kann im Wesentlichen für
verschiedene Vorrichtungskonfigurationen konfiguriert werden. Die gestrichelten
Elemente in 2 zeigen die von der Konfiguration
abhängenden
optionalen Teile. Das Mapping der FIFOs auf die verschiedenen Ressourcen
hängt von
der Vorrichtungskonfiguration ab und wird während der Spezifizierung der
Vorrichtung festgelegt. Einer der FIFOs wie zum Beispiel der FIFO4 kann
so ausgewählt
werden, dass er ausschließlich zu
Peripheriegeräten
gehört.
Das Modul kann ferner über
die CPU 1 oder einen spezifischen JTAG-Anschluss konfiguriert
werden.
-
Des
Weiteren können
in dem Aufzeichnungsmodus die Daten eines Peripheriebusses der integrierten
elektronischen Vorrichtung aufgezeichnet werden. Immer dann, wenn
ein Schreib- oder Lesezugriff stattfindet, werden die Adressdatengröße (8, 16,
32, 64 Bit) und ein Verweis auf das Modul, das den Schreib- oder
Lesevorgang ausgelöst
hat, in dem FIFO des entsprechenden Speicherblocks gespeichert.
-
Der
FIFO1, der FIFO2 und der FIFO4 sind in Unterabschnitte unterteilt,
um sich auf erfasste Daten beziehende Informationen zu speichern.
Für den FIFO1
gibt es einen Abschnitt, der sich auf den Master der Datenübertragung 210 bezieht,
einen Abschnitt für
die Größe (Datenmenge)
der Datenübertragung 211,
einen Abschnitt für
die Startadresse der Daten 212 und für die erfassten Daten 213.
Für den FIFO2
und den FIFO4 werden entsprechende Abschnitte 220, 221, 222 und 223 sowie 230, 231, 232 und 233 bereitgestellt.
Die spezifischen Informationen und Daten, die sich auf den Master,
die Blockgröße und die
Adresse der aufgezeichneten Daten beziehen, werden über zusätzliche
entsprechende Gruppen von Busstrukturen 260, 261 und 262 empfangen.
Gemäß einer
Ausführungsform
der vorliegenden Erfindung sind die FIFOs 86 oder 54 Bit
breit. Die 86 bzw. 54 Bit sind in die oben erwähnten Unterabschnitte unterteilt.
Die Tiefe des FIFO beträgt
32 oder 64 Wörter,
entsprechend entweder 86 Bit bzw. 54 Bit. In dem Aufzeichnungsmodus
speichern zwei Bit den Auslöser
(Block 210), zwei Bit speichern die Größe des Schreibvorgangs (Block 211),
64 Bit speichern die geschriebenen Daten (Block 213), und
18 Bit speichern die Adresse (Block 212), in die die Daten
geschrieben wurden.
-
Des
Weiteren ist eine Steuereinheit 203 über die Busstrukturen 270, 271 und 272 mit
dem FIFO1, dem FIFO2 und dem FIFO3 gekoppelt. Die Busabschnitte 270, 271 und 272 zeigen
an, ob die FIFOs leer sind oder ob es bei irgendeinem der FIFOs
einen Überlauf
gibt. Die aufgezeichneten Daten und Adressinformationen werden über die
Busabschnitte 245, 246 bzw. 247 an einen
Multiplexer 201 geleitet, der durch die Steuereinheit 203 so
gesteuert wird, dass er einen der drei FIFOs, FIFO1, FIFO2 bzw.
FIFO4 auswählt.
Der ausgewählte
FIFO wird an den Seriellumsetzer 202 durchgeschaltet, um
die erfassten Daten und die entsprechenden Informationen in serielle Daten
umzuwandeln. Die erfassten Daten und die entsprechenden Informationen
werden von dem Seriellumsetzer 202 an die externen Schnittstellenanschlüsse 204, 205, 206, 207 und 208 geleitet.
Die externe Schnittstelle ist als serielle Schnittstelle konfiguriert.
-
Die
Anschlüsse 207 und 208 der
externen Schnittstelle stellen vielmehr eine Gruppe von Anschlüssen als
lediglich zwei einzelne Anschlüsse
dar. Diese Anschlüsse
können
in einer beliebigen nützlichen
und vorteilhaften Anzahl zur Datenübertragung vertreten sein wie
zum Beispiel 2, 4, 8 oder 16 Anschlüsse. Der Anschluss 206 stellt
ein Taktsignal bereit, und der Anschluss 205 wird zur Bereitstellung
einer Synchronisierung für
die externe Synchronisierung verwendet. Der Anschluss 204 könnte so
konfiguriert sein, dass er ein Freigabesignal von einer externen
Vorrichtung empfängt,
um die Datenübertragung
anzuhalten, wenn die externe Vorrichtung nicht für den Datenempfang bereit ist.
-
Wenn
keine Daten in dem FIFO gespeichert sind, kann der FIFO diesen Zustand
an den Steuerblock 203 über
den Busabschnitt 270, 271, 272 unter Verwendung
eines Leersignals signalisieren. Sämtliche in dem FIFO gespeicherte
Daten müssen
an den Seriellumsetzer 202 übertragen werden, wenn der Steuerblock
den entsprechenden FIFO auswählt. Wenn
der FIFO nicht schnell genug geleert wird, um einen FIFO-Überlauf
zu verhindern, wird ein Überlaufsignal
aktiviert, wenn die letzte Stelle in dem FIFO belegt ist. Der Anwender
kann wählen,
ob die Ausführung
des Programms bzw. die Datenübertragung in
diesem Fall ausgesetzt werden soll oder ob in den Statusbit der
nächsten
Nachricht dieses bestimmten FIFOs ein Überlauf signalisiert wird.
Der Überlauf wird
nicht in der gerade übertragenen
Nachricht signalisiert.
-
Der
Multiplexer 201 ist so eingerichtet, dass er gemäß einem
Round-Robin-Schema
zur Übertragung
der Daten aus den verschiedenen FIFOs an den Seriellumsetzer 202 gesteuert
wird. In dem Aufzeichnungsmodus und in einer Konfiguration mit drei Speicherblöcken (drei
RAMs) könnte
ein Paket von FIFO1 übertragen
werden, gefolgt von einem Paket von FIFO2, gefolgt von einem Paket
von FIFO3. Wenn ein FIFO leer ist, überspringt der Steuerblock diesen
FIFO.
-
3 zeigt
drei verschiedene Konfigurationen von Datenprotokollen, d. h. Paketformate
für die Datenübertragung über die
dedizierte Schnittstelle gemäß der vorliegenden
Erfindung. 3(a) zeigt das Paketformat
in dem Aufzeichnungsmodus für
typische RAM-Adressen. 3(b) zeigt
ein Paketformat für
Peripherieadressen. 3(c) zeigt ein
Paketformat, das sich auf den Direktdatenmodus bezieht. Unter Bezugnahme
auf 3(a) kann bei Aufzeichnung von
RAM-Adressen ein Paket aus zwei Bit RAM [1:0], die den RAM, in dem
die Daten gespeichert sind, angeben, aus zwei Statusbit STAT[1:0],
aus zwei Bit für
die Größe SIZE[1:0]
und den 18 Bit (256 kByte) Adresse der Daten ADDR[17:0] sowie aus 2SIZE × 8 Datenbit
DATA[xx:0] bestehen. Wie in 3(b) gezeigt,
sind die Pakete leicht unterschiedlich, wenn eine Peripherieadresse
erfasst wird. Wenn eine Peripherieadresse aufgezeichnet wird, wird
die tatsächliche
Adresse auf 17 Bit (128 kByte) reduziert und das zusätzliche
Bit REG gibt den aufzuzeichnenden programmierbaren Bereich an. Mit
einem Bereichsbezeichner REG kann die externe Vorrichtung feststellen,
welches Peripheriegerät
aufgezeichnet wurde. Die tatsächliche
Adresse bzw. der Adressbereich für
den Peripherieaufzeichnungsvorgang können in einem oder mehreren
internen Registern näher
definiert werden. Somit gestattet es die Bereichsnummer (in Verbindung
mit einem internen Register, das als Adresszeiger o. ä. verwendet
wird) die Aufzeichnung von bestimmten Teilen selbst innerhalb größerer Bereiche,
obwohl der Peripherierahmen mehr als 256 kByte umfassen kann. Durch
das Bereichs-Flag REG kann die externe Vorrichtung feststellen,
welches Peripheriegerät
aufgezeichnet wurde. Für
die Speicheraufzeichnung und die Peripherieaufzeichnung bestimmt
SIZE[1:0], ob es einen 8-, 16-, 32- oder 64-Bit-Schreib- oder Lesevorgang
gab, was zur Rekonstruktion des 64-Bit-Worts auf der externen Vorrichtung
notwendig ist. Allgemein, d. h. in 3(a) und
(b), handelt es sich bei DATA[xx:0] um die geschriebenen Daten.
Wenn es insgesamt 3 Speicherblöcke
gibt, von denen jeder eine Größe von 256
kByte und einen Peripherierahmen (128 kByte) hat, ist es ebenfalls
nötig,
zu übertragen,
von welchem Rahmen die Daten ankommen. Dies wird durch RAM[1:0]
durchgeführt.
RAM[1:0] kann einen bestimmten Zustand (z. B. ,11', wenn zwei Bit verwendet
werden) zur Anzeige der Peripherieaufzeichnung enthalten. Die Adresse
der geschriebenen Daten wird durch ADDR[17:0] bzw. ADDR[16:0] übertragen. STAT[1:0]
definiert den Status der Nachricht oder des Moduls und speichert
den Auslöser
des Schreib- oder Lesevorgangs. Das Flag REG gemäß 3(b) definiert,
in welchen Bereich in dem Peripherierahmen der Schreibvorgang ausgeführt wurde,
und ist somit hilfreich bei der Verringerung der zu übertragenden
Daten. Wie in 3(c) gezeigt, werden
für den
Direktdatenmodus-Schreib- oder -Lesevorgang lediglich die in das
spezifische Register 250 geschriebenen Daten bzw. die von
der Speichereinheit (z. B. einem RAM-Block) gelesenen Daten in dem
FIFO des Speicher-Trace-Moduls 4 gespeichert und als einzelnes
Paket DATA[xx:0] übertragen.
Die Paketlänge
kann zum Beispiel auf 8, 16 oder 32 Bit programmiert werden.
-
4 zeigt
Wellenformdiagramme für
Signale, die an den Anschlüssen 204, 205, 206, 207 und 208 (in 2 gezeigt)
der externen Schnittstelle gemäß einer
Ausführungsform
der Erfindung auftreten können.
Das Freigabesignal RTPENA wird durch die externe Vorrichtung aktiviert.
RTPENA ist NIEDRIG, um anzuzeigen, ob die externe Vorrichtung für den Empfang
von Daten von dem Speicher-Trace-Modul des Mikrocontrollers bereit
ist. Wenn RTPENA HOCH ist, wird die Datenübertragung angehalten, jedoch
erst nachdem die Übertragung
des gesamten Pakets beendet wurde. Der externe Takt RTPCLK wird
durch das Speicher-Trace-Modul während
der Datenübertragung
aktiviert. Der Takt könnte
so konfiguriert sein, dass er ausgesetzt wird oder freilaufend ist,
wenn eine Datenpaketübertragung
beendet wurde. Das Speicher-Trace-Modul stellt ebenfalls ein Synchronisierungssignal
RTPSYNC bereit. Dieses Signal ist einen RTPCLK-Taktzyklus lang HOCH,
um externe Hardware mit dem Datenstrom zu synchronisieren (jedes
Paket). Daten werden, wie durch RTPDATA angezeigt, über einen
einzelnen oder über zwei,
vier, acht oder mehr Anschlüsse übertragen. Die
Konfiguration, bei der vier Anschlüsse verwendet werden, wird
unter Bezugnahme auf 5 erläutert.
-
5 zeigt
Wellenformen für
eine Konfiguration, in der vier Anschlüsse RTPDATA [1], RTPDATA [2],
RTPDATA [3] und RTPDATA [4] für
die Datenübertragung
verwendet werden. Der Synchronisierungsanschluss RTPSYNC ist nur
einen Taktzyklus des Taktsignals RTPCLK lang HOCH. 5 betrifft Aufzeichnungsmodus-Datenübertragungen
für einen internen
RAM-Block. Dementsprechend wird das wie mit Bezug auf 3(a) erläuterte Paketformat verwendet.
Die entsprechenden Bit der Pakete werden systematisch über die
vier Anschlüsse
verteilt. Das erste Bit des RAM[1:0] wird über RTPDATA[0] als RAM.1 übertragen.
Das zweite Bit, bei dem es sich um RAM.2 handelt, wird über den
nächsten
Anschluss RTPDATA[1] übertragen.
Die beiden Statusbit STAT[1:0] werden RTPDATA[2] und RTPDATA[3] zugeordnet.
Da alle vier Anschlüsse
verwendet werden, wird das nächste
Bit, bei dem es sich um SIZE.1 handelt, RTPDATA[0] zugeordnet. Dieses
Verfahren wird fortgesetzt, bis alle Bit übertragen wurden.
-
Im
Hinblick auf die Integration auf einem Halbleitersubstrat werden
die oben genannten Komponenten im Wesentlichen als auf demselben
einzelnen Halbleiterchip integriert angesehen. Dies betrifft die
CPU, den Speicher, der vorzugsweise ein interner RAM des Mikrocontrollers
ist, und die Schnittstellen für
die Peripheriegeräte.
Für andere
Anwendungen können
andere Mikrocontroller konstruiert und aufgebaut werden, einschließlich anderer
Mengen und Ausführungsformen
der oben beschriebenen Komponenten.