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一般是固化到芯片中的,在设计中只要加入相关电路,通过某种触发方式即可烧写程序。在生产过程中,ISP功能是不可或缺的。但假如系统或者模块在一个非常难拆的位置或者是不可接触的位置(如藏于车身中的车载电子零部件),如果要对其升级,ISP不一定能够适用。这时需要运用IAP,编写适合的烧录程序,如使用CAN网络通信的车载电子一般都是通过CAN网络烧写升级程序的。

做烧录系统主要分三块:MCU烧录程序、上位机烧录软件、通信协议

MCU烧录程序bootloader:

MCU烧录程序与应用程序在FLASH不同的位置存储,如果无烧写指令,则系统自动运行应用程序。系统会在三种情况下进入烧录流程,开机一段时间内收到烧写指令、无应用程序、应用程序中收到烧写指令。

上位机烧录软件:

上位机软件需要设计成通用软件,即一个上位机软件可对多个模块进行烧写,它的任务是将烧录文件按照通信协议发送给MCU烧录程序,在烧写过程中,上位机需要获取MCU的校验,一旦校验出错,则提示操作人员重新烧写。如果校验机制不完善,导致烧写的程序出现错误,将会带来很多麻烦,尤其是看起来功能正常的情况下,因为谁也不知道错误会在哪里,会在何时发生。

通信协议:

完善的通信协议应该是在不同芯片、不同存储器的情况下也保持一致的。最好具备良好的扩展性,如将CAN接口转成LIN或者UART等接口,都能够使bootloader、上位机烧录软件和通信协议保持高度可移植性。

一般我们都是通过bootloader来烧写应用程序,很多时候都是没有问题的。但很不幸哪天我们的bootloader需要改变的时候,就只能通过拆车来更新了,对此,我们可设计双烧录机制,即在应用软件中实现bootloader的烧写。这个时候,即使不幸来临了,我们也可烧写一个可烧写bootloader的应用程序,然后再烧写bootloader,这样就避免了后续升级的风
--------------------- 
作者:Limit财 
来源:CSDN 
原文:https://blog.csdn.net/weilely123/article/details/7436070 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值