UDS |
您所在的位置:网站首页 › ecu和can一样吗 › UDS |
目录 UDS介绍 UDS命令形式 UDS的26种服务 UDS on CAN (CAN上的UDS为例说明) 常用UDS命令 故障码(四个大类) NRZ码 CAN ID与CAN节点寻址关系 UDS源代码 (UDS协议栈) CAN诊断实战 UDS介绍UDS(全称:UnifiedDiagnostic Services) UDS包含了ISO 14229下属的7个子协议,其中ISO 14229-2还是会话层的,所以UDS仅包括应用层的说法也是错误的。 UDS本质上是一种定向的通信,是一种交互协议(Request/Response),即诊断方(Tester)给ECU发送指定的请求数据(Request)。响应包括肯定响应和否定响应。 ECU:实现UDS server协议栈 诊断仪:实现UDS client协议栈 参考:http://www.catarc.org.cn/upload/202001/22/202001220940052097.pdf UDS命令形式 UDS的请求命令有4种构成方式 即SID,SID+SF(Sub-function),SID+DID(Data Identifier)(读写用),SID+SF+DID。 UDS的26种服务但常用的服务是加背景色的15种。 服务分为:权限控制、读取数据/信息、写入数据/信息、通信控制、功能控制这几类。
UDS on CAN (CAN上的UDS为例说明) CAN ID 0x7df (BROADCAST_ID) 对于specific的ECU,设计UDS时,会指定一个唯一的CAN ID(通常是0x7YZ),用于和指定的ECU进行UDS通讯。
CAN的数据格式大致如下所示: CAN 标志 | Data Length Code | Data Field
CAN帧的Data Field表示的就是网络层的 PDU ;将网络层的PDU简写为 N_PDU 。 PDU=N_PDU的长度+N_PDU. N_PDU= ID+数据类型+数据域, 读取软件版本号 SID+DID SID : 0x22 DID: OEM自定义(例如0xF095)
写入数据 SID+DID+Data SID:0x27
芯片进入reset状态 SID: 0x11 烧写程序 SID+SF SID: 0x10 SF:0x02
安全访问(输入秘钥,建立连接) SID:0x27
读取DTC SID:0x19 故障码(四个大类) 分别是PCBU,P是powertrain动力系统,C是Chassis底盘,B是Body车身,U是network通信系统。一个DTC信息占用4个字节。最后一个字节是DTC的状态。 第一个字节在乘用车中,前两个bit代表P/C/B/U(动力/底盘/车身/网络)中的一个,之后六个bit是数字,合在一起的样子形如“C01”。第一个字节的前2个bit中,用00/01/10/11分别表示P/C/B/U。 NRZ码 ECU上CAN ID寻址。CAN基于报文ID。不像Ethernet,基于节点地址的。 每一个ECU都有2个CAN帧ID,分别对应收和发的物理寻址。 UDS源代码 (UDS协议栈) UDS 协议栈 源代码 https://github.com/openxc/uds-c UDS server (ECU) https://zhuanlan.zhihu.com/p/37310388 UDS client (Diagnostics tool) https://udsoncan.readthedocs.io/en/latest/ https://github.com/pylessard/python-udsoncan 商用软件举例: ISO 14229/UDS Sofware Details ANSI C source codeUse with or without RTOSSupports 8, 16, 32, 64-bit CPUsIntegrate with flash bootloaders to update productsUDS Client user’s reference manualUDS Server user’s reference manualCAN诊断实战 https://zhuanlan.zhihu.com/p/51338035 http://forums.codeblocks.org/index.php?topic=21905.0 https://github.com/peplin/ecomcat_to_openxc |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |