CN109189445A - 一种物联网设备程序升级的方法 - Google Patents
一种物联网设备程序升级的方法 Download PDFInfo
- Publication number
- CN109189445A CN109189445A CN201811186498.XA CN201811186498A CN109189445A CN 109189445 A CN109189445 A CN 109189445A CN 201811186498 A CN201811186498 A CN 201811186498A CN 109189445 A CN109189445 A CN 109189445A
- Authority
- CN
- China
- Prior art keywords
- program
- upgrading
- code
- space
- app
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种物联网设备程序升级的方法,它涉及物联网技术领域;升级发送设备与升级接收设备无线或有线连接;升级发送设备存储待升级的新程序,通过有线通信接口或者无线通信接口将待升级的新程序发送到升级接收设备中,用于升级接收设备的程序更新升级;升级接收设备通过有线通信接口或者无线通信接口接收新程序代码,通过内部的程序升级启动机制、程序升级代码复制擦写机制、新程序启动确认机制、升级失败错误处理机制进行新程序的升级和程序升级的异常处理;本发明通过CmdAdd命令地址能够方便的实现,对某个指定的升级接受设备进行新程序升级,或者所有程序设备进行新程序升级。
Description
技术领域
本发明属于物联网技术领域,具体涉及一种物联网设备程序升级的方法。
背景技术
在物联网领域,存在大量的嵌入式***设备,由于嵌入式是***内部CPU处理器的程序代码采用烧写器进行烧写,在遇到程序出现错误或者添加新的功能时,需要重新进行程序烧写,但是在大量使用中的嵌入式设备无法拆下来打开外壳进行新程序的烧写,只能采用设备更换的方式进行程序错误的修复和新功能的添加,更换成本极高。
有部分厂家为了解决程序错误修复和新功能添加的问题,采用大型的工业控制处理器和存储器,安装linux等大型操作***,由大型操作***进行程序的替换和升级,但是这些工业控制处理器和存储器硬件成本高,且大型操作***的开发周期长,受***格因素的影响,无法大面积应用于物联网等低成本需求的嵌入式设备中,只能采用低成本的单片机嵌入式方案,但是单片机嵌入式方的烧写模式无法解决设备使用过程中升级的问题,每个物联网嵌入式设备程序在设计完成后需要花费大量的时间和人力进行测试验证,极大的延长的开发周期,提高了开发成本。
发明内容
为解决现有是单片机嵌入式方的烧写模式无法解决设备使用过程中升级的问题,每个物联网嵌入式设备程序在设计完成后需要花费大量的时间和人力进行测试验证,极大的延长的开发周期,提高了开发成本的问题;本发明的目的在于提供一种物联网设备程序升级的方法。
本发明的一种物联网设备程序升级的方法,它包括升级发送设备和升级接收设备;升级发送设备与升级接收设备无线或有线连接;升级发送设备存储待升级的新程序,通过有线通信接口或者无线通信接口将待升级的新程序发送到升级接收设备中,用于升级接收设备的程序更新升级;升级接收设备通过有线通信接口或者无线通信接口接收新程序代码,通过内部的程序升级启动机制、程序升级代码复制擦写机制、新程序启动确认机制、升级失败错误处理机制进行新程序的升级和程序升级的异常处理;所述升级发送设备和升级接收设备包括设备程序运行CPU处理器,用于物联网设备程序的运行;程序存储器用于存储升级发送设备发送过来的新程序;通信接口用于从升级发送设备接收待升级的新程序。
作为优选,所述CPU处理器中的内部程序空间划分为三个部分:一、BOOT启动代码空间,用于存储物联网设备的程序启动和程序升级;二、APP_RUN程序代码空间,用于存储物联网设备运行的APP应用程序,完成物联网设备功能执行;三、CONFIG参数配置空间,用于存储物联网设备在进行升级过程中的程序升级状态和标志,便于判断新程序升级是否成功,是否需要回退到原始的旧的程序中。
作为优选,所述程序存储器空间划分为三个APP部分:一、APP_FACTORY,用于存储物联网设备出厂时的应用程序代码,该存储空间为只读保护模式,不可擦除和修改;二、APP1、APP2,用于存储交替存储升级过程中新的应用程序代码,若当前运行的程序放在APP1区时,则新的升级程序存储到APP2区;升级完成后重启,运行存放在APP2区的程序,再次进行新的升级时,新程序放在APP1区;以此类推交替使用APP1和APP2区作为当前应用程序和新升级程序的存储区,该存储空间内容可以擦除、修改、重写;所述程序存储器空间存储的三个APP空间包括升级程序头部和程序二进制内容两个部分;空间大小为CPU处理器中的内部程序空间中的APP_RUN程序代码空间大小+4K Byte;其中升级程序头部大小为512~4096Byte,默认取值为512Byte。
作为优选,所述程序存储器空间存储的三个APP空间的程序二进制内容,用于存储设备程序升级的可执行的二进制代码;所述程序存储器空间存储的三个APP空间的升级程序头部格式为:
1、Head,用于表示APP空间的起始部分,固定取值为两个0xFFFFFFFF,占用8Byte;
2、AppLen,存储程序二进制内容的字节长度,占用8Byte,前4Byte存储长度值,后4Byte存储长度值的二进制取反;
3、AppCRC,存储程序二进制内容的CRC校验码,用于校验程序二进制文件是否正确,占用4Byte,前2Byte存储校验码,后2Byte存储校验码实际值的二进制取反;
4、AppVer,存储程序二进制内容中的APP程序的版本信息,便于进行APP程序版本管理,占用8Byte;
5、保留,占用228Byte空间,用于保证程序代码存储格式的空间对齐以及后续升级程序二进制内容的扩展标识使用,可以扩展存储程序二进制文件的文件名、程序升级的时间、程序应用的设备类型等;
6、数据块标志,在进行升级程二进制数据传输过程中,用于记录数据块的正确性,每一个bit表示一个数据块,取值为0时表明该数据块不可用,取值为1是表明该数据块正确写入APP空间并校验正确。
作为优选,所述CPU处理器中的内部程序空间中的CONFIG参数配置空间用于存储程序升级过程中各种标志,各标志的存储格式说明如下:
1、WdgReset,用于记录CPU处理器中watchdog看门狗单元重启物联网设备程序的次数;物联网设备每次加电启动或者复位启动后,首先运行BOOT启动代码空间中的二进制代码,检查是否由watchdog看门狗单元复位CPU启动,若是则WdgReset加1,当WdgReset≥3时,表明当前APP_RUN程序代码空间中存储的程序代码处于异常,需要恢复到升级前的应用程序;
2、FailCnt,记录物联网设备程序运行失败次数,BOOT启动代码在每次程序升级时,从程序存储器空间将要升级的程序代码复制到APP_RUN程序代码空间后将该标志置1,表示需要进行程序升级成功确认,随后调用启动函数,启动APP_RUN程序代码空间的新程序,新程序启动确认机制对程序各项功能进行自检,自检成功后,通过将该标志置为0进行升级成功确认,若新程序不能自检完成,CPU处理器再次重新启动进入BOOT启动代码后,BOOT启动代码将该标志加1,并检测该值是否≥3,若是则表示新程序不能正常进行功能自检,需要恢复到升级前的应用程序;
3、AppIndex,用于记录当前APP_RUN程序代码空间中存储的设备程序是程序存储器中的那一个空间中的程序,AppIndex=0,表示存储的是APP_FACTORY空间中的程序,AppIndex=1表示存储的是APP1空间中的程序,AppIndex=2表示存储的是APP2空间中的程序;
4、AppLEN,用于记录当前APP_RUN程序代码空间中存储的设备程序的大小;
5、AppCRC,用于记录当前APP_RUN程序代码空间中存储的设备程序的CRC校验码;
6、Valid1和Valid2表示程序存储器空间中存储的APP1和APP2的程序是否有效,Valid1=0表示程序存储器中APP1存储空间无升级代码,Valid1=2表示为有可升级代码,由程序升级代码传输及校验机制进行赋值;Valid1=1表示代码升级后校验出现错误或者异常,该存储空间升级代码不可用,由升级失败错误检查机制检查赋值;同理Valid2=0表示程序存储器中APP2存储空间无升级代码,Valid2=2表示为有可升级代码,由程序升级代码传输及校验机制进行赋值;Valid2=1表示代码升级后校验出现错误或者异常,该存储空间升级代码不可用,由升级失败错误检查机制检查赋值;
7、Reserve,为保留填充区域,用于升级标志扩展使用,大小为CPU处理器中的内部程序空间扇区大小-40Byte,以保证参数配置空间大小正好为一个CPU处理器中的内部程序空间扇区大小,方便升级时标志的修改;
8、UpCfg,用于记录设备是否需要重启进入新程序擦写模式,取值UpCfg=0xE5EA55AA表示采用出厂程序APP_FACTORY空间中的程序做为物联网设备的运行程序,取值UpCfg=0xE5EA5555表示采用出厂程序APP1空间中的程序做为物联网设备的运行程序,取值UpCfg=0xE5EAAAAA表示采用出厂程序APP2空间中的程序做为物联网设备的运行程序;
作为优选,所述CPU处理器中的内部程序空间中的参数配置空间为了保证存储的各种标志的正确性,标志WdgReset、FailCnt、Valid1、Valid2、AppIndex、AppCRC采用4Byte进行存储,每个标志的前2Byte存储标志的实际值,后2Byte存储标志的实际值的二进制取反;标志AppLEN、UpCfg采用8Byte进行存储,前4Byte存储标志的实际值,后4Byte存储标志的实际值的二进制取反;CPU处理器中的内部程序空间和程序存储器空间中的程序代码和数据全部以4字节对齐存储,程序代码的传输和存储过程中的CRC校验全部以CRC16进行校验。
作为优选,所述物联网设备程序升级包括:1、程序升级代码传输校验机制;2、程序升级代码启动运行机制;3、程序升级代码擦写复制机制;4、程序升级代码启动确认机制;5、升级失败错误检查机制共5个步骤;其中程序升级代码传输及校验机制、程序升级代码启动确认机制2个机制在APP_RUN程序代码中执行,程序升级代码传输校验机制、程序升级代码启动运行机制、程序升级代码擦写复制机制、升级失败错误检查机制4个机制在BOOT启动代码中执行。
作为优选,所述程序升级代码传输校验机制,具体步骤为:
1、升级发送设备向升级接收设备发送升级指令UpDateFileStart及参数,指令参数包含AppLen、AppCRC、AppVer;
2、升级接收设备接收到升级指令UpDateFileStart及参数后,读取CONFIG参数配置空间中的Valid1、Valid2、AppIndex三个标志,从程序存储器空间中选择一个APP空间存储即将传输过来的升级程序二进制内容,选择好一个合适的新程序存储空间后,擦除该存储空间的数据,将AppLen、AppCRC、AppVer存储在升级程序头部,将相对应的Valid1或Valid2标志赋值为0;
3、升级接收设备给升级发送设备回复一个UpDateFileReady指令,通知升级发送设备已经准备好接受升级程序;
4、升级发送设备接收到回应的UpDateFileReady指令后,通过有线通信接口或者无线通信接口向升级接收设备发送新升级程序二进制数据;
5、升级发送设备发送完毕新升级程序二进制数据后,给升级接收设备发送一个UpDateFileDone指令,表示升级程序二进制数据传输完成;
6、升级接收设备利用APP空间中的AppLen、AppCRC校验对新升级程序进行校验,校验正确后,升级接收设备将CONFIG参数配置空间中相对应的Valid1或者Valid2标志赋值为2,表示该空间中的程序有效可以进行程序升级;若升级程序校验错误,升级接收设备将CONFIG参数配置空间中相对应的Valid1或者Valid2标志赋值为0;
7、升级接收设备完成程序升级代码接收及校验后给升级发送设备回应一个UpDateFileSave指令+APP编号参数+Valid1或者Valid2标志,通知升级发送设备接收升级程序数据是否正确;
8、升级发送设备除了对升级接收设备进行新升级程序传输外,还可以通过UpDateFileGet指令查询升级接收设备外部存储器中三个APP空间中存储的程序的版本信息,升级接收设备通过UpDateFileGet指令+版本信息向升级发送设备回复程序版本信息。
从程序存储器空间中选择一个APP空间存储即将传输过来的升级程序二进制内容的判断步骤如下:1、若Valid1=2且Valid2=2表示两个APP空间都存储有有效的升级程序,则判断AppIndex取值,若AppIndex=1,则选择APP2空间做为新程序存储空间,若AppIndex=2或者AppIndex=1则选择APP1空间做为新程序存储空间;2、若Valid1=Valid2时,则选择APP1空间做为新程序存储空间;3、若Valid1<Valid2时,则选择APP1空间做为新程序存储空间;4、若Valid1>Valid2时,则选择APP2空间做为新程序存储空间。
所述升级发送设备向升级接收设备发送新升级程序二进制数据,在有线通信接口进行新程序升级时,采用Ymodem数据传输协议进行数据传输,在无线通信接口进行新程序升级时,采用TFTP数据传输协议或者采用自定义数据块的方式进行数据传输;自定义数据块进行数据传输可以连续传输也可以间断性传输,升级发送设备每传输若干个数据块后,升级接收设备对数据块进行校验后会给升级发送设备接收确认信号,保证每个数据块的正确性。
作为优选,所述程序升级代码传输校验机制可以在APP_RUN程序中执行,也可以在BOOT程序代码中执行,在APP_RUN程序中执行时,程序升级代码传输可以连续传输也可以断续传输;而在BOOT程序中执行时,程序升级代码传输只能连续传输,新程序升级数据块接收时间间隔不能超过1秒钟,超过1秒钟则判定为新程序升级数据块传输中断。
作为优选,所述程序升级代码启动运行机制,具体步骤为:
1、升级发送设备向升级接收设备发送UpRunStart指令,指令参数为外部存储器中三个APP空间的需要;
2、升级接收设备接收到UpRunStart指令后,对CONFIG参数配置空间中的UpCfg进行赋值,随后升级接收设备给升级发送设备回复UpRunStart命令应答,并调用重启模块进行设备重启;
3、升级接收设备重启后,首先进入BOOT启动代码空间,运行BOOT启动代码;
4、BOOT启动代码启动后,首先初始CPU处理器的看门狗电路,然后进行有线通信接口或者无线通信接口的驱动初始,然后延迟等待3秒钟,监听通信接口指令;3秒钟没有指令则继续执行BOOT启动代码,3秒钟内接收到通信接口指令后,优先执行通信接口指令,如接受到UpDateFileStart指令,则进入程序升级代码传输及校验机制进行新程序的传输和校验;
5、升级接收设备读取CONFIG参数配置后,检查UpCfg参数,判断是否需要调用程序升级代码擦写复制机制进行新程序复制和升级,若UpCfg=0xE5EA55AA则将APP_FACTORY空间中的程序复制到APP_RUN程序代码空间,若UpCfg=0xE5EA5555则将APP1空间中的程序复制到APP_RUN程序代码空间,若UpCfg=0xE5EAAAAA则将APP2空间中的程序复制到APP_RUN程序代码空间;
6、升级接收设备复制完毕新程序数据后,判断复制结果,新程序复制正确,则BOOT启动代码调用跳转指令,直接执行APP_RUN程序代码,启动新的升级程序,由新升级程序完成启动确认;若新程序复制错误,则设备重启,进入BOOT启动代码,由升级失败错误检查机制进行错误处理;
7、升级接收设备读取CONFIG参数配置后,检查UpCfg参数,若不需要进行程序升级则进行升级失败错误检查机制进行升级失败错误检查;
8、执行完毕升级失败错误检查机制后,BOOT启动代码调用跳转指令,执行APP_RUN程序代码。
本发明的程序升级代码启动机制中,延迟等待3秒钟监听通信接口指令,仅对UpDateFileStart指令、UpRunStart指令、设备重启指令进行执行相应,其他指令丢弃不予理会。
作为优选,所述程序升级代码擦写复制机制,具体步骤为:
1、升级接收设备在进行APP_RUN程序代码复制前,检查UpCfg参数,选择程序存储器空间中的APP程序空间,读取APP程序空间中升级程序头部中的Head、AppLen、AppCRC、AppVer进行参数检查;判断Head是否为固定值0xFFFFFFFF,AppLen长度是否超出APP_RUN程序代码空间大小,并且检查APP程序空间中代码CRC校验正确,若参数错误则退出程序升级代码擦写复制机制,返回错误码-1;
2、调用CPU处理器中的内部程序空间解锁指令,解锁APP_RUN程序代码空间,擦除APP_RUN程序代码空间数据;
3、根据需要复制的外部存储器空间的编号对CONFIG配置参数中的AppIndex进行赋值;并将升级程序头部中的AppLen、AppCRC赋值给CONFIG配置参数中AppLen、AppCRC;WdgReset赋值为0;
4、根据AppLen参数循环将外部存储器空间中的APP程序代码复制到APP_RUN程序代码空间;
5、新程序代码复制完毕后进行CRC校验计算,生成APP_RUN程序代码空间中程序代码的校验值AppRunCRC,比较计算出的校验值和CONFIG配置参数中的AppCRC值;
6、校验值不相同则说明APP程序代码复制错误,重复步骤2~5重新进行APP程序代码复制,连续重复复制3次,将FailCnt赋值为3,并返回错误代码-2;
7、校验值相同则说明APP程序代码复制正确,将FailCnt赋值为1,返回正确码0;
8、清除升级标志UpCfg赋值为0x00000000,然后退出擦写复制机制。
作为优选,所述程序升级代码启动确认机制,用于新程序功能自检,新程序功能自检通过后,将FailCnt参数赋值为0,以进行新程序启动确认,新程序功能自检包含程序版本信息检测、硬件功能检测、软件功能检测、通信指令检测四个部分;新程序启动确认分为程序自动确认和远程管理通信确认两种模式;程序自动确认是对版本信息检测、硬件功能检测、软件功能检测、通信指令检测四个部分全部进行检测正确无误后来进行新程序启动确认;远程管理通信确认是通过与远程管理服务器进行通信,由远程管理服务器来进行新程序启动确认。
作为优选,所述升级失败错误检查机制,具体步骤为:
1、升级接收设备进入升级失败错误检查机制后,判断设备启动是否为watchdog看门狗单元启动,是则将CONFIG参数配置空间的WdgReset参数加1;
2、判断WdgReset是否大于等于3,若大于等于3则判定新升级程序异常,启动恢复升级前的应用程序;
3、判断FailCnt参数是否为0,若不为0,则将FailCnt参数加1;
4、判断FailCnt参数是否大于等于3,若大于等于3则判定新升级程序无法进行启动确认,需要恢复升级前的应用程序;
5、判断是否需要恢复升级前的应用程序,若不需要则直接退出升级失败错误检查机制;
6、若需要恢复升级前的应用程序,读取AppIndex参数,确认当前APP_RUN空间中运行的是那个APP空间中的程序;
7、若AppIndex==0,表明当前运行的是工厂程序,直接退出;
8、若AppIndex==1,则将Valid1赋值为1,标识APP1代码不可用;继续判断Valid2==2,则恢复APP2空间的代码,UpCfg赋值0xE5EAAAAA;若Valid2≠2则恢复APP_FACTORY空间的代码,UpCfg赋值0xE5EA55AA;9、若AppIndex==2,则将Valid2赋值为1,标识APP2代码不可用;继续判断Valid1==2,则恢复APP1空间的代码,UpCfg赋值0xE5E5555;若Valid1≠2则恢复APP_FACTORY空间的代码,UpCfg赋值0xE5EA55AA;
10、设备重启,重新进入BOOT代码空间。
所述升级通信接口可以为有线通信接口,也可以为无线通信接口,有线通信接口和无线通信接口在本发明中,可以同时存在,也可以只存在一种通信接口。
本发明的有益效果为:通过CmdAdd命令地址能够方便的实现无线通信接口时,对某个指定的升级接受设备进行新程序升级,或者所有程序设备进行新程序升级。
附图说明
为了易于说明,本发明由下述的具体实施及附图作以详细描述。
图1为本发明的结构示意图;
图2为本发明中升级发送设备和升级接收设备连接框图;
图3为本发明中将CPU处理器中的内部程序空间划分为三个部分的示意图;
图4为本发明中将程序存储器空间划分为三个APP部分的示意图;
图5为本发明中程序存储器空间存储的三个APP空间包含升级程序头部和程序二进制内容两个部分的示意图;
图6为本发明中程序存储器空间存储的三个APP空间的升级程序头部格式图;
图7为本发明中CPU处理器中的内部程序空间中的CONFIG参数配置空间用于存储程序升级过程中各种标志的示意图;
图8为本发明中物联网设备程序升级的示意图;
图9为本发明中程序升级代码传输校验机制的流程图;
图10为本发明中程序升级代码启动运行机制的流程图;
图11为本发明中程序升级代码擦写复制机制的流程图;
图12为具体实施方式中升级发送设备和升级接受设备的组成结构图;
图13为具体实施方式中将CPU处理器的全部256KByte的内部程序空间划分示意图;
图14为具体实施方式中将程序存储器的2048KByte空间划分示意图;
图15为具体实施方式中有线Ymodem协议传输示意图;
图16为具体实施方式中无线TFTP协议传输示意图;
图17为具体实施方式中远程网络自定义数据块协议传输的示意图;
图18为具体实施方式中有线Ymodem协议传输交互流程图;
图19为具体实施方式中无线TFTP协议传输交互流程图;
图20为具体实施方式中远程网络自定义数据块协议传输交互流程图;
图21为具体实施方式中固定的通信帧格式的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面通过附图中示出的具体实施例来描述本发明。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
如图1至图12所示,本具体实施方式采用以下技术方案:
本具体实施方式的升级发送设备和升级接受设备由如下几个部分实现:1、CPU处理器,本实施例采用STM32F103RC芯片,内部程序代码空间256KByte,用于存储物联网设备的功能程序;2、程序存储器,本实施例采用W25X08芯片,采用SPI总线接口和CPU处理器相连接,该芯片存储空间为2048KByte;3、有线通信接口,采用MAX3232芯片完成CPU处理器和其他设备的有线通信,用于通过有线接口进行物联网设备程序的升级;4、无线通信接口,采用SX1278芯片完成CPU处理器和其他设备的无线通信,用于通过无线接口进行物联网设备程序的升级;本发明中,有线通信接口和无线通信接口不是必须同时存在的。
本实施例将CPU处理器的全部256KByte的内部程序空间划分(如图13所示):1、BOOT启动代码空间,占用32KByte的空间,仅仅用于存储BOOT启动代码,该空间尽量小,将更多的代码存储空间预留给APP_RUN程序代码;2、CONFIG参数配置空间,占用4KByte的空间,占用空间的大小为CPU处理器内部存储空间的一个扇区,方便参数配置的擦写和修改;3、APP_RUN程序代码空间,占用220KByte的空间,除去BOOT启动代码空间和CONFIG参数配置空间外,将尽量多的CPU处理器内部程序空间划分给APP_RUN程序代码空间。
本实施例将程序存储器的2048KByte空间划分(如图14所示):1、APP_FACTORY,占用256KByte空间,可以存储下整个CPU处理器内部的APP_RUN程序代码,且该APP_FACTORY在写入了工厂版本的设备程序代码后,进行只读写保护操作,保证设备程序升级过程中,不会被修改掉,保证设备无论出现什么问题,都有一个可靠的程序版本可用于恢复;2、APP1、APP2,占用的空间和APP_FACTORY一样都是256KByte;3、保留,程序存储器余下的1280KByte空间可以进行保留或者用于存储物联网设备的其他功能数据存储用。
物联网设备程序升级是的程序数据传输分为(如图15、图16、图17所示):
1、有线Ymodem协议传输,对于由新程序编译PC计算机编译出来的每个新程序,可以通过PC计算机的RS232通信接口和升级接受设备进行有线通信,通过PC计算机的超级终端的Ymodem协议完成新升级程序的传输;如图15所示;
2、无线TFTP协议传输,对于两个无线物联网设备的程序升级,可以通过无线通信接口,利用TFPT传输协议完成新升级程序的传输;如图16所示;
3、远程网络自定义数据块协议传输,对于通过GPRS、4G、以太网等远程网络进行连接管理的物联网设备,可以通过自定义的数据块协议进行远程升级,通过远程网络以自定义数据块的方式将新升级程序发送给升级接受设备,然后启动程序升级流程,实现设备的远程程序升级;如图17所示;
本具体实施方式的有线Ymodem协议传输交互流程(如图18所示):1、PC计算机发送Request请求给升级接受设备;2、升级接受设备回应ACK给PC计算机;3、PC计算机通过超级终端向升级接受设备发送新程序文件Send File;4、升级接受设备进行程序升级预处理Update Program;5、升级接受设备向PC计算机回应Receive File ACK应答;有线Ymodem协议传输可以在BOOT代码和APP_RUN代码中进行。
无线TFTP协议传输交互流程(如图19所示):1、升级发送设备向升级接受设备发送SendFile Request请求;2、升级接受设备回应ACK应答;3、升级发送设备连续进行文件包发送,Send File Pack1~n;4、升级接受设备完成升级程序文件接受后,回应成功应答ReceiveFILE Success ACK;4、升级发送设备给升级接受设备发送Updata Request程序升级请求;5、升级接受设备进行程序升级预处理Update Program;6、升级接受设备完成程序升级预处理后,向升级发送设备答应Updata ACK;无线TFTP协议传输可以在BOOT代码和APP_RUN代码中进行。
远程网络自定义数据块协议传输交互流程(如图20所示):1、设备管理服务器向升级接受设备发送Send File Request;2、升级接受设备应答ACK;3、升级发送设备连续进行数据块发送,Send Data Pack1~n;4、期间升级设备向设备管理服务器应答数据块接受标志Receive Data Flag ACK;5、升级发送设备继续进行数据块发送,Send Data Pack n+1~m;6、升级设备向设备管理服务器应答数据块接受标志Receive Data Flag ACK;7、升级接受设备接受完新程序文件后,会给设备管理服务器一个文件传输成功应答Receive FileSuccess ACK;8、设备管理服务器给升级接受设备发送Updata Request程序升级请求;5、升级接受设备进行程序升级预处理;6、升级接受设备完成程序升级预处理后,向设备管理服务器答应Updata ACK;远程网络自定义数据块协议传输只能在APP_RUN代码中进行。
远程网络自定义数据块协议传输交互流程中,升级接受设备在接受数据块时,会进行记时处理,每间隔1~60秒会自动回复一个Receive Data Flag ACK应答,本实施例默认选取间隔为3秒,超过60秒没有没有收到后续数据块时,则升级接受设备会自动退出远程网络自定义数据块协议传输流程,并给出一个接受超时Receive File TimeOut ACK应答。本发明在新程序升级过程中为了保证新程序升级的可靠性,存在数据存储校验和数据传输校验两种校验需求,除Ymodem协议和TFTP协议自有的校验方式外,其他所有的校验需求都采用相同的CRC16校验多项式进行校验,本发明的校验多项式采用x^16+x^15+x^2+1进行CRC16校验计算;
本发明在进行新程序设计时,升级发送设备和升级接受设备在急性升级程序交互过程中会有大量的命令和数据通过通信接口进行交换,本实施例为了保证命令和数据在交互过程中的可靠性,定义了固定的通信帧格式(如图21所示):1、CmdHead帧头,占用2字节,固定取值为0xEEEE55AA;2、CmdAdd命令地址,用于升级发送设备给升级接受设备发送命令时,指定对那个设备发送指令,取值为0xFFFF时,表示对所有设备发送指令,可用于批量程序升级;3、CmdValue命令字,表示升级发送设备给升级接受设备发送的是哪一种命令;4、CmdLen命令长度,用于表示从CmdHead帧头到CmdCrc校验码的命令帧的长度;5、CMD DATA命令数据,该部分为命令字的数据内容;6、CmdCrc校验码为整个命令的校验码;本发明通过CmdAdd命令地址能够方便的实现无线通信接口时,对某个指定的升级接受设备进行新程序升级,或者所有程序设备进行新程序升级。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (14)
1.一种物联网设备程序升级的方法,其特征在于:它包括升级发送设备和升级接收设备;升级发送设备与升级接收设备无线或有线连接;升级发送设备存储待升级的新程序,通过有线通信接口或者无线通信接口将待升级的新程序发送到升级接收设备中,用于升级接收设备的程序更新升级。
2.根据权利要求1所述的一种物联网设备程序升级的方法,其特征在于:升级接收设备通过有线通信接口或者无线通信接口接收新程序代码,通过内部的程序升级启动机制、程序升级代码复制擦写机制、新程序启动确认机制、升级失败错误处理机制进行新程序的升级和程序升级的异常处理。
3.根据权利要求1所述的一种物联网设备程序升级的方法,其特征在于:所述升级发送设备和升级接收设备包括:一、设备程序运行CPU处理器,用于物联网设备程序的运行;二、程序存储器用于存储升级发送设备发送过来的新程序;三、通信接口用于从升级发送设备接收待升级的新程序。
4.根据权利要求3所述的一种物联网设备程序升级的方法,其特征在于:所述CPU处理器中的内部程序空间划分为三个部分:一、BOOT启动代码空间,用于存储物联网设备的程序启动和程序升级;二、APP_RUN程序代码空间,用于存储物联网设备运行的APP应用程序,完成物联网设备功能执行;三、CONFIG参数配置空间,用于存储物联网设备在进行升级过程中的程序升级状态和标志,便于判断新程序升级是否成功,是否需要回退到原始的旧的程序中。
5.根据权利要求3所述的一种物联网设备程序升级的方法,其特征在于:所述程序存储器空间划分为三个APP部分:一、APP_FACTORY,用于存储物联网设备出厂时的应用程序代码,该存储空间为只读保护模式,不可擦除和修改;二、APP1、APP2,用于交替存储升级过程中新的应用程序代码,若当前运行的程序放在APP1区时,则新的升级程序存储到APP2区;升级完成后重启,运行存放在APP2区的程序,再次进行新的升级时,新程序放在APP1区;以此类推交替使用APP1和APP2区作为当前应用程序和新升级程序的存储区,该存储空间内容可以擦除、修改、重写;所述程序存储器空间存储的三个APP空间包括升级程序头部和程序二进制内容两个部分;空间大小为CPU处理器中的内部程序空间中的APP_RUN程序代码空间大小+4K Byte;其中升级程序头部大小为512~4096Byte,默认取值为512Byte。
6.根据权利要求5所述的一种物联网设备程序升级的方法,其特征在于:所述程序存储器空间存储的三个APP空间的程序二进制内容,用于存储设备程序升级的可执行的二进制代码;所述程序存储器空间存储的三个APP空间的升级程序头部格式为:
(a)、Head,用于表示APP空间的起始部分,固定取值为两个0xFFFFFFFF,占用8Byte;
(b)、AppLen,存储程序二进制内容的字节长度,占用8Byte,前4Byte存储长度值,后4Byte存储长度值的二进制取反;
(c)、AppCRC,存储程序二进制内容的CRC校验码,用于校验程序二进制文件是否正确,占用4Byte,前2Byte存储校验码,后2Byte存储校验码实际值的二进制取反;
(d)、AppVer,存储程序二进制内容中的APP程序的版本信息,便于进行APP程序版本管理,占用8Byte;
(e)、保留,占用228 Byte空间,用于保证程序代码存储格式的空间对齐以及后续升级程序二进制内容的扩展标识使用,可以扩展存储程序二进制文件的文件名、程序升级的时间、程序应用的设备类型等;
(f)、数据块标志,在进行升级程二进制数据传输过程中,用于记录数据块的正确性,每一个bit表示一个数据块,取值为0时表明该数据块不可用,取值为1是表明该数据块正确写入APP空间并校验正确。
7.根据权利要求4所述的一种物联网设备程序升级的方法,其特征在于:所述CPU处理器中的内部程序空间中的CONFIG参数配置空间用于存储程序升级过程中各种标志,各标志的存储格式说明如下:
(a)、WdgReset,用于记录CPU处理器中watchdog看门狗单元重启物联网设备程序的次数;物联网设备每次加电启动或者复位启动后,首先运行BOOT启动代码空间中的二进制代码,检查是否由watchdog看门狗单元复位CPU启动,若是则WdgReset加1,当WdgReset≥3时,表明当前APP_RUN程序代码空间中存储的程序代码处于异常,需要恢复到升级前的应用程序;
(b)、FailCnt,记录物联网设备程序运行失败次数,BOOT启动代码在每次程序升级时,从程序存储器空间将要升级的程序代码复制到APP_RUN程序代码空间后将该标志置1,表示需要进行程序升级成功确认,随后调用启动函数,启动APP_RUN程序代码空间的新程序,新程序启动确认机制对程序各项功能进行自检,自检成功后,通过将该标志置为0进行升级成功确认,若新程序不能自检完成,CPU处理器再次重新启动进入BOOT启动代码后,BOOT启动代码将该标志加1,并检测该值是否≥3,若是则表示新程序不能正常进行功能自检,需要恢复到升级前的应用程序;
(c)、AppIndex,用于记录当前APP_RUN程序代码空间中存储的设备程序是程序存储器中的那一个空间中的程序,AppIndex=0,表示存储的是APP_FACTORY空间中的程序,AppIndex=1表示存储的是APP1空间中的程序,AppIndex=2表示存储的是APP2空间中的程序;
(d)、AppLEN,用于记录当前APP_RUN程序代码空间中存储的设备程序的大小;
(e)、AppCRC,用于记录当前APP_RUN程序代码空间中存储的设备程序的CRC校验码;
(f)、Valid1和Valid2表示程序存储器空间中存储的APP1和APP2的程序是否有效,Valid1=0表示程序存储器中APP1存储空间无升级代码,Valid1=2表示为有可升级代码,由程序升级代码传输及校验机制进行赋值;Valid1=1表示代码升级后校验出现错误或者异常,该存储空间升级代码不可用,由升级失败错误检查机制检查赋值;同理Valid2=0表示程序存储器中APP2存储空间无升级代码,Valid2=2表示为有可升级代码,由程序升级代码传输及校验机制进行赋值;Valid2=1表示代码升级后校验出现错误或者异常,该存储空间升级代码不可用,由升级失败错误检查机制检查赋值;
(g)、Reserve,为保留填充区域,用于升级标志扩展使用,大小为CPU处理器中的内部程序空间扇区大小-40Byte,以保证参数配置空间大小正好为一个CPU处理器中的内部程序空间扇区大小,方便升级时标志的修改;
(h)、UpCfg,用于记录设备是否需要重启进入新程序擦写模式,取值UpCfg=0xE5EA55AA表示采用出厂程序APP_FACTORY空间中的程序做为物联网设备的运行程序,取值UpCfg=0xE5EA5555表示采用出厂程序APP1空间中的程序做为物联网设备的运行程序,取值UpCfg=0xE5EAAAAA表示采用出厂程序APP2空间中的程序做为物联网设备的运行程序;
所述CPU处理器中的内部程序空间中的参数配置空间为了保证存储的各种标志的正确性,标志WdgReset、FailCnt、Valid1、Valid2、AppIndex、AppCRC采用4 Byte进行存储,每个标志的前2Byte存储标志的实际值,后2Byte存储标志的实际值的二进制取反;标志AppLEN、UpCfg采用8 Byte进行存储,前4Byte存储标志的实际值,后4Byte存储标志的实际值的二进制取反;CPU处理器中的内部程序空间和程序存储器空间中的程序代码和数据全部以4字节对齐存储,程序代码的传输和存储过程中的CRC校验全部以CRC16进行校验。
8.根据权利要求1所述的一种物联网设备程序升级的方法,其特征在于:所述物联网设备程序升级包括:(a)、程序升级代码传输校验机制;(b)、程序升级代码启动运行机制;(c)、程序升级代码擦写复制机制;(d)、程序升级代码启动确认机制;(e)、升级失败错误检查机制共5个步骤;其中程序升级代码传输及校验机制、程序升级代码启动确认机制2个机制在APP_RUN程序代码中执行,程序升级代码传输校验机制、程序升级代码启动运行机制、程序升级代码擦写复制机制、升级失败错误检查机制4个机制在BOOT启动代码中执行。
9.根据权利要求8所述的一种物联网设备程序升级的方法,其特征在于:所述程序升级代码传输校验机制,具体步骤为:
(a)、升级发送设备向升级接收设备发送升级指令UpDateFileStart及参数,指令参数包含AppLen、AppCRC、AppVer;
(b)、升级接收设备接收到升级指令UpDateFileStart及参数后,读取CONFIG参数配置空间中的Valid1、Valid2、AppIndex三个标志,从程序存储器空间中选择一个APP空间存储即将传输过来的升级程序二进制内容,选择好一个合适的新程序存储空间后,擦除该存储空间的数据,将AppLen、AppCRC、AppVer存储在升级程序头部,将相对应的Valid1或Valid2标志赋值为0;
(c)、升级接收设备给升级发送设备回复一个UpDateFileReady指令,通知升级发送设备已经准备好接受升级程序;
(d)、升级发送设备接收到回应的UpDateFileReady指令后,通过有线通信接口或者无线通信接口向升级接收设备发送新升级程序二进制数据;
(e)、升级发送设备发送完毕新升级程序二进制数据后,给升级接收设备发送一个UpDateFileDone指令,表示升级程序二进制数据传输完成;
(f)、升级接收设备利用APP空间中的AppLen、AppCRC校验对新升级程序进行校验,校验正确后,升级接收设备将CONFIG参数配置空间中相对应的Valid1或者Valid2标志赋值为2,表示该空间中的程序有效可以进行程序升级;若升级程序校验错误,升级接收设备将CONFIG参数配置空间中相对应的Valid1或者Valid2标志赋值为0;
(g)、升级接收设备完成程序升级代码接收及校验后给升级发送设备回应一个UpDateFileSave指令+APP编号参数+Valid1或者Valid2标志,通知升级发送设备接收升级程序数据是否正确;
(h)、升级发送设备除了对升级接收设备进行新升级程序传输外,还可以通过UpDateFileGet指令查询升级接收设备外部存储器中三个APP空间中存储的程序的版本信息,升级接收设备通过UpDateFileGet指令+版本信息向升级发送设备回复程序版本信息。
10.根据权利要求8所述的一种物联网设备程序升级的方法,其特征在于:所述升级发送设备向升级接收设备发送新升级程序二进制数据,在有线通信接口进行新程序升级时,采用Ymodem数据传输协议进行数据传输,在无线通信接口进行新程序升级时,采用TFTP数据传输协议或者采用自定义数据块的方式进行数据传输;自定义数据块进行数据传输可以连续传输也可以间断性传输,升级发送设备每传输若干个数据块后,升级接收设备对数据块进行校验后会给升级发送设备接收确认信号,保证每个数据块的正确性。
11.根据权利要求8所述的一种物联网设备程序升级的方法,其特征在于:所述程序升级代码擦写复制机制,具体步骤为:
(a)、升级接收设备在进行APP_RUN程序代码复制前,检查UpCfg参数,选择程序存储器空间中的APP程序空间,读取APP程序空间中升级程序头部中的Head、AppLen、AppCRC、AppVer进行参数检查;判断Head是否为固定值0xFFFFFFFF,AppLen长度是否超出APP_RUN程序代码空间大小,并且检查APP程序空间中代码CRC校验正确,若参数错误则退出程序升级代码擦写复制机制,返回错误码-1;
(b)、调用CPU处理器中的内部程序空间解锁指令,解锁APP_RUN程序代码空间,擦除APP_RUN程序代码空间数据;
(c)、根据需要复制的外部存储器空间的编号对CONFIG配置参数中的AppIndex进行赋值;并将升级程序头部中的AppLen、AppCRC赋值给CONFIG配置参数中AppLen、AppCRC;WdgReset赋值为0;
(d)、根据AppLen参数循环将外部存储器空间中的APP程序代码复制到APP_RUN程序代码空间;
(e)、新程序代码复制完毕后进行CRC校验计算,生成APP_RUN程序代码空间中程序代码的校验值AppRunCRC,比较计算出的校验值和CONFIG配置参数中的AppCRC值;
(f)、校验值不相同则说明APP程序代码复制错误,重复步骤2~5重新进行APP程序代码复制,连续重复复制3次,将FailCnt赋值为3,并返回错误代码-2;
(g)、校验值相同则说明APP程序代码复制正确,将FailCnt赋值为1,返回正确码0;
(h)、清除升级标志UpCfg赋值为0x00000000,然后退出擦写复制机制。
12.根据权利要求8所述的一种物联网设备程序升级的方法,其特征在于:所述程序升级代码启动运行机制,具体步骤为:
(a)、升级发送设备向升级接收设备发送UpRunStart指令,指令参数为外部存储器中三个APP空间的需要;
(b)、升级接收设备接收到UpRunStart指令后,对CONFIG参数配置空间中的UpCfg进行赋值,随后升级接收设备给升级发送设备回复UpRunStart命令应答,并调用重启模块进行设备重启;
(c)、升级接收设备重启后,首先进入BOOT启动代码空间,运行BOOT启动代码;
(d)、BOOT启动代码启动后,首先初始CPU处理器的看门狗电路,然后进行有线通信接口或者无线通信接口的驱动初始,然后延迟等待3秒钟,监听通信接口指令;3秒钟没有指令则继续执行BOOT启动代码,3秒钟内接收到通信接口指令后,优先执行通信接口指令,如接受到UpDateFileStart指令,则进入程序升级代码传输及校验机制进行新程序的传输和校验;
(e)、升级接收设备读取CONFIG参数配置后,检查UpCfg参数,判断是否需要调用程序升级代码擦写复制机制进行新程序复制和升级,若UpCfg=0xE5EA55AA则将APP_FACTORY空间中的程序复制到APP_RUN程序代码空间,若UpCfg=0xE5EA5555则将APP1空间中的程序复制到APP_RUN程序代码空间,若UpCfg=0xE5EAAAAA则将APP2空间中的程序复制到APP_RUN程序代码空间;
(f)、升级接收设备复制完毕新程序数据后,判断复制结果,新程序复制正确,则BOOT启动代码调用跳转指令,直接执行APP_RUN程序代码,启动新的升级程序,由新升级程序完成启动确认;若新程序复制错误,则设备重启,进入BOOT启动代码,由升级失败错误检查机制进行错误处理;
(g)、升级接收设备读取CONFIG参数配置后,检查UpCfg参数,若不需要进行程序升级则进行升级失败错误检查机制进行升级失败错误检查;
(h)、执行完毕升级失败错误检查机制后,BOOT启动代码调用跳转指令,执行APP_RUN程序代码。
13.根据权利要求8所述的一种物联网设备程序升级的方法,其特征在于:所述程序升级代码启动确认机制,用于新程序功能自检,新程序功能自检通过后,将FailCnt参数赋值为0,以进行新程序启动确认,新程序功能自检包含程序版本信息检测、硬件功能检测、软件功能检测、通信指令检测四个部分;新程序启动确认分为程序自动确认和远程管理通信确认两种模式;程序自动确认是对版本信息检测、硬件功能检测、软件功能检测、通信指令检测四个部分全部进行检测正确无误后来进行新程序启动确认;远程管理通信确认是通过与远程管理服务器进行通信,由远程管理服务器来进行新程序启动确认。
14.根据权利要求8所述的一种物联网设备程序升级的方法,其特征在于:所述升级失败错误检查机制,具体步骤为:
(a)、升级接收设备进入升级失败错误检查机制后,判断设备启动是否为watchdog看门狗单元启动,是则将CONFIG参数配置空间的WdgReset参数加1;
(b)、判断WdgReset是否大于等于3,若大于等于3则判定新升级程序异常,启动恢复升级前的应用程序;
(c)、判断FailCnt参数是否为0,若不为0,则将FailCnt参数加1;
(d)、判断FailCnt参数是否大于等于3,若大于等于3则判定新升级程序无法进行启动确认,需要恢复升级前的应用程序;
(e)、判断是否需要恢复升级前的应用程序,若不需要则直接退出升级失败错误检查机制;
(f)、若需要恢复升级前的应用程序,读取AppIndex参数,确认当前APP_RUN空间中运行的是那个APP空间中的程序;
(g)、若AppIndex==0,表明当前运行的是工厂程序,直接退出;
(h)、若AppIndex==1,则将Valid1赋值为1,标识APP1代码不可用;继续判断Valid2==2,则恢复APP2空间的代码,UpCfg赋值0xE5EAAAAA;若Valid2≠2则恢复APP_FACTORY空间的代码,UpCfg赋值0xE5EA55AA;
(i)、若AppIndex==2,则将Valid2赋值为1,标识APP2代码不可用;继续判断Valid1==2,则恢复APP1空间的代码,UpCfg赋值0xE5E5555;若Valid1≠2则恢复APP_FACTORY空间的代码,UpCfg赋值0xE5EA55AA;
(j)、设备重启,重新进入BOOT代码空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811186498.XA CN109189445B (zh) | 2018-10-12 | 2018-10-12 | 一种物联网设备程序升级的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811186498.XA CN109189445B (zh) | 2018-10-12 | 2018-10-12 | 一种物联网设备程序升级的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109189445A true CN109189445A (zh) | 2019-01-11 |
CN109189445B CN109189445B (zh) | 2022-03-15 |
Family
ID=64948081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811186498.XA Active CN109189445B (zh) | 2018-10-12 | 2018-10-12 | 一种物联网设备程序升级的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109189445B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378084A (zh) * | 2019-07-22 | 2019-10-25 | 北京顶象技术有限公司 | 应用程序保护方法、装置、计算机设备及存储介质 |
CN111417114A (zh) * | 2020-03-16 | 2020-07-14 | 纳瓦电子(上海)有限公司 | U-boot下基于网口自动升级的方法 |
CN111722856A (zh) * | 2019-03-19 | 2020-09-29 | 上海汽车集团股份有限公司 | 车载微控制器中固件的升级方法和装置 |
CN112104487A (zh) * | 2020-08-31 | 2020-12-18 | 北京智芯微电子科技有限公司 | 物联网终端的远程升级方法、物联网主站及存储介质 |
CN112148320A (zh) * | 2019-06-26 | 2020-12-29 | 顺丰科技有限公司 | 一种应用程序升级方法、装置、设备及存储介质 |
CN112241283A (zh) * | 2020-10-30 | 2021-01-19 | 深圳市广和通无线股份有限公司 | 软件升级方法、装置、计算机设备和存储介质 |
CN112433775A (zh) * | 2019-08-20 | 2021-03-02 | 比亚迪股份有限公司 | 启动应用程序的方法、装置、存储介质和电子设备 |
WO2021036917A1 (zh) * | 2019-08-28 | 2021-03-04 | 阿里巴巴集团控股有限公司 | 物联网设备中的***升级方法、装置、设备及存储介质 |
CN112732290A (zh) * | 2020-12-28 | 2021-04-30 | 青岛海尔科技有限公司 | 设备升级方法、装置、存储介质及电子装置 |
CN112988206A (zh) * | 2021-03-26 | 2021-06-18 | 东莞市峰谷科技有限公司 | 一种不影响应用程序调试的BootLoader方法 |
CN115102856A (zh) * | 2022-05-24 | 2022-09-23 | 福建星云电子股份有限公司 | 一种物联网设备升级方法及*** |
WO2022241918A1 (zh) * | 2021-05-19 | 2022-11-24 | 武汉天喻信息产业股份有限公司 | 一种物联网设备远程升级方法及装置 |
CN117873540A (zh) * | 2024-03-13 | 2024-04-12 | 成都星联芯通科技有限公司 | 前面板升级流程优化方法 |
CN118012465A (zh) * | 2024-03-12 | 2024-05-10 | 镁佳(北京)科技有限公司 | 一种ecu固件自动回滚方法、装置、设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100771995B1 (ko) * | 2006-09-21 | 2007-10-31 | 삼성전자주식회사 | 복합 기능 무선 단말기에서 펌웨어 갱신 장치 및 방법 |
CN101650662A (zh) * | 2009-08-26 | 2010-02-17 | 中兴通讯股份有限公司 | 一种嵌入式***的存储器件、固件启动及升级方法 |
CN102136934A (zh) * | 2010-10-21 | 2011-07-27 | 华为技术有限公司 | 实现Zigbee设备远程升级的方法、装置及网络*** |
CN102314369A (zh) * | 2011-10-09 | 2012-01-11 | 杭州先锋电子技术股份有限公司 | 一种远程在线监控***中设备自升级方法 |
WO2012087533A1 (en) * | 2010-12-21 | 2012-06-28 | Qualcomm Incorporated | Minimizing resource latency between processor application states in a portable computing device by using a next-active state set |
CN103530146A (zh) * | 2013-09-16 | 2014-01-22 | 成都交大光芒科技股份有限公司 | 低功耗嵌入式设备远程无线升级方法 |
CN104820591A (zh) * | 2015-04-27 | 2015-08-05 | 柳州市网中网络策划中心 | 一种通用自主升级软件的开发方法 |
CN105573810A (zh) * | 2016-03-23 | 2016-05-11 | 重庆邮电大学 | 一种无线传感器网络节点远程升级方法及装置 |
CN107153559A (zh) * | 2017-05-19 | 2017-09-12 | 北京有初科技有限公司 | 一种电子设备的应用程序升级方法 |
CN107193583A (zh) * | 2017-04-07 | 2017-09-22 | 惠州市天泽盈丰物联网科技股份有限公司 | 后台在线升级设备程序方法 |
CN107222553A (zh) * | 2017-06-26 | 2017-09-29 | 深圳市智物联网络有限公司 | 通过物联网适配器升级设备的方法、***及物联网适配器 |
CN107608705A (zh) * | 2017-09-29 | 2018-01-19 | 深圳市瑞科慧联科技有限公司 | 一种无线wifi视频设备及其固件升级方法 |
-
2018
- 2018-10-12 CN CN201811186498.XA patent/CN109189445B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100771995B1 (ko) * | 2006-09-21 | 2007-10-31 | 삼성전자주식회사 | 복합 기능 무선 단말기에서 펌웨어 갱신 장치 및 방법 |
CN101650662A (zh) * | 2009-08-26 | 2010-02-17 | 中兴通讯股份有限公司 | 一种嵌入式***的存储器件、固件启动及升级方法 |
CN102136934A (zh) * | 2010-10-21 | 2011-07-27 | 华为技术有限公司 | 实现Zigbee设备远程升级的方法、装置及网络*** |
WO2012087533A1 (en) * | 2010-12-21 | 2012-06-28 | Qualcomm Incorporated | Minimizing resource latency between processor application states in a portable computing device by using a next-active state set |
CN102314369A (zh) * | 2011-10-09 | 2012-01-11 | 杭州先锋电子技术股份有限公司 | 一种远程在线监控***中设备自升级方法 |
CN103530146A (zh) * | 2013-09-16 | 2014-01-22 | 成都交大光芒科技股份有限公司 | 低功耗嵌入式设备远程无线升级方法 |
CN104820591A (zh) * | 2015-04-27 | 2015-08-05 | 柳州市网中网络策划中心 | 一种通用自主升级软件的开发方法 |
CN105573810A (zh) * | 2016-03-23 | 2016-05-11 | 重庆邮电大学 | 一种无线传感器网络节点远程升级方法及装置 |
CN107193583A (zh) * | 2017-04-07 | 2017-09-22 | 惠州市天泽盈丰物联网科技股份有限公司 | 后台在线升级设备程序方法 |
CN107153559A (zh) * | 2017-05-19 | 2017-09-12 | 北京有初科技有限公司 | 一种电子设备的应用程序升级方法 |
CN107222553A (zh) * | 2017-06-26 | 2017-09-29 | 深圳市智物联网络有限公司 | 通过物联网适配器升级设备的方法、***及物联网适配器 |
CN107608705A (zh) * | 2017-09-29 | 2018-01-19 | 深圳市瑞科慧联科技有限公司 | 一种无线wifi视频设备及其固件升级方法 |
Non-Patent Citations (2)
Title |
---|
丁鹏飞: "STM32 F205 VB在远程***升级中的应用", 《自动化仪表 仪表设计与技巧》 * |
高祥凯等: "基于LoRa技术的网络终端无线程序升级***研究", 《单片机与嵌入式***应用 专题论述》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111722856A (zh) * | 2019-03-19 | 2020-09-29 | 上海汽车集团股份有限公司 | 车载微控制器中固件的升级方法和装置 |
CN111722856B (zh) * | 2019-03-19 | 2024-04-09 | 上海汽车集团股份有限公司 | 车载微控制器中固件的升级方法和装置 |
CN112148320A (zh) * | 2019-06-26 | 2020-12-29 | 顺丰科技有限公司 | 一种应用程序升级方法、装置、设备及存储介质 |
CN110378084A (zh) * | 2019-07-22 | 2019-10-25 | 北京顶象技术有限公司 | 应用程序保护方法、装置、计算机设备及存储介质 |
CN110378084B (zh) * | 2019-07-22 | 2021-06-08 | 北京顶象技术有限公司 | 应用程序保护方法、装置、计算机设备及存储介质 |
CN112433775A (zh) * | 2019-08-20 | 2021-03-02 | 比亚迪股份有限公司 | 启动应用程序的方法、装置、存储介质和电子设备 |
WO2021036917A1 (zh) * | 2019-08-28 | 2021-03-04 | 阿里巴巴集团控股有限公司 | 物联网设备中的***升级方法、装置、设备及存储介质 |
CN111417114B (zh) * | 2020-03-16 | 2023-07-04 | 纳瓦电子(上海)有限公司 | U-boot下基于网口自动升级的方法 |
CN111417114A (zh) * | 2020-03-16 | 2020-07-14 | 纳瓦电子(上海)有限公司 | U-boot下基于网口自动升级的方法 |
CN112104487A (zh) * | 2020-08-31 | 2020-12-18 | 北京智芯微电子科技有限公司 | 物联网终端的远程升级方法、物联网主站及存储介质 |
CN112241283A (zh) * | 2020-10-30 | 2021-01-19 | 深圳市广和通无线股份有限公司 | 软件升级方法、装置、计算机设备和存储介质 |
CN112732290A (zh) * | 2020-12-28 | 2021-04-30 | 青岛海尔科技有限公司 | 设备升级方法、装置、存储介质及电子装置 |
CN112732290B (zh) * | 2020-12-28 | 2023-06-16 | 青岛海尔科技有限公司 | 设备升级方法、装置、存储介质及电子装置 |
CN112988206A (zh) * | 2021-03-26 | 2021-06-18 | 东莞市峰谷科技有限公司 | 一种不影响应用程序调试的BootLoader方法 |
WO2022241918A1 (zh) * | 2021-05-19 | 2022-11-24 | 武汉天喻信息产业股份有限公司 | 一种物联网设备远程升级方法及装置 |
CN115102856A (zh) * | 2022-05-24 | 2022-09-23 | 福建星云电子股份有限公司 | 一种物联网设备升级方法及*** |
CN115102856B (zh) * | 2022-05-24 | 2023-07-07 | 福建星云电子股份有限公司 | 一种物联网设备升级方法及*** |
CN118012465A (zh) * | 2024-03-12 | 2024-05-10 | 镁佳(北京)科技有限公司 | 一种ecu固件自动回滚方法、装置、设备及存储介质 |
CN117873540A (zh) * | 2024-03-13 | 2024-04-12 | 成都星联芯通科技有限公司 | 前面板升级流程优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109189445B (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109189445A (zh) | 一种物联网设备程序升级的方法 | |
CN106569847B (zh) | 一种用于车载***基于移动网络实现iap远程升级的方法 | |
US5276863A (en) | Computer system console | |
CN101650662B (zh) | 一种嵌入式***的存储器件的固件启动及升级方法 | |
US8930931B2 (en) | Information processing apparatus using updated firmware and system setting method | |
US7991988B2 (en) | Communication device and firmware update method thereof | |
US7428663B2 (en) | Electronic device diagnostic methods and systems | |
CN110134415A (zh) | 一种控制器及其软件升级方法和装置 | |
US7941658B2 (en) | Computer system and method for updating program code | |
CN105426198A (zh) | 车载双控制芯片***及其辅助控制芯片程序更新方法 | |
CN109558160A (zh) | 升级方法、嵌入式*** | |
CN105677398A (zh) | 一种通用的嵌入式计算机软件在线升级方法 | |
KR20170040734A (ko) | 업데이트 제어 방법을 갖는 전자 시스템 및 그것의 동작 방법 | |
CN108509215B (zh) | 一种***软件的更换方法、装置、终端设备及存储介质 | |
CN114281394A (zh) | 一种快速在线升级程序的方法、***、设备及介质 | |
CN113905039A (zh) | ***升级文件传输方法、装置及*** | |
CN117687664A (zh) | 一种dsp的在线升级配置方法及装置 | |
CN116755749A (zh) | 板载mcu的升级方法、板载mcu、板卡及信息处理*** | |
CN116301995A (zh) | 基于bootloader架构的固件升级方法 | |
CN113377425B (zh) | Bmc固件生成方法和装置、bmc启动方法和装置及存储介质 | |
CN114968301A (zh) | 一种基于串口通信的程序更新方法和*** | |
CN114546455A (zh) | 一种双分区的mcu软件升级方法及装置 | |
CN114895950A (zh) | 程序和引导层自更新方法及*** | |
CN115437670B (zh) | 基于tftp的汽车控制器程序升级*** | |
CN113553085B (zh) | 嵌入式操作***在线升级的方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |