本发明涉及一种工程机械车辆远程升级系统及方法,属于工程机械车辆技术领域。
背景技术:
当前国内外can总线的应用越来越广泛,尤其是在汽车和工程机械行业,can总线通信在实时性要求高的数据传输场合尤为重要。工程机械车辆由于程序或系统升级的常常需要更新数据,但是员工出差成本高,效率低,且车辆众多,因此开发远程升级技术很有必要。由于工程机械多采用can总线,而can总线通信速率较低,因此,在进行远程升级时耗时较长。
技术实现要素:
本发明的目的在于克服现有技术中的不足,提供一种工程机械车辆远程升级系统及方法,能够提高远程升级过程中数据的安全性、加快数据传输。
第一方面,本发明提供一种工程机械车辆远程升级系统,包括:
云平台:用于对预编译的升级程序文件进行无损压缩及数据加密处理,并根据所接收的远程升级指令将处理后的升级程序文件发送至相应的车载终端;
车载终端:用于根据can总线数据传输特点对云平台处理后的升级程序文件中的数据进行接收和转换处理,以获取can数据帧;并对所述can数据帧进行加密处理后发送至零部件主控制器;
零部件主控制器:用于待车载终端发送的所有加密数据接收完成后,执行数据解密、解压缩操作以获取升级程序文件;同时还用于响应升级触发操作,利用所获取的升级程序文件执行升级操作。
结合第一方面,进一步地,所述云平台通过移动蜂窝网络与所述车载终端通信连接。
结合第一方面,进一步地,所述车载终端通过can总线与零部件主控制器通信连接。
第二方面,本发明提供一种工程机械车辆远程升级方法,所述方法包括如下步骤:
通过can总线接收车载终端发送的加密数据;
待车载终端发送的所有加密数据接收完成后,执行数据解密、解压缩操作以获取升级程序文件;
响应升级触发操作,利用所获取的升级程序文件执行升级操作;
其中,所述加密数据是车载终端根据can总线数据传输特点对云平台处理后的升级程序文件中的数据进行接收和转换处理、加密后获取的;所述云平台对升级程序文件执行的处理包括无损压缩和数据加密。
结合第二方面,进一步地,所述加密数据的获取方法包括:
当数据量超过256字节时,启动can总线数据传输流程,对数据进行分包,以256字节为单位,添加包头和包尾,包尾中包含该数据包的校验码,形成一个数据包;
对所述数据包进行分段,以7字节为单位形成一段数据,该7字节填充在can数据帧的第2~8字节,第1字节用于计数;
以8字节数据帧为单位,采用blowfish算法进行加密处理,获取所述加密数据。
结合第二方面,进一步地,通过can总线接收车载终端发送的加密数据的方法包括:
接收一段数据后,进行解密处理并将解密后的数据进行缓存;
待完整接收一个数据包之后,进行数据校验:若计算得到的校验码与数据包中的校验码一致,则表示该数据包接收正确,开始下一数据包的接收。
结合第二方面,进一步地,所述云平台采用quicklz1.5.0算法的level3进行无损压缩。
结合第二方面,进一步地,所述云平台采用chacha20算法进行数据加密。
结合第二方面,进一步地,若所述远程升级为用户确认的升级操作,则所述升级方法还包括:通过车载显示器或与车辆蓝牙连接的手机设备发送是否允许升级的提示,等待用户选择,若用户同意升级,则执行升级操作;否则,删除升级程序文件,不执行升级操作。
结合第二方面,进一步地,若所述远程升级为用户主动查询的升级操作,则所述升级方法还包括:
通过车载显示器或与车辆蓝牙连接的手机设备,查询当前是否有新版本软件,若用户主动选择升级,则车载终端自动生成远程升级指令,发送至云平台。
与现有技术相比,本发明所达到的有益效果:
针对工程机械车辆多数采用can总线作为通信总线的现状,设计了基于云平台、车载终端和can总线通信系统的远程升级方案,同时考虑到can总线通信速率有限,采用数据无损压缩算法减小数据量,加快数据传输,提升了升级效率,从而提升了用户体验;
为了防止数据被窃听,在云端采用chacha20流密码算法对程序文件加密,在can总线数据传输过程中采用blowfish数据密码算法对can数据帧加密,实现数据的安全传输,防止程序数据被窃取,提高仿制成本和难度,保障企业权益;
本发明可以对工程机械车辆can总线网络中的各个零部件进行程序远程升级,不局限于单一部件、适用性好,可以有效解决服务人员工作量大,现场服务成本高效率低的问题。
具体实施方式
下面结合对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例一:
本发明实施例提供一种工程机械车辆的远程升级系统,包括:
云平台:用于对预编译的升级程序文件进行无损压缩及数据加密处理,并根据所接收的远程升级指令将处理后的升级程序文件发送至相应的车载终端;
车载终端:用于根据can总线数据传输特点对云平台处理后的升级程序文件进行处理,以获取can数据帧;并对所述can数据帧进行加密处理后发送至零部件主控制器;
零部件主控制器:用于待车载终端发送的所有加密数据接收完成后,执行数据解密、解压缩操作以获取升级程序文件;同时还用于响应升级触发操作,利用所获取的升级程序文件执行升级操作。
本发明实施例中车载终端支持移动蜂窝网络和can总线,车载终端可以通过移动蜂窝网络(2g/3g/4g/5g)与云平台通信,通过can总线与零部件主控制器通信。零部件主控制器应支持远程升级协议和can总线协议。
当需要支持用户确认升级和用户主动查询升级是,所述车载终端应配置车载显示器及车载蓝牙。
实施例二:
本发明实施例提供一种工程机械车辆的远程升级方法,可以采用实施例所述的远程升级系统实现,所述远程升级方法分为3种:厂家强制升级、用户确认升级、用户主动查询升级,下面分别针对三种升降方法作进一步详细介绍。
第一种:厂家强制升级的方法包括如下步骤:
①将编译好的升级程序文件上传至云平台;
②云平台对升级程序文件执行无损压缩和数据加密(chacha20);
无损压缩算法选择方法基于工程机械零部件现状,目前为节约成本零部件数据处理能力普遍偏低,本发明实施例提供的远程升级方法中升级程序文件在云平台进行压缩,在零部件内部解压缩,云平台的性能足够强大,因此在选择无损压缩算法时应选择解压缩速度快、占用资源少的轻量级算法,而不用关注压缩过程的资源占用情况,例如quicklz1.5.0算法的level3就满足该要求。
上传至云平台的升级程序文件在压缩后进行数据加密,数据加密后密文数量较明文数量应不增加,否则增加数据传输时间,因此一些对称加密算法或流密码算法可满足该要求;
③云平台接收到远程升级指令后,根据指令内容要求,利用移动蜂窝网络,遵循m2m协议将处理后的升级程序文件传输至指定的车载终端中缓存;
④车载终端接收到数据后,当数据量超过256字节以后,启动can总线数据传输流程,对数据进行分包,以256字节为单位,添加包头和包尾,包尾中包含该包数据的校验码,形成一个数据包,再对该数据包进行分段,以7字节为单位形成1段数据,该7字节填充在can数据帧的第2-8字节,第1字节用于计数,每个8字节数据帧采用blowfish算法加密处理后发送;
can总线数据传输过程中的数据密码算法需根据can总线特点选择,由于can总线数据帧有效数据长度为8字节,因此需要选择明文分组大小为8字节、算法效率较高的数据密码算法。
⑤零部件主控制器接收到一段数据后,做解密处理,并将数据缓存,完整接收一个数据包后进行数据校验,如果计算得到的校验码与接收到的校验码一致,则该数据包接收正确,开始下一数据包传输过程。
⑥所有数据接收完成后,零部件主控制器采用chacha20算法进行数据解密,之后采用quicklz1.5.0算法的level3进行解压缩,得到原始升级程序文件,并写入备份flash程序区;
⑦等待设备重新上电时执行程序替换。
该模式下远程升级过程用户不知情。
第二种:用户确认升级的方法包括如下步骤:
①将编译好的升级程序文件上传至云平台;
②云平台对升级程序文件执行无损压缩(quicklz1.5.0算法的level3)和数据加密(chacha20);
③云平台接收到远程升级指令后,根据指令内容要求,利用移动蜂窝网络,遵循m2m协议将处理后的升级程序文件传输至指定的车载终端中缓存;
④车载终端接收到数据后,当数据量超过256字节以后,启动can总线数据传输流程,对数据进行分包,以256字节为单位,添加包头和包尾,包尾中包含该数据包的校验码,形成一个数据包,再对该包进行分段,以7字节为单位形成1段数据,该7字节填充在can数据帧的第2-8字节,第1字节用于计数,每个8字节数据帧采用blowfish算法加密处理后发送;
⑤零部件主控制器接收到一段数据后,做解密处理,并将数据缓存,完整接收一个数据包后,进行数据校验,如果计算得到的校验码与接收到的校验码一致,则该报数据接收正确,开始下一包数据传输过程;
⑥所有数据接收完成后,零部件主控制器采用chacha20算法进行数据解密,之后采用quicklz1.5.0算法的level3进行解压缩,得到原始升级程序文件,并写入备份flash程序区;
⑦通过车载显示器或与车辆蓝牙连接的手机设备发送是否允许升级的提示,等待用户选择,若用户同意升级,则执行步骤⑧,否则删除备份程序区数据,结束该流程;
⑧执行程序替换动作,将备份flash程序区数据写入主flash程序区,提示用户重新上电。
该模式下远程升级过程需要得到用户的同意。
第三种:用户主动查询升级的方法包括如下步骤:
①将编译好的升级程序文件上传至云平台;
②云平台对升级程序文件执行无损压缩(quicklz1.5.0算法的level3)和数据加密(chacha20);
③用户通过车载显示器或与车辆蓝牙连接的手机设备,查询当前是否有新版本软件,若选择升级,则车载终端自动生成升级指令,发送至云平台,云平台根据指令内容要求,利用移动蜂窝网络,遵循m2m协议将处理后的升级程序文件传输至指定的车载终端中缓存;
④车载终端接收到数据后,当数据量超过256字节以后,启动can总线数据传输流程,对数据进行分包,以256字节为单位,添加包头和包尾,包尾中包含该数据包的校验码,形成一数据包,再对该数据包进行分段,以7字节为单位形成1段数据,该7字节填充在can数据帧的第2-8字节,第1字节用于计数,每个8字节数据帧采用blowfish算法加密处理后发送;
⑤零部件主控制器接收到一段数据后,做解密处理,并将数据缓存,完整接收一个数据包后,进行数据校验,如果计算得到的校验码与接收到的校验码一致,则该报数据接收正确,开始下一数据包传输过程。
⑥所有数据接收完成后,零部件主控制器采用效率较高的chacha20算法进行数据解密,之后采用quicklz1.5.0算法的level3进行解压缩,得到原始升级程序文件,并写入备份flash程序区;
⑦执行程序替换动作,将备份flash程序区数据写入主flash程序区,提示用户重新上电。该模式下远程升级过程为用户主动发起。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。