基于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的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
6月前
基于DSP的信号采样与重构
基于DSP的信号采样与重构
98 2
|
6月前
|
传感器 算法 自动驾驶
混合A*运动规划算法:路径规划和路径跟踪-MPC-LQR-PID算法
混合A*运动规划算法:路径规划和路径跟踪-MPC-LQR-PID算法
混合A*运动规划算法:路径规划和路径跟踪-MPC-LQR-PID算法
|
6天前
西子奥的斯MPC1系列扶梯控制原理
西子奥的斯MPC1系列扶梯控制原理
26 2
|
6月前
|
算法 异构计算
m基于FPGA的MPPT最大功率跟踪算法verilog实现,包含testbench
该内容包括三部分:1) 展示了Vivado 2019.2和Matlab中关于某种算法的仿真结果图像,可能与太阳能光伏系统的最大功率点跟踪(MPPT)相关。2) 简述了MPPT中的爬山法原理,通过调整光伏电池工作点以找到最大功率输出。3) 提供了一个Verilog程序模块`MPPT_test_tops`,用于测试MPPT算法,其中包含`UI_test`和`MPPT_module_U`两个子模块,处理光伏电流和电压信号。
68 1
|
4月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
升级版FPGA MSK调制解调系统集成AWGN信道模型,支持在Vivado 2019.2中设置不同SNR仿真误码率。示例SNR值从0到15,结果展示解调质量随SNR提升。MATLAB仿真验证了MSK性能,图片显示了仿真结果。 ### 理论概要 研究聚焦于软件无线电中的MSK调制解调,利用Verilog实现。MSK是一种相位连续、恒包络的二进制调制技术,优点包括频谱效率高。系统采用无核设计,关键模块包括调制器、解调器和误码检测。复位、输入数据、中频信号等关键信号通过Verilog描述,并通过Chipscope在线观察。
101 6
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
|
5月前
|
传感器
基于PI控制和六步逆变器供电的无刷直流电动机控制系统simulink建模与仿真
该文介绍了基于PI控制和六步逆变器的无刷直流电动机(BLDC)控制系统。BLDC因高效、长寿用于各类产品,其控制需结合逆变器与精确的PI控制器。六步逆变器将直流转换为三相交流电,PI控制器负责速度和位置控制。系统包括速度、位置传感器,PI控制器,PWM发生器和逆变器,通过闭环控制实现电机稳定运行。MATLAB2022a用于仿真验证。参数优化对系统性能关键,常通过实验或仿真确定。
|
6月前
|
调度 SoC
【MPC|云储能】基于模型预测控制(MPC)的微电网调度优化的研究(matlab代码)
【MPC|云储能】基于模型预测控制(MPC)的微电网调度优化的研究(matlab代码)
|
6月前
生态学模拟对广义线性混合模型GLMM进行功率(功效、效能、效力)分析power analysis环境监测数据
生态学模拟对广义线性混合模型GLMM进行功率(功效、效能、效力)分析power analysis环境监测数据
|
6月前
|
5G
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
【DR_CAN-MPC学习笔记】1.最优化控制和MPC基本概念
|
6月前
|
Web App开发 Shell
【Simulink】基于双矢量MPC的三相并网逆变器电流控制(调制模型预测控制)
【Simulink】基于双矢量MPC的三相并网逆变器电流控制(调制模型预测控制)