IEEE 1149.1

IEEE 1149.1

JTAG steht für "Joint Test Action Group" und bezeichnet normalerweise den IEEE-Standard 1149.1, der ein Verfahren zum Testen und Debuggen von elektronischer Hardware direkt in der Schaltung beschreibt.

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 ist. Das Verfahren ist auch unter dem Namen Boundary Scan Test bekannt.

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 JTAG-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 Ein- und Ausgänge an JTAG übergeben.

Inhaltsverzeichnis

Motivation und Entwicklung

Ende der 1970er Jahre war der Integrationsgrad der Mikroelektronik soweit gestiegen (man denke an Intel 4004, Intel 8008, Zilog Z80 etc.), dass ICs mit dutzenden Flipflops bzw. Registern in einem IC arbeiteten.

Da in ICs stets asynchrone Schaltungsteile implementiert werden, entstand ein Testproblem. Die inneren Zustände asynchroner Flipflops sind bei einem IC nicht mehr zugänglich. Man denke zum Beispiel an das IC einer 32 kHz-Quarzuhr: hier sind mehrere Flipflops in Reihe geschaltet, die von außen eigentlich nicht beobachtbar sind.

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 (siehe unten) veröffentlichte 1977 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.

Funktionsweise

Ähnlich einer speicherprogrammierbaren Steuerung können dann alle Ein- und Ausgänge den Spannungspegel von HI auf LOW und umgekehrt ändern. Die Programmierung über JTAG erfolgt seriell. Das heißt, dass je nach Anzahl der zu steuernden Ein- und Ausgänge, in ein Schieberegister des Bauteils nacheinander eine Folge von HI- und LOW-Spannungspegeln eingeschoben wird. Erst wenn sämtliche Bits des Schieberegisters den gewünschten Wert besitzen, werden die Spannungspegel an den Ausgängen ausgegeben.

Leitungen

Im allgemeinen wird von der JTAG-Schnittstelle oder dem JTAG-Port gesprochen. Dieser besteht aus fünf Steuerleitungen:

  1. Test Data Input (TDI) (positive Flanke)
  2. Test Data Output (TDO) (negative Flanke)
  3. Test Clock (TCK) (positive Flanke)
  4. Test Mode Select Input (TMS)
  5. Test Reset (TRST) (optional)

Verdrahtung in der Gesamtschaltung

An eine JTAG-Schnittstelle können mehrere Integrierte Schaltungen angeschlossen werden, wie im folgenden Bild zu sehen. Im Englischen spricht man von einer „JTAG chain“.

Example of JTAG chain

Datenübertragung

Bei der TCK-Leitung handelt es sich um die Taktleitung für die synchronen Flipflops der internen Schieberegister und um die Taktleitung des internen Zustandsautomaten.

Intern verfügt ein IC mit JTAG-Port über mindestens ein 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“ hintereinantergeschaltet, werden Informationen, die für ein bestimmtes IC gedacht sind, durch die Schieberegister der vorherigen hindurchgeschoben.

Die TMS-Leitung steuert den internen Zustandsautomaten, der wiederum die Schieberegister ansteuert. Das folgende Bild zeigt diesen Zustandsautomaten in einer vereinfachten Form. Die 0 bzw. 1 an einem Zustandsübergang gibt dabei den Wert der TMS-Leitung an. Für Fälle, in denen kein Zustandsübergang gezeichnet ist (z. B. Zustand="Bit shiften" und TMS=0) erfolgt kein Zustandswechsel (im Fall von "Bit shiften" wird ein weiteres Bit geshiftet). Ist der aktuelle Zustand "Bit shiften", werden Datenbits (TDI, TDO) geschoben (sowohl beim Verbleib im Zustand - TMS=0 - als auch beim Verlassen des Zustandes - TMS=1, nicht jedoch bereits beim Zustandsübergang von einem anderen Zustand nach "Bit shiften").

JTAG-Zustandsautomat

Damit wird folgende Sprache (in EBNF) beschrieben:

Start ::= 1* 0 A

A ::= [W]1 ( R Start | L [S]1 (W1S1)* [W1] X A )

wobei

W ::= 0+ "Warten"

R ::= 11 "Reset"

L ::= 0 "DR-Register ins SR laden" | 10 "IR-Register ins SR laden"

S ::= 0ⁿ "SR um n≥1 Bit Shiften"

X ::= 1 "SR zurückschreiben"

Register

Ein IC mit JTAG-Port verfügt über mehrere Register. Diese können entweder als eigenständige Schieberegister ausgeführt sein oder der Zugriff auf mehrere Register kann über ein gemeinsames Schieberegister erfolgen.

Das "Instruction Register" (IR)

Wenn eine Schiebeoperation durch die Datenregister (DR, siehe unten) erfolgt, so 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 Schaltkreise in einer "JTAG chain" nur gemeinsam geschrieben werden.

Das IR ist bei einigen ICs 4 Bit (z. B. ARM, Maxim/Dallas DS4550, Renesas SH-Microcontroller), 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.

Das Bypass-Register

Bei diesem Daten-Register 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 ICs 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 ICs, 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 ICs dient.

Das Boundary-Scan-Register

Die Bits dieses Datenregisters (DR) repräsentieren die Pins des IC. Die genaue Bedeutung ist herstellerabhängig.

Sonstige Register

Wird eine JTAG-Schnittstelle z. B. zum Debuggen verwendet, so verfügt das IC über spezielle, herstellerspezifische Debugging-Register, beispielsweise im Fall von ARMv5 drei spezielle Register, die als Datenregister (DR) angesprochen werden.

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. Um den JTAG-Port eines ICs nutzen zu können, ist es notwendig, seinen Aufbau genau zu kennen. Dieser wird in einer vom Hersteller bereitgestellten BSDL-Datei (Boundary Scan Description Language) beschrieben.

Siehe auch

  • Boundary Scan
  • Eichelberger, u.a.: A logic Design Structure for LSI Testability. Proc. 14th DAC, June 1977, S.463-468

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

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

  • IEEE 1149 — …   Википедия

  • IEEE Standards Association — The Institute of Electrical and Electronics Engineers Standards Association (IEEE SA) is a leading developer of global industry standards in a broad range of industries, including:* Power and Energy * Biomedical and Healthcare * Information… …   Wikipedia

  • IEEE — Offizielles Logo des IEEE Das Institute of Electrical and Electronics Engineers (IEEE, meist als „i triple e“ [ai trɪpl i:] gesprochen) ist ein weltweiter Berufsverband von Ingenieuren aus den Bereichen Elektrotechnik und Informatik mit Sitz in… …   Deutsch Wikipedia

  • IEEE — Institute of electrical and electronics engineers Logo de l’IEEE L’Institute of Electrical and Electronics Engineers ou IEEE (que l’on peut prononcer « i trois e ») est une organisation à but non lucratif. L’IEEE compte plus de 325.000… …   Wikipédia en Français

  • IEEE-488 — англ. Standard Digital Interface for Programmable Instrumentation кабель IEEE 488 с соед …   Википедия

  • IEEE 802 — группа стандартов семейства IEEE, касающихся локальных вычислительных сетей (LAN) и сетей мегаполисов (MAN). В частности, стандарты IEEE 802 ограничены сетями с пакетами переменной длины. Число 802 являлось следующим свободным номером для… …   Википедия

  • IEEE 1394 — Interface Тип Последовательная связь История Разработчик Apple Computer (сейчас Apple, Inc.) Разработано 1995 Производитель Разнооб …   Википедия

  • IEEE 802.11n-2009 — is an amendment to the IEEE 802.11 2007 wireless networking standard to improve network throughput over the two previous standards 802.11a and 802.11g with a significant increase in the maximum net data rate from 54 Mbit/s to 600 Mbit/s (slightly …   Wikipedia

  • IEEE 802.2 — is the IEEE 802 standard defining Logical Link Control (LLC), which is the upper portion of the data link layer of the OSI Model. The LLC sublayer presents a uniform interface to the user of the data link service, usually the network layer.… …   Wikipedia

  • IEEE 802.1Q — is the networking standard that supports Virtual LANs (VLANs) on an Ethernet network. The standard defines a system of VLAN tagging for Ethernet frames and the accompanying procedures to be used by bridges and switches in handling such frames.… …   Wikipedia

Share the article and excerpts

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