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

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 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、数据采集;

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
8月前
|
传感器 算法 自动驾驶
混合A*运动规划算法:路径规划和路径跟踪-MPC-LQR-PID算法
混合A*运动规划算法:路径规划和路径跟踪-MPC-LQR-PID算法
|
2月前
西子奥的斯MPC1系列扶梯控制原理
西子奥的斯MPC1系列扶梯控制原理
49 2
|
8月前
|
调度 SoC
【MPC|云储能】基于模型预测控制(MPC)的微电网调度优化的研究(matlab代码)
【MPC|云储能】基于模型预测控制(MPC)的微电网调度优化的研究(matlab代码)
|
8月前
|
运维 并行计算 异构计算
LabVIEW硬件在环仿真模拟电路故障分析和特征提取
LabVIEW硬件在环仿真模拟电路故障分析和特征提取
54 0
|
8月前
生态学模拟对广义线性混合模型GLMM进行功率(功效、效能、效力)分析power analysis环境监测数据
生态学模拟对广义线性混合模型GLMM进行功率(功效、效能、效力)分析power analysis环境监测数据
|
编解码 计算机视觉
在网格化数据集上轻松执行 2D 高通、低通、带通或带阻滤波器研究(Matlab代码实现)
在网格化数据集上轻松执行 2D 高通、低通、带通或带阻滤波器研究(Matlab代码实现)
151 0
|
8月前
|
5G
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
|
8月前
|
机器学习/深度学习
【DR_CAN-MPC学习笔记】3&4.详细的MPC建模例子和matlab代码
【DR_CAN-MPC学习笔记】3&4.详细的MPC建模例子和matlab代码
|
算法 机器人
m基于MPC模型预测控制算法的永磁直线同步电机控制系统simulink仿真,MPC分别使用工具箱和S函数进行设计
m基于MPC模型预测控制算法的永磁直线同步电机控制系统simulink仿真,MPC分别使用工具箱和S函数进行设计
471 0
|
传感器 机器学习/深度学习 编解码
激光雷达与视觉联合标定综述!(系统介绍/标定板选择/在线离线标定等)
由于2D识别的成功,论文引入了一个大型基准,称为OMNI3D,重新审视了3D目标检测的任务。OMNI3D对现有数据集进行了重新利用和组合,生成了234k张图像,标注了300多万个实例和97个类别。由于相机内参的变化以及场景和目标类型的丰富多样性,这种规模的3D检测具有挑战性。论文提出了一个名为Cube R-CNN的模型,旨在通过统一的方法在摄像机和场景类型之间进行泛化。结果表明,在更大的OMNI3D和现有基准上,Cube R-CNN优于先前的工作。最后,论文证明了OMNI3D是一个强大的3D目标识别数据集,表明它提高了单个数据集的性能,并可以通过预训练加速对新的较小数据集的学习。
激光雷达与视觉联合标定综述!(系统介绍/标定板选择/在线离线标定等)

热门文章

最新文章