ISP、IAP、ICP、JTAG、SWD的编程特点!种编程方式区别总结

来源:互联网 发布:数据魔方为什么下线 编辑:程序博客网 时间:2024/06/06 19:27

转载自:http://www.eeskill.com/article/id/38434

http://bbs.ic37.com/bbsview-33838.htm

电子工程师都知道,半导体技术发展迅猛,带动了各种芯片技术的不断升级。在数据存储方面,从最初的掩膜ROM,发展到现在的Flash技术,存储技术的不断改进,相对应的编程技术也在不断发展。

记得老一辈工程师在烧写51单片机的时候还是用一台硕大的编程器进行程序下载,而且还是一次性的(OTP),每次都小心谨慎的把代码调试了又调试后才下载看效果。现在简单到只需一个串口下载器即可实现程序下载,基本不需要考虑编程次数的问题,一有想法随时编译下载更新。

在这个发展过程中,也诞生了很多编程技术,比如ISP、IAP、ICP,另外还有JTAG编程、SWD编程、UART编程等等。玩单片机的对这些词应该都不陌生,但他们之间有什么区别呢?首先看下他们的定义:

ISP:In System Programing,在系统编程

ICP:In Circuit Programing,在电路编程

IAP:In Application Programing,在应用编程

JTAG编程:通过JTAG协议进行编程

SWD编程:通过SWD协议进行编程

UART编程:通过UART进行编程

看似很乱,其实捋清楚他们之间的层次关系就不会乱了。用个图来形象表示一下:

从图上看,ISP和ICP是处于最顶层的技术。描述的是一种编程结构,所用使用到的协议、通信端口等,不同芯片有不同的定义。

IAP在第二层,是一种编程方式。实现方式是将一段目标芯片可执行的代码通过某种通信协议下载到芯片RAM中并由芯片执行,由该代码实现具体操作以达到编程的目的。这种方式需要芯片支持通过某种通信协议对芯片的RAM进行读写并能控制其CPU。这是在编程结构下的一种编程方式,像AK100Pro、SmartPRO 5000U-Plus等烧录器,都用到了这种编程方式。

最下面的是硬件通信协议,UART是最早应用在单片机里面的串行通信技术。JTAG和SWD是ARM内核芯片兴起之后,逐渐流行起来的,这三种技术描述的是编程过程中硬件层使用的通信协议,是最底层的一些技术规范。

用一个表格来对比这几种通信协议的特性:

综合上面的内容,只要UART、JTAG、SWD这些硬件通信协议能保证电气连接的规范性和稳定性,那么ISP、IAP就能对芯片正确地编程。


最近在整理客户的一些疑问,给自己充充电,也跟大家一起学习下。

ISP、ICP、IAP三种编程方式区别:

ISP:In SYSTEM Programing,在系统编程

ICP:In CIRCUIT Programing,在电路编程

IAP:In applicating Programing,在应用编程

新唐M0提供2种编程模式:ISP和ICP

ISP与ICP的差别

For ISP

(1) MCU必须处于可执行程序的状态 (除了上电,还要接XTAL),且必须预烧ISP-code(即ISP LDROM固件)在LDROM里面

(2)烧录范围只限于APROM, DataFlash或CONFIG (但对使用者来说,应该够了!)

(3) chip在LOCK的状态下,仍然可以只更新某一区块 (APROM, DataFlash或CONFIG)

(4)因为烧录的动作取决于ISP-code的写法,所以给系统设计者的弹性较大

(5)不需要额外硬件

For ICP

(1) MCU只要处于上电状态即可,不必预烧任何code在MCU里面

(2)烧录范围涵盖整颗MCU,包括 APROM, DataFlash, CONFIG, LDROM和 ROMMAP

(3) chip在LOCK的状态下,无法只更新某一区块,只能在erase-ALL之后,更新某一区块,再逐一烧回其它区块(因为ICP的本质就是走串行接口的Writer Mode, chip被LOCK之后,除了erase-ALL,所有烧录动作皆会被禁止)

(4)因为烧录纯粹是ICP硬件的行为, MCU无法自己更新自己,所以给系统设计者的弹性较小(例如:无法藉由ICP去实现IAP的功能)

(5)需要其他硬件支持(如NU-LINK等)

什么是 IAP (In-Application PROGRAMMING)

IAP指的是, MCU在运行的状态下,利用ISP的机制,不透过外接工具 (例如: ISP Programmer) 的帮忙,去更新APROM, DataFlash或 CONFIG.要实现这种功能,

系统必须有取得更新数据的能力,例如:处于某一种联机的状态.

(注:有时候, ISP/IAP的分别并不是那么清楚!我之前做得一个系统式通过网络服务器去IAP的)

形象点得描述是:

1、ISP是把房子拆了再重造一间,但是地基保留,那么在造好之前当然是不能住人的啦!

2、ICP是对房子地基与房子的整体重构;

2、IAP是在造好的房子里边进行一些装修,当然人可以继续住啦!

期待DX发表意见,拍砖!!!


0 0
原创粉丝点击