最近看到一个小伙伴问了一个比较基础的问题,大概是:单片机常用的烧录程序的方法有哪些?
先说三种常见的烧录程序的方法:ISP、IAP、ICP,以及它们的区别。
网络服务提供商
Isp:在系统编程中,在系统编程中。
ISP的意思是可以在板级编程,也就是不用把芯片拆开,而是把整个程序写出来,一般是通过ISP的接口线。
支持ISP的芯片一般都在芯片内部固化了一个引导程序(由ISP升级)。
比如STC芯片用STC-ISP编程,STM32用Flash loader编程。
电感耦合等离子体(Inductively Coupled Plasma)
Icp:电路编程中,电路编程中。
ICSP:在线串行编程,在线串行编程。例如对EEPROM编程。
关于ICP编程模式,网上众说纷纭。从字面上看(在电路中),所有正在编程的芯片都需要上电,都在电路中。松散地说,用J-Link、ST-Link、e-Link32等工具编程也属于在线编程(ICP)。
在维基百科中,ISP(系统内编程)也称为在线串行编程(ICSP)。
Internet服务提供者
Iap:在应用编程中,在应用编程中。在程序运行时编程(升级程序,更新固件)。
IAP就是用户自己的程序在运行过程中烧去用户Flash的某些区域,以便在产品发布后通过预留的通讯口方便地更新升级产品中的固件程序。[来自:百度百科]
IAP的通信端口有很多:UART串口、ETH以太网、I2C、SPI等。按理说,只要通讯口能传输数据,就能实现IAP的功能。
IAP应该是非常广泛的。可以参考我之前分享的一篇文章:STM32官方IAP例程的详细描述和Demo演示。
ISP和IAP的区别
我们来打个比喻
1、ISP把房子拆了,盖了新的,当然人不能住,直到盖好了!
2、IAP就是对已建成的房子进行一些装修。人当然可以继续活下去!
2.应用场合
1.ISP程序升级需要现场解决,但最好不要拆机;
2,IAP,如果有网管系统,用网管下载什么都行,人也不用到处跑。
3.3的工作原理。ISP和IAP
ISP的实现比较简单,一般的做法是通过串口用上位机的软件重写内存即可。对于单片机来说,它可以通过SPI或其他串行接口接收来自上位机的数据并写入存储器。所以即使我们把芯片焊接在电路板上,只要把这个串口留下来和上位机接口,就可以重写芯片的内部存储器,而不需要拆下芯片。
IAP的实现相对复杂。在实现IAP功能时,单片机内部必须有两个存储区,其中一个一般称为引导区,另一个称为存储区。单片机上电,运行在引导区。如果满足外部重写程序的条件,存储区中的程序将被重写。如果不满足外部重写程序的条件,程序指针跳转到存储区,开始执行放置在存储区的程序,实现IAP功能。
4.4的优点。ISP和IAP
ISP技术的优势在于可以不需要编程器就可以进行单片机的实验和开发,可以直接将单片机芯片焊接到电路板上,调试后即可完成成品,避免了调试时频繁插拔芯片给芯片和电路板带来的不便。
IAP技术在结构上将闪存映射成两个存储体。当在一个存储体上运行用户程序时,另一个存储体可以被重新编程,然后程序将从一个存储体转移到另一个存储体。
ISP的实现一般需要很少的外部电路辅助,而IAP的实现更加灵活。通常可以将单片机的串口连接到计算机的RS232口,通过专门设计的固件程序对内存进行编程,从而可以通过现有的互联网或其他通信方式方便地实现远程升级和维护。
审核编辑:李倩