PolarTest丨UDS诊断功能

1. 什么是U DS?

UDS(Unified Diagnostic Services,统一诊断服务)是汽车电子设备中电子控制单元(ECU)环境中的诊断通信协议,在ISO-14229中规定。诊断工具与车内的所有控制单元均有连接,工程师连接诊断仪通过总线与车内的ECU进行深度对话,实现以下核心功能:

故障检测:实时监控传感器、执行器是否异常

远程维护:无需拆解车辆即可刷写软件或校准参数

安全防护:在关键系统(如制动、转向)失效时触发保护机制

数据传输:存储历史故障信息,帮助维修人员快速定位问题

2. UDS如何工作?------以底盘系统为例

假设一辆车的ESP(车身稳定系统)报故障灯,维修人员通过诊断仪发送UDS请求,ECU的响应过程如下:

【1】 建立通信:诊断仪与ECU通过CAN/LIN/Ethernet总线建立连接

【2】 发送诊断请求:例如读取故障码(服务码0x19)或清除故障码(服务码0x14)

【3】 ECU响应:ECU返回数据,如"右轮速传感器信号异常"

【4】 执行操作:远程重置参数或触发软件更新

整个过程仅需数秒,且支持双向交互------既能读取数据,也能主动下发指令。

  1. UDS测试的常见应用场景

3.1 生产线终端检测

利用0x27服务完成ECU模块功能验证与参数初始化,车辆下线前,通过UDS协议对所有ECU进行"全身体检",确保无硬件缺陷或软件配置错误。

3.2 售后维修诊断

利用0x19服务读取历史故障码,结合0x22服务获取实时运行数据,维修厂通过诊断仪读取故障码,精准定位问题,避免盲目更换零件。

3.3 软件在线升级

在编程会话模式下,通过0x34/0x36/0x37等指令,可以完成ECU的应用层软件(Application software)的刷新。

4. PolarTest诊断测试

PolarTest是一款功能强大、操作便捷的自动化测试软件,支持可高度自定义的测试流程和丰富的系统库,可灵活适配不同测试需求。支持ODX/CDD/PDX/PUDS数据库一键解析,可通过内置诊断测试平台实现手动UDS诊断测试,同时可以启用自动化测试流程,快速执行10-3E等全系列诊断服务(含 DTC/DID/Routine Control),并自动评估输出报告,助力提升开发效率与测试深度和广度。

核心优势:

  1. ****灵活易用:****采用拖拽式模块化用例搭建方式,操作简单,上手快速
  2. ****高效分析:****自动评估输出报告,显示测试步骤、时序,并分析本次执行状态
  3. ****广泛适配:****兼容适配主流总线工具,实现标定、诊断与数据同步

4.1 手动测试界面:

内置诊断测试平台,支持基于SAE J2534协议标准的诊断设备,支持PDX、ODX、CDD、PUDS等数据库的一键解析,内置诊断控制台,可通过手动发送诊断服务,同时支持功能寻址和物理寻址的切换。

支持通过ASAM MCD-2(ODX)协议调用PeakCAN/Kvaser/同星/周立功/广成/Vector 适配器等,完成UDS on CAN/CANFD的诊断测试。

​​​​​​​4.1.1 硬件配置

在项目管理中新建HardwareConfig并双击,点击硬件+按钮并下拉选择UDS,根据ECU的相关信息进行配置,如下图所示:

硬件配置成功后,右键启动即可看见硬件控制栏中的按钮显示绿色,表明硬件连接成功,双击当前硬件行,PolarTest会加载出诊断描述文件中的所有服务,如下图所示:

​​​​​​​4.1.2 发送服务

用户可在诊断控制台双击诊断服务列表发送服务,同时支持在搜索框中选择服务回车发送,如下图所示:

4.2 ​​​​​​​自动化测试序列:

提供UDS诊断库,在自动化测试序列中添加自动化测试流程,基于此模块快速执行****10-3E****等全系列诊断服务(含DTC/DID/Routine Control),并自动评估输出报告,所有模块支持功能寻址与物理寻址的切换。

支持在测试序列中启动或停止诊断平台,实现自动化诊断工作。

主要包含以下操作:

​​​​​​​4.2.1 硬件配置

在项目管理中新建HardwareConfig并双击,点击硬件+按钮并下拉选择UDS,根据ECU的相关信息进行配置,如下图所示:

硬件配置成功后,右键启动即可看见硬件控制栏中的按钮显示绿色,表明硬件连接成功,双击当前硬件行,PolarTest会加载出诊断描述文件中的所有服务,如下图所示:

​​​​​​​4.2.2 映射 M apping

项目管理中右键新建GeneralMapping,将需要用到的服务从诊断控制台拖拽至Mapping中,如下图所示:

​​​​​​​4.2.3 搭建序列

【1】从Generic API中拖拽GenericUDSDiagnostic至序列中,从Mapping中拖拽服务至Block中,如下图所示:

注:GenericUDSDiagnostic主要用来发送Mapping中已经映射的诊断服务,用户可以自定义功能寻址与物理寻址的切换。

【2】从Generic API中拖拽UDSCallService至序列中,直接手动填入需要发送的请求ID,如下图所示:

注:UDSCallService主要用来发送用户手动填入的请求ID,用户可以自定义功能寻址与物理寻址的切换以及是否需要等待响应之后再进行下一步操作。

【3】从Generic API中拖拽UDSReadFaultMemory至序列中,双击之后下拉列表选择19服务需要请求的子功能ID以及状态掩码;勾选评估复选框之后,点击+按钮,会显示诊断协议文件中的所有故障码,用户可以基于这些故障码进行评估(是否允许某一类故障码存在),如下图所示:

注:UDSReadFaultMemory主要用来发送19服务,用户可以自定义功能寻址与物理寻址的切换以及选择是否需要评估。

​​​​​​​4.2.4 执行序列

序列直接右键运行,自动评估输出报告,报告格式兼容word、pdf、HTML格式,如下图所示:

5. 小结

PolarTest作为高效的自动化测试工具,提供UDS自动化诊断功能,覆盖从手动测试到自动化测试及回归测试的全流程。与传统手写测试代码相比,图形化的测试用例编辑方式大大降低了编写脚本的门槛;硬件接口方面可以兼容多种主流CAN工具(Vector、Kvaser、周立功、广成等),适配性强;数据库支持行业各标准格式,可快速对接整车厂的诊断规范;报告可自动生成,减少编写测试报告的时间,提高测试效率。

相关推荐
码农胖虎-java2 小时前
技术深析:Delayed ACK与Nagle算法的“相爱相杀”
运维·服务器·网络
磊 子3 小时前
第四章:网络层
运维·服务器·网络·计算机网络·运输层
日更嵌入式的打工仔3 小时前
Ethercat EOE笔记
网络·笔记·ethercat
万粉变现经纪人3 小时前
如何解决 pip install SSL 报错 ValueError: check_hostname requires server_hostname 问题
网络·python·网络协议·beautifulsoup·bug·ssl·pip
刘孬孬沉迷学习3 小时前
层与天线的区别
网络·学习·5g·信息与通信·mimo·预编码·层映射
冬夜戏雪3 小时前
【学习日记】【12.30】【14/60】
服务器·网络·学习
广东大榕树信息科技有限公司4 小时前
如何运用国产信创动环监控系统来保障生产安全与效率提升?
运维·网络·物联网·国产动环监控系统·动环监控系统
乾元4 小时前
Service Mesh 与网络抽象:AI 如何做服务层次网络策略生成(微服务 / 云原生)
网络·人工智能·安全·微服务·云原生·运维开发·service_mesh
可爱又迷人的反派角色“yang”5 小时前
GitLab配置与git集成实践
linux·网络·git·docker·云计算·gitlab