单片机烧录方式、调试接口与仿真器总结

烧录方式

1. ICP(In-Circuit Programming):在电路编程

ICP更侧重于调试和开发阶段,允许开发者在单片机安装到用户应用板上后,通过仿真器对芯片进行编程和调试。

工作原理
ICP技术利用在线仿真器与单片机之间的JTAG或SWD接口进行通信。一般需要 xx-Link 烧录工具,连接PC和MCU。常用的烧录工具为J-Link、ST-Link、Nu-Link。与之配套的烧录软件为J-Flash、NuMicro_ICP_Programming_Tool、st-link utility。开发者通过仿真器将编译好的程序代码下载到单片机中,同时可以利用仿真器的调试功能对程序进行单步执行、断点设置等操作,以便查找和修复程序中的错误。

应用场景

单片机开发阶段:ICP是单片机软件开发的常用工具,特别是在需要频繁调试和修改代码的情况下。

专业研发环境:在大型企业或专业研发机构中,ICP因其高效性和稳定性而备受青睐。

2. ISP(In-System Programming):在系统编程

ISP,全称“在系统编程”,是一种允许开发者在不将芯片从电路板上取下的情况下,通过特定的编程接口对芯片内部的Flash存储器进行编程的技术。在板级上进行编程,而不用把芯片拆下来放到烧写器中,即不脱离系统,所以称作“在系统编程”,它是对整个程序的擦除和写入,通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程。即使芯片焊接在电路板上,只要留出和上位机接口的串行口就能进行烧写。

工作原理

ISP技术依赖于芯片内置的编程接口和外部编程器。开发者通过编程器将新固件数据发送到芯片,芯片内部的编程逻辑接收数据并将其写入Flash存储器中。由于无需拆卸芯片,ISP技术大大简化了固件升级流程,提高了开发效率。

应用场景

嵌入式系统开发:ISP技术简化了固件升级和调试过程,提高了开发效率。

批量生产:在生产线上,ISP技术可以实现对大量嵌入式设备的快速编程和测试。

现场升级:对于已经部署的嵌入式设备,ISP提供了一种便捷的现场固件升级方案。

3. IAP(In-Application Programming):在应用编程 

IAP,全称“在应用中编程”,是一种嵌入式系统技术,允许用户程序在运行时通过微控制器的对外接口(如USART、IIC、CAN、USB、以太网接口甚至无线射频通道)对内部程序进行更新。这种技术无需中断设备的正常运行,大大提高了设备的可维护性和灵活性。目前流行的远程升级技术OTA技术(全称 Over The Air Technology,即云端下载技术,也叫做“空中下载技术”),其基础是 IAP 技术, 可以简单理解为 IAP 的另一种实现方式,采用的是无线升级方式。

工作原理
IAP技术通常依赖于一个预置的Bootloader程序,该程序负责在设备启动时初始化硬件、设置内存映射,并在接收到更新指令时加载新的固件到Flash存储器中。更新过程中,Bootloader通过特定的通信接口接收新固件数据,验证其完整性和正确性后,执行Flash操作(如擦除旧固件、写入新固件)以完成更新。

应用场景
智能家居与物联网:在智能家居和物联网设备中,IAP技术可以实现远程固件升级,提高设备的安全性和稳定性。
汽车电子:汽车ECU等关键部件通过IAP技术实现固件升级,提高车辆性能和安全性。
工业自动化:在工业自动化领域,IAP技术用于更新控制器的固件程序,确保生产线的正常运行。

调试接口 

1.JTAG协议

Joint Test Action Group,联合测试行动组,一种用于测试和调试电路板上的数字电路的标准化接口

标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 一般有20个引脚。20Pins的接口通常被称为JTAG接口。他包含了JTAG调试接口和SWD调试接口(20Pins里面有部分Pins用作JTAG调试接口,有部分Pins用作SWD调试接口)

2.SWD接口

Serial Wire Debug,串行调试,需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛

两根信号线:SWCLK(Serial Wire Clock)和SWDIO(Serial Wire Data Input/Output),用于实现微控制器与调试器之间的通信。

对于SWDIO引脚,虽然内部有一定的上拉能力,但如果线路较长、环境噪声较大,或者需要提高通信稳定性时,外部上拉电阻可以增强信号质量,尤其是在SWDIO作为输入时,外部上拉电阻能够提供一个清晰的高电平状态。
对于SWCLK引脚,通常会建议添加外部下拉电阻,尤其是在线路没有被驱动时,下拉电阻可以确保时钟信号有一个稳定的低电平状态,防止线路浮动造成不确定状态。

3.RDI接口 

Remote Debug Interface,远程调试接口,是ARM公司提出的标准调试接口,主要用于ARM芯片的仿真,由于各个IDE厂商使用的调试接口各自独立,硬件无法进行跨平台的调试。

SWD / JTAG 的各种区别

(1)共享引脚
SWD 的引脚在一定条件下可以和 JTAG 引脚复用
(2) SWD 协议的特点:
使用引脚更少,只需 SWDIO 和 SWCLK 两个引脚
SWD 具有特殊功能,例如通过其 I / O 线打印调试信息
在高速大数据情况下,SWD整体性能比JTAG更好。
只能用于ARM内核的单片机。
(3)JTAG 协议的优势:
不限于ARM内核单片机,能支持更多单片机程序调试和下载
占用引脚数比较多,比较占用板子尺寸。

JTAG接口有5个:JTMS、JTCK、JTDI、JTDO、NJTRST

SWD接口有2个:SWCLK、SWDIO

为了节省IO口资源,通常使用的都是SWD。

调试器

1.J-Link调试器

JLINK是一个通用的开发工具,可以用于KEIL、IAR、ADS 等平台,速度,效率,功能都很好,是众多仿真器里功能最强悍的存在

支持JTAG\SWD两种模式。

2.ULink调试器

ULINK是ARM/KEIL公司推出的仿真器,目前网上可找到的是其升级版本,ULINK2和ULINK Pro仿真器。
ULINK/ULINK2专用于KEIL平台下使用,ADS、IAR下不能使用。

综合性能(支持芯片种类、软件开发环境及及调试速度)均不如JLink;

支持JTAG/SWD/SWV三种模式

3.ST-LINK调试器

ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。

支持开发环境,IAR,keil MDK,STM32 cudeIDE,Atollic TrueStudio (ST收购了Atollic)
支持JTAG/SWD/SWIM三种模式

4.CMSIS-DAP调试器

DAPLink之前叫CMSIS-DAP。它的硬件和软件都是开源的(开源的Github网址:https://github.com/ARMmbed/DAPLink)

支持环境: IAR,Keil MDK,arm MBED DAPlink

支持5针的 JTAG 或2针的串行有线调试(SWD)接口、串口功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值