JTAG

Da Wikipedia, l'enciclopedia libera.
Microprocessore Intel 80486. Il primo ad adottare lo standard JTAG
Risultato dell’esame ai raggi X delle saldature di un componente BGA

JTAG, acronimo di Joint Test Action Group, è un consorzio di 200 imprese produttrici di circuiti integrati e circuiti stampati allo scopo di definire un protocollo standard per il test funzionale di tali dispositivi, che tendono ad essere sempre più complessi e difficili da controllare, fino a rendere impraticabili i tradizionali metodi manuali o automatici (e ad aumentare in modo non competitivo il “Time to market”). Consapevoli di queste esigenze le grandi industrie hanno scelto una strada che, sacrificando in piccola parte le risorse disponibili nel circuito integrato, permetta un collaudo razionale della scheda su cui viene installato. Oltre a questo vi è la possibilità di avere delle funzionalità aggiuntive (rivolgendo il controllo dai piedini verso l’interno del componente) quali la facile programmazione di memorie, microcontrollori (e altri dispositivi programmabili) con un'unica operazione, la possibilità di debug del firmware e la possibilità di attivare dei test automatici (detti BIST Built-in self-test) inseriti stabilmente nei componenti elettronici per verificare la loro funzionalità (in modo parziale o totale).

La nascita del JTAG[modifica | modifica wikitesto]

Questo consorzio è stato attivo tra il 1985 e il 1990, e ha dato vita a quello che poi è diventato lo standard IEEE 1149.1 (prima stesura nel 1990; titolo: IEEE Standard Test Access Port and Boundary-Scan Architecture; revisioni nel 1993 e 1994), noto colloquialmente come standard JTAG dal nome del consorzio promotore (o anche Boundary Scan esame dei confini, inteso come esame dei pin accessibili di un circuito integrato).

Le principali aziende aderenti furono IBM, AT&T, Siemens, DEC, Nixdorf, Texas Instruments, Philips.

Nel 1990 la Intel produce il primo microprocessore con lo standard JTAG: l'80486. Nel 1994 venne definita una standardizzazione del linguaggio di accesso ai vari componenti (chiamato Boundary scan description language) in modo che il programma che gestisce tutto il test e a cui vengono passate tutte le informazioni sullo schema elettrico della scheda possa accedere ai singoli dispositivi ed effettuare i test sulle connessioni e le eventuali programmazioni (sui componenti che lo necessitano).

I problemi di un collaudo efficiente delle schede elettroniche[modifica | modifica wikitesto]

Le schede elettroniche sono diventate sempre più complesse:

  • Circuiti integrati sempre più piccoli e con numero di pin sempre maggiore e difficilmente accessibili.
  • Circuiti stampati multistrato (e quindi connessioni tra componenti montati sulle schede difficilmente raggiungibili).

I sistemi di collaudo si basano su vari metodi spesso usati contemporaneamente:

  • esame “visivo” del corretto montaggio dei componenti, la bontà delle loro saldature (sia con personale addetto che con sistemi automatizzati). Talvolta per la verifica delle saldature si usano immagini termografiche o esami ai raggi X [1].
  • test funzionali di verifica che all’attivazione degli ingressi della scheda si abbia la risposta prevista in uscita dalla scheda o, per migliorare la qualità del test, l’applicazione di stimoli e il rilievo di segnali in più punti della scheda (esami ICT in circuit test). Per contattare questi punti si prevedono dove necessario delle piccole piazzole. Vi si può accedere con bracci robotizzati o mediante un "letto di aghi" (bed of nail fixtures, letteralmente: dispositivo o impianto con letto di aghi) sul quale la scheda da controllare viene fissata e collegata ad un sistema computerizzato (detto Sistema di collaudo automatico o dall’inglese ATE (Automatic test equipment). Il metodo risulta sempre più difficile per la difficoltà di prevedere piazzole di test su schede sempre più piccole e con componenti miniaturizzati. I test con sensori mobili robotizzati rende il test piuttosto lento.

Il JTAG[modifica | modifica wikitesto]

Esempio delle connessioni per lo standard JTAG di tre chip

La soluzione proposta dal Joint Test Action Group è stata quella di prevedere per alcuni pin dei circuiti integrati la possibilità di bloccare il funzionamento normale degli stessi e di passare in un modo di funzionamento speciale che permetta di prendere il controllo di tutti i restanti pin dei circuiti integrati. Nella figura sono illustrati tre circuiti integrati (DEVICE 1, DEVICE 2 e DEVICE 3) e le loro connessioni di test JTAG che saranno accessibili su un connettore riservato al test. I tre circuiti integrati avranno numerosi altri pin (anche centinaia) variamente collegati:

  • tra gli integrati in figura direttamente o con l’interposizione di altri circuiti integrati che non dispongono del JTAG
  • verso altri componenti anche molto complessi e verso connettori della scheda

I segnali che permettono il test JTAG (indicati in figura) sono:

  • TCK (Test Clock) Pin di clock dei dati
  • TMS (Test Mode Select) Selezione del modo test
  • TDI (Test Data In) Pin di ingresso dei dati della scheda elettronica. Da notare che questo segnale collega i tre circuiti integrati in catena (l’uscita TDO di DEVICE 1 si collega al TDI di DEVICE 2 e così via per uscire infine dalla scheda).
  • TDO (Test Data Out) Pin di uscita dei dati
  • TRST (Test Reset) opzionale. Segnale di reset del test (non indispensabile e non presente in figura)

Si comprende che i circuiti integrati sono controllati in modo seriale in catena (Daisy chain), in quanto i segnali TDI e TDO trasferiscono i dati dall’ingresso della scheda, tra un circuito integrato e il successivo ed infine vengono letti sul pin TDO sull’uscita della scheda. La trasmissione seriale è sincrona (Serial Peripheral Interface) in quanto controllata da un segnale di clock (TCK) applicato contemporaneamente a tutti gli integrati JTAG [2]. La frequenza del clock (TCK) viene determinata dal dispositivo più lento della catena (tipicamente è di 10-100 MHz, 100-10 ns per bit). Il segnale TMS segnala ai circuiti integrati di sospendere il loro normale funzionamento e di riconoscere il modo di funzionamento di test (JTAG). Per dettagli sulle temporizzazioni dei segnali si può consultare i datasheet degli integrati che lo usano [3].

Test della scheda mediante il JTAG[modifica | modifica wikitesto]

Entrati in modo test JTAG si può accedere ad ogni pin dei circuiti integrati della catena e metterli in modo uscita (alto o basso) o in modo ingresso. È chiaro quindi che le connessioni non visualizzate in figura tra DEVICE 1 e DEVICE 2 (che potrebbero ad esempio essere un microprocessore ed un altro dispositivo: CPLD, FPGA, ecc.) possono essere controllate sia per quanto riguarda le interruzioni che per eventuali cortocircuiti. Se tra i due dispositivi sono presenti componenti non JTAG (detti in gergo cluster) il test può essere possibile (se ad esempio si tratta di resistori collegati in serie o di un semplice buffer digitale) oppure permettere verifiche della funzionalità solo parzialmente (i software di gestione delle funzioni JTAG permettono di definire una "copertura", in genere espressa in percentuale, che definisce se un componente può essere testato e quanto il risultato del test è affidabile). Anche su schede semplici dove è presente un solo componente con JTAG il test può essere possibile e conveniente in concomitanza con i tradizionali sistemi. Considerando infine che difficilmente le schede complesse sono costituite interamente da circuiti digitali testabili mediante boundary scan (dato che quasi sempre ci sono anche componenti e parti interamente analogiche), spesso è utile considerare un approccio integrato di test funzionale e boundary scan [4].

Altre funzioni possibili con il JTAG[modifica | modifica wikitesto]

Modem/router ADSL. Il connettore JTAG per test e programmazione è indicato con il N. 5
  • Possibilità di testare un intero sistema collegando tra di loro le singole schede mediante il connettore JTAG.
  • La connessione JTAG costituisce una porta di accesso riservata con cui si possono attivare varie funzioni sviluppate dai costruttori del componente.
    • Possibilità di programmare i singoli dispositivi (firmware dei microcontrollori, dati nelle memorie flash o EEPROM).
    • Nei microcontrollori possibilità di debugging del firmware in circuit mediante dispositivi e software opportuni forniti dal costruttore o comunque disponibili da Third Party Support (consigliati dal costruttore o comunque disponibili senza una sua espressa omologazione).

Note[modifica | modifica wikitesto]

  1. ^ Esempi di test mediante raggi x di componenti BGA (Ball grid array)
  2. ^ Ovviamente si deve presupporre che le connessioni JTAG siano funzionanti: non presentare interruzioni o cortocircuiti tra di esse o con altre net (con altre tracce sul circuito stampato di segnali od alimentazioni)
  3. ^ Vedi in particolare l’immagine Figure 1. JTAG Timing Diagram
  4. ^ Il test boundary scan abbinato al test funzionale (Articolo apparso su "Automazione e strumentazione" n. 4 - Maggio 2014 - pag. 58-62)

Collegamenti esterni[modifica | modifica wikitesto]