CANdb++数据库操作

news2024/10/5 1:53:38

CANdb++数据库操作

    • 创建工程结构文件夹
    • 新建数据库&总线描述
    • 节点设置
      • 节点创建
      • 配置Message属性
      • 信号设置
      • 节点收发信号
    • 环境变量配置
    • 一致性检验
    • 数据库工程XVehicle.dbc导入工程文件
    • 总结

创建工程结构文件夹

在文件夹X-Vehicle-1下,建立工程目录文件夹CANdb,Nodes,Panels:
在这里插入图片描述

新建数据库&总线描述

基于CAN模板新建数据库Tools-CANdb++ Editor——File——CreateDatabase——根据功能选总线模板(这里选了Vector IL Basic Template.dbc)——创建数据库工程XVehicle.dbc】
在这里插入图片描述
基于模板新建完成后,CANdb++Editor的导航区会显示网络中所有对象之间的关系,包含Networks、(ECUs、Network nodes)、(Environment variables、Messages和Signals)。
在这里插入图片描述
总线描述——Networks(配置总线名称,类型)。
在这里插入图片描述

节点设置

节点创建

  1. 创建Network Nodes节点,设置节点属性

在ECUs(电子控制单元)项下,列出了当前网络中所含的电控单元,它们之间通过网络节点(Network Nodes)实现信息的交互。通常情况下,ECU与网络节点是一一对应 的。当ECU作为网关时,一个ECU可以包含多个网络节点。在CAN数据库中,双击某 个ECU可以查看该ECU所对应的网络节点以及环境变量等信息。
需要提醒的是,在CAN数据库中并不能直接创建ECU,CANdb++会在创建网络节点——Network Nodes的同时,创建一个名称相同的ECU。
因此我们通过创建Network Nodes来创建控制面板节点,系统则自动创建panel对应的仿真节点。
Network Nodes(网络节点)是ECUs的通信接口,各ECU通过Network Nodes实现 总线上信息的发送和接收,每个Network Nodes包含对应的名称和地址。

在导航区右击Network Nodes在快捷菜单中选择新建一个名为Engine的网络节点, 并且将节点的地址设为0x1,如图所示。
在这里插入图片描述

用同样的方法,再创建一个名称为Door的节点(地址为Ox2)和一个名称为Display 的节点(地址为0x3)。
在这里插入图片描述
创建完成后,可以看到系统自动生成对应的ECU节点,分别在NetWorks和ECUs中都有展示。
在这里插入图片描述

配置Message属性

X-Vehicle-1工程中,有两种报文:DoorState,EngineState。分别创建报文并设置对应属性:

报文——Message——CAN上传播的数据Messages(报文)是总线上节点相互通信的数据。
数据库中,每个报文应包含下列属性 (本实例中所用报文均为CAN规范文档中所定义的CAN2.0A标准CAN)。 可以按下面4中分类理解记忆:
【报文结构】:Name(报文名称) CAN ID(CAN标识符) DLC(Data Length Code,数据长度) Type(传输类型) Cycle Time(周期)
【包含的内容】:Signals(信号)
【收发节点】Transmitters(发送节点) Receivers(接收节点)
【其他】: Layout(布局) Attributes(通用属性) Comment(说明)

DoorState
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
EngineState
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

信号设置

Signal(信号)是总线通信的最小单元,数据库中一个信号由下列属性组成。
【信号格式】:Name(信号名称) Length[Bits](信号长度) Byte Order(字节顺序)Value Type(数据类型) Unit(物理单位)
【值设置】Init.Value(初始值) Factor(加权)Maximum(最大值) Minimum(最小值)
【值含义说明】Value Table(数值表)
【关联哪条报文】Messages(报文)
【收发节点】Receivers(接收节点)
【其他】Attributes(通用属性) ·Value Descriptions(数值描述) ·Comment(说明)

X-Vehicle中有4个信号:引擎速度(EngineSpeed)、引擎状态(OnOff)、左车门开关状态(Door_L)和右车门开关状态(Door_R)。
在这里插入图片描述
创建EngineSpeed为例

  1. 创建信号Enginespeed(引擎速度〕,Length为15b,ByteOrder为Intel,Unit为r.p.m,ValueType为Signed,Maximum为5500,其它设置使用默认值
    在这里插入图片描述

在 Message 选 项 卡 中 单 击 Add 按 钮 将 该 信 号 关 联 到 报 文 Enginestate 中
在这里插入图片描述

将 Enginespeed 信 号 的 Startbit 〔 开 始 位 〕 设 置 为 0
在这里插入图片描述
2. 创建信号OnOff(引擎状态〕,Length为1b,ByteOrder为Intel,ValueType为Unsigned,Maximum为1,Startbit为15,Message为Enginestate’,其它设置使用默认值
3. 创建信号Door一L(左车门开关状态〕,Length为1b,ByteOrder为Intel,ValueType为Unsigned,Maximum为1,Startbit为0,Message为Doorstate’其它设置使用默认值
4. 创建信号DoorR〔右车门开关状态〕,Length为1b,ByteOrder为Intel,ValueType为Unsigned,Maximum为1,Startbit为2,Message为Doorstate’其它设置使用默认值

Signal 属性解释:

  1. Factor和Offset定义了raw value与physical value之间的关系。
    raw value是CAN报文发到 总线上的十六进制数据,
    physical value是信号所代表的物理量的值,例如,车速、转速、 温度等。
    Init.Value、Minimum和Maximum均为physical value。
    raw value 与physical value 之 间的 关系为:
    physical value=([raw value]×[Factor])+[Offset]。
  2. Byte Order
    数据库中信号Byte Order(字节顺序)分为Motorola和Intel两种数据格式(也称为大 端模式和小端模式),两种格式介绍如下:
    2.1. Motorola字节顺序也被称为大端模式,它将最高有效字节存储在内存的最低有效地址处,而最低有效字节存储在内存的最高有效地址处。这意味着在存储多字节数据时,最高有效字节先存储,然后是次高有效字节,以此类推,最低有效字节最后存储。
    2.2. Intel字节顺序也被称为小端模式,它将最低有效字节存储在内存的最低有效地址处,而最高有效字节存储在内存的最高有效地址处。这意味着在存储多字节数据时,最低有效字节先存储,然后是次低有效字节,以此类推,最高有效字节最后存储。
    大端模式和小端模式的区别在于字节的存储顺序。在同一个多字节数据类型中,大端模式和小端模式的字节顺序是相反的。例如,整数值0x12345678在大端模式下的存储顺序是0x12 0x34 0x56 0x78,而在小端模式下的存储顺序是0x78 0x56 0x34 0x12。
    不同的计算机架构可能使用不同的字节顺序。大多数计算机和操作系统(例如x86架构和Windows操作系统)使用小端模式,而一些嵌入式系统和网络协议(例如ARM架构和IP协议)使用大端模式。
    在处理跨平台数据交换时,字节顺序变得非常重要。可以使用字节序转换函数将字节顺序从一种格式转换为另一种格式,以确保数据在不同平台之间正确解释。

节点收发信号

设置网络节点的发送信号和接收信号

  1. 网络节点DisplayMappedRxSig
    〔接收信号〕:Door_L,Door_R,EngineSpeed,OnOffMappedTxSig
    〔发送信号〕:无
    在NetworkNodes右击Display,EditNode,在弹出的对话框中选择MappedRxSig,单击Add按钮,将Door_L,DoorR,EngineSpeed,OnOff添加进去
    在这里插入图片描述
  2. 网络节点Door
    MappedRxSig〔接收信号〕:EngineSpeed,OnOff
    MappedTxSig〔发送信号〕:DoorL,DoorR
  3. 网络节点Engine
    MappedRxSig〔接收信号〕:无
    MappedTxSig〔发送信号〕:EngineSpeed,OnOff

环境变量配置

ValueTable(数值表)用来文字化地指定信号或环境变量的值所代表的含义,例如,前面创建的信号OnOff,0代表Off状态,1代表On状态。
signal和Environment Variables都有这个属性。
环境变量Environment Variables
Environment Variable(环境变量)是ECU、面板和CAPL程序相连接的媒介。
例如,在CAPL程序中,通过改变或监控某一环境变量的值可以触发特定的动作,同样,环境变量的值也可以与面板上控制控件或显示控件相关联。
与系统变量相比,环境变量仅在CANdb++中定义。本实例使用的DBC模板,会自动创建两个环境变量EnvKlemmel5和EnvKlemme30,不需要可以直接删除。

环境变量配置
X-Vehicle中有1个环境变量EnvDoorState。按下图配置
在这里插入图片描述
环境变量的ValueTabe配置
Value Table数值表是用来文字化地指定信号值所代表的含义,如信号On0ff,0代表Off状态,1代表On状态

  1. 创建VtSig-Eng-Status数值表
    name:VtSig_Eng_Status
    ValueDescription:
    Ox0:Off
    0x1:On
    关联信号:On0ff

在CANdb++工具栏上,单击valueTables,右键->New
在这里插入图片描述
编辑VtSig-Eng-Status value表
在这里插入图片描述
双击编辑信号,关联value table
在这里插入图片描述
2. 创建VtSig-Door-Status数值表
name:VtSig_DoorStatus
ValueDescription:
Ox0:Close
Oxl:Open
关联信号:Door_L,Door_R
3. 创建VtEnv_Door_Status数值表
name:VtenvDoorStatus
ValueDescription:
Ox0: BothDoorClose
Oxl:LeftDoorOpen
0x2:RightDoorOpen
Ox3:BothDoorOpen
关联信号:EnvDoorState

一致性检验

如果通过一致性检验,没有告警或报错,那么就完成了数据库的设计。
在这里插入图片描述

数据库工程XVehicle.dbc导入工程文件

CAN数据库创建完成后,就可以将其导入已经创建的项目文件中。下面将该XVehicle数据库导入前面已创建的项目中。在Simulation Setup的系统视图中,右击Database 选择Import Wizard命令,在弹出的 对话框中选择XVehicle数据库,并将节点Display、Door和Engine添加到Assigned nodes 中,如图8.24所示。
在这里插入图片描述
在这里插入图片描述
发现三个仿真节点加入进来了
在这里插入图片描述

总结

在CANdb设计中,message是CAN网络中信息的基本单元,它包含了一个或多个信号。每个信号代表了一个特定的数据值,例如温度、速度等。节点可以通过接收和发送message来进行通信。

在这个过程中,信号的具体值是通过环境变量来确定的。环境变量是一组参数,可以影响信号的值。例如,可能有一个环境变量来表示温度,当发送一个带有温度信号的message时,可以根据环境变量的值来确定信号的具体温度值。

因此,节点根据环境变量来发送和接收带有信号的message,以实现适应不同环境的通信需求

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

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

相关文章

优雅而高效的JavaScript——模板字面量

🤨博主:小猫娃来啦 🤨文章核心:优雅而高效的JavaScript——模板字面量 文章目录 什么是模板字面量使用模板字面量插入变量处理多文本模板字面量的高级应用标签模板字量自定义模板字面量函数 常见应用场景拼接字符串HTML模板SQL查询…

【LeetCode热题100】--347.前K个高频元素

347.前K个高频元素 方法:堆 首先遍历整个数组,并使用哈希表记录每个数字出现的次数,并形成一个「出现次数数组」。找出原数组的前 k 个高频元素,就相当于找出「出现次数数组」的前 k 大的值 利用堆的思想:建立一个小…

tomcat多实例部署jenkins

tomcat多实例部署jenkins 文章目录 tomcat多实例部署jenkins1.简介:2.优缺点:3.工作原理:4.工作流程:5.tomcat多实例部署jenkins流程5.1.环境说明5.2.部署前准备工作5.3.多实例部署tomcat5.4.部署jenkins5.5.创建一个jenkins项目5…

乐高Studio打开Solidworks零件/装配体 (sw另存obj文件)

solidworks 2020 Lego studio / part designer 截至2023-10-13🎂最新版 文章目录 操作步骤1) solidworks 开启 ScanTo3D 功能2) 零件 / 装配体 保存至stl格式文件3) 以SanTo3D网格文件方式打开stl4) 将打开的stl另存为…

销毁二叉树

同样是利用递归的方法——后序遍历 void TreeDestroy(BTNode* root) {if (root NULL){return 0;}TreeDestroy(root->left);TreeDestroy(root->right);free(root);}

React18入门(第四篇)——React中的4种CSS使用方式,CSS Module、CSS-in-Js详解

文章目录 一、普通方式使用CSS1.1 元素内联 style1.2 引入 CSS 文件1.3 类名插件 -- Classnames1.4 注意事项 二、CSS Module2.1 普通 CSS 的问题2.2 CSS Module 的特点2.3 简单使用 三、使用 sass3.1 sass 简介3.2 使用 四、CSS-in-JS4.1 CSS-in-JS 简介4.2 CSS-in-JS 常用工具…

计算机网络 实验七 NAT 和 DHCP 实验

实验目的: 1. 掌握NAT技术的基本原理,熟悉NAT基本配置。 2. 掌握DHCP协议的基本原理,熟悉配置DHCP服务器和中继。 实验过程分析: Nat基本配置 分别写出实验步骤中3)、4)、6)的连通性情况&…

怎样学习C#上位机编程?

怎样学习C#上位机编程? 00001. 掌握C#编程和.NET框架基础。 00002. 学WinForm应用开发,了解控件使用和事件编程。 00003. 熟悉基本数据结构和算法,如链表、栈、队列。 00004. 理解串口通信协议和方法,用于与硬件交互。 00005…

SLAM从入门到精通(数据回放工具之rosbag)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们学习了hector-slam、gmapping slam两种slam方法。当时我们操作的时候,是通过手动操作的方法来建图的。但是这里面可能存在一个…

统信UOS 1060系统新增备份

原文链接:统信UOS 1060系统新增备份 hello,大家好啊,今天给大家带来关于统信UOS 1060系统备份还原的系列内容的第二篇文章,系统新增备份,我们可以将系统新增备份到u盘中,后面需要的话,可以进行还…

Raven2靶机渗透

1. 信息收集 1.1 主机探测 sudo arp-scan -l1.2 端口扫描 nmap -p- -A 192.168.16.185开放了80端口,尝试登录网址查看信息,通过浏览器插件找出指纹 1.3 目录扫描 访问登录界面,发现remember Me怀疑是shiro界面 登录/vendor/界面&#xff0…

springboot中如何进行测试用例数据的随机设定

测试用例数据设定 测试用例数据通常采用随机值进行测试,使用SpringBoot提供的随机数为其赋值 1.在application.yml中设置随机值 testcast:book:id: ${random.int} # 随机整数id2: ${random.int(10)} # 10以内随机数type: ${random.int(10,20)} # …

谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)rust解法

有一个5*5的网格,其中恰好有一个格子是空的,其他格子各有一个字母。一共有4种指令:A, B, L, R,分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列(以数字0结束),输出指…

模板进阶和反向迭代器

文章目录 模板非类型模板参数模板特化函数模板特化类模板特化 模板分离编译 反向迭代器 模板 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参&#xff0c…

黑龙江省人口与社会经济数据集(2015-2016年)

摘要 a. 数据内容(数据文件/表名称,包含的观测指标内容) 黑龙江省人口与社会经济数据集(2015-2016年)反映了黑龙江省社会经济、人口和劳动力、农业生产、金融、旅游、卫生、教育、社会保障等情况,包含年末…

MTC证书|欧盟与英国金属类产品清关新要求

英国禁止进口俄钢材的通告内容 从2023年 9 月 30 日起,欧盟和英国将对在第三国加工的特定钢铁产品实施新的制裁,这些产品包含俄罗斯原产的钢铁原料。进口商需要在进口时申报进口货物是否合规。 MTC认证 欧盟严抓MTC认证 获悉,从10月1日起&a…

倒置边框半径卡片

效果展示 CSS 知识点 实现多曲面的思路 实现整体布局 <div class"card"><div class"img_box"></div><div class"content"><div class"price"></div></div> </div>.card {position…

微信小程序入门开发教程

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《微信小程序开发实战》。&#x1f3af;&#x1f3a…

【LeetCode】11. 盛最多水的容器

1 问题 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器…