Este artículo o sección tiene un estilo difícil de entender para los lectores interesados en el tema. Si puedes, por favor edítalo y contribuye a hacerlo más accesible para el público general, sin eliminar los detalles técnicos que interesan a los especialistas.
En electrónica, JTAG, acrónimo de Joint Test Action Group, es el nombre comúnmente utilizado para referirse a la norma IEEE 1149.1 titulada Standard Test Access Port and Boundary-Scan Architecture para test access ports utilizada para comprobar PCBs utilizando escaneo perimetral (boundary scan).
JTAG se estandarizó en 1990 como la norma IEEE 1149.1-1990. En 1994 se agregó un suplemento que contiene una descripción del boundary scan description language (BSDL). Desde entonces, esta norma fue adoptada por las compañías electrónicas de todo el mundo. Actualmente, Boundary-scan y JTAG son sinónimos.
Diseñado originalmente para circuitos impresos, actualmente es utilizado para la prueba de submódulos de circuitos integrados, y es muy útil también como mecanismo para depuración de aplicaciones embebidas, puesto que provee una puerta trasera para acceder al sistema. Cuando se utiliza como herramienta de depuración, un emulador interno (o adaptador JTAG) usa JTAG como mecanismo de transporte permitiendo al programador acceder al módulo de depuración que se encuentra integrado en la CPU. El módulo de depuración permite al programador corregir errores de código y de lógica en sus sistemas.
Características eléctricas
Una interfaz JTAG es una interfaz especial de cuatro o cinco señales, diseñada de tal forma que varios chips en una tarjeta puedan tener sus líneas JTAG conectadas en cascada (daisy chain). De esta forma, una sonda de testeo JTAG necesita conectarse a un solo "puerto JTAG" para acceder a todos los chips JTAG de una placa electrónica. Los pines del conector son:
TDI (Entrada de Datos de Testeo)
TDO (Salida de Datos de Testeo)
TCK (Reloj de Testeo)
TMS (Selector de Modo de Testeo)
TRST (Reset de Testeo) es opcional.
Ya que posee una sola línea de datos, el protocolo es necesariamente serie, como el Serial Peripheral Interface. La entrada de la señal de reloj es por el pin TCK. La configuración del dispositivo se realiza manipulando una máquina de estados de un bit empleando el pin TMS. Un bit de datos es cargado en TDI y otro sacado en TDO por cada pulso de reloj de la señal TCK. Se pueden cargar diferentes modo de instrucción como leer el ID del chip, muestrear el valor de pines de entrada/salida, manejar pines de salida, manipular funciones del chip, o funciones de derivación (gracias al bypass proporcionado por la unión del pin TDO de cada chip JTAG al pin TDI del siguiente chip JTAG, de forma que todos los chips JTAG pueden estar encadenados en cascada en un mismo diseño). La frecuencia de reloj del pin TCK varía en función de cada chip, pero típicamente está en el rango de 10-100 MHz (10-100ns/bit).
Cuando se hace la operación de boundary scan (escaneo perimetral) en circuitos integrados, las señales manipuladas están entre diferentes bloques funcionales del chip, más que entre diferentes chips.
La señal TRST es opcional y activa a nivel bajo, por lo general asíncrona, aunque puede ser síncrona (depende del chip). Se utiliza para resetear o reiniciar la prueba lógica. Si no se dispone de dicha señal, la prueba lógica puede reiniciarse mediante un comando reset.
Algunos productos de consumo mantienen su puerto JTAG, por lo que sus conexiones están a menudo disponibles en la PCB como parte de la fase de desarrollo del producto. Dejar accesible este interfaz también puede suponer un riesgo de ingeniería inversa.
Extensiones comunes
Extensiones de fabricantes: Infineon, MIPS EJTAG, Freescale COP, ARM ETM (Extended Trace Macrocell), OnCE etc.
The openwince project produce the JTAG Tools supporting a large set of inexpensive IEEE 1284 parallel printer port cables (the project has made no releases since 2003 but its CVS repository is quite active)
JTAG-ARM9 provides a JTAG access program for the ARM9 processor.
Green Hills SoftwareMULTI Debugger and Green Hills Probe, Software and hardware supports JTAG and BDM based development on ARM, XScale, PowerPC, MIPS, ColdFire, Blackfin, ARC, TI C6000, v800, StarCore, SH, M32R, and LSI ZSP.
RonetixPEEDI, JTAG Emulator and Flash Programmer for ARM7/9, XScale
Abatron AG's BDI-2000 acts as a GDB server on your LAN, giving you source-level debugging via JTAG.
JTAG Emulator Embedded Toolsmiths Guardian-SE JTAG Emulator connects a GDB server on your LAN to the JTAG interface on PowerPC, MIPS, XScale and Arm Processors. This allows: JTAG FLASH Programming, JTAG Emulation and JTAG source-level debugging via JTAG for PowerPC, MIPS, XScale and ARM Processors.
XJTAG JTAG Development Systems – Boundary Scan test, visual analysis and debug, In-System Programming
Göpel electronic SCANFLEX, JTAG / Boundary Scan test and In-System Programming, debug, emulation.
GOEPEL Electronics JTAG / Boundary Scan test and In-System Programming, debug, emulation at device, board, and system level; SYSTEM CASCON, SCANFLEX, CASLAN.
Wind RiverMultiCore Debugger, Wind River OCD, Probe, ICE and Trace tools JTAG support along with HW reference development boards.
Overview of JTAG technology including connection testing, in-system programming, design for testability (DFT)
JTAG Scan Educator - Ver. 2 (Rev. A) - An educational software program for DOS, JTAG Scan Educator, introduces the fundamentals of the IEEE 1149.1 boundary-scan standard, including architecture protocol, and required instruction sets.