ISP与IAP的区别

judy的头像

IAP(In Appplication Program),即在应用中可编程。

顾名思义,就是在系统运行的过程中动态编程,这种编程是对程序执行代码的动态修改,而且毋须借助于任何外部力量,也毋须进行任何机械操作。这一点有别于isp。

一般来说,isp在进行加载程序以前,需要设置某些功能引脚,迫使IC转入自举状态。而IAP则不需要作硬件上的任何动作,只要有合法的数据来源。数据源既可以是内部程序运行的结果,也可以来自UART,I/O口或者总线。

换个角度来来说,IAP不仅提供现场或者远程软件修改升级,也可以把它理解成idate,pdate或者xdate,替代I2C之类的外部E2PROM,存储并加密数据。

细说ISP 和IAP 的区别

ISP:in system programming,
IAP: in applicatin programming

但两者的操作方式,结果和应用场合有什么区别?

ISP:
用写入器将code 烧入,不过,芯片可以在目标板上,不用取出来,在设计目标板的时候就将接口设计在上面,所以叫"在系统编程",即不用脱离系统;

IAP:
在应用编程,有芯片本身(或通过外围的芯片)可以通过一系列操作将code 写入,比如一款支持Iap 的单片机,内分3 个程序区,1 作引导程序区,2 作运行程序区,3 作下载区,芯片通过串口接收到下载命令,进入引导区运行引导程序,在引导程序下将new code 内容下载到下载区,下载完毕并校验通过后再将下载区内容复制到2 区,运行复位程序,则Iap 完成;

应用场合:

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

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

这可能是他们的优点或应用吧

典型IAP:IC 卡电话机

内含V.xx MODEM 芯片,MCU 自带引导区,可远程下载更新程序。
========================================================
在线编程目前有两种实现方法:在系统编程(ISP)和在应用编程(IAP)。ISP 一般是通过单片机专用的串行编程接口对单片机内部的Flash 存储器进行编程,而IAP 技术是从结构上将Flash 存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。

ISP 的实现一般需要很少的外部电路辅助实现,而IAP 的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232 口,通过专门设计的固件程序来编程内部存储器。