搞嵌入式的小伙伴,肯定都用过仿真器调试/下载软件,对J-Link、ST-Link,JTAG,SWD这些傻傻分不清楚,趁着空闲时刻我就写了这篇文章。
1. J-Link
J-Link是德国SEGGER公司为支持仿真ARM内核芯片推出的JTAG仿真器,很多ARM芯片的接口协议是JTAG,JLink一端接电脑USB接口,一端接CPU的JTAG接口,JLink充当的作用就是USB转JTAG,支持JTAG和SWD两种模式。
- 可配合IAR EWAR,ADS,KEIL,WINARM,RealView等集成开发环境;
- 支持ARM7/ARM9/ARM11,Cortex M0/M1/M3/M4,Cortex A5/A8/A9等内核芯片的仿真;
JLink仿真器
2. ST-Link
ST-Link是ST意法半导体为评估、开发STM8/STM32系列MCU而设计的集在线仿真与下载为一体的开发工具,支持JTAG/SWD/SWIM三种模式。
- 支持所有带SWIM接口的STM8系列单片机
- 支持所有带JTAG/SWD接口的STM32系列单片机
ST-Link仿真器
3. ULink
ULINK已经停产,在售的是ULINK2和ULINKpro版本,ULINK2是ARM/KEIL公司(2005年ARM收购了KEIL)最新推出的配套RealView MDK使用的仿真器,ULINK2仿真器也被称为Keil ULINK2、ARM ULINK2仿真器。
ULINK2仿真器
ULINK2仿真器支持:
- 片上调试(使用片上JTAG/SWD/SWV)
- FLASH存储器编程(用户可配置FLASH程算法)
以下是各版本ULINK仿真器的区别,可见支持的芯片内核,软件开发工具等内容;
ULink各版本之间的区别
4. JTAG
JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试,现在多数的器件都支持JTAG协议,ARM、DSP、FPGA等,JTAG接口的单片机用电脑USB下载调试程序,需要用到J-Link(USB转JTAG)。
标准的JTAG是四线:TDI,TMS,TCK,TDO,分别对应数据输入,模式选择,时钟,数据输出,复位管脚可不接。
JTAG模式J-Link与CPU的连接图
5. SWD
SWD全称是Serial Wire Debug(串行调试),SWD模式下用JLink给我们的板子debug时,是用标准的二线DIO和CLK,RESET管脚可不接,当你频繁下载失败时,可接上RESET管脚再试。
在高速模式下,SWD比JTAG更可靠一些,常见的接线信号如下所示,根据具体情况自主选择。
注意: SWD模式下,SWDIO的上拉电阻可预留不贴,在ST的一些MCU参考设计中,有提到建议添加,实际测试不加不影响下载。
SWD模式J-Link与CPU的连接图
6. SWIM
SWIM接口常见于ST的STM8系列单片机,ST-Link2与STM8连接只需要4根线,见表格。
ST-Link上的SWIM管脚排列
8. 小结一下
附上JTAG/SWD模式管脚对照表:
JTAG/SWD模式管脚对照表
总结一下J-Link、ST-Link、ULink三种仿真器之间的区别:
- JLink是通用型的ARM内核芯片仿真器,支持的芯片和软件开发环境多,优选;
- ST-Link是针对STM8/STM32,如果你使用STM8/STM32单片机,首选ST-Link,当然用JLink下载ST系列单片机也可以;
- ULink专注于Keil平台,支持ARM7/9,Cortex-M0~M4,ULink2还支持8051系列芯片,综合性能(支持芯片种类、软件开发环境及及调试速度)均不如JLink;
- 三者都支持JTAG和SWD模式;
再总结一下JTAG、SWD、SWIM三种下载模式的区别:
- JTAG接线比较多,高速模式下稳定性不如SWD;
- SWD接线少,可空出多余的GPIO,所需要的接线信号不同仿真器会有所差别(主要在VCC和RESET),DIO和CLK必接;
- SWIM常见于STM8单片机,需用4根线;
原文链接:你了解JLink、ST-Link、ULink、JTAG、SWD、SWIM的区别吗 - 知乎大家好,我是记得诚。 搞嵌入式的小伙伴,肯定都用过仿真器调试/下载软件,对J-Link、ST-Link,JTAG,SWD这些傻傻分不清楚,趁着空闲时刻我就写了这篇文章。 1. J-LinkJ-Link是德国SEGGER公司为支持仿真ARM内核芯…https://zhuanlan.zhihu.com/p/454940732