基于MPC5644的XCP 标定系统的设计

本文涉及的产品
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 基于MPC5644的XCP 标定系统的设计

01.XCP 标定系统设计方案

本系统以飞思卡尔 32 位 MPC5644 作为微处理器,该微处理器最高总线时钟频率可达到 150 MHz,内部 192 KB RAM ,4 MB 片内 Flash,满足多标定数据要求,其系统设计方案如图 1 所示,

6215499f605a003bfecebca08ca3cb4a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

图1 系统设计方案

在此系统中标定工具支持Vector 公司的CANape软件,ETAS 公司的 INCA 软件以及普华 I-CAL 软件,PC 端标定软件与标定工具对应,通信驱动模块可以是 CAN 总线,FlexRay 总线,USB 等,本系统使用 CAN 总线。

本系统的工作原理是安装于 PC 端的标定软件通过 GUI 界面发送指令,标定工具将命令转换为通信数据,发送给微处理器MPC5644 通信驱动模块,XCP 标定协议栈根据命令要求进行相应操作, 其通信命令包括标准命令组,标定命令组,页切换命令组, DAQ 基本命令组,Flash 刷写组, XCP 标定协议栈响应命令返回给PC 标定软件,确认操作是否成功。

02.符合AUTOSAR 架构的XCP 协议实现

在AUTOSAR 软件架构中,通信模块通过 Interface接口模块与驱动模块进行连接,本系统使用 CAN 总线传输标定数据通过 Can Interface 模块嵌入 AUTOSAR 软件架构, 符合 AUTOSAR 软件架构要求可以提高代码重用性,更换处理器型号后,代码不需要重新编写,减少软件系统研发成本,缩短开发周期。

AUTOSAR 通信协议栈一般抽象为总线驱动模块,总线接口模块,网络管理模块,通信管理模块,传输层模块以及内部数据交互模块等。其中,总线驱动模块实现硬件通信驱动,总线接口模块提供协议层数据路由,协议层数据路由通过诊断协议与诊断模块通信实现诊断功能, 网络管理模块通过网络管理协议实现其功能,内部数据交互模块实现 ECU 之间数据交互,同时运行环境抽象层与通信管理模块连接,实现与应用层之间的通信。图 2 显示 XCP 协议在 AUTOSAR 软件架构中的位置,可以基于 CAN 总线, FlexRay 总线或以太网通过总线接口接入AUTOSAR软件架构。

db87140e29901dd775797be5f4df73aa_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

图2 XCP协议在AUTOSAR软件架构位置

XCP 协议实现数据标定与测量,通过 AUTOSAR软件架构的总线接口实现数据发送与接收,嵌入式操作系统的任务调度实现不同通道 DAQ 周期上传,在图 2 中,AUTOSAR XCP 模块在总线接口模块上方,如 FlexRay 或 CAN 总线,并通过总线接口实现 XCP 协议独立标定数据的传输。

2.1 XCP 协议数据发送过程分析

XCP 协议通过 CAN 接口模块的 CanIf_Transmit函数发送数据,发送成功后,调用 CanIf_TxIndication回调函数确认数据发送成功。图 3 详细说明数据发送成功后的处理过程。

e8d2b2da084819bdd39de68c06d2b087_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

图3 XCP协议数据发送过程

2.2 XCP 协议数据接收响应过程分析

XCP 协议通过 CAN 接口模块的 CanIf_RxIndication 函数接收测量数据,并对其进行处理,图 4 详细说明数据接收成功后处理机制, 具体实现了XCP独有Block 传输响应机制,包含DAQ 和STIM 处理流程以及事件错误与命令错误的处理机制, 由于CAN报文每帧最多 8Byte 数据,未满 8Byte 数据需用 0xFF填充,所以完成数据接收后,需先对报文长度进行检查,然后再判断接收命令是否正确,再进行相关处理,在Block 模式下,进行DOWNLOAD 和PROGRAM 命令处理,需先将命令数据包存入缓存池,判断当前标定或刷写命令的总字节长度是否大于6,如果否,则将状态置为接收,如果大于 6,则状态置为模块接收,并将缓存池ID 设置为DNLOAD_NEXT 或PROGRAM_ NEXT 命令,并结束接收过程,

9675bc315e62739750621e5195b6d224_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

图4 XCP协议数据接收响应过程

03.XCP 协议分析

XCP 协议通过主从模式进行通信, 其中主机一般指 PC 端标定软件,从机一般指包含 XCP 协议的 ECU 模块, 主机通过标准命令组中的 CONNECT 命令进行与从机的连接,建立连接后,主机就可以发送标定命令组的DOWNLOAD 与 UPLOAD 命令进行数据的标定与测定,发送页切换组命令SET_CAL_PAGE,实现 RAM 与 Flash 不同区域切换,发送 DAQ/STIM命令组的 WRITE_DAQ 等命令实现标定数据的实时上传,同时也可以发送Flash 刷写命令组的PROGRAM命令实现数据储存。

XCP 协议接受到命令后,首先判断前期接收到的命令是否处理完成,是否处于空闲状态,再判断接收到的命令是否有效,如果是则进行相应的命令处理,以标准命令处理过程为例,进行说明,

3.1 标准命令分析

在 XCP 协议中,标准命令主要用于主机与从机建立连接,数据的上传与下载以及数据解锁等,其包含的部分命令见表 1, 表1 XCP 协议部分标准命令组

8642355ca46ad873c1be7f24874ff8dd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

通过 CONNECT 命令主机与从机建立连接, 如果上传与下载数据需要解锁,必须通过 GET_SEED命令获取密钥,并使用UNLOCK 命令进行解锁,解锁成功后,通过 SET_MTA 命令指定工作地址,之后才可以通过 DOWNLOAD 命令下载数据到该地址或通过UPLOAD 命令上传该地址对应的数据, 当完成数据的传输后,可以通过 DISCONNECT 命令断开主机与从机之间的连接, 表中的 DOWNLOAD_NEXT 命令用于 Block 功能传输中。

3.2 CCP通讯方式

采用主从方式,标定工具作为MASTER,发送命令报文(CRO),ECU作为SLAVE应答(DTO)。

polling(查询模式)

由主设备主动向从设备发送指令,从设备做出反馈应答,“一问一答”模式。效率相对较低,实现简单,占用ECU内存空间少;


DAQ(数据采集)

主设备发送一条请求指令后,从设备按照一定周期自动向主设备上报数据;效率高,实现复杂,数据量大,占用ECU内存空间大;


通讯过程中通过指令接收报文(CRO)和数据传输报文(DTO)实现数据及信息的传递。

指令接收报文(CRO),发送指令。

数据传输方向:master -> slave;报文中携带一个指令和在从设备中执行的指令参数;

1:CMD

2:CTR

3-8:Date and Parameter

CMD:命令代码。如连接命令0x01,

CTR: 命令计数器。保证命令和应答的一致性。

数据传输报文(DTO),DTO出了应答命令外,还包括从数据主动上传的DAQ数据包。

1:PID

2:ERR

3:CTR

4-8: Data and Parameter

PID:包标识 [0XFE-0xFF],0XFF表示命令应答,0XFE表示错误报文

ERR:应答码

CTR: 命令计数器,与命令中的计数器对应。

1:PID

2-8:DAQ VALUE

PID:包标识 [0X00-0xFD],在DAQ模式下,此标识对应于相应的ODT标识(一次设置最多254个ODT)。表示后面的上传数据是此ODT中元素索引表中对应的变量值。

DAQ VALUE:ODT中元素索引表中对应的变量值,最大7个字节。

数据传输方向:slave -> master;DTO分为如下几类消息:

1、错误返回消息CRM;2、事件消息;3、数据采集;

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
7月前
|
传感器 算法 自动驾驶
混合A*运动规划算法:路径规划和路径跟踪-MPC-LQR-PID算法
混合A*运动规划算法:路径规划和路径跟踪-MPC-LQR-PID算法
混合A*运动规划算法:路径规划和路径跟踪-MPC-LQR-PID算法
LM358放大电路设计及实现
LM358放大电路设计及实现
|
7月前
|
传感器 C++ 计算机视觉
【opencv3】详述PnP测距完整流程(附C++代码)
【opencv3】详述PnP测距完整流程(附C++代码)
|
7月前
|
算法 异构计算
m基于FPGA的MPPT最大功率跟踪算法verilog实现,包含testbench
该内容包括三部分:1) 展示了Vivado 2019.2和Matlab中关于某种算法的仿真结果图像,可能与太阳能光伏系统的最大功率点跟踪(MPPT)相关。2) 简述了MPPT中的爬山法原理,通过调整光伏电池工作点以找到最大功率输出。3) 提供了一个Verilog程序模块`MPPT_test_tops`,用于测试MPPT算法,其中包含`UI_test`和`MPPT_module_U`两个子模块,处理光伏电流和电压信号。
75 1
|
6月前
|
传感器
基于PI控制和六步逆变器供电的无刷直流电动机控制系统simulink建模与仿真
该文介绍了基于PI控制和六步逆变器的无刷直流电动机(BLDC)控制系统。BLDC因高效、长寿用于各类产品,其控制需结合逆变器与精确的PI控制器。六步逆变器将直流转换为三相交流电,PI控制器负责速度和位置控制。系统包括速度、位置传感器,PI控制器,PWM发生器和逆变器,通过闭环控制实现电机稳定运行。MATLAB2022a用于仿真验证。参数优化对系统性能关键,常通过实验或仿真确定。
|
7月前
|
编解码 算法 安全
LabVIEW使用DSA技术从X射线图像测量肺气容量
LabVIEW使用DSA技术从X射线图像测量肺气容量
26 0
|
7月前
|
运维 并行计算 异构计算
LabVIEW硬件在环仿真模拟电路故障分析和特征提取
LabVIEW硬件在环仿真模拟电路故障分析和特征提取
50 0
|
7月前
|
传感器 编解码 自动驾驶
即插即用 | Lite-FPN让CenterNet系列再涨4个点(3D检测也适用)
即插即用 | Lite-FPN让CenterNet系列再涨4个点(3D检测也适用)
239 0
|
算法 机器人
m基于万能逼近原理自适应模糊控制算法的多自由度AUV运动控制抗干扰补偿simulink仿真
m基于万能逼近原理自适应模糊控制算法的多自由度AUV运动控制抗干扰补偿simulink仿真
172 0
|
算法 机器人
m基于MPC模型预测控制算法的永磁直线同步电机控制系统simulink仿真,MPC分别使用工具箱和S函数进行设计
m基于MPC模型预测控制算法的永磁直线同步电机控制系统simulink仿真,MPC分别使用工具箱和S函数进行设计
457 0