Joint Test Action Group

Joint Test Action Group

Joint Test Action Group (kurz JTAG) bezeichnet den IEEE-Standard 1149.1, der eine Ansammlung von Verfahren zum Testen und Debuggen von elektronischer Hardware direkt in der Schaltung beschreibt. Das heute prominenteste und gleichzeitig zuerst in JTAG implementierte Verfahren ist der Boundary Scan Test. Durch das Hinzufügen weiterer Verfahren sind die Begriffe nicht mehr synonym, während die Beschreibungssprache von JTAG mit Boundary Scan Description Language den ursprünglichen Namen beibehielt.

Zweck des Verfahrens ist es, integrierte Schaltungen (ICs) auf Funktion zu testen, während sie sich bereits in ihrer Arbeitsumgebung befinden, beispielsweise verlötet auf einer Platine. Dazu besitzt ein JTAG-fähiges IC bestimmte Komponenten, die im Normalbetrieb vollkommen abgetrennt sind und somit die Funktion des Bauteils nicht stören. Erst durch Aktivierung der JTAG-Funktion an einem bestimmten Pin, dem Test Mode Select Input, wird die Kontrolle bestimmter Funktionen an JTAG übergeben. Die Schnittstelle von JTAG zur Außenwelt ist als Schieberegister implementiert.

Inhaltsverzeichnis

Motivation und Entwicklung

Ende der 1970er Jahre war der Integrationsgrad der Mikroelektronik soweit gestiegen (zeitgenössische komplexe IC sind Intel 4004, Intel 8008 oder Zilog Z80), dass ICs mit tausenden Flipflops bzw. Registern in einem IC arbeiteten. Die Zustände dieser internen Flipflops sind bei einem IC nicht mehr zugänglich. Es entstand die Forderung (zunächst der IC-Hersteller selbst), dass zum Test der Struktur eines komplexen IC dessen Gatter und Leitungen steuerbar; zum Test der Funktion die Zustände (aller Register und Flipflops) beobachtbar sein sollten. Eichelberger veröffentlichte 1977[1] einen als Scan-Path bezeichneten Lösungsansatz, bei dem jedes Flipflop im IC einen zusätzlichen Multiplexer (Transfergate) am Eingang erhält. Auf diese Weise können nun alle Flipflops des IC wahlweise zu einem langen Schieberegister zusammengeschaltet werden, über das jeder Zustand jedes Flipflops von außen beobachtbar und steuerbar wird.

Der JTAG-Standard entstand durch einen Zusammenschluss von Halbleiterherstellern im Jahr 1985/86. Es wurde ein Standard erarbeitet, der in der Norm IEEE 1149.1-1990 festgehalten wurde. Mit der Überarbeitung IEEE 1149.1-1994 ist die Boundary Scan Description Language Teil des Standards. Die aktuelle Version des Standards ist 1149.1-2001 IEEE standard test access port and boundary-scan architecture.[2]

Funktionsweise

Aufbau

Eine JTAG-Komponente besteht im Wesentlichen aus folgenden Teilen:

  • Dem Test Access Port (TAP) mit den Steuerleitungen, im allgemeinen auch JTAG-Port oder JTAG-Schnittstelle genannt.
  • Dem TAP-Controller, eine State-Machine, welche die Testlogik steuert.
  • Zwei Schieberegistern, dem „Instruction Register“ (IR) und dem „Data Register“ (DR).

Test Access Port

Beispiel einer JTAG Chain

Der Test Access Port (TAP) besteht aus fünf Steuerleitungen:

  1. Test Data Input (TDI). Serieller Eingang der Schieberegister.
  2. Test Data Output (TDO). Serieller Ausgang der Schieberegister.
  3. Test Clock (TCK). Das Taktsignal für die gesamte Testlogik.
  4. Test Mode Select Input (TMS). Diese Leitung bestimmt, in welchen folgenden State die State Machine des Test Access Port bei der nächsten positiven Signalflanke des TCK-Signals springt.
  5. Test Reset (TRST). Reset der Testlogik. Dieses Signal ist optional

Verdrahtung in der Gesamtschaltung

An eine JTAG-Schnittstelle können mehrere integrierte Schaltungen angeschlossen werden. Im Englischen spricht man von einer „JTAG chain“. Effektiv kommt es dabei zu einer Reihenschaltung der Schieberegister der beteiligten ICs. Die TAP-Controller der einzelnen ICs laufen dabei parallel.

TAP-Controller

State Diagram eines JTAG TAP-Controllers. Die Einsen und Nullen bezeichnen den Zustand der TMS-Leitung, dieser bestimmt, in welchen State bei der nächsten TCK gesprungen wird.

Der Tap-Controller ist ein von TCK getakteter und von der TMS-Leitung gesteuerter Zustandsautomat. Die TMS-Leitung bestimmt dabei, in welchen Folgezustand beim nächsten Takt gesprungen wird. Der TAP-Controller hat sechs stabile Zustände, das heißt Zustände, in denen mehrere Takte verblieben werden kann. Diese sechs Zustände sind „Test Logic Reset“, „Run Test / Idle“, „Shift-DR“ und „Shift-IR“ sowie „Pause-DR“ und „Pause-IR“. Im Zustand „Test Logic Reset“ wird die Testlogik zurückgesetzt, „Run Test / Idle“ wird als Ruhezustand oder für Wartezeiten benutzt. Die beiden „Shift“-Zustände schieben jeweils das DR- oder IR-Schieberegister. Die beiden „Pause“-Zustände dienen der Unterbrechung von Schiebeoperationen. Aus allen anderen Zuständen wird beim folgenden Takt in einen anderen Zustand gesprungen. Beim Durchlaufen werden jeweils bestimmte Steuerfunktionen ausgelöst.

Register

Diagramm eines JTAG Test Access Port mit den üblicherweise vorhandenen Datenregistern.

Ein IC mit JTAG-Port verfügt nach außen über zwei Register, das „Instruction Register“ (IR) und das „Data Register“ (DR). Das "Data Register" ist dabei ein von mehreren Datenregistern gemeinsam benutztes Schieberegister.

Bei einer Schiebeoperation wird dabei der TDI-Eingang in das vorderste Bit des Schieberegisters „hineingeschoben“, das hinterste Bit des Schieberegisters wird zum TDO-Ausgang „hinausgeschoben“. Sind mehrere ICs in einer „JTAG-Chain“ hintereinandergeschaltet, müssen Informationen, die für ein bestimmtes IC gedacht sind, durch die Schieberegister der vorherigen hindurchgeschoben werden. Welches der beiden Register (IR oder DR) geschoben wird, hängt davon ab, ob sich der TAP-Controller im DR- oder im IR-Zweig befindet.

Das „Instruction Register“ (IR)

Wenn eine Schiebeoperation durch die Datenregister (DR, siehe unten) erfolgt, gibt der Wert des "Instruction Registers" (IR) an, durch welches der Datenregister die Schiebeoperation erfolgt. Aufgrund der Verschaltung der Schieberegister können die Instruction Register aller Bausteine in einer „JTAG chain“ nur gemeinsam geschrieben werden.

Das IR hat keine bestimmte Länge. Es ist bei einigen Mikrocontrollern 4 Bit (z. B. ARM, Maxim/Dallas DS4550, Renesas SH-Mikrocontroller), bei anderen 5 Bit (z. B. Freescale MPC5554) oder auch 8 Bit (z. B. Infineon C166) breit.

Bestimmte Werte des IR können vom IC bei Beendigung der Schiebeoperation als Kommando interpretiert werden. Beim Auslesen wird das "Instruction Register" (IR) oft als Statusregister benutzt.

Das „Data Register“ (DR)

Das „Data Register“ (DR) ist ein von mehreren Datenregistern gemeinsam benutztes Schieberegister. Welches Register darauf abgebildet wird, wird vom „Instruction Register“ (IR) bestimmt. Dieses kann als Steuerung eines Multiplexers verstanden werden, das die Datenregister auf den TDO-Ausgang multiplext. Der IEEE 1149.1-Standard schreibt bestimmte Register vor, die in allen JTAG-fähigen Bausteinen enthalten sein müssen. Das sind das Bypass-, das IDCODE- und das Boundary-Scan-Register.

Das Bypass-Register

Bei diesem Datenregister handelt es sich um ein Dummy-Schieberegister mit einem Bit Breite. Hintergrund ist, dass die Datenregister (DR) aller ICs wie beim IR nur gleichzeitig gelesen und beschrieben werden können. Soll nur das Datenregister eines einzelnen IC in der "JTAG chain" gelesen oder geschrieben werden, so wird in die IRs aller anderen ICs der Wert „Bypass-Register auswählen“ geladen, so dass dieses Register ausgewählt wird. Dadurch wirken diese ICs beim Schieben durch die DRs lediglich wie zwei parasitäre Schieberegister vor und hinter dem DR des IC, das eigentlich beschrieben werden soll.

Das IDCODE-Register

Beim Beginn einer Schiebeoperation durch dieses Datenregister (DR) wird eine IC-Kennung (Hersteller und Produkttyp) in das Schieberegister geladen, die zur Identifizierung des IC dient.

Das Boundary-Scan-Register

Die Bits dieses Datenregisters (DR) repräsentieren die Pins des IC. Die genaue Bedeutung ist herstellerabhängig. Ähnlich wie bei einer speicherprogrammierbaren Steuerung kann mit dem Boundary-Scan-Register der Spannungspegel aller Ausgänge bestimmt und die Spannungspegel aller Eingänge gelesen werden. Das wird für Scan Tests genutzt.

Weitere Register

Über die drei vorgeschriebenen Datenregister hinaus können aber auch zusätzliche Register definiert werden, die beispielsweise eine Debug- oder Programmierschnittstelle zur Verfügung stellen. So verfügt beispielsweise im Fall von ARMv5 das IC über drei spezielle Register, die als Datenregister (DR) angesprochen werden.

Um den JTAG-Port eines IC nutzen zu können, ist es notwendig, seinen Aufbau und die enthaltenen Register genau zu kennen. Das wird in einer vom Hersteller bereitgestellten BSDL-Datei (Boundary Scan Description Language) beschrieben.

Weitere Anwendungen

Inzwischen wird JTAG vermehrt auch zur Konfiguration von FPGAs und CPLDs sowie zum Programmieren und zum Debuggen von Mikrocontrollern verwendet. Parallel programmierbare Speicher wie zum Beispiel Flashspeicher, die direkt an ein IC mit JTAG-Port angeschlossen sind, können deshalb im eingebauten Zustand umprogrammiert werden, weil das IC für den Speicherchip ein Programmiergerät emulieren kann. Zum Austausch solcher Programmierdaten dient oft das Serial Vector Format (SVF).

Erweiterungen

Der IEEE-Standard 1149.1 wurde inzwischen mit einer Anzahl Erweiterungen versehen. Das sind:

  • 1149.4: IEEE Standard for a Mixed-Signal Test Bus, Testen von analogen Schaltkreisen.[3]
  • 1149.5: IEEE Standard for Module Test and Maintenance Bus (MTM-Bus) Protocol, wurde 2003 zurückgezogen.[4]
  • 1149.6: IEEE Standard for Boundary-Scan Testing of Advanced Digital Networks, Testen von Differenzsignalen, auch mit AC-Kopplung.[5]
  • 1149.7: IEEE Standard for Boundary-Scan Testing of Advanced Digital Networks, vereinfachter Test-Port mit nur zwei Signalen.[6]

Eine weitere Erweiterung des JTAG-Standards, speziell zum Programmieren von JTAG-fähigen Bausteinen wurde unter der Bezeichnung IEEE Std 1532-2002: IEEE Standard for In-System Configuration of Programmable Devices[7] verabschiedet. Ein diesem Standard entsprechender Baustein verfügt über bestimmte zusätzliche Register, die für seine Programmierung vorgesehen sind.

Siehe auch

Einzelnachweise

  1. Edward Eichelberger, Thomas Williams: A logic Design Structure for LSI Testability. In: Proceedings of the 14th Design Automation Conference. June 1977, S.462-468.
  2. IEEE OPAC: IEEE Std 1149.1-2001 IEEE standard test access port and boundary-scan architecture doi:10.1109/IEEESTD.2001.92950
  3. IEEE OPAC: IEEE Std 1149.4-1999: IEEE Standard for a Mixed-Signal Test Bus doi:10.1109/IEEESTD.2000.91314
  4. IEEE Std 1149.5-1995: IEEE Standard for Module Test and Maintenance Bus (MTM-Bus) Protocol
  5. IEEE OPAC: IEEE Std 1149.6-2003: IEEE Standard for Boundary-Scan Testing of Advanced Digital Networks doi:10.1109/IEEESTD.2003.94249
  6. IEEE OPAC: IEEE Std 1149.7-2009: IEEE Standard for Reduced-Pin and Enhanced-Functionality Test Access Port and Boundary-Scan Architecture doi:10.1109/IEEESTD.2010.5412866
  7. IEEE OPAC: IEEE Std 1532-2002: IEEE Standard for In-System Configuration of Programmable Devices doi:10.1109/IEEESTD.2003.94229

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Joint Test Action Group — (JTAG) is the usual name used for the IEEE 1149.1 standard entitled Standard Test Access Port and Boundary Scan Architecture for test access ports used for testing printed circuit boards using boundary scan.JTAG was an industry group formed in… …   Wikipedia

  • Joint Test Action Group — Le JTAG pour Joint Test Action Group est le nom de la norme IEEE 1149.1 intitulé « Standard Test Access Port and Boundary Scan Architecture ». Le JTAG a été normalisé en 1990. Le terme JTAG, désignant le groupe de travail qui a conçu la …   Wikipédia en Français

  • In-circuit test — (ICT) is an example of white box testing where an electrical probe tests a populated printed circuit board (PCB), checking for shorts, opens, resistance, capacitance, and other basic quantities which will show whether the assembly was correctly… …   Wikipedia

  • test — 1. To prove; to try a substance; to determine the chemical nature of a substance by means of reagents. 2. A method of examination, as to determine the presence or absence of a definite disease or of some substance in any of the fluids, tissues,… …   Medical dictionary

  • Joint Task Force 2 — Infobox Military Unit unit name= Joint Task Force 2 (JTF2) caption= JTF2 Insignia dates= 1993–present country= Canada allegiance= branch= Tri Services type= Special Forces role=Special Forces command structure= Canadian Special Operations Forces… …   Wikipedia

  • Joint Security Area — Infobox Korean name| |caption=The JSA in 1973 hangul=공동경비구역 hanja=共同警備區域 rr=Gongdong Gyeongbi Guyeok mr=Kongdong Kyŏngbi Kuyŏk The Joint Security Area (JSA) or Panmunjeom, often called the Truce Village in both the media [… …   Wikipedia

  • Air Force Operational Test and Evaluation Center — Infobox Military Unit unit name= Air Force Operational Test and Evaluation Center caption= Air Force Operational Test and Evaluation Center emblem dates= 1 January 1974 country= United States allegiance= branch= United States Air Force type=… …   Wikipedia

  • JTAG — Joint Test Action Group …   Acronyms

  • JTAG — Joint Test Action Group …   Acronyms von A bis Z

  • Boundary-Scan — Joint Test Action Group Le JTAG pour Joint Test Action Group est le nom de la norme IEEE 1149.1 intitulé « Standard Test Access Port and Boundary Scan Architecture ». Le JTAG a été normalisé en 1990. Le terme JTAG, désignant le groupe… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”