ISP与IAP的区别

转:

ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。IAP(In-Application Programming) 指MCU可以在系统中获取新代码并对自己重新编程,即可用程序来改变程序。ISP和IAP技术是未来仪器仪表的发展方向。

1   ISP和IAP的工作原理

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

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

2   ISP和IAP在单片机中的应用

2.1 传统编程方法的不足

在一般的单片机的实验或开发时,编程器是必不可少的装置。仿真、调试完的程序需要借助编程器烧到单片机内部或外接的程序存储器中。普通的编程器价格从几百元到几千元不等,对于一般的单片机用户来说还是一笔不小的开支。另外,在开发过程中,程序每改动一次就要拔下电路板上的芯片编程后再插上,这样不但麻烦也很容易对芯片和电路板造成损伤,另外在程序需要升级做改动时,必须将设备返厂或是技术人员到现场操作,既不方便也造成成本浪费。

2.2 ISP和IAP的优点

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

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

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

2.3 产品分析

目前市场上不少的单片机具有ISP和IAP功能。

ST公司的μPSD32××系列单片机片内带128KB/256KB的FLASH存储器及32KB Boot ROM,通过JTAG串行口能很容易地实现ISP功能。IAP功能则可由用户在应用中实现。

ATMEL公司的单片机AT89S8252,提供了一个SPI串行接口对内部程序存储器编程(ISP)。SST公司的单片机SST89C54,其最大的特点内部有两块独立的FLASH存储器,具有IAP(应用中在线编程)功能,对于8052系列的其它公司的单片机(ATMEL、 WINBOND、ISSI)可以直接代换,软硬件无须做任何改动。

PHILIPS公司的P89C51RX2xx系列是带ISP/IAP的8位Flash单片机。PHILIPS公司为了使ISP技术和IAP技术得以推广,在芯片上免费提供了Boot ROM固件,并且巧妙地解决了固件和FLASH的地址覆盖问题及一些具体实现细节问题,使它们的实现变得简单。

此外在外围器件中ST公司的PSD系列产品片内带大容量存储器,支持ISP及IAP功能。

ISP,In System Programing

主要是指代芯片的烧写方式,以往写片子需要把片子拿下来,离开电路,用

编程器烧,换句话说,芯片不能不脱离应用系统进行写入。

ISP 主要针对这个问题,使用JTAG或者串行口(MCU 内部有Boot Loader ,

通过指定的方式激活之,它可以和PC或其它上位机通过串口联系,不用使单片

机离开应用系统而更新内部的程序/设置)进行程序的烧写操作。

因此,具有ISP 功能的MCU 可以不使用编程器进行编程。当然,实现ISP 可

能需要一些硬件电路支持,具体的在数据手册中有说明。

IAP,In Application Programing

单片机内部具有一些可擦写的非易失存储器,如Flash。在单片机独立运行时,

不具备IAP 功能的单片机并不能对Flash的数据进行修改,比如,对自身的某一

个模块的代码,数据进行修改。

具备了IAP 功能的MCU ,能够通过使用各自公司开发的技术,对于自身进行修

改。

简言之:ISP=>修改MCU 内部数据需要有外部介入;

IAP=>修改MCU 内部数据可以不用外部介入。

二者可以说是数据更新的一种实现机制。

一般具备ISP 功能后,就不要编程器了,而是使用下载线进行编程工作。

但是不是说他们就一定不支持编程器了,具体型号具体分析。

是否需要仿真器进行仿真和是否具备ISP和IAP没有必然的联系。

只不过具备了IAP功能,可以在MCU内写入监控程序,模拟一个仿真器,

当然,这个监控程序是要消耗资源的,和使用硬件的仿真器还有一定的差异。

IAP的应用,在51上可能比较多,就是SST出的那个SoftICE功能。

他的MCU 其实不具备ISP功能,需要使用编程器烧一个Boot Loader进去,

然后,利用IAP功能,就可以通过串行口下载数据了。

SST的那个,使用的是自己开发的一个SoftICE软件,和Keil C的Mon51接口。

看DataSheet上说,先要用编程器烧Boot Loader进去,

然后,用串口烧SoftICE进去,然后就可以用了。

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口,通过专门设计的固件程序来编程内部存储器。

总结,简单滴说,就是ISP是在设计板子的时候留了个下载程序的口出来,可以通过这个口和PC上的烧写软件通信,然后直接把程序下载到电路板的MCU上。(MCU的整个程序系统被更改了喔)而,IAP则需要MCU里面有两部分程序,一部分事固件程序简称boot,另一部分叫做flash(存用户代码的喔),单片机上电首先运行boot再执行flash(所以说嘛,这个要求就高了哦,要求 MCU里面有固件,才可以进行程序更新重新烧写flash,刷机啊~~!!)

时间: 2024-07-30 16:43:23

ISP与IAP的区别的相关文章

单片机ISP、IAP和ICP几种烧录方式的区别

单片机ISP.IAP和ICP几种烧录方式的区别 玩单片机的都应该听说过这几个词.一直搞不太清楚他们之间的区别.今天查了资料后总结整理如下. ISP:In System Programing,在系统编程 IAP:In applicating Programing,在应用编程 ICP:In Circuit Programing,在电路编程 ISP是指可以在板级上进行编程,也就是不用拆芯片下来,写的是整个程序,一般是通过ISP接口线来写. IAP虽然同样也是在板级上进行编程,但是是自已对自已进行编程,

关于ISP、IAP、DFU和bootloader

这是嵌入式开发中常用的几个专业术语,其诞生的背景和其具体作用大概如下 在很久很久以前,那是8051单片机流行的时代,做单片机开发都需要一个专用工具,就是单片机的编程器,或者叫烧写器.说"烧"写一点不为过,当年的经典芯片AT89C51在编程时需要十几伏的高电压,加在一个特定的引脚上,才能进入编程.对于某款芯片的编程,都有一个特定的时序,这个时序通常在芯片的datasheet里进行描述并以硬件实现.另外在编程器里的也有一个MCU,这其中使用软件产生这个时序,从而对目标芯片进行编程.电脑通过

STM32_Flash做为存储器储存数据(基本概念)

摘自:http://bbs.elecfans.com/jishu_388272_1_1.html 说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置.芯片ID.自举程序等等.当然, FLASH还可以用来装数据. PS:自己收集了一些资料,现将这些资料总结了一下,不想看的可以直接调到后面看怎么操作就可以了. FLASH分类      根据用途,STM32片内的FLASH分成两部分:主存储块.信息块. 1.主存储块用于存储程序

stm32 flash 存储

转载自: http://bbs.elecfans.com/jishu_388272_1_1.html 说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用来装程序,还用来装芯片配置.芯片ID.自举程序等等.当然, FLASH还可以用来装数据.     自己收集了一些资料,现将这些资料总结了一下,不想看的可以直接调到后面看怎么操作就可以了.FLASH分类       根据用途,STM32片内的FLASH分成两部分:主存储块.信息块. 主存储块用于存储程

[小小Pi] USB/USB 串口/Wiring

USB Serial 碎碎念... ?? 树莓派碎碎念?? ? Arduino?? ? AVR Bootloader~烧烧烧??? ATmega8U2/ATmega16U2~串口烧烧烧??? USBasp Firmware~串口烧烧烧? 蕊片 -- PL2303, FT232R, FT4222H USB |?UNo to TTL |?PL2303 |?FT232 |?XBee Adapter |? ISP下载器 |?JTAG仿真器 |?Wiring ※ USB 蕊片 ※ USB 母 5V D-

FLASH和EEPROM的区别

FLASH和EEPROM的区别(转载) FLASH 和EEPROM的最大区别是FLASH按扇区操作,EEPROM则按字节操作,二者寻址方法不同,存储单元的结构也不同,FLASH的电路结构较简单,同样容量占芯片面积较小,成本自然比EEPROM低,因而适合用作程序存储器,EEPROM则更多的用作非易失的数据存储器.当然用FLASH做数据存储器也行,但操作比EEPROM麻烦的多,所以更“人性化”的MCU设计会集成FLASH和EEPROM两种非易失性存储器,而廉价型设计往往只有 FLASH,早期可电擦写

IAP技术原理

目录 IAP技术原理 更新记录 IAP与ISP的概念及原理 ISP简介 ISP原理 IAP简介 IAP原理 IAP优势 IAP的设计 1.程序启动流程 2.中断向量表的重定位 3.IAP跳转APP函数分析 4.APP跳转IAP函数分析 5.Keil MDK的设置 参考资料 IAP技术原理 更新记录 version status description date author V1.0 C Create Document 2018.10.17 John Wan V2.0 M 对中断向量表的理解有误

硬件杂谈

http://antkillerfarm.github.io/ 开篇的话 自从改行做起了驱动软件工程师,好多硬件的问题已经不再像当初那样,可以忽略不计了.于是就有了以下的心得. 0欧电阻的作用 在硬件原理图,特别是硬件草案的原理图中,常可看到0欧的电阻.0欧的电阻在效果上当然等同于导线,辛辛苦苦把它引出来焊上,究竟有何用处呢?硬件的同事告诉我,他们一般只在某些新添加的电路上使用这东西.一旦由于某些原因需要去掉新添加的电路的话,只要用电烙铁把电阻取下来就可以了,而不用再造一批测试版. 空指针 空指

为什么单片机中既有Flash又有EEPROM

单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM 中的数据是无法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用EEPROM 或FLASHROM 等存储器来实现. 插播一段:ROM最初不能编程,出厂什么内容就永远什么内容,不灵活.后来出现了PROM,可以自己写入一次,要是写错了,只能换一片.随着不断改进,终于出现了可多次擦除写入的EPROM,每次擦除要把芯片拿到紫外线上照一下,想一下你往单片机上下了一个程序之后发现有个地方需要加一句话,为此你要把单片机放紫外灯下照半小时,然后