作者博客主页
作者 : Eterlove
一笔一画,记录我的学习生活!站在巨人的肩上Standing on Shoulders of Giants!
该文章为原创,转载请注明出处和作者
参考文献:
《道路车辆统一诊断服务(UDS) Road vehicles - Unified diagnostic services》
1.专业术语
1.TP:Tester Present待机握手
2.支持的诊断故障码(DTC) supported DTC
当前被配置并且能够在预定义的车辆条件下执行的诊断故障代码。
3.诊断设备 tester
控制诸如车载电子控制单元的测试,检查,监控或诊断等功能的系统,可专用于特定类型的操作员(例如专用于车库机械的非车载扫描工具,专用于装配厂的非车载测试工具或车载诊断仪)
1. 诊断会话控制(0x10)服务 Diagnostic Session Control
Diagnostic Session诊断会话有默认,编程,扩展三种模式。Note:服务端在上电时应进入默认诊断会话
/*Diagnostic Session*/
static void DigSession(struct UDSServiceInfo* i_pstUDSServiceInfo, tUdsAppMsgInfo *m_pstPDUMsg);
/*define session mode*/
#define DEFALUT_SESSION (1u << 0u) /*default session*/
#define PROGRAM_SESSION (1u << 1u) /*program session*/
#define EXTEND_SESSION (1u << 2u) /*extend session*/
2. ECU 复位(0x11)服务 ECU Reset
客户端使用 ECU 复位服务来请求服务端重置。
Note:①ECU 复位肯定响应消息(如果需要)应在服务端执行重置之前发送。含义如何解释:当ECU复位以后,“丢掉记忆,重新开始,它就不记得之前干过(收到什么指令)什么!”故执行复位前,应该先肯定响应消息后复位。
②还有一点值得注意:服务端重置成功后,将激活默认会话。
3. 安全访问(0x27)服务 Security Access
使用该服务的典型示例如下所示:客户端请求“种子”,服务端发送“种子”,客户端发送“密钥”(与接收的种子配对),服务端响应“密钥”有效,并且它将自行解锁。
Note:举个生活通俗例子:Tester通过手机获取验证码,ECU发送验证码过来,然后Tester使用验证码登录,ECU密码有效登录成功!
4. 通信控制(0x28)服务 Communication Control
该服务的目的是开启/关闭服务端(例如应用程序 通信消息)的某些消息的发送和/或接收。
5. 诊断设备在线(0x3e)服务 Tester Present
客户端向服务端指示客户端仍然与网络连接。还有一个叫法:待机握手,”就是说我客户端(诊断设备)还在和网络握手,还没有断开连接,你可要知道这个情况呀“。
Note:谈谈这东西的用法,我们知道诊断会话有三种模式:默认,编程,扩展。如果你不想要服务端保留在默认模式,可以通过定期发送诊断设备在线请求消息达到这一目的。
6. 控制诊断故障码(DTC)设置(0x85)服务 Control DTC Setting
数据传输中以下四种服务常用:
1. 通过标识符读取数据(0x22)服务 Read Data By Identifier
2. 通过地址读取内存(0x23)服务 Read Memory By Address
3. 通过标识符写入数据(0x2E)服务Write Data By Identifier
4. 通过地址写入内存(0x3D)服务Write Memory By Address
1. 请求下载(0x34)服务 RequestDownload
2. 请求上传(0x35)服务 RequestUpload
3. 传输数据(0x36)服务 TransferData
4. 请求终止传输(0x37)服务 RequestTransferExit
5. 例行控制(0x31)服务 RoutineControl
正在更新!待续