[发明专利]用户程序在线升级系统和升级方法有效
申请号: | 201210428285.X | 申请日: | 2012-10-31 |
公开(公告)号: | CN102945173A | 公开(公告)日: | 2013-02-27 |
发明(设计)人: | 马军涛;李刚;宋哲韬;孙黎明 | 申请(专利权)人: | 青岛海信宽带多媒体技术有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京市京大律师事务所 11321 | 代理人: | 黄启行;方晓明 |
地址: | 266555 山东省青*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用户 程序 在线 升级 系统 方法 | ||
技术领域
本发明涉及单片机技术,尤其涉及一种用户程序在线升级系统和升级方法。
背景技术
对单片机中的用户程序进行烧录和升级,传统上是采用并行烧录器。用这种方法对单片机进行升级时,需要反复插拔单片机,而铁片封装的单片机进行升级时,则需要反复焊接和拆卸,不但操作麻烦,而且容易损坏单片机。
IAP(In-Application Program,在应用中编程)技术则很好地解决了这个问题。如图1所示,在非易失性程序存储器(FLASH程序存储器)中存储有用户程序;单片机通过加载FLASH(闪存)程序存储器中的用户程序运行来实现各种功能,如采集、计算、控制等功能。用户程序通常存储于FLASH程序存储器中的用户程序区。
此外,FLASH程序存储器中还存储有IAP程序,IAP程序是通过专用的下载口,如单片机的JTAG或ISP烧录到FLASH程序存储器中的;IAP程序中通常有IAP功能函数,单片机运行IAP程序时,通过调用IAP功能函数,可以实现从其通用通信端口(如IIC总线、SPI总线或并行总线)接收用户程序,将用户程序烧录到FLASH程序存储器;这样,在进行用户程序升级时,不必通过专用设备或端口,而是通过运行IAP程序,通过通用通信端口实现用户程序的在线升级。IAP程序通常存储于FLASH程序存储器中的IAP程序区。
单片机上电后,执行Boot(引导)程序:先检测IAPPin管脚的电压;若IAPPin管脚的电平为高电平,则单片机执行FLASH程序存储器中的IAP程序;若LoadPin管脚的电平也为高电平,则IAP程序通过通信总线开始从主机(Host)接收二进制文件烧录到FLASH程序存储器中,作为新版的用户程序;主机在发送二进制文件完毕后,控制LoadPin管脚的电平转为低电平,则单片机结束IAP程序的执行。主机控制ResetPin管脚复位后,单片机重启;单片机重启后,若检测到IAPPin管脚的电压为低电压,则执行之前烧录的新版的用户程序,从而实现单片机的用户程序的在线升级。
本发明的发明人发现,现有技术的单片机用户程序的在线升级方法需要占用单片机较多的硬件资源;事实上,为了实现在线升级的控制,占用了单片机3个管脚(I/O端口)分别作为IAPPin、LoadPin、ResetPin管脚与主机相连,主机通过这三个管脚来控制单片机的用户程序的在线升级。
因此,现有技术的单片机用户程序的在线升级方法占用单片机较多硬件资源,在单片机功能日益增多的情况下,越来越具有节省单片机硬件资源的需求。
发明内容
本发明的实施例提供了一种用户程序在线升级系统和升级方法,用以在用户程序的在线升级时减少对单片机的硬件资源的占用。
根据本发明的一个方面,提供了一种用户程序在线升级方法,包括:
所述单片机上电或复位后,读取非易失性程序存储器中的烧录标识;
若所述烧录标识为数值A,则运行所述非易失性程序存储器中的IAP程序,对所述非易失性程序存储器中的用户程序进行在线升级;
若所述烧录标识为数值B,则运行所述非易失性程序存储器中的用户程序;在运行所述用户程序时,若接收到烧录指令,则更改所述烧录标识为数值A后,进行软复位。
其中,所述运行所述非易失性程序存储器中的IAP程序,对所述非易失性程序存储器中的用户程序进行在线升级具体包括:
所述单片机运行所述IAP程序后,若接收到写数据指令,则根据接收的写数据指令将接收的二进制文件写入到所述非易失性程序存储器的用户程序区中,作为升级版的用户程序对所述非易失性程序存储器中的用户程序进行在线升级。
进一步,在所述单片机运行所述IAP程序后,还包括:
若所述单片机接收到写烧录标识指令,则根据所述写烧录标识指令将数值B写入到非易失性程序存储器中的烧录标识中;之后,
跳转到所述非易失性程序存储器的用户程序区的入口处,开始执行所述升级版的用户程序。
进一步,在所述接收到写数据指令后,还包括:
所述单片机根据所述写数据指令中的校验位对所述写数据指令进行校验;若校验结果错误,则返回接收错误的反馈指令;以及
所述根据接收的写数据指令将接收的二进制文件写入到所述非易失性程序存储器的用户程序区具体为:
若校验结果正确,则根据接收的写数据指令将接收的二进制文件写入到所述非易失性程序存储器的用户程序区,并返回接收正确的反馈指令。
较佳地,在所述执行所述升级版的用户程序后,还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于青岛海信宽带多媒体技术有限公司,未经青岛海信宽带多媒体技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210428285.X/2.html,转载请声明来源钻瓜专利网。