为此,本文开发了一款基于AUTOSAR架构的XCP标定系统。该系统融入AUTOSAR软件架构,使用通信标准接口进行数据交互,实现XCP协议的模块化开发,同时XCP协议可以实现不同总线上的数据传输,适用于不同硬件平台,提高通信能力,解决了使用其他汽车总线实现标定的难题。最后,通过对所开发的标定系统进行代码QAC检测及功能测试,结果显示该标定系统软件功能完整、实时性高、性能稳定。
AUTOSAR架构整体分为3层,分别是应用层、运行环境抽象层、基础软件层。应用层包括传感器软件组件、执行器软件组件以及应用软件组件。运行环境抽象层是应用软件和基础软件层的通信桥梁,可以为应用层提供一个统一的通信环境。基础软件层是协议栈的实现,包括标准通信栈、网络管理模块、诊断协议栈、存储栈、操作系统、微控制器抽象层MCAL(microcontrollerabstractionlayer)驱动软件模块。
本文所述标定系统属于基础软件层,它提供了一种符合AUTOSAR标准通信接口的标定软件模块解决方案。
在此系统中,标定工具支持Vector公司的CANape软件、ETAS公司的INCA软件以及普华I-CAL软件,PC端标定软件与标定工具对应,通信驱动模块可以是CAN总线、FlexRay总线、USB等,本系统使用CAN总线。
本系统的工作原理是:安装于PC端的标定软件,通过GUI界面发送指令,标定工具将命令转换为通信数据,发送给微处理器MPC5644通信驱动模块,XCP标定协议栈根据命令要求进行相应操作。其通信命令包括标准命令组、标定命令组、页切换命令组、DAQ基本命令组、Flash刷写组。XCP标定协议栈响应命令返回给PC标定软件,确认操作是否成功。
在AUTOSAR软件架构中,通信模块通过Interface(接口)模块与驱动模块进行连接。本系统使用CAN总线传输标定数据,通过CanInterface模块嵌入AUTOSAR软件架构。符合AUTOSAR软件架构要求,可以提高代码重用性,更换处理器型号后,代码不需要重新编写,减少软件系统研发成本、缩短开发周期。
XCP协议实现数据标定与测量,通过AUTOSAR软件架构的总线接口实现数据发送与接收,嵌入式操作系统的任务调度实现不同通道DAQ周期上传。
XCP协议接受到命令后,首先判断前期接收到的命令是否处理完成,是否处于空闲状态,再判断接收到的命令是否有效,如果是则进行相应的命令处理。以标准命令处理过程为例,进行说明。
通过CONNECT命令主机与从机建立连接。如果上传与下载数据需要解锁,必须通过GET_SEED命令获取密钥,并使用UNLOCK命令进行解锁;解锁成功后,通过SET_MTA命令指定工作地址,之后才可以通过DOWNLOAD命令下载数据到该地址或通过UPLOAD命令上传该地址对应的数据。当完成数据的传输后,可以通过DISCONNECT命令断开主机与从机之间的连接。表中的DOWNLOAD_NEXT命令用于Block功能传输中。
XCP软件测试主要是针对代码的QAC扫描和功能测试,其中QAC扫描用于检测编程规范是否满足MISRA-C规范,增强代码阅读性以及减少代码存在的风险;功能测试用于检测XCP软件功能是否正确和完善。