CANdbc定义及创建

一、candbc定义

在总线系统中,ECU之间的通信、信息之间的交互以及相互之间的关系,都是通过总线数据库来管理,can总线数据格式为dbc文件

总线数据库中的主要内容:

网络 network

ECUs:网络定义了那些电子控制单元

环境变量 environment variable

网络节点 network nodes:ECU通信接口,报文通过网络节点发出去,负责连接can总线,比如说ipc,bcm,vcu,tbox

报文 message(报文和信号关联、报文长度,周期等):message可以称之为帧,也可称之为can id,每个can id在网络中只能使用一次

信号signal(信号字段的数据类型等)

candbc组成如下图:

网络节点,报文,信号,数值的关系

网络节点中有报文,报文中有多个信号

 

二、candbc制作

1、在tool--->candb++ edito

 

点击file---create database

选择需要创建的dbc模板

本次选择一个空白模板

 

点击ok,填写dbc文件名

2、创建message,右击message--->new

填写message信息

 

3、创建signals,右击signal--->new

 

填写signals信息后点击确定

 

可以看到在我们的signals中出现我们添加的信号

 

4、创建枚举表

点击view--->value table

 

 

右击空白---->new

 

 

添加枚举值 ,点击add

 

5、将枚举值添加到signals

双击ipc_enable

 

点击value table添加创建的枚举表,点击确定

 

6、将signals添加到message

双击打开创建的message

进入signals

 

点击add添加所需要的signals后点击ok

 

添加完成后如下图

 

7、进行layout

将所有所需要的signal添加到message中后,点击layout,将所有信号拖到相应位置,点击确定

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python发送CAN DBC报文可以通过使用第三方库python-can实现。python-can是一个用于操作控制器局域网(CAN)总线的Python库,它提供了发送和接收CAN消息的函数和方法。 首先,需要使用pip安装python-can库。在命令行中运行以下命令: ``` pip install python-can ``` 然后,导入`can`模块和`dbc`模块: ```python import can from cantools import database ``` 接下来,加载DBC文件以解析报文的定义。假设你的DBC文件为`example.dbc`: ```python db = database.load_file('example.dbc') ``` 创建CAN总线对象并打开: ```python bus = can.interface.Bus(channel='can0', bustype='socketcan_native') ``` 通过修改`channel`参数为正确的CAN通道名称,并根据操作系统选择正确的`bustype`。 构造CAN消息并发送: ```python message = can.Message(arbitration_id=0x123, data=[0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88], extended_id=False) bus.send(message) ``` 这里的`arbitration_id`表示报文的ID,`data`表示报文的数据,`extended_id`表示ID是否为扩展ID。 完整的代码如下: ```python import can from cantools import database # 加载DBC文件 db = database.load_file('example.dbc') # 创建CAN总线对象并打开 bus = can.interface.Bus(channel='can0', bustype='socketcan_native') # 构造CAN消息并发送 message = can.Message(arbitration_id=0x123, data=[0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88], extended_id=False) bus.send(message) ``` 这样,你就可以使用Python发送CAN DBC报文了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值