JTAG (Joint Test Action Group) adalah nama standar IEEE 1149.1 yang mendefinisikan protokol yang digunakan untuk menguji koneksi pada papan sirkuit tercetak, juga digunakan untuk commissioning dan memprogram sirkuit dan sistem mikroprosesor yang dapat diprogram. Agar dapat menggunakan JTAG untuk tujuan ini, sirkuit terintegrasi yang ditempatkan di sistem yang diuji harus memiliki lapisan perangkat keras dari antarmuka ini di dalamnya. Elemen utama dari antarmuka ini adalah pengontrol TAP yang didasarkan pada mesin negara yang didedikasikan untuk debugging dan terlepas dari tugas dasar mikrokontroler dengan JTAG bawaan. Salah satu asumsi terpenting dari standar JTAG adalah kemampuan untuk memprogram sirkuit dalam perangkat yang sudah jadi, tanpa perlu memutuskan sambungannya (In-System Programming, disingkat ISP).
Garis sinyal antarmuka JTAG adalah:
- TDI (Uji Data Masuk) – Masukan data,
- TDO (Uji Data Keluar) – Keluaran data,
- TCK (Uji Jam) – Input sinyal jam,
- TMS (Test Mode Select) – pemilihan mode operasi,
- TRST (Test Reset) – Reset (opsional).
JTAG berfungsi sebagai robot 16-status dengan alfabet masukan TMS=0/TMS=1. Ada dua cara untuk mengatur ulang proses pemrograman:
- melalui input TRST opsional,
- setelah menyetel TMS=1 selama 5 siklus jam.
Dimungkinkan untuk memprogram beberapa sistem secara bersamaan – yang kemudian disebut rantai perangkat yang terhubung secara seri. Diagram berikut menunjukkan cara menghubungkan sistem selanjutnya: