汽车标定技术(二)--基于XCP的标定测量实战

news2024/12/23 18:57:17

目录

1.工程创建

1.1 新建工程

1.2 设备配置

1.3 标定观测

1.4 刷写

2.原始hex文件与标定文件的合并

2.1 修改memory segment file

2.2 标定量地址偏移

​编辑

2.3 标定后与原始hex文件合并

2.4 标定后直接merge

2.5 不用对ram地址进行偏移实现hex文件合并


        本文使用CANape14.0,演示如何从0创建基于XCP的标定工程、如何只刷写标定数据到Flash以及如何合并Hex为诊断刷写提供支撑。

使用CANape第一步就是新建一个工程。

1.工程创建

1.1 新建工程

        首先打开CANape,出现如下界面,选择Create new project,

        在给工程命名后点击next,

        选择工程的存放地点,可以新建一个工作空间给CANape,点击next,完成工程创建,完成之后如果手里有A2L文件将其放在该文件夹下方便后续使用。

1.2 设备配置

        所谓设备,就是在PC端建立一个虚拟ECU,用于描述实际ECU内部信息,因此这里通常选择:device>new from(因为已经有A2L文件了)

        因为A2L文件本身就是用于描述ECU内部信息和对外接口。 

        选择对应a2l文件点击打开,通常这个名字是根据A2L文件名来的,如下:

        接下来,为Master和Slave选择传输方式,这里我们选择CAN,因为A2L只描述了CAN

        这里选用CAN总线,在Network setting里配置一路can网络,如下图所示,点击next

        因为用的1640,选择一个通道即可,之后一路点击next即可,完成后出现如下界面

        这里主要是针对XCPsim的一些设置,主要包括标定段的起始地址、协议选择等;

例如memory配置,

        通常情况下,选取A2L之后标定区地址会自动显示,此时只需要检查一下地址起始和范围,如果有错选择change即可更改。

Protocol界面

        需要配置的有ECU数据格式、是否支持block模式,以及Seed&Key,点击browse选择seedkey.dll文件即可(建议a2l和seedkey.dll文件都集中放在工程目录下),点击Transprot Layer检查主机和从机ID是否正确。之后关闭即可。

1.3 标定观测

在上位机主界面右键,选择Other window新建一个trace window(目的是trace主机和从机之间通讯报文,遇到连接不成功时有文件可以追溯)。

        使用标定工具(我用的是VN1640A)物理连接ECU和上位机,点击

        或者shift+F9进行连接,会出现

        该界面表示上位机的数据与ECU数据不一致,点击Upload将ECU数据上传给上位机,也可以使用download下载到ECU RAM里,前提是有提前标好的hex在PC端,点击OK,等待数据上传,可通过trace window来观察报文。

        建立连接之后,就可以进行数据的标定和观测。

        主界面右击选择calibration window,会弹出如下界面

        选择所需要的标定量(CANape自动识别A2L文件中的标定、观测量)即可,之后右键选择measurement window(观测量界面有多种形式可选),根据控制策略选择相应的观测量。

        点击工具栏的闪电 或者F9即可开始进行测量。

1.4 刷写

        在标定后,如果对标定结果比较满意,可以点击工具栏calibration>parameter set>save in binary format,

        然后选择Flash>Program download to flash,出现如下界面。

        选择Add,选择相应的HEX,点击确定等待刷写成功。

2.原始hex文件与标定文件的合并

        常见的做法是将标定数据和原始代码hex进行合并,然后统一通过uds去进行刷写。那么我们来看看如何进行合并

2.1 修改memory segment file

         最开始使用的是将flash映射到ram的方式,但是这样在合并时,标定量的地址也是在ram区,在原始hex文件里是找不到对应的ram的block的,如下图:

       因此需要将标定量的地址全部改为flash的地址:Device Configuration > Memory Segments,修改如下:

         这样就建立了flash和ram的映射,但是标定量的地址是flash地址,因此需要在database里为标定量地址添加偏移量。

2.2 标定量地址偏移

       进入Database Editor,此时发现标定量的地址为红色,且没有钉子状,说明该地址无效,且没有与elf文件关联;右击一个标定量,选择properties>address>link,选择对应的标定量,如下:

         此时发现MAP offset为0,由于flash起始地址是a0150000,ram的起始地址是600090000所以其偏移量为:0xa0150000-0x600090000 = 0x40147000,转为十进制是:1075081216

         确认,然后发现标定量地址有效,且与efl关联;

2.3 标定后与原始hex文件合并

         选择Display parameter in CDMs>Calibration object in the calibration ram;

         选择 read values of current device;再红框右击选择open,找到原始hex文件

如下图:

将左边标定好的数据拷贝到右边保存即可;

2.4 标定后直接merge

         Calibration > Parameter set > save in binary format

2.5 不用对ram地址进行偏移实现hex文件合并

(1)根据下图对memory segment进行配置(可根据需要改变flash和ram的地址);

这样在添加标定量时不需要做地址偏移;如下:

(2)进行标定后,选择CDM studio,进入界面后选择tools > options

找到extended ASAP2 Setting,勾选地址映射选项,如下图;

(3)在CDM界面添加原始hex文件(注意备份),此时会弹出如下界面,在地址映射方式里选择xcp,如下:

         添加完成后如下所示(左为标定的数据,右为原始数据):

         将左边的数据copy至右边合成新的hex文件,通过hexview可以看到对应的flash地址的数值已经改变,如下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1171646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法?认识一下啦

一、什么是算法? 算法 ,是对特定问题求解方法和步骤的一种描述。它是有限指令的有限序列,其中每个指令表示一个或多个操作。 算法和程序的关系 算法​是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个…

小程序如何设置用户同意服务协议并上传头像和昵称

为了保护用户权益和提供更好的用户体验,设置一些必填项和必读协议是非常必要的。首先,用户必须阅读服务协议。服务协议是明确规定用户和商家之间权益和义务的文件。通过要求用户在下单前必须同意协议,可以确保用户在使用服务之前了解并同意相…

Android Studio布局

线性布局 水平或竖直排列子元素的布局容器 相对布局 可针对容器内每个子元素设置相对位置(相对于父容器或同级子元素的位置) 网格布局 找了下面这篇文章连接可以参考(不再赘述) GridLayout(网格布局) | 菜鸟教程 (runoob.com) …

【原创】java+swing+mysql校园共享单车管理系统设计与实现

摘要: 校园共享单车作为一种绿色、便捷的出行方式,在校园内得到了广泛的应用。然而,随着单车数量的增加,管理难度也不断加大。如何提高单车的利用率和管理效率,成为校园共享单车发展面临的重要问题。本文针对这一问题…

Python武器库开发-常用模块之collections模块(十七)

常用模块之collections模块(十七) 除python提供的内置数据类型(int、float、str、list、tuple、dict)外,collections模块还提供了其他数据类型: 计数器(counter)有序字典(orderedDict)可命名元…

基于动力学模型的机械臂滑膜控制

一、滑模控制设计思路 参考资料:https://zhuanlan.zhihu.com/p/463230163(思路理解) https://blog.csdn.net/xiaohejiaoyiya/article/details/90271529(干扰的处理) 滑模控制的思路有两个关键,一个是设计…

【C++】多态 ⑫ ( 多继承 “ 弊端 “ | 多继承被禁用的场景 | 菱形继承结构的二义性 | 使用虚继承解决菱形继承结构的二义性 )

文章目录 一、多继承 " 弊端 "1、多继承被禁用的场景2、多继承弊端 二、代码示例 - 多继承弊端1、错误示例 - 菱形继承结构的二义性2、代码示例 - 使用虚继承解决菱形继承结构的二义性 一、多继承 " 弊端 " 1、多继承被禁用的场景 禁止使用多继承的场景 : …

LV.12 D16 轮询与中断 学习笔记

一、CPU与硬件的交互方式 轮询 CPU执行程序时不断地询问硬件是否需要其服务,若需要则给予其服务,若不需要一段时间后再次询问,周而复始 中断 CPU执行程序时若硬件需要其服务,对应的硬件给CPU发送中断信号&#xff0c…

如何使用Python和Matplotlib创建双Y轴动态风格折线图 | 数据可视化教程

前言 我的科研论文中需要绘制一个精美的折线图,我的折线图中有三条曲线,分别表示期望角速度指令信号,和实际的角速度信号,还有实际的航向角信号,现在我已经拥有了数据,使用Python中matplotlib.plt.plot来直…

Java之图书管理系统

🤷‍♀️🤷‍♀️🤷‍♀️ 今天给大家分享一下Java实现一个简易的图书管理系统! 清风的个人主页🎉✏️✏️ 🌂c/java领域新星创作者 🎉欢迎👍点赞✍评论❤️收藏 😛&…

SpringBoot-SpringCache缓存

文章目录 Spring Cache 介绍常用注解 Spring Cache 介绍 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,…

基于级联延迟信号消除的锁相环(CDSC_PLL)技术MATLAB仿真

微❤关注“电气仔推送”获得资料(专享优惠) 基于级联型延迟信号消除(CDSC)的锁相环技术(CDSC-PLL),该锁相环克服了传统dq 锁相环在电网电压畸变或不对称时存在较大稳态误差的缺点。CDSC-PLL是在…

windows 用vs创建cmake工程并编译opencv应用项目生成exe流程简述

目录 前言一、安装opencv(1)下载(2)双击安装(3)环境变量和system文件夹设置 二、打开vs创建项目三、编辑cpp,.h,cmakelist.txt文件(1)h文件(2&…

Python-敲木鱼升级版(真手动版敲木鱼)

演示效果 需要安装的第三方库: pip install pygame # 加载音乐 pip install pillow # 加载图片 pip install mediapipe # 判断手势的模型 pip install opencv # 模型要用来处理图形 建议有独显和摄像头的可以尝试! 想着升级一下玩法,只有真敲…

二维码智慧门牌管理系统升级:引领政务服务、寄件、开锁、刻章新潮流

文章目录 前言一、政务服务二、寄件服务三、便民开锁和刻章服务四、应用范围 前言 在科技不断进步的时代,二维码智慧门牌管理系统升级版正在改变我们的生活,为政务服务、寄件、便民开锁、刻章等多种业务应用提供全新的解决方案,使我们的日常…

python基础(Python高级特性(切片、列表生成式)、字符串的正则表达式、函数、模块、Python常用内置函数、错误处理)培训讲义

文章目录 1. Python高级特性(切片、列表生成式)a) 切片的概念、列表/元组/字符串的切片切片的概念列表切片基本索引简单切片超出有效索引范围缺省 扩展切片step为正数step为负数 b) 列表生成式以及使用列表生成式需要注意的地方概念举例说明1. 生成一个列…

详细讲解如何求解「内向基环森林」问题

题目描述 这是 LeetCode 上的 「2876. 有向图访问计数」 ,难度为 「困难」。 Tag : 「基环森林」、「内向基环树」、「拓扑排序」、「图」、「BFS」 现有一个有向图,其中包含 n 个节点,节点编号从 0 到 n - 1。此外,该图还包含了 …

OJ练习第185题——数组中两个数的最大异或值

数组中两个数的最大异或值 力扣链接&#xff1a;421. 数组中两个数的最大异或值 题目描述 给你一个整数数组 nums &#xff0c;返回 nums[i] XOR nums[j] 的最大运算结果&#xff0c;其中 0 ≤ i ≤ j < n 。 示例 官解思路 异或运算性质&#xff1a; class Solutio…

ZZ038 物联网应用与服务赛题第I套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 &#xff08;I卷&#xff09; 赛位号&#xff1a;______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等; 2.竞赛任务中所使用的各类软件工…

NSSCTF第十页(2)

[HNCTF 2022 WEEK3]ssssti 题目提示是jinja2模板 怎么感觉之前做过&#xff0c;看到了注入 随便进行一下注入&#xff0c;发现了过滤 大致的黑名单 " _ args -- 无法使用 request.args os -- 无法导入os 不允许post -- 无法使用 request.value 正常用的payloa…