一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

固件数据处理方法及装置与流程

2022-06-12 03:22:08 来源:中国专利 TAG:


1.本技术涉及固件处理技术领域,特别是涉及一种固件数据处理方法及装置。


背景技术:

2.近年来,无人驾驶异常火热,在众多车载传感器中,毫米波雷达作为一种全天候、高精度的传感器在整车感知中发挥了巨大的作用,提升了无人驾驶技术的精确性和实用性。
3.毫米波雷达的使用过程中,算法软件等方案会时常更新迭代,因此毫米波雷达需要经常进行固件更新,来适应不断迭代的算法。目前,毫米波雷达的固件更新可以通过与上位机设备的数据交互来实现,上位机设备在生成新的固件后,可以建立与毫米波雷达的传输通道,并将固件数据发送至毫米波雷达进行加载更新,以替换毫米波雷达中较旧的固件。
4.但是,目前方案中,由于毫米波雷达使用场景的复杂性,导致固件在传输过程中经常出现数据丢失等异常情况,而目前传输方案对固件传输过程不能提供有效监管,导致固件加载出错的几率大幅上升。


技术实现要素:

5.本技术提供一种固件数据处理方法、装置、摄像模组及可移动设备,可以解决现有技术中对固件传输过程不能提供有效监管,导致固件在传输过程中经常出现数据丢失等异常情况,且固件加载出错的几率大幅上升的问题。
6.第一方面,本技术实施例提供了一种固件数据处理方法,应用于下位机设备,包括:
7.获取上位机设备发送的目标固件的固件分片数据包;所述固件分片数据包中包括数据分片内容,以及按照预设规则生成的对应所述数据分片内容的第一校验码;
8.按照所述预设规则,生成对应获取到的所述固件分片数据包的数据分片内容的第二校验码;
9.根据所述第二校验码和所述第一校验码的校验结果,执行对应的操作。
10.第二方面,本技术实施例提供了一种固件数据处理方法,应用于上位机设备,包括:
11.将目标固件切分为多个具有预设文件大小的固件分片数据包;
12.按照预设规则,生成对应所述固件分片数据包的数据分片内容的第一校验码;
13.将包括所述第一校验码的固件分片数据包发送至所述下位机设备。
14.第三方面,本技术实施例提供了一种固件数据处理装置,应用于下位机设备,包括:存储器和处理器;
15.所述存储器用于,获取上位机设备发送的目标固件的固件分片数据包;所述固件分片数据包中包括数据分片内容,以及按照预设规则生成的对应所述数据分片内容的第一校验码;
16.所述处理器用于,按照所述预设规则,生成对应获取到的所述固件分片数据包的数据分片内容的第二校验码;
17.根据所述第二校验码和所述第一校验码的校验结果,执行对应的操作。第四方面,本技术实施例提供了固件数据处理装置,应用于上位机设备,所述装置包括:处理器;
18.所述处理器用于:
19.将目标固件切分为多个具有预设文件大小的固件分片数据包;
20.按照预设规则,生成对应所述固件分片数据包的数据分片内容的第一校验码;
21.将包括所述第一校验码的固件分片数据包发送至所述下位机设备。
22.第五方面,本技术实施例提供了一种固件数据处理系统,所述系统包括:
23.上位机设备和下位机设备;
24.所述上位机设备用于,将目标固件切分为多个具有预设文件大小的固件分片数据包,并按照预设规则,生成对应所述固件分片数据包的数据分片内容的第一校验码;以及将包括所述第一校验码的固件分片数据包发送至所述下位机设备;
25.所述下位机设备用于,获取上位机设备发送的目标固件的固件分片数据包,并按照所述预设规则,生成对应获取到的所述固件分片数据包的数据分片内容的第二校验码;以及根据所述第二校验码和所述第一校验码的校验结果,执行对应的操作。
26.第六方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质包括指令,当其在计算机上运行时,使得计算机执行上述方面所述的方法。
27.第七方面,本技术提供一种计算机程序产品,所述计算机程序产品包括指令,当其在计算机上运行时,使得计算机执行上述方面所述的方法。
28.第八方面,本技术实施例提供了一种车辆,所述车辆包括:车身;
29.所述的固件数据处理装置,所述固件数据处理装置安装于所述车身。
30.在本技术实施例中,本技术通过获取上位机设备发送的目标固件的固件分片数据包;固件分片数据包中包括数据分片内容,以及按照预设规则生成的对应数据分片内容的第一校验码;按照预设规则,生成对应获取到的固件分片数据包的数据分片内容的第二校验码;根据第二校验码和第一校验码的校验结果,执行对应的操作。本技术可以通过下位机设备对接收到的目标固件的每个固件分片数据包的内容,进行基于校验码的验证,来判断该固件分片数据包是否是正确的数据包,从而识别到传输过程中出现的数据包丢失等异常情况,实现了对固件传输过程的有效监管,降低了传输过程中出错的几率。
附图说明
31.图1是本技术实施例提供的一种固件数据处理系统的系统架构图;
32.图2是本技术实施例提供的一种下位机设备侧固件数据处理方法的流程图;
33.图3是本技术实施例提供的一种上位机设备侧固件数据处理方法的流程图;
34.图4是本技术实施例提供的一种固件数据处理方法的交互步骤流程图;
35.图5是本技术实施例提供的一种固件数据处理装置的框图;
36.图6是本技术实施例提供的另一种固件数据处理装置的框图;
37.图7是本技术实施例提供的车辆的结构框图。
具体实施方式
38.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
39.在无人驾驶、航拍测绘领域,毫米波雷达作为一种全天候、高精度的传感器在整车感知中发挥了巨大的作用,基于毫米波雷达的固件数据处理,本技术实施例提供了一种以毫米波雷达为下位机设备,实现与上位机设备之间的固件数据交互,从而达到上位机设备远程下发新的固件数据,以更新下位机设备中的旧的固件数据的目的,从而使得毫米波雷达适应不断迭代的固件算法。需要说明的是,下位机设备也可以为其他需要进行固件升级、更新的设备,如,激光雷达、车载终端等。
40.在本技术实施例中,参照图1,其示出了本技术实施例提供的一种固件数据处理系统的系统架构图,包括:上位机设备10和下位机设备20,上位机设备10可以为移动终端、服务器等设备,上位机设备10可以存储或生成毫米波雷达的算法更新迭代后产生的固件数据,上位机设备10还可以建立有与下位机设备20之间的有线/无线连接通道,并将固件数据通过连接通道下发至下位机设备20。下位机设备20在接收到完整正确的固件数据后,可以在验证固件数据无误的情况下,加载该固件数据,以通过新的固件进行工作。
41.具体的,针对固件数据的处理过程包括:传输固件数据的过程、下位机设备加载接收完毕的固件数据的过程。在下位机设备20处于较复杂工作环境时,常常会导致与上位机设备10之间的连接通道不稳定,从而造成传输固件数据过程的不稳定,具体体现在传输过程中出现数据丢失、传输完毕时发现传错了固件数据等,另外,在下位机设备20的存储装置出现故障的情况下,也会出现对固件数据加载失败的问题。
42.本技术实施例为了提高对固件数据的传输稳定性的保障,可以由上位机设备将待传输的整个目标固件切分为多个体积较小的固件分片数据包,并在传输过程中持续验证上位机设备和下位机设备针对每个固件分片数据包生成的校验码是否一致,来确定传输过程中是否有固件分片数据包丢失或出错。另外,在传输过程完成后,还可以通过验证上位机设备和下位机设备针对整个目标固件包生成的校验码是否一致,来确定传输的目标固件是否正确,保证传输过程稳定性。最后,下位机设备在加载目标固件的过程中,可以先将目标固件存储在本地的存储空间,再生成从该存储空间提取的目标固件的校验码,并通过验证生成的校验码与上位机设备针对整个目标固件包生成的校验码是否一致,来确定下位机设备是否出现存储失效的问题,从而保证加载稳定性。
43.图2是本技术实施例提供的一种固件数据处理方法的流程图,所述方法,应用于下位机设备,如图2所示,该方法可以包括:
44.步骤101、获取上位机设备发送的目标固件的固件分片数据包;所述固件分片数据包中包括数据分片内容,以及按照预设规则生成的对应所述数据分片内容的第一校验码。
45.在本技术实施例中,上位机设备可以将目标固件切分为多个固定文件大小的固件分片数据包,并按照预设规则,生成对应每个固件分片数据包中的数据分片内容的第一校验码,将包含第一校验码的固件分片数据包依次下发给下位机设备,该第一校验码唯一,用于对其对应的固件分片数据包的数据分片内容的正确与否进行验证,如,一个固件分片数据包的校验码为a,当存在另一个固件分片数据包的校验码为a时,则可以认为这两个固件分片数据包相同。一个固件分片数据包的校验码为a,当存在另一个固件分片数据包的校验码为b时,则可以认为这两个固件分片数据包不相同。
46.具体的,上位机设备可以将待发送的固件分片数据包的数据分片内容转换为k位的二进制序列,并按照预设规则,生成对应该二进制序列的第一校验码,第一校验码也为一个二进制序列,共r位,之后,上位机设备可以将第一校验码附加在k位的二进制序列之后,得到一个k r位的二进制序列并发送给下位机设备。
47.需要说明的是,本技术实施例中涉及的校验码的形式可以为循环冗余校验(cyclic redundancy check,crc)码,crc是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。
48.具体的,循环冗余校验是一种用于校验通信链路上数字传输准确性的计算方法,上位机设备使用某公式计算出被传送数据所含信息的一个值,并将此值附在被传送数据后发送至下位机设备,下位机设备则对同一数据进行相同规则的计算,得到对应的结果。如果这两个crc结果不一致,则说明发送中出现了差错,下位机设备可要求上位机设备重新发送该数据。
49.步骤102、按照所述预设规则,生成对应获取到的所述固件分片数据包的数据分片内容的第二校验码。
50.在本技术实施例中,下位机设备在接收到每个固件分片数据包之后,需要对接收到的固件分片数据包的数据分片内容进行验证,确定内容是否正确。
51.因此,下位机设备可以按照与上位机设备约定一致的预设规则,生成对应固件分片数据包的数据分片内容的第二校验码,以将第二校验码与第一校验码进行比较。
52.具体的,下位机设备在接收到上位机设备发送的一个固件分片数据包时,该固件分片数据包为k r位的二进制序列的形式,下位机设备可以提取反映其数据分片内容的k位的二进制序列,并按照与上位机设备约定一致的预设规则,生成对应该k位的二进制序列的第二校验码,该第二校验码为r位的二进制序列的形式。
53.步骤103、根据所述第二校验码和所述第一校验码的校验结果,执行对应的操作。
54.在本技术实施例中,第二校验码和第一校验码进行校验具有两种校验结果:第二校验码和第一校验码一致、第二校验码和第一校验码不一致,针对这两种校验结果,下位机设备可以分别执行对应的操作。
55.具体的,在第二校验码和第一校验码一致的情况下,说明下位机设备接收到的固件分片数据包与上位机设备发送的固件分片数据包的内容一致,此时下位机设备可以执行继续接收上位机设备发送的下一个固件分片数据包的操作。在第二校验码和第一校验码不一致的情况下,说明下位机设备接收到的固件分片数据包与上位机设备发送的固件分片数据包的内容不一致,此时下位机设备可以认为出现传输错误,并执行向上位机设备报错的操作。
56.可选的,下位机设备为毫米波雷达。在步骤103之后,所述方法还可以包括:
57.步骤104、在接收完毕所述上位机设备发送的所述目标固件的所有固件分片数据包,且完成对所述固件分片数据包的校验码的校验操作的情况下,将当前加载的固件变更为所述目标固件,完成所述毫米波雷达的固件的升级操作。
58.在实际应用中,毫米波雷达作为一种全天候、高精度的传感器在整车感知中发挥了巨大的作用,基于毫米波雷达的固件数据处理,本技术实施例中,下位机设备依次接收上
位机设备发送的每个固件分片数据包,并对固件分片数据包进行基于校验码的验证操作,在所有的固件分片数据包的校验码的校验操作完成并验证正确后,下位机设备可以确认接收到完整正确的目标固件,此时下位机设备可以将当前加载的固件变更为所述目标固件,从而达到上位机设备远程下发新的固件数据,以更新下位机设备中的旧的固件数据的目的,从而使得毫米波雷达适应不断迭代的固件算法。
59.综上,本技术实施例提供的一种固件数据处理方法,通过获取上位机设备发送的目标固件的固件分片数据包;固件分片数据包中包括数据分片内容,以及按照预设规则生成的对应数据分片内容的第一校验码;按照预设规则,生成对应获取到的固件分片数据包的数据分片内容的第二校验码;根据第二校验码和第一校验码的校验结果,执行对应的操作。本技术可以通过下位机设备对接收到的目标固件的每个固件分片数据包的内容,进行基于校验码的验证,来判断该固件分片数据包是否是正确的数据包,从而识别到传输过程中出现的数据包丢失等异常情况,实现了对固件传输过程的有效监管,降低了传输过程中出错的几率。
60.图3是本技术实施例提供的一种固件数据处理方法的具体流程图,所述方法应用于上位机设备,如图3所示,该方法可以包括:
61.步骤201、将目标固件切分为多个具有预设文件大小的固件分片数据包。
62.在本技术实施例中,开发人员可以在上位机设备上开发生成目标固件,上位机设备也可以接收其他设备发送的目标固件,由于目标固件的体积一般较大,为了保证传输过程的稳定性,避免传输过程中出现中断导致需要重新传输整个目标固件,上位机设备可以将目标固件切分为多个具有预设文件大小的固件分片数据包,并将所述固件分片数据包依次发送至下位机设备,当存在某个固件分片数据包发送失败的情况,也仅需重新发送该固件分片数据包,而非重新发送整个目标固件。
63.可选的,所述步骤201还可以通过根据所述预设规则对应的校验码的长度,以及传输所述目标固件的目标误比特率,确定所述预设文件大小的方式进行实现。
64.具体的,本技术实施例提供的固件传输方法可以应用于不同的应用场景中,且不同应用场景传输目标固件时所需求的目标误比特率不同,固件分片数据包的文件大小过大,会导致校验码的生成精确度下降,且传输目标固件时的目标误比特率提高,从而影响传输质量,因此,本技术实施例中,上位机设备可以根据当前应用场景所需求的目标误比特率,以及所采用的校验码的长度,来确定每个的固件分片数据包的文件大小,从而使得传输目标固件时的实际误比特率不会与目标误比特率相差过大。
65.步骤202、按照预设规则,生成对应所述固件分片数据包的数据分片内容的第一校验码。
66.具体的,上位机设备可以将待发送的固件分片数据包的数据分片内容转换为k位的二进制序列,并按照预设规则,生成对应该二进制序列的第一校验码,第一校验码也为一个二进制序列,共r位,之后,上位机设备可以将第一校验码附加在k位的二进制序列之后,得到一个k r位的二进制序列并发送给下位机设备。需要说明的是,本技术实施例中涉及的校验码的形式可以为crc码。
67.步骤203、将包括所述第一校验码的固件分片数据包发送至所述下位机设备。
68.上位机设备将包含第一校验码的固件分片数据包依次下发给下位机设备,该第一
校验码唯一,用于让下位机设备对其接收的固件分片数据包的数据分片内容的正确与否进行验证。
69.综上,本技术实施例提供的一种固件数据处理方法,通过将目标固件切分为多个具有预设文件大小的固件分片数据包;按照预设规则,生成对应固件分片数据包的数据分片内容的第一校验码;将包括第一校验码的固件分片数据包发送至下位机设备。本技术可以通过上位机设备将目标固件切分为多个固件分片数据包,并将每个固件分片数据包对应的第一校验码添加至固件分片数据包中下发给下位机设备,下位机设备对接收到的目标固件的每个固件分片数据包的内容,进行基于校验码的验证,来判断该固件分片数据包是否是正确的数据包,从而识别到传输过程中出现的数据包丢失等异常情况,实现了对固件传输过程的有效监管,降低了传输过程中出错的几率。
70.图4是本技术实施例提供的一种固件数据处理方法的交互步骤流程图,如图4所示,该方法可以包括:
71.步骤301、上位机设备发送包括所述目标固件的第一固件版本号的更新命令至所述下位机设备。
72.在本技术实施例中,可以采用固件版本号来反映固件的新旧程度,当一个固件1的固件版本号1大于另一个固件2的固件版本号2时,说明该固件1为最新的固件。
73.在一种实现方式中,固件版本号的格式包括:xxx.yyyyyyyy.zzz,其中,xxx代表下位机设备的设备型号,yyyyyyyy代表固件发布的日期时间(如20200102表示2020年1月2日),zzz代表固件对应的版本标识。
74.在进行两个固件版本号的比较时,这两个固件版本号的设备型号需一致,固件发布的日期时间较晚的固件版本号大于固件发布的日期时间较早的固件版本号。另外,当两个固件版本号的设备型号、固件发布的日期时间都一致时,具有较大版本标识的固件版本号大于具有较小版本标识的固件版本号。
75.需要说明的是,该第一固件版本号存放的地址是在目标固件的固件数据头,该数据头用于存放目标固件的一些验证信息,在下位机设备最后加载目标固件时不会加载到内存中运行。
76.步骤302、下位机设备获取所述上位机设备发送的更新命令,所述更新命令包括所述目标固件的第一固件版本号。
77.步骤303、下位机设备在所述第一固件版本号,大于所述下位机设备的本地的固件的第二固件版本号的情况下,进入步骤307。
78.在本技术实施例中,下位机设备开始进行固件更新之前,可以先接收上位机设备发送的包括目标固件的第一固件版本号的更新命令,并根据下位机设备的本地的固件的第二固件版本号与第一固件版本号的比较结果,执行对应的操作。
79.具体的,在第二固件版本号小于第一固件版本号的情况下,说明目标固件为新固件,下位机设备可以进一步接收上位机设备下发的目标固件,以进行固件升级。
80.在第二固件版本号大于或等于第一固件版本号的情况下,说明目标固件为旧固件,下位机设备此时并不需要进行固件升级操作。
81.步骤304、上位机设备将目标固件切分为多个具有预设文件大小的固件分片数据包。
82.该步骤具体可以参照上述步骤201,此处不再赘述。
83.步骤305、上位机设备按照预设规则,生成对应所述固件分片数据包的数据分片内容的第一校验码。
84.该步骤具体可以参照上述步骤202,此处不再赘述。
85.步骤306、上位机设备将包括所述第一校验码的固件分片数据包发送至所述下位机设备。
86.该步骤具体可以参照上述步骤203,此处不再赘述。
87.步骤307、下位机设备获取上位机设备发送的目标固件的固件分片数据包。
88.该步骤具体可以参照上述步骤101,此处不再赘述。
89.步骤308、下位机设备按照所述预设规则,生成对应获取到的所述固件分片数据包的数据分片内容的第二校验码。
90.该步骤具体可以参照上述步骤102,此处不再赘述。
91.步骤309、下位机设备在所述第二校验码与所述第一校验码不相同的情况下,向所述上位机设备发送传输报错请求。
92.在本技术实施例中,在第二校验码和第一校验码不一致的情况下,说明下位机设备接收到的固件分片数据包与上位机设备发送的固件分片数据包的内容不一致,此时下位机设备可以认为出现传输错误,并执行向上位机设备报错的操作,发送传输报错请求至上位机设备。
93.步骤310、下位机设备在所述第二校验码与所述第一校验码相同的情况下,继续获取所述上位机设备发送的下一个固件分片数据包。
94.在第二校验码和第一校验码一致的情况下,说明下位机设备接收到的固件分片数据包与上位机设备发送的固件分片数据包的内容一致,此时下位机设备可以执行继续接收上位机设备发送的下一个固件分片数据包的操作。
95.步骤311、上位机设备若获取到所述下位机设备发送的传输报错请求,则停止向所述下位机设备发送所述固件分片数据包。
96.在本技术实施例中,上位机设备可以根据下位机设备发送的传输报错请求,认为传输通道出现了问题,并停止向下位机设备发送固件分片数据包,待问题解除后再恢复传输。恢复传输时,可以对出现传输报错请求时传输的固件分片数据包进行重新发送。
97.可选的,在获取到所述上位机设备发送的所有固件分片数据包,且最后一次获取到的固件分片数据包的第二校验码和第一校验码相同的情况下,所述方法还包括:
98.步骤312、下位机设备按照所述预设规则,生成对应已获取到的所有固件分片数据包的数据分片内容的第三校验码。
99.在本技术实施例中,在上位机设备和下位机设备对目标固件的传输过程中,通过第二校验码和第一校验码的校验操作,可以确定传输的每个固件分片数据包是否有误,在下位机设备接收到上位机设备发送的所有固件分片数据包,且最后一次获取到的固件分片数据包的第二校验码和第一校验码相同的情况下,下位机设备可以按照与上位机设备约定的预设规则,生成对应已获取到的所有固件分片数据包的数据分片内容的第三校验码,该第三校验码用于对下位机设备接收到的整个目标固件的数据内容的正确与否进行验证。
100.步骤313、下位机设备将所述第三校验码发送至所述上位机设备。
101.在生成了第三校验码之后,下位机设备可以将第三校验码发送至上位机设备,以供上位机设备将第三校验码与自身生成的第五校验码进行校验。
102.步骤314、上位机设备获取所述下位机设备发送的第三校验码。
103.步骤315、上位机设备按照所述预设规则,生成对应所述目标固件的所有数据分片内容的第五校验码。
104.在本技术实施例中,在产生目标固件后,上位机设备可以事先基于与下位机设备约定的预设规则,生成对应目标固件的所有数据分片内容的第五校验码。该第三校验码用于反映对上位机设备生成的整个目标固件的数据内容的正确性。
105.步骤316、上位机设备在所述第三校验码与所述第五校验码相同的情况下,发送针对所述第三校验码的确认指令至所述下位机设备。
106.在本技术实施例中,在第三校验码与第五校验码相同的情况下,上位机设备可以认为下位机设备接收到的整个目标固件,与上位机设备下发的整个目标固件内容一致,此时上位机设备发送针对第三校验码的确认指令至所述下位机设备,以供下位机设备根据该确认指令,确认目标固件的传输结束。
107.进一步的,在一些情况下,应用场景的环境较为复杂,传输链路存在较不稳定的问题,下位机设备在发送实际生成的第三校验码时,由于传输链路出现故障而导致下位机设备可能会发送一个各个位为0的错误的第三校验码至上位机设备,此时下位机设备实际生成的第三校验码的内容丢失,当上位机设备接收到各个位为0的第三校验码时,可以判断目标固件的发送链路出现问题,上位机设备由此可以进行报错,以提醒对链路问题进行修正。或者,在一些情况下,应用场景的环境较为复杂,传输链路存在较不稳定的问题,导致下位机设备可能会发送一个各个位均为0的数据流至上位机设备;此时,由于各个位均为0的数据流的校验码依然为0,导致校验码丧失检错功能。
108.需要说明的是,在不考虑对上述链路问题的情况下,上位机设备也可以将第五校验码发送至下位机设备,由下位机设备对第三校验码与第五校验码进行校验,在出现校验不一致的情况下,向上位机设备发送固件错误告警。
109.步骤317、上位机设备在所述第三校验码与所述第五校验码不相同的情况下,生成固件错误告警,并在预设时间后停止用于处理所述目标固件的进程。
110.在本技术实施例中,在第三校验码与第五校验码不相同的情况下,上位机设备可以认为下位机设备未接收到的正确的目标固件,此时上位机设备生成固件错误告警,以供对固件错误进行修正,并在预设时间后停止用于处理所述目标固件的进程,避免因传输通道等错误导致后续固件传输过程出错。
111.步骤318、下位机设备在获取到所述上位机设备发送的针对所述第三校验码的确认指令的情况下,确定所述目标固件传输完毕。
112.下位机设备根据该确认指令,可以确认目标固件的传输结束,并继续进行后续的目标固件加载过程。
113.可选的,在步骤318之后,所述方法还包括:
114.步骤319、下位机设备将所述目标固件的所有固件分片数据包存储至第一闪存空间。
115.在本技术实施例中,下位机设备在接收到目标固件之后,可以通过加载程序进行
目标固件的加载,在执行加载操作之前,下位机设备可以将目标固件的所有固件分片数据包存储至第一闪存空间,闪存空间用于暂存固件数据,其处理数据的速度极快,能够在后续加载操作需要将目标固件加载至内存空间时,快速的从该第一闪存空间中提取目标固件。
116.可选的,在步骤319之后,所述方法还包括:
117.步骤320、下位机设备将所述第一闪存空间的标志位修改为第一固件标志位。
118.步骤321、下位机设备按照所述第一固件标志位加载所述目标固件。
119.具体的,加载程序加载目标固件是通过以标志位为加载指引进行实现的,下位机设备在将目标固件的所有固件分片数据包存储至第一闪存空间之后,可以将第一闪存空间的标志位修改为第一固件标志位,以供加载程序按照第一固件标志位加载目标固件,即加载程序会加载具有第一固件标志位的存储空间中的数据。
120.可选的,步骤321可以包括:
121.子步骤3211、下位机设备按照所述第一固件标志位,提取所述第一闪存空间中所述目标固件的固件分片数据包,并将所述固件分片数据包存储至内存空间。
122.在实际应用中,会存在由于下位机设备的内存出现故障而导致对目标固件的加载失败的问题,为了降低该问题发生的几率,本技术实施例可以进行基于校验码的目标固件加载校验,以验证下位机设备的内存稳定性。
123.具体的,下位机设备可以按照第一固件标志位,从用于暂存目标固件的第一闪存空间中提取目标固件的固件分片数据包,并将固件分片数据包依次存储至内存空间中,内存空间为最终运行目标固件时存储目标固件相关数据的空间,内存空间的稳定性影响到目标固件的运行质量。
124.子步骤3212、下位机设备按照所述预设规则,生成对应所述目标固件的所有固件分片数据包的数据分片内容的第四校验码。
125.在本技术实施例中,在将目标固件的固件分片数据包存储至内存空间后,可以基于与上位机设备约定的预设规则,生成对应目标固件的所有固件分片数据包的数据分片内容的第四校验码,该第四校验码用于验证内存空间中的目标固件的数据内容的正确与否。
126.子步骤3213、下位机设备在所述第四校验码与所述第三校验码相同的情况下,运行所述内存空间中的目标固件。
127.在本技术实施例中,当第四校验码与之前传输过程中计算得到的第三校验码相同时,下位机设备可以认为正确完整的目标固件被正常的存储至了第一闪存空间和内存空间,进而认为下位机设备的闪存空间和内存空间无故障,且运行正常,后续过程中因存储空间出现故障导致加载失效的几率较低,此时下位机设备可以通过加载程序运行内存空间中的目标固件,进行后续作业。
128.可选的,所述方法还可以包括:
129.子步骤3214、下位机设备在所述第四校验码与所述第三校验码不相同的情况下,向所述上位机设备发送加载报错请求。
130.在本技术实施例中,当第四校验码与之前传输过程中计算得到的第三校验码不相同时,下位机设备可以认为目标固件并未被正常的存储至了第一闪存空间和内存空间,进而认为下位机设备的闪存空间和/或内存空间存在故障,此时下位机设备可以向上位机设备发送加载报错请求,以告知该故障情况,以供维修人员进行维修。
131.子步骤3215、下位机设备在所述第四校验码与所述第三校验码不相同的情况下,将所述第一固件标志位修改为第二固件标志位,所述第二固件标志位为写入用于进行固件备份的第二闪存空间的标志位。
132.具体的,下位机设备还可以设置有独立的第二闪存空间,该第二闪存空间中可以存储有备份固件,以实现固件数据的容灾,备份估计可以为旧的稳定的固件版本,使得下位机设备可以在新固件加载出错的情况下可以运行备份固件,避免下位机设备无法正常工作。
133.因此,下位机设备可以在第四校验码与所述第三校验码不相同的情况下,将所述第一固件标志位修改为第二固件标志位,以按照第二固件标志位加载备份固件进行应急。
134.子步骤3216、下位机设备在所述第二固件标志位的值不为0的情况下,则按照所述第二固件标志位加载所述第二闪存空间中的备份固件。
135.在本技术实施例中,固件标志为不为0的情况为有效情况,此时下位机设备按照所述第二固件标志位加载所述第二闪存空间中的备份固件进行运行,以实现固件数据的数据容灾。
136.子步骤3217、下位机设备在对固件标志位的修改次数达到预设次数的情况下,向所述上位机设备发送固件报错请求。
137.在本技术实施例中,下位机设备的加载程序是通过固件标志位进行固件的加载的,固件标志位是控制下次加载固件的起始空间地址,该地址在两种情况下会被修改:一是本次固件升级成功时,下次固件加载需要进入到新的目标固件中运行,因此需要修改标志位为第一标志位;二是加载目标固件失败时,此时由于本次加载失败,代表该第一标志位对应的目标固件已经无法运行,因此需要进行修改标志位为第二标志位,保证下次加载固件进入的是另一个备份固件。此外,当修改标志位次数满预设次数时(预设次数可以为2,其初始值为0)代表两个固件都无法使用,此时需要向上位机设备发送固件报错请求,以进行后续的固件修复。如此便保证了固件加载的合理顺畅,不会因为一个固件的损坏而使得整个下位机设备无法运行。
138.综上,本技术实施例提供的一种固件数据处理方法,通过获取上位机设备发送的目标固件的固件分片数据包;固件分片数据包中包括数据分片内容,以及按照预设规则生成的对应数据分片内容的第一校验码;按照预设规则,生成对应获取到的固件分片数据包的数据分片内容的第二校验码;根据第二校验码和第一校验码的校验结果,执行对应的操作。本技术可以通过下位机设备对接收到的目标固件的每个固件分片数据包的内容,进行基于校验码的验证,来判断该固件分片数据包是否是正确的数据包,从而识别到传输过程中出现的数据包丢失等异常情况,实现了对固件传输过程的有效监管,降低了传输过程中出错的几率。
139.另外,本技术实施例提供的固件数据处理方法对比现有技术的固件升级方案,可以在最大程度上避免目标固件升级过程中出现的数据丢失、加载失败、硬件失效等问题,且完善的报错机制可以帮助上位机设备实现错误实时发现,实时排查等作用,提供了更加可靠、更加鲁棒和人性化的固件升级方案,为固件的升级加载和后期固件修复提供了一个有效办法。
140.图5是本技术实施例提供的一种固件数据处理装置的框图,所述装置应用于下位
机设备,如图5所示,该固件数据处理装置400可以包括:存储器401和处理器402;
141.所述存储器401用于执行:获取上位机设备发送的目标固件的固件分片数据包;所述固件分片数据包中包括数据分片内容,以及按照预设规则生成的对应所述数据分片内容的第一校验码;
142.所述处理器402用于执行:
143.所述处理器用于,按照所述预设规则,生成对应获取到的所述固件分片数据包的数据分片内容的第二校验码;
144.根据所述第二校验码和所述第一校验码的校验结果,执行对应的操作。
145.可选的,所述处理器具体用于:
146.在所述第二校验码与所述第一校验码不相同的情况下,向所述上位机设备发送传输报错请求。
147.可选的,所述存储器具体用于:
148.在所述第二校验码与所述第一校验码相同的情况下,继续获取所述上位机设备发送的下一个固件分片数据包。
149.可选的,所述处理器具体用于执行:
150.所述处理器还用于:
151.按照所述预设规则,生成对应已获取到的所有固件分片数据包的数据分片内容的第三校验码;
152.将所述第三校验码发送至所述上位机设备;
153.在获取到所述上位机设备发送的针对所述第三校验码的确认指令的情况下,确定所述目标固件传输完毕。
154.可选的,所述处理器还用于:
155.将所述目标固件的所有固件分片数据包存储至第一闪存空间。
156.可选的,所述处理器还用于:
157.将所述第一闪存空间的标志位修改为第一固件标志位;
158.按照所述第一固件标志位加载所述目标固件。
159.可选的,所述处理器具体用于:
160.按照所述第一固件标志位,提取所述第一闪存空间中所述目标固件的固件分片数据包,并将所述固件分片数据包存储至内存空间;
161.按照所述预设规则,生成对应所述目标固件的所有固件分片数据包的数据分片内容的第四校验码;
162.在所述第四校验码与所述第三校验码相同的情况下,运行所述内存空间中的目标固件。
163.可选的,所述处理器还用于:
164.在所述第四校验码与所述第三校验码不相同的情况下,向所述上位机设备发送加载报错请求。
165.可选的,所述处理器还用于:
166.在所述第四校验码与所述第三校验码不相同的情况下,将所述第一固件标志位修改为第二固件标志位,所述第二固件标志位为写入用于进行固件备份的第二闪存空间的标
志位;
167.在所述第二固件标志位的值不为0的情况下,则按照所述第二固件标志位加载所述第二闪存空间中的备份固件。
168.可选的,所述处理器还用于:
169.在对固件标志位的修改次数达到预设次数的情况下,向所述上位机设备发送固件报错请求。
170.可选的,所述存储器还用于:
171.获取所述上位机设备发送的更新命令,所述更新命令包括所述目标固件的第一固件版本号;
172.所述处理器还用于:
173.在所述第一固件版本号,大于所述下位机设备的本地的固件的第二固件版本号的情况下,进入所述获取上位机设备发送的目标固件的固件分片数据包的步骤。
174.可选的,所述下位机设备为毫米波雷达。
175.可选的,所述处理器还用于:
176.在接收完毕所述上位机设备发送的所述目标固件的所有固件分片数据包,且完成对所述固件分片数据包的校验码的校验操作的情况下,将当前加载的固件变更为所述目标固件,完成所述毫米波雷达的固件的升级操作。
177.综上,本技术实施例提供的固件数据处理装置,通过获取上位机设备发送的目标固件的固件分片数据包;固件分片数据包中包括数据分片内容,以及按照预设规则生成的对应数据分片内容的第一校验码;按照预设规则,生成对应获取到的固件分片数据包的数据分片内容的第二校验码;根据第二校验码和第一校验码的校验结果,执行对应的操作。本技术可以通过下位机设备对接收到的目标固件的每个固件分片数据包的内容,进行基于校验码的验证,来判断该固件分片数据包是否是正确的数据包,从而识别到传输过程中出现的数据包丢失等异常情况,实现了对固件传输过程的有效监管,降低了传输过程中出错的几率。
178.图6是本技术实施例提供的一种固件数据处理装置的框图,所述装置应用于上位机设备,如图6所示,该固件数据处理装置500可以包括处理器501;
179.所述处理器用于执行:
180.将目标固件切分为多个具有预设文件大小的固件分片数据包;
181.按照预设规则,生成对应所述固件分片数据包的数据分片内容的第一校验码;
182.将包括所述第一校验码的固件分片数据包发送至所述下位机设备。
183.可选的,所述处理器还用于:
184.若获取到所述下位机设备发送的传输报错请求,则停止向所述下位机设备发送所述固件分片数据包。
185.可选的,所述处理器还用于:
186.按照所述预设规则,生成对应所述目标固件的所有数据分片内容的第五校验码;
187.获取所述下位机设备发送的第三校验码;
188.在所述第三校验码与所述第五校验码相同的情况下,发送针对所述第三校验码的确认指令至所述下位机设备。
189.可选的,所述处理器还用于:
190.在所述第三校验码与所述第五校验码不相同的情况下,生成固件错误告警,并在预设时间后停止用于处理所述目标固件的进程。
191.可选的,所述处理器还用于:
192.发送包括所述目标固件的第一固件版本号的更新命令至所述下位机设备。
193.可选的,所述处理器还用于:
194.根据所述预设规则对应的校验码的长度,以及传输所述目标固件的目标误比特率,确定所述预设文件大小。
195.综上,本技术实施例提供的固件数据处理装置,通过将目标固件切分为多个具有预设文件大小的固件分片数据包;按照预设规则,生成对应固件分片数据包的数据分片内容的第一校验码;将包括第一校验码的固件分片数据包发送至下位机设备。本技术可以通过上位机设备将目标固件切分为多个固件分片数据包,并将每个固件分片数据包对应的第一校验码添加至固件分片数据包中下发给下位机设备,下位机设备对接收到的目标固件的每个固件分片数据包的内容,进行基于校验码的验证,来判断该固件分片数据包是否是正确的数据包,从而识别到传输过程中出现的数据包丢失等异常情况,实现了对固件传输过程的有效监管,降低了传输过程中出错的几率。
196.参照图7,其示出了本技术实施例提供的一种车辆的结构框图,车辆600包括:车身601;如图6所示的固件数据处理装置500,所述固件数据处理装置500安装于所述车身601。
197.本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述固件数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
198.存储器可以为外部控制终端与固件数据处理装置连接的接口。例如,外部控制终端可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的控制终端的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。存储器可以用于获取来自外部控制终端的输入(例如,数据信息、电力等等)并且将获取到的输入传输到固件数据处理装置内的一个或多个元件或者可以用于在固件数据处理装置和外部控制终端之间传输数据。
199.例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
200.处理器是控制终端的控制中心,利用各种接口和线路连接整个控制终端的各个部分,通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行控制终端的各种功能和处理数据,从而对控制终端进行整体监控。处理器可包括一个或多个处理单元;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器中。
201.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
202.本领域内的技术人员应明白,本技术的实施例可提供为方法、控制终端、或计算机
程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
203.本技术是参照根据本技术的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的控制终端。
204.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令控制终端的制造品,该指令控制终端实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
205.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
206.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
207.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
208.以上对本技术进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献