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（測試復位）可選。
JTAG鏈的一個例子
因為只有一條數據線，通信協議有必要像其他串行設備接口，如SPI一樣為串列傳輸。時鐘由TCK引腳輸入。配置是通過TMS引腳採用狀態機的形式一次操作一位來實現的。每一位數據在每個TCK時鐘脈衝下分別由TDI和TDO引腳傳入或傳出。可以通過加載不同的命令模式來讀取芯片的標識，對輸入引腳採樣，驅動（或懸空）輸出引腳，操控芯片功能，或者旁路（將TDI與TDO連通以在邏輯上短接多個芯片的鏈路）。TCK的工作頻率依芯片的不同而不同，但其通常工作在10-100MHz（每位10-100ns）。
當在集成電路中進行邊界掃描時，被處理的信號是在同一塊IC的不同功能模塊間的，而不是不同IC之間的。
TRST引腳是一個可選的相對待測邏輯低電平有效的復位開關——通常是異步的，但有時也是同步的，依芯片而定。如果該引腳沒有定義，則待測邏輯可由同步時鐘輸入復位指令而復位。
儘管如此，極少消費類產品提供外部的JTAG端口接口，但作為開發樣品的殘留，這些接口在印刷電路板上十分常見。在研發後，這些接口常常為反向工程提供了非常良好的途徑。
JTAG-Zustandsautomat

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

**廣泛的應用**
 幾乎所有的嵌入式系統都具有JTAG端口。- PCI總線接口包含JTAG引腳。一種特殊的JTAG卡可以用來刷新被破壞了的BIOS。

**客戶端軟件**
可以通過使用一些支持JTAG的應用程序來訪問JTAG接口。

**免費軟件**
  Very cheap interface working with the  CICLaMaB program-  OpenCores JTAG module是一個IP核，它可為你的設計提供JTAG。它是OpenCores工程的一部分。-  UrJTAG date=20210118135738 ，born out of the  openwince date=20201023011303  project's  JTAG Tools date=20210202182008 ，supports a large set of inexpensive IEEE 1284 parallel printer port and USB JTAG cables-  JTAG-ARM9 date=20050405231603  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 date=20200911132455  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

**私有軟件**
  JTAG ScanWorks date=20210114175653  JTAG development systems.-  JTAG DFT Analysis date=20101101015451  JTAG Design for Test software.-  JTAG Technologies date=20201126183944  Test and programming development systems.-  TopJTAG Probe date=20201130051448  Interactive JTAG/boundary-scan software for circuit debugging and visualization.-  Green Hills Software date=20210115094938  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 date=20201020083419  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 date=20100201133333  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 date=20200209031534  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 date=20201203195743  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 date=20201204141012  Development System-  Göpel electronic date=20210114175658  SCANFLEX-  Corelis date=20210114175654  ScanExpress-  yaJFP date=20120503210215  Zheyuan Technlogies

**外部鏈接**
  什麼是JTAG那麼，我怎麼樣才能利用它呢？ date=20201125134620 -  JTAG Tutorial date=20161010162249 關於JTAG或邊界掃描的簡介。-  JTAG/Boundary-scan explained知識庫以及工業連接。-  JTAG FAQ date=20201215070506 -  OpenJTAG Wiki-  JTAG邊界掃描接口的一個簡明介紹-  JTAG Scan Educator - Ver. 2 (Rev. A) - 一個DOS下的教學軟件，JTAG Scan Educator，介紹了IEEE 1149.1邊界掃描標準的基本情況，包括框架協議，以及所需的指令集。-  K9JTAG - 一個便宜的為ARM微控制器的JTAG調試器而自制的並行端口。-  Boundary-Scan Testing/JTAG date=20200911132646  - www.SiliconFarEast.com-  Segger J-Link date=20120722175924 （JTAG仿真器）-  Segger-US J-Link（JTAG仿真器）-  Circuit Cellar Article (SOFTWARE BREAKPOINTS IN FLASH MEMORY FOR ARM MCUs)