车辆钥匙的待升级软件包的传输方法、升级方法及系统与流程

摘要: 本发明涉及车辆,具体涉及一种车辆钥匙的待升级软件包的传输方法、升级方法及系统。背景技术:1、目前,汽车蓝牙物理钥匙的固件升级主要采用gatt(通用属性协议)的数...
车辆钥匙的待升级软件包的传输方法、升级方法及系统与流程

本发明涉及车辆,具体涉及一种车辆钥匙的待升级软件包的传输方法、升级方法及系统。

背景技术:

1、目前,汽车蓝牙物理钥匙的固件升级主要采用gatt(通用属性协议)的数据传输方式,具体为:主设备与蓝牙钥匙建立ble连接后,通过att协议发现钥匙端的ota升级服务及相应的数据传输特征值,随后将固件数据通过gatt通道发送至钥匙端,钥匙端接收后将数据存储至指定位置并重启,完成升级。

2、这种方式存在以下缺陷:其一,gatt单帧数据长度短,默认仅约20字节,传输200kb以上固件需进行数千至上万次分包,传输效率极低、耗时长;其二,gatt无原生流控机制,主设备高速发包易导致钥匙端缓冲区溢出,引发丢包、乱序问题;其三,无协议栈自动分片重组能力,应用层需自行编写固件拆包和组包代码,易引入软件缺陷,开发量大、稳定性差;并且,依赖私有传输协议,标准化程度低、跨芯片平台移植难、维护成本高。

技术实现思路

1、为了克服现有技术中的缺陷,本发明实施例提供了一种车辆钥匙的待升级软件包的传输方法、升级方法及系统,能够解决传统钥匙升级时的效率低、易丢包、升级失败率高、依赖私有协议、升级过程易变砖的技术问题。

2、为达到上述目的,本发明采用的技术方案是:

3、本发明第一方面公开了一种车辆钥匙的待升级软件包的传输方法,包括如下步骤:

4、主设备与钥匙建立无线通信连接,基于所述无线通信连接获取用于钥匙的软件包升级的特征值数据;

5、获取待升级软件包的升级参数,基于所述升级参数获取目标传输通道的通道参数,所述目标传输通道用于传输所述待升级软件包,所述通道参数包括最大传输单元、最大分段长度及初始信用流控值;

6、基于所述特征值数据,向所述钥匙发送所述目标传输通道的连接请求,并基于所述通道参数与所述钥匙建立所述目标传输通道;

7、基于所述目标传输通道将所述待升级软件包发送至所述钥匙。

8、所述目标传输通道为基于l2cap协议建立的coc面向连接通道,所述coc通道支持大帧传输,主设备通过所述目标传输通道向钥匙传输待升级软件包,能够大幅提升单帧传输数据长度,减少传输过程中的分包数量,缩短升级耗时,同时,通过l2cap coc通道原生信用流控机制,能够避免钥匙端缓冲区溢出引发的丢包乱序问题,有效提升传输效率与稳定性,在传输200kb以上的软件包时效果尤其明显。

9、可选的,所述基于所述目标传输通道将所述待升级软件包发送至所述钥匙,还包括:

10、对待升级软件包进行加密,将加密后的待升级软件包按预设长度划分成多个固件块;

11、按预设标识信息对每个固件块进行封装,所述标识信息包括固件块的编号和校验码;

12、基于所述目标传输通道将封装后的多个固件块发送至所述钥匙。

13、可选的,所述基于所述目标传输通道将封装后的多个固件块发送至所述钥匙,还包括:

14、基于所述最大分段长度,将每个封装后的固件块分割为多个数据片段;

15、基于所述初始信用流控值发送多个所述数据片段。

16、通过目标传输通道的原生信用流控,传输的待升级软件包能够通过协议栈原生的分片重组功能实现数据的分片与重组,无需在应用层额外开发拆包组包逻辑,能够降低开发复杂度,减少软件缺陷的产生。

17、可选的,还包括:

18、获取所述固件块的传输状态,所述传输状态包括传输完成和传输中断;

19、若所述固件块的传输中断,重新建立所述目标传输通道;

20、获取第一编号,所述第一编号为已发送的固件块的编号;

21、基于所述第一编号获取第二编号,所述第二编号为未发送的固件块的编号;

22、基于重新建立的目标传输通道向所述钥匙发送具有所述第二编号的固件块。

23、通过设置断点续传机制,能够有效解决车辆钥匙软件升级包传输过程中信号波动、链路中断导致的传输失败问题,提升软件包传输的稳定性和可靠性,适配复杂电磁环境下的钥匙升级场景。

24、可选的,所述最大传输单元为247byte~512byte,所述最大分段长度为248byte,所述初始信用流控值为10~30。

25、本发明第二方面公开了一种车辆钥匙的升级方法,包括如下步骤:

26、所述钥匙与主设备建立无线通信连接,基于所述无线通信连接配置用于钥匙软件升级的特征值数据;

27、获取所述主设备发送的通道参数,所述通道参数包括最大传输单元、最大分段长度及初始信用流控值;

28、响应于所述主设备的连接请求,并基于所述通道参数与所述主设备建立目标传输通道;

29、基于所述目标传输通道接收待升级软件包,并对接收的待升级软件包进行校验,若校验通过,则启动所述待升级软件包。

30、钥匙与主设备建立无线通信连接后,通过特征值数据使主设备获得建立目标传输通道所需入口信息,并根据获取的最大传输单元、最大分段长度及初始信用流控值与主设备建立目标传输通道,使通信参数适配当前传输需求,通过目标传输通道接收待升级软件包并执行校验,能够有效保证所接收数据的完整性和正确性,提升钥匙软件升级过程中的传输效率和可靠性。

31、可选的,所述基于所述目标传输通道接收待升级软件包,并对接收的待升级软件包进行校验,若校验通过,则启动所述待升级软件包,还包括:

32、接收多个数据片段,将多个所述数据片段重组生成多个固件块,每个固件块均携带标识信息,所述标识信息包括固件块的编号和校验码;

33、基于所述标识信息,对接收的每个固件块进行校验,并记录已接收的固件块编号。

34、可选的,所述基于所述标识信息,对接收的每个固件块进行校验,并记录已接收的固件块编号,还包括:

35、在所述钥匙内配置第一分区和第二分区,所述第一分区用于存储当前运行的软件包,所述第二分区用于存储接收到的待升级软件包;

36、将接收并校验通过的固件块存储至所述第二分区;

37、在所有固件块均接收并校验通过后,将所述第二分区内的所有固件块进行重组,生成升级软件包,对所述升级软件包进行完整性校验;

38、若所述完整性校验通过,切换启动分区至所述第二分区并重启钥匙;

39、若所述完整性校验未通过,保持所述第一分区为启动分区。

40、将接收并校验通过的固件块先存储在第二分区,而非直接覆盖当前运行的第一分区,能够保证在整个升级过程中,第一分区的现有软件包始终完好无损,该双分区机制能够避免因升级过程中断、数据错误等异常导致的设备故障,杜绝钥匙变砖的风险,提升升级过程中的安全性和容错能力。

41、可选的,还包括:

42、获取所述钥匙的电池电压,并将所述电池电压与预设阈值进行比较;

43、当所述电池电压小于预设阈值时,停止接收并保存已接收的固件块;

44、当所述电池电压恢复至大于等于预设阈值时,从停止位置继续接收其余固件块。

45、通过实时监测电池电压并与预设阈值进行比较,能够避免低电压状态下继续传输可能导致的数据写入错误或设备异常,能够有效避免因钥匙电池电量不足导致的升级中断或失败,从而提升低电量场景下的升级成功率,并且,通过保存并续传机制能够避免重复传输导致的时效降低。

46、本发明第三方面公开了一种车辆钥匙的升级系统,包括车端和钥匙,所述系统用于执行如第一方面和第二方面任一项所述的车辆钥匙的待升级软件包的传输方法及升级方法。

47、由于上述技术方案的运用,本发明与现有技术相比具有下列优点:

48、本技术中的目标传输通道为基于l2cap协议建立的coc面向连接通道,钥匙与主设备建立无线通信连接后,根据最大传输单元、最大分段长度及初始信用流控值与钥匙建立目标传输通道,主设备通过所述目标传输通道向钥匙传输待升级软件包,能够大幅提升单帧传输数据长度,减少传输过程中的分包数量,缩短升级耗时,同时,通过coc通道原生信用流控机制,能够避免钥匙端缓冲区溢出引发的丢包乱序问题,有效提升传输效率与稳定性。

49、为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。