在日常工作中,CANdb++是一个与我们密切相关的紧张工具。它不仅能够帮助我们高效管理CAN总线通信,还能简化设置过程,提升工作效率。通过CANdb++,我们可以轻松定义和管理关键的通信参数,从而使整个项目更加顺遂。或许有同学会问,什么是CANdb++?那今天就让我们来深入相识一下吧~
首先,在CANoe工具中,CANdb++是一个用于描述和管理CAN总线通信的紧张数据库工具。作为CANoe工具箱的焦点组件,CANdb++主要用于定义和管理与CAN总线通信相关的数据。其次利用CANdb++,可以轻松定义帧ID、数据字段和节点,为CAN通信控制器的设置打下坚实基础。通过DBC文件,可以详细定义CAN网络中的节点、报文和信号,明确每个节点发送和吸收的报文内容及其信号位置,从而确保各个节点之间的数据传输正确无误。
此外,CANdb++还提供了导出功能,用户可以将数据库数据导出为DBC文件,使其他Vector CAN工具(如CANalyzer和CANape)能够读取这些数据。这一功能使得用户能够导出整个数据库,或仅提取与特定车辆、网络或ECU相关的数据,极大地简化了CAN通信的设置与管理。
CANdb++安装分两种情况:
1.通过Vector官网直接下载CANdb++插件,安装链接: Download | Vector
2.通过下载安装CANoe软件中自带的CANdb++插件。
通过CANdb++创建DBC文件首先需要进行需求分析,以确定报文的计划目的。本文将以计划名为EPS_204的报文为例,帮助大家理解和操作。该报文包含信号EPS_WL及其相关属性。同时,需明确信号的发送和吸收节点。
在确定需求后,可以开始在CANdb++中计划并创建DBC文件,步骤如下:
新建DBC文件
在CANdb++ Editor主界面中,选择File/Create Database来创建一个新的数据库。创建时,可以根据需要选择符合的Template。随后,指定命据库存储路径并为其定名。
定义网络节点
选择“Network nodes”对象右键点击“New”,可定义网络节点的名称,根据矩阵描述添加发送节点EPS和吸收节点IC。
定义报文
选择“Messages”右键点击“New”打开报文定义/编辑窗口,根据矩阵对报文的定义,添加报文EPS_204,设定其ID为0x24,数据长度为8。
根据矩阵需求设置报文发送范例、报文周期时间、发送的快速周期、快速发送次数和报文延迟时间。
添加信号
在信号编辑窗口根据矩阵对信号的定义,新建信号EPS_WL,并设置其属性,如信号长度、排列格式、数据范例、精度、偏移量及最大值和最小值。之后设置排列格式,根据矩阵确定排列格式为Motorola forward MSB。
Note:浅谈Intel和Motorola格式区别
在处置惩罚信号时,我们可以定义一个起始位(StartBit)和信号大小(SignalSize),然后从起始位向左延伸SignalSize 位。延伸的方式取决于字节序的编码方式:
- Intel编码(小端字节序):从起始位开始向左延伸,如果当前字节的最左侧已到达边界,则切换到下一个字节的最右侧继续延伸。
- Motorola编码(大端字节序):从起始位开始向左延伸,如果当前字节的最左侧已到达边界,则切换到上一个字节的最右侧继续延伸。
这个过程可以称为“神龙摆尾”,其中Intel向下摆,Motorola向上摆。
Value Table表
可以通过Value Table为信号值分配名称。在CANdb++ Editor主菜单中,选择View/Value Tables/New,打开对应视图,定义信号值描述。比方,值0x0和0x1分别对应“EPS告诫灯灭”和“EPS告诫灯亮”。然后,右键点击信号,选择Edit Signal,在信号编辑窗口的Value Table栏中选择已编辑的Value Table名称。
报文分配信号
打开报文编辑窗口,并切换为“Signals”视图,选择“Add”打开“Choose Objects”窗口,然后选取所需信号点击OK完成信号分配。
快捷小本领:可以在浏览器窗口中选中相关信号,直接拖拽到目的报文处开释。比方,将信号EPS_WL拖拽至Messages报文中完成分配。
报文发送节点的匹配:打开报文编辑窗口,并切换为“Transmitters”视图点击Add,在“Choose Objects”窗口中选择发送节点EPS进行匹配,点击OK完成发送节点分配。
报文吸收节点的匹配:拖拽信号EPS_204下EPS_WL至Network nodes列表下指定IC节点的“Mapped Rx Signals”处开释,完成吸收节点的匹配。
设置信号在报文中的位置
在Message列表中选择对应信号右键“Edit mapped Signal”,然后通过修改Startbit[Bit]值完成。(即矩阵中描述示例信号在报文数据场的起始位为0)
检查信号位置
当一条报文分配了多个信号时,需检查信号在报文中的定位,制止出现多个信号同时占用相同Bit位置的情况。可打开对应报文的编辑窗口,并切换到“Layout”视图。通过Layout结构,可以查看当前报文内的信号位置。
保存数据库
在CANdb++ Editor中编辑或修改数据库后,选择File/Save保存,并将文件保存在指定路径。
按照上述流程,我们可以定义出一个完备且符合我们需求的数据库(.dbc文件)。接下来,我们将介绍在CANoe中添加并利用DBC文件的方法。
添加方法
CANoe-Simulation-Simulation Setup中,在Networks下选中Databases右键Add添加指定路径下的DBC文件。通过添加DBC文件,我们可以利用CANoe的强大功能,对通过CAN网络传输的报文和信号进行及时监控和解析。
DBC节点同步的利用
在Simulation Setup界面找到所添加的数据库,右键点击并选择“Node Synchronization”将数据库中的节点同步到CAN网络中。
此时,如果已经拥有数据库并将节点乐成同步到CAN网络,那么可以根据数据库的定义自动发送报文。在发送之前,可以根据自身控制器的逻辑,对报文和信号进行修改和优化。这种机动性不仅可以及时调解信号值和报文内容,还能够根据现实需求进行个性化设置。
具体操作可在“Simulation Setup”界面中,选择指定的节点后,右键点击并选择“Open IL Configuration”打开相应的IL设置编辑器。在此编辑器中可以方便地调解报文的属性、信号的值以及传输频率等参数。
IL Configuration设置方式
- 需要启用IL Support,并根据设置的发送方式(如周期性、事件触发等)激活报文的发送。当信号或报文满足预设条件时,便会自动发送相应的报文。
- 通过右侧参数设置条目栏输入需求,比方:循环时间、延迟时间、诊断请求或诊断响应等。
- 报文通过信号设置进行发送。由于信号与报文之间具有包含关系,发送时将以报文的情势进行传输。
IL Configuration设置发送范例
- Cyclic周期发送:报文按照设置的周期发送。
- OnChange厘革时发送:厘革时发送指的是,只有当报文中的信号发生厘革时,报文才会被发送。这类报文通常包含厘革频率较低的信号。比方,当车门处于关闭状态时,无需连续发送车门状态信息;当车门打开,就会发送更新报文,通知中心控制器车门状态已发生厘革。
- OnWrite写入时发送:写入时发送是指当报文中的信号被重新写入时,报文才会发送。比方车窗升降系统,只有当驾驶员调解车窗位置时,车窗控制单元才会通过CAN总线发送新的位置数据。
- IfActive有效时发送:有效时发送是指当报文中的信号为有效值时,报文会以一个快速的周期(cycle time fast)发送,当信号变为无效时,报文就不再发送。
- OnChangeWithRepetition、OnWriteWithRepetition和IfActiveWithRepetition:需设置重复发送次数。
IL Configuration报文和信号混合发送
- Cyclic and OnChange:周期和厘革时发送是指报文平时是周期性发送,当报文中的信号厘革时,此报文会额外的发送一次,原来的周期稳定。
- Cyclic and OnWrite:周期和写入时发送是指报文平时是周期性发送,当报文中的信号被重新写入时,此报文会额外的发送一次,原来的周期稳定。
- Cyclic and IfActive:周期和有效时发送指的是,报文在正常情况下按照周期(cyclic time)发送。当报文中的信号为有效值时,报文会以快速周期(cyclic time fast)发送;当信号变为无效值时,报文将恢复为原来的正常发送周期。
修改节点信号设置
在“Simulation Setup”界面中,选择指定的节点后,右键点击并选择“Open Node Panel”打开相应的IL设置编辑器。在此编辑器中,可以方便地调解信号的物理值和真实值,之后通过Update将调解的信号值发送到总线上。
通过本文的介绍,我们深入相识了CANdb++工具的根本功能和利用方法。作为CANoe工具中的焦点组件,CANdb++不仅帮助我们高效管理和定义CAN总线通信中的报文、信号和节点,还简化了设置过程。通过创建和利用DBC文件,用户可以精确地描述CAN网络中的数据流动,确保各个节点间的数据传输正确无误,从而提高了开发和调试过程中的效率。
在安装与创建DBC文件的过程中,我们介绍了如何从需求分析开始,到新建文件、定义网络节点、报文、信号,末了到信号与报文的分配,以及数据库的保存。通过这些步骤,用户能够构建出符合需求的数据库,并将其集成到CANoe中进行及时监控与调试。
此外,通过CANoe的Node Synchronization功能,我们能够机动地同步数据库中的节点并设置报文的发送方式,提供了多种报文发送范例和信号调治选项(如周期性发送、事件触发、厘革时发送等),进一步提升了测试的机动性和精确性。
总体而言,把握CANdb++的利用,对于任何涉及CAN总线通信的项目都是至关紧张的,它为我们提供了一个强大的工具集,不仅可以确保通信的稳定性与正确性,还能显著提高项目开发与调试的效率。希望大家能充分利用这一工具,在现实工作中不断优化和提升CAN通信的管理与应用程度。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |