CN105138373B - 汽车诊断设备固件升级方法及装置 - Google Patents
汽车诊断设备固件升级方法及装置 Download PDFInfo
- Publication number
- CN105138373B CN105138373B CN201510536620.1A CN201510536620A CN105138373B CN 105138373 B CN105138373 B CN 105138373B CN 201510536620 A CN201510536620 A CN 201510536620A CN 105138373 B CN105138373 B CN 105138373B
- Authority
- CN
- China
- Prior art keywords
- automotive diagnostic
- diagnostic installation
- firmware upgrade
- sent
- check value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种汽车诊断设备固件升级方法,所述汽车诊断设备固件升级方法包括以下步骤:在接收到固件升级指令时,加载汽车诊断接口函数;调用所述汽车诊断接口函数中的本地配置函数;通过所述本地配置函数中的固件升级命令将升级数据发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级。本发明还公开了一种汽车诊断设备固件升级装置。本发明实现了通过汽车诊断接口对汽车诊断设备进行固件升级,使得汽车诊断设备的固件升级更加便捷。
Description
技术领域
本发明涉及汽车诊断领域,尤其涉及一种汽车诊断设备固件升级方法及装置。
背景技术
目前的汽车诊断设备的固件升级均是通过连接上位机,并通过所连接的上位机内的升级程序进行固件升级。由于汽车诊断接口的通信协议中未提供对汽车诊断设备进行固件升级相关的参数,使得汽车诊断设备无法通过汽车诊断接口进行固件升级的问题。此方面的问题,亟待发明人解决。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于解决汽车诊断设备无法通过汽车诊断接口进行固件升级的问题。
为实现上述目的,本发明提供一种汽车诊断设备固件升级方法,所述汽车诊断设备固件升级方法包括以下步骤:
在接收到固件升级指令时,加载汽车诊断接口函数;
调用所述汽车诊断接口函数中的本地配置函数;
通过所述本地配置函数中的固件升级命令将升级数据发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级。
优选的,所述通过所述本地配置函数中的固件升级命令将升级数据发送至汽车诊断设备的步骤包括:
通过所述固件升级命令中的握手子命令与所述汽车诊断设备进行握手;
在握手成功时,通过所述固件升级命令中的写入子命令将所述升级数据分次发送给所述汽车诊断设备;
在所述升级数据全部发送完成时,通过所述固件升级命令中的校验子命令对所述升级数据进行整体校验;
在所述整体校验成功时,确定所述升级数据发送完成。
优选的,所述在握手成功时,通过所述固件升级命令中的写入子命令将所述升级数据分次发送给所述汽车诊断设备的步骤包括:
在握手成功时,通过所述写入子命令将所述升级数据的子数据及对应的校验值依次发送给所述汽车诊断设备,以供所述汽车诊断设备对接收到的子数据进行校验;
当接收到所述汽车诊断设备在校验成功时返回的写入响应时,发送下一子数据及对应校验值,直至发送完所述升级数据的全部子数据。
优选的,所述在所述升级数据全部发送完成时,通过所述固件升级命令中的校验子命令对所述升级数据进行整体校验的步骤包括:
在所述升级数据全部发送完成时,将所述升级数据按照预设数据量分别计算校验值;
将计算得到的校验值通过所述校验子命令依次发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的校验值进行校验;
在接收到所述汽车诊断设备返回的校验成功响应时,发送下一校验值,直至计算得到的校验值全部校验完成。
优选的,所述通过所述固件升级命令中的握手子命令与所述汽车诊断设备进行握手的步骤包括:
向所述汽车诊断设备发送所述握手子命令;
接收来自所述汽车诊断设备返回的握手响应;
在接收到所述握手响应时,确定握手成功。
此外,为实现上述目的,本发明还提供一种汽车诊断设备固件升级装置,所述汽车诊断设备固件升级装置包括:
加载模块,用于在接收到固件升级指令时,加载汽车诊断接口函数;
调用模块,用于调用所述汽车诊断接口函数中的本地配置函数;
发送模块,用于通过所述本地配置函数中的固件升级命令将升级数据发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级。
优选的,所述发送模块包括握手单元、数据发送单元、校验单元及确定单元;
所述握手单元,用于通过所述固件升级命令中的握手子命令与所述汽车诊断设备进行握手;
所述数据发送单元,用于在握手成功时,通过所述固件升级命令中的写入子命令将所述升级数据分次发送给所述汽车诊断设备;
所述校验单元,用于在所述升级数据全部发送完成时,通过所述固件升级命令中的校验子命令对所述升级数据进行整体校验;
所述确定单元,用于在所述整体校验成功时,确定所述升级数据发送完成。
优选的,所述数据发送单元,还用于在握手成功时,通过所述写入子命令将所述升级数据的子数据及对应的校验值依次发送给所述汽车诊断设备,以供所述汽车诊断设备对接收到的子数据进行校验;
所述数据发送单元,还用于当接收到所述汽车诊断设备在校验成功时返回的写入响应时,发送下一子数据及对应校验值,直至发送完所述升级数据的全部子数据。
优选的,所述校验单元,还用于在所述升级数据全部发送完成时,将所述升级数据按照预设数据量分别计算校验值;
所述校验单元,还用于将计算得到的校验值通过所述校验子命令依次发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的校验值进行校验;
所述校验单元,还用于在接收到所述汽车诊断设备返回的校验成功响应时,发送下一校验值,直至计算得到的校验值全部校验完成。
优选的,所述握手单元,还用于向所述汽车诊断设备发送所述握手子命令;
所述握手单元,还用于接收来自所述汽车诊断设备返回的握手响应;
所述握手单元,还用于在接收到所述握手响应时,确定握手成功。
本发明通过汽车诊断接口函数的本地配置函数中添加的固件升级命令,将升级数据通过汽车诊断接口发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级,实现了通过汽车诊断接口对汽车诊断设备进行固件升级,使得汽车诊断设备的固件升级更加便捷。
附图说明
图1为本发明汽车诊断设备固件升级方法的第一实施例的流程示意图;
图2为本发明汽车诊断设备固件升级方法的第二实施例的流程示意图;
图3为本发明汽车诊断设备固件升级方法的第三实施例的流程示意图;
图4为本发明汽车诊断设备固件升级方法的第四实施例的流程示意图;
图5为本发明汽车诊断设备固件升级方法的第五实施例的流程示意图;
图6为本发明汽车诊断设备固件升级装置的第一实施例的功能模块示意图;
图7为本发明汽车诊断设备固件升级装置的第二实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:在接收到固件升级指令时,加载汽车诊断接口函数;调用所述汽车诊断接口函数中的本地配置函数;通过所述本地配置函数中的固件升级命令将升级数据发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级。
由于汽车诊断接口的通信协议中未提供对汽车诊断设备进行固件升级相关的参数,使得汽车诊断设备无法通过汽车诊断接口进行固件升级的问题。
基于上述问题,本发明提供一种汽车诊断设备固件升级方法。
参照图1,图1为本发明汽车诊断设备固件升级方法的第一实施例的流程示意图。
在本实施例中,所述汽车诊断设备固件升级方法包括以下步骤:
步骤S10,在接收到固件升级指令时,加载汽车诊断接口函数;
将待升级的汽车诊断设备连接至上位机,所述上位机在接收到固件升级指令时,加载汽车诊断接口函数,以通过所述汽车诊断接口函数传输升级数据至所述汽车诊断设备。或者,也可以通过所述上位机内的升级程序在接收到固件升级指令时,加载汽车诊断接口函数,以通过所述汽车诊断接口函数传输升级数据至所述汽车诊断设备。
优选的,所述汽车诊断接口函数可以为J2534接口函数;所述J2534接口与所述汽车诊断设备的固件程序之间按照SAE J2534通信协议进行通信;所述SAE J2534通信协议允许所述J2534接口与所述汽车诊断设备的固件程序之间通过WLAN(无线LAN)(Wi-Fi)、USB或者网线进行通信。进一步的,可以将所述待升级的汽车诊断设备通过WLAN(无线LAN)(Wi-Fi)、USB串行接口或者网线连接至所述上位机。在本发明的其它实施例中,所述汽车诊断接口函数也可以为J2534接口函数以外的其它汽车诊断接口函数。
所述固件升级指令,可以通过所述上位机提供用于进行固件升级的物理按键,通过所述物理按键触发所述固件升级指令;或者,也可以通过所述上位机的人机交互界面提供进行固件升级的快捷图标,供用户基于所述快捷图标触发所述固件升级指令;或者,也可以所述上位机提供进行固件升级的触摸按键,在侦测到用户基于所述触摸按键的触摸操作时,触发所述固件升级指令。
步骤S20,调用所述汽车诊断接口函数中的本地配置函数;
所述汽车诊断接口函数中含有本地配置函数,所述本地配置函数对应的配置参数中含有固件升级命令相关的参数,以通过所述固件升级命令传输升级数据至汽车诊断设备。可以通过所述上位机的升级程序调用所述汽车诊断接口函数中的本地配置函数。
例如:在J2534API(J2534接口函数)中设置PassThruIoctl(本地配置函数),并在所述本地配置函数对应的配置参数中设置FIRMWARE_UPGRADE(固件升级命令)相关的参数,以通过所述固件升级命令传输升级数据至汽车诊断设备。
步骤S30,通过所述本地配置函数中的固件升级命令将升级数据发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级。
所述上位机通过所述本地配置函数中的固件升级命令将升级数据发送至所述汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级;或者,所述上位机的升级程序通过所述本地配置函数中的固件升级命令将升级数据发送至所述汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级。
优选的,所述汽车诊断设备可以根据所述升级数据生成新的固件程序,所述汽车诊断设备的启动程序将新生成的固件程序替换原有的固件程序,并重新启动所述汽车诊断设备,以运行新的固件程序,实现所述汽车诊断设备的固件升级。
进一步的,所述步骤S30之后还可以,在接收到所述汽车诊断设备返回的固件升级成功响应时,生成固件升级完成的提示信息并进行显示。
所述汽车诊断设备在固件升级完成时,返回固件升级成功响应至所述上位机,所述上位机在接收到所述固件升级成功响应时,生成固件升级完成的提示信息并通过显示界面进行显示,以提示用户固件升级完成,提高用户体验。
本发明通过汽车诊断接口函数的本地配置函数中添加的固件升级命令,将升级数据通过汽车诊断接口发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级,实现了通过汽车诊断接口对汽车诊断设备进行固件升级,使得汽车诊断设备的固件升级更加便捷。
参照图2,图2为本发明汽车诊断设备固件升级方法的第二实施例的流程示意图。基于上述汽车诊断设备固件升级方法的第一实施例,所述步骤S30包括:
步骤S31,通过所述固件升级命令中的握手子命令与所述汽车诊断设备进行握手;
所述上位机可以通过所述固件升级命令向所述汽车诊断设备发送握手子命令;所述汽车诊断设备在接收到所述握手子命令时,进入升级模式并返回握手响应至所述上位机;所述上位机在接收到所述握手响应时,确定握手成功。以使所述汽车诊断设备进入升级模式,为传输升级数据做好准备。
步骤S32,在握手成功时,通过所述固件升级命令中的写入子命令将所述升级数据分次发送给所述汽车诊断设备;
所述上位机可以通过所述写入子命令将所述升级数据的子数据依次发送给所述汽车诊断设备;当接收到所述汽车诊断设备返回的写入响应时,发送下一子数据,直至发送完所述升级数据的全部子数据。以实现升级数据的传输。
步骤S33,在所述升级数据全部发送完成时,通过所述固件升级命令中的校验子命令对所述升级数据进行整体校验;
步骤S34,在所述整体校验成功时,确定所述升级数据发送完成。
所述上位机可以将所述升级数据按照预设数据量分别计算校验值;将计算得到的校验值通过所述校验子命令依次发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的校验值进行校验;在接收到所述汽车诊断设备返回的校验成功响应时,发送下一校验值,直至计算得到的校验值全部校验完成;在所述整体校验成功时,确定所述升级数据发送完成。以保证所传输的升级数据的完整性及正确性。
本实施例通过本地配置函数的固件升级命令中的握手子命令与汽车诊断设备进行握手,以使所述汽车诊断设备进入升级模式,并通过所述固件升级命令中的写入子命令将所述升级数据分次发送给所述汽车诊断设备,以实现通过汽车诊断接口传输升级数据,并在升级数据发送完成时进行整体校验,以保证传输的升级数据的完整性及正确性。
参照图3,图3为本发明汽车诊断设备固件升级方法的第三实施例的流程示意图。基于上述汽车诊断设备固件升级方法的第二实施例,所述步骤S32包括:
步骤S320,在握手成功时,通过所述写入子命令将所述升级数据的子数据及对应的校验值依次发送给所述汽车诊断设备,以供所述汽车诊断设备对接收到的子数据进行校验;
所述升级数据的子数据可以是分次传输的预设数据量的升级数据,例如:所述升级数据为32k的数据,将128字节的升级数据作为所述升级数据的子数据,每次传输所述128字节的子数据给所述汽车诊断设备,直至发送完全部32k的升级数据。
优选的,所述汽车诊断设备可以在接收到子数据时,根据本次接收的子数据计算对应的校验值,并将计算得到的校验值与接收到的校验值进行比对,若计算得到的校验值与接收到的校验值相同,则确定本次接收到的子数据校验通过。
步骤S321,当接收到所述汽车诊断设备在校验成功时返回的写入响应时,发送下一子数据及对应校验值,直至发送完所述升级数据的全部子数据。
所述上位机在握手成功时,通过所述写入子命令将所述升级数据的子数据及对应的校验值依次发送给所述汽车诊断设备,以供所述汽车诊断设备对本次接收到的子数据进行校验;当接收到所述汽车诊断设备在校验成功时返回的写入响应时,发送下一子数据及对应校验值,直至发送完所述升级数据的全部子数据。
例如:所述上位机内的升级程序调用J2534API(J2534接口函数)中的PassThruIoctl(本地配置函数),并将IoctlID参数(本地配置参数)设置为:FIRMWARE_UPGRADE(固件升级命令),输入子命令WRITE_ARM9(写入子命令),输入128字节的子数据和对应的CRC校验值,将所述写入子命令发送给所述汽车诊断设备;所述汽车诊断设备根据接收到的CRC校验值,对本次接收到的128字节的子数据进行校验,在校验成功时返回写入响应至所述上位机的升级程序;当接收到所述汽车诊断设备返回的写入响应时,发送下一128字节的子数据及对应校验值,直至发送完所述升级数据的全部子数据。
本实施例通过固件升级命令中的写入子命令将所述升级数据的子数据及对应的校验值依次发送给所述汽车诊断设备,通过对应的校验值对每次发送的子数据进行校验,以保证每次发送的子数据的正确性及完整性。实现了通过汽车诊断接口传输升级数据进行汽车诊断设备的固件升级。
参照图4,图4为本发明汽车诊断设备固件升级方法的第四实施例的流程示意图。基于上述汽车诊断设备固件升级方法的第二实施例,所述步骤S33包括:
步骤S331,在所述升级数据全部发送完成时,将所述升级数据按照预设数据量分别计算校验值;
所述预设数据量,可以是大于所述子数据数据量的任一数据量,以将所述升级数据按照所述预设数据量分别计算校验值,例如:将32k的升级数据按照每1k的数据分别计算校验值,得到共32个校验值。
步骤S332,将计算得到的校验值通过所述校验子命令依次发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的校验值进行校验;
步骤S333,在接收到所述汽车诊断设备返回的校验成功响应时,发送下一校验值,直至计算得到的校验值全部校验完成。
所述上位机将计算得到的校验值通过所述校验子命令依次发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的校验值进行校验;在接收到所述汽车诊断设备返回的校验成功响应时,发送下一校验值,直至计算得到的校验值全部校验完成。
例如:所述上位机从头读取升级数据,计算出每1K数据的CRC校验值,调用J2534API(J2534接口函数)中的PassThruIoctl(本地配置函数),并将IoctlID参数(本地配置参数)设置为:FIRMWARE_UPGRADE(固件升级命令),CEC_WRITE_ARM9(校验子命令),输入计算出的CRC校验值,将所述校验子命令发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的CRC校验值进行校验;在接收到所述汽车诊断设备返回的校验成功响应时,发送下一CRC校验值,直至计算得到的CRC校验值全部校验完成。
优选的,所述汽车诊断设备可以将接收到的升级数据的按照所述预设数据量分别计算校验值,在接收到上位机的校验子命令时,并将计算得到的校验值与接收到的校验值进行比对,若计算得到的校验值与接收到的校验值相同,则确定本次接收到的校验值校验通过。
本实施例在升级数据全部发送完成后,将所述升级数据按照预设数据量分别计算校验值,并通过所述固件升级命令中的校验子命令实现对所传输的升级数据的整体校验,保证了传输的升级数据的完整性及正确性。
参照图5,图5为本发明汽车诊断设备固件升级方法的第五实施例的流程示意图。基于上述汽车诊断设备固件升级方法的第二实施例,所述步骤S31包括:
步骤S311,向所述汽车诊断设备发送所述握手子命令;
步骤S312,接收来自所述汽车诊断设备返回的握手响应;
步骤S313,在接收到所述握手响应时,确定握手成功。
所述上位机向所述汽车诊断设备发送所述握手子命令,以供所述汽车诊断设备在接收到所述握手子命令时进入升级模式并返回握手响应;所述上位机在接收到所述汽车诊断设备返回的握手响应时,确定握手成功。
例如:可以通过所述上位机内的升级程序调用J2534API(J2534接口函数)中的PassThruIoctl(本地配置函数),并将IoctlID参数(本地配置参数)设置为:FIRMWARE_UPGRADE(固件升级命令),输入子命令HANDSHAKE_ARM9(握手子命令),向所述汽车诊断设备发送握手命令,所述汽车诊断设备在接收到所述握手命令时,进入升级模式,并向所述升级程序返回握手响应。
本实施例通过所述固件升级命令中的握手子命令与所述汽车诊断设备进行握手,在接收到所述汽车诊断设备的握手响应时确定握手成功,以使所述汽车诊断设备进入升级模式,为传输升级数据做好准备。
上述第一至第五实施例的汽车诊断设备固件升级方法的执行主体均可以为进行汽车诊断设备固件升级的上位机。更进一步地,所述汽车诊断设备固件升级方法可以由安装在所述上位机上的升级程序实现,其中,所述上位机可以包括但不限于PC、笔记本电脑、汽车综合诊断设备等。
本发明进一步提供一种汽车诊断设备固件升级装置。
参照图6,图6为本发明汽车诊断设备固件升级装置的第一实施例的功能模块示意图。
在本实施例中,所述汽车诊断设备固件升级装置包括:加载模块10、调用模块20及发送模块30。
所述加载模块10,用于在接收到固件升级指令时,加载汽车诊断接口函数;
将待升级的汽车诊断设备连接至上位机,所述上位机在接收到固件升级指令时,加载汽车诊断接口函数,以通过所述汽车诊断接口函数传输升级数据至所述汽车诊断设备。或者,也可以通过所述上位机内的升级程序在接收到固件升级指令时,加载汽车诊断接口函数,以通过所述汽车诊断接口函数传输升级数据至所述汽车诊断设备。
优选的,所述汽车诊断接口函数可以为J2534接口函数;所述J2534接口与所述汽车诊断设备的固件程序之间按照SAE J2534通信协议进行通信;所述SAE J2534通信协议允许所述J2534接口与所述汽车诊断设备的固件程序之间通过WLAN(无线LAN)(Wi-Fi)、USB或者网线进行通信。进一步的,可以将所述待升级的汽车诊断设备通过WLAN(无线LAN)(Wi-Fi)、USB串行接口或者网线连接至所述上位机。在本发明的其它实施例中,所述汽车诊断接口函数也可以为J2534接口函数以外的其它汽车诊断接口函数。
所述固件升级指令,可以通过所述上位机提供用于进行固件升级的物理按键,通过所述物理按键触发所述固件升级指令;或者,也可以通过所述上位机的人机交互界面提供进行固件升级的快捷图标,供用户基于所述快捷图标触发所述固件升级指令;或者,也可以所述上位机提供进行固件升级的触摸按键,在侦测到用户基于所述触摸按键的触摸操作时,触发所述固件升级指令。
所述调用模块20,用于调用所述汽车诊断接口函数中的本地配置函数;
所述汽车诊断接口函数中含有本地配置函数,所述本地配置函数对应的配置参数中含有固件升级命令相关的参数,以通过所述固件升级命令传输升级数据至汽车诊断设备。可以通过所述上位机的升级程序调用所述汽车诊断接口函数中的本地配置函数。
例如:在J2534API(J2534接口函数)中设置PassThruIoctl(本地配置函数),并在所述本地配置函数对应的配置参数中设置FIRMWARE_UPGRADE(固件升级命令)相关的参数,以通过所述固件升级命令传输升级数据至汽车诊断设备。
所述发送模块30,用于通过所述本地配置函数中的固件升级命令将升级数据发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级。
所述上位机通过所述本地配置函数中的固件升级命令将升级数据发送至所述汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级;或者,所述上位机的升级程序通过所述本地配置函数中的固件升级命令将升级数据发送至所述汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级。
优选的,所述汽车诊断设备可以根据所述升级数据生成新的固件程序,所述汽车诊断设备的启动程序将新生成的固件程序替换原有的固件程序,并重新启动所述汽车诊断设备,以运行新的固件程序,实现所述汽车诊断设备的固件升级。
进一步的,所述汽车诊断设备固件升级装置还包括提示模块;
所述提示模块,还用于在接收到所述汽车诊断设备返回的固件升级成功响应时,生成固件升级完成的提示信息并进行显示。
所述汽车诊断设备在固件升级完成时,返回固件升级成功响应至所述上位机,所述上位机在接收到所述固件升级成功响应时,生成固件升级完成的提示信息并通过显示界面进行显示,以提示用户固件升级完成,提高用户体验。
本发明通过汽车诊断接口函数的本地配置函数中添加的固件升级命令,将升级数据通过汽车诊断接口发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级,实现了通过汽车诊断接口对汽车诊断设备进行固件升级,使得汽车诊断设备的固件升级更加便捷。
参照图7,图7为本发明汽车诊断设备固件升级装置的第二实施例的功能模块示意图。基于上述汽车诊断设备固件升级装置的第一实施例,所述发送模块30包括握手单元31、数据发送单元32、校验单元33及确定单元34;
所述握手单元31,用于通过所述固件升级命令中的握手子命令与所述汽车诊断设备进行握手;
所述上位机可以通过所述固件升级命令向所述汽车诊断设备发送握手子命令;所述汽车诊断设备在接收到所述握手子命令时,进入升级模式并返回握手响应至所述上位机;所述上位机在接收到所述握手响应时,确定握手成功。以使所述汽车诊断设备进入升级模式,为传输升级数据做好准备。
所述数据发送单元32,用于在握手成功时,通过所述固件升级命令中的写入子命令将所述升级数据分次发送给所述汽车诊断设备;
所述上位机可以通过所述写入子命令将所述升级数据的子数据依次发送给所述汽车诊断设备;当接收到所述汽车诊断设备返回的写入响应时,发送下一子数据,直至发送完所述升级数据的全部子数据。以实现升级数据的传输。
所述校验单元33,用于在所述升级数据全部发送完成时,通过所述固件升级命令中的校验子命令对所述升级数据进行整体校验;
所述确定单元34,用于在所述整体校验成功时,确定所述升级数据发送完成。
所述上位机可以将所述升级数据按照预设数据量分别计算校验值;将计算得到的校验值通过所述校验子命令依次发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的校验值进行校验;在接收到所述汽车诊断设备返回的校验成功响应时,发送下一校验值,直至计算得到的校验值全部校验完成;在所述整体校验成功时,确定所述升级数据发送完成。以保证所传输的升级数据的完整性及正确性。
本实施例通过本地配置函数的固件升级命令中的握手子命令与汽车诊断设备进行握手,以使所述汽车诊断设备进入升级模式,并通过所述固件升级命令中的写入子命令将所述升级数据分次发送给所述汽车诊断设备,以实现通过汽车诊断接口传输升级数据,并在升级数据发送完成时进行整体校验,以保证传输的升级数据的完整性及正确性。
进一步的,所述数据发送单元32,还用于在握手成功时,通过所述写入子命令将所述升级数据的子数据及对应的校验值依次发送给所述汽车诊断设备,以供所述汽车诊断设备对接收到的子数据进行校验;
所述升级数据的子数据可以是分次传输的预设数据量的升级数据,例如:所述升级数据为32k的数据,将128字节的升级数据作为所述升级数据的子数据,每次传输所述128字节的子数据给所述汽车诊断设备,直至发送完全部32k的升级数据。
优选的,所述汽车诊断设备可以在接收到子数据时,根据本次接收的子数据计算对应的校验值,并将计算得到的校验值与接收到的校验值进行比对,若计算得到的校验值与接收到的校验值相同,则确定本次接收到的子数据校验通过。
所述数据发送单元32,还用于当接收到所述汽车诊断设备在校验成功时返回的写入响应时,发送下一子数据及对应校验值,直至发送完所述升级数据的全部子数据。
所述上位机在握手成功时,通过所述写入子命令将所述升级数据的子数据及对应的校验值依次发送给所述汽车诊断设备,以供所述汽车诊断设备对本次接收到的子数据进行校验;当接收到所述汽车诊断设备在校验成功时返回的写入响应时,发送下一子数据及对应校验值,直至发送完所述升级数据的全部子数据。
例如:所述上位机内的升级程序调用J2534API(J2534接口函数)中的PassThruIoctl(本地配置函数),并将IoctlID参数(本地配置参数)设置为:FIRMWARE_UPGRADE(固件升级命令),输入子命令WRITE_ARM9(写入子命令),输入128字节的子数据和对应的CRC校验值,将所述写入子命令发送给所述汽车诊断设备;所述汽车诊断设备根据接收到的CRC校验值,对本次接收到的128字节的子数据进行校验,在校验成功时返回写入响应至所述上位机的升级程序;当接收到所述汽车诊断设备返回的写入响应时,发送下一128字节的子数据及对应校验值,直至发送完所述升级数据的全部子数据。
本实施例通过固件升级命令中的写入子命令将所述升级数据的子数据及对应的校验值依次发送给所述汽车诊断设备,通过对应的校验值对每次发送的子数据进行校验,以保证每次发送的子数据的正确性及完整性。实现了通过汽车诊断接口传输升级数据进行汽车诊断设备的固件升级。
进一步的,所述校验单元33,还用于在所述升级数据全部发送完成时,将所述升级数据按照预设数据量分别计算校验值;
所述预设数据量,可以是大于所述子数据数据量的任一数据量,以将所述升级数据按照所述预设数据量分别计算校验值,例如:将32k的升级数据按照每1k的数据分别计算校验值,得到共32个校验值。
所述校验单元33,还用于将计算得到的校验值通过所述校验子命令依次发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的校验值进行校验;
所述校验单元33,还用于在接收到所述汽车诊断设备返回的校验成功响应时,发送下一校验值,直至计算得到的校验值全部校验完成。
所述上位机将计算得到的校验值通过所述校验子命令依次发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的校验值进行校验;在接收到所述汽车诊断设备返回的校验成功响应时,发送下一校验值,直至计算得到的校验值全部校验完成。
例如:所述上位机从头读取升级数据,计算出每1K数据的CRC校验值,调用J2534API(J2534接口函数)中的PassThruIoctl(本地配置函数),并将IoctlID参数(本地配置参数)设置为:FIRMWARE_UPGRADE(固件升级命令),CEC_WRITE_ARM9(校验子命令),输入计算出的CRC校验值,将所述校验子命令发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的CRC校验值进行校验;在接收到所述汽车诊断设备返回的校验成功响应时,发送下一CRC校验值,直至计算得到的CRC校验值全部校验完成。
优选的,所述汽车诊断设备可以将接收到的升级数据的按照所述预设数据量分别计算校验值,在接收到上位机的校验子命令时,并将计算得到的校验值与接收到的校验值进行比对,若计算得到的校验值与接收到的校验值相同,则确定本次接收到的校验值校验通过。
本实施例在升级数据全部发送完成后,将所述升级数据按照预设数据量分别计算校验值,并通过所述固件升级命令中的校验子命令实现对所传输的升级数据的整体校验,保证了传输的升级数据的完整性及正确性。
进一步的,所述握手单元31,还用于向所述汽车诊断设备发送所述握手子命令;
所述握手单元31,还用于接收来自所述汽车诊断设备返回的握手响应;
所述握手单元31,还用于在接收到所述握手响应时,确定握手成功。
所述上位机向所述汽车诊断设备发送所述握手子命令,以供所述汽车诊断设备在接收到所述握手子命令时进入升级模式并返回握手响应;所述上位机在接收到所述汽车诊断设备返回的握手响应时,确定握手成功。
例如:可以通过所述上位机内的升级程序调用J2534API(J2534接口函数)中的PassThruIoctl(本地配置函数),并将IoctlID参数(本地配置参数)设置为:FIRMWARE_UPGRADE(固件升级命令),输入子命令HANDSHAKE_ARM9(握手子命令),向所述汽车诊断设备发送握手命令,所述汽车诊断设备在接收到所述握手命令时,进入升级模式,并向所述升级程序返回握手响应。
本实施例通过所述固件升级命令中的握手子命令与所述汽车诊断设备进行握手,在接收到所述汽车诊断设备的握手响应时确定握手成功,以使所述汽车诊断设备进入升级模式,为传输升级数据做好准备。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种汽车诊断设备固件升级方法,其特征在于,所述汽车诊断设备固件升级方法包括以下步骤:
在接收到固件升级指令时,加载汽车诊断接口函数;
调用所述汽车诊断接口函数中的本地配置函数;
通过所述本地配置函数中的固件升级命令将升级数据发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级,其中,所述通过所述本地配置函数中的固件升级命令将升级数据发送至汽车诊断设备的步骤包括:
通过所述固件升级命令中的握手子命令与所述汽车诊断设备进行握手;
在握手成功时,通过所述固件升级命令中的写入子命令将所述升级数据分次发送给所述汽车诊断设备;
在所述升级数据全部发送完成时,通过所述固件升级命令中的校验子命令对所述升级数据进行整体校验;
在所述整体校验成功时,确定所述升级数据发送完成。
2.如权利要求1所述的汽车诊断设备固件升级方法,其特征在于,所述在握手成功时,通过所述固件升级命令中的写入子命令将所述升级数据分次发送给所述汽车诊断设备的步骤包括:
在握手成功时,通过所述写入子命令将所述升级数据的子数据及对应的校验值依次发送给所述汽车诊断设备,以供所述汽车诊断设备对接收到的子数据进行校验;
当接收到所述汽车诊断设备在校验成功时返回的写入响应时,发送下一子数据及对应校验值,直至发送完所述升级数据的全部子数据。
3.如权利要求1所述的汽车诊断设备固件升级方法,其特征在于,所述在所述升级数据全部发送完成时,通过所述固件升级命令中的校验子命令对所述升级数据进行整体校验的步骤包括:
在所述升级数据全部发送完成时,将所述升级数据按照预设数据量分别计算校验值;
将计算得到的校验值通过所述校验子命令依次发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的校验值进行校验;
在接收到所述汽车诊断设备返回的校验成功响应时,发送下一校验值,直至计算得到的校验值全部校验完成。
4.如权利要求1至3任一项所述的汽车诊断设备固件升级方法,其特征在于,所述通过所述固件升级命令中的握手子命令与所述汽车诊断设备进行握手的步骤包括:
向所述汽车诊断设备发送所述握手子命令;
接收来自所述汽车诊断设备返回的握手响应;
在接收到所述握手响应时,确定握手成功。
5.一种汽车诊断设备固件升级装置,其特征在于,所述汽车诊断设备固件升级装置包括:
加载模块,用于在接收到固件升级指令时,加载汽车诊断接口函数;
调用模块,用于调用所述汽车诊断接口函数中的本地配置函数;
发送模块,用于通过所述本地配置函数中的固件升级命令将升级数据发送至汽车诊断设备,以供所述汽车诊断设备根据所述升级数据进行固件升级,其中,所述发送模块包括握手单元、数据发送单元、校验单元及确定单元;
所述握手单元,用于通过所述固件升级命令中的握手子命令与所述汽车诊断设备进行握手;
所述数据发送单元,用于在握手成功时,通过所述固件升级命令中的写入子命令将所述升级数据分次发送给所述汽车诊断设备;
所述校验单元,用于在所述升级数据全部发送完成时,通过所述固件升级命令中的校验子命令对所述升级数据进行整体校验;
所述确定单元,用于在所述整体校验成功时,确定所述升级数据发送完成。
6.如权利要求5所述的汽车诊断设备固件升级装置,其特征在于,所述数据发送单元,还用于在握手成功时,通过所述写入子命令将所述升级数据的子数据及对应的校验值依次发送给所述汽车诊断设备,以供所述汽车诊断设备对接收到的子数据进行校验;
所述数据发送单元,还用于当接收到所述汽车诊断设备在校验成功时返回的写入响应时,发送下一子数据及对应校验值,直至发送完所述升级数据的全部子数据。
7.如权利要求5所述的汽车诊断设备固件升级装置,其特征在于,所述校验单元,还用于在所述升级数据全部发送完成时,将所述升级数据按照预设数据量分别计算校验值;
所述校验单元,还用于将计算得到的校验值通过所述校验子命令依次发送给所述汽车诊断设备,以供所述汽车诊断设备对计算得到的校验值进行校验;
所述校验单元,还用于在接收到所述汽车诊断设备返回的校验成功响应时,发送下一校验值,直至计算得到的校验值全部校验完成。
8.如权利要求5至7任一项所述的汽车诊断设备固件升级装置,其特征在于,所述握手单元,还用于向所述汽车诊断设备发送所述握手子命令;
所述握手单元,还用于接收来自所述汽车诊断设备返回的握手响应;
所述握手单元,还用于在接收到所述握手响应时,确定握手成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510536620.1A CN105138373B (zh) | 2015-08-27 | 2015-08-27 | 汽车诊断设备固件升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510536620.1A CN105138373B (zh) | 2015-08-27 | 2015-08-27 | 汽车诊断设备固件升级方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105138373A CN105138373A (zh) | 2015-12-09 |
CN105138373B true CN105138373B (zh) | 2018-10-23 |
Family
ID=54723730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510536620.1A Active CN105138373B (zh) | 2015-08-27 | 2015-08-27 | 汽车诊断设备固件升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138373B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111080817B (zh) * | 2019-11-27 | 2021-12-24 | 天地融科技股份有限公司 | 一种车载单元数据写入方法、装置及系统、车载单元 |
CN112162765A (zh) * | 2020-08-28 | 2021-01-01 | 深圳市元征科技股份有限公司 | 固件升级方法、上位机及存储介质 |
CN112540778A (zh) * | 2020-11-13 | 2021-03-23 | 深圳市元征科技股份有限公司 | 车辆数据的刷写方法、诊断设备及刷写系统 |
CN113534772A (zh) * | 2021-06-25 | 2021-10-22 | 深圳市元征未来汽车技术有限公司 | 故障码清除方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866228A (zh) * | 2006-06-20 | 2006-11-22 | 北京飞天诚信科技有限公司 | 一种通讯协议受限情况下usb设备的在线升级方法 |
CN102455970A (zh) * | 2010-10-19 | 2012-05-16 | 中兴通讯股份有限公司 | 带可靠性检测功能的多外设boot实现方法、设备及系统 |
CN103761122A (zh) * | 2013-12-31 | 2014-04-30 | 青岛歌尔声学科技有限公司 | 一种芯片固件的升级方法和系统 |
CN104461654A (zh) * | 2014-12-27 | 2015-03-25 | 西安大唐电信有限公司 | 一种obd设备功能单元及固件分类可选升级方法 |
-
2015
- 2015-08-27 CN CN201510536620.1A patent/CN105138373B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1866228A (zh) * | 2006-06-20 | 2006-11-22 | 北京飞天诚信科技有限公司 | 一种通讯协议受限情况下usb设备的在线升级方法 |
CN102455970A (zh) * | 2010-10-19 | 2012-05-16 | 中兴通讯股份有限公司 | 带可靠性检测功能的多外设boot实现方法、设备及系统 |
CN103761122A (zh) * | 2013-12-31 | 2014-04-30 | 青岛歌尔声学科技有限公司 | 一种芯片固件的升级方法和系统 |
CN104461654A (zh) * | 2014-12-27 | 2015-03-25 | 西安大唐电信有限公司 | 一种obd设备功能单元及固件分类可选升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105138373A (zh) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105138373B (zh) | 汽车诊断设备固件升级方法及装置 | |
CN108206997B (zh) | 蓝牙连接方法及装置 | |
CN109656827B (zh) | 一种控件树生成方法和终端设备 | |
CN108268366B (zh) | 测试用例执行方法及装置 | |
CN110704328B (zh) | 接口测试方法、装置、电子设备及可读存储介质 | |
CN107977214A (zh) | 智能设备识别码的烧录方法、装置及计算机可读存储介质 | |
CN111880508A (zh) | 一种T-box参数自动标定和测试方法和装置 | |
CN111722113A (zh) | 一种电池检测方法及设备 | |
CN107783906A (zh) | 测试方法、装置及存储介质 | |
CN111352844A (zh) | 一种测试方法和相关装置 | |
CN110213313B (zh) | 一种文件上传的方法、相关装置及系统 | |
CN111722112A (zh) | 一种电池检测方法及设备 | |
CN114363225B (zh) | 基于mtqq协议的设备调试方式、系统及存储介质 | |
CN110069407B (zh) | 一种应用程序的功能测试方法和装置 | |
CN112198861A (zh) | 车载终端的应用程序测试方法 | |
CN109921960B (zh) | 一种idc机房网络异常测试方法及装置 | |
CN107506628B (zh) | 生物识别方法及相关产品 | |
CN115167330A (zh) | 用于车辆的通信错误诊断装置、具有该装置的系统及方法 | |
CN108897689A (zh) | 嵌入式应用程序仿真调试方法、设备以及可读存储介质 | |
CN107340841A (zh) | 快速初始化诊断仪的方法、终端及计算机可读存储介质 | |
CN107360295A (zh) | 一种测试主机及方法 | |
CN115756530A (zh) | 设备升级方法、装置、存储介质、电子设备及服务器 | |
CN115328770A (zh) | 应用程序的测试方法、装置、电子设备及存储介质 | |
CN109340999A (zh) | 空调主控板的参数验证方法、空调、校验遥控器及系统 | |
CN109828910A (zh) | monkey测试的方法及装置、计算机设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |