直放站设备嵌入式软件的远程升级与版本切换方法

文档序号:7946225阅读:247来源:国知局
专利名称:直放站设备嵌入式软件的远程升级与版本切换方法
技术领域
本发明涉及通信领域中直放站设备性能的优化,尤其涉及一种对直放站设 备嵌入式软件的远程升级与版本切换方法。
背景技术
直放站监控系统上运行的监控软件需要进行升级。由于直放站的设置位置 比较分散,且一般设置位置比较偏远,现场升级比较麻烦。因此,对直放站监 控系统上的监控软件进行远程升级很有必要,即,在监控中心针对选定的直放 站,通过远程下载的方式升级其监控系统上运行的监控软件,以及时实现新的 监控功能或解决软件缺陷,降低维护成本。远程升级要求高可靠性、高成功 率、高效率。
申请号为200610052609.9的中国发明专利申请公开了 一种对直放站上运行 的监控软件进行远程升级的方法,该方法主要包括如下过程
1、 操作维护中心电脑上安装OMT软件,准备新的嵌入式软件;
2、 操作维护中心电脑与直放站监控系统进行无线连接;
3、 直放站设备上电后进入应用程序区执行正常的监控任务程序,并等待 操作维护中心的监控指令;
4、 操作维护中心上的OMT通过无线模块发送软件升级指令;
5、 直放站设备几首到软件升级指令,如可以进行升级就回复可升级信息 给操作维护中心,并准备接收新软件代码;
6、 操作维护中心发送新软件代码,直放站设备接收新软件代码,并把代 码暂存在RAM的高地址区;
7、 直放站设备接收完全部代码且校验正确后,跳转到IAP程序区执行 flash刷写程序,把新软件刷写到应用程序区;
8、 IAP刷写成功后复位系统,执行新的软件,到此嵌入式软件在应用远 程升级结束。
上述方法有如下缺点,
1、直放站监控系统将接收到的新代码存储到内存(RAM)中,如果传输过 程中系统断电,则整个升级过程中断,并无法保存已经下载的新代码,只能下 一次重新下载,浪费时间。2、新代码下载完成以后便直接刷写应用程序区,旧版本的应用程序无法 保存,如果新的程序在运行过程中有缺陷或者由于某些原因不能正常运行,则 整个直放站的监控系统将停止工作,不能恢复到旧版本的应用程序继续使用。

发明内容
本发明的目的是提供一种直放站设备嵌入式软件的远程升级与版本切换方 法,使用该方法不4又可以进4亍远程升级,而且可以实现软件新旧版本之间的切 换。
为实现上述目的,本发明提供如下技术方案 直放站设备嵌入式软件的远程升级与版本切换方法, 其中,
直放站设备监控系统的单片才几程序分为Bootloader程序和应用程序2部 分,所述单片机的片上Flash前124K字节是应用程序区,后4K字节是 Bootloader程序区;应用程序分为监控模式和升级模式2种互斥模式,升级模 式下接收升级文件数据包,监控模式下执行监控操作;单片机的片上Flash或 者外部Flash中有新版本程序存储区、旧版本程序存储区和下载程序存储区各 124k字节;在Bootloader程序和应用程序中,分配同样地址的标志数据空间用 于参数交互目的,这些标志数据均存储于单片机的片上EEPROM中,所述标 志数据包括,远程升级结果、新/旧程序已保存标志、软件升级标志、远程升 级标志、程序备份标志、升级失败标志、编程失败标志、软件切换标志、切换 确认标志、当前运行程序标志、新/旧程序切换到旧/新程序失败标志;
步骤1,直放站设备监控系统实时接收OMC或者OMT的指令,如果 OMC或者OMT发出的指令为升级指令,进入步骤2,如果为版本切换指令, 跳到步骤5,如杲未接收到OMC或者OMT发出的指令,跳到步骤6;
步骤2,从OMC或者OMT接收升级文件数据包,将接收到的升级文件数 据包保存至所述下载程序存储区;
步骤3,将下载程序存储区中的下载程序代码编程到单片机的应用程序
区;
步骤4,逐字节读应用程序区代码数据,写入所述新版本程序存储区,完 成新程序代码的备份;步骤5,如果当前运行程序为新版本程序,将旧版本程序存储区中的程序 代码编程到单片机的应用程序区,如果当前运行程序为旧版本程序,将新版本 程序存储区中的程序代码编程到单片机的应用程序区;
步骤6,执行应用程序的监控模式,进行监控操作,直放站设备监控系统
实时接收OMC或者OMT的指令。
上述方法中,采用单片机的片上Flash或者外部Flash来存储新下载的程
序代码,并将新、旧代码均保存起来,如果新下载的程序代码无法使用,或者
由于其他原因而需要使用旧的程序代码,可以方便进行新旧程序版本的切换。
而且可以实现对新下载程序代码的断点续传,节省新程序代码的下载时间。


图l是软件升级与版本切换主函数的处理流程图2是Bootloader程序的处理流程图3是应用程序区软件升级与版本切换初始化处理流程图4是应用程序区升级文件下载流程图5是应用程序区新旧版本软件切换处理流程图。
以下结合附图及实施例对本发明作进一步说明。
具体实施例方式
1、程序文件i兌明
直放站设备监控软件基于ATmegal28单片机开发。ATmegal28单片机程 序分为Bootloader程序和应用程序2部分。通过修改Bootloader程序的 Makefile文件,将Bootloader程序定位于0xlF000地址处。而应用程序则默认 定位于0x00000地址处。
芯片程序必须首次用烧写器下载,之后才能实现远程升级功能。烧写程序 文件是Bootloader程序和应用程序Hex文件的合并文件,升级程序文件是应用 程序的Binary文件。远程升级时只刷新应用程序区,Bootloader程序区不变。 通过修改Makefile文件选择编译输出文件为Hex格式还是Binary格式,Binary 文件大小不到Hex文件的三分之一。
Hex文件合并方法将Bootloader程序和应用程序分别编译为Hex才各式, 用UltraEdit32软件分别打开编译后的Bootloader程序Hex文件和应用程序Hex 文件,删除应用程序Hex文件的最后l行,将Bootloader程序Hex文件复制到 应用程序Hex文件后面,即将两个Hex程序文件合并得到最终的烧写程序文 件。
72、程序数据空间分配
ATmegal28共128K字节片上Flash,前124K字节是应用程序区,后4K 字节是Bootloader程序区。这通过编程ATmegal28单片机的熔丝位来选择。 上电复位时从Bootloader区的起始地址处开始执行程序,见图1。
外部512K字节Flash用于存储备份程序,当然,如果单片机的片上Flash 空间足够,也可以使用片上Flash。其中,0x00000 0xlEFFF的124K空间是新 版本程序存储区;0x20000 0x3EFFF的124K空间是旧版本程序存储区; 0x40000 0x5EFFF的124K空间是下载程序存储区;其余空间预留。
3 、 Bootloader程序与应用程序的标志数据交互
在Bootloader程序和应用程序中,分配同样地址的标志数据空间用于参数 交互目的。这些标志数据均存储于ATmegal28的片上EEPROM中。部分关键 标志数据还在EEPROM中做了备份处理,以增强可靠性,读时只要存储区或 备份区一个为真即可,写时存储区和备份区均写入。
这些标志数据包括远程升级结果、新/旧程序已保存标志、软件升级标 志、远程升级标志、程序备份标志、升级失败标志、编程失败标志、软件切换 标志、切换确认标志、当前运行程序标志、新/旧程序切换到旧/新程序失败标
志o
4、 升级或版本切换失败时的回退操作原理
Bootloader程序从外部Flash下载程序存储区(或新、旧版本程序存储区) 读取程序数据,刷新应用程序区代码后,先由Bootloader程序设置刷新失败标 志,即假设刷新失败,当应用程序执行到一定位置时,可确认应用程序刷新成 功,即确认软件升级或版本切换成功,此时再清除刷新失败标志。若程序刷新 出错,则应用程序无法正常执行,看门狗功能使得单片机复位,再次执行 Bootloader程序,检测到刷新失败标志,从外部Flash读取原版本程序数据, 重新刷新应用程序区代码。具体流程见图1、图2。
5、 程序备份原理
设备程序烧写后第1次上电重启时,Bootloader程序读取应用程序区代 码,将其备份至外部Flash的新版本程序存储区,见图2。
软件升级完毕,由应用程序执行备份程序操作,见图3。若当前运行程序 为新程序,先将外部Flash的新版本程序存储区数据转移至旧版本程序存储 区,再将下载程序存储区数据转移至新版本程序存储区。若当前运行程序为旧 程序,直接将下载程序存储区数据转移至新版本程序存储区,再将当前运行程 序标志改为新程序。
86、 升级程序文件下载方式
升级程序文件既可通过远程监控中心(OMC)下载,也可通过本地串口直连 软件(OMT)下载。通信协议数据交互方式完全一致,只是前者采用GPRS Modem,后者采用RS232串O 。 GPRS传输可采用TCP或UDP方式。
应用程序分为监控4莫式和升级4莫式2种互斥才莫式,升级模式下接收升级文 件数据包,监控模式下执行监控操作,具体流程见图1、图4。
7、 非法升级文件自动识别原理
ATmegal28的Binary程序文件的前几十个字节为固定的字符串,若升级 文件第1包数据的前若干字节与该字符串不匹配,则认为此下载文件非法。
在程序源文件中插入一段包含厂家标识和设备类型标识信息的特定字符 串,编译后该字符串将出现在Binary文件的前面某个位置,若在升级文件前若 干包数据中搜索到该字符串,比较设备类型标识信息是否与本设备一致,从而 防止升级文件人为选错现象的发生。
;险测到非法升级文件时,立即退出升级;f莫式并重启,具体流程见图4。
8、 断点续传原理
OMC或OMT取消升级时,或通信链路异常导致升级文件下载中断时,设 备保存最后1个完整数据包序号值(即为断点数据),因为数据包长度固定, OMC或OMT下一次启动升级时,可从断点处开始发送数据包,具体流程见图 1、图4。
9、 软件版本切换原理
设备从OMC或OMT接收到软件版本切换命令后,检查新旧程序是否均 已保存,若均已保存,则设置软件切换标志,并返回切换成功应答至OMC或 OMT,见图5。
设备自动重启以执行软件版本切换操作,并更新当前运行程序标志,具体 流程见图1、图2。几分钟后,OMC或OMT通过查询设备监控软件版本信息 确认软件版本切换是否成功。
本发明直放站设备嵌入式软件的远程升级与版本切换方法的基本流程是,
步骤1,直放站设备监控系统实时接收OMC或者OMT的指令,如果 OMC或者OMT发出的指令为升级指令,进入步骤2,如果为版本切换指令, 跳到步骤5,如果未接收到OMC或者OMT发出的指令,跳到步骤6;
步骤2,从OMC或者OMT接收升级文件数据包,将接收到的升级文件数 据包保存至所述下载程序存储区;步骤3,将下载程序存储区中的下载程序代码编程到单片机的应用程序
区;
步骤4,逐字节读应用程序区代码数据,写入所述新版本程序存储区,完 成新程序代码的备f分;
步骤5,如果当前运行程序为新版本程序,将旧版本程序存储区中的程序 代码编程到单片机的应用程序区,如果当前运行程序为旧版本程序,将新版本 程序存储区中的程序代码编程到单片机的应用程序区;
步骤6,执行应用程序的监控模式,进行监控操作,直放站设备监控系统 实时接收OMC或者OMT的指令。
具体进行远程升级与版本切换的具体处理流程是(结合图1),
1, 从0xlF000地址处开始运行Bootloader区程序;
2, 从0x00000地址处开始运4亍应用程序区程序;
3, 软件升级与切换初始化处理;
4, 判断应用程序当前运行是否为升级模式,如果是,进入5,如果否, 调到15;
5,判断是否从OMC或OMT接收到升级文件数据包,如果是,进入6, 如果否,跳到7;
6,升级文件下载处理;
7,检查升级文件下载完毕标志,如果升级文件下载完毕标志为是,进入 8,如果升级文件下载完毕标志为否,跳到12;
8,判断升级文件CRC校验是否成功,如果成功,进入9,如果失败,跳
到11;
9,设置软件升级标志;
10,断点数据清0,设置重启标志,应用程序转入监控模式,并跳到15;
11,保存升级文件CRC出错结果,设置重启标志,并跳到10;
l2,;险查升级文件正在下载标志,如果升级文件正在下载标志为是,进入 13,如果升级文件正在下载标志为否,跳到15;
13,判断通信链路是否超时,如果是,进入14,如果否,跳到15;
1014, 保存远程升级链路超时结果,保存断点数据,设置重启标志,应用程 序转入监控模式,进入15;
15, 判断是否从0MC或0MT接收到命令或数据,如果是,进入16,如果 否,跳到17;
16, 执行OMC或匿所发出命令相应的操作,并进入17;
17, 冲企查远程升级标志,如果远程升级标志为是,跳到19,如果远程升 级标志为否,进入18;
18, 检查重启标志,如果该重启标志为是,返回到2,如果该重启标志为 否,进入20;
19,将远程升级结果上^艮至OMC或OMT,清除远程升级标志,并进入18;
20,检查软件升级标志或软件切换标志,如果所检查标志为是,返回到 1,如果所检查标志为否,返回到4 。
图2Bootloader程序的处理流程图,即上述1步骤的具体流程,图3是3步 骤地具体流程。由于各个图中均有文字说明,在此不估文赘述。
当然,本发明直放站设备嵌入式软件的远程升级与版本切换方法还可有其 它变形。总之,根据上述实例的提示而做显而易见的变动,以及,其它凡是不 脱离本发明实质的改动,均应包括在权利要求所述的范围之内。
权利要求
1、直放站设备嵌入式软件的远程升级与版本切换方法,其特征在于,直放站设备监控系统的单片机程序分为Bootloader程序和应用程序2部分,所述单片机的片上Flash前124K字节是应用程序区,后4K字节是Bootloader程序区;应用程序分为监控模式和升级模式2种互斥模式,升级模式下接收升级文件数据包,监控模式下执行监控操作;单片机的片上Flash或者外部Flash中有新版本程序存储区、旧版本程序存储区和下载程序存储区各124k字节;在Bootloader程序和应用程序中,分配同样地址的标志数据空间用于参数交互目的,这些标志数据均存储于单片机的片上EEPROM中,所述标志数据包括,远程升级结果、新/旧程序已保存标志、软件升级标志、远程升级标志、程序备份标志、升级失败标志、编程失败标志、软件切换标志、切换确认标志、当前运行程序标志、新/旧程序切换到旧/新程序失败标志;步骤1,直放站设备监控系统实时接收OMC或者OMT的指令,如果OMC或者OMT发出的指令为升级指令,进入步骤2,如果为版本切换指令,跳到步骤5,如果未接收到OMC或者OMT发出的指令,跳到步骤6;步骤2,从OMC或者OMT接收升级文件数据包,将接收到的升级文件数据包保存至所述下载程序存储区;步骤3,将下载程序存储区中的下载程序代码编程到单片机的应用程序区;步骤4,逐字节读应用程序区代码数据,写入所述新版本程序存储区,完成新程序代码的备份;步骤5,如果当前运行程序为新版本程序,将旧版本程序存储区中的程序代码编程到单片机的应用程序区,如果当前运行程序为旧版本程序,将新版本程序存储区中的程序代码编程到单片机的应用程序区;步骤6,执行应用程序的监控模式,进行监控操作,直放站设备监控系统实时接收OMC或者OMT的指令。
2、根据权利要求1所述的直放站设备嵌入式软件的远程升级与版本切换 方法,其特征在于,在所述步骤2中,下载升级文件数据包过程中和下载完成后,对数据包的 合法性进行校验,4企测到非法升级文件时,立即退出升级模式并重启。
3、根据权利要求2所述的直放站设备嵌入式软件的远程升级与版本切换方法,其特征在于,进行远程升级与版本切换的具体处理流程是,(1) ,从0xlF000地址处开始运行Bootloader区程序;(2) ,从0x00000地址处开始运行应用程序区程序;(3) ,软件升级与切换初始化处理;,(4),判断应用程序当前运行是否为升级模式,如果是,进入(5),如果否, 调到(15);(5) ,判断是否从OMC或OMT接收到升级文件数据包,如果是,进入 (6),如果否,跳到(7);(6) ,升级文件下载处理;(7) ,检查升级文件下载完毕标志,如果升级文件下载完毕标志为是,进入 (8),如果升级文件下载完毕标志为否,跳到(12);(8) ,判断升级文件CRC校验是否成功,如果成功,进入(9),如果失败, 跳到(ll);(9) ,设置软件升级标志;(10) ,断点数据清0,设置重启标志,应用程序转入监控模式,并跳到(15);(11) ,保存升级文件CRC出错结果,设置重启标志,并跳到(10);(12) ,;险查升级文件正在下载标志,如果升级文件正在下载标志为是,进 入(13),如果升级文件正在下载标志为否,跳到(15);(13) ,判断通信链路是否超时,如果是,进入(14),如果否,跳到(15);(14) ,保存远程升级链路超时结果,保存断点数据,设置重启标志,应用 程序转入监控模式,进入(15);(15) ,判断是否从0MC或0MT接收到命令或数据,如果是,进入(16),如 果否,跳到(17);(16) ,执行OMC或OMT所发出命令相应的操作,并进入(17);(17) ,;险查远程升级标志,如果远程升级标志为是,跳到(19),如果远程 升级标志为否,ii7v(18);(18) , 4企查重启标志,如果该重启标志为是,返回到(2),如果该重启标志 为否,进入(20);(19) ,将远程升级结果上报至OMC或OMT,清除远程升级标志,并进入(18);(20) ,检查软件升级标志或软件切换标志,如果所检查标志为是,返回到 (1),如果所检查标志为否,返回到(4)。
4、 根据权利要求3所述的直放站设备嵌入式软件的远程升级与版本切换 方法,其特征在于,OMC或OMT取消升级时,或通信链路异常导致升级文件下载中断时,直 放站设备保存最后1个完整数据包序号值,OMC或OMT下一次启动升级时, 可从断点处开始发送数据包。
5、 根据权利要求4所述的直放站设备嵌入式软件的远程升级与版本切换 方法,其特征在于,所述升级文件是应用程序的Binary文件。
6、 根据权利要求1-5中任意一项所述的直放站设备嵌入式软件的远程升级 与版本切换方法,其特征在于,EEPROM中的标志数据还在EEPROM中的其它地址做了备份处理,读时 只要存储区或名"分区一个为真即可,写时存储区和备除区均写入。
全文摘要
本发明涉及通信领域中直放站设备性能的优化。直放站设备嵌入式软件的远程升级与版本切换方法,1,实时接收OMC或者OMT的指令,如果为升级指令,进入2,为版本切换指令,跳到5,未接收到指令,跳到6;2,从OMC或者OMT接收升级文件数据包,将接收到的升级文件数据包保存至所述下载程序存储区;3,将下载程序存储区中的下载程序代码编程到单片机的应用程序区;4,逐字节读应用程序区代码数据,写入所述新版本程序存储区;5,如果当前运行程序为新版本程序,将旧版本程序存储区中的程序代码编程到单片机的应用程序区,反之,将新版本程序存储区中的程序代码编程到单片机的应用程序区;6,执行应用程序的监控模式。上述方法可以实现远程升级和新旧程序版本的切换。
文档编号H04W24/00GK101557583SQ20091003802
公开日2009年10月14日 申请日期2009年3月19日 优先权日2009年3月19日
发明者朱劲松, 陆呈付 申请人:珠海银邮光电技术发展股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1