Kasutaja:Alkimista/JTAG

Allikas: Vikipeedia

Joint Test Action Group (JTAG, eesti keeles Ühendatud Testide Initsiatiivgrupp) on riistvaraline liides trükkplaatide programmeerimiseks, testimiseks ja silumiseks. Algselt töötati see välja piiriskaneerija (boundary scan) abil trükkplaatide testimiseks ja see on endiselt antud eesmärgil laialt kasutatav.

Tänapäeval kasutatakse JTAG'i ka IC (integrated circuit) portide silumiseks. Kõik manusprotsessorite turul olevad kaasaegsed protsessorid , millel on piisavalt kontakte, kasutavad JTAG'i. Manussüsteemide areng sõltub kiipide sobivusest JTAG'iga, et teha sellised toimingud nagu üks samm (single stepping) ja murdepunkt (breakpointing). Digitaalsetel elektroonikatoodetel nagu mobiiltelefonid või traadita pöörduspunktid ei ole muid silumise või testimise liideseid


Ülevaade JTAG-ist[muuda | muuda lähteteksti]

JTAG oli 1985. aastal moodustatud töörühm, mille eesmärgiks oli arendada trükkplaatide testimise meetodit pärast nende valmimist. Tol ajal muutusid mitmekihilised plaadid (multi-layer boards) ja mittejuhitavad raamid (non-lead-frame) IC'de standardilisteks ja olid tehtud ühendused IC'de vahel, mis ei võimaldanud uurimist. Enamik tootmise ja välja vigu trükkplaatides oli tingitud joodisühenduste ja pardalasühenduste puudujääkidest. JTAG pidi võimaldama kontaktide (pins-out) ülevaadet ühelt IC plaadilt teisele nii, et kõik vead oleksid vaadeldavad.

1990 aastal tööstuse standardiks sai IEEE standard, mis sai nimeks IEEE Std. 1149.1-1990.Samal aastal väljastas Intel esimese protsessori koos JTAG'iga -80486, millele kiiresti adopteerisid kõik elektrooniliste komponentide tootjad. 1994 aastal lisati täiendus, mis sisaldas piiri skaneerimise kirjeldamise keelt (BSDL).

JTAG nagi silumise vahend[muuda | muuda lähteteksti]

Kuigi JTAG'i varased rakendused olid suunatud plaatide tasemel testimiseks, oli JTAG'i standart mõeldud seadmete, plaatide ja süsteemide diagnoosimiseks ning testimiseks. Täna kasutatakse JTAG'i integraallülituse täiendplokkide juurdepääsuks, mistõttu on ta oluline mehhanism manussüsteemide silumiseks. Enamikutel süsteemidel on JTAG'i- põhine silumine saadaval juba esimese protsessori instruktsiooni järel, aidates alglaadimise tarkvaral toimetada. See tarkvara jookseb ainult siis, kui midagi on seadistatud. JTAG kasutab niinimetatud sisse-ahela emulaatori (või korrektselt "JTAG adapter") kui transpordi mehhanismi, võimaldades juurdepääsu kiibil asuvale silumismoodulile, mis omakorda asub CPU sees. Need moodulid lasevad tarkvaraarendajatele siluda manussüsteemide tarkvara otse masina tasandil (kui on vaja) või kõrgtaseme programmeerimiskeele lähtekoodiga.

Silumise tugi on peamine põhjus paljude tarkvaraarendajate jaoks, et olla huvitatud JTAG- ist. JTAG'i kasutades on üles ehitatud mõned silumisarhitektuurid, nagu ARM CoreSight ja Nexus, mis aitavad eemaldada JTAG- tsentrilisi silumiskeskkondi.Ta on võimeline valida koodi murdepunkte, mõlemas RAM (random-access memory) ja ROM (read-only memory) mälu sees. Andmete murdepunktid on sageli olemas, kui suurem osa andmeid on laaditud RAM mälu sisse. Enamik kujunditest omab peatava režiimi silumist (halt mode debugging), kuid mõned annavad siluritele juurdepääsu registritele ja andmesiinidele ilma tuuma silumise peatamist. Mõned ahelad võivad kasutada ARM Embedded Trace Macrocell (ETM) mooduleid, et käivitada siluri (või jälgija) tegevust keerulistel sündmustel, et ignoreerida esimene-seitsmest (first- seven) liigipääsu registrisse ühest konkreetsest alamprogrammist.

Mõnikord kasutavad FPGA (Field-programmable gate array) arendajad samuti JTAG'i, et arendada silumisriistu. Sama JTAG tehnika on kasutatud, et siluda töötavat tarkvara CPU sees, mis aitab siluda muid digitaalseid disainiplokke FPGA sees. Näiteks, tavalised JTAG'i instruktsioonid võimaldavad lugeda registreid, mis olid ehitatud suvalisse signaalide komplekti FPGA sees, andes ülevaate käitumisest, mis on nähtamatu piir- skaneerimise toimingute jaoks. Sellistesse registritesse sissekirjutamine võib anda juhtimisvõimalusi, mis ei ole muidu kättesaadavad.

Püsivara paigaldamine[muuda | muuda lähteteksti]

Lisaks silumisele, lubab JTAG seadme programmeerimist riistvarale, edastades andmeid mittelenduvate seadmete mälu (CPLD) sisse. FPGA puhul, lenduva mäluga seadmed võivad olla programmeeritud JTAG'i pordi kaudu (tavaliselt arendustöös). Uuemad versioonid, näiteks Xilinx Virtex-5, omavad sisemist juurdepääsu siseseirele (temperatuur, pinge ja vool) JTAG pordi kaudu.

JTAG programmeerijad kirjutavad tarkvara ja andmeid välkmälu sisse. Seda tehakse tavaliselt kasutades andmesiini juurdepääsu (nagu kasutab seda CPU). Mõned kaasaegsed silumisarhitektuurid, nagu ARM CoreSight ja Nexus, võimaldavad sisemise ja välimise siinhalduri juurdepääsu ilma protsessori peatamata. Halvimal juhul on võimalik juhtida välissiini signaale kasutades piiri skaneerijat.

Piiriskaneerimise testimine[muuda | muuda lähteteksti]

Paljude IC- de ühendused, mis on ühendatud elektroonilise loogikuga, on ka omavahel ühendatud kogumikku nimega „Piiriskaneerimise kett“. JTAG'i kasutamisel kiibi välise liidese manipuleerimiseks (sisendid ja väljundid teiste kiipidega) on võimalik testida teatud vigu, mis on tingitud peamiselt tootmise probleemidest. Kasutades JTAG siseliidese manipuleerimiseks, võib teha kombinatsioonilise loogika teste.

Mõlemal juhul on test tehtud koos IC- ga peale seda, kui see on paigaldatud plaadi ahela peale. Üldiselt, ei aita ahela skaneerimise mehhanism diagnoosida või testida aega, temperatuuri või muid dünaamiliste tegevuste vigu, mis võivad tekkida. Testimise juhtumid on tavaliselt pakutud standardiseeritud vormides, nagu SVF (serial vector format) või selle binaarne vend XSVF (xilinx serial vector format) ja on kasutatud tootmise testidena. Võimalus teha selliseid katseid viimistletud plaatidel on oluline osa tänapäevases töös – see võimaldab leida rikkeid enne, kui toode jõuab kliendini.

JTAG-i elektrilised omadused[muuda | muuda lähteteksti]

JTAG liides on spetsiaalne 4/5- ühendusega liides, mis on lisatud kiibile ja konstrueeritud nii, et mitu kiipi ühel plaadil võivad omada mitmeid JTAG ridu, kui eritingimused on täidetud ja testsond vajab ühendust JTAG pordiga, et omada juurdepääsu kõikidele kiipidele trükkplaadi peal. Ühenduspesa viikud on:

  1. TDI (Test Data In)
  2. TDO (Test Data Out)
  3. TCK (Test Clock)
  4. TMS (Test Mode Select)
  5. TRST (Test Reset) vabatahtlik.
Example of JTAG chain
Example of JTAG chain

TRST viik on vaba, aktiivne ja madal alglaade-loogika testimiseks; tavaliselt on see asünkroonne, kuid mõnikord sünkroonne, see oleneb kiibist. Kui viik ei ole kättesaadav, siis testi loogikat saab nullida kasutades TCK ja TMS. Pange tähele, et testi loogika algseadistamine ei tähenda uuesti määratlemist. Sellel on üldjuhul mõned kindlad protsessori JTAG toimingud, mis võimaldavad taastada kiibi osa, mis oli silumisel.

Kuna ainult üks andmete rida on lubatud, siis kasutatakse jada- protokolli. Kella sisend on TCK viiku peal. Üks bitt andmetest viiakse välja TDI- st ja sealt edasi TDO-sse (tõusva TCK kella suunas). Saab laadida erinevaid juhiseid. Tavalised IC juhised võivad lugeda kiipi ID, sisendi testviiku, draiveri väljundviiku ja manipuleerida kiipide funktsioonidega.

Iga kella signaaliga TDI- le esitatud andmed pevad kokku sobima mõnede kiibi-spetsiifilise seadistuse- ja pidamisaegadega. TDO informatsioon kehtib kiibile spetsiifilise aja jooksul.Süsteemilähtestaja signaal on üsna tavaline, see lubab siluritele taaskäivitada kogu süsteemi, mitte ainult osakesi koos JTAG'iga. Mõnikord tekkivad sündmuse signaalid, mida kasutatakse JTAG poolt jälgitud seadme käivitamiseks.

JTAG-i kommunikatsiooni mudel[muuda | muuda lähteteksti]

JTAG- i sisesed seadmed on kasutatavad ühte või mitmesse testporti juurdepääsu saamiseks (TAP). Pildil on võimalik näha kolm TAP- i, mis võivad olla individuaalsed kiibid või moodulid ühe kiibi sees. Skaneerimise kettad võivad olla meelevaldselt pikad, kuid praktikas juba 20 TAP- i on üsna palju.

Et kasutada JTAG'i, vastuvõtja on ühendatud sihtmärgi JTAG signaalidega (TMS, TCK, TDI, TDO jne) läbi JTAG adapteri. Sellel võib olla vajadus käsitleda küsimusi nagu tasemevahetus ja galvaaniline isoleerimine. Adapter on ühendatud vastuvõtjaga kasutades selliseid liideseid nagu USB, PCI, Ethernet, jne.

JTAG tarkvara arendamiseks[muuda | muuda lähteteksti]

Paljud manustarkvara loomise keskkonnad omavad JTAG toetust. Sellise tarkvara allikaid on kolm:

  • Chip Vendors võivad pakkuda tööriistu. Tavaliselt nõutakse selle jaoks JTAG adapterit.
  • Tool Vendors pakutakse neile (tavaliselt koos mitme kiipide müüjadega), kes on nõus toetama platvormi arengut.
  • On olemas Open Source riistad. GCC ja GDB moodustavad hea tööriista komplekti tuuma ja seal on GUI keskkonnad, et neid toetada.

Seeria Traadi silumine JTAG-iga[muuda | muuda lähteteksti]

Serial Wire Debug (SWD) on kahe viiguline elektriline alternatiiv JTAG liidesele, mis omab sama JTAG protokolli. See kasutab olemasoleva GND ühendust. SWD kasutab ARM protsessori kahesuunalise traadiprotokolli standarti, mis on määretletud ARM liidese sees. See lubab silurile saada teiseks AMBA siinihalduriks, et omada juurdepääsu süsteemi mälusse ja perifeeriasse või silumisregistrisse. Andmeedastuskiirus on kuni 4 MB/sek 50 MHz sagedusel. SWD omab ka sisseehitatud vigade avastajat. JTAG seadmetel koos SWD toega TMS ja TCK kasutatakse SWDIO ja SWCKL signaale, mis on pakutud kaherežiimiliste programmeerijate jaoks.

Viited[muuda | muuda lähteteksti]

Kategooria:Digitaalsed süsteemid Kategooria:IEEE Standardid