良许Linux教程网 干货合集 单片机三种烧录方式ISP、IAP和ICP有什么不同?

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

对于学习单片机的同学来说,他们或多或少都听说过ISP、IAP和ICP这些词,这些都是对单片机进行编程的方法。下面我将简单地介绍一下这些概念以及它们之间的区别。

ISP

ISP指的是In-System Programming(在系统编程)。它指的是可以在板级上进行编程,不需要将芯片取出,可以一次性地编写整个程序。通常,人们通过ISP接口线来进行ISP操作。

支持ISP编程的芯片一般内置了一段ISP启动程序(也就是用于升级的Bootloader)。

例如,我们可以使用STC-ISP对STC芯片进行编程,使用Flash loader对STM32进行编程等。

image-20231119221109348
image-20231119221109348

ICP

ICP:In Circuit Programing,在电路编程。

ICSP:In-Circuit Serial Programming,在电路串行编程。如:对EEPROM编程等。

ICP编程方式网上各有说法,从字面含义(在电路)来说,所有处于编程的芯片都需要上电,都处于电路中。不严格来说利用J-LinkST-Linke-Link32等工具进行编程也属于在电路编程(ICP)。

image-20231119221113897
image-20231119221113897

在维基百科中,ISP(在系统编程),也称为在电路串行编程(ICSP)。

IAP

IAP:In applicaTIng Programing,在应用编程。在程序运行的过程中进行编程(升级程序,更新固件)。

IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。

[来自:百度百科]

IAP通信口

IAP的通信口有许多种:UART串口、ETH以太网、I2C、SPI……等。按理说只要能传输数据的通信口都能实现IAP的功能。

IAP的应该非常广泛,可以参考我之前分享的一篇文章:STM32官方IAP例程详细说明,以及Demo演示

image-20231119221119162
image-20231119221119162

ISP 与 IAP 的区别

1.打个比喻吧

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

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

2.应用场合

1,ISP 程序升级需要到现场解决,不过好一点的是不必拆机器了;

2,IAP 如果有网管系统的话,用网管下载一切搞定,人不用跑来跑去,

3.ISP 和 IAP 的工作原理

ISP 的实现相对要简单一些,一般通用做法是内部的存储器可以由上位机的软件通过串口来进行改写。对于单片机来讲可以通过 SPI 或其它的串行接口接收上位机传来的数据并写入存储器中。所以即使我们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就可以实现芯片内部存储器的改写,而无须再取下芯片。

IAP 的实现相对要复杂一些,在实现 IAP 功能时,单片机内部一定要有两块存储区,一般一块被称为 BOOT 区,另外一块被称为存储区。单片机上电运行在 BOOT 区,如果有外部改写程序的条件满足,则对存储区的程序进行改写操作。如果外部改写程序的条件不满足,程序指针跳到存储区,开始执行放在存储区的程序,这样便实现了 IAP 功能。

4.ISP 和 IAP 的优点

ISP 技术的优势是不需要编程器就可以进行单片机的实验和开发,单片机芯片可以直接焊接到电路板上,调试结束即成成品,免去了调试时由于频繁地插入取出芯片对芯片和电路板带来的不便。

IAP 技术是从结构上将 Flash 存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。

ISP 的实现一般需要很少的外部电路辅助实现,而 IAP 的实现更加灵活,通常可利用单片机的串行口接到计算机的 RS232 口,通过专门设计的固件程序来编程内部存储器,可以通过现有的 INTERNET 或其它通讯方式很方便地实现远程升级和维护。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部