-
Die
vorliegende Erfindung bezieht sich auf das Gebiet der integrierten
Schaltkreise. Genauer gesagt, bezieht sich die Erfindung auf integrierte
Schaltkreise, die eine integrierte Diagnoseschaltung haben, welche über eine
Diagnoseschnittstelle kommunizieren soll.
-
Es
ist bekannt, integrierte Schaltkreise mit darin bzw. darauf angebrachten
Diagnosesystemen zu versehen. Beispiele derartiger Systeme sind
BIST-Steuerungen zum Testen von Speicher auf einem Chip, Zellenketten
mit Randabtastung und allgemeine Zellenketten mit Abtastung. Es
ist bekannt, integrierte Schaltkreise mit entsprechenden Schnittstellen
für Diagnoseschaltungen
zu versehen, z. B. mit Schnittstellen, wie sie durch die TAP-Steuerungen
von JTAG-Diagnose-Systemen
verwendet werden, die gemäß dem IEEE-Standard
11 49 aufgebaut sind. Die JTAG-Schnittstelle
erfordert typischerweise auf dem integrierten Schaltkreispaket vier bis
sechs externe Anschlüsse
für diesen
Zweck.
-
Mit
der Zunahme der Komplexität,
Größe und Leistungsstärke integrierter
Schaltkreise besteht eine generelle Forderung nach einer Steigerung
der Anzahl externer Anschlüsse
bzw. Anschluss-Stifte,
die an dem integrierten Schaltkreis angebracht werden können, damit
er seine normale (nicht diagnostische) Funktion erfüllen kann.
Es ist wünschenswert,
dass integrierte (on-board) Diagnosesysteme eines integrierten Schaltkreises
nur einen geringen Einfluss auf das funktionelle Verhalten und die
Leistungsfähigkeit
des integrierten Schaltkreises haben sollten.
-
Die
US-A-5,734,660 offenbart
einen integrierten Schaltkreis, in welchem ein bidirektionales Abtastnachrichtensignal
in Form einzelner Bits eine Einstellung des Abtastbetriebes und
die Eingabe/Ausgabe von eingescannten und ausgescannten Daten durchführt. Ein
getrenntes Abtastsignal für
den Abtasttest wird ebenfalls bereit gestellt und verwendet.
-
Gemäß einem
Aspekt der vorliegenden Erfindung stellt diese einen integrierten
Schaltkreis für
die Verarbeitung von Daten bereit, wobei der integrierte Schaltkreis
aufweist:
einen funktionellen Schaltkreis, der in der Weise
betreibbar ist, dass er Datenverarbeitungsvorgänge ausführt,
einen Diagnoseschaltkreis,
der in der Weise betreibbar ist, dass er Diagnosevorgänge mit
dem Funktionsschaltkreis ausführt,
und
einen Schnittstellenschaltkreis, der in der Weise betreibbar
ist, dass er Kommunikation zwischen dem Diagnoseschaltkreis und
einer externen Diagnoseeinrichtung bereitstellt, wobei
der
Schnittstellenschaltkreis ein bidirektionales serielles Signal verwendet,
um zu übertragen:
- (i) Steuersignale von der externen Diagnoseeinrichtung
zu dem Diagnoseschaltkreis, um die Diagnosevorgänge des Diagnoseschaltkreises
zu steuern, und
- (ii) Diagnosedaten zwischen der externen Diagnoseeinrichtung
und dem Diagnoseschaltkreis, dadurch gekennzeichnet, dass
der
Schnittstellenschaltkreis in der Weise betreibbar ist, dass er in
einem Übungs-
bzw. Trainingsbetrieb auf ein Trainingssignal einer vorbestimmten
Form reagiert, das von der externen Diagnoseeinrichtung unter Verwendung
des bidirektionalen seriellen Signals gesendet wurde, um Abtastpunkte
zum Abtasten des bidirektionalen seriellen Signals zeitgerecht zu
bestimmen bzw. deren Zeitablauf zu bestimmen.
-
Die
Erfindung geht von der Erkenntnis aus, dass mehrere externe Anschlüsse bzw.
Anschluss-Stifte, die
den integrierten Diagnosesystemen entsprechen, eine nachteilige
Zusatzlast bei der Bereitstellung derartiger Diagnosesysteme darstellen.
Die vorliegende Technik verwendet ein bidirektionales serielles
Signal, um sowohl Steuersignale als auch Diagnosedaten zu überfragen,
wie Sie zwischen den integrierten Diagnosesystemen und einer externen
Diagnoseeinrichtung, wie z.B. einem Computer mit einer Schnittstellenkarte,
erforderlich sind. Dies ermöglicht
eine vorteilhafte Reduzierung der Anzahl der für die Unterstützung der
Diagnosefunktion erforderlichen Anschluss-Stifte, und in einigen
Fällen
kann dies auf das Erfordernis eines einzigen externen Anschluss-Stiftes
reduziert werden. Der integrierte Schaltkreis kann ein Taktverhältnis (Anzahl
der IC-Takte im Verhältnis
zu Trainingstaktimpulsen) finden oder der externe Diagnoseschaltkreis
kann den Zeitablauf herunterregeln, bis das korrekte Trainings-
bzw. Übungssignal
stabil empfangen wird. Auf diese Weise kann der integrierte Schaltkreis
mit der externen Diagnoseeinrichtung "synchronisiert" werden, wobei diese Synchronisierung
durch Erfassen von Signalflanken oder dergleichen in den seriellen
Daten kontinuierlich aufrecht werden muss, um zu vermeiden, dass
die Synchronisierung verloren geht.
-
Die
Diagnoseschaltung kann eine Vielfalt von Diagnoseschemata ausführen, wie
z.B. Debugging-Vorgänge und
die Herstellung bzw. Erzeugung von Testvorgängen. Der Diagnoseschaltkreis
kann auch wiederverwendet werden, um eine Funktionalität, wie z.B.
die Herstellung einer Programmierungs- oder Herstellungskonfiguration,
zu erzeugen bzw. herzustellen, die normalerweise nicht als Diagnosevorgänge betrachtet
werden würden
und dennoch durch die Diagnoseschaltung in einer Art und Weise unterstützt werden
können,
die ihre Verwendung außerhalb
des Gebietes der Diagnose ermöglicht.
-
Die
durch das bidirektionale serielle Signal weitergeleiteten Steuersignale
können
eine Vielfalt unterschiedlicher Formen annehmen. Ein bevorzugter
Typ eines Steuersignals ist ein Rückstellsignal (Reset-Signal),
welches in der Weise betreibbar ist, dass es den Diagnoseschaltkreis
zu rücksetzt.
Dieses Reset-Signal kann in vorteilhafter Weise in Form des Haltens
des bidirektionalen seriellen Signals auf einem vorbestimmten Reset-Niveau
für eine
vorbestimmte Reset-Dauer bereitgestellt werden.
-
Eine
weitere sehr vorteilhafte Form eines Steuersignals ist ein Temposignal
aus dem Diagnose-Schaltkreis
an die externe Diagnose-Einrichtung. Der Diagnose-Schaltkreis kann
auf diese Weise in dem Sinne sein Tempo selbst bestimmen, dass er
der externen Diagnose-Einrichtung anzeigen kann, wenn er bereit
ist, mehr Daten zu empfangen und wann er einen Diagnosevorgang,
wie z. B. einen langandauernden komplexen Vorgang, abgeschlossen
hat.
-
Das
Tempo-Signal kann in vorteilhafter Weise bereitgestellt werden durch
Zuordnen eines Zeitfensters innerhalb des seriellen Signalprotokolls,
welches dem Tempo-Signal zugewiesen ist, wobei in diesem Zeitfenster
der Diagnose-Schaltkreis ein Signal-Niveau auf das bidirektionale
serielle Signal in einer Art und Weise aufbringen kann, die durch
die externe Diagnoseeinrichtung erfasst und verwendet werden kann,
um die Tempoinformation zu kommunizieren.
-
Eine
weitere Form eines Steuersignals ist ein Startsignal, welches durch
die externe Diagnoseeinrichtung erzeugt wird, und welches verwendet
werden kann, um den Beginn eines Frames (definierte Gruppe) serieller
Daten anzuzeigen.
-
Am
Ende eines Frames serieller Daten kann auch ein Stopp-Signal bereitgestellt
und verwendet werden, um einen Abbruch des Betriebs oder des Frames
anzuzeigen. Wenn das Stopp-Signal auf einem vorbestimmten Niveau
gehalten wird, so erzwingt dies einen Leerlaufzustand.
-
In
vorteilhafter Weise initialisiert der integrierte Schaltkreis den
Trainingsbetrieb, wie z.B. im Anschluss an ein Reset des Schnittstellenschaltkreises.
Das Temposignal kann verwendet werden, um anzuzeigen, dass der integrierte
Schaltkreis das Trainingssignal erfolgreich empfangen hat und sich
selbst synchronisiert hat.
-
Es
versteht sich, dass der Diagnose-Schaltkreis, mit welchem über den
Schnittstellenschaltkreis eine Kommunikation hergestellt wird, und
das bidirektionale Signal eine breite Vielfalt unterschiedlicher
Formen annehmen können.
Bevorzugte Beispiele sind eine oder mehrere Abtastketten zum Aufnehmen
von Daten aus dem Funktionsschaltkreis oder das Anwenden auf oder
Zuführen
von Daten zu dem Funktionsschaltkreis, ebenso wie einer oder mehrere
Buszugriffsschaltkreise für
die Fehlersuche (Debugging), die so betreibbar sind, dass sie eine
Kommunikation mit dem Bus des Funktionsschaltkreises bereitstellen.
Andere Formen von Diagnoseschaltungen sind ebenfalls möglich.
-
Ebenso
wie der Schnittstellenschaltkreis in dem oben erläuterten,
nicht getakteten Betrieb arbeitet, kann er in vorteilhafter Weise
auch in einem getakteten Betrieb arbeiten, in welchen die Kommunikation
durch ein getrenntes Taktsignal getaktet wird, das auch durch den
integrierten Schaltkreis verwendet wird. Die Verwendung eines getrennten
Taktsignals auf diese Art und Weise, welche durch den integrierten
Schaltkreis erzeugt werden kann, wobei das Taktsignal auf den integrierten
Schaltkreis aufgebracht oder aus einer dieser Möglichkeiten abgeleitet wird,
ermöglicht,
dass man höhere
Datenraten erzielt, da die Synchronisation sicherer ist als ein
Bezug auf Abtastpunkte, die nachfolgend überprüft werden.
-
Der
integrierte Schaltkreis ist vorzugsweise zwischen dem getakteten
und dem nicht getakteten Betrieb umschaltbar, initialisiert jedoch
den nicht getakteten Betrieb, da dieses im Allgemeinen der langsamere und
weniger anspruchsvolle Betrieb der zu unterstützenden Betriebsarten ist.
-
Unter
einem anderen Aspekt gesehen stellt die vorliegende Erfindung eine
Diagnoseeinrichtung zum Durchführen
von Diagnosevorgängen
mit einem integrierten Schaltkreis bereit, wobei die Diagnoseeinrichtung aufweist:
Einen Schnittstellenschaltkreis, der in der Weise betreibbar ist,
dass er eine Kommunikation zwischen der Diagnoseeinrichtung und
einem Diagnoseschaltkreis in dem integrierten Schaltkreis bereit
stellt, wobei der Schnittstellenschaltkreis ein bidirektionales,
serielles Signal verwendet, um zu übertragen:
- (i)
Steuersignale von der Diagnoseeinrichtung in den integrierten Schaltkreis,
um Diagnoseoperationen, die durch den integrierten Schaltkreis durchgeführt werden,
zu steuern, und
- (ii) Diagnosedaten zwischen der Diagnoseeinrichtung und dem
integriertem Schaltkreis, dadurch gekennzeichnet, dass
der
Schnittstellenschaltkreis in einem Übungs- bzw. Trainingsmodus
betreibbar ist, so dass er ein Trainingssignal einer vorbestimmten
Form verwendet, welches von der Diagnoseeinrichtung unter Verwendung
des bidirektionalen seriellen Signals gesendet wurde, um zeitgerechte
Abtastpunkte bzw. den Zeitablauf von Abtastpunkten zum Abtasten
des bidirektionalen seriellen Signals zu bestimmen.
-
Unter
einem weiteren Aspekt gesehen, stellt die vorliegende Erfindung
ein Verfahren zum Kommunizieren innerhalb eines Diagnoseschaltkreises
bereit, der in der Weise arbeiten kann, dass er Diagnoseoperationen
mit einem Funktionsschaltkreis innerhalb eines integrierten Schaltkreises
ausführt,
wobei das Verfahren die Schritte aufweist:
Verwenden eines
bidirektionalen seriellen Signals, um zu übertragen:
-
- (i) Steuersignale von einer externen Diagnoseeinrichtung
an den Diagnoseschaltkreis, um die Diagnoseoperationen des Diagnoseschaltkreises
zu steuern, und
- (ii) Diagnosedaten zwischen der externen Diagnoseeinrichtung
und dem Diagnoseschaltkreis, dadurch gekennzeichnet, dass
in
einem Trainingsbetrieb ein Trainingssignal einer vorbestimmten Form
von der externen Diagnoseeinrichtung unter Verwendung des bidirektionalen
seriellen Signals gesendet wird, um zeitgerechte Abtastpunkte bzw.
den Zeitablauf für
bzw. die Zeitpunkte für
Abtastpunkte zum Abtasten des bidirektionalen seriellen Signals
zu bestimmen.
-
Ausführungsformen
der Erfindung werden nun lediglich beispielhaft unter Bezug auf
die beigefügten Zeichnungen
beschrieben, von denen:
-
1 Schematisch
einen integrierten Schaltkreis darstellt, welcher integrierte (On-Board)
Diagnosesysteme umfasst, welche mit einer externen Diagnoseeinrichtung
verbunden sind,
-
2 einen
seriellen Datenframe (definierte Gruppe von Daten) für die Verwendung
beim Kommunizieren zwischen einer externen Diagnoseeinrichtung und
einem Schnittstellenschaltkreis eines integrierten Schaltkreises
darstellt,
-
3 ein
Flussdiagramm ist, welches schematisch die Schnittstellentrainingsvorgänge eines
Schnittstellenschaltkreises veranschaulicht,
-
4 ein
Flussdiagramm ist, welches schematisch die Datenaufnahmevorgänge eines
integrierten Schaltkreises veranschaulicht,
-
5 ein
Diagramm ist, welches schematisch einen integrierten Schaltkreis
veranschaulicht, der einen diagnostischen Bus-Master-Schaltkreis
in einem nicht getakteten Betrieb umfasst, um Bustransaktionen auszugeben,
um Diagnosevorgänge
mit einem integrierten Schaltkreis durchzuführen,
-
6 ein
Diagramm ist, welches schematisch einen integrierten Schaltkreis
zeigt, der einen diagnostischen Bus-Master-Schaltkreis in einem
getakteten Betrieb umfasst, um Bustransaktionen auszugeben, um Diagnosevorgänge mit
einem integrierten Schaltkreis durchzuführen, und
-
7 und 8 Aspekte
einer Kommunikationstechnik für
die Verwendung zwischen einer externen Diagnoseeinrichtung einem
integriertem Schaltkreis veranschaulichen.
-
1 zeigt
einen integrierten Schaltkreis 2, der mit einer externen
Diagnoseeinrichtung 4 verbunden ist. Die Verbindung zwischen
der externen Diagnoseeinrichtung 4 und dem integriertem
Schaltkreis 2 erfolgt über
eine bidirektionale serielle Schnittstelle, wie z. B. SWJ. Innerhalb
des integrierten Schaltkreises 2 empfängt ein Schnittstellenschaltkreis 6 das
bzw. die bidirektional(e) Signal(e). Die aus diesem seriellen Signal
dekodierten Daten und Steuersignale, die aus diesem seriellen Signal
dekodiert werden, werden an einen Diagnoseschaltkreis 8 weitergeleitet,
der Diagnosevorgänge
mit den anderen Elementen des integrierten Schaltkreises 2 in
Abhängigkeit
von diesen Steuersignalen und Daten durchführt. Daten und Steuersignale
können auch
von dem integrierten Schaltkreis an die externe Diagnoseeinrichtung 4 über das
bidirektionale serielle Signal zurückgeleitet werden. Der integrierte
Schaltkreis 2 ist typischerweise ein auf einem Chip integrierter Systemschaltkreis
(SoC).
-
Die
Funktionsschaltkreise innerhalb des integrierten Schaltkreises 2 umfassen
einen Prozessorkern 10, einen Co-Prozessor 12,
einen Speicher 14 und eine serielle UART-Einrichtung 16.
Diese Funktionsschaltkreise sind durch einen Funktionsbus 18 (beispielsweise
einen AMBA, AHB oder sonstigen Bus zum Verbinden funktioneller Schaltkreise)
miteinander verbunden. Der Diagnoseschaltkreis 8 ist schematisch
als ein Block innerhalb des integrierten Schaltkreises 2 dargestellt.
Es versteht sich, dass dieser Diagnoseschaltkreis eine Vielfalt
unterschiedlicher Formen annehmen könnte und beispielsweise serielle
Abtastketten umfassen könnte,
die sich entlang des Umfanges des integrierten Schaltkreises 2 erstrecken,
mit gewissen Funktionselementen oder innerhalb gewisser Funktionselemente,
je nach dem, was erforderlich. Die Diagnoseschaltung 8 kann auch
eine andere Form annehmen, wie z. B. die einer BIST-Einrichtung
und dergleichen.
-
Im
Gebrauch gibt ein Ingenieur, der die externe Diagnoseeinrichtung
verwendet, Befehle für
gewisse Diagnosevorgänge
aus, die mit dem integrierten Schaltkreis 2 in Reaktion
auf Steuersignale und Daten, welche an den integrierten Schaltkreis 2 über die
bidirektionale serielle Schnittstelle und den Schnittstellenschaltkreis 6 weitergeleitet
werden, durchgeführt
werden sollen. Die Ergebnisdaten werden durch den Schnittstellenschaltkreis 6 entlang
der bidirektionalen Schnittstelle an die externe Diagnoseeinrichtung 4 zurückgeleitet.
-
2 veranschaulicht
einen Frame (formatierte Datengruppe) serieller Daten. Dieser Frame
weist ein Start-Bit auf, auf welches acht Daten-Bits, ein Stopp-Bit
und ein Fortsetzungsbit folgen. Das Stopp-Bit und das Fortsetzungsbit
können
als Teil eines Stoppsignals betrachtet werden, welches den seriellen
Frame bzw. die serielle Datengruppe abschließt. Die Verwendung dieses seriellen
Datenframe-Protokolls für
die Weiterleitung von 8-Bit-Datenwerten, welche reine Datenwerte
sein können
oder welche eingebettete Steuerbefehle enthalten können, an
den Diagnoseschaltkreis 8, ebenso wie auch die Steuerfunktionen,
die durch das Start-Bit, das Stopp-Bit und das Fortsetzungsbit selbst
bereit gestellt werden, werden im folgenden beschrieben. Es versteht sich,
dass in anderen Ausführungsformen
die Anzahl von Bits in einem Frame eine andere sein könnten, einschließlich unterschiedlicher
Anzahlen von Daten-, Start- und/oder Stopp-Bits.
-
3 ist
ein Flußdiagramm,
welches das Training bzw. den Übungsbetrieb
des Schnittstellenschaltkreises 6 veranschaulicht. Der
Schnittstellenschaltkreis 6 ist einem nicht getakteten
Betriebsmodus betreibbar, um exakte Zeitablaufinformation aus dem
seriellen Datensignal selbst ableiten kann, was die zu verwendeten Abtastpunkte
angeht. Dies wird erreicht durch Trainieren des Schnittstellenschaltkreises 6.
Das Training nimmt die Form der externen Diagnoseeinrichtung 4 an,
welche einen bekannten, seriellen Datenstrom (beispielsweise abwechselnde
Werte von 0 und 1) sendet, wobei der Schnittstellenschaltkreis versucht,
dieses Trainingsmuster in einer Art und Weise abzutasten, dass die
korrekte Sequenz ordnungsgemäß empfangen
wird. Der Schnittstellenschaltkreis 6 initialisiert nach
dem Herauffahren oder im Anschluss an ein Reset den Trainingsbetrieb,
währenddessen
er versucht, das Trainingsmuster zu empfangen. Wenn er dieses Trainingsmuster empfängt, so
gibt er ein Fortsetzungssignal aus, welches die externe Diagnoseeinrichtung 4 so
interpretieren kann, dass sie bedeutet, dass das Trainingsmuster
erfolgreich empfangen wurde und dass dementsprechend der Schnittstellenschaltkreis 6 nunmehr
Abtastpunkte verwendet, die für
den seriellen Datenstrom passend bzw. angemessen sind. Die externe
Diagnoseeinrichtung kann die Datengeschwindigkeit der seriellen
Daten verändern
(z. B. Absenken), bis der Schnittstellenschaltkreis 6 in
der Lage ist, ihn korrekt zu empfangen und die passende Anzeige
auszugeben, dass er geübt
bzw. trainiert ist.
-
3 veranschaulicht,
wie der Schnittstellenschaltkreis 6 wartet, bis er von
dem Reset bei Schritt 20 zurückkehrt. In Schritt 22 erfolgt
der Eintritt in den Trainingsbetrieb. Bei Schritt 24 tastet
der Schnittstellenschaltkreis 6 das bidirektionale serielle
Signal mit einer Folge von Punkten ab, die versuchen, das Trainingsmuster
alternativer 0- oder 1-Werte zu identifizieren. Die Abtastpunkte
werden normalerweise definiert durch das Taktsignal, welches innerhalb
des integrierten Schaltkreises 2 verwendet wird, wobei
die Abtastpunkte normalerweise bei einem festen Vielfachen oder
einer sonstigen Ableitung dieser Taktfrequenz liegen.
-
In
Schritt 26 überprüft der Schnittstellenschaltkreis 6,
nachdem er das, was er als einen Frame serieller Daten angesehen
hat, abgetastet hat, das empfangene Muster, um festzustellen, ob
es mit dem Muster der Trainingsdaten zusammenpasst. Wenn eine solche Übereinstimmung
bzw. ein solches Zusammenpassen nicht festgestellt wird, so geht
die Verarbeitung zurück
zu Schritt 24 und die Abtastung wird fortgesetzt. Es versteht
sich, dass es in dieser Ausführungsform
in der Verantwortung der externen Diagnoseeinrichtung 4 liegt, die
Daten des bidirektionalen Signals zu variieren, bis sie durch den
integrierten Schaltkreis ordnungsgemäß empfangen werden können. Dies
erfolgt generell in Übereinstimmung
mit dem Prinzip des Verlagerns der Bereitstellung von Diagnosevorgängen in
externe Einrichtungen 4 anstatt diese innerhalb des integrierten
Schaltkreises 2 vorsehen zu müssen.
-
Wenn
Schritt 26 festgestellt hat, dass das Trainingsmuster erfolgreich
empfangen wurde, so dient Schritt 28 dazu, die seriellen
Datenwerte während
der Dauer des Fortsetzungsbits auf ein Niveau 0 herunterzuziehen.
Das Fortsetzungsbit befindet sich üblicherweise potentialfrei
auf einem Niveau, welches einer 1 entspricht, es sei denn, es wird
durch den integrierten Schaltkreis aktiv heruntergezogen. Das Herunterziehen
des Fortsetzungsbits während
des Trainingsbetriebs, d. h. nach einer Initialisierung, zeigt der
externen Diagnoseeinrichtung 4 an, dass der integrierte
Schaltkreis 2 erfolgreich auf die Datenrate des bidirektionalen
seriellen Signals der externen Einrichtung 4 trainiert
worden ist und nunmehr in der Lage ist, über den Schnittstellenschaltkreis 6 zu
kommunizieren. In Schritt 30 wird der Trainingsbetrieb
verlassen, und in Schritt 32 erfolgt der Eintritt in den
Datenbetrieb.
-
4 ist
ein Flussdiagramm, welches schematisch die Arbeitsweise bzw. den
Betrieb des Schnittstellenschaltkreises 6 während des
normalen Datenaufnahmebetriebes zeigt. In Schritt 34 wartet
der Schaltkreis 6 auf den Empfang eines Start-Bits am Beginn
eines seriellen Daten-Frames.
Ein Start-Bit ist in diesem Beispiel immer ein Wert von 0. Dementsprechend
fährt der
Schnittstellenschaltkreis 6, wenn die externe Diagnoseeinrichtung 4 das
bidirektionale serielle Signalniveau auf einer Eins hält, fort,
auf ein Start-Bit zu warten und wird effektiv im Leerlaufzustand
gehalten.
-
Sobald
das Start-Bit erfasst worden ist, geht die Verarbeitung weiter zu
Schritt 36, bei welchem acht Daten-Bits unter Verwendung
der Abtastzeitabläufe
bzw. Abtastzeitpunkte abgetastet werden, welche in dem Trainingsbetrieb,
der in Bezug auf 3 beschrieben wurde, bereit
gestellt wurden. Im Anschluss daran dient Schritt 38 dazu,
zu erfassen, ob ein Stopp-Bit vorhanden ist, welches in diesem Beispiel
immer einen Wert von 1 hat. Die Anwesenheit des Stopp-Bits kann
verwendet werden als Überprüfung darauf,
ob der Frame ordnungsgemäß empfangen
wurde, und kann durch die externe Diagnoseeinrichtung auch verwendet
werden, um die dem Stopp-Bit vorangehenden seriellen Daten effektiv
abzubrechen.
-
Wenn
das Stopp-Bit erfolgreich erfasst wurde, so dient Schritt 40 dazu,
die 8-Datenbits an den Diagnoseschaltkreis 8 weiterzuleiten.
Diese acht Datenbits können
Datenwerte sein, die dem integrierten Schaltkreis als Auslöser zugeführt werden,
oder Steuerungsbefehle für
den Diagnoseschaltkreis 8, damit dieser seine Aktionen
konfiguriert, oder sie können
andere Zwecke haben. Es versteht sich, dass dann, wenn der Zustand
des Diagnoseschaltkreises 8 derart ist, dass die erforderliche
Diagnoseoperation im Ausleiten von Daten aus dem integrierten Schaltkreis
in die externe Diagnoseeinrichtung 4 liegt, dass dann anstelle
des Abtastens von acht Daten-Bitwerten in Schritt 36 der
Schnittstellenschaltkreis statt dessen geeignete Datenbitwerte vorbringen
kann, die nach seinem Wunsch an die externe Diagnoseeinrichtung 4 herausgeleitet
werden sollen, wobei diese dann durch die externe Diagnoseeinrichtung 4 erfasst
und aufgezeichnet werden.
-
Im
Anschluss an Schritt 40 stellt Schritt 42 fest,
ob der Schnittstellenschaltkreis bereit ist, fortzufahren oder nicht.
Es kann sein, dass der Diagnoseschaltkreis damit beschäftigt ist,
einen Diagnosevorgang auszuführen,
der ein komplexer Vorgang sein kann, welcher eine relativ lange
Zeit benötigt,
bis er abgeschlossen ist, und dass es nicht zweckmäßig oder
nicht möglich
ist, dass weitere Daten aus der externen Diagnoseeinrichtung gesendet
werden, bis dieser Vorgang abgeschlossen ist. Die weiteren Daten
aus der externen Diagnoseeinrichtung 4 können ein
Befehl für
einen folgenden Diagnosevorgang sein, wobei es nicht möglich ist, diesen
zu beginnen, bis die vorangehende Operation beendet ist. Wenn der
Schnittstellenschaltkreis 6 nicht bereit ist, fortzufahren,
so geht die Bearbeitung weiter zu Schritt 44, in welchem
der Schnittstellenschaltkreis 6 das serielle Datenniveau
während
der Dauer des Fortsetzungsbits auf ein Niveau 0 herabzwingt. Dies
zeigt der externen Diagnoseeinrichtung 4 an, dass die serielle
Kommunikation nicht fortgesetzt werden sollte. Die Verarbeitung
kehr dann zurück
zu Schritt 42, bis der Schnittstellenschaltkreis 6 bereit
ist, fortzufahren.
-
Wenn
die Feststellung bei Schritt 38 ergeben hat, dass das Stopp-Bit
nicht ordnungsgemäß erfasst wurde,
so geht die Verarbeitung weiter zu Schritt 46. Schritt 46 bestimmt,
ob sieben aufeinander folgende, unmittelbar vorangehende Abbrüche (kein
Vorliegen des Stopp-Bits) aufgetreten sind, wobei in diesem Fall
dieses der Achte ist und bei Schritt 50 ein Reset ausgelöst wird.
Wenn der Test bei Schritt 46 nicht erfüllt wird bzw. nicht erfolgreich
ist, so leitet der Schritt 48 einen Abbruch an den externen
Diagnoseschaltkreis.
-
Es
versteht sich, dass die Signalniveaus des Trainingsmusters mit ihrer
speziellen Bedeutung und andere Merkmale des seriellen Datenprotokolls
allesamt variiert werden könnten,
während
die vorliegende Technik dennoch realisiert wird.
-
Eine
weitere Beschreibung der oben erwähnten bidirektionalen Kommunikation
wird im folgenden wiedergegeben:
-
Begriffe und Abkürzungen
-
Die
folgende Beschreibung verwendet Begriffe und Abkürzungen, wie sie hier angegeben
sind:
Begriff | Bedeutung |
SWO | Single Wire Output (Ausgang
auf einem Einzeldraht). Eine anwendungsspezifische Nachführkomponente
(nicht zu verwechseln mit allgemeiner Nachführung, die prozessor-spezifisch
ist). |
DBT | Dies ist ein TAT-Block,
der als ein AMBA-(AHB- oder AHB-Lite-)Master für den Zugriff auf einen Systembus
wirkt. Er kann optional auch einen Abtastkettenzugriff bereitstellen. |
AMBA | Der ARM-Bus-Standard innerhalb
eines Chips. |
JTAG | Die Spezifikation der
IEEE Joint Test Access Group für
Schnittstellen mit 4 bis 6 Drähten
bzw. -Anschlüssen
zur Steuerung einer seriellen Schnittstelle mit Abtastketten. JTAG
wird verwendet für
die Fehlersuche, ebenso wie auch als Test. SWJ beruht auf dem zugrunde
liegenden JTAG-Model für
das Debugging. ScanTAP beruht auf dem Test-Teil von JTAG. |
Emulator | Eine Fehlbezeichnung,
welche als Bezug auf eine Laufsteuerbox (Teil von HW) verwendet
wird, die zum Debugging an einem Chip angebracht ist. Normale Emulatoren beruhen
auf JTAG. Eine an eine SWJ-Schnittstelle angeschlossene Box würde aus historischen
Gründen
ebenfalls ein Emulator genannt werden. |
OCRC | On-Chip Run-Control (auf
dem Chip integrierte Laufsteuerungs-)Komponente von SWJ. Diese stellt
die aktuelle Protokollhandhabung für DBT und Abtastketten bereit. |
-
Einführung
-
Das
Folgende ist ein Vorschlag für
eine kleine JTAG-Komponente mit einem Einzeldraht bzw. einem einzelnen
Anschluss. Die SWJ-Komponente wird verwendet für das Debugging und das Testen
von Prozessoren (einschließlich
solcher mit mehreren Kernen) auf ARM-Basis unter Verwendung einer
Schnittstelle mit einem einzelnen Draht bzw. Kabel anstelle der
typischen JTAG-Schnittstelle
mit 4 bis 6 Drähten.
Die Einzeldrahtschnittstelle verwendet im Wortsinne nur einen Draht
bzw. einen Anschluss für
die Kommunikation in beiden Richtungen. Die Hochgeschwindigkeits-SWJ-Unterstützung erfordert
die Sichtbarkeit für
ein zusätzliches
Signal/zusätzlichen
Anschluss-Stift, welcher einen Takt enthält (wobei dies jedoch kein
für SWJ
bestimmter Takt sein muss). Der Takt (welcher wiederum aufgeteilt
sein kann) ermöglicht
hohe Geschwindigkeiten durch Bereitstellen einer sauberen Flanke
für das
Abtasten.
-
Der
nicht getaktete Betrieb ermöglicht
Geschwindigkeiten bis herauf zu etwa 3 MHz (Datenrate ist 8/11 dieser
Geschwindigkeit). Der getaktete Betrieb ermöglicht Raten bis zu etwa 40
MHz (die Datenrate beträgt 8/11
dieser Geschwindigkeit). Das generelle Drahtprotokoll ist in einer
seriellen Gruppe mit einem Start-Bit, einem Stopp-Bit und einem
Fortsetzungs-Bit für
jeweils 8 Daten-Bits ausgestattet. Ein gehaltenes Stopp-Bit erlaubt
eine unbegrenzte Leerlaufzeit. Ein Halten von Null ist ein Bus-Reset.
Der Emulator treibt die Schnittstelle, wobei das Fortsetzungs-Bit
anzeigt, wenn zurückgelieferte
Daten durch das Ziel bereit gestellt werden. Dies ermöglicht es
dem Emulator, dass er anhängig
bleibt, bis das Ziel den Abschluss eines Betriebes anzeigt. Im Gegensatz
zu JTAG kann also das Tempo des Emulators in geeigneter Weise eingestellt
werden.
-
Der
andere Teil von SWJ ist die Laufsteuerung auf dem Chip (OCRC). Die
OCRC unterstützt
das für DBT-Zugriff,
JTAG-Zugriff und optionalen direkten Abtastkettenzugriff (über DBT)
verwendete Protokoll. Die OCRC hat Zulassungen für spezielle, konstante ROM-Zeichenketten,
um die Leistungsfähigkeit
irgendwelcher TAPs in dem System (Kerne, Geräte, etc.) zu erhöhen. Im
Allgemeinen ist das Protokoll der OCRC in hohem Maße für SWJ optimiert,
um die höchstmöglichen
Geschwindigkeiten sicherzustellen. Im Allgemeinen bedeutet dies,
dass SWJ in den selben Geschwindigkeitsstufen viel schneller ist
als ein einfaches bzw. direktes JTAC.
-
Beim
Betrachten der elektrischen SWJ-Schnittstelle ist es wichtig festzuhalten,
dass dieses Modell sorgfältig
ausgewählt
wurde, um die Kosten für
die Zieleinrichtung minimal zu machen und um sehr preiswert Emulatoren
zu ermöglichen.
Im Allgemeinen erlaubt SWJ die Auswahl von Emulator-Klassen, um
einen Ausgleich zwischen Kosten und Geschwindigkeit bereitzustellen.
Auf diese Weise ist eine einfach nur knapp mit Anschluss-Stiften
ausgestattete MCU in der Lage, einen sehr preiswerten Emulator zu
verwenden, und ein schnelles Hochleistungsteil ist in der Lage,
einen wesentlich leistungsstärkeren
Emulator zu verwenden. Die Schnittstelle ist jedoch dafür ausgelegt,
sowohl die langsamen als auch die Hochgeschwindigkeitsformen zu unterstützen (nicht
getaktet und getaktet), so dass für beide Teile jeder Emulator
verwendet werden kann.
-
Elektrisches Design von SWJ
-
5 zeigt
das Blockdiagramm einer nicht getakteten Verbindung. 6 zeigt
das Blockdiagramm einer getakteten Verbindung. Alle Emulatoren müssen den
nicht getakteten Betrieb unterstützen,
der getaktete Betrieb ist jedoch optional. Dies deshalb, weil SWJ
immer in einem nicht getakteten Betrieb (von Reset) erscheint. Die
Schaltkreise sind dafür
ausgelegt, ein Umschalten zwischen den beiden in einfacher Weise
sowohl für
den Emulator als auch für
das Ziel durchzuführen.
-
Man
beachte, dass der Herabzieh-Widerstand von 200 K auf der Zielseite
auch in dem Chip oder auf der Platine sein kann.
-
Elektrische Details des nicht
getakteten Betriebs
-
Der
Signalwandler in dem Emulator in dem nicht getakteten Betrieb wird
verwendet, um das Signal schnell von LOW auf HIGH umzuschalten.
Der 10 K-Widerstand lässt
das Signal nur auf HIGH schweben (floaten), der Signalwandler (Rückkopplungsschaltkreis
im Bus-Haltestil) erfasst jedoch die Veränderung im aktuellen Strom
und treibt das Signal auf HIGH über
den Effektivwert hinaus. An diesem Punkt steigt er aus und lässt den
10 K-Widerstand das Signal auf HIGH halten. Die Form der Flanke
wird sauber genug für
die niedrigeren Geschwindigkeiten (3 MHz oder weniger) des nicht
getakteten Betriebs.
-
Für einfache
Teile (mit geringer Leistung) ist es möglich, dass nicht getaktete
Heraufziehmodell zu verwenden, um das SWJ-Debugging-Ende dieses
Teiles mit Strom zu versorgen. Dies ist nicht das normale Modell,
ist jedoch möglich
unter Verwendung von Kapazitätsabzug.
-
Elektrische Details des getakteten
Betriebs
-
Normalerweise
führt der
Zielort bzw. das Ziel den Takt für
den getakteten zu. Der Takt kann von dem Chip (Ausgang) oder von
der Zielortplatine auf den Chip (Eingang) kommen. Es ist auch möglich, einen
Pod (Emulatorverbindung) zu konstruieren, welcher den Takt über einen
Kristall oder einen PLL erzeugt, jedoch erzeugt der Emulator den
Takt nicht immer direkt. In jedem Fall muss es kein spezieller Takt
für SWJ
sein (kann auch für
andere Zwecke mitverwendet werden), er muss jedoch sauber sein.
-
Es
sei angenommen, das in den meisten Fällen der Takt geteilt wird.
Es wird empfohlen, den Takt in dem Bereich von 10 MHz bis 100 MHz
zu halten. Jede Teilung wird vereinbart und festgelegt, während man sich
noch in dem nicht getakteten Betrieb befindet und das Befehlprotokoll
verwendet. Der Grund für
das Verwenden eines Teiles liegt darin, dass derselbe Takt für Hochgeschwindigkeits-SWO
(oder andere Zwecke) verwendet werden kann, die gerne eine schnellere
Taktquelle hätten.
Das Protokoll von SWJ definiert, wie ein geteilter Takt sauber verwendet
werden soll. Man beachte, dass SWJ den Takt als seine Taktquelle
verwenden muss (auch wenn dieser umgeschaltet werden kann, wenn
man zwischen dem getakteten und dem nicht getakteten Betrieb wechselt).
Der Grund für
dieses Modell (gegenüber
Abtasten) liegt darin, dass die Taktflanken verwendet werden, um
die bi-direktionale Schnittstelle mit einem einzigen Anschluss-Stift zu unterstützen.
-
Kabelprotokoll für SWJ
-
Die
SWJ-Kabelschnittstelle beruht lose auf dem RS-232-Modell (sei sie
getaktet oder nicht). Jedes 8-Bit-Datenpaket ist in einem Frame
mit einem Start-Bit und zwei Stopp-Bits aufgenommen. Jedoch ist
das zweite Stopp-Bit in Wirklichkeit eine spezielle Antwortmarkierung,
wie es nachstehend erläutert
wird. Das Format ist:
0
= Start | 8-Bits-Daten
(in jede Richtung) | 1
= stop | 1
= fortsetzen, 0 = nicht fortsetzen |
-
Der
besondere Unterschied liegt in dem zweiten Stopp-Bit. Jedes zweite
Bit bleibt auf high, wenn das Paket angenommen wird und der Emulator
fortfahren soll. Es wird auf low gesteuert, wenn das Paket zurückgesendet
werden sollte. Dieser Mechanismus erlaubt es dem Zielort, den Emulator
auf die Geschwindigkeit einzustellen, die er handhaben kann. Diese
Tempobestimmung kann sowohl für
eine bit-weise Verwaltung (wie z. B. wenn die SWF-Taktgeschwindigkeit
schneller als ein Kern (von z. B. 32 KHz) ist), ebenso wie für den Abschluss
einer Operation verwendet werden (wie z.B. als eine DBT-Speicher-Transaktion).
-
Man
beachte, dass im nicht getakteten Betrieb das Ziel (bzw. das Zielobjekt)
einfach die Leitung auf high lässt
(aktives Heraufziehen), wenn fortgefahren werden soll (CONTINUE),
und ansonsten die Leitung auf low herabzieht. Für den getakteten Betrieb muss
das Ziel für
ein Fortsetzen auf high halten, ansonsten auf low herabziehen.
-
KABELPROTOKOLL-BETRIEBSARTEN
UND -ZUSTÄNDE
-
Im
Allgemeinen gibt es 4 Kabelprotokoll-Betriebsarten oder -zustände:
- 1. Reset. Dieser tritt auf, wenn das Kabel
für acht
oder mehr Pakete auf low gehalten wird. Das Ziel erfasst dies, weil
das Stopp-Bit fehlt. Dies wird ein Alarm- oder Warnsignal genannt.
Wenn mehr als 8 Warnsignale erfasst wurden, kann das Ziel davon
ausgehen, dass ein Reset (Rücksetzen)
der Schnittstelle erfolgt ist (dies hat ausschließlich Einfluss
auf SWJ). Die SWJ-Schnittstelle kehrt in den nicht getakteten Betrieb
zurück.
Man beachte, dass ein nicht angeschlossener Emulator wegen des Herabzieh-Widerstandes
einen Reset verursacht.
- 2. Übungsbetrieb
(Training) – nur
im nicht getakteten Betriebszustand. Nach einem Reset sendet der
Emulator ein Datenpaket mit 0 × 55
(0b01010101). Das Ziel verwendet dies, um automatisch die Baud-Rate
in der nicht getakteten Abfolge einzustellen oder um den Teiler
bei einem getakteten System zu verifizieren. Das Trainingspaket
wird weiterhin gesendet, wenn das zweite Stopp-Bit auf CONTINUE
(1) gesetzt ist. Der Übungsbetrieb
wird beendet, wenn das zweite Stopp-Bit auf NOT CONTINUE (0) gesetzt
ist. Wenn mehr als 8 CONTINUE-Bits durch den Emulator erfasst werden,
kann er wahlweise erneut ein Reset versuchen und dann die Geschwindigkeit
für den Übungsbetrieb
verlangsamen. Dies bewirkt eine Anpassung für den Fall eines sehr langsamen
Chips (der keine ausreichende Überabtastung
bei einem nicht getakteten 3 MHz-Betrieb durchführen kann).
- 3. Daten. Der Datenbetrieb ist der normale Paketbetrieb. Dieser
Betrieb wird aufgenommen, nachdem der Übungsbetrieb verlassen wurde.
Zwischen jedem Datenpaket können
Leerlaufzustände
sein (wenn der Stopp bzw. die Unterbrechung länger als einen Takt dauert).
Auf diese Weise bewirkt die Einführung
eines Start-Bits immer die Wiederherstellung des normalen Datenbetriebs
und Datenzustandes.
- 4. Leerlauf. Ein Leerlaufzustand besteht darin, dass die Leitung
im Stopp-Zustand gehalten wird (kein Start gesendet wird). Dies
bedeutet, dass der Anschluss-Stift auf high gehalten wird. Der Leerlaufzustand
kann so lange wie erforderlich gehalten werden. Er wird beendet
durch einführen
eines Startbits. Im nicht getakteten Betrieb erscheint das Start-Bit
bei dem nächsten
natürlichen
internen Takt (für
den Emulator). Im getakteten Betrieb kommt der Start von einer Taktflanke.
-
RESET BETRIEB
-
Der
Reset-Betrieb ist definiert als 8 oder mehr Pakete mit einem nicht
vorgebrachten Stopp-Bit (Stopp ist 0 anstatt von 1). Mit anderen
Worten, 8 Pakete, die verworfen werden müssen, bewirken einen Reset.
-
Die
Definition dafür,
welche Aktionen bei einem Reset durchgeführt werden müssen, sind
spezifisch für
SWJ und den OCRC-Block. Die Hauptabsicht besteht darin, nur die
Leitung frei zu machen, so dass das Verwerfen irgendeines anhängigen OCRC-Betriebs/-Befehls
das Hauptziel ist, ebenso wie auch das Löschen irgendeines internen
Zustandes des SWJ-Blockes.
-
ÜBUNGSBETRIEB
-
Der Übungs- bzw.
Trainingsbetrieb wird nur nach einem Reset aufgenommen. Der Trainingsbefehl liegt
in Form der Daten 0 × 55
vor. Der Trainingsbetrieb wird nur verlassen, wenn das Ziel das
zweite Stopp-Bit auf low steuert. Dies ermöglicht es, dass die Zielobjektzeit
automatisch die Baud-Rate (Geschwindigkeit des Datentaktes im nicht
getakteten Betrieb) erfasst, ebenso wie es sicherstellt, dass das
Ziel bzw. Zielobjekt die Daten verfolgen kann. Wenn der Datentakt
zu schnell ist, bleibt das zweite Stopp-Bit in dem schwebenden Zustand
high – dies
ermöglicht
es dem Emulator zu erfassen, dass das Ziel nicht folgen kann (und
so langsamere Geschwindigkeiten versuchen kann).
Start
= 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | Stop | CONTINUE |
| | | | | | | | | | 0) |
-
Daten betrieb
-
Der
Datenbetrieb folgt unmittelbar nachdem der Übungsbetrieb durch das NOT
CONTINUE-Bit (0) beendet worden ist. Der Datenbetrieb ist der normale
Arbeitsbetrieb für
SWJ, sei er getaktet oder nicht getaktet. Der Datenbetrieb ermöglicht die
Ausgabe von Befehlen auf dem Niveau der obigen SWJ-Kabelprotokolle.
Befehle im Datenbetrieb umfassen Befehle, die an die SWJ-Schnittstelle gerichtet
sind, ebenso wie solche, die als Teil des Blockes für die Laufsteuerung
auf dem Chip (OCRC) – On-Chip
Run-Control geleitet werden. Die hauptsächlichen Befehle im SWJ-Datenbetrieb umfassen:
- • Get-ID – liest
die ID des SWJ-Moduls zurück.
Dies kann sich in einen OCRC-Befehl umwandeln. Dieser Befehl zeigt
auch an, ob ein Taktbetrieb möglich
ist.
- • Setze
den Teilungszähler
für den
Taktbetrieb. Dieser Befehl ermöglicht
das Einstellen des Zählers
und dann das Durchführen
des Umschaltens in den getakten Betrieb. Auf die Umschaltung in
den getakten Betrieb folgen 8 Pakete im Wert des Leerlaufzustandes
(siehe unten) und dann ein Get-ID-Befehl im getakteten Betrieb.
Wenn der Get-ID-Befehl fehlschlägt,
kann der Emulator ein Reset verwenden, um in den nichtgetakteten
Betrieb zurückzukehren.
- • Abbruch
des aktuellen OCRC-Vorgangs. Im Falle kontinuierlicher NOT CONTINUE-Antworten von der SWJ-Schnittstelle
auf einen Datenbefehl kann der Emulator den Abbruchbefehl verwenden,
um anzufordern, dass die OCRC ihre aktuelle Aktion abbricht (falls
möglich)
und in einen bekannten Zustand zurückkehrt. Man beachte, dass
Abbruch in allen Teilsystemen derselbe Befehl ist wie er in SWJ
vorliegt.
-
Die
Haupt-OCRC-Befehle umfassen:
- • Get-ID – liest
die SWJ und OCRC-ID-Information zurück. Diese Information umfasst
die Version der Blöcke
ebenso wie Information bezüglich
der Parameter des Systemmodells (einschließlich ob getakteter Betrieb
unterstützt
wird, ob DBT-ScanTAP unterstützt
wird, ob ein JTAG-Zugriff unterstützt wird, und ob DBT MemTAP
unterstützt
wird).
- • Auswahl
von DBT MemTAP. Dieses wählt
den MemTAP für
die Befehlszufuhr aus. Bis zur Beendigung (über eine MemTAP-Beendigungsanforderung
oder Abbruch) werden die Befehle, die folgen, der MemTAP-Komponente
zugeführt.
Man beachte, dass Abbruch in allen Teilsystemen derselbe Befehl
ist wie er in SWJ vorliegt. Daraufhin werden 34 Bit-Daten und Optimierungsbefehle
zugeführt
(wie z. B. mehrere 32-Bit-Daten mit derselben 2-Bit-Erweiterung, Wiederholungen,
etc.).
- • Wähle DBT-Scan
TAP aus. Dies wählt
Scan-TAP für
die Befehlszuführung
aus. Dies arbeitet in derselben Weise wie die Befehlszuführung über MemTAP.
Dies arbeitet in derselben Weise wie die Befehlszuführung über MemTAP.
- • Wähle JTAG-Befehl.
Dies wählt
die JTAG-Umhüllung
innerhalb von OCRC aus. Dies ermöglicht
die Zufuhr von JTAG-Operationen für Systeme, in welchen eine
JTAG-Kette in Gebrauch ist. Die Befehle, die an diese Einheit gesendet
werden, sind dafür
ausgelegt, den JTAG-Verkehr zu optimieren, einschließlich des
Betreibens bzw. Ansteuerns von TCK-Sequenzen, optimierten Verschiebungen
(Shifts) und ROM-Konstanten-Zuführungen
für gemeinsame
Vorgänge,
die auf die TAPs in dem System anwendbar sind (so weit durch den
Systementwickler gesteuert).
- • Wähle anderen
Befehl. Dies wählt
andere OCRC-Befehlszuführungen – reserviert.
-
Ein
Beispiel eines Befehls im Datenbetrieb sieht folgendermaßen aus:
Start
= 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | Stop
= 1 | CONTINUE (1/0) |
der einen Wert von 0 × 23 hat. Das CONTINUE-Bit
bleibt auf 1, wenn das Byte akzeptiert wird, und wird auf Null gesteuert,
wenn es wiederholt werden muss. Das heisst, der NOT CONTINUE-Bit-Zustand zeigt an,
dass das Byte (0 × 23)
von dem Ziel bzw. Bestimmungsort nicht akzeptiert wurde und erneut
gesendet werden sollte (und nochmals, wenn es immer noch nicht akzeptiert
werden sollte). Dieses bildet den Tempo-Bestimmungs-Mechanismus.
-
Man
beachte, dass die CONTINUE oder NOT CONTINUE-Anzeige aus einem der
folgenden drei Gründe
auftreten kann:
- • Die OCRC-Taktrate ist zu langsam,
um im Allgemeinen das nächste
Byte anzunehmen (Taktrate von OCRC ist dieselbe wie die des Systems,
wohingegen die Taktrate von SWJ davon verschieden sein kann).
- • Die
OCRC oder das Teilsystem verarbeitet immer noch das vorangehende
Byte (wie z. B. laufende TCKs, Busoperationen oder Abtastungen).
- • Die
OCRC führt
einen wiederholten Test durch (wie z. B. das Lesen einer Abtastkette
und Vergleichen mit einem erwarteten Wert).
-
Diese
drei Gründe
ermöglichen
die Tempofestlegung der Rohdatenrate (wie schnell der Emulator Bytes
generell zuführen
kann), die Befehlsabschluss- bzw. Ausführungsrate (wie schnell das
Teilsystem den Befehl selbst ausführen kann), und komplexe Operationsraten.
Die Tempofestlegung kann sich dynamisch verändern auf der Basis von Veränderungen
in der internen Taktrate, ebenso wie auf Grund von Änderungen
in der Art der Operationen (beispielsweise können einige Arten von Speicher
langsamer sein als andere). Dies bildet einen leistungsfähigen Teil
der SWJ-Strategie
und hilft vielen Fällen
SWJ dabei, viel schneller zu sein als direktes JTAG (wobei Abfrage-
und Tempobestimmungsvorgänge
viele Probleme verursachen können).
-
LEERLAUFZUSTAND
-
Der
Leerlaufzustand ist ein Zustand innerhalb des Datenbetriebs. Der
Leerlaufzustand bildet eine Lücke
oder ein Füllteil
zwischen Datenpaketen. Der Emulator hält einfach den Stopp-Zustand
(high) so lange aufrecht wie gewünscht,
bevor er das nächste
Datenpaket einführt
(wie es durch das Start-Bit angezeigt wird, welches low ist).
Stop
= 1 | 1 | 1 | 1 | ... | 1 | 1 | 1 | Start
= 0 | Command... |
-
SWJ UND OCRC-ANPASSUNG IN
DEM SYSTEM
-
Die 7 und 8 zeigen,
wie sich SWJ und OCRC in das System einpassen können. 7 zeigt das
Standard SWJ-Modell für
ein System mit JTAG TAPs (einschließlich ARM EICE). 8 zeigt
ein neues hybrides SWJ-Modell, welches es existierenden JTAG-Systemen
erlaubt, mit demselben Chip zu arbeiten. Ein SWJ-Emulator kann unter
Verwendung einer festen Sequenz das Ziel von JTAG auf SWJ umschalten.
-
Die
Anordnung nach 7 verwendet SWJ, um auf DBT
(MemTAP und möglicherweise
Scan-TAP) und auf
eine JTAG-Abtastkette zuzugreifen (wie z. B. für ARM EICE-Blöcke, ebenso
wie für
andere Einrichtungen).
-
Die
Anordnung nach 8 verwendet einen hybriden Ansatz
für Verkäufer, die
eine alte bzw. hinterlassene JTAG-Unterstützung haben müssen. Verkäufer von
dritter Seite können
weiterhin JTAG-Emulatoren (als plug-in) einstecken und die TAPs
wie üblich
verwenden. Emulatoren einer neuen Generation senden eine spezifische
JTAG-Sequenz (ein nicht benutztes IR an ein TAP) um auf SWJ umzuschalten.
Dies verwendet dieselben Anschlüsse
bzw. Stifte (drei von Ihnen), wobei TCK nicht verwendet wird (um
Probleme zu vermeiden) und nTRST ebenfalls unbenutzt bleibt (falls
es überhaupt
verkabelt ist). Das Modell hierfür
liegt darin, dass TMS das SWJ-Daten-Signal ist, TDO ist das SWO-Signal,
falls es verwendet wird, und TDI ist die Taktquelle, wenn der Taktbetrieb
unterstützt
wird. Ein SWJ-Emulator kann erfassen, ob er im JTAG- oder SWJ-Betrieb ist,
indem er TCK low hält
und TMS durch den Reset und dann durch den Übungsbetrieb steuert. Wenn das
zweite Stopp-Bit nach 8 Paketen nicht auf low gesteuert wird, kann
der Emulator davon ausgehen, dass er irgendwie zurück im JTAG-Betrieb
ist (da TCK auf low gehalten wird, ist es für JTAG gleich, ob TMS verändert wird).
Für den
Fall, dass er sich im JTAG-Betrieb befindet, steuert der Emulator
ein Muster auf Basis der 1 an, um die IR-Länge zu erfassen und sendet
dann ein festes Muster an den ersten TAP in der Abtastkette mit
der unbenutzten ARM EICE IR-Sequenz – dieses
schaltet das Ziel bzw. Zielobjekt in den SWJ-Betrieb um. Nachdem
der Emulator sich nunmehr im nicht getakteten SWJ befindet, kann
er, falls dies unterstützt
wird, in den getakteten SWJ-Betrieb umschalten. Er kann auch die
SWO-Ausgabe an den TDO unterstützen.
Man beachte, dass der Emulator kein vollständiger JTAG-Emulator sein muss,
um diesen minimalen Satz von Operationen auszuführen.