JTAG/Boundary Scan-Test

Warum das Boundary-Scan-Verfahren so genial ist und was es voraussetzt

Seite: 3/6

Anbieter zum Thema

2. Der Boundary Scan Standard IEEE1149.1

Der Boundary-Scan-Standard IEEE1149.1 beschreibt den statischen, digitalen Verbindungstest. Spricht man heute von Boundary Scan oder JTAG, so bezieht sich dies immer auf den Standard IEEE1149.1. Im Standard selbst ist der Aufbau eines Boundary-Scan-fähigen Bausteins dargelegt, wie auch die Beschreibungssprache, die „Boundary Scan Description Language (BSDL)“, welche die für jeden Baustein einzigartige Boundary-Scan-Ressourcen offen legt.

Zum inneren Aufbau eines Boundary-Scan-Bausteins definiert der Standard IEEE1149.1 hierzu vier wesentliche Bestandteile, über die ein Boundary-Scan-fähiges Bauteil verfügen muss:

  • ein Test Access Port (TAP)
  • ein TAP Controller
  • ein Befehlsregister („Instrucion register“)
  • ein oder mehrere Datenregister

Test Access Port (TAP)

Das „Test Access Port“ stellt die Schnittstelle zwischen der im Baustein befindlichen Boundary-Scan-Logik und der Außenwelt dar. Es sind drei Eingänge (zzgl. eines optionalen vierten) und ein Ausgang beschrieben.

Die Eingänge sind:

  • Test Clock (TCK)
  • Test Mode Select (TMS)
  • Test Data Input (TDI)
  • Test Reset (/TRST) - optional

Der Ausgang ist:

  • Test Data Output (TDO)

Bei den beiden Signalen TCK und TMS sowie beim optionalen /TRST-Signal handelt es sich um Broadcast-Signale, wohingegen das TDI hin zum TDO eine serielle Kette bilden, die sogenannte Scankette oder auch Scanpfad (siehe Bild 1). Auf Baugruppenebene spricht man vom Testbus.

Das Geniale bei diesem Konstrukt ist, dass nie mehr als vier (optional fünf) Signalleitungen benötigt werden, unabhängig davon, wie viele Bausteine in die Scankette geschaltet werden.

Im Boundary-Scan-Baustein sind der „Test Clock“, das „Test Mode Select“ wie auch der „Test Reset“ direkt mit dem „TAP-Controller“, sprich statisch, verbunden. Die Signale sind einzig und allein verantwortlich für den dessen Zustand. Das bedeutet gleichzeitig auch, dass sich alle Boundary-Scan-Bausteine einer Scankette immer im gleichen TAP-Zustand befinden. Das bedeutet nicht automatisch, dass sich auch alle Bausteine immer im gleichen Betriebsmode/Befehl befinden müssen.

TAP-Controller

Der „TAP-Controller“ ist verantwortlich für die komplette Steuerung der Boundary-Scan-Logik im Baustein. D.h., er ist unter anderem dafür verantwortlich, ob eine Boundary-Scan-Zelle (siehe Kapitel Boundary-Scan-Zelle) aktiviert bzw. deaktiviert wird und ob diese gerade messen oder treiben soll.

Herzstück des „TAP-Controllers“ ist die „TAP state machine“. Die darin enthaltenen Zustände haben einen unterschiedlichen Einfluss auf die Steuerung der internen Boundary-Scan-Logik.

Befehlsregister

Das Befehlsregister („Instruction register“) entscheidet über den Betriebsmode des Boundary-Scan-Bausteins, der wiederum Einfluss auf die Steuerung der Boundary-Scan-Zellen wie auch auf die Auswahl des aktuell in die Scankette (Register zwischen TDI und TDO) geschalteten Datenregisters hat. Der Standard IEEE1149.1 definiert drei zwingend erforderliche Befehle:

  • BYPASS
  • SAMPLE/PRELOAD
  • EXTEST

Jedem Befehl ist ein entsprechender Befehlscode (Bitcode) hinterlegt. Dieser kann von jedem Chip-Hersteller frei definiert werden (ausgenommen ist der BYPASS-Befehl; dieser muss sich vollständig aus Einsen zusammensetzen). Auch die Länge des Befehlsregisters ist beliebig wählbar. Eine beispielhafte Zuordnung stellt die Tabelle dar. Dabei wurde die Länge des Befehlsregisters auf zwei Bit definiert.

Datenregister

In einem Boundary-Scan-fähigen Baustein können mehrere Datenregister enthalten sein. Diese dienen dazu, Informationen im Baustein abzulegen oder auch daraus auszulesen. Der Standard IEEE1149.1 beschreibt im Minimum zwei zwingend notwendige Datenregister:

  • bypass
  • boundary-scan

Auch hier sind wieder zusätzliche Register möglich, wie das „device identification“ oder umgangssprachlich auch „idcode“-Register.

Das „bypass“-Register stellt dabei die Möglichkeit dar, den Baustein aus einem Verbund von Boundary-Scan-Bausteinen zu lösen, sprich diesen zu umfahren, ihn zu „bypassen“. Es hat dazu eine minimale Länge von nur einem Bit. Der Wert des Bits ist unveränderlich und definiert mit 0.

Das für ein späteres Testen wesentlich interessantere Datenregister ist jedoch das „boundary-scan“-Register, welches die Aneinanderreihung der einzelnen Boundary-Scan-Zellen darstellt. Da jeder Chip eine andere Anzahl an Boundary-Scan-Zellen hat, ist die Länge dieses Registers variabel.

Boundary-Scan-Zelle

Die Boundary-Scan-Zelle ist der Hauptbestandteil des Boundary-Scan-Testverfahrens. Alle bisher beschriebenen Konstrukte dienen einzig und allein der korrekten Ansteuerung der einzelnen Boundary-Scan-Zellen. Die Boundary-Scan-Zelle ist die geniale Möglichkeit, den Bauteilpin eines Bausteins gelöst von dessen normaler Funktion zu kontrollieren, d.h. einen bestimmten Pegel zu treiben oder auch zu messen.

Zu diesem Zweck befindet sich die Boundary-Scan-Zelle zwischen der Kernlogik des Bausteins und dessen Peripherie (Ausgangstreiber, Eingangstreiber). Aufgrund der funktionellen Ähnlichkeit zu den physischen Antastnadeln des In-circuit Testverfahren, welche dort den Zugriff auf die einzelnen Testpunkte realisieren, spricht man bei den Boundary-Scan-Zellen auch von „electronic nails“.

Der interne Aufbau einer einzelnen Boundary-Scan-Zelle kann sich sehr unterschiedlich gestalten. Der Standard IEEE1149.1 beschreibt in der Fassung 2001 allein zehn unterschiedliche Zell-Typen (BC_1 bis BC_10). Eigene Strukturen sind zusätzlich möglich. Der Aufbau ist oft sehr ähnlich.

Boundary Scan Description Language (BSDL)

Jeder Boundary-Scan-fähige Baustein hat seine ganz spezielle Boundary-Scan-Struktur, ohne deren Kenntnis ein Testingenieur bzw. eine Testsoftware nicht in der Lage wäre, sinnvoll mit dem Baustein zu arbeiten. Der Standard IEEE1149.1 schreibt zwar einiges zwingend vor, lässt aber auch genügend Freiräume für Individualität. Dies ist auch notwendig, was gerade am Beispiel der Struktur/Anzahl der Boundary-Scan-Zellen deutlich wird: Ein Baustein mit 20 Anschlusspins verfügt sinnvollerweise über eine geringere Anzahl an Zellen verglichen mit einem Baustein mit 1.500 Pins.

Um diese Individualität zu beschreiben, wurde die „Boundary Scan Description Language (BSDL)“ entwickelt. Sie ist das Verständigungsmedium zwischen Chip-Hersteller (der allein das „Innenleben“ seines Chips kennen kann) und Testingenieur (der dieses „Innenleben“ in seinem speziellen Einsatzfall verwenden möchte). Es handelt sich dabei um eine Datei.

So liefert das BSDL-File u.a. Angaben über:

  • verfügbare Testbussignale (insbesondere Angaben über das Vorhandensein des optionalen /TRST Signals und auch zur maximalen TCK Frequenz, bis zu der der Baustein betrieben werden kann)
  • mögliche „Compliance“ Pins
  • das Befehlsregister (verfügbare Befehle inkl. deren Bitcode; Länge des Befehlsregisters)
  • die Datenregister (verfügbare Datenregister inkl. möglicher voreingestellter Werte, z.B. IDCODE des Bausteins)
  • die Struktur der Boundary-Scan-Zellen (Anzahl, Typ, Funktion, Zuordnung zum Bauteilpin)

(ID:259281)