CN116483408A - 一种固件ota升级方法 - Google Patents
一种固件ota升级方法 Download PDFInfo
- Publication number
- CN116483408A CN116483408A CN202310516714.7A CN202310516714A CN116483408A CN 116483408 A CN116483408 A CN 116483408A CN 202310516714 A CN202310516714 A CN 202310516714A CN 116483408 A CN116483408 A CN 116483408A
- Authority
- CN
- China
- Prior art keywords
- firmware
- ota
- lower computer
- writing
- upgrade
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000005540 biological transmission Effects 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims description 31
- 238000013528 artificial neural network Methods 0.000 claims description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 239000013598 vector Substances 0.000 claims description 13
- 230000003993 interaction Effects 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 11
- 238000012795 verification Methods 0.000 claims description 7
- 238000005520 cutting process Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 238000003062 neural network model Methods 0.000 claims description 3
- 230000011664 signaling Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 abstract description 8
- 230000004048 modification Effects 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 7
- 230000000903 blocking effect Effects 0.000 abstract description 5
- 230000007547 defect Effects 0.000 abstract description 3
- 238000012360 testing method Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 17
- 230000004044 response Effects 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 10
- 238000012546 transfer Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000008485 antagonism Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011076 safety test Methods 0.000 description 1
- 150000003384 small molecules Chemical class 0.000 description 1
- 238000013112 stability test Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Security & Cryptography (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种固件OTA升级方法,属于OTA升级领域,包括以下步骤:上传待升级的固件;判断是否传输固件,若传输固件则进入下一步骤,若不传输则控制下位机重启升级;触发下位机升级;按编号发送固件数据块;判断是否全部写入成功,若未成功则返回上一步骤,若成功则进入下一步骤;校验固件写入情况;文件传输结束;下位机重启升级。本发明,能够不依赖特定固件版本,随时可以升级,不容易出错,可忽略设备上的任意修改,传输有效、无阻塞、可进行块记录校验完整性,从而有效解决现有差分升级技术存在的缺陷。
Description
技术领域
本发明涉及一种OTA升级方法,具体是一种固件OTA升级方法。
背景技术
随着物联网设备智能化的发展,OTA升级已经成为了业界公认的基础能力,而OTA在设计和实现过程中需要依赖于物联网设备的硬件方案。物联网设备主流的硬件方案,其一有直接基于通讯芯片或模块开发的方案,用户升级的主要目标是通讯芯片或模块。其二有通过MCU(Micro Control Unit,微控制器单元)、DSP(Digital Signal Processing/Processor,数字信号处理)、MPU(Micro Processor Unit,微处理器单元)等应用处理器或控制器和各类通讯模块开发的方案,用户升级的主要目标是这些应用处理器或控制器,通讯模块更多是透传管道。这其中,MCU作为主控处理器在物联网领域占着非常高的份额,广泛分布在工业、三表、智能家居等各个领域。
在MCU的OTA升级方式上,部分用户实现方式为差分升级。差分升级的实现方案大多是通过在升级程序(Bootloader为主)中增加差分升级算法来实现,算法需要占用一些本地Flash和RAM(random access memory随机存取存储器)资源。差分升级又叫增量升级,顾名思义就是通过差分算法将源版本与目标版本之间差异的部分提取出来制作成差分包,然后在设备通过还原算法将差异部分在源版本上进行还原从而升级成目标版本的过程。
但是差分升级在升级过程中比较容易出错,流程控制上要求比较严格。依赖于特定固件版本,其他版本固件的设备不能用它升级,一个差分包只能由特定的原包升级到特定的新包,需保证基础包的一致性,若原包数据损毁,得到差分包也无法升级。因此,本领域技术人员提供了一种固件OTA升级方法,以解决上述背景技术中提出的问题。
发明内容
本发明的目的在于提供一种固件OTA升级方法,能够不依赖特定固件版本,随时可以升级,不容易出错,可忽略设备上的任意修改,传输有效、无阻塞、可进行块记录校验完整性,从而有效解决现有差分升级技术存在的缺陷,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种固件OTA升级方法,包括以下步骤:
上传待升级的固件;
判断是否传输固件,若传输固件则进入下一步骤,若不传输则控制下位机重启升级;
触发下位机升级;
按编号发送固件数据块;
判断是否全部写入成功,若未成功则返回上一步骤,若成功则进入下一步骤;
校验固件写入情况;
文件传输结束;
下位机重启升级。
作为本发明进一步的方案:所述固件数据块在发送过程中,通过后台服务器和用户设备之间进行交互判断安全和隐私环境后,利用神经网络生成信道噪声,其中,信息交互分为以下三种情况:第一种情况:若所述信道噪音足以保护服务器覆盖范围内所有设备的隐私和安全,则允许所有设备与服务器之间进行OTA通信,服务器发送神经网络模型通知到设备后,设备利用该神经网络生成本设备特有信道噪声便于服务器进行身份识别,同时利用该信道噪声干扰恶意窃听者;第二种情况:若所述信道噪声不足,则选择能够通过信道噪声保证隐私和安全的设备进行OTA,其他设备为离线;第三种情况:部分设备被选作OTA设备,其他设备被选作干扰器,OTA设备发送神经网络产生的信道噪声和其他设备发送高斯白噪声,以保护隐私和安全。
作为本发明再进一步的方案:在所述OTA通信中,OTA信号需要编解码,其中,编解码过程分为发送端与接收端,在发送端:比特流bits先使用低密度奇偶校验编码器编码成代码字,然后切成自动编码器消息;将代码字c切成发送端的位向量b,然后将这些向量b通过信号发送神经网络映射成符号并通过信道发送;在接收端:信号接收神经网络是信号发送神经网络的逆运算,向量l是指对数似然比的串联向量,该向量被转发到置信传播解码器进行解码。
作为本发明再进一步的方案:所述信道采用OFDM调制,同时通过生成式对抗网络对信道进行加噪声处理。
作为本发明再进一步的方案:所述判断是否全部写入成功的过程中,校验方式采用Modbus RTU协议下的CRC-16校验算法。
作为本发明再进一步的方案:所述校验固件写入情况的过程中,校验方式采用MD5算法。
作为本发明再进一步的方案:通过校验长度字段,告知下位机真实的固件大小,下位机将把该字段的值作为本次烧录的固件的实际长度,在烧录结束后,存入外置Flash的信息区,以便在烧录设备固件时按实际大小进行传输;同时存入的还有MD5值,以供下次升级前核对要升级的固件是否已经下发到下位机中了。
作为本发明再进一步的方案:无论所述固件数据块合法与否,烧写成功与否,下位机在接收数据块传输过程中,可对上位机不予响应。
作为本发明再进一步的方案:各所述固件数据块写入成功与否,采用数据块烧写记录表来表征,数据块烧写记录表是一个字节数等于请求命令中数据块个数的16进制字节串,每个字节的每个比特位代表一个数据块的写入状态,为1表示写入成功,为0表示未写入或写入不成功。
作为本发明再进一步的方案:在所述数据块烧写记录表中,第一个字节的Bit0到Bit7分别代表编号为0到7的数据块的写入状态,第二个字节的Bit0到Bit7分别代表编号为8到15的数据块的写入状态。
与现有技术相比,本发明的有益效果是:
1、本发明使用简单易懂的少量功能码区分升级过程中的不同操作动作,使用CRC、MD5算法进行了多重保障校验,升级过程不依赖特定固件版本,无需考虑旧版本的管理及存储,随时可以升级。不容易出错,可忽略设备上的任意修改,传输有效、无阻塞、可进行块记录校验完整性,能够有效解决现有差分升级技术存在的问题。
2、本发明通过利用神经网络生成信道噪声,针对不同的信息交互情况做出不同的反应,且针对OTA信号进行编解码,有效提高了OTA数据传输的安全性,避免出现恶意窃听者盗取用户的隐私。
附图说明
图1为一种固件OTA升级方法的流程图;
图2为一种固件OTA升级方法中功能码0x01对应的上位机发往下位机的数据格式图;
图3为一种固件OTA升级方法中功能码0x01对应的下位机响应的数据格式图;
图4为一种固件OTA升级方法中功能码0x02对应的上位机发往下位机的数据格式图;
图5为一种固件OTA升级方法中功能码0x02对应的下位机响应的数据格式图;
图6为一种固件OTA升级方法中功能码0x03对应的上位机发往下位机的数据格式图;
图7为一种固件OTA升级方法中功能码0x03对应的下位机响应的数据格式图;
图8为一种固件OTA升级方法中功能码0x04对应的上位机发往下位机的数据格式图;
图9为一种固件OTA升级方法中功能码0x04对应的下位机响应的数据格式图;
图10为一种固件OTA升级方法中数据块烧写记录表对应二进制图;
图11为一种固件OTA升级方法中功能码0x05对应的上位机发往下位机的数据格式图;
图12为一种固件OTA升级方法中功能码0x05对应的下位机响应的数据格式图;
图13为一种固件OTA升级方法中功能码0x06对应的上位机发往下位机的数据格式图;
图14为一种固件OTA升级方法中功能码0x06对应的下位机响应的数据格式图;
图15为一种固件OTA升级方法中信息交互的第一种情况示意图;
图16为一种固件OTA升级方法中信息交互的第二种情况示意图;
图17为一种固件OTA升级方法中信息交互的第三种情况示意图;
图18为一种固件OTA升级方法中OTA信号编解码过程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
正如本申请的背景技术中提及的,发明人经研究发现,现有技术中针对OTA升级部分用户实现方式为差分升级,差分升级在使用时存在一定的不足:在升级过程中比较容易出错,流程控制上要求比较严格。依赖于特定固件版本,其他版本固件的设备不能用它升级,一个差分包只能由特定的原包升级到特定的新包,需保证基础包的一致性,若原包数据损毁,得到差分包也无法升级。
为了解决上述问题,本申请公开了一种固件OTA升级方法,能够不依赖特定固件版本,随时可以升级,不容易出错,可忽略设备上的任意修改,传输有效、无阻塞、可进行块记录校验完整性,从而有效解决现有差分升级技术存在的缺陷。其中,本发明技术方案描述上位机到下位机固件传输方案,上位机根据用户界面的操作,判断升级的目标,以及固件的合法性检查,然后根据图1中的0x01到0x06的功能码进行固件传输操作,而0x01到0x06的功能码具体代表意义为:
功能码0x01:获取固件信息,上位机使用该功能码来获取下位机外置Flash的下位机固件区所存储的固件的MD5值,用于决定是否一定需要传输固件文件。当用户要升级的固件已经存在于下位机外置Flash中对应的固件区,上位机可以不再重复传输文件。其中,上位机发往下位机的命令格式如图2所示。如图3所示,下位机在收到上位机的该功能码后,应读取外置Flash的信息区,获取对应固件区域的固件文件校验值,并给上位机做出响应。图3中响应码的具体定位为:0x00释义成功,表示下位机对应区域存在已经下载完全的固件,且已正确获取到其MD5值;0x01释义失败,表示下位机对应区域存在已经下载完全的固件,但获取不到其MD5值;0x02释义不存在,表示下位机对应区域不存在已经下载完全的固件。当响应码不为0x00时,响应数据中的“MD5值”区域全部用0x00填充。
功能码0x02:下位机固件升级,即上位机使用该功能码来触发下位机的固件升级,下位机接收到该指令后,进入文件传输模式。其中,上位机发往下位机的命令格式如图4所示,上位机将固件分为若干个大小相等(如1024字节)的数据块,不足一个数据块大小的,以0xFF填充(数据块整定),便于数据传输,特殊地,若“数据块个数”为0x0000时,表示不需要传输固件文件,直接采用外置Flash中对应的固件进行升级。下位机在收到上位机的该功能码后,给上位机做出的响应如图5所示。图5中响应码的具体定位为:0x00释义成功,表示下位机已经转入升级模式,做好了升级准备,即将接收来自上位机的文件传输请求。特殊地,当请求命令中的“数据块个数”为0x0000时,表示将立即切换到BOOT区进行升级操作;0x01释义失败,表示下位机有更紧急的任务要完成(如正在给设备更新固件),暂不接受升级任务;0x02释义错误,表示数据块个数和每个数据块的长度相乘过大,无对应缓冲区存储。特殊地,当请求命令中的“数据块个数”为0x0000时,表示无完整的固件。
功能码0x03:发送固件数据块,即上位机将要发送的固件进行整定——将固件划分为若干大小相等的数据块,按“每个数据块长度”的大小,将不足一个数据块的部分以0xFF进行填充,然后逐个数据块发送给下位机。为保证每个数据块在传输过程中的完整性,需对每个数据块进行校验,校验方式采用Modbus RTU协议下的16为CRC校验算法。当上位机使用0x04功能码获知某些数据块需要重发时,依然使用本功能码对未成功写入的数据块进行批量性重发。上位机发往下位机的命令格式如图6所示,数据块内容需与0x21命令中的“每个数据块长度”相吻合,CRC值的2字节,低位在前,高位在后。下位机在收到上位机的该功能码后,对“数据块内容”进行CRC校验,并与“数据块CRC值”进行比较,相等则写入外置Flash的对应固件区域,写入成功后在“数据块烧写记录表”(见功能码0x04)中记录该编号的数据块烧写成功。为保证文件传输速度,减少交互次数,无论该数据块合法与否,烧写成功与否,下位机在该功能码上,均对上位机不予响应。特别地,对于一些通讯情况不太好的下位机,可以对上位机给予响应,以增强稳定性。具体数据帧格式如图7所示,图7中响应码的具体定位为:0x00释义成功,表示下位机已经转入升级模式,做好了升级准备,即将接收来自上位机的文件传输请求。0x01释义失败,表示下位机对该数据块未正确接收,要求重传。上位机需根据下位机的类型,来决定是否预留响应的等待时间。
功能码0x04:查询固件数据块接收信息,即上位机使用该功能码来获取下位机对各数据块的接收写入信息,以便重发没有成功写入的数据块。各数据块写入成功与否,采用“数据块烧写记录表”来表征,它是一个字节数等于请求命令中“数据块个数”的16进制字节串,每个字节的每个比特位代表一个数据块的写入状态,为1表示写入成功,为0表示未写入或写入不成功。第一个字节的Bit0到Bit7分别代表编号为0到7的数据块的写入状态,第二个字节的Bit0到Bit7分别代表编号为8到15的数据块的写入状态,依此类推。若剩余数据块不足一个字节的比特位,则多余的比特位直接置1。上位机发往下位机的命令格式如图8所示,下位机在收到上位机的该功能码后,将实时的“数据块烧写记录表”返回给上位机。特别地,若下位机需要中断或取消烧录,可以将“烧录状态”置1。具体数据帧格式如图9所示,图9中烧录状态的具体定位为:0x00释义成功,表示下位机烧写情况良好,可以继续执行固件更新的任务。0x01释义失败,表示下位机烧写出现问题,要求取消烧录。0x02释义错误,表示下位机不处于升级固件(含自身固件和设备固件)的状态中。“数据块烧写记录表”应用举例:如10个数据块,0,3,6,9四个数据块写入成功,剩余数据块写入失败,则“数据块烧写记录表”2个字节的值应为:0x490xFE,对应二进制表如图10所示。上位机需根据下位机的类型,来决定是否预留响应的等待时间。
功能码0x05:校验固件写入情况,即上位机在传输完所有固件后,使用该功能码来触发下位机对写入的固件进行完整性校验,保证固件在写入时没有出错,校验方式采用文件检验中普遍采用的MD5算法。同时,通过“校验长度”字段,告知下位机真实(未经整定)的固件大小,下位机将把该字段的值作为本次烧录的固件的实际长度,在烧录结束后,存入外置Flash的信息区,以便在烧录设备固件时按实际大小进行传输。同时存入的还有校验值,以供下次升级前核对要升级的固件是否已经下发到下位机中了。上位机发往下位机的命令格式如图11所示。下面对32位的校验值的算法流程进行一些简单的说明。MD5对待加密的字符串的处理是将整个传输的固件分割成每64位为一个分组。如不足64位则进行补位,补位的的方式是先填充一个1,再接着填充0至满64位。规定四个32位变量:A=0x67452301,B=0xefcdab89,C=0x98badcfe,D=0x10325476。规定M[i]为将一组64位再以每4位进行分组的第i个小分子,一共16个小分组。规定常数t[i]为4294967296*abs(sin(i))的整数部分。
规定操作函数:
F(X,Y,Z)=(X&Y)|((~X)&Z)
FF(A,b,c,d,M[j],s,t[i])表示A=b+((A+F(b,c,d)+M[j]+t[i])<<s)
其中“&”是与操作,“|”是或操作,“~”是非操作,“<<”是位左移操作。
每一64位分组进行下列计算:
FF(A,B,C,D,M[0],7,0xd76aa478);
FF(D,A,B,C,M[1],12,0xe8c7b756);
FF(C,D,A,B,M[2],17,0x242070db);
FF(B,C,D,A,M[3],22,0xc1bdceee);
FF(A,B,C,D,M[4],7,0xf57c0faf);
FF(D,A,B,C,M[5],12,0x4787c62a);
FF(C,D,A,B,M[6],17,0xa8304613);
FF(B,C,D,A,M[7],22,0xfd469501);
FF(A,B,C,D,M[8],7,0x698098d8);
FF(D,A,B,C,M[9],12,0x8b44f7af);
FF(C,D,A,B,M[10],17,0xffff5bb1);
FF(B,C,D,A,M[11],22,0x895cd7be);
FF(A,B,C,D,M[12],7,0x6b901122);
FF(D,A,B,C,M[13],12,0xfd987193);
FF(C,D,A,B,M[14],17,0xa679438e);
FF(B,C,D,A,M[15],22,0x49b40821);
处理完所有的64位的分组后,得到一组新的A,B,C,D的值,将这些值按ABCD的顺序级联,就得到32位的校验值。
下位机在收到上位机的该功能码后,应读取外置Flash对应的固件区,进行MD5值计算,并与请求命令中的“MD5值”比较,将比较结果返回给上位机,比较结果的数据如图12所示,图12中校验结果的定义具体为:0x00释义成功,表示下位机将写入的固件全部读出,计算出MD5值,与上位机下发的MD5比较,完全一致。0x01释义失败,表示下位机将写入的固件全部读出,计算出MD5值,与上位机下发的MD5比较,二者不同。
功能码0x06:退出文件传输状态,即上位机使用该功能码来告知下位机退出文件传输状态,并告知退出原因,以便下位机做相应的后续处理。上位机发往下位机的命令格式如图13所示,其中,传输状态的定义具体为:0x00释义成功,表示文件传输完成。0x01释义失败,表示文件传输失败(如最终的文件MD5校验失败)。0x02释义中断,表示用户取消了文件传输。下位机在收到上位机的该功能码后,对上位机做出如下响应如图14所示,当“传输状态”为0x00时,下位机应将相应的信息(如升级标识,固件的实际大小,MD5校验值等)存储到外置Flash的信息区,并进行后续操作(切换到BOOT区升级自身固件),否则,不更新信息区的内容,结束本次文件传输事务。
请参阅图1~18,本发明实施例中,一种固件OTA升级方法,包括以下步骤:
上传待升级的固件;
判断是否传输固件,若传输固件则进入下一步骤,若不传输则控制下位机重启升级;
触发下位机升级;
按编号发送固件数据块;
判断是否全部写入成功,若未成功则返回上一步骤,若成功则进入下一步骤;
校验固件写入情况;
文件传输结束;
下位机重启升级。
在本实施例中:所述固件数据块在发送过程中,通过后台服务器和用户设备之间进行交互判断安全和隐私环境后,利用神经网络生成信道噪声,其中,信息交互分为以下三种情况:第一种情况如图15所示:若所述信道噪音足以保护服务器覆盖范围内所有设备的隐私和安全,则允许所有设备与服务器之间进行OTA通信,服务器发送神经网络模型通知到设备后,设备利用该神经网络生成本设备特有信道噪声便于服务器进行身份识别,同时利用该信道噪声干扰恶意窃听者,mt为多层神经网络,xt为信道噪声;第二种情况如图16所示:若所述信道噪声不足,则选择能够通过信道噪声保证隐私和安全的设备进行OTA,其他设备为离线;第三种情况如图17所示:部分设备被选作OTA设备,其他设备被选作干扰器,OTA设备发送神经网络产生的信道噪声和其他设备发送高斯白噪声,以保护隐私和安全。
在本实施例中:在所述OTA通信中,OTA信号需要编解码,如图18所示,其中,编解码过程分为发送端与接收端,在发送端:比特流bits先使用低密度奇偶校验编码器编码成代码字,然后切成自动编码器消息;将代码字c切成发送端的位向量b,然后将这些向量b通过信号发送神经网络映射成符号并通过信道发送;在接收端:信号接收神经网络是信号发送神经网络的逆运算,“向量l”是指对数似然比的串联向量,该向量被转发到置信传播解码器进行解码。其中,码字c是指使用低密度奇偶校验纠错码代码编码的一系列位;这些代码用于检测和纠正通过噪声信道传输期间可能发生的错误。IE为迭代串联向量,I^E为置信传播误差,I^为解码后的最终信号。需要说明的是,OTA升级是一种使嵌入式系统得以实时升级的技术,因其便利性而被广泛应用于车辆、智能家居等领域。然而,OTA升级过程中的安全问题也引起了广泛关注。攻击者可能利用OTA升级过程中的漏洞,对系统进行非法操作,导致严重的安全后果。OTA升级是一个涉及到网络传输、软件开发和系统部署的复杂过程,安全评估和测试是确保OTA升级安全性的重要手段。下文将介绍OTA升级安全性评估的方法和测试策略:
OTA升级安全性评估可以采用多种方法,包括静态分析、动态分析、模拟攻击、安全测试和漏洞扫描等。下面将对这些方法进行简要介绍:
(1)静态分析:静态分析是通过对OTA升级包的代码、配置文件和文档进行分析,发现其中的潜在安全问题。静态分析可以通过手动分析或者使用自动化工具进行。
(2)动态分析:动态分析是通过运行OTA升级包来分析其行为和特性,发现其中的潜在安全问题。动态分析可以采用模拟器、虚拟机或者实际设备进行。
(3)模拟攻击:模拟攻击是通过模拟攻击者的攻击行为来测试OTA升级包的安全性。模拟攻击可以采用黑盒测试、白盒测试或者灰盒测试进行。
(4)安全测试:安全测试是通过使用各种测试工具和技术来检测OTA升级包的漏洞和安全问题。安全测试可以包括黑盒测试、白盒测试、灰盒测试等多种测试方式。
(5)漏洞扫描:漏洞扫描是通过使用漏洞扫描工具来发现OTA升级包中可能存在的漏洞。漏洞扫描可以采用自动化工具进行。
OTA升级安全性测试策略应该包括以下几个方面:
(1)OTA升级包的合法性和完整性测试:测试OTA升级包是否合法,是否来自于可信的源,并且是否完整,没有被篡改。
(2)OTA升级过程的稳定性测试:测试OTA升级过程是否稳定,是否能够正确地升级目标设备,并且是否会导致系统崩溃或者数据丢失等问题。
(3)OTA升级过程的安全性测试:测试OTA升级过程中是否存在数据泄露、恶意软件注入、拒绝服务等安全问题,并且对可能存在的安全问题进行深入分析和评估。
(4)OTA升级包的安全性测试:测试OTA升级包是否存在漏洞、后门、恶意代码等安全问题,并且对可能存在的安全问题进行深入分析和评估。
(5)OTA升级后系统的功能和安全性测试:测试OTA升级后系统的功能是否正常,是否存在性能问题和安全漏洞,并且对可能存在的问题进行深入分析和评估。
在本实施例中:所述信道采用OFDM调制,同时通过生成式对抗网络对信道进行加噪声处理。
在本实施例中:所述判断是否全部写入成功的过程中,校验方式采用Modbus RTU协议下的CRC-16校验算法。
在本实施例中:所述校验固件写入情况的过程中,校验方式采用MD5算法。
在本实施例中:通过校验长度字段,告知下位机真实的固件大小,下位机将把该字段的值作为本次烧录的固件的实际长度,在烧录结束后,存入外置Flash的信息区,以便在烧录设备固件时按实际大小进行传输;同时存入的还有MD5值,以供下次升级前核对要升级的固件是否已经下发到下位机中了。
在本实施例中:无论所述固件数据块合法与否,烧写成功与否,下位机在接收数据块传输过程中,可对上位机不予响应。
在本实施例中:各所述固件数据块写入成功与否,采用数据块烧写记录表来表征,数据块烧写记录表是一个字节数等于请求命令中数据块个数的16进制字节串,每个字节的每个比特位代表一个数据块的写入状态,为1表示写入成功,为0表示未写入或写入不成功。
在本实施例中:在所述数据块烧写记录表中,第一个字节的Bit0到Bit7分别代表编号为0到7的数据块的写入状态,第二个字节的Bit0到Bit7分别代表编号为8到15的数据块的写入状态。
本发明使用简单易懂的少量功能码区分升级过程中的不同操作动作,使用CRC、MD5算法进行了多重保障校验,升级过程不依赖特定固件版本,无需考虑旧版本的管理及存储,随时可以升级。不容易出错,可忽略设备上的任意修改,传输有效、无阻塞、可进行块记录校验完整性,能够有效解决现有差分升级技术存在的问题。此外,本发明通过利用神经网络生成信道噪声,针对不同的信息交互情况做出不同的反应,且针对OTA信号进行编解码,有效提高了OTA数据传输的安全性,避免出现恶意窃听者盗取用户的隐私。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
以上所述的,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种固件OTA升级方法,其特征在于,包括以下步骤:
上传待升级的固件;
判断是否传输固件,若传输固件则进入下一步骤,若不传输则控制下位机重启升级;
触发下位机升级;
按编号发送固件数据块;
判断是否全部写入成功,若未成功则返回上一步骤,若成功则进入下一步骤;
校验固件写入情况;
文件传输结束;
下位机重启升级。
2.根据权利要求1所述的一种固件OTA升级方法,其特征在于,所述固件数据块在发送过程中,通过后台服务器和用户设备之间进行交互判断安全和隐私环境后,利用神经网络生成信道噪声,其中,信息交互分为以下三种情况:
第一种情况:若所述信道噪音足以保护服务器覆盖范围内所有设备的隐私和安全,则允许所有设备与服务器之间进行OTA通信,服务器发送神经网络模型通知到设备后,设备利用该神经网络生成本设备特有信道噪声便于服务器进行身份识别,同时利用该信道噪声干扰恶意窃听者;
第二种情况:若所述信道噪声不足,则选择能够通过信道噪声保证隐私和安全的设备进行OTA,其他设备为离线;
第三种情况:部分设备被选作OTA设备,其他设备被选作干扰器,OTA设备发送神经网络产生的信道噪声和其他设备发送高斯白噪声,以保护隐私和安全。
3.根据权利要求2所述的一种固件OTA升级方法,其特征在于,在所述OTA通信中,OTA信号需要编解码,其中,编解码过程分为发送端与接收端,在发送端:比特流bits先使用低密度奇偶校验编码器编码成代码字,然后切成自动编码器消息;将代码字c切成发送端的位向量b,然后将这些向量b通过信号发送神经网络映射成符号并通过信道发送;在接收端:信号接收神经网络是信号发送神经网络的逆运算,向量l是指对数似然比的串联向量,该向量被转发到置信传播解码器进行解码。
4.根据权利要求3所述的一种固件OTA升级方法,其特征在于,所述信道采用OFDM调制,同时通过生成式对抗网络对信道进行加噪声处理。
5.根据权利要求1所述的一种固件OTA升级方法,其特征在于,所述判断是否全部写入成功的过程中,校验方式采用Modbus RTU协议下的CRC-16校验算法。
6.根据权利要求1所述的一种固件OTA升级方法,其特征在于,所述校验固件写入情况的过程中,校验方式采用MD5算法。
7.根据权利要求6所述的一种固件OTA升级方法,其特征在于,通过校验长度字段,告知下位机真实的固件大小,下位机将把该字段的值作为本次烧录的固件的实际长度,在烧录结束后,存入外置Flash的信息区,以便在烧录设备固件时按实际大小进行传输;同时存入的还有MD5值,以供下次升级前核对要升级的固件是否已经下发到下位机中了。
8.根据权利要求1所述的一种固件OTA升级方法,其特征在于,无论所述固件数据块合法与否,烧写成功与否,下位机在接收数据块传输过程中,可对上位机不予响应。
9.根据权利要求8所述的一种固件OTA升级方法,其特征在于,各所述固件数据块写入成功与否,采用数据块烧写记录表来表征,数据块烧写记录表是一个字节数等于请求命令中数据块个数的16进制字节串,每个字节的每个比特位代表一个数据块的写入状态,为1表示写入成功,为0表示未写入或写入不成功。
10.根据权利要求9所述的一种固件OTA升级方法,其特征在于,在所述数据块烧写记录表中,第一个字节的Bit0到Bit7分别代表编号为0到7的数据块的写入状态,第二个字节的Bit0到Bit7分别代表编号为8到15的数据块的写入状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310516714.7A CN116483408A (zh) | 2023-05-09 | 2023-05-09 | 一种固件ota升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310516714.7A CN116483408A (zh) | 2023-05-09 | 2023-05-09 | 一种固件ota升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116483408A true CN116483408A (zh) | 2023-07-25 |
Family
ID=87213802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310516714.7A Pending CN116483408A (zh) | 2023-05-09 | 2023-05-09 | 一种固件ota升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483408A (zh) |
-
2023
- 2023-05-09 CN CN202310516714.7A patent/CN116483408A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008757B (zh) | 一种物联网终端固件更新中数据保护方法及系统 | |
RU2680736C1 (ru) | Сервер и способ для определения вредоносных файлов в сетевом трафике | |
US10430586B1 (en) | Methods of identifying heap spray attacks using memory anomaly detection | |
US7707409B2 (en) | Method and system for authenticating software | |
CN104348578B (zh) | 数据处理的方法及装置 | |
CN103152365A (zh) | 对数据进行验证的数据验证方法及服务器 | |
KR20160110275A (ko) | 다이나믹 보안모듈 단말장치 및 그 구동방법 | |
US11550480B2 (en) | Method of identifying errors in or manipulations of data or software stored in a device | |
EP3857846A1 (en) | Electronic controller security system | |
CN113438225B (zh) | 一种车载终端漏洞检测方法、系统、设备及存储介质 | |
CN112506847B (zh) | 多处理器通信方法及系统 | |
CN116483408A (zh) | 一种固件ota升级方法 | |
CN113849859A (zh) | Linux内核的修改方法、终端设备和存储介质 | |
KR100453504B1 (ko) | 소프트웨어 인증 방법 및 시스템 | |
CN112468446B (zh) | 一种保护用户隐私的移动运行环境安全检测系统 | |
CN111460436B (zh) | 一种基于区块链的非结构化数据操作方法和系统 | |
CN114357456A (zh) | 一种安全防护能力检测系统、方法、装置、设备及介质 | |
CN103473487A (zh) | 一种产品的软件网络验证加密方法及其系统 | |
KR102615515B1 (ko) | 차량 can의 공격 기능을 고려하는 적대적 피처 선택 장치 및 방법 | |
KR102606999B1 (ko) | 차량의 피지컬 어택을 위한 적대적 can 패킷화 장치 및 방법 | |
US20240176860A1 (en) | Dynamic Command Protection Method and Dynamic Command Protection System by Using Time-Vary Salt Data | |
CN113076283B (zh) | 文件一致性验证方法、装置及电子设备 | |
CN117648262A (zh) | 模糊测试方法、存储介质和电子装置 | |
Shipman et al. | A Zero Trust Architecture for Automotive Networks | |
CN117978702A (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 |