首页> 中国专利> 一种用于充电桩安全升级自身程序的客户端软件启动方法

一种用于充电桩安全升级自身程序的客户端软件启动方法

摘要

本发明公开了一种用于充电桩安全升级自身程序的客户端软件启动方法,包括:1、对系统存储区域划分,包括bootcode区域,正常区域,故障区域,更新程序备份区域,标识区域。2、系统运行程序时,若检测到更新指令,则接收服务器发送过来的升级数据以及对应的算法校验值b,系统进入bootcode区域;在bootcode区域判断升级数据的对错情况确定运行正常程序还是运行故障程序。判断升级数据对错的校验算法为:A,读取升级数据进行32位无符号的累加和;B,对步骤A算出来的值进行按位取反的操作;C,对C求出来的数据和一个固定值求差值。本发明能保证远程升级更准确;在硬件损坏时,设备依然可以正常运作,并上传损坏信息给服务器,由售后人员及时维修。

著录项

  • 公开/公告号CN105808296A

    专利类型发明专利

  • 公开/公告日2016-07-27

    原文格式PDF

  • 申请/专利权人 江苏万帮德和新能源科技有限公司;

    申请/专利号CN201610130225.8

  • 发明设计人 杨勇钊;邵丹薇;刘明刚;

    申请日2016-03-08

  • 分类号G06F9/445(20060101);

  • 代理机构32207 南京知识律师事务所;

  • 代理人汪旭东

  • 地址 213100 江苏省常州市武进区国家高新技术产业开发区新雅路18号149室

  • 入库时间 2023-06-19 00:12:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-25

    授权

    授权

  • 2019-06-14

    著录事项变更 IPC(主分类):G06F8/65 变更前: 变更后: 申请日:20160308

    著录事项变更

  • 2016-08-24

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20160308

    实质审查的生效

  • 2016-07-27

    公开

    公开

说明书

技术领域

本发明属于电动汽车充电桩的嵌入式系统领域,具体涉及安全升级自身程序的客户端 软件启动方法。

背景技术

随着全球节能和环保意识的不断增强,新能源领域的电动汽车产业迅速发展。与此同 时,随着电动汽车充电桩的大量建设和应用,用户对良好体验感的需求也被提上了日程, 用户的体验感和充电桩的程序就是有着最直接的关系。

由于充电桩往往安装在室外,工作条件比较恶劣,而且在行业刚起步的时候,用户的 体验感是需要不断地改进的,充电桩的长期正常运行和充电桩能够实时运行工程师修改后 的新程序是用户体验感的基础,所以远程升级技术的应用在我们的产品中应运而生。

现有技术存在如下缺陷:(1)现有的远程升级技术中升级完成后许多都是通过服务器 端进行软复位重启动;(2)现有的远程升级技术都是通过直接修改启动参数达到运行新旧 程序的目的,这样的情况下一旦存储启动参数的区域硬件损坏,那么就会导致整个设备运 行出错,如果是大型设备的话,程序运行出错很有可能发生事故;(3)现有的升级技术大 部分会通过直接启动新程序然后通过判断服务器和新程序之间的通信来确认是否升级成 功,这样不够安全,因为一个程序的部分数据出错不一定能够导致通信不正常。

发明内容

为了解决上述现有技术的缺陷,本发明提供一种针对嵌入式系统设备能够长期稳定运 行,能够实时更新运行新程序的方法。根据系统存储区域更新的升级数据是否正确来判断 是运行最新的程序还是运行上传故障的程序。

为了实现本发明的实现的安全功能,采取如下技术方案:

一种用于充电桩安全升级自身程序的客户端软件启动方法,包括:

步骤1,将系统存储区域分区,包括bootcode区域;

步骤2,系统运行程序时,若检测到更新指令,则接收服务器发送过来的升级数据以 及所述升级数据的算法校验值b,系统进入bootcode区域;在bootcode区域里判断升级数 据的对错情况确定运行正常程序还是运行故障程序。

作为优选,步骤1中的系统存储区域还包括:正常区域,故障区域,更新程序备份区 域,标识区域;步骤2中接收的升级数据以及所述升级数据的算法校验值b分别保存在所 述更新程序备份区域、所述标识区域;所述正常程序存放在所述正常区域,所述故障程序 存放在所述故障区域。

作为优选,步骤2中判断升级数据的对错情况确定运行正常程序还是运行故障程序的 方法为:

步骤2.1,对更新程序备份区域的升级数据进行校验计算,得到算法校验值a;

步骤2.2,将算法校验值a与算法校验值b比对,若一致,则执行步骤2.3,否则,执 行当前版本的程序;

步骤2.3,将更新程序备份区域的升级数据搬运至正常区域;

步骤2.4,对正常区域的升级数据进行校验计算,得到算法校验值c;

步骤2.5,将算法校验值c与算法校验值b比对,若一致,则运行正常区域里的升级数 据,否则,执行故障区域的程序。

作为优选,所述步骤2.5中所述的故障区域的程序包括:

建立一个故障上传通道,上传三次故障信息后自动关闭,然后建立正常通道,设备自 动进入正常工作状态。

作为优选,所述步骤2.1中的校验计算和所述步骤2.4中的校验计算的算法相同,均包 括如下步骤:

步骤A,读取升级数据进行32位无符号的累加和;

步骤B,对步骤A算出来的值进行按位取反的操作;

步骤C,对步骤B求出来的数据和一个固定值求差值。

作为优选,所述步骤C中的固定值可自行定义为任一个32位数据。

与现有技术相比,本发明的有益效果:

(1)本发明提出的远程升级程序客户端软件启动的方法,通过多次逻辑判断存储区域 中自定义的不同分区的数据来确认远程升级是否成功,因为任何程序在存储区域中都是以 数据的形式存在,我们通过直接判断最原始的数据是否正确来确认我们的远程升级是否成 功,这样能够保证远程升级更准确。

(2)即使程序升级数据存放的硬件区域损坏了,设备通过运行到故障区域的程序,依 然可以正常运作,实现正常的功能;并上传设备存储区域的损坏信息给服务器,由售后人 员及时维修。故障区域的程序从出厂后一直不变。

(3)现有的远程升级技术在升级完成后都是通过服务器端进行软复位重启动,本发明 提出的远程升级技术在客户端升级完成后会自行判断升级成功然后自动软复位重启动。

附图说明

图1是本发明系统软件循环启动的流程图。

图2是本发明在bootcode程序中的逻辑流程图。

具体实施方式

下面结合附图来对本发明作进一步说明。

1、首先对嵌入式系统的存储区域进行划分,包括五个部分,分别为:bootcode区域、 正常区域、故障区域、更新程序备份区域、标识区域,下面分别进行说明。

1)bootcode区域——该区域存放系统启动程序,系统一旦启动首先运行到这里, 能够通过判断标识区域的数据来确认是否有最新的升级程序需要更新,能够把 最新的升级程序从更新程序备份区域搬运到正常区域,能够判断出搬运后的正 常区域的硬件是否损坏从而判断下一步启动的程序是正常区域程序还是故障区 域程序。

2)正常区域——该区域存放系统正常功能程序,系统能够运行设备的正常功能, 能够判断是否进入更新模式,能够保存最新的数据到更新程序备份区域,能够 自动软复位启动到bootcode程序。

3)故障区域——该区域存放主动上传故障信息的故障程序,能够主动上传故障信 息到服务器,能够运行设备的正常功能,能够判断是否进入更新模式,能够保 存最新的数据到更新程序备份区域,能够自动软复位启动到bootcode程序。

4)更新程序备份区域——该区域用来存放最新的程序,能够保存前述正常区域或 者故障区域中接收到的更新数据。

5)标识区域——该区域存放更新成功标志,在正常区域或者故障区域里,在自动 软复位启动的时候会对这个区域进行操作,能够使得bootcode程序知道是否有 数据需要更新。

2、系统运行过程中,若检测到更新指令,则接收服务器发送过来的升级数据以及所述 升级数据的算法校验值b,当更新完成后系统软件复位重新启动进入bootcode区域;在 bootcode区域里判断升级数据的对错情况确定运行正常程序还是运行故障程序。

如图1所示,系统的启动有两种方式,一种就是第一次上电的启动,还有一种就是系 统运行过程中通过服务器发送复位命令的方式进行软件复位的重新启动方式,系统启动后 运行bootcode区域的程序,然后在这里会判断是运行正常程序(正常程序存放在正常区域) 还是运行故障程序(故障程序存放在故障区域)。如果运行正常程序那么系统会建立正常通 道,然后执行设备的各项功能,进入正常工作状态;如果运行故障程序,系统会建立一个 故障上传通道,上传三次故障信息后自动关闭,然后建立正常通道,设备自动进入正常工 作状态。在上传故障信息的同时,远程服务器根据收到的故障信息推送故障问题信息给服 务器维护人员,维护人员安排售后进行到现场维修,在这里的一个优点就是:即使出现故 障并且在维修人员没到现场维修,设备依然可以正常运作,实现正常的功能,只是不是最 新的程序而已。

系统在正常区域和故障区域的程序都可以运行设备的正常功能,但这两个区域有两个 不同点,第一、正常区域的程序是会根据升级数据更新到最新的程序,能够一直运行最新 的程序,故障区域的程序是从出厂后一直保持不变的。第二、故障区域的程序比正常区域 的程序多一个主动上传故障信息的部分,所以一旦运行到故障区域内的故障程序就代表正 常区域的flash硬件出现了问题,就会主动上传故障信息给服务器,由服务器推送故障信息 进行售后服务。

在运行正常区域和故障区域的程序时都可以接收服务器发送的更新指令,并且正常区 域和故障区域在接收到升级数据后都会把升级数据存放到更新程序备份区域、与升级数据 对应的算法校验值b存放到标识区域。当判断服务器更新成功后会改变标识区域里的值来 提示有程序更新,然后系统自动软件复位重启进入运行用户的bootcode区域程序,在 bootcode区域程序里判断更新程序备份区域的升级数据情况来确定是运行正常区域的程序 还是运行故障区域的程序。

如图2所示,在bootcode区域里选择程序运行有三种情况,当系统硬件初始化过后, 会去判断标识区域的数据,如果标识区域的标识数据没有更新提示,那么就运行当前旧版 本正常程序;如果发现有更新提示,就把更新程序备份区域的数据读出来做一个校验计算, 校验算法包括如下步骤:

步骤A,读取更新程序备份区域的更新数据进行32位无符号的累加和;

步骤B,对步骤A算出来的值进行按位取反的操作;

步骤C,对步骤B求出来的数据和一个固定值求差值(固定值可以自行定义为任意一 个32位的数据)。

上述步骤C算出的差值即为算法校验值a,将计算得到的算法校验值a和保存在标识 区域中的算法校验值b(该值由服务器按照上述相同的校验算法计算发送过来)进行比对, 如果算法校验值a和算法校验值b的比对结果不一致,代表更新程序备份区域的数据有错 误,那么就会运行旧版本(当前版本)的正常程序;如果算法校验值a和算法校验值b的 比对结果一致,那么就把更新程序备份区域的数据搬运到正常区域进行覆盖,覆盖完成后, 按照上述步骤A~步骤C的算法对搬运到正常区域的数据进行校验计算,得到算法校验值c, 将算法校验值c和上面提到的保存在标识区域中的算法校验值b做比对。如果比对结果一 致,那么升级成功,直接运行正常程序(该正常程序即为搬运至正常区域的数据),如果比 对结果不一致,那么就运行故障区域的程序,通过故障区域的程序上传故障信息给服务器, 由服务器推送故障信息进行售后服务。

以上所述仅用于描述本发明的技术方案,并不用于限定本发明的保护范围,应当理解, 在不违背本发明实质内容和原则的前提下,本领域人员所作任何修改、改进或等同替换等 都将落入本发明的保护范围内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号