汽车电子Flash刷写测试

主题:刷写测试中怎么看通讯报文

背景:在汽车电子刷写测试中,通常会同时使用CANoe类似的工具记录下载过程中can报文的通讯情况,以便出现错误时,追查问题根源

内容:比如上图为下载过程中的一段can报文。详细的解析如下:

汽车电子Flash刷写测试_第1张图片

比如:32 03 22 F1 9E AA AA AA    -----------32是目标ECU地址,03是数据长度,22 F1 9A 是DID指令(22 是read, F19E是 ODX ECU Variant Version Number)为读ODX版本号

之后的第2行(F1 10 10 62 F1 9E 30 31 )一直到第5行(F1 22 00 00 00 00 00 32)为回复

第2行 F1为目标ECU/仪器地址(此处为刷写硬件地址),10表示此报文不是单帧,而是多帧里的首帧,10表示数据长度,62 F1 9E表示 22+40  F1 9E(正响应为+40,负响应为7F),之后的30 31 为实际的ODX版本数据

第3行 32 30 00 0A AA AA AA AA 为测试仪器F1发给目标ECU 32的一个FC(Flow Control)流控帧

第4行和第5行 21 和22 为ECU 32发出的CF(Consecutive Frame)连续帧,内容为连续第2行 30 31 的ODX版本数据

难点:数据长度10是16进制,转为10进制为16位,从62开始数到22行的最后一个00为16个数据长度,最后一个32是21行的,不会被擦除掉

 

依次分析下去,可总结出刷写的大致流程为:

Pre-condition:准备阶段:22 F1 9E 读ODX版本号,19 02 AB 读所有的DTC信息,10 03 Extend Session, 14 FF FF FF清除所有DTC,19 02 AB 读所有的DTC信息,3E 80 TesterPresent, 10 03 Extend Session, 31 01 02 03 RoutineControl,3E 80 TesterPresent,85 82 FF FF FF Control DTC Setting off(02,01为On),28 81 03 CommunicationControl-DisableNonDiagnosticCommunication,3E 80 TesterPresent

疑问:1:19 02 AB,最后这个AB是什么意思? 2:31 01 02 03 Routine Control 具体是什么Routine?3:85 82 指令和28 81指令没有回复

 

Transfer Data:实际刷写软件: 10 02 Program Session,27 07 Request Seed,27 08 Send Key,2E F1 5A 写Write FingerPrint,34 RequestDownload, 36 transfer data,

疑问:1:什么是Fingerprint    2:36 transfer data 是10,21,22......29,2A,2B......2F,然后就重复一轮20,21......,重复3轮后,重新发送36指令,这个规律是怎么来的(HIS,ISO,或者厂商自定?)

 

Post-condition:结尾处理: 待了解

 

 

参考:ISO 15765-3

           ISO 14227-1

            HIS Flash Specification

你可能感兴趣的:(汽车电子)