当前位置: 首页 > news >正文

XCP服务

一、XCP协议简介

核心功能:通过ECU网络接口在线实现变量观测、参数修改和程序旁路
应用场景:ECU复杂算法参数需在整车运行后实时调整,如发动机控制参数标定

1. ECU中算法参数的确定

  • 开发难点:ECU运行的复杂算法(如PID控制)包含大量无法在开发阶段确定的参数。
  • 解决方案:需在整车实际运行中实时修改参数并观测反馈,例如:
    1. 修改燃油喷射脉宽参数;
    2. 观测发动机转速响应曲线;
    3. 最终确定最优参数值组合。

2. ASAM组织的成立

在这里插入图片描述

  • 成立背景:1990年代德系车企与供应商联合推动标准化。
  • 主要成员
    • OEM:奥迪、宝马、奔驰、大众;
    • 供应商:BOSCH、ETAS、Vector。
  • 首个成果:基于CAN总线的CCP标定协议。

3. XCP协议的产生

  • 技术演进
    1. CAN总线局限性(8字节payload/1M带宽)无法满足大数据量传输;
    2. 从CCP协议扩展为支持多总线的XCP协议。
  • 协议特点
    • "X"代表多总线支持:CAN/TCP/IP/UDP/USB/FlexRay;
    • 保持CCP核心功能的同时提升传输效率。

4. XCP协议的功能演示

  • 系统组成

    • 上位机软件(如CANape);
    • 网络接口卡(物理/Virtual CAN);
    • 目标ECU。
  • 操作流程

    1. 建立通信连接;
    2. 清空Trace记录;
    3. 通过指令交互验证连接。
  • 核心功能演示

    • 实时观测:图形化显示ECU传输的正弦波信号;
    • 参数修改:振幅从20调整为10再调整为5,修改立即生效并反映在波形上;
    • Map标定:支持二维坐标点参数修改;
    • 同步传输:整张Map数据实时上传更新。
  • 协议分层
    在这里插入图片描述

    • CAN总线:协议层→传输层→数据链路层→物理层;
    • 以太网:增加网络层(TCP/IP模块);
    • 特殊机制:类似J1939协议的传输层包重组功能。

二、AUTOSAR框架下的XCP协议

1. XCP协议的系统描述

  • PDU类型:在System Editor中可查看General Purpose PDU(通用属性PDU),这是XCP协议的基础通信单元。
  • 协议实现:本章使用的XCP协议是在CAN总线上实现的,可通过Frame查看相关报文。
  • 报文分类
    • 接收报文:上位机指令和广播指令;
    • 发送报文:ECU反馈的Response指令;
    • 数据采集:包含3个DAQ(Data Acquisition)指令。
  • 协议特性
    • 不产生Signal传递到ASW层;
    • 不需要Signal映射到PDU;
    • 核心概念包括CMD、Response、DAQ、Steam Calibration等。
  • 参考文档:需查阅ASAM组织发布的XCP协议标准文档了解详细定义。

2. 现有工程下XCP系统描述的移植

(1)查找已有XCP系统描述文件

  • 文件定位:使用AR Explorer工具在File System中查找;
  • 存储位置:系统描述存储在"srg_dbc_system_description.arxml"文件中。

(2)复制XCP系统描述到目标目录

  • 操作要点
    • 目标工程目录与源文件同名(工具自动生成);
    • 可直接使用复制粘贴操作进行迁移;
    • 涉及6条XCP报文需要转移。

(3)粘贴XCP系统描述到目标AR XML文件

  • 操作步骤
    1. 在PDU Package中找到6条XCP报文(编号1-6);
    2. 使用拷贝功能粘贴到目标ARXML文件;
    3. Signal层不涉及XCP部分,无需操作;
    4. Frame层同样包含6条需要转移。

(4)处理XCP报文挂载与端口粘贴

  • ECU配置
    1. 将XCP报文全部挂载在LLCE0控制器下;
    2. 需要复制Frame Port和IPDU Port到目标工程;
    3. 注意保持系统描述的完整性。

(5)检查并修改不正确的名字

  • 验证步骤
    1. 使用AR Explorer检查VCU Starter系统描述;
    2. 手动修改Frame Port和IPDU Port的控制器名称;
    3. 确保所有引用关系正确建立。

(6)BSW部分的配置思路整理

  • 配置层级
    1. XCP到CANIF的ECUC配置;
    2. XCP模块本身的配置;
    3. CANIF到CAN的配置。
  • 注意事项
    1. 避免使用自动配置工具(会覆盖手动配置);
    2. 手动配置存储在"ecu_config_bsw_generation/project.ecu_values.arxml";
    3. XCP属于应用层协议,包含协议解析和传输层功能。

3. BSW的配置

(1)创建XCP模块

  • 模块独立性:为XCP功能单独创建AR XML文件存储相关信息,保持功能模块的独立性;
  • 复用性优势:将功能独立性强的模块集中存放,便于后续工程直接复用;
  • 描述挂载:可将ECUC描述同时挂载到新建的XCP.ARXML文件中。

(2)配置XCP模块

① XCP模块描述与生成
  • 文件位置
    • ECUC描述位于BSW工具生成的Project_ECUC_Values.ARXML;
    • XCP模块位于新建的XCP.ARXML文件。
  • 功能整合:建议将XCP相关功能(PDU、CAN等)集中存放。
② XCP模块的功能整合
  • 完整导入:模块化设计允许将XCP模块整体导入/切换工程;
  • 配置隔离:自动配置工程时不会影响XCP模块本身配置。
③ 复制与删除重复描述
  • 操作步骤
    1. 将ECUC_TIF整体拷贝到XCP.ARXML;
    2. 删除XCP文件中重复的ECUC描述;
    3. 同步删除CRB Settings冗余配置。
④ 创建PDU
  • 数量要求:需要创建6条PDU;
  • 操作位置:在XCP.ARXML文件的ECUC下创建。
⑤ 引入ECUC Values问题
  • 问题现象:ECUC未正确引入Values描述;
  • 根本原因:XCP.ARXML文件路径配置异常。
⑥ 修改文件路径
  • 解决方案
    1. 使用AR Explorer查看工程;
    2. 将XCP路径修改为与Project_ECUC一致(ECUC Module Configuration Values);
    3. 使用Rename功能完成路径统一。
⑦ 验证PDU创建
  • 验证方法:双击打开两个ARXML文件;
  • 验证结果:新建的6个PDU已出现在ECUC模块下。
⑧ 使用Split View功能
  • 功能作用:同时展示多个文件的模块描述;
  • 核心优势
    • BSW配置工具更新时不会覆盖XCP.ARXML中的自定义配置;
    • 支持多文件共同描述同一模块。
⑨ PDU命名与配置
  • 命名规则
    • 按VCU接收的CAN消息类型命名;
    • 明确方向标识(CAN IF→XCP模块)。
  • 配置检查
    • Command命令接收于上位机;
    • Response需配置为XCP模块→CAN IF方向。
⑩ 保存配置
  • 保存时点:完成所有PDU配置和方向检查后;
  • 注意事项:确保响应消息方向配置正确(XCP→CAN IF)。

(3)配置XCP模块下的子项

① a two l文件的配置与生成
  • 文件生成机制:AB工具会根据配置自动生成a two l文件,包含core load、event channel声明和tp层声明;
  • 配置内容
    • 包含core load配置项;
    • 包含event channel声明;
    • 包含tp层声明;
  • 使用建议:该功能在初始配置阶段可以暂不启用。
② elf文件创建与使用
  • 替代方案:系统编译完成后可直接使用elf文件创建,无需依赖ISO lo AB功能;
  • 配置时机:当前阶段建议暂不配置该选项。
③ General配置详解
  • 功能裁剪
    • 扩展地址:不使用;
    • 下载功能:允许;
    • 上传功能:允许;
    • 标定功能:允许。
  • 特殊配置
    • Received notification:不使用;
    • 命名校验:启用(使上位机可获取daq和配置信息);
    • Call out:不使用。
  • 内存限制
    • DAQ memory:建议4k空间(需根据ECU实际RAM大小调整);
    • RAM shifting:不使用。
  • 错误处理:为简化工程,XCP模块错误不进行处理。
  • 时间基准
    • Main function peer reason决定模块运行基准时间;
    • 需选择最小分频满足未来数据获取需求(如1ms获取数据则需设定小于1ms);
    • 常用1ms时间基准已足够快。
④ 配置错误处理与检查
  • 错误类型:删除已创建的element value会导致错误提示;
  • 解决方法:需直接删除对应element而非仅删除value;
  • 检查要点:完成配置后必须逐一检查所有配置项。
⑤ 其他重要配置选项
  • 产品线选择:建议选择CS mo四二;
  • 安全功能:可根据实际需求开启XCP锁定/解锁功能;
  • 同步功能
    • 同步数据获取:建议开启;
    • 同步数据激励:建议开启;
  • 时间参数
    • 时间桌ticks:选择1;
    • 时间戳单位:使用100微秒。
⑥ 配置说明与参数填写
  • 参考依据:右侧配置说明提供详细参数填写指导;
  • 注意事项:需严格按说明内容填写各项参数。
⑦ 确定XCP版本与必要配置
  • 版本确认:需明确XCP协议版本;
  • 配置标识
    • 加黑部分为必要配置项;
    • 未加黑部分也可能包含重要配置;
  • 配置原则:根据实际使用需求逐一确认每个配置项的开启状态和参数设置。

(4)配置传输层

① 传输层基础配置
  • 配置位置:在XCP config中进行传输层配置;
  • 初始选项
    • Event Channel(事件通道):稍后配置;
    • Transport Layer(传输层):优先配置。
② 传输层参数设置
  • 总线类型声明:创建XSP模块时自动创建传输层,需声明总线类型;
  • 关键参数
    • 使用4096配置(与J Nero部分保持一致);
    • XTP功能过载通知:选择不发出通知;
    • 以太网包对齐方式:因使用CAN协议,不做配置。
③ 报文与时间戳配置
  • 报文长度:CTO/DTO:与CAN报文数据长度保持一致;
  • 时间戳配置:使用1字节描述XCP时间戳;
  • ID配置
    • 工具可能不会自动生成未加黑/无星号的ID;
    • 示例:手动配置ID为0;
  • 传输通道命名:需为传输通道命名;
  • 物理层协议:选择XCP on CAN。
④ PDU配置
接收PDU配置
  • 指令类型
    • 必须包含command接收通道(建立XCP协议必需);
    • 可选stream指令;
  • ID配置策略
    • 部分ID由工具自动生成;
    • 建议暂不填写,通过配置校验阶段提示补全;
  • 事件通道引用:接收PDU不涉及事件通道,保持空置;
  • 引用配置
    • 引用ECOC中配置的IPU;
    • 选择CANIF到XCP模块的路径。
发送PDU配置
  • 服务类型
    • 选择Response;
    • 或Response+Event Channel服务(支持未来共用);
  • ID处理:同样暂不填写;
  • 事件通道引用:创建前保持空置。
⑤ 事件通道建立
  • 命名规则
    • 示例:ev0(可自定义);
    • Short name对应为e0;
  • 优先级设置
    • 范围:255为最高;
    • 示例配置为1;
  • 时间周期:配置1ms表示每毫秒处理一次;
  • 通道类型:选择常用DAQ类型;
  • 引用配置
    • 创建后需返回tx PDU配置引用;
    • bypass功能未启用。
⑥ 配置完成说明
  • 扩展建议
    • 可建立多个事件通道;
    • 可配置多条发送PDU;
  • 后续步骤
    • 完成传输层配置后进入CAN模块;
    • 继续配置数据链路层和物理层。

(5)配置数据链路层和物理层

① 配置接收与发送报文数量
  • 初始配置:在CAN IF模块中需要明确接收和发送的报文数量,示例中配置了1条接收和1条发送报文;
  • 配置顺序:先完成XCP层的配置(1收1发),再进入CAN IF层进行详细配置。
② 配置rx pdu
  • ID设置
    • 接收ID暂定为,实际使用;
    • 数据长度设为8字节;
    • PDU序列的ID index保持空白;
  • 上层模块:选择XCP作为上层模块,当前未配置H2H;
  • 标准检查:需要检查模块的标准接收函数;
  • PDU选择:复用ECUC中的Rx Command PDU;
  • 控制器选择:使用FlexCAN 0控制器。
③ 配置h2h
  • 注意事项:由于CAN控制器的mailbox已被占用且都是Full类型,需先在CAN中创建后才能完成引用;
  • 配置顺序:先完成CAN层的mailbox创建,再返回CAN IF层完成剩余配置。
④ 配置发送的mailbox
  • 基础设置
    • 标准帧ID设为;
    • 选择Tx Confirmation类型;
    • mailbox分配:指定在mailbox 5上发送;
  • 引用关系:复用ECUC中配置的PDU。
⑤ 配置hth
  • 复用策略:采用已有mailbox进行配置,避免重复创建;
  • 验证步骤:需要检查发送mailbox 5的配置状态。
⑥ 建立相关mailbox
  • 操作要点:在CAN层建立与PDU对应的mailbox;
  • 复用原则:可复用已有mailbox资源。
⑦ 确认mailbox 5类型
  • 类型修改:将mailbox 5从Full类型改为Basic类型;
  • 验证方法:通过CanHandleIdType参数确认当前类型。
⑧ 建立接收hardware object
  • 命名规则:沿用已有命名规范,编号为6;
  • 属性设置
    • 类型为接收;
    • 需要引用对应的controller;
  • 完成标志:配置完成后可返回CAN IF层。
⑨ 完成h2h应用
  • 关联配置:将H2H与已建立的PDU和mailbox进行关联;
  • 验证方法:检查各层配置的引用关系是否正确。
⑩ 配置总结与校验阶段
  • 配置顺序:协议层数据→数据传输层→数据链路层→物理层;
  • 连接方式:使用PDU将各层配置连接起来;
  • 校验提示:可能出现AUTOSAR配置规则问题,需按工具提示逐步解决。

三、内容总结

1. XCP协议基础

  • 协议目的:XCP协议是为实现高效、可靠的通信而设计的应用层协议;
  • 演示工具:使用KAP工具可以直观展示XCP协议的实际使用效果;
  • 网络层级:在AUTOSAR架构下,XCP协议位于网络模型的应用层。

2. 协议实现架构

  • 功能分层
    • 协议层:由AUTOSAR BSW层的XCP模块实现;
    • 数据传输层:负责协议数据的实际传输;
  • 配置关联:XCP模块配置与底层通信配置存在交叉参考关系。

3. 配置要点

  • 配置内容
    • 协议层参数配置;
    • 数据传输层参数配置;
  • 注意事项
    • PDU配置时需要明确upper layer模块;
    • 数据链路层和物理层配置可参考CAN通信配置;
  • 学习建议:将XCP配置与CAN通信配置对比学习,理解其相似的逻辑流程。

四、知识小结

知识点核心内容考试重点/易混淆点难度系数
XCP协议概述用于ECU参数在线标定的通信协议,支持多种总线(CAN/TCP/IP/UDP等)与CCP协议的区别:CCP仅支持CAN总线⭐⭐
协议发展历史由ASAM协会(奥迪/宝马/奔驰等组成)从CCP协议拓展而来关键演进原因:CAN总线带宽限制(1M/8字节)
核心功能实时观测/修改ECU变量、参数旁路、数据同步上传DAQ数据采集与标定功能的区别⭐⭐⭐
协议分层结构应用层(协议本身)+传输层+数据链路层+物理层以太网版本多网络层⭐⭐⭐⭐
CANape工具演示展示正弦波振幅实时修改(20→10→5)、MAP图标定Trace窗口数据流分析⭐⭐⭐
AUTOSAR实现XCP模块配置:协议层(General配置)+传输层(Transport配置)Event Channel时间周期设置(1ms)⭐⭐⭐⭐
PDU配置流程6条PDU分类(Command/Response/DAQ)+CAN Mailbox配置硬件对象类型转换(Basic/Full)⭐⭐⭐⭐
工程移植方法通过ARXML文件迁移系统描述(PDU/Frame/ECU端口)文件路径冲突处理⭐⭐⭐
http://www.dtcms.com/a/473356.html

相关文章:

  • Excel - Excel 列出一列中所有不重复数据
  • 如何获取用户右击的Excel单元格位置
  • 昆明企业网站建设公司虹口建设机械网站制作
  • 宁波p2p网站建设黑龙江省建设安全网站
  • Spring Boot 3零基础教程,自动配置机制,笔记07
  • Spring通关笔记:从“Hello Bean”到循环依赖的奇幻漂流
  • 【Spring Security】Spring Security 密码编辑器
  • MCU ADC外设工作原理介绍
  • k8s的ymal文件
  • 杭州公司建设网站网站建设标签
  • 博客系统小笔记
  • 后端开发和软件开发有什么区别
  • 分布式专题——41 RocketMQ集群高级特性
  • 自然语言处理分享系列-词语和短语的分布式表示及其组合性(一)
  • 从0到1实现鸿蒙智能设备状态监控:轻量级架构、分布式同步与MQTT实战全解析
  • RWKV架构讲解
  • Docker 镜像维护指南:从配置优化到 MySQL 实战运行
  • 电视盒子助手开心电视助手 v8.0 删除电视内置软件 电视远程控制ADB去除电视广告
  • 【完整源码+数据集+部署教程】 航拍杂草检测与分类系统源码和数据集:改进yolo11-RVB-EMA
  • My SQL--创建数据库、表
  • mysql高可用架构之MHA部署(三)——故障转移后邮件告警配置(保姆级)
  • 做酒的网站有哪些jsp获取网站域名
  • OpenCV(八):NumPy
  • 小微宝安网站建设有哪些做分析图用的网站
  • RabbitMQ 核心概念解析
  • 开发实战 - ego商城 - 2 nodejs搭建后端环境
  • 基于Java Swing的智能数据结构可视化系统 | 支持自然语言交互的AI算法助手
  • QQmusic sign值逆向实战 - Webpack打包分析
  • 城乡建设部网站首页网站建设公司应该怎么做推广
  • Linux环境下Hive4.0.1(最新版本)部署