随着现代汽车不断推进智能化和电动化,传统的排放诊断协议OBD(On-Board Diagnostic,车载自动诊断系统)已经不能很好满足各种类汽车电控单元(Electronic Control Unit,ECU)的故障诊断需求。现如今,ISO 14229所制定的UDS(Unified Diagnost...
详细信息
随着现代汽车不断推进智能化和电动化,传统的排放诊断协议OBD(On-Board Diagnostic,车载自动诊断系统)已经不能很好满足各种类汽车电控单元(Electronic Control Unit,ECU)的故障诊断需求。现如今,ISO 14229所制定的UDS(Unified Diagnostic Services,统一诊断服务)协议由于具备超越OBD的通用性,正在汽车行业迅速推广。另外,近几年出现的汽车空中升级(Over-the-Air,OTA)技术要求汽车ECU的Bootloader(引导加载器)支持标准的通信协议,UDS协议便成为了一种选择;而由于汽车ECU数量多、软件量大,OTA耗时长且容易受到干扰,因此OTA又要求Bootloader设计容错机制。本文以一款基于NXP公司MC9S12XEQ512微控制器的纯电动物流车整车控制器为平台,设计并实现了一套基于CAN(Controller Area Network,控制器局域网络)总线的UDS诊断服务软件,实现了常用的故障诊断服务。该软件首先按照MISRA-C规范进行编写,保证了软件可靠性;其次采取了分层化和模块化等处理方式,提高了软件可移植性;最后利用状态机模型来实现耗时过程的离散化运行,保证了软件实时性。本文设计并实现了汽车ECU的Bootloader软件,并将UDS协议作为软件升级所依赖的标准通信协议。除此之外,为了满足OTA场景的需求,本文还提出在Bootloader软件上实现断点续传和软件回滚功能。前者使得OTA过程在被意外情况中断后依然能够继续进行;后者使得ECU软件在升级后出现适配问题时能够及时回滚到上一个稳定版本。这两个新功能的引入,提升了软件升级系统的容错率,保证了车辆安全。本文还在PC(Personal Computer,个人计算机)端上基于WinForm实现了UDS诊断上位机,其支持发送UDS诊断服务请求、解析和显示诊断服务响应信息、软件包下载等功能,用于对UDS诊断服务软件以及Bootloader软件进行测试和应用。最后,本文通过实验室测试和实车测试对UDS诊断服务软件和Bootloader软件的功能和性能进行验证,证明了本文所实现的软件已达到设计需求。
暂无评论