www.wikidata.de-de.nina.az
Joint Test Action Group kurz JTAG ist ein haufig verwendetes Synonym fur den IEEE Standard 1149 1 der eine Methodik fur das Testen und Debuggen integrierter Schaltungen also Hardware auf Leiterplatten beschreibt Das prominenteste und gleichzeitig zuerst in der JTAG Arbeitsgruppe implementierte Verfahren ist der Boundary Scan Test nach IEEE 1149 1 Durch Hinzufugen weiterer Verfahren 1149 1 1149 8 sind die Begriffe nicht mehr synonym wahrend die Beschreibungssprache von der IEEE Arbeitsgruppe mit Boundary Scan Description Language den ursprunglichen Namen beibehielt Zweck des Verfahrens ist es integrierte Schaltungen ICs auf Funktion zu testen wahrend sie sich bereits in ihrer Arbeitsumgebung befinden beispielsweise verlotet auf einer Platine Dazu besitzt ein JTAG fahiges Gerat IC Komponenten die im Normalbetrieb vollkommen abgetrennt sind und somit die Funktion des Bauteils nicht storen Erst durch Aktivierung der JTAG Funktion an einem bestimmten Pin dem Test Mode Select Input kann mit Hilfe dieser zusatzlichen Komponenten das Hardwaresystem beeinflusst und dadurch kontrolliert werden Die Schnittstelle von JTAG zur Aussenwelt ist als Schieberegister implementiert Inhaltsverzeichnis 1 Motivation und Entwicklung 2 Funktionsweise 2 1 Aufbau 2 2 Test Access Port 2 2 1 Verdrahtung in der Gesamtschaltung 2 3 TAP Controller 2 4 Register 2 4 1 Das Instruction Register 2 4 2 Die Data Register 2 4 2 1 Das BYPASS Register 2 4 2 2 Das IDCODES Register 2 4 2 3 Das Boundary Scan Register 2 4 2 4 Weitere Register 3 Weitere Anwendungen 4 JTAG und Computersicherheit 5 Erweiterungen 6 Siehe auch 7 Einzelnachweise 8 WeblinksMotivation und Entwicklung BearbeitenEnde der 1970er Jahre war der Integrationsgrad der Mikroelektronik soweit gestiegen zeitgenossische komplexe IC sind Intel 4004 Intel 8008 oder Zilog Z80 dass ICs mit tausenden Flipflops bzw Registern in einem Chip arbeiteten Die Zustande dieser internen Flipflops sind bei einem IC nicht mehr zuganglich Es entstand die Forderung zunachst der IC Hersteller selbst dass zum Test der Struktur eines komplexen Bausteins dessen Gatter und Leitungen steuerbar zum Test der Funktion die Zustande aller Register und Flipflops beobachtbar sein sollten Eichelberger veroffentlichte 1977 1 einen als Scan Path bezeichneten Losungsansatz bei dem jedes Flipflop im IC einen zusatzlichen Multiplexer Transfergate am Eingang erhalt Auf diese Weise konnen nun alle Flipflops des IC wahlweise zu einem langen Schieberegister zusammengeschaltet werden uber das jeder Zustand jedes Flipflops von aussen 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 Uberarbeitung 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 BearbeitenAufbau Bearbeiten 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 einer State Machine welche die Testlogik steuert Zwei Schieberegistern dem Instruction Register IR und dem Data Register DR Test Access Port Bearbeiten nbsp Beispiel einer JTAG ChainDer Test Access Port TAP besteht aus funf Steuerleitungen Test Data Input TDI Serieller Eingang der Schieberegister Test Data Output TDO Serieller Ausgang der Schieberegister Test Clock TCK Das Taktsignal fur die gesamte Testlogik Test Mode Select TMS Diese steuert die State Machine des TAP Controllers Test Reset TRST Reset der Testlogik Diese Leitung ist optional da ein Reset auch uber den TAP Controller ausgelost werden kann Verdrahtung in der Gesamtschaltung Bearbeiten An einem Hardwaresystem konnen mehrere TAPs vorhanden sein die miteinander verkettet sind Das wird als JTAG Chain bezeichnet Effektiv kommt es in der Regel dabei zu einer Reihenschaltung der Schieberegister der beteiligten TAPs wobei aber auch andere Schaltungsmuster im JTAG Standard definiert sind Die TAP Controller der einzelnen TAPs laufen dabei parallel TAP Controller Bearbeiten nbsp State Diagram eines JTAG TAP Controllers Die Einsen und Nullen bezeichnen den Zustand der TMS Leitung dieser bestimmt in welchen State bei der nachsten 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 nachsten Takt gesprungen wird Der TAP Controller hat sechs stabile Zustande das heisst Zustande in denen mehrere Takte lang verblieben werden kann Diese sechs Zustande 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 zuruckgesetzt Run Test Idle wird als Ruhezustand oder fur Wartezeiten benutzt Die beiden Shift Zustande schieben jeweils das DR oder IR Schieberegister Die beiden Pause Zustande dienen der Unterbrechung von Schiebeoperationen Aus allen anderen Zustanden wird beim folgenden Takt in einen anderen Zustand gesprungen Beim Durchlaufen werden jeweils bestimmte Steuerfunktionen ausgelost Register Bearbeiten nbsp Diagramm eines JTAG Test Access Port mit den ublicherweise vorhandenen Datenregistern Ein IC mit JTAG Port verfugt nach aussen uber zwei Register das Instruction Register IR und das Data Register DR Das Data Register steht dabei fur eine Gruppe von verschiedenen Registern die an der Ubertragung von Nutzdaten beteiligt sind 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 TAPs in einer JTAG Chain hintereinandergeschaltet mussen Informationen die fur einen bestimmten TAP gedacht sind durch die Schieberegister der anderen TAPs hindurchgeschoben werden Welches der beiden Register IR oder DR geschoben wird hangt davon ab ob sich der TAP Controller im DR oder im IR Zweig befindet Das Instruction Register Bearbeiten Wenn eine Schiebeoperation durch die Datenregister DR siehe unten erfolgt gibt der Wert des Instruction Register IR an durch welches der Datenregister die Schiebeoperation erfolgt Aufgrund der Verschaltung der Schieberegister konnen die Instruction Register aller Bausteine in einer JTAG Chain nur gemeinsam geschrieben werden Das IR hat keine festgelegte Lange muss allerdings mindestens 2 Bit gross sein Bei einigen Mikrocontrollern ist es 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 konnen vom TAP bei Beendigung der Schiebeoperation als Kommando interpretiert werden Beim Auslesen wird das Instruction Register oft als Statusregister benutzt Die Data Register Bearbeiten Als Data Register DR werden diejenigen Register bezeichnet die an der Ubertragung von Nutzdaten beteiligt sind Hardwareseitig ist das oft ein einzelnes Schieberegister welches die Aufgabe des jeweiligen JTAG Registers ubernimmt Welches Register darauf abgebildet wird wird vom Instruction Register bestimmt Das kann als Steuerung eines Multiplexers verstanden werden der die Datenregister auf den TDO Ausgang multiplext Der IEEE 1149 1 Standard schreibt bestimmte Register vor die in allen JTAG fahigen Bausteinen enthalten sein mussen Das sind das BYPASS das IDCODES und das Boundary Scan Register Das BYPASS Register Bearbeiten Bei diesem Datenregister handelt es sich um ein Schieberegister mit einem Bit Breite Hintergrund ist dass die Datenregister DR aller TAPs wie beim IR nur gleichzeitig gelesen und beschrieben werden konnen Soll nur das Datenregister eines einzelnen TAP in der JTAG Chain gelesen oder geschrieben werden so wird uber die IRs aller anderen TAPs die BYPASS Instruktion geladen so dass dieses Register ausgewahlt wird Dadurch kann die Latenz der Scan Chain welche durch den Schiebevorgang entsteht minimiert werden Das IDCODES Register Bearbeiten Beim Beginn einer Schiebeoperation durch dieses Datenregister DR wird eine Identifikationsnummer Hersteller und Produkttyp in das Schieberegister geladen die zur Identifizierung des TAP dient Das Boundary Scan Register Bearbeiten Die einzelnen Speicherzellen des Boundary Scan Register BSR erlauben den Zugriff auf die an den TAP angeschlossenen Logikschaltungen Das konnen fur spezielle Scan Tests benotigte Schaltungen sein oder auch ganze In Circuit Emulatoren darstellen Die genaue Bedeutung ist herstellerabhangig Ahnlich wie bei einer speicherprogrammierbaren Steuerung kann mit dem Boundary Scan Register der Spannungspegel aller Ausgange bestimmt und die Spannungspegel aller Eingange gelesen werden Das wird fur Scan Tests genutzt Weitere Register Bearbeiten Uber die drei vorgeschriebenen Datenregister hinaus konnen noch zusatzliche Register definiert werden die beispielsweise eine Debug oder Programmierschnittstelle zur Verfugung stellen So verfugt beispielsweise im Fall von ARMv5 der TAP uber drei spezielle Register die als Datenregister DR angesprochen werden Um den JTAG Port eines IC nutzen zu konnen ist es notwendig seinen Aufbau und die enthaltenen Register genau zu kennen Das wird in einer vom Hersteller bereitgestellten BSDL Datei beschrieben Weitere Anwendungen Bearbeiten nbsp JTAG Adapter fur die Programmierung und Debuggen von ARM MikrocontrollernInzwischen 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 konnen deshalb im eingebauten Zustand umprogrammiert werden weil der IC fur den Speicherchip ein Programmiergerat emulieren kann Zum Austausch solcher Programmierdaten dient oft das Serial Vector Format SVF JTAG und Computersicherheit BearbeitenWegen des direkten Hardware Zugriffs per JTAG eignet sich die Schnittstelle dafur Sicherheitsmassnahmen zu umgehen 3 Daher wird der Begriff JTAG vielfach und nicht immer mit einheitlicher Definition im Kontext der Hackerszene verwendet Gamer sprechen von einer jtagged XBox wenn Modding Techniken benutzt wurden um auf einer Spielekonsole Inhalte ohne Herstellersignatur laufen lassen zu konnen Im Hardware Kontext wird JTAG synonym mit Debugging verwendet was im Software Bereich irrefuhrend sein kann JTAG kann besonders dafur verwendet werden den Bootprozess von Geraten zu erkunden mit dem Ziel ihn zu unterbrechen und durch Code Injection die Kontrolle uber das Gerat zu erlangen Um diesen Zugriff zu verhindern werden bei ICs haufig die JTAG Ports nicht als solche markiert oder aktiv verschleiert Weitere Sicherheitsmassnahmen sind eine nachtragliche Maskierung der Pins ein Gehause das die JTAG Pins abdeckt oder Schmelzsicherungen in den JTAG Verbindungen die nach Abschluss der Tests zerstort werden Der Zugang zu JTAG Ports kann daher erschwert sein ist aber mit entsprechendem Aufwand in praktisch jedem Fall moglich Der Zugang auf Hardware uber JTAG Ports konnte nur unterbunden werden wenn der Zugriff selbst uber Verschlusselung oder Authentifikation verfugen wurde Verschiedene Entwurfe dazu wurden vorgelegt es gibt aber keine Standards und nur wenige Implementationen 3 Erweiterungen BearbeitenDer 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 4 1149 5 IEEE Standard for Module Test and Maintenance Bus MTM Bus Protocol wurde 2003 zuruckgezogen 5 1149 6 IEEE Standard for Boundary Scan Testing of Advanced Digital Networks Testen von Differenzsignalen auch mit AC Kopplung 6 1149 7 IEEE Standard for Boundary Scan Testing of Advanced Digital Networks vereinfachter Test Port mit nur zwei Signalen 7 Eine weitere Erweiterung des JTAG Standards speziell zum Programmieren von JTAG fahigen Bausteinen wurde unter der Bezeichnung IEEE Std 1532 2002 IEEE Standard for In System Configuration of Programmable Devices 8 verabschiedet Ein diesem Standard entsprechender Baustein verfugt uber bestimmte zusatzliche Register die fur seine Programmierung vorgesehen sind Siehe auch BearbeitenBoundary ScanEinzelnachweise Bearbeiten Edward Eichelberger Thomas Williams A logic Design Structure for LSI Testability In Proceedings of the 14th Design Automation Conference June 1977 S 462 468 IEEE OPAC IEEE Std 1149 1 2001 IEEE standard test access port and boundary scan architecture doi 10 1109 IEEESTD 2001 92950 a b Senrio JTAG Explained 28 September 2016 IEEE OPAC IEEE Std 1149 4 1999 IEEE Standard for a Mixed Signal Test Bus doi 10 1109 IEEESTD 2000 91314 IEEE Std 1149 5 1995 IEEE Standard for Module Test and Maintenance Bus MTM Bus Protocol Memento des Originals vom 9 Februar 2009 im Internet Archive nbsp Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot standards ieee org IEEE OPAC IEEE Std 1149 6 2003 IEEE Standard for Boundary Scan Testing of Advanced Digital Networks doi 10 1109 IEEESTD 2003 94249 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 IEEE OPAC IEEE Std 1532 2002 IEEE Standard for In System Configuration of Programmable Devices doi 10 1109 IEEESTD 2003 94229Weblinks Bearbeiten nbsp Commons JTAG Sammlung von Bildern Videos und Audiodateien Technischer Leitfaden fur JTAG Boundary Scan Tutorial englisch JTAG FAQ englisch Free JTAG Boundary Scan Resources englisch goJTAG free and open source alternative englisch Abgerufen von https de wikipedia org w index php title Joint Test Action Group amp oldid 237406559