首页> 中国专利> 基于汽车双目相机的存储系统和系统更新方法

基于汽车双目相机的存储系统和系统更新方法

摘要

本发明公开了一种基于汽车双目相机的存储系统和系统更新方法,所述存储系统包括至少两套存储子系统,各套所述存储子系统中任一者处于后台更新状态时,各套所述存储子系统中的至少一个子系统处于工作状态。在更新过程中,可以选择任一个存储子系统进行,其余的存储子系统还能够正常运行,解决了现有技术中存储系统无法实现汽车双目设备在线升级的技术问题。另外,各存储子系统可以作为备用系统,当系统文件意外损坏时,还可以进入备用系统,进一步保证了系统的安全性。

著录项

  • 公开/公告号CN112860297A

    专利类型发明专利

  • 公开/公告日2021-05-28

    原文格式PDF

  • 申请/专利权人 北京中科慧眼科技有限公司;

    申请/专利号CN202110071023.1

  • 发明设计人 陈启;李治发;孟凡民;赵帅;

    申请日2021-01-19

  • 分类号G06F8/654(20180101);G06F8/71(20180101);G06F9/4401(20180101);

  • 代理机构11502 北京远立知识产权代理事务所(普通合伙);

  • 代理人李海燕

  • 地址 100085 北京市海淀区创业中路32号楼32-1-1-559

  • 入库时间 2023-06-19 11:08:20

说明书

技术领域

本申请实施例涉及双目相机技术领域,具体涉及一种基于汽车双目相机的存储系统。

背景技术

OTA(Over-the-Air Technology)空中下载技术应用于汽车上,可以实现汽车系统的在线更新升级,汽车上具有联网模块的网关,可以让汽车上能够数据传输的软件、硬件实现上传、下载、代码更新等功能。汽车作为一种交通工具,其中的设备或系统进行在线升级(OTA空中升级)的实现流程需要基于安全的考量。双目摄像头设备作为汽车驾驶安全设备更需要保证系统能够稳定安全的运行,并能够不断更新系统满足更多的安全驾驶需求。

在线更新升级相当于将车辆从一个状态导入到另一个状态,在此过程中不可避免会出现一些错误。这种情况下,就需要制定一些防错机制,来保证车辆的功能安全。

但是,现有的双目摄像头设备是大都使用的FPGA可编程器件,其处理器系统的启动代码通常被存储在一个Flash存储介质中,系统启动时自动从Flash中加载系统到内存中并启动,如果Flash中的代码受到损坏,那么系统将无法启动。一般情况下,系统启动时只对Flash中的文件仅进行读取不会进行修改;然而系统更新时无可避免的需要对所存储的系统文件进行修改更新,并且由于更新时间较长,不能保证更新时不会发生中断等意外情况,因此在现有的存储模式下双目摄像头设备无法实现汽车设备的OTA升级。

发明内容

为此,本申请实施例提供一种基于汽车双目相机的存储系统和系统更新方法,以解决现有技术中存储系统无法实现汽车双目设备在线升级的技术问题。

为了实现上述目的,本申请实施例提供如下技术方案:

一种基于汽车双目相机的存储系统,所述存储系统包括至少两套存储子系统,各套所述存储子系统中任一者处于后台更新状态时,各套所述存储子系统中的至少一个子系统处于工作状态。

进一步地,所述存储系统包括:

第一存储子系统,所述第一存储子系统处于后台更新状态;

第二存储子系统,所述第二存储子系统处于工作状态。

进一步地,所述第一存储子系统在后台更新状态中,若升级失败或中断,则所述第一存储子系统退回到升级前的状态。

进一步地,所述第一存储子系统退回到升级前的状态后,经过预设时间后尝试再次升级。

本发明还提供一种系统更新方法,基于如上所述的存储系统,所述方法包括:

根据更新包的版本号与子系统版本号的对应关系,确定所要升级的存储子系统;

对确定的所要升级的存储子系统进行升级,并正常运行其余的存储子系统;

更新完成后,重启更新后的存储子系统,并进行系统运行检查;

判定更新中断或无法正常运行,则退回到更新前的存储子系统。

进一步地,所述根据更新包的版本号与子系统版本号的对应关系,确定所要升级的存储子系统,具体包括:

启动更新程序,查看变量的当前值,以确定当前运行的存储子系统分区;

获取任一存储子系统的当前版本号和更新包中的版本号;

判定当前版本号与更新包中的版本号相同,则跳过平台升级程序;

判定当前版本号与更新包中的版本号不同,则确定该存储子系统为所要升级的存储子系统。

进一步地,所述更新完成后,重启更新后的存储子系统,并进行系统运行检查,具体包括:

重启进入系统后,获取当前系统状态;

判定当前系统状态为升级状态,则检查current_boot(当前启动分区)和active_boot(优先启动分区)是否一致,以及版本号是否正确;

判定current_boot=active_boot,则证明更新的系统可以正常启动,然后进行系统运行检查;

检查完成后然后把当前分区的a_successful(启动成功标志)属性标记为1,证明系统更新成功,结束更新程序。

进一步地,在对确定的所要升级的存储子系统进行升级时,实时记录更新进度。

本发明还提供一种设备,所述设备包括:数据采集装置、处理器和存储器;

所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行如上所述的方法。

本发明还提供一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如上所述的方法。

在一种或几种具体实施方式中,本发明所提供的基于汽车双目相机的存储系统和系统更新方法具有以下技术效果:

该存储系统通过设置至少两个存储子系统,实现了存储系统的分区,存放在的两个独立分区中,增加了系统的安全性。在系统更新过程中,各存储子系统的通过特定的启动信息来决定从哪个子系统进行启动,管理系统可通过修改参数来更改启动过程,实现更灵活的双目摄像头的设备功能管理。在更新过程中,可以选择任一个存储子系统进行,其余的存储子系统还能够正常运行,解决了现有技术中存储系统无法实现汽车双目设备在线升级的技术问题。另外,各存储子系统可以作为备用系统,当系统文件意外损坏时,还可以进入备用系统,进一步保证了系统的安全性。

附图说明

为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。

本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。

图1为本发明所提供的基于汽车双目相机的存储系统一种具体实施方式的系统框图;

图2为本发明所提供的存储系统一种使用场景的系统框图;

图3为本发明所提供的系统更新方法一种具体实施方式的流程图。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明所提供的基于汽车双目相机的存储系统一种具体实施方式的系统框图。

在一种具体实施方式中,本发明所提供的基于汽车双目相机的存储系统,所述存储系统包括至少两套存储子系统,各套所述存储子系统中任一者处于后台更新状态时,各套所述存储子系统中的至少一个子系统处于工作状态。存储子系统的个数可根据存储系统的空间以及使用需求设置。

在一种实际的使用场景中,存储子系统设置两个,则所述存储系统包括第一存储子系统100和第二存储子系统200,所述第一存储子系统处于后台更新状态,所述第二存储子系统处于工作状态。对于大多数的使用场景来讲,设置两个存储子系统即可实现系统稳定运行和顺利更新,相比于设置多个存储子系统来讲,设置两组子系统能够在满足使用功能的前提下,尽量降低系统所占内存。

进一步地,所述第一存储子系统在后台更新状态中,若升级失败或中断,则所述第一存储子系统退回到升级前的状态。升级从某种程度上来讲,相当于把车辆从一个状态导入到另一个状态,在此过程中不可避免会出现一些错误。这种情况下,就需要制定一些防错机制,来保证车辆的功能安全,如断点续传,在目前已知的OTA防错机制中,属于一种最基本的技术方案。除此之外还有回滚机制,因为当车辆系统进行升级后,新的版本系统可能不稳定,这种情况下可以通过回滚机制退回到之前的版本,保证车辆安全。说到汽车OTA升级时候的回滚机制,其应该是在整个升级过程中任意节点都可以实现的终止、并回滚到升级之前的状态。也就是说,在该具体实施方式中,当第一存储子系统在后台更新状态中,若升级失败或中断,则所述第一存储子系统退回到升级前的状态,即形成上述回滚机制。

当完成回滚机制后,系统还可以再次尝试升级,则所述第一存储子系统退回到升级前的状态后,经过预设时间后尝试再次升级,该预设时间可以为10分钟或1天等不同时间间隔。

在实际的使用场景中,如图2所示,系统采用Flash和EMMC双重系统,Flash和EMMC均由中心控制逻辑单元FPGA控制,从而实现双目摄像头设备的控制。其中,各存储子系统储存在EMMC中,而Flash中存放有启动程序。在该具体场景中,为了实现系统的OTA升级,修改了系统的存储和启动方式,在EMMC中存储存储有第一存储子系统B和第二存储子系统A两套可以工作的系统,(用户应用数据只有一份,为两套系统共用,在另一个存储介质中不受升级影响)。简单来讲,可以理解为一套当前系统分区,另外一套为备份系统分区。两个系统的系统版本可能一样,也可能不一样,其中一个是新版本,另外一个旧版本。通过OTA升级,可以将旧版本系统更新为新版本系统,当然,设备出厂时这两套系统肯定是一样的。

上述场景中,当存储系统需要升级更新时,由于系统的分区设置(即具有第一存储子系统B和第二存储子系统A),不同于传统方式中只有一套存放在Flash中的系统文件;定义第一存储子系统B为boot_b,第二存储子系统A为boot_a,boot_a和boot_b存放在EMMC的两个独立分区中,增加了系统的安全性。在Flash中存储了固定不变的fsbl和uboot两个启动程序,这两个程序在更新系统时保持不修改,保证了系统的稳定性和安全性。传统系统存储方式uboot只从一个固定地方中加载系统,A/B系统的uboot通过特定的启动信息来决定从boot_a还是boot_b启动,管理系统可通过修改参数来更改启动过程,实现更灵活的双目摄像头的设备功能管理。系统的编译过程,传统方式在系统编译时会遵循FSBL->PL->UBOOT->LINUX的传统方式生成文件,当pl.bit文件出现损坏或者不兼容时会导致系统卡死,无法开机。A/B系统进行了改进,使用FSBL->UBOOT->PL->LINUX的顺序生成文件。该方式中uboot提前启动,可以校验文件系统的完整性,降低了设备无法开机的风险。同时利用uboot能够进行更多启动配置等功能,增加了系统的灵活性。

进一步地,A/B系统在Flash中还存有一套备用系统,当EMMC中的系统文件意外损坏时,还可以进入备用系统,进一步保证了系统的安全性。

结合上述场景,通过使用A/B系统实现双目摄像头系统的OTA升级具有以下优势:

1.出厂时设备上有两套可以正常工作的系统,如果其中一套系统文件损坏,系统还可以加载另一套系统文件并启动;

2.升级时当前使用的系统不会修改,仅更新另一套系统;确保设备上始终有一个可以工作的系统,减少设备无法开机的可能性,方便维修和售后;

3.OTA升级在系统的后台进行,所以更新过程中,用户可以正常使用设备,数据更新完成后,仅需要重启一次设备就可以自动进入新系统;

4.如果OTA升级失败或者被中断,设备仍旧可以回退到升级前的旧系统,并且可以尝试再次更新升级。

下面基于图2所示的具体使用场景,简述上述存储系统的启动过程以及与传统启动方式的区别。

上述存储系统启动后,Boot ROM(无盘启动ROM接口)从Flash中自动加载FSBL(第一步启动,First Stage BootLoader),FSBL初始化DDR(双倍速率同步动态随机存储器)等设备,然后从Flash中加载uboot(引导加载程序)到内存中,当FSBL完成任务,移交CPU(中央处理器,central processing unit)启动uboot;

uboot默认执行bootcmd(环境变量)指令,假设bootcmd检查当前active_boot(系统修复)参数为boot_a,则优先从第二存储子系统A加载系统;

检查第二存储子系统A分区的bootable(磁盘或驱动器)属性如果为1,则开始加载系统文件到内存中,并修改current_boot属性为boot_a;

文件载入到内存完毕后,尝试从内存加载FPGA并启动linux系统,如果启动成功则进入linux系统,系统检查无误后标记a_successful=1;

如果启动失败,则标记a_bootable=0,跳转检查B分区是否可以启动,若b_bootable=1则从B分区加载文件到内存并启动linux系统,并修改current_boot=boot_b;

若b_bootable=0则两个分区都不可启动,则默认从flash中加载恢复系统进入恢复模式,并标记current_boot=qspiboot;

与传统系统启动方式相比,A/B系统启动方式的主要创新有:

uboot通过修改A/B分区的bootable的值,来标识该分区系统的可用状态。系统在启动后可以查看分区状态来进行相应的更新或者修复操作;

flash里的存储的备用系统可以是特制的恢复系统,备用系统启动通过执行特定操作来恢复emmc中的系统文件,例如开启更新服务通过电脑传输系统文件或从网上下载系统文件到emmc中,保证了系统的安全性;

系统在启动后如果发现存在不兼容或者其他问题,可以通过修改配置来恢复到旧的系统,保证了双目设备的安全性。

除了上述存储系统,本发明还提供一种系统更新方法,基于如上所述的存储系统,在一种具体实施方式中,如图3所示,所述方法包括以下步骤:

S1:根据更新包的版本号与子系统版本号的对应关系,确定所要升级的存储子系统;具体地,确定所要升级的存储子系统时,启动更新程序,查看变量的当前值,以确定当前运行的存储子系统分区;获取任一存储子系统的当前版本号和更新包中的版本号;判定当前版本号与更新包中的版本号相同,则跳过平台升级程序;判定当前版本号与更新包中的版本号不同,则确定该存储子系统为所要升级的存储子系统。

S3:对确定的所要升级的存储子系统进行升级,并正常运行其余的存储子系统,且实时记录更新进度;

S3:更新完成后,重启更新后的存储子系统,并进行系统运行检查;具体包括:重启进入系统后,获取当前系统状态;判定当前系统状态为升级状态,则检查current_boot和active_boot是否一致,以及版本号是否正确;判定current_boot=active_boot,则证明更新的系统可以正常启动,然后进行系统运行检查;检查完成后然后把当前分区的a_successful属性标记为1,证明系统更新成功,结束更新程序。

S4:判定更新中断或无法正常运行,则退回到更新前的存储子系统。

为了便于说明,上述方法应用于具体场景时,其OTA更新流程如下(假设当前运行分区为boot_b):

linux系统首先启动更新程序,查看current_boot变量的当前值,确定当前运行的系统分区、假设当前current_boot=boot_b,升级脚本检查boot_b分区的版本号和更新包中的版本号。如果当前版本号与更新包中的版本号相同则跳过平台升级程序;如果版本号不同,则更新平台文件;

下载完成后,更新程序标记当前系统状态为update状态,进入系统文件更新步骤。并随时记录当前更新运行的进程;

当前系统运行在B分区,所以更新要在A分区内进行,首先修改A分区属性a_bootable=0,a_successful=0和version=0属性;

更新A分区的系统文件,更新文件完成后更改a_bootable=1,并修改active_boot=boot_a,然后等待系统下一次重启;

重启进入linux系统后,linux发现当前系统状态为update状态,继续运行更新检查程序;该程序需要检查current_boot和active_boot是否一致,以及版本号是否正确;如果current_boot=active_boot则证明更新的系统可以正常启动,然后进行系统运行检查。检查完成后然后把当前分区的a_successful属性标记为1,证明系统更新成功,结束更新程序;

如果更新中断或者A分区无法正常启动,系统会自动退回到B分区进行启动,并尝试再次更新系统。

在上述使用场景中,与传统系统存储方式相比,A/B系统更新方式的主要创新有:

1.整个系统更新可以在后台自动完成,不需要中断当前运行的系统。实现了无感知的自动更新;

2.系统的各个部分都是独立的文件,服务器可以根据当前系统版本打包差分升级包,实现整个系统的差分升级,减少下载的数据量;

3.当系统更新时,每个阶段都能够独立运行并保存更新状态;如果意外发生中断,系统重启后,可以继续原来的更新进程。

在上述具体实施方式中,本发明所提供的基于汽车双目相机的存储系统和系统更新方法通过设置至少两个存储子系统,实现了存储系统的分区,存放在的两个独立分区中,增加了系统的安全性。在系统更新过程中,各存储子系统的通过特定的启动信息来决定从哪个子系统进行启动,管理系统可通过修改参数来更改启动过程,实现更灵活的双目摄像头的设备功能管理。在更新过程中,可以选择任一个存储子系统进行,其余的存储子系统还能够正常运行,解决了现有技术中存储系统无法实现汽车双目设备在线升级的技术问题。另外,各存储子系统可以作为备用系统,当系统文件意外损坏时,还可以进入备用系统,进一步保证了系统的安全性。

基于相同的技术构思,本申请实施例还提供一种设备,所述设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行上述所述的方法。

基于相同的技术构思,本申请实施例还提供一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行上述所述的方法。

本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。

需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。

上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号