-
Die
vorliegende Erfindung betrifft einen Mikrocontroller, ein Verfahren
zum Testen eines Mikrocontrollers und eine Verwendung eines parallelen Adressausgangs
und eines Multiplexers.
-
4-Bit-,
8-Bit-, 16-Bit- oder gar 32-Bit-Mikroprozessoren verwenden jeweils
eine spezifische Architektur und eine angepasste Anzahl von Verbindungs-PINs.
Einige dieser PINs stehen für einen Test des Mikrocontrollers
insbesondere zum Testen der Hardware und Software zur Verfügung.
Ein Test kann beispielsweise mit einer JTAG-Schnittstelle durchgeführt
werden. JTAG (Joint-Test-Action-Group) bezeichnet normalerweise
den IEEE-Standard 1149.1, der ein Verfahren zum Testen und Debugging
von elektronischer Hardware beschreibt. Der Zweck des Verfahrens
ist es, integrierte Schaltkreise und ihre Verbindungsleitungen,
welche sich bereits in einer Arbeitsumgebung befinden, beispielsweise
verlötet auf einer Platine, auf Funktion zu testen. Hierzu
werden integrierte Schaltkreise in ihrem inneren Aufbau durch JTAG-Komponenten
ergänzt, welche bei der normalen Funktion der Bauelemente
vollkommen davon abgetrennt sind und die Funktion des Bauteils somit
nicht stören. Erst mit Aktivierung der JTAG-Funktion am
Teststeuer-PIN wird die Kontrolle aller Ein- und Ausgänge
an die JTAG-Schnittstelle übergeben. Die Programmierung über
JTAG-Schnittstelle erfolgt seriell, das heißt dass je nach
Anzahl der zu steuernden Eingänge und Ausgänge
ein Schieberegister im Bauteil nacheinander mit einer Folge von
HI(1)- und LOW(0)-Spannungspegeln befüllt wird. Erst wenn
das Schieberegister voll ist, werden die Spannungspegel an den Ausgängen
ausgegeben. Die Funktionsweise der JTAG-Schnittstelle ist beispielsweise
in de.wikipedia.org unter "JTAG" dargestellt.
-
Der
Erfindung liegt die Aufgabe zugrunde, einen möglichst einfachen
Mikrocontroller mit einer Testfunktion anzugeben, der eine möglichst
geringe Anzahl von Anschlüssen benötigt.
-
Diese
Aufgabe wird durch einen Mikrocontroller mit den Merkmalen des unabhängigen
Anspruchs 1 gelöst. Vorteilhafte Weiterbildungen sind Gegenstand
abhängiger Ansprüchen und in der Beschreibung
enthalten.
-
Demzufolge
ist ein Mikrocontroller, mit einer Recheneinheit einem Programmspeicher
und einer Testschaltung vorgesehen. Die Recheneinheit, der Programmspeicher
und die Testschaltung sind dabei auf einem Halbleiterchip monolithisch
integriert.
-
Die
Testschaltung weist ein Schieberegister mit einem seriellen Eingang
und mit einem seriellen Ausgang und mit einem parallelen Eingang
und mit einem parallelen Ausgang auf. Vorzugsweise ist die Testschaltung
mittels eines Signals aktivierbar und deaktivierbar.
-
Weiterhin
weist die Testschaltung einen Multiplexer auf, dessen Eingänge
mit dem Programmspeicher und dem parallelen Ausgang des Schieberegisters
verbunden sind. Ein Ausgang des Multiplexers ist mit der Recheneinheit
verbunden.
-
Ein
Adressausgang der Recheneinheit ist mit dem parallelen Eingang des
Schieberegisters verbunden. Zusätzlich ist der Adressausgang
der Recheneinheit mit einem Adresseingang des Programmspeichers
vorzugsweise direkt verbunden.
-
Vorzugsweise
ist der serielle Eingang des Schieberegisters mit einem Anschluss
des Mikrocontrollers verbunden. Der Anschluss dient der Verbindung
zu Schaltungen außerhalb des Halbleiterchips in den der
Mikrocontroller monolithisch integriert ist. Hierzu ist der Anschluss
vorteilhafterweise als Pad beispielsweise zum Bonden eines Bonddrahtes
ausgebildet.
-
Der
serielle Ausgang des Schieberegisters ist mit einem weiteren Anschluss
des Mikrocontrollers verbunden. Der weitere Anschluss dient ebenfalls
der Verbindung zu Schaltungen außerhalb des Halbleiterchips
in den der Mikrocontroller monolithisch integriert ist. Hierzu ist
der weitere Anschluss vorteilhafterweise ebenfalls als Pad beispielsweise zum
Bonden eines Bonddrahtes ausgebildet.
-
Ein
weiterer Aspekt der Erfindung ist ein Verfahren gemäß den
Merkmalen des unabhängigen Anspruchs 15. Vorteilhafte Weiterbildungen
sind Gegenstand abhängiger Ansprüche und in der
Beschreibung enthalten.
-
Demzufolge
ist ein Verfahren zum Testen eines Mikrocontrollers in einem Testmodus
vorgesehen. Das Verfahren zum Testen weist die im Folgenden beschriebenen
Verfahrensschritte auf, die für den Testvorgang wiederholt
werden können oder durch weitere Verfahrensschritte ergänzt
werden können.
-
Nach
einer Aktivierung des Testmodus wird über einen Anschluss
des Mikrocontrollers wird ein Befehl in ein Schieberegister seriell
eingeladen. Hierzu wird ein Takt an einen Takteingang des Schieberegisters
angelegt, bis alle benötigten Bits des Befehls in das Schieberegister
an die richtige Stelle gelangt sind.
-
Über
einen parallelen Ausgang des Schieberegisters wird der vollständig
in das Schieberegister geladene Befehl in eine Recheneinheit des
Mikrocontrollers über einen Multiplexer parallel eingeladen. Über
den Befehlseingang der Recheneinheit können Befehle des
Programmablaufs geladen werden.
-
Über
einen Adressausgang der Recheneinheit wird eine Programmadresse
in den parallelen Eingang des Schieberegisters parallel eingeladen. Vorzugsweise
erfolgt das Einladen dabei im selben Programmschritt wie das Ausgeben
des Befehls.
-
Nachher
wird über einen Anschluss des Mikrocontrollers die über
den parallelen Eingang des Schieberegisters geladene Adresse aus
dem Schieberegister seriell ausgegeben.
-
Ein
weiterer Aspekt der Erfindung ist eine Verwendung eines indirekten
Sprungbefehls und eines Transferbefehls gemäß den
Merkmalen des unabhängigen Anspruchs 16. Vorteilhafte Weiterbildungen
sind Gegenstand abhängiger Ansprüchen und in der
Beschreibung enthalten.
-
Demzufolge
ist eine Verwendung eines parallelen Adressausgangs und einer Recheneinheit
eines Mikrocontrollers und eines Multiplexers vorgesehen. Der parallele
Adressausgang wird zur Ausgabe von Daten über ein mit dem
Adressausgang verbundenes Schieberegister verwendet. Der Multiplexer wird
zum Einladen von Programmbefehlen aus dem Schieberegister über
den Multiplexer in den Befehlseingang der Recheneinheit verwendet.
-
Die
im Folgenden beschriebenen Weiterbildungen und Ausgestaltungen beziehen
sich sowohl auf das Verfahren, als auch auf den Mikrocontroller als
auch auf die Verwendung.
-
Gemäß einer
vorteilhaften Weiterbildung ist der Ausgang des Multiplexers mit
einem Befehlseingang der Recheneinheit verbunden ist. Der Multiplexer
ist dabei vorzugsweise ausgebildet zwischen Befehlen des Programmspeichers
und Befehlen aus dem Schieberegister umzuschalten. Vorteilhafterweise
schaltet der Multiplexer hierzu mehrere Verbindungen eines Befehlsbusses
zusammen um.
-
In
einer vorteilhaften Ausgestaltung ist vorgesehen, dass ein Steuereingang
des Multiplexers mit einem Steueranschluss des Mikrocontrollers
verbunden ist. Der Steueranschluss ist dabei vorteilhafterweise
als Pad ausgebildet. Das Pad dient dabei bevorzugt einer Verbindung
zu einer Testvorrichtung. Vorzugsweise ist der Multiplexer ausgebildet
in Abhängigkeit von einem Steuersignal an seinem Steuereingang
zwischen den Befehlen des Programmspeichers und den Befehlen aus
dem Schieberegister umzuschalten.
-
Gemäß einer
anderen vorteilhaften Weiterbildung ist ein Takteingang des Schieberegisters
mit einem Anschluss des Mikrocontrollers verbunden. Der Anschluss
ist dabei vorteilhafterweise als Pad ausgebildet. Das Pad dient
dabei bevorzugt einer Verbindung zu einer Testvorrichtung. Der Takteingang
ist vorzugsweise von einem Takteingang des Mikrocontrollers entkoppelt.
-
In
einer vorteilhaften Ausgestaltung entspricht die Bitlänge
des Schieberegisters einer Bit-Breite eines am Befehlseingang der
Recheneinheit angeschlossenen parallelen Befehlsdatenbusses. Befehle
können so als Ganzes eingeladen werden ohne Teile des Befehls
zwischenspeichern zu müssen.
-
Gemäß einer
vorteilhaften Weiterbildung ist ein Umschalter vorgesehen, dessen
Ausgang mit dem Takteingang der Recheneinheit verbunden ist. Der
Umschalter ist beispielsweise eine logische Verknüpfung,
die vorzugsweise aus Gattern gebildet ist. Alternativ kann als Umschalter
auch ein Multiplexer verwendet werden.
-
Eine
bevorzugte Ausgestaltung sieht vor, dass ein Eingang des Umschalters
mit einem Steueranschluss des Mikrocontrollers verbunden ist. Der Steueranschluss
ist dabei vorteilhafterweise als Pad ausgebildet. Das Pad dient
dabei bevorzugt einer Verbindung zu einer Testvorrichtung. Der Eingang des
Umschalters ist vorteilhafterweise zur gemeinsamen Steuerung mit
dem Steuereingang des Multiplexers verbunden, so dass vorteilhafterweise
der Umschalter und der Multiplexer mittels eines gemeinsamen Steuersignal über
eine Verbindungsleitung steuerbar sind.
-
Bevorzugt
ist ein Eingang des Umschalters mit einem Takteingang des Mikrocontrollers
verbunden. Diese Verbindung bewirkt, dass im Betriebsmodus durch
den Umschalter ein Taktsignal zum Takteingang des Mikrocontrollers
geschaltet ist.
-
Vorteilhafterweise
ist ein Eingang des Umschalters mit einer Synchronsignalbereitstellungsvorrichtung
zu Bereitstellung eines Synchronsignals für die Recheneinheit
verbunden. Gemäß einer vorteilhaften Weiterbildung
ist eine Synchronsignalbereitstellungsvorrichtung zur Erzeugung
eines Synchronsignals für die Recheneinheit vorgesehen.
Das Synchronsignal ist zu einer Bitlänge des Schieberegisters
synchronisiert. Vorzugsweise wird eine Frequenz eines an einem Testtakteingang
des Mikrocontrollers anliegenden Testtaktsignals durch die Synchronsignalbereitstellungsvorrichtung
durch die Bitlänge geteilt. Beträgt die Bitlänge
des Schieberegisters beispielsweise 24 Bit, erzeugt die Synchronsignalbereitstellungsvorrichtung
nach 24 positiven oder negativen Flanken ein Ausgangssignal. Daher wird
die Frequenz des an der Synchronsignalbereitstellungsvorrichtung
anliegenden Signals durch den Faktor 24 geteilt.
-
In
einer vorteilhaften Weiterbildung ist der Umschalter derart ausgebildet
ist, dass mittels eines Signals am Steueranschluss das Eingangssignal
am Takteingang der Recheneinheit zwischen dem Taktsignal und dem
Synchronsignal umschaltbar ist. Das Taktsignal ist dabei einem Betriebsmodus
des Mikrocontrollers zugeordnet. Hingegen ist das Synchronsignal
einem Testmodus des Mikrocontrollers zugeordnet.
-
Gemäß einer
vorteilhaften Ausgestaltung ist vorgesehen, dass die Synchronsignalbereitstellungsvorrichtung
einen Zähler aufweist, der positive und/oder negative Flanken
des Testtaktsignals zählt. Der Zähler ist vorzugsweise
dazu ausgebildet an seinem Ausgang ein Signal auszugeben, wenn ein
Zählwert der Bitlänge des Schieberegisters entspricht. Beispielsweise
entspricht der Zählwert 24 eine Bitlänge von 24
Bits des Schieberegisters. Alternativ zu einem Zähler kann
auch jede andere Art von Frequenzteiler verwendet werden. Gemäß einer
bevorzugten Ausgestaltung ist der Ausgang des Zählers mit
einem Steuereingang des Schieberegisters verbunden ist.
-
Gemäß einer
besonders bevorzugten Weiterbildungsvariante ist vorgesehen, dass
das Signal am Ausgang des Zählers ein Einladen von Daten über
den parallelen Eingang des Schieberegisters steuert. Gemäß einer
anderen, auch kombinierbaren Weiterbildungsvariante ist vorgesehen,
dass das Signal am Ausgang des Zählers ein Ausgeben von
Daten über den parallelen Ausgang des Schieberegisters
steuert.
-
Bevorzugt
gelangt das Signal am Ausgang des Zählers über
den Umschalter zum Takteingang der Recheneinheit. Der in der Recheneinheit
implementierte Programmablauf wird durch das Signal am Ausgang des
Zählers jeweils um einen Programmschritt fortgesetzt.
-
In
einer vorteilhaften Weiterbildung ist vorgesehen, dass ein Programmzähler
des Mikrocontrollers mit dem Adressausgang des Mikrocontrollers verbunden
ist. Bevorzugt ist dabei der Programmzähler direkt mit
dem Schieberegister verbunden.
-
Gemäß einer
anderen vorteilhaften Weiterbildung ist vorgesehen, dass der Mikrocontroller
eine Anzahl von Registern und ein indirektes Sprungregister aufweist
in das Bitwerte eines der Register bewegbar sind. Vorzugsweise sind
Bitwerte des Registers mittels der Testschaltung in einem Testmodus einlesbar
und/oder auslesbar. Vorteilhafterweise ist der Mikrocontroller für
Transferbefehle eingerichtet, die ein Bewegen der Bitwerte von dem
Register in das indirekte Sprungregister ermöglichen.
-
Das
Ausführen des indirekten Sprungbefehls führt zu
einer Ausgabe der Bitwerte als indirekte Sprungadresse am Adressausgang
des Mikrocontrollers, wobei die indirekte Sprungadresse in die Schnittstelle
einladbar ist. Bevorzugt ist in den Programmzähler die
Sprungadresse aus dem indirekten Sprungregister durch einen indirekten
Sprungbefehl kopierbar. Der Adressausgang des Mikrocontrollers ist
vorzugsweise mit einer Speichereinheit, beispielsweise dem Programmspeicher,
verbunden.
-
Vorzugsweise
ist das Schieberegister mit einem Befehlseingang des Mikrocontrollers
verbindbar. Besonders bevorzugt ist der Mikrocontroller zum Auslesen
von Bitwerten der Register mittels des indirekten Sprungregisters
eingerichtet. Das Schieberegister fungiert dabei als Teil einer
Schnittstelle der Testschaltung zu einer Testvorrichtung, die mit
dem Mikrocontroller verbindbar ist.
-
Eine
vorteilhafte Weiterbildung sieht eine zusätzliche Verwendung
eines indirekten Sprungbefehls und eines Transferbefehls eines Mikrocontrollers
zum Auslesen von Bitwerten eines Registers des Mikrocontrollers
in einem Testmodus vor. Mittels des Transferbefehls werden die Bitwerte
in ein Sprungregister bewegt. Danach werden mittels des indirekten Sprungbefehls
die Bitwerte am Adressausgang des Mikrocontrollers ausgegeben.
-
Gemäß einer
anderen Weiterbildung ist vorgesehen, dass in einem Testmodus über
eine Schnittstelle ein Befehl zum Bewegen von Bitwerten eines vorteilhafterweise
beliebigen Registers des Mikrocontrollers als indirekte Sprungadresse
eingeladen wird. Das Einladen erfolgt dabei vorzugsweise seriell
mittels des Schieberegisters. Der Testmodus unterscheidet sich dabei
von einem normalen Betriebsmodus dadurch, dass der Mikrocontroller über das
Schieberegister gesteuert wird. Der Befehl zum Bewegen von Bitwerten
wird auch als Transferbefehl bezeichnet. Mit einem derartigen Befehl
werden Daten innerhalb des Systems des Mikrocontrollers bewegt.
Als Quelle kommen dabei Speicherstellen und/oder Prozessorregister
in Frage. Das Testen des Mikrocontrollers kann abgeleitet aus dem
Englischen auch als "Debugging" (Fehler suche und beseitigen) bezeichnet
werden.
-
Die
Bitwerte des Registers werden vorzugsweise durch den Befehl zum
Bewegen in ein indirektes Sprungregister als indirekte Sprungadresse
bewegt. Vorzugsweise werden die Daten dabei nicht verändert
sondern nur kopiert, so dass sie vorteilhafterweise an ihrem Quellort
unverändert bestehen bleiben. Als Befehlsnamen können
vorteilhafterweise die englischen Wörter Move, Load oder
Transfer benutzt werden.
-
Vorzugsweise
wird ein indirekter Sprung auf die im indirekten Sprungregister
gespeicherte indirekte Sprungadresse ausgeführt. Sprungbefehle
dienen im üblichen Programmablauf zur Verzweigung, zum
Bilden von Schleifen oder zum Aufruf von Unterprogrammen (Subroutinen).
Im Gegensatz zu einem direkten Sprung auf eine fest vorgegebene
Adresse wird der indirekte Sprung in Abhängigkeit von dem
Inhalt des indirekten Sprungregisters ausgeführt, wobei
der Inhalt des indirekten Sprungregisters beispielsweise durch einen
Transferbefehl verändert werden kann.
-
Im
Testmodus wird dies bevorzugt genutzt, um beliebige Inhalte beliebiger
Register des Mikrocontrollers mittels der Durchführung
der indirekten Sprünge über die Schnittstelle
auszulesen. Hierzu wird vorteilhafterweise die am Adressausgang
des Mikrocontrollers anliegende Sprungadresse über das Schieberegister
ausgegeben.
-
Gemäß einer
bevorzugten Weiterbildung ist vorgesehen, dass ein Betriebstakt
für den Mikrocontroller deaktiviert und ein vom Betriebstakt
verschiedener Testtakt für den Testmodus aktiviert wird.
Vorzugsweise ist der Testtakt zu einer Datenübertragung über
das Schieberegister als Schnittstelle synchronisiert. Die Synchronisation
bewirkt vorzugsweise, dass vollständige Daten eines Befehls
und/oder vollständige Daten einer Adresse in das Schieberegister der
Schnittstelle eingelesen oder ausgelesen werden.
-
Gemäß einer
bevorzugten Ausgestaltung dieser Weiterbildung wird der Testtakt
durch einen insbesondere mit dem Schieberegister synchronisierten
Zähler generiert.
-
Eine
alternative Ausgestaltungsvariante sieht vor, dass der Testtakt
durch einen Frequenzteiler mit Teilung des Betriebstakts generiert
wird. Vorzugsweise entspricht der Teilungsfaktor dabei der Bitlänge
eines Schieberegisters.
-
In
einer bevorzugten Ausgestaltung wird zu Beginn des Testmodus die
aktuelle Adresse am Adressausgang des Mikrocontrollers über
das Schieberegister seriell ausgegeben. Mittels dieser aktuellen
Adresse wird bevorzugt der Programmablauf nach dem Testmodus mit
der zuvor gültigen Adresse fortgesetzt.
-
Vorzugsweise
wird zum Ende des Testmodus daher die aktuelle Adresse über
das Schieberegister wiederum eingeladen. Eine andere Ausgestaltung
sieht vor, dass zum Ende des Testmodus der Testtakt deaktiviert
und/oder der Betriebstakt aktiviert wird. Vorzugsweise bewirkt der
Betriebstakt die Fortsetzung des normalen Programmablaufs im Mikrocontroller
in dessen Betriebsmodus.
-
Gemäß einer
besonders vorteilhaften Weiterbildung ist vorgesehen, dass Bitwerte
von den ersten Bitstellen des Registers in das Sprungregister bewegt
und über das Schieberegister ausgegeben werden. Danach
werden Bitwerte von zweiten Bitstellen des Registers auf die ersten
Bitstellen geändert. Für diese Änderung
können die Bitwerte der zweiten Bitstellen beispielsweise
auf die ersten Bitstellen verschoben werden. Eine vorteilhafte Alternative
sieht hingegen vor, dass die Bitwerte der ersten Bitstellen und
die Bitwerte der zweiten Bitstellen gegeneinander gewechselt (flipp)
werden. Vorzugsweise werden die geänderten Bitwerte in
das Sprungregister bewegt und über das Schieberegister
ausgegeben.
-
Diese
Weiterbildung weiterhin ausgestaltend ist vorgesehen, dass nach
dem Bewegen der geänderten Bitwerte in das Sprungregister
die Bitwerte der ersten Bitstellen und die Bitwerte der zweiten
Bitstellen zu ihrem ursprünglichen Zustand wiederhergestellt
werden.
-
Eine
vorteilhafte Weiterbildung sieht vor, dass die Verfahrensschritte
des Einladens des Befehls zum Bewegen der Bitwerte in das Sprungregister,
des Ausführens des indirekten Sprunges und der Ausgabe über
das Schieberegister für eine Anzahl von Registern wiederholt
werden. Vorteilhafterweise werden auf diese Art und Weise alle Inhalte
sämtlicher Register zu Testzwecken ausgelesen.
-
Die
zuvor beschriebenen Weiterbildungsvarianten sind sowohl einzeln
als auch in Kombination besonders vorteilhaft. Dabei können
sämtliche Weiterbildungsvarianten untereinander kombiniert
werden. Einige mögliche Kombinationen sind in der Beschreibung
der Ausführungsbeispiele der Figuren erläutert.
Diese dort dargestellten Möglichkeiten von Kombinationen
der Weiterbildungsvarianten sind jedoch nicht abschließend.
-
Im
Folgenden wird die Erfindung durch Ausführungsbeispiele
anhand zeichnerischer Darstellung näher erläutert.
-
Dabei
zeigen:
-
1 ein
Testsystem mit einem Mikrocontroller,
-
2 ein
schematisches Ablaufdiagramm eines Testverfahrens, und
-
3 eine
schematische Ansicht eines Mikrocontrollers mit untereinander verbunden
Funktionsblöcke.
-
In 1 ist
ein Testsystem mit einem Mikrocontroller 10 und einer Testvorrichtung 20 schematisch
dargestellt. Oft werden Mikrocontroller für einfachste
Anwendungen benötigt. Dabei ist besonders wichtig, dass
diese Mikrocontroller kostengünstig hergestellt werden.
Um diese Mikrocontroller kostengünstig herzustellen, wird
eine geringe Chipfläche mit einer möglichst geringen
Anzahl von Verbindungs-PINs benötigt, da üblicherweise
mit der Anzahl der Verbindungs-PINs die Gehäusegröße wächst
und die Kosten des Mikrocontrollers signifikant steigen. Um dem
Rechnung zu tragen, werden Mikrocontroller mit einer möglichst
einfachen Architektur designed und die Anzahl der Verbindungs-PINs
auf ein Minimum reduziert. Dennoch soll auch ein derartiger Mikrocontroller
für Testanwendungen zugänglich sein, so dass dessen
Hard- und Software möglichst vollumfänglich getestet
werden kann. Eine Standardschnittstelle wie die JTAG-Schnittstelle
ist im Ausführungsbeispiel der 1 nicht
vorgesehen, da diese üblicherweise eine Vielzahl von Schaltungselementen
wie Multiplexer und dergleichen und somit eine große Chipfläche
und eine Vielzahl von Anschlüssen (Pads) benötigt.
-
Auch
das Testsystem der 1 weist eine Verbindung 21, 25 zwischen
dem Mikrocontroller 10 und der Testvorrichtung 20 auf.
Diese Verbindung 21, 25 ist mit einer Testschaltung 13 des
Mikrocontrollers 10 verbunden. Die Testvorrichtung 20 weist
einen Rechner 23 (beispielsweise einen Personal-Computer),
eine Anzeigeeinheit 24 (beispielsweise einen Bildschirm)
und eine Eingabeeinheit 22 (beispielsweise eine Tastatur)
auf. Der Rechner 23 ist über eine bidirektionale
serielle Schnittstelle über die Verbindung 21 mit
einem Schieberegister SR der Testschaltung verbunden. Eine Steuerleitung 25 ermöglicht
das Steuern einer Steuerschaltung 12 der Testschaltung 13 mittels
des Rechners 23 der Testvorrichtung 20.
-
Der
Mikrocontroller 10 weist zusätzlich zur Testschaltung 13 eine
Recheneinheit mit einer Rechenstruktur 11 auf. Die Architektur
des Mikrocontrollers 10 weist je nach Art oder Typ des
Mikrocontrollers unterschiedliche Elemente in unterschiedlichen Anordnungen
und Verbindungen auf. Insofern ist das Ausführungsbeispiel
der 1 als rein exemplarisch für eine Mikrocontroller-Architektur
anzusehen. Alternativ sind eine Vielzahl anderer Architekturen für
den Fachmann einfachst herleitbar. Der Mikrocontroller der 1 weist
eine arithmetisch logische Einheit 110, eine Anzahl von
Registern 112, einen schreib- und lesbaren Speicher 113,
einen Programmspeicher 114 und einen Programmzähler 115 auf.
Zusätzlich weist der Mikrocontroller 10 ein indirektes Sprungregister
JMPR auf. Die Testschaltung 13 und der Rechenkern 11 des
Mikrocontrollers 10 sind miteinander über Befehlsbusse
und Adressbusse sowie Steuerleitungen verbunden (in 1 nicht
dargestellt).
-
In 2 ist
ein Verfahrensablauf eines Testverfahrens in einem Testmodus schematisch
in einem Ablaufdiagramm dargestellt. Zum Startzeitpunkt 1 wird
ein Betriebsmodus angenommen, wobei in dem Betriebsmodus ein Programmablauf
in der Recheneinheit 11 des Mikrocontrollers 10 in
Abhängigkeit von einem Betriebstakt abgearbeitet wird.
In Schritt 2 wird der Betriebsmodus deaktiviert und ein Testmodus
aktiviert. Hierzu wird der Betriebstakt deaktiviert und ein Testtakt
aktiviert. Dabei wird die Testschaltung 13 aktiviert, indem
das Schieberegister SR mit einem Schieberegistertakt angesteuert wird.
Parallele Datenein- und -ausgänge des Schieberegisters
SR werden freigeschaltet.
-
Die
folgenden Verfahrensschritte 3 bis 7 werden in
dem Ausführungsbeispiel der 2 für
eine leichtere Verständlichkeit in zwei Spalten A und B dargestellt.
Die Spalte A zeigt dabei schematisch die Ausgabe der Testschaltung
wohingegen die Spalte B die Aktion der Recheneinheit 11 des
Mikrocontrollers 10 beinhalten, die von der Testvorrichtung 20 veranlasst
wurde. Die Aktionen der Testschaltung 13 und der Recheneinheit 11 des
Mikrocontrollers 10 müssen dabei in dem Verfahrensschritt
nicht zwingend zeitgleich erfolgen, können jedoch z. T.
durch eine einzige Operation ausgelöst werden. Auch können weitere
Verfahrensschritte erforderlich sein, die in der 2 aus Übersichtlichkeitsgründen
nicht dargestellt sind. Mögliche weitere zusätzlich
notwendige Verfahrensschritte ergeben sich dabei aus der konkreten Architektur
des Mikrocontrollers 10.
-
Zum
dritten Verfahrensschritt wird für das Testverfahren die
Information benötigt, an welcher Adresse des Programmzählers
der Betriebsmodus unterbrochen wurde, um diesen vorteilhafterweise nach
Ende des Testmodus wieder an derselben Stelle starten zu können.
Hierzu wird über das Schieberegister SR ein Befehl ohne
Operation NOP geladen und an einen Befehlseingang des Mikrocontrollers angelegt.
Der um 1 erhöhte Programmzähler PC + 1 wird über
den parallelen Eingang in das serielle.
-
Schieberegister
eingeladen und ausgelesen. Hierzu kann es erforderlich sein, dass
der Befehl ohne Operation NOP zweimal ausgeführt wird.
-
Nachdem
nach Schritt 3 die aktuelle Adresse zum Ende des Betriebsmodus
bekannt ist, stellt sich im weiteren Testverfahren die Aufgabe,
einen beliebigen Registerwert irgendeines Registers 112 auszulesen.
Hierzu wird über das Schieberegister SR ein indirekter
Sprungbefehl JMPX eingeladen und an dem Befehlseingang des Mikrocontrollers 10 angelegt. Zeitgleich
wird der um 2 erhöhte Programmzähler PC vom Mikrocontroller
am Adressausgang AO ausgegeben und in das Schieberegister SR eingeladen. Dieser
Wert wird jedoch nicht benötigt und kann daher ignoriert
werden. Der Befehl des indirekten Sprunges JMPX bewirkt, dass der
Wert JMPA im Register JMPX in den Programmzähler PC kopiert
wird. Der Wert JMPA im indirekten Sprungregister JMPX kann auch
als indirekte Sprungadresse JMPA bezeichnet werden.
-
Danach
wird in Schritt 5 erneut ein Befehl ohne Operation durch
die serielle Schnittstelle SR eingelesen und ausgeführt.
Mit der Ausführung wird die indirekte Sprungadresse JMPA über
den Adressausgang AO und über den parallelen Eingang des Schieberegisters
SR seriell ausgegeben. Die Verfahrensschritte 4 und 5 dienen
dabei dazu, dass die während des Betriebsablaufs gespeicherte
indirekte Sprungadresse JMPA nach Beendigung des Testmodus wieder
in das indirekte Sprungregister JMPR eingeladen werden kann.
-
Wie
durch eine Linie im Ausführungsform der 2 angedeutet,
können die folgenden Schritte 6 und 7 so
oft wie nötig wiederholt werden, um eine Vielzahl von Registern
R auszulesen. Im Verfahrensschritt 6 wird der Registerwert
des Registers R durch einen Transferbefehl MV in das Sprungregister JMPR
kopiert. Danach wird in Verfahrensschritt 7 der indirekte
Sprung mittels des indirekten Sprungbefehls JMPX ausgeführt
und steht daher unmittelbar am Adressausgang AO an, so dass der
Wert des Registers R in das Schieberegister SR geladen wird und über
die serielle Schnittstelle ausgegeben wird. Je nach Architektur
des Mikrocontrollers können in den Schritten 6 und 7 zusätzlich
Schritte ohne Operation NOP benötigt werden, die in dem
Ausführungsbeispiel der 2 für
eine bessere Übersichtlichkeit jedoch nicht dargestellt
sind.
-
In
Schritt 8 wird die ursprüngliche indirekte Sprungadresse
JMPA in das indirekte Sprungregister JMPR eingeladen. In Schritt 9 wird
durch einen absoluten Sprung der Wert des Programmzählers
zu Beginn des Testmodus erneut eingeladen, so dass im Normalbetrieb
von der letzten Adresse aus das Programm fortgesetzt werden kann.
Im Verfahrensschritt 10 wird der Testmodus verlassen, wobei
das Schieberegister deaktiviert wird, dessen paralleler Eingang und
Ausgang gesperrt werden. Zusätzlich wird der Testtakt deaktiviert
und der Betriebstakt gestartet, so dass in Schritt 11 des
in 2 dargestellten Ausführungsbeispiels
der Testmodus beendet ist und der Normalbetrieb fortgesetzt wird.
-
Im
Ausführungsbeispiel der 3 sind eine Anzahl
von Funktionsblöcken eines Mikrocontrollers 10 und
ihre Verbindungen untereinander schematisch dargestellt. Im Normalbetrieb
sind ein Schieberegister SR und ein Bitzähler BC inaktiv.
Der Mikrocontroller 10 erhält seinen Betriebstakt
CL über ein UND-Gatter 117 und ein ODER-Gatter 116,
die einen Umschalter bilden. Am Adressausgang AO gibt ein Programmzähler 115 des
Mikrocontrollers 10 die Programmadresse aus, die im Ausführungsbeispiel der 3 n-Bit
breit ist. Der Adressausgang AO ist mit einem Programmspeicher 114 verbunden,
der zu der jeweiligen Adresse einen n-Bit breiten Befehl ausgibt,
der über den Multiplexer MUX an den Befehlseingang gelangt.
-
Im
Normalbetrieb ist der Multiplexer MUX derart geschaltet, dass der
Ausgang des Programmspeichers 114 mit dem Befehlseingang
des Mikrocontrollers 10 verbunden ist. Ein Funktionsblock
K bildet dabei den Kern des Mikrocontrollers 10. Zumindest
der Kern K und der Programmspeicher 114 (ROM) bilden dabei
die Recheneinheit des Mikrocontrollers 10. Dieser Rechenkern
K ist zusätzlich mit einer Peripherie 111 des
Mikrocontrollers verbunden. Die Peripherie 111 ist beispielsweise
ein Analog/Digital-Umsetzer oder ein Digital/Analog-Umsetzer oder eine
digitale Schnittstelle zur Ein- oder Ausgabe von Steuersignalen.
Zur Verbindung ist die Peripherie 111 mit einem Anschluss 120 des
Mikrocontrollers 10 verbunden.
-
Der
Mikrocontroller 10 weist eine Testschaltung mit den Funktionsblöcken
des Schieberegisters SR des Multiplexers MUX des Binärzählers
BC zweier UND-Gatter 117, 118 und einem ODER-Gatter 116 auf,
die mit dem Kern K sowie dem Programmspeicher 114 verbunden
sind. Das Schieberegister SR weist einen seriellen Eingang SI auf,
der mit einem seriellen Eingangsanschluss verbunden ist. Weiterhin
weist das Schieberegister SR einen seriellen Ausgang SO auf, der
mit einem seriellen Ausgangsanschluss verbunden ist. Weiterhin weist
das Schieberegister SR einen parallelen Eingang auf, der mit dem Adressausgang
AO verbunden ist. Zudem weist das Schieberegister SR einen parallelen
Ausgang auf, der mit einem entsprechend bitbreiten Eingang des Multiplexers
MUX verbunden ist. Über diesen Ausgang ist das Schieberegister
SR mit dem Befehlseingang mittels des Multiplexers MUX verbindbar.
-
Zum
Einladen und/oder Ausladen von Bitwerten des Schieberegisters über
die parallelen bzw. seriellen Schnittstellen ist der Takt des Schieberegisters
SR mit dem Takt für den Kern K zu synchronisieren. Hierzu
weist der Mikrocontroller 10 einen Steuereingang TM auf,
der mit dem Multiplexer MUX und dem UND-Gatter 117 verbunden
ist. Geht der Steuereingang TM auf High (1), sperrt das UND-Gatter 117 den
Betriebstakt CL, so dass dieser nicht zum Kern K gelangen kann.
Weiterhin wird durch das High-Potential am Steuereingang TM der
Multiplexer MUX derart geschaltet, dass der Befehlseingang des Kerns
K mit dem Parallelausgang des Schieberegisters SR verbunden wird.
-
Der
Mikrocontroller 10 weist einen Testtakt-Eingang TC auf,
der mit dem Takteingang des Schieberegisters SR und mit dem Eingang
des Binärzählers BC verbunden ist. Die Stellen
des Binärzählers BC entsprechen dabei bevorzugt
der Länge des Schieberegisters SR. Der Binärzähler
und das UND-Gatter 118 bilden zusammen eine Synchronsignalbereitstellungsvorrichtung
zur Erzeugung eines Synchronsignals für die Recheneinheit
K das zu einer Bitlänge des Schieberegisters synchronisiert
ist.
-
Ist
also über den seriellen Eingang SI ein Datenwert vollständig
in das Schieberegister SR eingeladen, so gibt der Binärzähler
an seinem Ausgang ein Signal ab, das über einen Steuereingang
des Schieberegisters SR eine Ausgabe der über die serielle Schnittstelle
eingeladenen Daten über den Multiplexer MUX an den Befehlseingang
des Kerns K bewirkt. Gleichzeitig wird der aktuelle Adresswert am Adressausgang
AO über die parallele Eingangsschnittstelle des Schieberegisters
eingeladen.
-
Über
das UND-Gatter 118 und das ODER-Gatter 116 erhält
der Kern zudem einen Taktimpuls am Takteingang der den am Befehlseingang anliegenden
Befehl ausführt. Um den Mikrocontroller 10 wiederum
von dem Testmodus in den Betriebsmodus umzuschalten, ist lediglich
erforderlich, dass nach der Herstellung der Daten in den Registern 112 des
Mikrocontrollers 10 am Steuereingang TM ein Low-Potential
angelegt wird.
-
Die
Erfindung ist nicht auf die dargestellten Ausgestaltungsvarianten
der 1 bis 3 beschränkt. Beispielsweise
ist es möglich, den indirekten Sprungbefehl JMPX für
eine andere als die in 3 dargestellte Mikrocontroller-Architektur
für die Ausgabe der Daten im Testmodus zu verwenden. Die Funktionalität
des Mikrocontrollers gemäß dem Ausführungsbeispiel
der 2 ist besonders vorteilhaft auch für
andere Mikrocontrollerarchitekturen mit einer geringen Anzahl von
Anschlüssen verwendbar.
-
- 10
- Mikrocontroller
- 11
- Recheneinheit
des Mikrocontrollers
- 12
- Steuerschaltung
- 13
- Testschaltung
- 20
- Testvorrichtung
- 21,
25
- Verbindung
- 22
- Eingabeeinheit,
Tastatur
- 23
- Rechner
- 24
- Anzeige
- 110
- ALU,
Arithmetrisch-Logische-Einheit
- 111
- Peripherie
- 112
- Register
- 113
- Speicher
(RAM)
- 114
- Programmspeicher
- 115
- Programmzähler
- 116
- Oder-Gatter
- 117,
118
- UND-Gatter
- 120
- analoger/digitaler
Aus-, Eingang
- SR
- serielle
Schnittstelle, Schieberegister
- R
- Register(wert)
des Mikrocontrollers
- JMPR
- indirektes
Sprungregister
- AO
- Adressausgang
des Mikrocontrollers
- MUX
- Multiplexer
- BC
- Binärzähler
- K
- Kern,
Recheneinheit
- SO
- Ausgang
der seriellen Schnittstelle
- SI
- Eingang
der seriellen Schnittstelle
- CL
- Betriebs-Takt-Eingang
- TM
- Testmodus-Steuereingang
- TC
- Test-Takt-Eingang
- n,
m
- Bitbreite
- A
- Aktion
der Testschaltung
- B
- Aktion
der Recheneinheit des Mikrocontrollers
- JMPX
- indirekter
Sprungbefehl
- JMPA
- indirekte
Sprungadresse
- MV
- Befehl
zum Bewegen/Kopieren
- NOP
- Befehl
ohne Operation
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - de.wikipedia.org [0002]