一种嵌入式设备集群的固件升级方法、装置和系统与流程

文档序号:36171026发布日期:2023-11-24 08:13阅读:32来源:国知局
一种嵌入式设备集群的固件升级方法与流程

本发明涉及固件升级领域,尤其涉及一种嵌入式设备集群的固件升级方法、装置、系统、电子设备、计算机可读存储介质和芯片。


背景技术:

1、随着物联网技术的快速发展及可穿戴式智能设备的普及,在越来越多的应用场景中,需要由多个嵌入式设备组成嵌入式设备集群,共同完成各应用场景下的功能需求。

2、目前,在对嵌入式设备集群中每个嵌入式设备的固件进行升级时,上位机在获取到升级包后,上位机基于蓝牙协议与嵌入式设备集群中的嵌入式设备建立一对一的通信连接,上位机串行对嵌入式设备进行固件升级,使得上位机对嵌入式设备集群中的多个设备进行升级的时候,升级效率低。且所有的待升级嵌入式设备通常会加载同一升级包,该升级包由每个待升级嵌入式设备升级所需的升级资源组合而成。当嵌入式设备集群中的嵌入式设备需要升级的时候,所有需要升级的嵌入式设备都会下载这一升级包中的全部升级资源,使得下载的数据量大、下载效率低,进而导致升级效率低。

3、因此,如何提高嵌入式设备集群的固件的升级效率成了一个亟待解决的问题。


技术实现思路

1、基于上述现状,本发明的主要目的在于提供一种嵌入式设备集群的固件升级方法、装置、系统、电子设备、计算机可读存储介质和芯片,提高了嵌入式设备集群的固件的升级效率。

2、为实现上述目的,本发明采用的技术方案如下:

3、一种嵌入式设备集群的固件升级方法,应用于上位机,该方法包括:s110,接收嵌入式设备集群中的嵌入式设备发送的蓝牙广播包,其中,蓝牙广播包包括第一标识信息,第一标识信息用于标识嵌入式设备的种类;s120,若第一标识信息属于预设多种待升级嵌入式设备中其中一种设备的标识信息,与作为待升级嵌入式设备的嵌入式设备建立ble连接;s130,通过ble将与第一标识信息对应的升级文件发送给待升级嵌入式设备,以使待升级嵌入式设备通过升级文件升级其固件。

4、优选地,嵌入式设备集群具有m个嵌入式设备,其中m为正整数,m≥1;s110包括:s111,接收第i个嵌入式设备发送的蓝牙广播包,其中i为正整数,1≤i≤m,i的初始值为1;s120包括:若第i个嵌入式设备发送的蓝牙广播包中的第一标识信息属于多种待升级嵌入式设备中其中一种设备的标识信息,与作为待升级嵌入式设备的第i个嵌入式设备建立ble连接,对i自加1并转至步骤s111,直至i=m。

5、优选地,在s130之后,该方法还包括:s140,接收由待升级嵌入式设备发送的固件升级完成信息;s150,将待升级嵌入式设备加入已升级设备列表。

6、优选地,蓝牙广播包还包括第二标识信息,第二标识信息用于标识每个嵌入式设备;s150包括:将发送固件升级完成信息的待升级嵌入式设备的第二标识信息加入已升级设备列表;s120包括:s122若第一标识信息属于多种待升级嵌入式设备中其中一种设备的标识信息且第二标识信息不位于已升级设备列表,则与作为待升级嵌入式设备的嵌入式设备建立ble连接。

7、优选地,嵌入式设备集群具有m个嵌入式设备,其中m为正整数,m≥1;s110包括:s112,接收第i个嵌入式设备发送的蓝牙广播包,其中i为正整数,1≤i≤m,i的初始值为1;s122包括:判断第i个嵌入式设备发送的蓝牙广播包中的第一标识信息是否属于多种待升级嵌入式设备中其中一种设备的标识信息;若属于,则判断第i个嵌入式设备发送的蓝牙广播包中的第二标识信息是否位于已升级设备列表;若不位于,则与待升级嵌入式设备的第i个嵌入式设备建立ble连接,对i自加1并转至步骤s112,直至i=m。

8、优选地,升级文件包括前级装载程序和多个子装载程序,前级装载程序用于加载子装载程序,前级装载程序包括与预设多种待升级嵌入式设备对应的多个子装载程序列表,每个子装载程序列表中记录有多个子装载程序标识,多个子装载程序用于升级与记录其标识的列表所对应的待升级嵌入式设备中的多个待升级固件;s130包括:通过ble将前级装载程序发送给待升级嵌入式设备以使待升级嵌入式设备通过与其对应的子装载程序列表中的多个子装载程序标识从多个子装载程序中拉取与其对应的子装载程序,以升级其固件。

9、优选地,在s110之前,该方法还包括:通过big或cig蓝牙通讯方式向嵌入式设备集群发送指令,以使嵌入式设备集群中的嵌入式设备将蓝牙通讯方式从big或cig切换为ble。

10、在本发明实施例中,上位机通过接收嵌入式设备集群中的嵌入式设备发送的蓝牙广播包以实现与嵌入式设备的快速连接;上位机通过与嵌入式设备的ble连接,可以实现快速、稳定的通信,且可以实现对多台嵌入式设备的并行升级;上位机通过第一标识信息将与该待升级嵌入式设备对应的升级文件发送给待升级嵌入式设备以避免待升级嵌入式设备升级时需要接收所有的升级资源,从而提高升级效率。

11、本发明还提供了如下技术方案:

12、一种嵌入式设备集群的固件升级方法,应用于嵌入式设备,该方法包括:s210,发送包含第一标识信息的蓝牙广播包以使上位机根据第一标识信息确定嵌入式设备的种类是否为待升级嵌入式设备中的一种,其中,第一标识信息用于标识嵌入式设备的种类;s220,在上位机识别嵌入式设备为待升级嵌入式设备后,与上位机进行ble连接;s230,通过ble从上位机中获取与第一标识信息对应的升级文件并通过升级文件升级待升级嵌入式设备中的固件。

13、优选地,在s230之后,该方法还包括:s240,通过ble向上位机发送固件升级完成信息以使上位机将嵌入式设备加入已升级设备列表。

14、优选地,s240包括:通过ble向上位机发送固件升级完成信息以使上位机将嵌入式设备的第二标识信息加入已升级设备列表,其中,第二标识信息用于标识每个嵌入式设备;s210包括:发送包含第一标识信息和第二标识信息的蓝牙广播包以使上位机根据第一标识信息、第二标识信息和已升级设备列表确定嵌入式设备为待升级嵌入式设备。

15、优选地,s230包括:s231,通过ble从上位机获取前级装载程序,前级装载程序包括与多种待升级嵌入式设备对应的多个子装载程序列表,每个子装载程序列表中记录有多个子装载程序标识;s232,运行前级装载程序以从多个子装载程序列表中查找到与第一标识信息对应的子装载程序列表;s233,根据子装载程序列表中记录的子装载程序标识,通过ble从上位机中拉取与子装载程序标识对应的子装载程序;s234,运行子装载程序,以升级嵌入式设备中与子装载程序对应的固件。

16、优选地,在s210之前,该方法还包括:通过big或cig蓝牙通讯方式接收来自上位机的指令,基于指令将蓝牙通讯方式从big或cig蓝牙通讯方式切换为ble。

17、优选地,s231包括:s2311,通过ble从上位机获取前级装载程序,并将至少部分前级装载程序存储在可擦写非易失性存储器中;s2312,将前级装载程序加载至ram;s232包括:在ram中运行前级装载程序以从多个子装载程序列表中查找到与第一标识信息对应的子装载程序列表;s233包括:s2332,根据子装载程序列表中记录的子装载程序标识,通过ble从上位机中拉取与子装载程序标识对应的子装载程序;s2334,将与子装载程序标识对应的子装载程序加载至ram中;s234包括:在ram中运行子装载程序,以升级嵌入式设备中与子装载程序对应的固件。

18、优选地,前级装载程序包括第一装载程序和第二装载程序,第二装载程序包括与多种待升级嵌入式设备对应的多个子装载程序列表;s2311包括:s2311a,通过ble从上位机获取第一装载程序,并将第一装载程序存储在可擦写非易失性存储器中;s2311b,运行第一装载程序,以从上位机获取第二装载程序;s2312包括:将第二装载程序加载至ram;s232包括:在ram中运行第二装载程序,以从多个子装载程序列表中查找到与第一标识信息对应的子装载程序列表。

19、优选地,第一装载程序由通信接口代码和第一加载代码组成,其中,通信接口代码用于实现嵌入式设备和上位机的通信接口,第一加载代码用于通过通信接口从上位机获取第二装载程序。

20、优选地,嵌入式设备的固件包括引导程序、应用程序、程序资源中的一个或多个,与嵌入式设备对应的子装载程序列表中按顺序记录有n个子装载程序标识,其中n为正整数,n≥1;s2332包括:根据子装载程序列表中记录的第i个子装载程序标识,通过ble从上位机中拉取第i个子装载程序标识所对应的子装载程序,其中i为正整数,1≤i≤n,i的初始值为1;s2334包括:将第i个子装载程序标识所对应的第i个子装载程序加载至ram中;s234包括:在ram中运行第i个子装载程序,以从上位机中获取与第i个子装载程序对应的第i个固件的升级数据从而升级嵌入式设备中与第i个子装载程序对应的固件;在s234之后,方法还包括s235:对i自加1并转至s2332,直至i=n。

21、优选地,在s2311之后,该方法还包括:在ram中设置标志位,其中,标志位在掉电时会被删除;s232包括:s2321,运行引导程序,以判断ram中是否存在标志位;s2323,若引导程序判断ram中存在标志位,在ram中运行前级装载程序,以从多个子装载程序列表中查找到与第一标识信息对应的子装载程序列表;s2325,若引导程序判断ram中不存在标志位,引导嵌入式设备正常启动;在s235后,方法还包括:s236,删除标志位。

22、优选地,可擦写非易失性存储器的记录区域记录有当前升级进度,s2332包括:在ram中运行前级装载程序,以根据记录区域记录的当前升级进度和子装载程序列表中记录的子装载程序标识从上位机获取相应的第i个子装载程序,其中,相应的第i个子装载程序为当前升级进度下所需执行的下一操作步骤用于升级的第i个固件所对应的子装载程序;s234包括:s2342,在ram中运行第i个子装载程序,根据记录区域记录的当前升级进度,若当前升级进度为第i个固件擦除成功,则执行步骤s2346;若当前升级进度为第i个固件写入成功,则执行s2348;若当前升级进度为无升级状态,则执行s2344;若当前升级进度为第i个固件升级成功,则执行s235;s2344,擦除可擦写非易失性存储器中存储的与第i个子装载程序对应的第i个固件,并在可擦写非易失性存储器的记录区域记录当前升级进度为第i个固件擦除成功;s2346,从上位机中获取该固件的升级数据,将该固件的升级数据存储至可擦写非易失性存储器,并在记录区域记录当前升级进度为第i个固件写入成功;s2348,若校验该固件升级成功,在记录区域记录当前升级进度为第i个固件升级成功;若校验该固件升级失败,在记录区域记录当前升级进度为该固件擦除成功的前一升级进度,前一升级进度为第(i-1)个固件升级成功或无升级状态。

23、优选地,在s234之后s235之前,方法还包括:s2343,在ram中运行前级装载程序,以根据第i个子装载程序标识从上位机中获取与第i个子装载程序对应的第i个校验程序,并将第i个校验程序加载至ram中;s2345,在ram中运行该校验程序,以校验与第i个子装载程序对应的第i个固件的升级是否成功,若成功则执行步骤s235,否则重复执行上一次执行的步骤s2332。

24、优选地,步骤s2332中拉取的当前子装载程序用于更新嵌入式设备中的引导程序;在s2332之后,该方法还包括:s2333,将可擦写非易失性存储器中第一地址存储的引导程序备份至可擦写非易失性存储器中的第二地址。

25、优选地,嵌入式设备的固件包括引导程序以及应用程序和程序资源中的至少一个,与嵌入式设备对应的子装载程序列表中按顺序记录有n个子装载程序标识,其中n为正整数,n≥1,与子装载程序标识对应的每个子装载程序分别用于更新嵌入式设备中与其对应的固件;s232包括:运行前级装载程序以从多个子装载程序列表中查找到与第一标识信息对应的子装载程序列表,前级装载程序用于:根据子装载程序列表中记录的子装载程序标识,通过ble从上位机中拉取与第1个子装载程序标识所对应的第1个子装载程序,第1个子装载程序为引导程序装载程序,引导程序装载程序用于:将可擦写非易失性存储器中第一地址存储的引导程序备份至可擦写非易失性存储器中的第二地址,并擦除第一地址存储的引导程序;从上位机中获取引导程序,将获取的引导程序写入可擦写非易失性存储器;按照与嵌入式设备对应的子装载程序列表中记录的n个子装载程序标识的顺序,依次根据子装载程序列表中记录的子装载程序标识从上位机中拉取剩余的子装载程序,剩余的子装载程序为应用程序装载程序和/或程序资源应用程序,子装载程序用于从上位机中获取与该子装载程序对应的固件的升级数据,将获取的升级数据写入可擦写非易失性存储器。

26、优选地,可擦写非易失性存储器的记录区域用于记录升级进度;引导程序装载程序在将可擦写非易失性存储器中第一地址存储的引导程序备份至可擦写非易失性存储器中的第二地址之前,还用于:在记录区域无记录信息时,判断上位机中引导程序的头部crc码与嵌入式设备的引导程序的头部crc码是否一致;若上位机中引导程序的头部crc码与嵌入式设备的引导程序的头部crc码不一致,执行将可擦写非易失性存储器中第一地址存储的引导程序备份至可擦写非易失性存储器中的第二地址的步骤。

27、优选地,第二地址为可擦写非易失性存储器中n*m字节地址,n为整数,n≥0,m为正整数;该方法还包括:步骤s203,上电后读取可擦写非易失性存储器中j*m字节地址存储的数据,判断读取的数据是否符合可擦写非易失性存储器的头部结构,其中,其中j为正整数,1≤j≤n,j的初始值为1;若读取的数据符合可擦写非易失性存储器的头部结构,执行步骤s205,否则,执行步骤s207;步骤s205,偏移可擦写非易失性存储器的头部长度读取存储于可擦写非易失性存储器的头部之后的引导程序,将该引导程序从可擦写非易失性存储器加载至ram中运行;步骤s207,对j自加1并转至步骤s203,直至j=n。

28、优选地,上位机中包括按顺序排列的n个固件,每个固件的头部包括头部crc码、数据crc码、固件存储地址、固件运行地址和固件长度;从上位机中获取与第i个子装载程序对应的第i个固件的升级数据从而升级嵌入式设备中与第i个子装载程序对应的固件,包括:计算第i个固件的头部的偏移值,第i个固件的头部的偏移值等于上位机中该固件之前的所有固件的固件长度之和;通过第i个固件的头部crc码确定第i个固件的头部的完整性;若第i个固件的头部完整,从上位机中的与第i个固件的固件存储地址对应的地址,读取长度为第i个固件的固件长度的数据,将其写入至可擦写非易失性存储器中的与第i个固件的固件运行地址对应的地址;计算写入可擦写非易失性存储器中的与第i个固件的固件运行地址对应的地址的固件的crc码,将该固件的crc码与上位机中第i个固件的头部中的数据crc码是否一致以校验固件读取是否正确。

29、本发明还提供了如下技术方案:

30、一种嵌入式设备集群的固件升级装置,应用于上位机,该装置包括:接收模块,用于接收嵌入式设备集群中的嵌入式设备发送的蓝牙广播包,其中,蓝牙广播包包括第一标识信息,第一标识信息用于标识嵌入式设备的种类;连接模块,用于若第一标识信息属于预设多种待升级嵌入式设备中其中一种设备的标识信息,与作为待升级嵌入式设备的嵌入式设备建立ble连接;发送模块,用于通过ble将与第一标识信息对应的升级文件发送给待升级嵌入式设备,以使待升级嵌入式设备通过升级文件升级其固件。

31、本发明还提供了如下技术方案:

32、一种嵌入式设备集群的固件升级装置,应用于嵌入式设备,该装置包括:发送模块,用于发送包含第一标识信息的蓝牙广播包以使上位机根据第一标识信息确定嵌入式设备的种类是否为待升级嵌入式设备中的一种,其中,第一标识信息用于标识嵌入式设备的种类;连接模块,用于在上位机识别嵌入式设备为待升级嵌入式设备后,与上位机进行ble连接;处理模块,用于通过ble从上位机中获取与第一标识信息对应的升级文件并通过升级文件升级待升级嵌入式设备中的固件。

33、本发明还提供了如下技术方案:

34、一种嵌入式设备集群的固件升级系统,包括上位机和多个嵌入式设备;嵌入式设备,用于发送包含第一标识信息的蓝牙广播包,其中,第一标识信息用于标识嵌入式设备的种类;上位机,用于接收嵌入式设备发送的蓝牙广播包;上位机,还用于若第一标识信息属于预设多种待升级嵌入式设备中其中一种设备的标识信息,与作为待升级嵌入式设备的嵌入式设备建立ble连接;待升级嵌入式设备,用于与上位机进行ble连接;上位机,还用于通过ble将与第一标识信息对应的升级文件发送给待升级嵌入式设备;待升级嵌入式设备,还用于通过ble从上位机中获取与第一标识信息对应的升级文件并通过升级文件升级待升级嵌入式设备中的固件。

35、本发明实施例还提供了一种电子设备,包括:处理器和存储器,存储器中存储有可执行指令,处理器能执行可执行指令以实现上位机侧所执行的任意实施例中的嵌入式设备集群的固件升级方法,处理器还能执行上述可执行指令以实现嵌入式设备侧所执行的任意实施例中的嵌入式设备集群的固件升级方法。

36、本发明实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一可执行指令,可执行指令被执行时能实现如上位机侧所执行的任意实施例中的嵌入式设备集群的固件升级方法的操作或者如嵌入式设备侧所执行的任意实施例中的嵌入式设备集群的固件升级方法的操作。

37、本发明实施例还提供了一种芯片,适用于电子设备,芯片内存储有指令集,指令集被执行时,能够指示电子设备实现如上在上位机侧执行的嵌入式设备集群的固件升级方法的操作,指示电子设备实现如上在嵌入式设备侧执行的嵌入式设备集群的固件升级方法的操作。

38、本发明的其他有益效果,将在具体实施方式中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1