Jste zde

Komunikační standard IEEE 1149.1 (JTAG)

Standard IEEE 1149.1, známý jako JTAG, je jednoduchý systém pro komunikaci se zařízením a jeho vzdálené testování. často je součástí vývojových desek a obvodů FPGA. Následující článek stručně popisuje strukturu a funkci standardu.

Tato testovací architektura byla vyvinuta Joint Test Action Group a později byla převzata organizací IEEE jako IEEE Standard Test Access Port and Boundary Scan a označena jako IEEE 1149.1 též známá jako JTAG. Tento standard představuje efektivní metodu testování užívající metody skenování rozhranní - boundary - scan technique. Nejčastěji se využívá v oblasti FPGA (Field Programmable Gate Array), kde umožňuje dálkové nahrávání dat, testování a řízení zařízení.

Příklad komunikace přes JTAG s FPGA Actel

Jako příklad popisu funkce rozhraní JTAG jsem použil obvody FPGA (Field Programmable Gate Array) firmy Actel. Většina ostatních obvodů, zvláště FPGA pracují na podobném principu.

Na prvním obrázku 1. je zjednodušené schéma JTAG testovacího logického okruhu. JTAG komunikační rozhraní se skládá z 5-ti signálů:

  • TDI (Test Data Input) - sériový vstup pro přenos dat a instrukcí
  • TDO (Test Data Output) - sériový výstup pro přenos dat a instrukcí
  • TCK (Test Clock input) - hodiny pro testovací logiku, pomocí nichž se posouvají data a instrukce. Maximální frekvence je 20MHz. Vstupní data se načítají náběžnou hranou a výstupní data se vysouvají sestupnou hranou.
  • TMS (Test Mode Selector) - sériový vstup pro řídící bity testovací logiky
  • TRST (Test Asynchronous Reset Input) - asynchronní reset aktivní v log.0

Obr. 1. Blokové schéma rozhraní JTAG


 

Tyto signály komunikují přes TAP (Test Access Port) s vnitřním jádrem, které provádí samotné dekódování a využití zmíněných signálů. Toto jádro, dle obrázku 1. lze rozdělit do 3 bloků:

  • TAP controller (Test Acces Port controller)
  • TAP Instruction Register
  • Test Data Registers

Celé řízení a zpracování celé komunikace probíhá prostřednictvím sériového načítání instrukce vstupem TDI do instrukčního registru nebo dat do Data registru. Instrukce je pak dekódována prostřednictvím TAP řadiče. Jeho vstupem je hodinový signál , resetovací signál a signál výběru módu. Výstupní instrukce nebo data jsou pak opět sériově vysouvána z výstupu TDO.

TAP CONTROLLER

To je 16 stavový (4 bitový) řídící automat příjímající TCK a TMS signály (případně i TRST), pomocí nichž vytváří řídící a hodinové signály pro celý testovací systém.

Obr. 2. Blokové schéma TAP řadiče

Když se provede připnutí napájení nebo přivedení pinu TRST do log.0 (low), provede se reset testovací logiky a po dobu 5-ti hodinových cyklů musí být vstup TMS v log.1 (high). Pak log.1 nebo log.0 na vstupu TMS nastaví příjem instrukce xxx_IR (TDI se přepne na vstup Instrukčního registru) resp. nastaví příjem testovacích dat xxx _DR (TDI se přepne na vstup Data registru). Pak přesnou posloupností log.1 a 0 se vybírají další instrukce, například SHIFT - nasouvání a vysouvání dat z TDI resp. TDO, UPDT (update) - načtení nových hodnot (tj. nové rozhodování o přepnutí TDI), BSEINB - použití Bypass registru atd.

V součástkách FPGA může být celý JTAG testovací systém zobrazen následujícím obrázkem 2. Obvykle lze komunikační rozhraní JTAG vypínat a pak lze jemu vyhrazené piny lze využít jako klasické vstupně/výstupní piny.

Obr. 3. Příklad použití JTAG komunikace a testování v obvodech FPGA

Zde se navíc vyskytuje tzv. BYPASS registr, což je 1-bitový registr umožňující utvořit nejkratší cestu od TDI pinu k TDO pinu (instrukce bypass).

Příklad načtení nové instrukce

Po nastavení do režimu zachytávání instrukce (TDI vstup se přepne na vstup instrukčního registru) se bity postupně nasouvají (Shift_IR,Clock_IR) do posuvného registru propojeného s I/O buňkami a stará data se TDO výstupem vysouvají ven. Na paralelních výstupech stále setrvávají stále hodnoty pro předcházející instrukci. Poté se TAP řadičem nastaví režim Update_IR a tím se provede zápis bitu z posuvné části do paměťového členu (DKLO) I/O buňky, tzn. je nastavená nová instrukce.

Při resetu se přímo přes paralelní vstupy do paměťových buněk instrukčního registru nahraje kombinace 00100, což odpovídá instrukci IDCODE, což je přístup k 32-bitovému Device Identification Registru, který je jeden z Data test registrů a obsahuje kód výrobce (02F - Actel), číslo součástky a číslo verze. Dále lze instrukcí USERCODE naprogramovat vlastní označení do dalšího 32-bitového registru.

BOUNDARY - SCAN REGISTER

Patří mezi Datové testovací registry a umožňuje řídit a sledovat každý I/O pin součástky FPGA (mimo CLK pinu, který muže být jen sledován, nikoliv řízen). Každá buňka obsahuje sériový vstup a výstup (pro možnost posuvu dat z TDI a do TDO) a paralelní vstup a výstup pro obecnou komunikaci součástky s logickým jádrem.

Každá buňka má strukturu podobnou buňce v instrukčním registru. Tzn. : Při načítání nových hodnot pomocí instrukce TAP řadiče SHIFT_DR se postupně jednotlivé bity nasouvají do posuvných částí buněk a zapíší se do paralelního paměťového členu až při instrukci Update_DR. Po zpracování a po nastavení instrukce řadičem Capture_DR se s nasouváním nových dat výsledky vysouvají ven z TDO.

DIAGNOSTICKÝ REŽIM

V tomto režimu se pomocí nasunutí instrukce 10000 do Instrukčního registru, může provádět sondování výstupů jednotlivých modulů a buněk logického jádra součástky. To se provádí pomocí X-Y REGISTRU obsahující posuvný registr, jehož velikost závisí na velikosti součástky. Přítomnost tohoto registru umožňuje analýzu každého vnitřního signálu. Po zavedení instrukce do instrukčního cyklu se může do X-Y registru nasunout adresa sledovaného modulu či buňky. Poté se naadresuje příslušná sonda a hodnoty sledované buňky do dalšího registru, který je mapojen do řetězce a data se vysunou ven pomocí TDO při nasouvání nové adresy do X-Y registru. Výsledky diagnosticky mohou být také získány v reálném čase pomocí sond.

Závěr

JTAG komunikace je dnes mimo obvodů FPGA i součástí vývojových desek a kitů u kterých je nutné zajistit pohodlné a podrobné testování. JTAG například využívají i vývojové desky firmy Texas Instruments pro signálové procesory (DSP) pro komunikaci s PC pro návrh a testování algoritmů číslicového zpracování signálů. Tento článek je jen velmi stručný úvod do problematiky JTAGu. Zájemci o podrobnosti mohou zavítat na oficiální stránky standardu JTAG nebo zalistovat v datasheetech zařízení a součástek, které JTAG pro komunikaci využívají.

Antonín Vojáček
vojacek@ hwg.cz

DOWNLOAD & Odkazy

Hodnocení článku: