专栏名称: 觉知汽车
汽车行业科普、相关技术状态分析、产品发展状态分析、关联产品技术状态/发展趋势研究;
目录
相关文章推荐
全球风口  ·  OpenAI「草莓」大模型再引争议,AI也开 ... ·  4 天前  
全球风口  ·  OpenAI「草莓」大模型再引争议,AI也开 ... ·  4 天前  
云技术  ·  2698万元大单:阿里云中标 ·  5 天前  
NE时代新能源  ·  【专利说】博格华纳“向心式冷却”都有啥新招! ·  6 天前  
NE时代新能源  ·  【专利说】博格华纳“向心式冷却”都有啥新招! ·  6 天前  
51好读  ›  专栏  ›  觉知汽车

新能源汽车常规控制单元诊断管理的开发概述

觉知汽车  · 公众号  · 科技自媒体 新能源汽车  · 2024-09-11 00:09

正文

一、诊断管理概述

AUTOSAR架构中,通常情况下诊断管理模块(通常称为DCM,即Diagnostics Communication Manager)位于服务层,它与其他基础模块和服务(如通信管理、内存管理等)协同工作,为上层应用提供统一的诊断服务接口。DCM模块是整个诊断系统的核心,它负责处理诊断请求和响应,管理诊断会话,执行安全访问控制,并且与控制单元的其他部分(如应用软件、BSW其他模块以及硬件资源)进行交互。

1 诊断栈架构

其中,在相互协同上,DCM通过标准化的接口与应用层交互,同时又依赖于BSW的服务,如通过NVM进行故障码存储和读取,并通过网络管理服务进行数据传输。过程中DCM负责管理诊断会话的状态,根据不同的会话类型(如默认会话、编程会话)激活或停用某些服务。同时,又与安全访问管理模块协同,根据错误计数器的状态决定是否允许执行特定操作。

如在进行诊断测试时,其交互方式大致过程是,外部测试工具发送UDS请求,DCM接收到请求后,解析服务ID和服务参数,并根据服务类型调用相应的处理函数。对于‘Read Data By Identifier’服务,DCM会查询RTE提供的接口,获取指定DID的数据,对于‘Write Data By Identifier’则需要更新应用软件或BSW的状态,并确认写入成功。在执行敏感操作前,DCM可能需要与DEMFIM协同,进行安全访问验证,确保请求来自授权源。待处理完请求后,DCM构建响应报文,并通过通信栈发送回测试工具,从而完成诊断交互。

图2 安全访问过程流程

二、诊断管理系统开发关键步骤

在基于CAN总线的诊断管理模块的开发过程中,具体标准、要求请以主机厂相关标准、ISO 11898ISO 15765ISO14229ISO 15031等进行。

在产品开发过程中,关键的一些步骤有:

2.1.需求分析与定义

根据相关主机厂的诊断需求、相关标准文献及规范,明确诊断功能需求、数据标识符(DID)、服务支持范围、安全访问策略、响应机制、诊断会话管理、数据管理、故障管理、网络管理、通信类型等内容。如根据ISO 15031-6,将DTC划分为车身、底盘、动力和网络四个类别,其对应的故障码等内容如下:

图3 标准定义的内容

2.2.架构设计与模块划分

2.2.1.诊断管理系统总架构概述

将诊断管理系统按层级划分为应用层(Application Layer)、服务管理层(Service Layer)、数据管理层(Data Layer)、网络通信层(Network Communication Layer)、以及硬件抽象层(Hardware Abstraction Layer)。

其中,应用层负责提供具体诊断服务的逻辑实现,如读取故障码、清除故障信息、数据标示符读写等,并执行相应的故障管理策略。服务管理层实现统一诊断服务(UDS)的调度与控制,包括会话管理、安全访问控制、消息解析与生成等。数据管理层管理所有与诊断相关的数据存储、读写操作,包括DTC(故障诊断码)存储、默认与非默认会话状态信息等。网络通信层负责不同网络(如Body CANDynamic CANPropulsion CAN)上的消息传输,确保诊断消息的准确无误传输。硬件抽象层隔离上层软件与底层硬件的具体实现细节,提供统一的接口用于访问ECU硬件资源。

2.2.2.模块设计通用要求

1)通用要求

  • 根据UDS标准定义服务;

  • 确定控制单元的物理和功能地址;

  • 设计安全访问过程,包括密钥交换、安全访问级别控制等;

  • 定义对各种错误情况的响应,如不支持的服务、超出范围的请求等。

2)实现与配置方式

  • AUTOSAR开发环境中,创建DCM软件组件,定义其接口和行为模式;

  • 集成符合ISO 15765的通信栈,以支持UDS协议在CAN总线上的传输;

  • 利用AUTOSAR工具配置DCM参数,如诊断地址、服务支持列表、安全访问策略等。

3)测试与验证

开发诊断测试用例,确保DCM模块的功能正确性,包括诊断服务的正向和反向测试、安全性验证、通信时序验证等。

2.2.3.应用模块

诊断系统的应用模块是实现车载故障检测、判断与执行的直接部分,其通常包含数据接收、数据处理与分析、系统运行逻辑等几部分,此部分功能的实现通常以主机厂需求或企业自定义为主,并结合相关标准与法规对故障过程实施合理的管理。

2.2.4.诊断管理模块架构

诊断管理模块基于AUTOSAR架构,确保其作为独立的服务层组件,能够与应用层、通信管理层及底层硬件等有效交互。模块按其实现功能,再划分为诊断服务管理模块、网络与协议处理模块、辅助功能模块等子模块。

在诊断服务管理模块中,其还包含有:

  • 会话控制子模块:根据ISO 15031-5定义,实现不同诊断会话(如默认会话、编程会话、扩展诊断会话等)的初始化、切换和终止,如下:

图4 诊断会话状态图

  • 故障管理子模块:负责DTC的记录、分类、存储与清除,并支持故障码的读取服务;

  • 数据访问子模块:实现读写等服务,提供对控制单元内部数据的访问能力,如默认配置设定、VIN码等,并确保数据即时保存至非易失性内存;

  • 安全访问子模块:按照ISO 14229标准,实施安全级别验证,如安全检查0x27服务,保护敏感操作不被非法访问,以确保诊断操作的安全性。

    网络与协议处理模块包含如下内容:

  • 消息结构处理子模块:负责构造和解析诊断请求与响应消息,依据ISO 15765-2定义的消息格式,处理请求服务标识符、子功能参数等。支持单帧与多帧数据传输协议,确保数据完整且高效传输,适应不同大小的数据包需求;

  • 多网络支持子模块:确保控制单元在连接到多个网络时,基于网络拓扑和带宽考虑,自动选择最优网络进行诊断通信;

  • 唤醒与通信控制子模块:管理控制单元的唤醒机制,确保在唤醒或首次网络活动后的规定时间内响应诊断请求。

    辅助功能模块包含内容如下示意:

  • 模拟与控制子模块:提供标准化接口,模拟输入信号并控制输出,以支持离线诊断和功能测试,使外部测试工具无需下载额外代码即可进行全面诊断操作;

  • 配置管理子模块:管理控制单元的配置参数,包括默认值设定、配置参数的读写等,可记录并报告DTC,支持故障码清除与状态监测;

  • 故障诊断例程子模块:提供特定诊断例程的执行,如动力系统性能测试、网络通信测试等。

  • 2.2.5.时序与性能优化

基于CAN总线的诊断管理模块开发时,确保其遵守ISO 15765-2规定的网络层定时参数,以保证通信的可靠性。同时根据诊断服务的不同,设定合理的响应时间,以提升系统的性能。如:

5 诊断层时间参数

2.2.6.测试与验证

测试过程分为单元测试以及集成测试。单元测试即以单点控制单元为测试对象,针对每个服务进行测试,以验证数据读写、会话控制、安全访问等功能的正确性。集成测试是通过整车网络,对DCM模块进行测试,以验证其在实际网络环境下的表现。测试过程中,子模块间的交互示意如下:

诊断服务管理模块向数据管理层请求或更新数据,通过网络通信层发送或接收诊断消息,网络与协议处理模块在接收到诊断请求时,通知诊断服务管理模块进行相应的服务处理,并通过硬件抽象层与控制单元的硬件交互。辅助功能模块在需要时被调用,支持特殊诊断场景或功能测试,其结果将反馈至数据管理层或直接用于诊断响应。

三、总结

在新能源汽车用电器数量增加、电子电气结构趋于高集成的背景下,故障管理系统不仅是确保车辆正常运行和安全性的重要手段,也是提升整体服务质量和用户体验的关键环节。本文以某项目开发为背景,对故障管理系统开发过程中的一些关键点进行梳理,以便诸君参考。其他相关细节、功能,请根据实际项目具体而定。


关注+