CN112068982B - 汽车设码方法、装置、计算机设备及存储介质 - Google Patents

汽车设码方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN112068982B
CN112068982B CN202010768019.6A CN202010768019A CN112068982B CN 112068982 B CN112068982 B CN 112068982B CN 202010768019 A CN202010768019 A CN 202010768019A CN 112068982 B CN112068982 B CN 112068982B
Authority
CN
China
Prior art keywords
code setting
data
code
file
preset
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
Application number
CN202010768019.6A
Other languages
English (en)
Other versions
CN112068982A (zh
Inventor
符雷
陈旗
金翔宇
孙继国
杨显平
吴凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yunjia Intelligent Technology Co Ltd
Original Assignee
Shenzhen Yunjia Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Yunjia Intelligent Technology Co Ltd filed Critical Shenzhen Yunjia Intelligent Technology Co Ltd
Priority to CN202010768019.6A priority Critical patent/CN112068982B/zh
Publication of CN112068982A publication Critical patent/CN112068982A/zh
Application granted granted Critical
Publication of CN112068982B publication Critical patent/CN112068982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及汽车领域,公开了一种汽车设码方法、装置、计算机设备及存储介质,其方法包括:接收汽车ECU基于预设广播命令的响应数据;判断响应数据中是否存在预设的设码文件版本标识;若响应数据中存在预设的设码文件版本标识,则将汽车ECU确定为能够被设码的目标ECU;当检测到基于目标ECU的设码指令时,自指定存储位置获取与设码文件版本标识配对的设码配置文件和设码校验文件;根据设码配置文件和设码校验文件生成设码数据;将设码数据写入目标ECU。本发明可以降低汽车电子故障的清除难度,提高汽车电子故障的清除效率。

Description

汽车设码方法、装置、计算机设备及存储介质
技术领域
本发明涉及汽车领域,尤其涉及一种汽车设码方法、装置、计算机设备及存储介质。
背景技术
汽车ECU(Electronic Control Unit,电子控制器单元)是汽车重要部件之一,对汽车的安全驾驶具有重大作用。随着ECU单元的普及化以及功能多样化,汽车电子故障发生的频次也逐渐增多。
设码,即为汽车ECU写入配置数据,在一些情况下,汽车电子故障表现为ECU单元的设码数据丢失或无设码数据。这种汽车电子故障维修难度较高,往往需要返厂维修,导致故障的清除效率低下,大大增加了车主的不便。
发明内容
基于此,有必要针对上述技术问题,提供一种汽车设码方法、装置、计算机设备及存储介质,旨在实现对汽车ECU进行自动设码,从而提高由于设码数据丢失或无设码数据而导致的汽车电子故障的清除效率。
一种汽车设码方法,包括:
接收汽车ECU基于预设广播命令的响应数据;
判断所述响应数据中是否存在预设的设码文件版本标识;
若所述响应数据中存在所述预设的设码文件版本标识,则将所述汽车ECU确定为能够被设码的目标ECU;
当检测到基于所述目标ECU的设码指令时,自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件;
根据所述设码配置文件和所述设码校验文件生成设码数据;
将所述设码数据写入所述目标ECU。
一种汽车设码装置,包括:
接收模块,用于接收汽车ECU基于预设广播命令的响应数据;
判断标识模块,用于判断所述响应数据中是否存在预设的设码文件版本标识;
确定目标ECU模块,用于若所述响应数据中存在所述预设的设码文件版本标识,则将所述汽车ECU确定为能够被设码的目标ECU;
获取文件模块,用于当检测到基于所述目标ECU的设码指令时,自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件;
生成设码数据模块,用于根据所述设码配置文件和所述设码校验文件生成设码数据;
写入模块,用于将所述设码数据写入所述目标ECU。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述汽车设码方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述汽车设码方法。
上述汽车设码方法、装置、计算机设备及存储介质,通过接收汽车ECU基于预设广播命令的响应数据,以读取可被汽车诊断设备识别的ECU数据。判断所述响应数据中是否存在预设的设码文件版本标识;若所述响应数据中存在预设的设码文件版本标识,则将所述汽车ECU确定为能够被设码的目标ECU,以确定ECU的设码文件版本标识。自指定存储位置获取与所述设码文件版本标识配对的设码配置文件和设码校验文件,以匹配正确的设码文件。根据所述设码配置文件和所述设码校验文件生成设码数据,以计算出待写入的设码数据。将所述设码数据写入所述目标ECU,以完成对目标ECU的设码工作。本发明实现了对汽车ECU进行自动设码,从而提高了由于设码数据丢失或无设码数据而导致的汽车电子故障的清除效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中汽车设码方法的一应用环境示意图;
图2是本发明一实施例中汽车设码方法的一流程示意图;
图3是本发明一实施例中汽车设码方法的一流程示意图;
图4是本发明一实施例中汽车设码方法的一流程示意图;
图5是本发明一实施例中汽车设码方法的一流程示意图;
图6是本发明一实施例中汽车设码方法的一流程示意图;
图7是本发明一实施例中汽车设码方法的一流程示意图;
图8是本发明一实施例中汽车设码方法的一流程示意图;
图9是本发明一实施例中汽车设码装置的一结构示意图;
图10是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供的汽车设码方法,可应用在如图1的应用环境中,其中,客户端与服务端进行通信。其中,客户端可以是各种型号的汽车诊断设备。服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。需要注意的是,汽车设码方法解决的电子故障指的是程序方面的故障,而非硬件方面的故障。
在一实施例中,如图2所示,提供一种汽车设码方法,以该方法应用在图1中的客户端为例进行说明,包括如下步骤:
S10、接收汽车ECU基于预设广播命令的响应数据。
本实施例中,汽车诊断设备与汽车建立OBD(On Board Diagnostics)通信,以接收汽车ECU的响应数据。汽车诊断设备可以是汽车诊断仪。具体的,可通过专用的连接线连接汽车诊断设备和汽车的OBD接口。在接收响应数据前,可由汽车诊断设备向ECU发出若干的预设广播指令。示意性的,在汽车诊断设备与汽车建立OBD通信后,用户可在汽车诊断设备的功能界面上进行操作,以触发上述预设广播指令。在触发预设广播指令之前,需要通过识别VIN码(Vehicle Identification Number,车架号码)或手动输入VIN码以保证汽车诊断设备与车辆之间OBD通信的安全性。
在一示例中,汽车诊断设备发送的广播命令可表示为:
Req=05 06 F1 DF 03 22 f1 01。
其对应的ECU响应数据为一组流控帧,表示为:
Res=08 06 01 F1 10 44 62 f1 01 01 01。
Req=08 06 F1 01 30 00 00 00 00 00 00。
Res=08 06 01 F1 21 00 06 16 07 12 8f;
Res=08 06 01 F1 22 04 d2 01 00 00 10;
Res=08 06 01 F1 23 00 00 00 01 00 00;
Res=08 06 01 F1 24 09 0c 02 06 00 06;
Res=08 06 01 F1 25 00 00 09 06 03 03;
Res=08 06 01 F1 26 01 08 00 00 09 08;
Res=08 06 01 F1 27 04 03 08 05 00 00;
Res=08 06 01 F1 28 09 09 04 04 02 05;
Res=08 06 01 F1 29 00 00 09 0a 04 03;
Res=08 06 01 F1 2a 3e 05 00 00 09 0b;
Res=05 06 01 F1 2b 04 04 0c。
S20、判断所述响应数据中是否存在预设的设码文件版本标识。
S30、若所述响应数据中存在所述预设的设码文件版本标识,则将所述汽车ECU确定为能够被设码的目标ECU。
本实施例中,响应数据是一种格式化的数据。每帧响应数据包括了数据头和数据体两个部分。可以对响应数据进行处理,去除数据头,剩余的数据体组合成有效数据。有效数据再经位计算和数据分割,最终获得设码文件版本标识。设码文件版本标识可以指ECU的文件名和版本号。对于一个ECU,其对应的设码文件版本标识可以是一个或多个。设码文件版本标识的个数与设码次数相等。
在一些特殊情况下,若无法从响应数据中提取出有效的设码文件版本标识,则可以当前汽车的配置信息在预设数据库中查找出厂默认的设码文件版本标识或最新版本的设码文件版本标识。设码文件版本标识是可以是05开头的字段,若存在该字段,则说明该ECU能够被设码,此时将该ECU加入ECU列表中。预设数据库可以是汽车厂商或汽车维修公司构建的用于存储汽车配置信息的数据库。
S40、当检测到基于所述目标ECU的设码指令时,自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件。
本实施例中,指定存储位置可以指与汽车诊断设备建立网络连接的预设数据库,也可以汽车诊断设备内的存储器。预设数据库可以存储在指定服务器上。在一些情况下,汽车诊断设备的存储器可以预先存储若干设码配置文件和设码校验文件,若汽车诊断设备的存储器中存在与设码文件版本标识配对的设码配置文件和设码校验文件,则从上述存储器获取与设码文件版本标识配对的设码配置文件和设码校验文件。若汽车诊断设备的存储器中不存在与设码文件版本标识配对的设码配置文件和设码校验文件,则将设码文件版本标识发送到指定服务器,由指定服务器根据上述设码文件版本标识在预设数据库进行查询,获取与设码文件版本标识配对的设码配置文件和设码校验文件,最后将与设码文件版本标识配对的设码配置文件和设码校验文件返回给汽车诊断设备。
S50、根据所述设码配置文件和所述设码校验文件生成设码数据。
本实施例中,设码配置文件包括ECU的设码数据的主要内容,而设码校验文件包括了若干用于从设码配置文件提取设码数据的校验规则(如字段校验关系)。汽车诊断设备可以根据这两个文件计算出设码数据。
S50、将所述设码数据写入所述目标ECU。
在生成设码数据后,可以切换汽车诊断设备与车辆的连接模式。在目标ECU允许写入设码数据的模式下,将设码数据写入目标ECU中。写入完毕后,可以发出特定的验证命令,若获得肯定应答,则表示写入数据正确。最后写入VIN码,发送复位指令至目标ECU,目标ECU复位。至此,完成汽车的设码步骤。设码后,用户可以点击进入快速清码功能页面,并点击页面上的快速清码功能选项,完成清除故障码ECU,即解决了汽车的电子故障问题。
步骤S10-S50中,接收汽车ECU基于预设广播命令的响应数据,以读取可被汽车诊断设备识别的ECU数据。判断所述响应数据中是否存在预设的设码文件版本标识;若所述响应数据中存在预设的设码文件版本标识,则将所述汽车ECU确定为能够被设码的目标ECU,以确定ECU的设码文件版本标识。自指定存储位置获取与所述设码文件版本标识配对的设码配置文件和设码校验文件,以匹配正确的设码文件。根据所述设码配置文件和所述设码校验文件生成设码数据,以计算出待写入的设码数据。将所述设码数据写入所述目标ECU,以完成对目标ECU的设码工作。
可选的,如图3所示,步骤S20,即判断所述响应数据中是否存在预设的设码文件版本标识,包括:
S201、对所述响应数据进行预处理,获得字符串序列。
响应数据是一种格式化的数据,属于命令结构。每帧响应数据包括了数据头和数据体两个部分。数据头包括了命令头、命令地址和命令字节。在进行预处理时,每帧响应数据需要去除前面5个字节,而第一帧需要去除前面6个字节,这些被去除的数据不计入有效数据。剩余的数据按顺序拼接,形成字符串序列,如62f101010100061607128f04d201000010000000010000090c020600060000090603030108000009080403080500000909040402050000090a04033e050000090b04040c。
S202、根据预设校验规则对所述字符串序列进行位计算校验,获得校验结果。
预设校验规则可以基于实际需要进行设置。示意性的,预设校验规则可以设置为,取出第10个字节8f,计算8f&80(位计算与),若不等于0,则需要偏移9个地址开始划分数据(校验结果1),若等于0,则不需要偏移(校验结果2)。示意性的,位计算校验的条件代码可以表示为:
if(Byte[0x0A]&0x80)!=0x00)。
S203、根据所述校验结果将所述字符串序列划分为若干个指定长度的数据块;
S204、分别判断每个所述数据块中是否存在所述预设的设码文件版本标识;
S205、若至少一个所述数据块中存在所述预设的设码文件版本标识,则判定所述响应数据中存所述在预设的设码文件版本标识。
指定长度可以根据需要进行设置。示意性的,指定长度可以是8个字节。可以分别判断每个数据块中是否存在预设的设码文件版本标识,以找出带有存在预设的设码文件版本标识的数据块。例如,字符串序列可以划分出如下数据块:010000090c020600、0600000906030301、0800000908040308、0500000909040402、050000090a04033e、050000090b04040c。预设标识可以根据需要进行设置。示意性的,预设标识可以指数据块的开头为05。即,上述数据块中,0500000909040402、050000090a04033e和050000090b04040c为设码文件版本标识。设码文件版本标识可以指ECU的文件名和版本号。设码文件版本标识出现的次数与设码的次数相等。
可选的,如图4所示,步骤S40之前,即所述当检测到基于所述目标ECU的设码指令时,自指定存储位置获取与所述设码文件版本标识配对的设码配置文件和设码校验文件接收汽车的ECU单元的读码数据之前,还包括:
S41、获取所述目标ECU单元的故障码信息;
S42、判断所述故障码信息中是否存在预设的设码故障标识;
S43、若所述故障码信息中存在所述预设的设码故障标识,则生成所述基于所述目标ECU的设码指令。
本实施例中,通过读取故障码信息判断ECU是否需要设码。执行设码功能之前,可以通过快速读码功能识别当前车辆的故障码信息,确定需要通过设码才能解决故障码的ECU。获取故障码信息的步骤包括:在汽车诊断设备中选择快速读码菜单,程序会根据不同的协议设置广播的协议层参数并发送广播进入命令和广播读码命令,根据汽车肯定响应的命令进行解析,分解出每个ECU对应的故障码,基于ECU映射关系以及解析出的故障码可以生成故障码文件CN_DTC_Updata.txt。通过读取该故障码文件,预设故障识别方法可以基于故障码描述确定ECU是否需要设码。示例性的,一需要设码的故障码描述可表示为:未存储当前设码数据。需要注意的是,在向ECU发送广播命令前,需要在汽车诊断设备的功能界面上将菜单切换为设码功能菜单(获取故障码信息时为快速读码菜单)。
可选的,如图5所示,步骤S40,即所述自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件,包括:
S401、将所述预设的设码文件版本标识发送至指定服务器;
S402、接收所述指定服务器返回的所述与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件。
本实施例中,指定存储位置可以是指定服务器。指定服务器上设置有预设数据库,指定服务器可以根据设码文件版本标识在预设数据库中查询并获取与设码文件版本标识配对的设码配置文件和设码校验文件,然后再将这两个文件返回给汽车诊断设备。
可选的,如图6所示,步骤S50,即所述根据所述设码配置文件和所述设码校验文件生成设码数据,包括:
S501、解析所述设码配置文件,得到汽车的硬件标识字段和所述目标ECU的设码数据信息字段,所述设码数据信息字段包括所述设码数据的物理地址、字节个数、计算类型和功能类型;
S502、根据所述硬件标识字段和所述设码数据信息字段获取激活信息字段;
S503、从所述设码校验文件解析出与所述硬件标识字段匹配的字段校验关系;
S504、根据所述字段校验关系确定所述设码配置文件的数据计算规则;
S505、根据所述数据计算规则处理所述设码配置文件,生成索引信息字段;
S506、根据所述硬件标识字段、所述设码数据信息字段、所述激活信息字段和所述索引信息字段生成所述设码数据。
本实施例中,设码数据主要包括四部分内容,分别为硬件标识字段、设码数据信息字段、激活信息字段和索引信息字段。
设码数据主要存储在设码配置文件中,可以逐步从设码配置文件中提取出各个字段的内容。
示意性的,在步骤S501中,可从设码配置文件中读取硬件标识字段。一硬件标识字段可表示为:
0x04,0xFF,0x00,0x00,0x09,0x09,0x00,0x00
“F015:F015,F010:0270,F030:0a6A,F001:001A,F025:062C,F020:09B7”。
上述硬件标识字段为与车辆底盘相关的数据,可以确定是否为同一底盘。硬件标识字段第一行前2个字节(0x04,0xFF)是固定设置,第3-6个字节取出00000909,而最后两字节是预留位。引号中数据就是对应的底盘数据,即底盘号映射的底盘ID。用于以下数据计算,当前车辆底盘为F025,其映射ID为062C。
然后在步骤S501中,继续解析设码配置文件,获得目标ECU的设码数据信息字段。设码数据信息字段可以表示为:
0x04,0xFF,0x00,0x00,0x09,0x09,0x00,0x01“3000,12,01,00”
0x04,0xFF,0x00,0x00,0x09,0x09,0x00,0x02“3001,0C,01,00”
0x04,0xFF,0x00,0x00,0x09,0x09,0x00,0x03“3002,02,01,00”
0x04,0xFF,0x00,0x00,0x09,0x09,0x00,0x04“3003,07,01,00”
0x04,0xFF,0x00,0x00,0x09,0x09,0x00,0x05“3004,05,01,00”
0x04,0xFF,0x00,0x00,0x09,0x09,0x00,0x06“3005,14,01,00”
0x04,0xFF,0x00,0x00,0x09,0x09,0x00,0x07“3010,02,01,00”
0x04,0xFF,0x00,0x00,0x09,0x09,0x00,0x08“3018,08,02,02”
0x04,0xFF,0x00,0x00,0x09,0x09,0x00,0x09“3019,84,02,01”。
以第一行为例,第一行前2个字节(0x04,0xFF)是固定设置,第3-6个字节为00000909数据,而最后两字节是预留位,按物理地址顺序填充即可。引号中包括四段内容,以第一行为例,第一段3000表示设码数据的物理地址,当排到第9序列表示需要刷写9帧数据,即给9个物理地址进行写入数据操作;第二段12表示设码数据的字节个数,第三段01表示设码数据的计算类型,第四段00表示设码数据的功能类型。
在步骤S502中,可以生成设码数据的第三种字段数据——激活信息字段。激活信息字段需要使用上述硬件标识字段和设码数据信息字段。如,硬件标识字段取出底盘数据为F025,转为ASCII为0x46,0x30,0x32,x35,设码数据信息字段取出的数据为3000、3001……3019等。以3000为例,将此两项和前置填充0x04,0xFF组合生成设码数据信息字段。设码数据信息字段可以表示为:
0x04,0xFF,0x46,0x30,0x32,0x35,0x30,0x00“12,062C,00”。
引号内,第一段12表示该帧数据有0x12个字节,第二段062C表示底盘ID,第三段00表示激活条件为假。第三段若为01则表示激活条件为真。
步骤S503-S505则是用于解析出索引信息字段。索引信息字段呈INI标准格式。
示意性的,一实施例中的索引信息字段,可以表示为:
0x04,0xFF,0x10,0x00,0x12,0x00,0x00,0x00\“
[BASE]\n\
MODE-3C\n\
CONDCFG-06A0\n\
START-00\n\
DATALEN-01\n\
MASK-01\n\
DEFAULT-01\n\
[DATA00]\n\
VALUE-\n\
001A-00\n\
F015-00\n\
0A6A-00\n\
062C_00\n\
0270-00\n\
0987-00\n\
[DATA01]\n\
VALUE-\n\
001A-01\n\
F015-01\n\
0A6A-01\n\
062C_01\n\
0270-01\n\
0987-01\n\
其中,索引ID部分可分为固定填充部分(0x04,0xFF)、物理地址部分(0x30,0x00),字节长度控制部分(0x12),其余为填充部分可根据具体顺序或者要求填充。
引号内容部分可按节点分为两块。其一是基本数据信息(BASE)。在基本数据信息中,关键字MODE对应字节计算模式3C、3D、3E分别表示‘<’、‘=’、‘>’。3C对应的算法是按位计算,3D对应的算法是按单字节计算,3E对应的算法是按多字节计算。关键字CONDCFG对应的条件判断文件ID,即设码校验文件的标识(文件名)。关键字START对应的值表示当前字节是第几个。关键字DATALEN对应的值表示当前计算字节的长度。关键字MASK对应的值会直接参与计算。关键字DEFAULT对应的值是在计算值不成功的时候直接使用。
其二是具体数据信息(DATA00等)。在一些情况下,具体数据信息可以有多个平行的根节点。主要根据第一步获取到的底盘ID,例如关键字062C对应的值00,就可设码校验文件中根据ID获取对应的条件(字段校验关系),进行条件计算是否为真,进行下一步处理,当所有根节点对应的值都计算完后,没有条件为真的值,则取出BASE根节点中的关键字为DEFAULT对应的值。重复执行该步操作,直至计算完所有的数据。
生成的设码数据包括硬件标识字段、设码数据信息字段、激活信息字段和索引信息字段。
可选的,如图7所示,步骤S506之后,即所述根据所述数据计算规则处理所述设码配置文件,生成索引信息字段之后,还包括:
S507、当所述设码数据的功能类型为指定功能类型时,调用预设校验算法;
S508、根据所述预设校验算法生成校验值;
S509、根据所述硬件标识字段、所述设码数据信息字段、所述激活信息字段、所述索引信息字段和所述校验值生成所述设码数据。
本实施例中,设码数据信息字段包含的功能类型为01的时候,需要调用一个预设算法,对之前所有计算好的设码数据进行校验。校验的值就是这个功能类型对应的写入数据。预设算法可以来自开源OPENSSL库。生成的设码数据包括硬件标识字段、设码数据信息字段、激活信息字段、索引信息字段和校验值。
可选的,如图8所示,步骤S60,即所述将所述设码数据写入所述目标ECU,包括:
S601、将当前会话模式切换为设码会话模式;
S602、在所述设码会话模式下,对所述目标ECU进行安全校验;
S603、通过安全校验后,将所述设码数据写入所述目标ECU。
本实施例中,在写入设码数据之前,需要进行会话模式的切换。只有切入设码会话模式,才能进入下一步操作。当前会话模式默认是诊断会话模式。可以发送命令获取会话模式的状态,再发送1003命令将当前会话模式切换为扩展会话模式。在扩展会话模式下,再发送1041命令将会话模式切换为设码会话模式。
处于设码会话模式时,需要对当前需要设码的目标ECU进行安全校验。如,可以通过发送2701命令获取一组随机种子,利用OPENSSL库里面的算法计算出一组特定的秘钥,通过2702发送给目标ECU,若能获取肯定响应,则可进入设码状态,写入计算完成的设码数据。
写入数据完毕后,通过发送31010f01命令进行写入数据校验,获取肯定应答,则表示写入数据正确,最后只需再次写入7位VIN码,然后发送1101命令复位目标ECU,完成设码操作。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种汽车设码装置,该汽车设码装置与上述实施例中汽车设码方法一一对应。如图9所示,该汽车设码装置包括接收模块10、读码模块20、获取文件模块30、生成设码数据模块40和写入模块50。各功能模块详细说明如下:
接收模块10,用于接收汽车ECU基于预设广播命令的响应数据;
判断标识模块20,用于判断所述响应数据中是否存在预设的设码文件版本标识;
确定目标ECU模块30,用于若所述响应数据中存在所述预设的设码文件版本标识,则将所述汽车ECU确定为能够被设码的目标ECU;
获取文件模块40,用于当检测到基于所述目标ECU的设码指令时,自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件;
生成设码数据模块50,用于根据所述设码配置文件和所述设码校验文件生成设码数据;
写入模块60,用于将所述设码数据写入所述目标ECU。
可选的,判断标识模块20包括:
预处理单元,用于对所述响应数据进行预处理,获得字符串序列;
校验单元,用于根据预设校验规则对所述字符串序列进行位计算校验,获得校验结果;
划分数据块单元,用于根据所述校验结果将所述字符串序列划分为若干个指定长度的数据块;
判断标识单元,用于分别判断每个所述数据块中是否存在所述预设的设码文件版本标识;
判定存在标识单元,用于若至少一个所述数据块中存在所述预设的设码文件版本标识,则判定所述响应数据中存在所述预设的设码文件版本标识。
可选的,汽车设码装置还包括生成设码指令模块,所述生成设码指令模块包括:
获取故障码单元,用于获取所述目标ECU的故障码信息;
判断故障标识单元,用于判断所述故障码信息中是否存在预设的设码故障标识;
生成设码指令单元,用于若所述故障码信息中存在所述预设的设码故障标识,则生成所述基于所述目标ECU的设码指令。
可选的,获取文件模块40包括:
发送标识单元,用于将所述预设的设码文件版本标识发送至指定服务器;
接收文件单元,用于接收所述指定服务器返回的所述与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件。
可选的,生成设码数据模块50包括:
解析硬件和设码数据字段单元,用于解析所述设码配置文件,得到汽车的硬件标识字段和所述目标ECU的设码数据信息字段,所述设码数据信息字段包括所述设码数据的物理地址、字节个数、计算类型和功能类型;
获取激活字段单元,用于根据所述硬件标识字段和所述设码数据信息字段获取激活信息字段;
解析校验关系单元,用于从所述设码校验文件解析出与所述硬件标识字段匹配的字段校验关系;
确定计算规则单元,用于根据所述字段校验关系确定所述设码配置文件的数据计算规则;
生成索引字段单元,用于根据所述数据计算规则处理所述设码配置文件,生成索引信息字段;
第一生成设码数据单元,用于根据所述硬件标识字段、所述设码数据信息字段、所述激活信息字段和所述索引信息字段生成所述设码数据。
可选的,生成设码数据模块50还包括:
调用算法单元,用于当所述设码数据的功能类型为指定功能类型时,调用预设校验算法;
生成校验值单元,用于根据所述预设校验算法生成校验值;
第一生成设码数据单元,用于根据所述硬件标识字段、所述设码数据信息字段、所述激活信息字段、所述索引信息字段和所述校验值生成所述设码数据。
可选的,写入模块60包括:
会话模式切换单元,用于将当前会话模式切换为设码会话模式;
安全校验单元,用于在所述设码会话模式下,对所述目标ECU进行安全校验;
写入单元,用于通过安全校验后,将所述设码数据写入所述目标ECU。
关于汽车设码装置的具体限定可以参见上文中对于汽车设码方法的限定,在此不再赘述。上述汽车设码装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令。该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机可读指令被处理器执行时以实现一种汽车设码方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时实现以下步骤:
接收汽车ECU基于预设广播命令的响应数据;
判断所述响应数据中是否存在预设的设码文件版本标识;
若所述响应数据中存在所述预设的设码文件版本标识,则将所述汽车ECU确定为能够被设码的目标ECU;
当检测到基于所述目标ECU的设码指令时,自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件;
根据所述设码配置文件和所述设码校验文件生成设码数据;
将所述设码数据写入所述目标ECU。
在一个实施例中,提供了一个或多个存储有计算机可读指令的计算机可读存储介质,本实施例所提供的可读存储介质包括非易失性可读存储介质和易失性可读存储介质。可读存储介质上存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时实现以下步骤:
接收汽车ECU基于预设广播命令的响应数据;
判断所述响应数据中是否存在预设的设码文件版本标识;
若所述响应数据中存在所述预设的设码文件版本标识,则将所述汽车ECU确定为能够被设码的目标ECU;
当检测到基于所述目标ECU的设码指令时,自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件;
根据所述设码配置文件和所述设码校验文件生成设码数据;
将所述设码数据写入所述目标ECU。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (8)

1.一种汽车设码方法,其特征在于,包括:
接收汽车ECU基于预设广播命令的响应数据;
判断所述响应数据中是否存在预设的设码文件版本标识;
若所述响应数据中存在所述预设的设码文件版本标识,则将所述汽车ECU确定为能够被设码的目标ECU;
当检测到基于所述目标ECU的设码指令时,自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件;
根据所述设码配置文件和所述设码校验文件生成设码数据;
将所述设码数据写入所述目标ECU;
所述当检测到基于所述目标ECU的设码指令时,自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件之前,还包括:
获取所述目标ECU的故障码信息;
判断所述故障码信息中是否存在预设的设码故障标识;
若所述故障码信息中存在所述预设的设码故障标识,则生成所述基于所述目标ECU的设码指令;
所述根据所述设码配置文件和所述设码校验文件生成设码数据,包括:
解析所述设码配置文件,得到汽车的硬件标识字段和所述目标ECU的设码数据信息字段,所述设码数据信息字段包括所述设码数据的物理地址、字节个数、计算类型和功能类型;
根据所述硬件标识字段和所述设码数据信息字段获取激活信息字段;
从所述设码校验文件解析出与所述硬件标识字段匹配的字段校验关系;
根据所述字段校验关系确定所述设码配置文件的数据计算规则;
根据所述数据计算规则处理所述设码配置文件,生成索引信息字段;
根据所述硬件标识字段、所述设码数据信息字段、所述激活信息字段和所述索引信息字段生成所述设码数据。
2.如权利要求1所述的汽车设码方法,其特征在于,所述判断所述响应数据中是否存在预设的设码文件版本标识,包括:
对所述响应数据进行预处理,获得字符串序列;
根据预设校验规则对所述字符串序列进行位计算校验,获得校验结果;
根据所述校验结果将所述字符串序列划分为若干个指定长度的数据块;
分别判断每个所述数据块中是否存在所述预设的设码文件版本标识;
若至少一个所述数据块中存在所述预设的设码文件版本标识,则判定所述响应数据中存在所述预设的设码文件版本标识。
3.如权利要求1所述的汽车设码方法,其特征在于,所述自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件,包括:
将所述预设的设码文件版本标识发送至指定服务器;
接收所述指定服务器返回的所述与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件。
4.如权利要求1所述的汽车设码方法,其特征在于,所述根据所述数据计算规则处理所述设码配置文件,生成索引信息字段之后,还包括:
当所述设码数据的功能类型为指定功能类型时,调用预设校验算法;
根据所述预设校验算法生成校验值;
根据所述硬件标识字段、所述设码数据信息字段、所述激活信息字段、所述索引信息字段和所述校验值生成所述设码数据。
5.如权利要求1所述的汽车设码方法,其特征在于,所述将所述设码数据写入所述目标ECU,包括:
将当前会话模式切换为设码会话模式;
在所述设码会话模式下,对所述目标ECU进行安全校验;
通过安全校验后,将所述设码数据写入所述目标ECU。
6.一种汽车设码装置,其特征在于,包括:
接收模块,用于接收汽车ECU基于预设广播命令的响应数据;
判断标识模块,用于判断所述响应数据中是否存在预设的设码文件版本标识;
确定目标ECU模块,用于若所述响应数据中存在所述预设的设码文件版本标识,则将所述汽车ECU确定为能够被设码的目标ECU;
获取文件模块,用于当检测到基于所述目标ECU的设码指令时,自指定存储位置获取与所述预设的设码文件版本标识配对的设码配置文件和设码校验文件;
生成设码数据模块,用于根据所述设码配置文件和所述设码校验文件生成设码数据;
写入模块,用于将所述设码数据写入所述目标ECU;
所述根据所述设码配置文件和所述设码校验文件生成设码数据,包括:
解析所述设码配置文件,得到汽车的硬件标识字段和所述目标ECU的设码数据信息字段,所述设码数据信息字段包括所述设码数据的物理地址、字节个数、计算类型和功能类型;
根据所述硬件标识字段和所述设码数据信息字段获取激活信息字段;
从所述设码校验文件解析出与所述硬件标识字段匹配的字段校验关系;
根据所述字段校验关系确定所述设码配置文件的数据计算规则;
根据所述数据计算规则处理所述设码配置文件,生成索引信息字段;
根据所述硬件标识字段、所述设码数据信息字段、所述激活信息字段和所述索引信息字段生成所述设码数据。
7.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如权利要求1至5中任一项所述的汽车设码方法。
8.一个或多个存储有计算机可读指令的可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1至5中任一项所述的汽车设码方法。
CN202010768019.6A 2020-08-03 2020-08-03 汽车设码方法、装置、计算机设备及存储介质 Active CN112068982B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010768019.6A CN112068982B (zh) 2020-08-03 2020-08-03 汽车设码方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010768019.6A CN112068982B (zh) 2020-08-03 2020-08-03 汽车设码方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN112068982A CN112068982A (zh) 2020-12-11
CN112068982B true CN112068982B (zh) 2024-02-06

Family

ID=73656795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010768019.6A Active CN112068982B (zh) 2020-08-03 2020-08-03 汽车设码方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN112068982B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113837182A (zh) * 2021-09-27 2021-12-24 中汽创智科技有限公司 一种车辆的vin码获取方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981501A (zh) * 2012-11-30 2013-03-20 重庆邮电大学 一种基于xml的汽车ecu故障诊断信息匹配方法
CN105094901A (zh) * 2015-07-14 2015-11-25 广州橙行智动汽车科技有限公司 一种远程售后在线刷新ecu的方法和诊断设备
CN105607623A (zh) * 2016-02-26 2016-05-25 东南(福建)汽车工业有限公司 一种汽车生产线下线检测方法
CN106033209A (zh) * 2015-03-20 2016-10-19 广州汽车集团股份有限公司 一种实现ecu功能配置的方法及装置
CN108845506A (zh) * 2018-08-31 2018-11-20 深圳市路畅科技股份有限公司 一种汽车故障的诊断方法、装置及设备
CN109597634A (zh) * 2018-10-24 2019-04-09 北京汽车集团有限公司 更新车辆ecu的方法、装置及车辆
CN110456764A (zh) * 2019-07-26 2019-11-15 中国第一汽车股份有限公司 车辆中控制器的配置管理方法、装置及车辆诊断仪
CN110588540A (zh) * 2019-08-09 2019-12-20 深圳市元征科技股份有限公司 车辆配置信息的写入方法和装置
CN111240712A (zh) * 2019-12-27 2020-06-05 深圳市元征科技股份有限公司 Ecu刷写方法、装置、设备和存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981501A (zh) * 2012-11-30 2013-03-20 重庆邮电大学 一种基于xml的汽车ecu故障诊断信息匹配方法
CN106033209A (zh) * 2015-03-20 2016-10-19 广州汽车集团股份有限公司 一种实现ecu功能配置的方法及装置
CN105094901A (zh) * 2015-07-14 2015-11-25 广州橙行智动汽车科技有限公司 一种远程售后在线刷新ecu的方法和诊断设备
CN105607623A (zh) * 2016-02-26 2016-05-25 东南(福建)汽车工业有限公司 一种汽车生产线下线检测方法
CN108845506A (zh) * 2018-08-31 2018-11-20 深圳市路畅科技股份有限公司 一种汽车故障的诊断方法、装置及设备
CN109597634A (zh) * 2018-10-24 2019-04-09 北京汽车集团有限公司 更新车辆ecu的方法、装置及车辆
CN110456764A (zh) * 2019-07-26 2019-11-15 中国第一汽车股份有限公司 车辆中控制器的配置管理方法、装置及车辆诊断仪
CN110588540A (zh) * 2019-08-09 2019-12-20 深圳市元征科技股份有限公司 车辆配置信息的写入方法和装置
CN111240712A (zh) * 2019-12-27 2020-06-05 深圳市元征科技股份有限公司 Ecu刷写方法、装置、设备和存储介质

Also Published As

Publication number Publication date
CN112068982A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
CN109474578B (zh) 报文消息校验方法、装置、计算机设备和存储介质
CN107179971B (zh) 用于can总线故障处理的自动编码方法和系统
CN109684347B (zh) 对账方法、装置、计算机设备和存储介质
CN112613993B (zh) 交易数据处理方法、装置、计算机设备和存储介质
CN113946546B (zh) 异常检测方法、计算机存储介质及程序产品
CN112068982B (zh) 汽车设码方法、装置、计算机设备及存储介质
CN112052182A (zh) 接口自动化测试方法、装置、计算机设备及存储介质
CN112162924A (zh) 接口自动化测试方法、装置、计算机设备及存储介质
CN110266571B (zh) 提高can总线数据传输可靠性的方法、装置和计算机设备
CN110275703B (zh) 键值对数据的赋值方法、装置、计算机设备和存储介质
CN109218131B (zh) 网络监控方法、装置、计算机设备和存储介质
CN107330031B (zh) 一种数据存储的方法、装置及电子设备
CN111351669B (zh) 故障诊断方法和装置、存储介质和车辆
CN116996601A (zh) 报文格式的转换方法、装置、电子设备及存储介质
CN113632510B (zh) 转换装置、转换方法和记录介质
CN115544132A (zh) 数据导入方法、系统及电子设备
CN115048359A (zh) 一种多类型接入数据源的通用数据处理架构设计方法
CN114205423A (zh) 基于ipmi协议的适配私有协议方法、装置、设备及介质
CN115225654A (zh) 基于可配置化通讯协议的通信方法及设备
CN113946615A (zh) 数据的结构化处理方法、装置、设备及存储介质
CN113904955A (zh) 数据传输链路的检测方法、装置及系统
CN112199389A (zh) 汽车系统扫描方法、装置、汽车诊断设备及存储介质
CN112702303A (zh) 一种列车实时数据解析方法、装置、设备及存储介质
CN116820474A (zh) 基于解析变量记录的json数据解析方法
CN109032952B (zh) 一种基于规则的智能外呼服务模拟方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant