摘要:本文介绍标准化基础软件在CAN总线诊断方面的设计流程及应用。
随着国内自主车型的不断发展,从CAN (ControllerArea Network,控制器局域网络)总线诊断专业发现,面临如下问题。
1)各电子控制单元供应商技术水平参差不齐,开发周期不一致,对整车厂商的项目进度计划有影响。
2)各平台车型,由于电子控制单元供应商更换,软件开发存在重复投资,成本高。
3)整车厂商对于整车、系统及电子控制单元开发、测试验证投入的设备、人员资源占用大。
4)各电子控制单元供应商或自行开发网络协议栈或找第三方软件开发商开发非标准网络协议栈,对整车厂商的规范实现不统一。
5)各电子控制单元供应商或自行开发网络协议栈或找第三方软件开发商开发非标准网络协议栈,在开发阶段的软件整改存在牵一发动全身的缺点,局部修改软件导致软件整体功能失效、整改周期长。
基于上述原因,研究并分析标准化基础软件在CAN总线诊断开发技术上应用的可行性,是全面应用嵌入式软件平台开发的基础。
1 CAN诊断功能定义
就诊断功能来说,整车厂采用在线诊断与离线诊断相结合的诊断方法。
在线诊断通过电子控制单元内部软硬件实现自诊断。在汽车运行过程中,自诊断系统实时监控电子控制系统各组成部分的工作状态,从而检测电子控制系统中的故障。自诊断系统一方面将检测出的故障通过一定的方式(比如报警指示灯)向驾驶员发出警告,另一方面将故障代码及相关数据存入电子控制单元存储器。
离线诊断通过外部诊断设备接入OBD接口,读取相应的诊断信息,实现诊断操作。实现离线诊断的关键在于如何实现诊断设备和电子控制单元之间的通信机制和诊断服务,即诊断协议。
2 标准化基础软件架构与配置
诊断协议栈软件是一套用于汽车电控系统诊断功能的嵌入式软件,它主要包含诊断层模块、传输协议模块、CAN接口和CAN驱动。该软件参照AUTOSAR标准,结合ISO标准,对上下层接口进行统一。诊断协议栈软件架构如图1所示。诊断层运行流程图如图2所示。下面简要介绍诊断协议栈开发内容。
2.1诊断模块主要实现功能
1)提供诊断服务管理机制。
2)管理会话和安全访问。
3)提供P2/S3等定时参数的超时监测。
4)提供与应用程序/诊断算法之间的接口。
2.2诊断模块架构与接口
诊断模块架构与接口如图3所示。
1)错误处理①故障管理使能;②管理故障数据;③发现故障并记录故障信息:诊断故障码、状态位、快照数据、扩展数据;④维护故障属性,并在收到诊断请求后报告。