JTAG

聯合測試工作組（JTAG, Joint Test Action Group），是個工業標準，用於驗證設計與測試生產出的印刷電路板功能。

1990 年，JTAG 正式由電機電子工程師學會（IEEE）進行文件標準化，編號為 IEEE 1149.1-1990。在 1994 年，加入了補充文件對邊界掃描描述語言（BSDL）進行了說明。從那時開始，這個標準被全球的電子企業廣泛採用。邊界掃描幾乎成為了 JTAG 的同義詞。

在設計印刷電路板時，目前最主要用在測試積體電路的副區塊，而且也提供一個在嵌入式系統很有用的偵錯機制，提供一個在系統中方便的 "後門"。當使用一些偵錯工具像電路內模擬器用 JTAG 當做訊號傳輸的機制，使得程式設計師可以經由 JTAG 去讀取整合在 CPU 上的偵錯模組。偵錯模組可以讓程式設計師偵錯嵌入式系統中的軟體。

電氣特性

JTAG 的介面是一種特殊的 4/5 個接腳介面連到晶片上 ，所以在電路版上的很多晶片可以將他們的 JTAG 接腳透過 Daisy Chain 的方式連在一起，並且 Probe 只需連線到一個 “JTAG 埠” 就可以訪問一塊印刷電路板上的所有 IC。這些連線引腳是：

TDI（測試資料輸入）
TDO（測試資料輸出）
TCK（測試時鐘）
TMS（測試模式選擇）
TRST（測試復位）可選。

因為只有一條資料線，通訊協議有必要像其他序列裝置介面，如 SPI 一樣為串列傳輸。時鐘由 TCK 引腳輸入。配置是透過 TMS 引腳採用狀態機的形式一次操作一位來實現的。每一位資料在每個 TCK 時鐘脈衝下分別由 TDI 和 TDO 引腳傳入或傳出。可以透過載入不同的命令模式來讀取晶片的標識，對輸入引腳取樣，驅動（或懸空）輸出引腳，操控晶片功能，或者旁路（將 TDI 與 TDO 連通以在邏輯上短接多個晶片的鏈路）。TCK 的工作頻率依晶片的不同而不同，但其通常工作在 10-100MHz（每位 10-100ns）。

當在積體電路中進行邊界掃描時，被處理的訊號是在同一塊 IC 的不同功能模組間的，而不是不同 IC 之間的。

TRST 引腳是一個可選的相對待測邏輯低電平有效的復位開關 —— 通常是非同步的，但有時也是同步的，依晶片而定。如果該引腳沒有定義，則待測邏輯可由同步時鐘輸入復位指令而復位。

儘管如此，極少消費類產品提供外部的 JTAG 埠介面，但作為開發樣品的殘留，這些介面在印刷電路板上十分常見。在研發後，這些介面常常為反向工程提供了非常良好的途徑。

常用的擴充套件

關於製造商的擴充套件：英飛凌，MIPS EJTAG，飛思卡爾 COP, ARM ETM (Extended Trace Macrocell), OnCE etc.

廣泛的應用

幾乎所有的嵌入式系統都具有 JTAG 埠。
PCI 匯流排介面包含 JTAG 引腳。一種特殊的 JTAG 卡可以用來重新整理被破壞了的 BIOS。

客戶端軟體

可以透過使用一些支援 JTAG 的應用程式來訪問 JTAG 介面。

4.1 免費軟體

Very cheap interface working with the CICLaMaB program
OpenCores JTAG module 是一個 IP 核，它可為你的設計提供 JTAG。它是 OpenCores 工程的一部分。
UrJTAG ，born out of the openwince project's JTAG Tools ，supports a large set of inexpensive IEEE 1284 parallel printer port and USB JTAG cables
JTAG-ARM9 provides a JTAG access program for the ARM9 processor.

JTAG for the LART aimed at the LART processor
JTAG base layer is an attempt at creating a JTAG library
The uCLinux for Blackfin project have a JTAG-backend for the GNU Debugger and a version specifically for Blackfin based on the openwince work
JTAG toolkit is a free software JTAG tool suite, including API library and several examples
OpenOCD is an GPL Open Source GDB Server that currently supports ARM7 and some ARM9 Targets

4.2 私有軟體

JTAG ScanWorks JTAG development systems.

JTAG DFT Analysis JTAG Design for Test software.

JTAG Technologies Test and programming development systems.

TopJTAG Probe Interactive JTAG/boundary-scan software for circuit debugging and visualization.

Green Hills Software MULTI 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.

Ronetix PEEDI, JTAG Emulator and Flash Programmer for ARM7/9, XScale
SEGGER Microcontroller Systeme GmbH j-link, USB to JTAG interface for ARM cores（J-Flash, J-Mem, RDI Pro Bundle）
SEGGER Microcontroller Systems LLC j-trace, a USB to Trace Mictor and JTAG interface for ARM cores
Lauterbach Datentechnik GmbH produce JTAG-based in-circuit emulators the most popular being TRACE 32
Macraigor Systems LLC JTAG Commander and OCD Commander
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 Development System
Göpel electronic SCANFLEX
Corelis ScanExpress
yaJFP Zheyuan Technlogies