1. JTAG Protocol
JTAG (Joint Test Action Group) is an international standard testing protocol (IEEE 1149.1 compliant) primarily used for internal chip testing. Most advanced devices today support the JTAG protocol, such as ARM, DSP, and FPGA devices. The standard JTAG interface consists of 4 lines: TMS, TCK, TDI, and TDO, which are mode select, clock, data input, and data output lines, respectively. The definitions of the related JTAG pins are as follows:
- TMS: Test Mode Select; TMS is used to set the JTAG interface to a specific test mode;
- TCK: Test Clock Input;
- TDI: Test Data Input; data is input to the JTAG interface through the TDI pin;
- TDO: Test Data Output; data is output from the JTAG interface through the TDO pin;
When the JTAG protocol was defined, it utilized parallel ports commonly found in computers (PCs) at that time for connection. Nowadays, it is rare to find parallel ports on desktop computers, let alone laptops, as they have been largely replaced by USB interfaces. As a result, the presence of JTAG in the market has diminished significantly.
2. SWD Interface
Serial Wire Debug (SWD) can be considered a different debugging mode from JTAG, utilizing a different debugging protocol. The most direct manifestation of this is in the debugging interface; compared to JTAG’s 20 pins, SWD only requires 4 (or 5) pins, making it simpler. However, its application range is not as broad as JTAG, and SWD debugging mode was added to mainstream debuggers later.
Differences between SWD and traditional debugging methods:
-
SWD mode is more reliable than JTAG in high-speed mode. In situations with large data volumes, JTAG program downloads may fail, but the occurrence of failures with SWD is significantly lower. Generally, SWD mode can be directly used in cases where JTAG emulation mode is employed, provided your emulator supports it, so it is recommended to use this mode.
-
When there is a shortage of GPIO pins, SWD emulation can be used, as this mode requires fewer pins.
-
SWD mode is recommended when board size is limited, as it requires fewer pins, thereby reducing the PCB space needed! For example, you can choose a small 2.54 pitch 5-pin connector as the emulation interface.

3. RDI Interface
The Remote Debug Interface (RDI) is a standard debugging interface proposed by ARM, mainly used for ARM chip emulation. Due to the independent debugging interfaces used by various IDE vendors, cross-platform debugging of hardware was not possible.
Many IDE manufacturers are gradually adopting the standard RDI as the debugging interface for ARM emulators, making cross-platform hardware debugging possible. EasyJTAG uses the standard RDI debugging interface, allowing it to be used in any IDE debugging environment that supports the standard RDI interface, such as ARM’s ADS1.2/IAR’s EWARM 3.30.
4. JLink Emulator
J-Link is an emulator based on JTAG launched by the German company SEGGER. Simply put, it serves as a JTAG protocol converter, a small USB to JTAG conversion box that connects to the computer via USB while using the JTAG protocol to connect to the target board. It completes the conversion from software to hardware.
JLINK is a versatile development tool that can be used on platforms like KEIL, IAR, and ADS. Its speed, efficiency, and functionality are excellent, and it is said to be one of the most powerful emulators available.
5. ULink Emulator
ULINK is an emulator launched by ARM/KEIL, with its upgraded versions available online, ULINK2 and ULINK Pro. ULINK/ULINK2 can be used with Keil software to achieve emulation functionality and is only usable on Keil software, adding support for Serial Wire Debug (SWD), return clock support, and real-time proxy functionalities.
Development engineers can conveniently conduct on-chip debugging (using on-chip JTAG, SWD, and OCDS) and Flash programming on target hardware by combining the RealView MDK debugger with ULINK2. However, it should be noted that ULINK is an emulator developed by KEIL specifically for use on the KEIL platform and cannot be used under ADS or IAR.
6. ST-Link Emulator
ST-LINK is an emulator specifically designed for STMicroelectronics’ STM8 and STM32 series chips. The ST-LINK/V2 specifies the SWIM standard interface and JTAG/SWD standard interfaces, with the main functions being:
- Programming functionality: can write FLASH ROM, EEPROM, AFR, etc.;
- Emulation functionality: supports full-speed operation, single-step debugging, breakpoint debugging, and various debugging methods, allowing observation of IO states and variable data;
- Emulation performance: uses a USB2.0 interface for emulation debugging, single-step debugging, and breakpoint debugging with fast response times;
- Programming performance: uses USB2.0 interface for SWIM/JTAG/SWD downloads with fast download speeds;

Source: Technology Makes Dreams Greater
Compiled by: Li Xiaoyao
Reply “Join Group” in the backend, and the administrator will add you to the technical exchange group.