一种软件升级方法及装置与流程

文档序号:15931095发布日期:2018-11-14 01:39阅读:235来源:国知局

本申请涉及视频采集卡技术领域,尤其涉及一种软件升级方法及装置。

背景技术

视频采集卡是进行视频处理必不可少的硬件设备,其广泛地应用于教育、汽车、安防等行业,实际应用中,任一行业的用户对视频采集的需求都会不断地发生变化,所以视频采集卡通常都具有升级需求。

传统的对视频采集卡进行升级的方式是手动升级:利用专用下载器将系统的安装程序传输至视频采集卡,再由视频采集卡自动进行升级,由于视频采集卡所处位置极为分散,所以手动升级的方式耗时、耗力,成本较高,而且,部分视频采集卡安装的位置比较高,所以手动升级的危险性也比较大。

因此,逐渐出现了远程升级的方式,远程升级的方式可利用视频采集卡本身带的有线网络与升级服务器进行通信,具有极大的优势。但对于不带操作系统的视频采集卡而言,因为其是利用嵌入式软件来驱动与自身相连的外部设备工作,以及对采集到的视频图像进行图像信号处理操作,所以对视频采集卡的外设驱动或视频处理程序的升级实质都是对其安装的嵌入式软件进行升级,因此,对不带操作系统的视频采集卡而言,一旦对其安装的嵌入式软件远程升级失败,如出现死机或运行崩溃,即俗称的“跑飞”,视频采集卡就不能正常工作,且只能返厂维修,这样,用户在一段时间内将没有视频采集卡可用、用户体验不好,而且厂家还需进行维修,耗时、耗力。



技术实现要素:

本申请实施例提供一种软件升级方法及装置,用以解决不带操作系统的视频采集卡如果远程升级失败,如出现死机或运行崩溃,只能返厂维修,而导致的用户在一段时间内没有视频采集卡可用,且厂家还需进行维修,耗时、耗力的问题。

第一方面,本申请实施例提供的一种软件升级方法,应用于不带操作系统的视频采集卡,包括:接收服务器发送的安装程序并保存在ram中,之后,在ram中运行安装程序对视频采集卡当前使用的嵌入式软件进行升级,若升级失败,则触发视频采集卡进行重启,并在重启后,利用视频采集卡在flash存储器中存储的升级前使用的安装程序对嵌入式软件进行恢复。

采用上述方案,当对未带操作系统的视频采集卡进行远程升级时,可将服务器发送的安装程序暂时保存在ram中,并在ram中运行接收到的安装程序对视频采集卡当前使用的嵌入式软件进行升级,这样,将接收到的安装程序暂存在ram中,不对flash存储器中存储的升级前使用的嵌入式软件的安装程序进行覆盖,如果升级失败,视频采集卡还可以根据flash存储器中存储的升级前使用的嵌入式软件的安装程序将嵌入式软件恢复到之前的版本,不影响视频采集卡的使用,也不用再返厂维修,用户体验较好,且省时、省力。

在一种可能的实施方式下,接收服务器发送的安装程序并保存在ram中之前,还可以接收服务器发送的软件升级指令,之后,根据软件升级指令对视频采集卡进行重启,并在重启后,向服务器发送升级就绪的信息,以触发服务器发送安装程序。

在一种可能的实施方式下,根据以下步骤确定升级失败:周期性地将视频采集卡内定时器的取值初始化为预设值,在升级过程中,若超过预设时间定时器的取值未初始化为预设值,则可确定升级失败。

在一种可能的实施方式下,还包括:若确定系统升级成功,则将flash存储器中存储的升级前使用的安装程序替换为本次升级时使用的安装程序,这样,flash存储器中一直存储有视频采集卡最近一次成功升级时使用的安装程序,以便为下一次远程升级做准备。

在一种可能的实施方式下,若升级成功,则将flash存储器中存储的升级前使用的安装程序替换为本次升级时使用的安装程序包括:在成功安装接收到的安装程序时,启动计时器,若计时器的计时时间到达预设时长时视频采集卡仍在正常运行,则可将flash存储器中存储的升级前使用的安装程序替换为本次升级时使用的安装程序,这样,可确保存储到flash存储器中的安装程序是可靠、稳定的。

在一种可能的实施方式下,flash存储器包括第一存储区域和第二存储区域,将flash存储器中存储的升级前使用的安装程序替换为本次升级时使用的安装程序包括,若确定升级前使用的安装程序存储在第一存储区域中,则可将本次升级时使用的安装程序存储到第二存储区域中,这样,使用flash存储器中的第一存储区域和第二存储区域轮流存储嵌入式软件最新版的安装程序,灵活性更好。

具体实施时,服务器是通过一定时间段内的帧数据向视频采集卡发送安装程序的,所以,在一种可能的实施方式下,接收服务器发送的安装程序并保存在ram中包括:对服务器发送的每一帧数据进行循环冗余校验,在校验通过时,提取该帧数据中携带的经过加密后的程序段并保存,在接收到所有的程序段后,根据预先存储在flash存储器中的解密密码对保存的各程序段进行解密,从而得到安装程序,这样,对每帧数据进行循环冗余校验,可有效降低通信过程中的误码率,进而提高远程升级的成功率。

在一种可能的实施方式下,向服务器发送升级就绪的信息之后,还可以判断视频采集卡是否在设定时长内未接收到服务器发送的任一帧数据,若是,则可结束本次升级操作,并向服务器发送升级失败的信息,以避免视频采集卡和服务器之间的通信异常时,视频采集卡还一直等待安装程序而不能正常进行视频采集的情况。

第二方面,本申请实施例提供的一种软件升级装置,应用于不带操作系统的视频采集卡,包括:接收模块,用于接收服务器发送的安装程序并保存在随机存储器ram中,其中,安装程序用于对视频采集卡当前使用的嵌入式软件进行升级;升级模块,用于在ram中运行安装程序对视频采集卡当前使用的嵌入式软件进行升级;若升级失败,则触发视频采集卡进行重启,在重启后,利用视频采集卡在flash存储器中存储的升级前使用的安装程序对嵌入式软件进行恢复。

在一种可能的实施方式下,接收模块,还用于接收服务器发送的安装程序并保存在随机存储器ram中之前,接收服务器发送的软件升级指令;升级模块,还用于根据软件升级指令对视频采集卡进行重启;在重启后,向服务器发送升级就绪的信息,以触发服务器发送安装程序。

在一种可能的实施方式下,升级模块具体用于根据以下步骤确定升级失败:周期性地将视频采集卡内定时器的取值初始化为预设值;在升级过程中,若超过预设时间定时器的取值未初始化为预设值,则确定升级失败。

在一种可能的实施方式下,升级模块,还用于若升级成功,则将flash存储器中存储的升级前使用的安装程序替换为本次升级时使用的安装程序。

在一种可能的实施方式下,升级模块具体用于:在成功安装接收到的安装程序时,启动计时器;若计时器的计时时间到达预设时长时视频采集卡仍在正常运行,则将flash存储器中存储的升级前使用的安装程序替换为本次升级时使用的安装程序。

在一种可能的实施方式下,flash存储器包括第一存储区域和第二存储区域,升级模块具体用于:若确定升级前使用的安装程序存储在第一存储区域中,则将本次升级时使用的安装程序存储到第二存储区域中。

在一种可能的实施方式下,服务器是通过一定时间段内的帧数据发送安装程序的,接收模块具体用于:对服务器发送的每一帧数据进行循环冗余校验,在校验通过时,提取该帧数据中携带的经过加密后的程序段并保存;根据预先存储在flash存储器中的解密密码对保存的各程序段进行解密,从而得到安装程序。

在一种可能的实施方式下,升级模块,还用于在向服务器发送升级就绪的信息之后,若在设定时长内未接收到服务器发送的任一帧数据,则结束本次升级操作,并可向服务器发送升级失败的信息。

第三方面,本申请实施例提供的一种计算机,包括至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述计算机执行上述软件升级方法的步骤。

第四方面,本申请实施例提供的一种计算机可读存储介质,包括程序代码,当所述程序代码在计算机上运行时,使所述计算机执行上述软件升级方法的步骤。

另外,第二方面至第四方面中任一种设计方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。

本申请的这些方面或其它方面在以下实施例的描述中会更加简明易懂。

附图说明

图1为本申请实施例提供的软件升级方法的应用场景示意图;

图2为本申请实施例提供的视频采集卡的示意图;

图3为本申请实施例提供的软件升级方法的流程图;

图4为本申请实施例提供的软件升级装置的结构图;

图5为本申请实施例提供的用于实现软件升级方法的计算机的硬件结构示意图。

具体实施方式

为了解决不带操作系统的视频采集卡如果远程升级失败,如出现死机或运行崩溃,只能返厂维修,而导致的用户在一段时间内没有视频采集卡可用,且厂家还需进行维修,耗时、耗力的问题,本申请实施例提供了一种软件升级方法及装置。

本申请实施例中所提及的视频采集卡是指不带操作系统的视频采集卡,也叫做裸跑的视频采集卡。对于裸跑的视频采集卡而言,由于其不带操作系统,所以需要使用嵌入式软件来实现类似于操作系统的功能,这里,嵌入式软件相比于操作系统而言属于轻量级软件,所以开发成本也较低,其中,嵌入式软件用于驱动与视频采集卡相连的外部设备进行工作,以及用于对视频采集卡采集到的视频图像进行图像信号处理。

实际应用中,裸跑的视频采集卡在安装嵌入式软件以后,即可驱动与自身相连的外部设备,如摄像头、串口等,进行工作,且可对采集到的视频图像进行图像信号处理,这里,外设的驱动程序和视频处理程序都是耦合在嵌入式软件中的,不能单独地对视频采集卡中的外设驱动或视频处理程序进行升级。

本申请实施中的视频采集卡可包括两种工作模式,一种是视频采集模式,一种是软件升级模式,当在视频采集模式下时,视频采集卡进行视频采集,并将采集到的视频信息发送到与自身相连的存储设备进行存储;当在软件升级模式下时,视频采集卡与服务器进行通信,对自身安装的嵌入式软件进行升级,并可在升级后进行视频采集的试运行,试运行成功后,再利用接收到的最新版的安装程序对视频采集卡在flash存储器中存储的升级前的安装程序进行覆盖。通常情况下,视频采集卡都工作在视频采集模式下,只有当进行系统升级时,才切换到软件升级模式。

图1示出了本申请实施例提供的软件升级方法的应用场景示意图,包括服务器和多个视频采集卡,服务器可通过网络对每个视频采集卡中使用的嵌入式软件进行升级,并且,每个视频采集卡的flash存储器中均存储有最近一次成功升级嵌入式软件时所使用的安装程序。

首先,对视频采集卡的运行过程进行说明。

一般地,视频采集卡将自身所使用嵌入式软件的安装程序存放在flash存储器中,视频采集卡在每次启动时,均将flash存储器中保存的安装程序复制到ram的指定区域中进行运行,以完成对外设驱动和视频处理程序的初始化,之后,即可进行视频采集。

现有技术中,在对视频采集卡的嵌入式软件进行升级时,是先擦除flash存储器中之前版本的安装程序,之后再写入接收到的最新版的安装程序,接着,再将最新版的安装程序复制到ram的指定区域中进行运行,即对视频采集卡当前使用的嵌入式软件进行升级,这样,如果升级过程中出现故障,因为嵌入式软件之前版本的安装程序已经不存在了,所以视频采集卡也无法回溯到之前版本的嵌入式软件,此时,对于用户而言,视频采集卡就不能正常进行视频采集,如同坏掉了一样,只能返厂维修,用户将在一段时间内都没有视频采集卡可用。

为了解决该问题,本申请实施例中,当在对视频采集卡使用的嵌入式软件进行升级时,可以先不将服务器发送的最新版的安装程序存放在flash存储器中,而是暂存在ram中,且在ram中运行安装程序对嵌入式软件进行升级,如果升级成功,再擦除flash存储器中之前存储的安装程序,进而将最新版的安装程序存储到flash存储器中;如果升级失败,还可以根据flash存储器中存储的升级前使用的安装程序对嵌入式软件进行恢复,这样,将接收到的安装程序暂存在ram中,不对flash存储器中存储的升级前使用的嵌入式软件的安装程序进行覆盖,如果升级失败,视频采集卡还可以根据flash存储器中存储的升级前使用的嵌入式软件的安装程序将嵌入式软件恢复到之前的版本,不会影响视频采集卡的使用,也不用再返厂维修,用户体验较好,且省时、省力。

具体实施时,还可以将视频采集卡的flash存储器划分为多个存储区域,然后,使用其中的两个存储区域轮流地存储视频采集卡所使用的嵌入式软件最新版的安装程序,使用此种方式,视频采集卡可以在接收到服务器发送的安装程序时就将安装程序存储在视频采集卡中相应的存储区域中,也可以在成功升级后再将升级时使用的安装程序存储在视频采集卡中相应的存储区域中,灵活性更好。

下面结合具体的实施例对轮流存储的方式进行说明。

如图2所示,为本申请实施例提供的视频采集卡的示意图,其中,视频采集卡的flash存储器包括两个存储区域:存储区域1和存储区域2,存储区域1和存储区域2用于轮流存储视频采集卡所使用的嵌入式软件最新版的安装程序,实际应用中,可以设置一个flag标识位,flag=1表示最近一次成功升级时使用的安装程序存储在存储区域1中;flag=2表示最近一次成功升级时使用的安装程序存储在存储区域2中,随着安装程序在存储区域1和存储区域2中的轮流存储,flag标识位也会在1和2之间交替取值。

通常情况下,视频采集卡工作在视频采集模式下,当接收到服务器发送的软件升级指令时,视频采集卡会进行重启并切换到软件升级模式,之后,视频采集卡可通知服务器已进入准备升级状态,若视频采集卡在设定时长内未接收到服务器发送的任一帧数据,则可确定与服务器之间的通信存在异常,进而切换到视频采集模式以结束系统升级操作,并向服务器发送升级失败的信息;否则,视频采集卡可对服务器发送的每一帧数据进行循环冗余校验,在校验通过时,提取该帧数据中携带的经过加密后的程序段并保存在ram中,待接收完所有程序段后,根据预先存储在flash存储器中的解密密码对保存的各程序段进行解密,从而得到最新版的安装程序。

进一步地,视频采集卡可以将最新版的安装程序加载到ram的指定区域中,在该指定区域中运行安装程序对嵌入式软件进行升级,若在成功安装程序后,视频采集卡持续运行的时间超过预设时间,则可确定此次升级成功,进而可将此次接收到的最新版的安装程序存储到flash存储器中,假设当前flag=1,则可将最新版的安装程序存储到flash存储器的存储区域2中,并且,更新flag=2。

具体实施时,视频采集卡内设置有定时器,如看门狗电路,视频采集卡会周期性地将看门狗电路的取值初始化预设值,即喂狗,在进行升级时,若超过预设时间看门狗电路的取值都未初始化为预设值,则可确定升级失败,此时,看门狗电路会使视频采集卡自动重启,重启后,视频采集卡可重新读取flag的取值,沿用上例,假设升级前flag=1,那么,视频采集卡就可将存储区域1中的安装程序加载到ram的指定区域中,并在该指定区域中运行安装程序对外部设备和视频处理程序进行初始化,即将视频采集卡使用的嵌入式软件恢复到更新前的版本,这样,可提高远程升级过程中视频采集卡的稳定性,用户体验也更好。

如图3所示,为本申请实施例提供的软件升级方法的流程图,包括以下步骤:

s301:视频采集卡接收服务器发送的软件升级指令,根据软件升级指令进行重启,并在重启后选择软件升级模式。

s302:向服务器发送升级就绪的信息。

s303:判断是否在设定时长内未接收到服务器发送的任一帧数据,若是,则进入s304;否则,进入s305。

s304:切换到视频采集模式以结束升级操作,并通知服务器升级失败的信息。

s305:接收并保存服务器发送的最新版的安装程序。

实际应用中,用户使用视频采集卡采集的视频数据大多都属于私密数据,如果被随意窃取可能会给用户带来极大的经济损失,因此,在对视频采集卡进行升级时还需保证安装程序的安全性,比如对安装程序进行加密,以避免不法分子盗用安装程序来获取用户的私密数据。

具体地,服务器可与视频采集卡预先约定好安装程序的解密密码,后续在进行远程升级时,服务器向视频采集卡发送的均是经过加密的安装程序,比如采用128位秘钥长度的高级加密标准(advancedencryptionstandard,aes)加密算法对安装程序进行加密,视频采集卡接收到安装程序后,可根据预先在flash存储器中存储的解密密码对安装程序进行解密,这样,安装程序在传输过程中的是经过加密的,安全性可得到较好地保障。

此外,服务器一般是通过一定时间段内的帧数据发送安装程序的,考虑到通信过程中的误码率问题,视频采集卡还可对服务器发送的每一帧数据均进行循环冗余校验,若校验不通过,则可向服务器请求重传该帧数据,在校验通过时,再提取该帧数据中携带的经过加密后的程序段并保存在ram中,在接收到所有的程序段后,再利用预先存储在flash存储器中的解密密码对保存的各程序段进行解密,从而得到安装程序,这样,可保证接收到的安装程序的正确性,尽可能地提高成功升级视频采集卡的概率。

s306:将安装程序加载到ram的指定区域中,运行安装程序对视频采集卡当前使用的嵌入式软件进行升级。

实际应用中,如果视频采集卡出现新的需求,或者其使用的嵌入式软件的安装程序出现错误,都需要对嵌入式软件进行升级。

s307:判断是否升级成功,若是,则进入s308;否则,进入s309。

具体实施时,视频采集卡内部设置有定时器,当视频采集卡正常运行时,视频采集卡会定期地将定时器的取值初始化为预设值,如果在进行远程升级时超过预设时间定时器的取值未初始化为预设值,则可确定升级失败。若在安装过程中不存在异常,则可在成功安装最新版的安装程序后,启动计时器进行计时,若计时器的计时时间到达预设时长时视频采集卡仍在正常运行,则可确定升级成功。

s308:将flash存储器中存储的升级前使用的安装程序替换为本次升级时使用的安装程序。

具体地,先擦除flash存储器中存储的升级前使用的安装程序,之后,再将本次升级时使用的安装程序写入flash存储器中。

可选地,确定系统升级成功时,还可以向服务器发送升级成功的信息。

s309:触发视频采集卡进行重启,在重启后,利用视频采集卡在flash存储器中存储的升级前使用的安装程序对嵌入式软件进行恢复。

即,将flash存储器中存储的升级前使用的安装程序加载到ram的指定区域中,在该指定区域中运行安装程序对外设驱动和视频处理程序进行初始化,从而将嵌入式软件恢复到更新前的版本。

特别地,当对flash存储器进行分区时,还可以在步骤s305之后即将接收到的最新版的安装程序存储在flash存储器中,并且,无论何时向flash存储器中存储最新版的安装程序,均可先确定flash存储器中存储升级前使用的安装程序的区域,假设该区域为flash存储器的第一存储区域,则可以将最新版的安装程序存储到flash存储器中的第二存储区域中,从而达到第一存储区域和第二存储区域轮流存储最新版的安装程序的目的。

基于同一发明构思,本申请实施例中还提供了一种与软件升级方法对应的软件升级装置,该装置应用于未带操作系统的视频采集卡,由于该装置解决问题的原理与本申请实施例软件升级方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

如图4所示,为本申请实施例提供的软件升级装置的结构图,包括:

接收模块401,用于接收服务器发送的安装程序并保存在随机存储器ram中,其中,安装程序用于对所述视频采集卡当前使用的嵌入式软件进行升级;

升级模块402,在ram中运行安装程序对视频采集卡当前使用的嵌入式软件进行升级;若升级失败,则触发视频采集卡进行重启,在重启后,利用视频采集卡在flash存储器中存储的升级前使用的安装程序对嵌入式软件进行恢复。

在一种可能的实施方式下,接收模块401,还用于接收服务器发送的安装程序并保存在随机存储器ram中之前,接收服务器发送的软件升级指令;

升级模块402,还用于根据软件升级指令对视频采集卡进行重启;在重启后,向服务器发送升级就绪的信息,以触发服务器发送安装程序。

在一种可能的实施方式下,升级模块402具体用于根据以下步骤确定升级失败:

周期性地将视频采集卡内定时器的取值初始化为预设值;

在升级过程中,若超过预设时间定时器的取值未初始化为预设值,则确定升级失败。

在一种可能的实施方式下,升级模块402,还用于若升级成功,则将flash存储器中存储的升级前使用的安装程序替换为本次升级时使用的安装程序。

在一种可能的实施方式下,升级模块402具体用于:

在成功安装接收到的安装程序时,启动计时器;

若计时器的计时时间到达预设时长时视频采集卡仍在正常运行,则将flash存储器中存储的升级前使用的安装程序替换为本次升级时使用的安装程序。

在一种可能的实施方式下,flash存储器包括第一存储区域和第二存储区域,升级模块402具体用于:

若确定升级前使用的安装程序存储在第一存储区域中,则将本次升级时使用的安装程序存储到第二存储区域中。

在一种可能的实施方式下,服务器是通过一定时间段内的帧数据发送安装程序的,接收模块401具体用于:

对服务器发送的每一帧数据进行循环冗余校验,在校验通过时,提取该帧数据中携带的经过加密后的程序段并保存;

根据预先存储在flash存储器中的解密密码对保存的各程序段进行解密,得到安装程序。

在一种可能的实施方式下,升级模块402,还用于在向服务器发送升级就绪的信息之后,若在设定时长内未接收到服务器发送的任一帧数据,则结束本次升级操作;向服务器发送升级失败的信息。

如图5所示,为本申请实施例提供的用于实现软件升级方法的计算机的硬件结构示意图,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。

存储器503,用于存放计算机程序;

处理器501,用于执行存储器503上所存放的程序时,使得计算机执行上述软件升级方法的步骤。

本申请实施例提供的一种计算机可读存储介质,包括程序代码,当所述程序代码在计算机上运行时,使计算机执行上述软件升级方法的步骤。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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