单片机成长之路(avr基础篇)- 001 ISP与IAP的区别

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

   1   ISP和IAP的工做原理app

   ISP的实现相对要简单一些,通常通用作法是内部的存储器能够由上位机的软件经过串口来进行改写。对于单片机来说能够经过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。因此即便咱们将芯片焊接在电路板上,只要留出和上位机接口的这个串口,就能够实现芯片内部存储器的改写,而无须再取下芯片。设计

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

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

   2.1 传统编程方法的不足code

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

   2.2 ISP和IAP的优势资源

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

   IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另外一个存储体从新编程,以后将程序从一个存储体转向另外一个。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,刷机啊~~!!)

相关文章
相关标签/搜索