一.诊断刷写基础知识

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议。

诊断工具与车内的所有控制单元连接启用了UDS服务,使用OSI模型的第五层和第七层(会话层和应用层)。

Diagnostic Trouble Code(DTC): 诊断故障代码

发请求时的格式1:SID+DID;

发请求时的格式2:SID(特指例程控制服务)+子类型+RID

SID(Service ID:服务类ID,

DID(Data ID:数据类ID,一般都是与产品系统相关的信息和一些配置信息,

RID(RoutineControl ID:例程控制的ID,一般都是些与标定、烧写相关的耗时耗资源操作

诊断协议:

UDS本质上是一系列服务的集合。UDS是一种定向的通信,是一种交互协议(Request/Response),即诊断方(Tester)给ECU发送指定的请求数据(Request)。服务ID(SID:Service Identifier,诊断服务ID)和与服务相关的参数包含在CAN数据帧的8个数据字节中,这些数据帧是从诊断工具发出的。

诊断服务应用

UDS-诊断服务功能 :

报文:03 7F 27 35 AA AA AA AA, 其中:

A). 0表示这个是一个SF,即单帧;

B). 第二位非0,表示这是一个长度为8字节的报文;3表示,playload负载长度是3个字节;

C). 7F,是诊断负响应码标识;

D). 27表示的是诊断安全访问服务(SecuritySession);

E). 35为具体的负响应码,“非法密钥”;

F). AA 是位填充符;

否定响应码——NRC 

通信过程

寻址信息包含了源地址(Source Address)和目标地址(Target Address)。

UDS的寻址模式分两种:

物理寻址(点对点、一对一),根据物理地址的不同进行访问,但只能访问单个ECU节点,Tester为SA源地址,ECU作为TA目标地址。

功能寻址(广播、一对多),根据功能的不同进行访问,它能访问多个ECU节点,对于标准帧来说,通常是0x7DF。

二.基于UDS刷写功能

(1)预编程步骤

10 03  为了禁止ECU间的正常通信和控制DTC设置,预编程需要启动非默认(诊断)会话模式, 诊断仪应持续周期性(S3client)发送诊断仪在线服务请求(3E 80),以维持所有ECU的非默认会话模式(功能寻址)

31 01 02 03  检查ECU编程条件,从而确保系统安全

85 02  诊断仪发送DTC设置类型设为“关闭”的控制DTC设置服务请求(功能寻址)

28 03 03  诊断仪通过通信控制(28h)服务请求,禁止非诊断报文的发送和接收(功能寻址)

22 xx yy  禁止正常通信后,读取被编程的ECU的状态(如:编程的应用软件和数据)

(2)主编程步骤

10 02  收到一个寻址方式为物理寻址,子功能为编程会话的诊断会话控制(10h)服务后,ECU启动Bootloader,并分配编程所需的所有资源(物理寻址)

27 09/0A  编程事件必须通过安全访问

27 01  安全校验

27 02 47 11  物理请求

31 01 FF 00  物理响应

2E F1 5A  在擦除内存例程之前,将“指纹”写到ECU内存中是强制的(哪个诊断仪对ECU内存做了修改)

31 01 FF 00  为了允许应用软件和数据下载,ECU的内存将被擦除

34  请求下载

36  传输数据

37  请求传输退出

31 01 02 02  检查编程完整性”例程,检查所有的字节都正确传输

31 01 FF 01  一旦完成所有的应用软件或数据块/模块的下载,诊断仪将开始一个例程来触发ECU检查重编程的依赖性

11 01  诊断仪使用物理寻址,发送一个复位类型为硬复位的ECU复位(11h)服务请求报文到CAN网络(物理寻址)

(3)后编程步骤

10 03  诊断仪发送一个会话类型为扩展会话的诊断会话控制服务请求报文到CAN网络上,使所有ECU(包括刷写执行完毕已复位的ECU)切换至扩展会话模式(功能寻址)

28 00 03  诊断仪通过通信控制(28h)服务请求,开启非诊断报文的发送和接收(功能寻址)

85 01  诊断仪发送DTC设置类型设为“开启”的控制DTC设置服务请求(功能寻址)

10 01  诊断仪发送一个会话类型为默认会话的诊断会话控制(10h)服务请求报文到CAN网络, 诊断仪应停止发送周期性的诊断仪在线请求 (3E 80)(功能寻址)

14 FF FF FF  通过物理寻址的清除诊断信息服务来清除

附:

三、诊断请求报文格式

(1)诊断Request格式:

格式1:[SID] + [Sub-function]

格式2:[SID] + [DID]

格式3:[SID] + [Sub-function] + [DID]

(2)Positive Response:肯定响应

格式1:[SID + 0x40] + [Sub-function]

格式2:[SID + 0x40] + [DID]

格式3:[SID + 0x40] + [Sub-function] + [DID]

(3)Negative Response:否定响应

[0x7F] + [SID] + [NRC]

案例:

单帧数据传输:

(1)肯定响应

发送请求:10 02

响应请求:50 02 00 32 00 C8

(2)否定响应

发送请求:10 01

响应请求:7F 10 12 (NRC:sub-functionNotSupported)

报文:03 7F 27 35 AA AA AA AA, 其中:

A). 0表示这个是一个SF,即单帧;

B). 第二位非0,表示长度为8字节的报文;3表示,playload负载长度是3个字节;

C). 7F,是诊断负响应码标识;

D). 27表示的是诊断安全访问服务(SecuritySession);

E). 35为具体的负响应码,“非法密钥”;

F). AA 是位填充符;

多帧数据传输:

(1)发送数据为单帧,06开头代表有发送的数据中含有6个字节

(2)响应为肯定响应,连续帧

· 10中的1代表连续帧的首帧,0A代表此连续帧中含有10个字节

· 30代表流控帧

· 21代表连续帧里的第一帧

Step1:

0:表示单帧(SF);

6:表示一个长度为6字节的报文,后面的负载长度是6个字节;

04:服务;

91 D6 15 10:指定的DID值

Step2:

1:表示首帧(FF);

A:表示整个数据包的长度为10个字节;即:59 04 91 D6 15 10 11 22 33 44

Step3:

3:表示流控帧(FC);

0:表示流状态是继续发送帧(FlowStatus=0);

00:表示buffer size为0个字节;

00:表示连续帧的时间间隔为00ms;

Step4:

2:表示连续帧;

1:序列号值为1(SequenceNumber=1),因为此帧是紧接首帧的连续帧;

11 22 33 44:报文数据;

00填充位;

车载通信——诊断刷写相关推荐

  1. FlexRay测试开发实践之诊断刷写

    前言 FlexRay总线目前主要应用在高端品牌车型(如宝马.奔驰.奥迪.沃尔沃.捷豹路虎.凯迪拉克等),在以太网技术没有成熟之前,也有部分OEM将其作为主干网应用. 相对于传统的CAN测试,FlexR ...

  2. 面向车载通信的安全关键技术【会议】

    面向车载通信的安全关键技术 写在前面的话 会议记录 写在前面的话 <网络空间安全青年科学家长安论坛>,本篇博客为西安交通大学苏洲老师的报告内容. 会议记录

  3. 车载通信与导航(七):D2D通信详解

    D2D(设备到设备),即临近终端设备之间直接进行通信的技术,在通信网络中,一旦D2D通信链路建立起来,传输语音或数据消息就无需基站的干预,这样就可以减轻通信系统中基站及核心网络的数据压力,大幅提升频谱 ...

  4. veins车载通信仿真框架(3)--OMNET++基础

    OMNET++是veins车载通信仿真框架学习过程中,必须要掌握的,之前自己也没有对其进行系统的学习,在这里只是简单对其进行介绍,并通过网上学习的例子进行讲解,使大家大体对其有一个了解. OMNET+ ...

  5. DoIP协议源码 车载以太网诊断协议ISO13400协议源码

    DoIP协议源码 车载以太网诊断协议ISO13400协议源码 diagnostic over internet protocol (doip) stack 符合iso13400规范 very perf ...

  6. veins车载通信仿真框架(1)--veins安装

    由于实验室的需要,这段时间需要利用veins进行车载通信的仿真,第一次写博客,一方面想把自己学习过程中的经验分享给大家,另一方面也把他当做笔记,没事儿自己也复习一下 安装 关于veins的安装主要有两 ...

  7. 125w短波通信距离_短波车载通信近距离盲区的解决途径

    在实际工作交流中,我们发现不少用户对短波盲区的形成原理.解决途径以及怎样选用设备还不很清楚,有时产品选用不当,及至购买后才发现在盲区内通不好.本文主要谈一些这方面的问题. 一.从盲区的形成原理,明确消 ...

  8. 车载网络 - BootLoader刷写 - 总纲

    随着车载以太网技术的快速发展,智能汽车也已经走进了千家万户,OTA无线解决方案也逐渐走进了大众的视野:实际上在车载以太网未出现之前,我们车上大多数使用的升级一般都是adb.U盘等不太方便的刷写方式,并 ...

  9. 车载诊断协议UDS——诊断刷写(Software Update)

    刷写,顾名思义就是两个动作:刷和写: 刷是擦除ECU芯片内存上原有的数据: 写是重新在ECU芯片内存上写入新的数据(Application or Calibration Data--): 在控制器量产 ...

最新文章

  1. [No000011B]为什么有些程序员悄无声息渡过35岁中年危机?
  2. 从“连锁”到“新联锁”,尚美生活如何引领酒店行业变革?
  3. [转载]用消息队列和消息应用状态表来消除分布式事务
  4. 华为手机免root改mac_拿到华为手机,这4个默认设置一定要改,不然流量电量很快被耗光...
  5. Java基础学习总结(172)——手写Java 重试机制
  6. Docker学习总结(27)——Dockerfile详解
  7. git bitbucket_如何在Bitbucket上创建新的Git存储库并查看提交的对象
  8. Eclipse 在开发中使用到的快捷键很实用 .
  9. spring配置 quartz-config.xml
  10. Android-APP之桌面宠物
  11. matlab中建立变换器模型,基于Simulink/Matlab的DC-DC变换器系统仿真
  12. 安装玻璃鱼Glassfish
  13. 黄天不负有心人,拥有属于自己的LOGO
  14. 一个严谨的STM32串口DMA发送接收(1.5Mbps波特率)机制
  15. h3c交换机绑定在线计算机的命令,H3C 3100交换机怎么IP绑定MAC
  16. 【装机】老毛桃的安装及使用教程
  17. Exercise11-Matplotlib
  18. 【图文详解】python爬虫实战——5分钟做个图片自动下载器
  19. 线上Mysql数据库崩溃事故的原因和处理
  20. c# 16进制转10进制

热门文章

  1. NAGA Group宣布挑战者银行项目NAGA Pay;在4月份强劲数据的支持下,NAGA China和NAGA Pro正式推出
  2. After Effect水墨画效果
  3. 解决windows 2003下安装卡巴斯基
  4. 偏向锁、轻量级锁及重量级锁
  5. 电气阀门定位器连接指南
  6. 非法抢注本人备案域名?看我反手给你?来一刀
  7. 自组织特征图SOFM网络的实现
  8. 修改checkbox的样式
  9. ArcGIS出图小技巧——比例尺、鹰眼图、表格、文本、图片
  10. 2022年注册会计师(CPA)税法考试模拟试题卷及答案