【车载开发系列】常见单片机调试接口的区别
【车载开发系列】常见单片机调试接口的区别
- 【车载开发系列】常见单片机调试接口的区别
-
- 一. JTAG协议
- 二. SWD接口
- 三. RDI接口
- 四. 仿真器
-
- 1)J-Link仿真器
- 2)ULink仿真器
- 3)ST-LINK仿真器
- 五. SWD / JTAG 的各种区别
- 六. 信号线说明
一. JTAG协议
JTAG Joint Test Action Group,联合测试行动组,是一种用于测试和调试电路板上的数字电路的标准化接口
标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 一般有20个引脚。
JTAG的三大功能:
- 下载器,即下载软件到FLASH里。
- DEBUG,跟医生的听诊器似的,可探听芯片内部小心思。
- 边界扫描,可以访问芯片内部的信号逻辑状态,还有芯片引脚的状态等等。
线 | 英文 | 说明 |
---|---|---|
TMS | Test Mode Select | 测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式 |
TCK | Test Clock | 测试时钟输入 |
TDI | Test Data In | 测试数据输入,数据通过TDI引脚输入JTAG接口 |
TDO | Test Data Out | 测试数据输出,数据通过TDO引脚从JTAG接口输出 |
二. SWD接口
串行调试(Serial Wire Debug),需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。
SWCLK(Serial Wire Clock)和SWDIO(Serial Wire Data Input/Output)是调试接口SWD(Serial Wire Debug)中的两个关键信号线,用于实现微控制器与调试器之间的通信。
信号线 | 英文 | 说明 |
---|---|---|
SWDIO | Serial Wire Clock | 串行数据线,用于数据的读出和写入 |
SWDCLK | Serial Wire Data Input/Output | 串行时钟线,提供所需要的时钟信号 |
对于SWDIO引脚,虽然内部有一定的上拉能力,但如果线路较长、环境噪声较大,或者需要提高通信稳定性时,外部上拉电阻可以增强信号质量,尤其是在SWDIO作为输入时,外部上拉电阻能够提供一个清晰的高电平状态。
对于SWCLK引脚,通常会建议添加外部下拉电阻,尤其是在线路没有被驱动时,下拉电阻可以确保时钟信号有一个稳定的低电平状态,防止线路浮动造成不确定状态。
三. RDI接口
它也叫远程调试接口(Remote Debug Interface),是ARM公司提出的标准调试接口,主要用于ARM芯片的仿真,由于各个IDE厂商使用的调试接口各自独立,硬件无法进行跨平台的调试。
现在众多的IDE厂家都逐步采用标准RDI作为ARM仿真器的调试接口,因此使跨平台的硬件调试成为可能。
EasyJTAG由于使用标准RDI调试接口,因此在任何使用标准RDI接口的IDE调试环境中都可以使用,例如ARM公司的ADS1.2/IAR公司的EWARM 3.30 。
四. 仿真器
1)J-Link仿真器
J-Link是德国SEGGER公司推出基于JTAG的仿真器。
它有一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是JTAG协议。
JTAG协议转换盒,即一个小型USB到JTAG的转换盒,其连接到计算机用的是USB接口,而到目标板内部用的还是JTAG协议。
它完成了一个从软件到硬件转换的工作。
JLINK是一个通用的开发工具,可以用于KEIL、IAR、ADS 等平台。速度,效率,功能都很好,是众多仿真器里功能最强悍的存在
2)ULink仿真器
ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINK Pro仿真器。
ULINK/ULINK2可以配合Keil软件实现仿真功能,并且仅可以在Keil软件上使用,
增加了串行调试(SWD)支持,返回时钟支持和实时代理等功能。
开发工程师通过结合使用RealView MDK的调试器和ULINK2,可以方便的在目标硬件上进行片上调试(使用on-chip JTAG,SWD和OCDS)、Flash编程。
要注意的是,ULINK是KEIL公司开发的仿真器,专用于KEIL平台下使用,ADS、IAR下不能使用。
3)ST-LINK仿真器
ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。
ST-LINK /V2指定的SWIM标准接口和JTAG / SWD标准接口,它的主要功能如下:
功能 | 功能说明 |
---|---|
编程功能 | 可烧写FLASH ROM、EEPROM、AFR等 |
仿真功能 | 支持全速运行、单步调试、断点调试等各种调试方法,可查看IO状态,变量数据等 |
仿真性能 | 采用USB2.0接口进行仿真调试,单步调试,断点调试,反应速度快 |
编程性能 | 采用USB2.0接口,进行SWIM / JTAG / SWD下载,下载速度快 |
五. SWD / JTAG 的各种区别
(1)共享引脚
SWD 的引脚在一定条件下可以和 JTAG 引脚复用
(2) SWD 协议的特点:
使用引脚更少,只需 SWDIO 和 SWCLK 两个引脚
SWD 具有特殊功能,例如通过其 I / O 线打印调试信息
在高速大数据情况下,SWD整体性能比JTAG更好。
只能用于ARM内核的单片机。
(3)JTAG 协议的优势:
不限于ARM内核单片机,能支持更多单片机程序调试和下载
占用引脚数比较多,比较占用板子尺寸。
六. 信号线说明
信号线 | 说明 |
---|---|
GND | GND是电线接地端的简写。代表地线或0线 |
KL30 | 蓄电池供电电压,俗称常电(它表示蓄电池的正极) |
KL31 | 蓄电池供电电压(它表示蓄电池的负极) |
KL15 | 点火信号 |
SWD | Serial Wire Debug 串行调试接口,使用了4个引脚 |
VCC | Volt Current Condenser 电路的供电电压 |
VDD | 芯片的工作电压 |
VOUT | Output Voltage 输出电压 |