CANdb++Editor安装包及教程移步:http://t.csdnimg.cn/L55qD
都是免费供个人学习使用,如有需要付费私我发共享网盘发你;
资料收集创作不易,感兴趣小伙伴点赞给个关注谢谢!
Editor初探
主界面
架构认知
网络(Networks)-> 电子控制单元(ECUs)-> 网络节点(Network Nodes)-> 报文(Message)-> 信号
个人理解
有一个CAN总线系统,里面有很多ECU也就是很多支持can通信的单片机或者其它电子器件;
每个电子器件也就是一个网络节点,然后environment variables是它们物理地址、通信速率、电压等设定;
最后他们可以发送信息到总线上,信息包含的也就是诸多信号;
实操
制作dbc参考链接:http://t.csdnimg.cn/McjyF
dbc简介
定义
dbc即CAN Data Base Describes.其描述的是在一个网络下的所有ECU的CAN通信。
功能
将CAN网络中数据解析成具体的报文(Message)和信号(signal),以方便我们对其进行分析。 DBC文件的作用就是帮助我们直接得到报文数据代表的含义,省去了查通讯协议这步骤,直接得到报文数据表示的是什么数据。
属性
一个dbc只含一个Network,因此,Network下面属性配置(Environment)相当于全局的配置,只配置一次。
网络(Networks)-> 电子控制单元(ECUs)-> 网络节点(Network Nodes)-> 报文(Message)-> 信号
了解架构后,显然初学可以从信号入手;
制作步骤
一切参数设置以协议表为标准
信号逐级向上,长按拖动即可完成逐级的添加;
创建信号signals
右键signals->new
标签主要看第一个(Definition)和最后一个标签(Comment)
1》创建一个名字(Name):Max_CellVolt
2》字节长度(Lenght):16bit
3》字节顺序(Byte Order):Motorola(字节顺序有两种模式:一种为Intel,另外一种为Motorola;
区别为Intel 高字节(8bit)在后,低字节(8bit)在前;Motorola高字节(8bit)在前,低字节(8bit)在后;
例:5330 数值用十六进制表示时,若用Motorola格式:14 D2;若用Intel格式:D2 14)
4》数值类型(Value Type):Unsigned 无符号
(数值类型有4种格式:Signed ,Unsigned,IEEE Float,IEEE Double)
5》“Factor:” 表示分辨率;
6》“Offset:” 表示偏移量;
7》“Minimum:”和“Maximum”表示该信号实际范围;比如,截图中最大值是30
即信号值 3000*0.01(Factor) = 30,即信号的最大值是3000.
8》“Init.Value:” 表示该信号的初始值;
9》“Unit:”表示单位。 解析数据时:实际的信号物理值 = 分辨率 * CAN信号值 + 偏移量
10》最小值与最大值可以点击 Calculate minimum and maximum 自行生成(这里的最大最小值是根据你选的字节 长度和数值类型决定的)
根据给的CAN网络协议表格制作(数量多起来制作过程给人整的没脾气!一定要写一个就制作一个)
添加报文Messages
signals创建完成发现左边是x,不急,先创建Messages;
右键Messages->new
主要看第一个(Definition)、第二个(Signals)和最后一个标签(Comment)
1》Name:” 表示新增ID的名称;
2》Type:标准帧还是扩展帧;
3》“ID:” 用十六进制表示,如果是标准帧,范围:0~0x7FF;
4》“DLC:” 表示新增message的实际的长度,最大为8
5》然后添加该message的signals,点击Add,添加;
报文添加后layout可见报文格式:
添加节点Network nodes
右键Network nodes->new
新建完在节点中添加对应报文Messages,双击所建节点可见:
信号映射关系
报文的添加(另一种方式)
导入和属性设置
导入属性,我们选择一个vector自带的dbc文件作为导入文件;
导入后可以再修改,注意更改属性;
主要关注报文周期和发送类型这两个,比如报文周期,多久发一帧,总要定义吧,发送类型,是周期发送还是不发送,也要定义。
一致性检查
没错就行
增加值描述
完成后总览
测试
使用CANPro软件,解析dbc文件,接收CAN报文,分析移步:
参考:
《CAN报文DBC解析的编程方法说明》https://www.vecll.com/news/10.html
DBC文件学习 - 程序员大本营 (pianshen.com)
参考链接
从零开始学习CANoe(二)—— CANdb++ 创建 dbc文件-CSDN博客
优秀专栏推荐:http://t.csdnimg.cn/nzV7g