物联定位系统的固件无线升级方法转让专利

申请号 : CN201310154542.X

文献号 : CN103246536B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曹元王宇飞曹中张明坤仲成成李俊

申请人 : 常州南京大学高新技术研究院江苏唐恩科技有限公司南京大学

摘要 :

本发明涉及一种物联定位系统的固件无线升级方法,该方法将固件(微处理器)的程序存储器分为三个区,即Bootloader区、APP区以及数据暂存区。程序开始更新时,利用flash模拟eeprom功能将更新的程序首先写入数据暂存区,此区域内容掉电也不丢失,能够很好保存已传输的数据,等程序传输完毕再将更新的程序搬移至APP区,完成固件的无线升级。本发明具有快捷有效,且在断电断网后可继续升级等优点。

权利要求 :

1.一种物联定位系统的固件无线升级方法,包括存储有程序的固件,所述固件的程序存储器分为Bootloader区、 APP区和数据暂存区,而Bootloader区是引导程序区,APP区是应用程序区;其特征在于:所述固件无线升级的步骤是:步骤a、固件上电开机后,运行Bootloader区;

步骤b、检测数据暂存区的第一个字节,若第一个字节为1,则表示固件开始升级,执行步骤c;若第一个字节为2,则表示该固件上次升级被打断,执行步骤f;若第一个字节为0,则表示该固件无需升级,跳转到APP区执行用户程序;

步骤c、将固件的数据暂存区的第二个字节开始之后的区域擦除,并等待服务器发出无线升级控制信号,而无线升级控制信号分为开始升级信号和结束升级信号,直到固件接收到开始升级信号为止;

步骤d、当固件接收到开始升级信号时,等待接收服务器发出无线升级数据包,所述固件将接收到的无线升级数据包连续写入数据暂存区,而写入的地址为数据暂存区从头到尾检索到的第一个无效数据位,所述固件的数据暂存区在擦除后的数据位为无效数据位,当写入数据后的数据位为有效数据位,并执行步骤e;

若固件在升级过程中出现断电或断网现象而导致升级超时的情况下,固件的数据暂存区会保存已接收到的无线升级数据包,且数据暂存区的第一个字节更改为2,等待再次升级,执行步骤f;

步骤e、当固件接收到所有无线升级数据包,并收到由服务器发出的结束升级信号后,先将固件的APP区内的数据擦除,再将数据暂存区第二个字节开始的所有数据复制到APP区,最后再擦除数据暂存区所有内容并复位,完成了固件无线升级;

步骤f、检索数据暂存区的第一个无效数据位,并通过第一个无效数据位的位置得出固件已经接收到多少个由服务器发出的无线升级数据包,也就得知固件还应该继续接收多少个剩余数据包索引,执行步骤g;

步骤g、待继续升级的固件等待服务器再次发出无线升级数据包,直到接收到对应上述索引的数据包为止,在此过程中等待若干分钟;

若在等待的时间段之后仍未收到有效的无线升级数据包,则擦除数据暂存区的所有内容并复位,该固件运行升级前的APP区存储的程序;

若固件接收到由服务器发出的有效的无线升级数据包时,则固件将接收到的有效无线升级数据包连续写入数据暂存区,而写入的地址为数据暂存区从头到尾检索到的第一个无效数据位,当固件接收到所有有效的无线升级数据包,并收到由服务器发出的结束升级信号后,先将固件的APP区内的数据擦除,再将数据暂存区第二个字节开始的所有数据复制到APP区,最后再擦除数据暂存区所有内容并复位,完成了固件无线升级。

2.根据权利要求1所述的物联定位系统的固件无线升级方法,其特征在于:固件在升级完毕之前,仍然运行APP区内已存储的程序。

3.根据权利要求1所述的物联定位系统的固件无线升级方法,其特征在于:所述固件的程序存储器是以扇区为单位划分Bootloader区、 APP区和数据暂存区,而扇区的1~3扇区为Bootloader区,4~9扇区为APP区,9~12扇区为数据暂存区。

说明书 :

物联定位系统的固件无线升级方法

技术领域

[0001] 本发明具体涉及一种物联定位系统的固件无线升级方法。

背景技术

[0002] 目前大多数微处理器固件升级都是采用微处理器自带的烧写器进行固件更新,在这种情况下,固件的更新需要具有电脑、烧写器、开发环境等工具才能完成,由此给技术人员和客户带来了许多不便,延缓项目进度。
[0003] 现有的微处理器程序存储区域大多分为两个区:Bootloader区和APP区;所述APP区即为应用程序所在的区域,执行用户程序;而Bootloader区即为程序引导区,用于加载应用程序,进行应用程序的更新。现阶段方便快捷的固件升级方式均采用Bootloader区引导,擦除已有应用程序,更新用户程序的方式,但此种升级方法存在较高的风险性,一旦程序升级失败,现有的程序已被擦出,情况严重时,会导致整个设备瘫痪,必须返厂。并且大多数升级方法均需要其他设备的配合,如串口线等,这对固件升级也带来了些许不便。

发明内容

[0004] 本发明的目的是,提供一种快捷有效,且在断电断网后可继续升级的物联定位系统的固件无线升级方法,以克服现有技术的不足。
[0005] 为了达到上述目的,本发明的技术方案是:一种物联定位系统的固件无线升级方法,包括存储有程序的固件,所述固件的程序存储器分为Bootloader区、 APP区和数据暂存区,而Bootloader区是引导程序区,APP区是用户程序区或者是应用程序区;其特征在于:所述固件无线升级的步骤是:
[0006] 步骤a、固件上电开机后,运行Bootloader区;
[0007] 步骤b、检测数据暂存区的第一个字节,若第一个字节为1,则表示固件开始升级,执行步骤c;若第一个字节为2,则表示该固件上次升级被打断,执行步骤f;若第一个字节为0,则表示该固件无需升级,跳转到APP区执行用户程序;
[0008] 步骤c、将固件的数据暂存区的第二个字节开始之后的区域擦除,并等待服务器发出无线升级控制信号,而无线升级控制信号分为开始升级信号和结束升级信号,直到固件接收到开始升级信号为止;
[0009] 步骤d、当固件接收到开始升级信号时,等待接收服务器发出无线升级数据包,所述固件将接收到的无线升级数据包连续写入数据暂存区,而写入的地址为数据暂存区从头到尾检索到的第一个无效数据位,所述固件的数据暂存区在擦除后的数据位为无效数据位,当写入数据后的数据位为有效数据位,并执行步骤e;
[0010] 若固件在升级过程中出现断电或断网现象而导致升级超时的情况下,固件的数据暂存区会保存已接收到的无线升级数据包,且数据暂存区的第一个字节更改为2,等待再次升级,执行步骤f;
[0011] 步骤e、当固件接收到所有无线升级数据包,并收到由服务器发出的结束升级信号后,先将固件的APP区内的数据擦除,再将数据暂存区第二个字节开始的所有数据复制到APP区,最后再擦除数据暂存区所有内容并复位,完成了固件无线升级;
[0012] 步骤f、检索数据暂存区的第一个无效数据位,并通过第一个无效数据位的位置得出固件已经接收到多少个由服务器发出的无线升级数据包,也就得知固件还应该继续接收多少个剩余数据包索引,执行步骤g;
[0013] 步骤g、待继续升级的固件等待服务器再次发出无线升级数据包,直到接收到对应上述索引的数据包为止,在此过程中等待若干分钟;
[0014] 若在等待的时间段之后仍未收到有效的无线升级数据包,则擦除数据暂存区的所有内容并复位,该固件运行升级前的APP区存储的程序;
[0015] 若固件接收到由服务器发出的有效的无线升级数据包时,则固件将接收到的有效无线升级数据包连续写入数据暂存区,而写入的地址为数据暂存区从头到尾检索到的第一个无效数据位,当固件接收到所有有效的无线升级数据包,并收到由服务器发出的结束升级信号后,先将固件的APP区内的数据擦除,再将数据暂存区第二个字节开始的所有数据复制到APP区,最后再擦除数据暂存区所有内容并复位,完成了固件无线升级。
[0016] 在上述技术方案中,固件在升级过程中,或者是升级完毕之前,仍然运行APP区内已存储的程序。
[0017] 在上述技术方案中,所述固件的程序存储器是以扇区为单位划分Bootloader区、 APP区和数据暂存区,而扇区的1~3扇区为Bootloader区,4~9扇区为APP区,9~12扇区为数据暂存区。
[0018] 本发明所具有的积极效果是:由于采用了上述固件无线升级方法后,本发明具有以下优点:第一、操作简单,且快捷高效;第二、无需任何其它设备,方便用户操作;第三、由于固件的程序存储器划分为三个区,使得固件升级更加安全,也确保了升级数据包的完整性;第四、断电断网后保存固件已有的升级数据包,再下次升级时,可继续升级,节约了断电断网后再次重新升级的时间。

附图说明

[0019] 图1是本发明固件的程序存储器的结构示意图;
[0020] 图2是本发明固件无线升级的流程图。

具体实施方式

[0021] 以下结合附图以及给出的实施例,对本发明作进一步的说明,但并不局限于此。
[0022] 如图1、2所示,一种物联定位系统的固件无线升级方法,包括存储有程序的固件,所述固件的程序存储器分为Bootloader区、 APP区和数据暂存区,而Bootloader区是引导程序区,APP区是用户程序区或者是应用程序区;其特征在于:所述固件无线升级的步骤是:
[0023] 步骤a、固件上电开机后,运行Bootloader区;
[0024] 步骤b、检测数据暂存区的第一个字节,若第一个字节为1,则表示固件开始升级,执行步骤c;若第一个字节为2,则表示该固件上次升级被打断,执行步骤f;若第一个字节为0,则表示该固件无需升级,跳转到APP区执行用户程序;
[0025] 步骤c、将固件的数据暂存区的第二个字节开始之后的区域擦除,并等待服务器发出无线升级控制信号,而无线升级控制信号分为开始升级信号和结束升级信号,直到固件接收到开始升级信号为止;
[0026] 步骤d、当固件接收到开始升级信号时,等待接收服务器发出无线升级数据包,所述固件将接收到的无线升级数据包连续写入数据暂存区,而写入的地址为数据暂存区从头到尾检索到的第一个无效数据位,所述固件的数据暂存区在擦除后的数据位为无效数据位,当写入数据后的数据位为有效数据位,并执行步骤e;
[0027] 若固件在升级过程中出现断电或断网现象而导致升级超时的情况下,固件的数据暂存区会保存已接收到的无线升级数据包,且数据暂存区的第一个字节更改为2,等待再次升级,执行步骤f;
[0028] 步骤e、当固件接收到所有无线升级数据包,并收到由服务器发出的结束升级信号后,先将固件的APP区内的数据擦除,再将数据暂存区第二个字节开始的所有数据复制到APP区,最后再擦除数据暂存区所有内容并复位,完成了固件无线升级;
[0029] 步骤f、检索数据暂存区的第一个无效数据位,并通过第一个无效数据位的位置得出固件已经接收到多少个由服务器发出的无线升级数据包,也就得知固件还应该继续接收多少个剩余数据包索引,执行步骤g;
[0030] 步骤g、待继续升级的固件等待服务器再次发出无线升级数据包,直到接收到对应上述索引的数据包为止,在此过程中等待若干分钟;
[0031] 若在等待的时间段之后仍未收到有效的无线升级数据包,则擦除数据暂存区的所有内容并复位,该固件运行升级前的APP区存储的程序;
[0032] 若固件接收到由服务器发出的有效的无线升级数据包时,则固件将接收到的有效无线升级数据包连续写入数据暂存区,而写入的地址为数据暂存区从头到尾检索到的第一个无效数据位,当固件接收到所有有效的无线升级数据包,并收到由服务器发出的结束升级信号后,先将固件的APP区内的数据擦除,再将数据暂存区第二个字节开始的所有数据复制到APP区,最后再擦除数据暂存区所有内容并复位,完成了固件无线升级。
[0033] 本发明固件在升级过程中,或者是升级完毕之前,仍然运行APP区内已存储的程序。
[0034] 本发明所述固件的程序存储器是以扇区为单位划分Bootloader区、 APP区和数据暂存区,而扇区的1~3扇区为Bootloader区,4~9扇区为APP区,9~12扇区为数据暂存区,当固件接收到服务器发出的开始升级信号时会先复位,在准备升级,而固件存储的程序重新开始是从Bootloader区开始执行。
[0035] 本发明物联定位系统的固件无线升级方法是基于物联定位系统已有设备基础上的,无需任何其他设备配合并具有明显的特点。首先,该方法将固件(微处理器)的程序存储器分为三个区,即Bootloader区、App区以及数据暂存区。程序开始更新时,利用flash模拟eeprom功能将更新的程序首先写入数据暂存区,此区域内容掉电也不丢失,能够很好保存已传输的数据,等程序传输完毕再将更新的程序搬移至APP区,确保升级失败后之前的APP程序一样可以运行;其次,该方法使用无线射频方式传输升级数据包,而服务器的射频模块具有严格的硬件校验机制,确保数据包的完整性;最后,该方法支持断电断网续传功能,确保程序更新成功。
[0036] 以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。