A2L文件的自动生成(Simulink/CANape)

news2024/11/23 10:19:24

目录

什么是A2L文件?

使用simulink生成A2L文件

A2L文件组成

characteristic

measurement

compu_method

group

simulink生成的A2L与CANape生成的A2L

如何自动修改simulink生成A2L文件使其适用于CANape?

所需文件


什么是A2L文件?

A2L文件是一个标定的描述文件,基于文本格式,描述ECU的通信等相关的参数,以及标定,观测变量的地址以及物理值计算公式等等。

A2L 文件中的信息允许 XCP 主站通过 XCP 连接与从站模块通信。格式化的文本文件包含事件和测量定义以及其他配置信息,用于采集和激励数据以及执行其他函数。

Vector提供两种生成A2L文件的工具:

ASAP2 Studio,适用于ECU中变量较少且A2L文件变更不频繁的情况下,需手动编辑然后生成A2L文件

ASAP2 Tool Set适用于ECU中变量比较多且A2L文件变更频繁的情况,它通过批处理指令自动识别代码中的变量信息然后生成A2L文件

使用simulink生成A2L文件

按照以下步骤,勾选ASAP2

生成代码,就可以看到

A2L文件组成

A2L文件头(项目配置信息等,一般不随软件编译变化,除非对应参数调整)

标定变量描述(包含的地址信息每次编译都有可能变化)

观测变量描述(包含的地址信息每次编译都有可能变化)

其他辅助信息,转换公式等 (一般不随软件编译变化,除非对应参数调整)

HEADER该块里边包含了项目信息,包括项目编号,项目版本等信息

MODULE该块里边包含了在标定测量层面来描述ECU需要的所有信息,一个ECU对应一个MODULE块,MODULE由许多子块来组成1MOD_PAR这个块里包含了用于管理ECU的数据,例如客户名,编号,CPU类型,ECU的内存分配等,其中最重要的就是ECU的内存分配,开发人员需要根据ECU内存分段情况定义MEMORY SEGMENT和SEGMENT里边的PAGE,这里的SEGMENT/PAGE的概念和在线标定中的概念是一致的,一个MODULE里边只能出现一次。

MOD_COMMON该块用来指定ECU的一些标准的一般性描述信息,比如大小端,数据的对齐方式,FLOAT变量的处理方式等,一个MODULE里也只能出现一次。

CHARACTERISTIC该块用来定义标定变量,里边包含了可以被标定的变量的名字,地址,长度,计算公式,精度,最大最小值等信息,一个MODULE里边可以出现很多次这样的块,也就是说一个ECU可以有很多的标定变量。

AXIS_PTS该块用来定义数组或查表变量对应的轴的类型,它将被RECORD_LAYOUT块来引用,一个ECU里边可以有很多种不同的轴类型,用于实现查表和插值,一般很少用到。MEASUREMENT该块用来定义测量变量,里边包含了可以被测量的变量的名字,地址,长度,计算公式,精度,最大最小值等信息,一个MODULE里边可以出现很多次这样的块,也就是说一个ECU可以有很多的测量变量。

COMPU_METHOD该块用于定义计算公式,及原始值和物理值之前的转换关系,这些公式可以被标定变量和测量变量来引用,从而将原始值转换成便于用户阅读和使用的物理值。COMPU_TAB该块用来定义原始值和物理值的映射关系,是一种特殊的转换关系,它一般应用于枚举变量,例如我们想采集一个代表XCP状态机的变量,分别为0对应DISCONNECTED,1对应CONNECTED,2对应RESUME,那么我们就可以把这样的映射关系定义成一个COMPU_TAB,然后关联到对应的变量上,这时候如果上位机采集到1这样的原始值,它就可以将当前的状态显示成“CONNECTED”字样,方便用于阅读和使用。FUNCTION该块为可选项,很少使用。

GROUPS该块是把标定变量和测量变量按照一定的逻辑(比如功能模块)组织起来,在上位机中形成一个下拉菜单,使得用于可以从中选择变量,这块是可选的。

RECORD_LAYOUT该块用来定义标定变量的物理存储结构(单个变量,二维表,三维表等)。

characteristic

measurement

compu_method

计算方法,也就是measurement类型数据中的Conversion method。

内部值Q,物理值V,两者的互相转换。

内部值可以理解为物理值放大转换之后的值或者物理值固定点化的值。

group

分类,模型分层的分类。

simulink生成的A2L与CANape生成的A2L

以上举得这个例子属于使用simulink生成的A2L文件,它不同于使用CANape生成的A2L文件,当然只是在格式表达上不同,但它们的参数类型、以及内核是一样的。

具体差别在哪呢?

因为我这边也没有具体的使用CANape生成的A2L文件,从网上截取了几张图,主要变换和区别是:Measurement, Characteristic, COMPU_METHOD这几个类型

在CANape生成的A2L文件描述如下:

对比这simulink生成的例子,好像省略掉了很多的东西,更简洁了。

如何自动修改simulink生成A2L文件使其适用于CANape?

流程如下:

1、把通过IDE编译生成的map文件中的ECU参数地址,放到a2l文件对应的参数中(前面提到的三种类型)

2、去掉多余的注释

所需文件

  • IDE生成的map文件
  • Simulink生成的a2l文件
  • 模板文件a2l(不变的头和尾,变化的中间部分)
  • 用于从map文件和原a2l文件中提取参数放到模板文件a2l中的m执行文件、
  • 最终生成的ECU.a2l文件。

主要是:找准不变的头和尾与变化的中间部分

具体的m执行文件可从这里获取

链接:百度网盘 请输入提取码

提取码:ua14

--来自百度网盘超级会员V5的分享

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

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

相关文章

27 KVM管理系统资源-管理虚拟CPU份额

文章目录 27 KVM管理系统资源-管理虚拟CPU份额27.1 概述27.2 操作步骤 27 KVM管理系统资源-管理虚拟CPU份额 27.1 概述 虚拟化环境下,同一主机上的多个虚拟机竞争使用物理CPU。为了防止某些虚拟机占用过多的物理CPU资源,影响相同主机上其他虚拟机的性能…

什么是数字化校园,校园怎么数字化?

教育数字化转型是目前教育领域的一个热门话题,那么到底什么是教育数字化转型?如何做好教育数字化转型?这就来回答一下! 阅读本文你将了解: 什么是教育数字化转型?零代码平台如何撬动教育数字化转型&#…

真别去阿里面试,6年测开经验的真实面试经历.....

前几天我朋友跟我吐苦水,这波面试又把他打击到了,做了快6年软件测试员。。。为了进大厂,也花了很多时间和精力在面试准备上,也刷了很多题。但题刷多了之后有点怀疑人生,不知道刷的这些题在之后的工作中能不能用到&…

Linux·eventfd 原理与实践

1. eventfd/timerfd 简介 目前越来越多的应用程序采用事件驱动的方式实现功能,如何高效地利用系统资源实现通知的管理和送达就愈发变得重要起来。在Linux系统中,eventfd是一个用来通知事件的文件描述符,timerfd是的定时器事件的文件描述符。…

防火墙(三)

firewalld防火墙 一、firewalld概述firewalld与iptables的区别firewalld区域firewalld数据处理流程 二、firewalld防火墙的使用配置方法常用的firewalld-cmd命令选项 三、操作小实验 一、firewalld概述 firewalld防火墙是Centos 7 系统默认的防火墙管理工具,取代了…

AWS设备自定义身份认证

AWS设备自定义身份认证需要通过lambda服务实现,具体来说,首先需要创建一个lambda函数,在函数中实现具体的认证逻辑,然后Iot在调用授权方时,将触发lambda函数,返回认证结果。 1.输入参数说明 授权方在调用…

Qt编程基础 | 使用VS创建空白Qt项目

一、使用VS创建空白Qt项目 使用VS创建空白Qt项目&#xff0c;如下&#xff1a; 步骤一&#xff1a;新建一个空白Qt项目 步骤二&#xff1a;手动添加需要的文件 头文件代码&#xff0c;如下&#xff1a; #include <QtWidgets/QApplication> #include <QWidget>int…

C++11 异常

文章目录 &#x1f356;异常是什么&#x1f32d;概念&#x1f32d;实现方式 &#x1f356;异常的使用和注意事项&#x1f32d;注意事项&#x1f32d;异常的重新抛出&#x1f32d;异常安全 &#x1f356;异常的规范&#x1f356;异常带来的优缺点 &#x1f356;异常是什么 &…

jQurey-基本知识点总结

&#xff08;一&#xff09;jQurey基础知识 1、官网下载&#xff1a;jQuery jQurey是一个js文件&#xff0c;直接存到项目文件中&#xff0c;然后跟平常文件js导入一致&#xff1a; <script src"js/jquery-3.7.0.js"></script> 2、jQurey语法 jQure…

邹检验,结构变化识别及其R语言实现

在描述多维数据的维度关系时&#xff0c;线性模型无疑应用最多。然而某些情况下&#xff0c;我们关心随着时间变化或随着样本分组&#xff0c;线性关系的具体参数是否发生了变化&#xff0c;即是否发生结构变化Structural break。邹检验Chow test提供了最基本的一种结构变化显著…

Solaris Network:去中心化金融(DeFi)的未来

近年来&#xff0c;金融世界经历了一场范式转变&#xff0c;区块链技术在实现无障碍和反审计的去中心化金融服务方面发挥了关键作用。在这样的背景下&#xff0c;Solaris Network应运而生&#xff0c;它创建了一个基于Web 3.0技术的去中心化合成资产生态系统。 什么是Solaris N…

制作网上投票链接制作可以投票的链接制作制作一个投票链接

现在来说&#xff0c;公司、企业、学校更多的想借助短视频推广自己。 通过微信投票小程序&#xff0c;网友们就可以通过手机拍视频上传视频参加活动&#xff0c;而短视频微信投票评选活动既可以给用户发挥的空间激发参与的热情&#xff0c;又可以让商家和企业实现推广的目的&am…

FinClip小程序统计能力重磅上线!数据统计分析更精准

不妨让我们看看在本月的产品与市场发布亮点&#xff0c;看看它们如何帮助您实现目标。 产品方面的相关动向&#x1f447;&#x1f447;&#x1f447; 全新版本的小程序统计能力 ​ 全新版本的⼩程序统计功能已经在近期上线了&#xff0c;我们计划在 2023 年 5 ⽉ 23 ⽇的「价…

git fsmonitor--daemon 占用目录,导致无法修改

当我通过命令 git clone 目录然后导入 IDE 操作时&#xff0c;由于想修改目录名&#xff0c;就退了 IDE&#xff0c;再修改目录名&#xff0c;系统提示我文件夹正在使用&#xff1a; 通过 LockHunter (或者PowerToys) 发现占用该目录的进程&#xff0c;右键打开。 打开后如下…

03. 数据结构之链表

前言 链表是相区别于数组的&#xff0c;另一种典型的线性表数据结构。也是学习后面复杂的数据结构的基础&#xff0c;我们后面很多结构比如树&#xff0c;有向图等都可以用链表很方便的存储管理。 1. 概念 链表&#xff08;linked list&#xff09;是一种在物理上非连续、非…

CryoEM - 冷冻电镜 EMPIAR 数据集的下载过程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/130812925 EMPIAR: Electron Microscopy Public Image Archive&#xff0c;电镜公开图像存档。 IBM Aspera Connect 是一款高效的文件传…

如何在两个月内考过软考高级

如何在两个月内考过软考高级 前言本人情况备考经历一些备考关键点考试中结果相关资料获取 前言 高级软考的作用这里不用多说&#xff0c;本人在2022年9月初开始备考&#xff0c;在11月初顺利通过高级系统架构师&#xff0c;期间的经历这里与大家分享一下。本人之前并没有考过其…

使用Jmeter连接MySQL测试实战

01、连接MQSQL数据库 1、jmeter要连接mysql数据库 首先得下载mysql jdbc驱动包&#xff0c;尽量保证其版本和你的数据库版本一致&#xff0c;至少不低于数据库版本&#xff0c;否则可能有问题。 官网下载地址为&#xff1a;https://dev.mysql.com/downloads/connector/j/ 下…

数据结构课程设计——哈夫曼编/译码器

数据结构课程设计任务书 学生姓名&#xff1a; 专业班级&#xff1a;软件工程 指导教师&#xff1a; 工作单位&#xff1a; 题 目: 哈夫曼编/译码器 基础要求&#xff1a; &#xff08;1&#xff09;熟悉各种…

HTML- 标签学习之- 表单

input 系列&#xff0c; 类型根据type 区分&#xff0c;所有效果如下&#xff1a; 注意点&#xff1a; 单/多选框&#xff1a; name &#xff1a; 相同name属性的单选值为一组&#xff0c;遗嘱中只能有一个被选中 checked&#xff1a; 默认选中 性别<i…