单片机交流
直播中

王雪

7年用户 953经验值
私信 关注
[问答]

单片机三种烧录方式ISP、IAP和ICP有什么不同?

单片机有哪几种烧录方式?

单片机三种烧录方式ISP、IAP和ICP有什么不同?

回帖(1)

吴晓成

2021-9-28 15:14:19
目录
单片机三种烧录方式ICP、IAP和ISP详解
1、ICP(In Circuit Programing)
2、ISP(In System Programing)
3、IAP(In applicating Programing)
最后我们以烧录过程中使用的烧录工具以及具体案例来详细介绍这三种烧录方式。
单片机的烧录方式主要可以分为三种,分别为ICP(在威廉希尔官方网站 编程)、IAP(在应用编程)以及ISP(在系统编程)。玩单片机的同学都应该听所说IAP、ICP和ISP这几个词,在此小编在帮你们“巩固”一下知识。首先先来介绍这几个小伙伴的名字。


  • ICP(In Circuit Programing) 在威廉希尔官方网站 编程  SWD接口
  • ISP(In System Programing) 在系统编程(在线编程)   ISP 串口下载 (USB, UART即TTL,RS232COM口)。ISP下载三种串口互转原理图 https://www.docin.com/p-2143981023.html
  • IAP(In applicating Programing) 在应用编程



ICP(In-Circuit Programming):  ICP是在芯片安装到用户应用板上后,通过JTAGI办议对闪存微控制器中存储器编程。
ISP是指可以在板级上进行编程,也就是不用拆芯片下来,写的是整个程序,一般是通过ISP接口线来写。(芯片一般固化了用来ISP升级的boot程序)
IAP虽然同样也是在板级上进行编程,但是是自已对自已进行编程,在应用中进行编程,也即可以只是更改某一部分而不影响系统的其它部分,另外接口程序是自已写的,这样可以进行远程升级而不影响应用。(通常自己编写一个bootloader程序)

1、ICP(In Circuit Programing)

使用过新唐单片机的一定知道,新唐单片机配套了一套编程工具,那就是NuMicro_ICP_Programming_Tool。就像ST芯片配置的有J-Flash工具一样。
使用对应厂家的软件以及仿真器都可以烧录程序,目前主流的有Jtag(Joint Test Action Group)以及SWD(Serial Wire Debug)接口。而ICP编程就是以SWD接口进行的。
下图为Jtag接口和SWD接口的区别:





执行ICP功能,仅需要3个引脚RESET、ICPDA及 ICPCK。RESET用于进入或退出ICP模式,ICPDA为数据输入输出脚,ICPCK为编程时钟输入脚。用户需要在系统板上预留VDD、GND以及这三个脚。





新唐官方给了详细的描述,ICP是指“在威廉希尔官方网站 编程”,PC上运行的软件“NuMicro ICP编程工具”透过SWD的端口更新晶片内部APROM、LDROM、数据闪存(DataFlash)和目标用户配置字(Config)芯片。





2、ISP(In System Programing)

ISP是指“在系统上编程”,目标芯片使用USB/UART/SPI/I²C/RS-485/CAN周边接口LDROM引导代码去更新晶片内部APROM、数据闪存(DataFlash)和用户配置字(Config)。





https://www.docin.com/p-2143981023.html
3、IAP(In applicating Programing)

IAP就是通过软件实现在线电擦除和编程的方法。IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。



最后我们以烧录过程中使用的烧录工具以及具体案例来详细介绍这三种烧录方式。

1、ICP使用SWD接口进行烧录程序
常用的烧录工具为J-Link、ST-Link、Nu-Link。与之配套的烧录软件为J-Flash、NuMicro_ICP_Programming_Tool、st-link utility。






2、ISP是使用引导程序通过USB/UART等接口进行烧录的,首先就是需要有BoodLoad程序。最常见的烧录方式就是学习8051单片机时使用的STC-ISP烧录工具了。






3、IAP就是通过软件实现在线电擦除和编程的方法,没有使用任何工具,仅仅是通过软件的方法来更新Flash中的数据。
讲述一个案例,那就是通过4G模块来远程更新程序。将Flash分成两块区域,第一块为Boodload程序,第二块区域存放的是应用程序APP。4G模块和目标板通讯,通讯中包含是否更新的位,如果主板接收到需要更新的位,就往Flash中写入一个标志位,比如'P',之后程序跳到第一段程序Boodload程序中执行,首先判断Flash中的是否有更新程序的标志位'P',如果有则通过规定的协议进行更新应用程序中的程序,更新完毕后清除Flash中的更新标志位,跳转到应用程序中去执行。如果没有更新程序标志位‘P’,跳到应用程序执行。

总结:


  • ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。
  • ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。
  • IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。


最后我问大家一个问题,在使用IAP编程时候,可否将引导程序和应用程序合成只有一个代码区的应用程序,这样还能实现软件更新吗?具体又怎么操作?大家可以思考一下,答案是可行的。

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


//www.obk20.com/emb/danpianji/20171219604989.html
http://www.eeskill.com/article/id/38434
http://bbs.ic37.com/bbsview-33838.htm
单片机三种烧录方式ISP、IAP和ICP有什么不同?

https://cloud.tencent.com/developer/news/327258
举报

更多回帖

发帖
×
20
完善资料,
赚取积分