当前位置:首页 > > 特殊应用电路
[导读]在SWD和JTAG之类的协议出现之前,调试器及其协议一片混乱,每个MCU制造商都提出了自己的专有方法,将代码加载到他们的MCU上。

什么是标准?简单来说,标准是一组规则和协议,特定行业中的每个参与者都同意遵循并执行。在SWD和JTAG之类的协议出现之前,调试器及其协议一片混乱,每个MCU制造商都提出了自己的专有方法,将代码加载到他们的MCU上。制造商每次发布MCU时,嵌入式软件工程师都需要了解其专有协议,以将代码加载到微控制器中。

而且,调试适配器很昂贵,因为制造商实际上并没有竞争者可以使调试适配器与他们的协议相匹配,因为协议是专有的。它们昂贵的另一个原因是由于体积不足,因为它们只能将调试适配器出售给使用它们制造的MCU的公司(工程师)。

不同协议还会导致开发成本增加,比如:你在设计的板上有来自4个不同制造商的4种芯片,并且希望对其进行一些自动化测试以提高生产过程的效率。但是,由于所有电路板都有自己的协议,因此您需要制作一个能适应复杂性的超级复杂的生产代码,并且需要在电路板上的测试点安装4个不同的调试器,从而增加了成本,生产时间和编程时间。

3.制定协议各种下载调试不同会导致几个问题:投入更多的学习时间下载调试的成本生成测试效率低下,为了解决这一问题,各大MCU制造和生产商的工程师们就针对调试制定了一些规范协议。该小组于1980年后期开始讨论,并于1990年正式发布了解释IEEE标准的文档。(IEEE代表电气与电子工程师协会,是一个国际组织,其中发布了所有标准,如WiFi,蓝牙等)。他们提出的协议在1990年被记录在IEEE 1149.1中。后来对该文档进行了修订和完善,在撰写本文时,最新标准是IEEE 1149.7。JTAG基本上带有5个引脚:TDI: Test Data In。串行输入引脚TDO: Test Data Out,串行输出引脚TCK:Test Clock,时钟引脚TMS: Test Mode Select,模式选择(控制信号)引脚TRST: Test Reset,复位引脚

在电子领域,芯片调试是一个至关重要的环节。为了更有效地进行芯片调试,我们有必要深入了解不同的调试协议。本文将详细解析从JTAG到SWD的转变,帮助读者全面理解这两种协议的工作原理及其在芯片调试中的应用。

JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,与IEEE 1149.1标准兼容,专为芯片内部测试而设计。如今,多数高端器件仍支持这一标准,虽然JTAG接口在现代设备上较少见,但ARM、DSP和FPGA等高端器件依然广泛支持。标准的JTAG接口包含四条线:TMS、TCK、TDI和TDO,分别用于模式选择、时钟信号、数据输入和数据输出。具体来说,这些引脚的定义如下:

TMS(测试模式选择):用于设定JTAG接口的特定测试模式。

TCK(测试时钟输入):提供时钟信号。

TDI(测试数据输入):数据通过此引脚输入JTAG接口。

TDO(测试数据输出):数据通过此引脚从JTAG接口输出。

值得注意的是,由于早期PC机普遍配备并口,JTAG协议在定义时便与之相连。然而,随着技术的发展,现在的计算机尤其是笔记本电脑很少配备并口,取而代之的是USB接口的广泛应用。因此,JTAG协议在市场上的应用已逐渐减少。

串行调试(Serial Wire Debug,简称SWD)是一种与JTAG不同的调试模式,其使用的调试协议亦有所差异。最直观的差异体现在调试接口上:相较于JTAG的20个引脚,SWD仅需4个(或5个)引脚,结构更为简洁。SWD因其引脚少、结构简单,在数据量大时更稳定,适用于有限GPIO资源的场合,建议优先使用。虽然SWD的使用范围目前尚不及JTAG广泛,主流调试器也是在后期才增设了SWD调试模式。

谈及SWD与传统调试方式的区别,其优势在高速模式下更为明显。在处理大数据量时,JTAG下载程序可能会失败,而SWD则能显著降低此情况的发生概率。此外,若仿真器支持,用户可以在基本使用JTAG仿真模式的情况下直接切换至SWD模式,因此推荐大家优先考虑使用SWD模式。

远程调试接口(Remote Debug Interface,简称RDI)是ARM公司为ARM芯片仿真而提出的标准调试接口。过去,由于各IDE厂商使用的调试接口各异,硬件调试往往局限于特定平台。然而,随着RDI为ARM芯片提供的统一调试接口,使跨平台硬件调试成为可能,多家IDE厂商逐渐采用标准RDI作为调试接口,跨平台的硬件调试已成为现实。例如,EasyJTAG便支持这一标准,从而能在任何遵循标准RDI接口的IDE调试环境中发挥作用,如ARM公司的ADS1.2及IAR公司的EWARM 3.30等。

ULINK,由ARM/KEIL公司精心打造的仿真器,现已升级为ULINK2和ULINK Pro两个版本,供用户选择。该仿真器与Keil软件紧密结合,提供强大的仿真功能,支持多种调试技术,但仅限于Keil平台。它新增了串行调试(SWD)支持、返回时钟支持以及实时代理等实用特性。

开发工程师在RealView MDK的调试器与ULINK2的协同作用下,能轻松地在目标硬件上进行片上调试,包括使用on-chip JTAG、SWD和OCDS技术,以及Flash编程。

ST-LINK仿真器是专为意法半导体STM8和STM32系列芯片设计的。它支持SWIM标准接口和JTAG/SWD标准接口,具备多种功能:

编程功能:能够烧写FLASH ROM、EEPROM、AFR等,为芯片提供灵活的编程能力。

仿真功能:支持全速运行、单步调试、断点调试等多种调试方法,同时提供IO状态和变量数据的查看,助力开发者深入理解芯片运行状态。

仿真性能:通过USB2.0接口进行仿真调试,单步和断点调试反应迅速,提升开发效率。

编程性能:同样采用USB2.0接口,支持SWIM/JTAG/SWD下载方式,下载速度迅捷,节省开发时间。

专为STM系列芯片设计,支持多种接口和功能,提升了编程和调试的效率。

串行调试(Serial Wire Debug),应该可以算是一种和JTAG不同的调试模式,使用的调试协议也应该不一样,所以最直接的体现在调试接口上,与JTAG的20个引脚相比,SWD只需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。

SWD模式比JTAG在高速模式下面更加可靠。在大数据量的情况下面JTAG下载程序会失败,但是SWD发生的几率会小很多。基本使用JTAG仿真模式的情况下是可以直接使用SWD模式的,只要你的仿真器支持,所以推荐大家使用这个模式。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭