什么是DBC文件

DBC是Database Can的缩写,其代表的是CAN的数据库文件,在这个文件中把CAN通讯的信息定义的非常完整清楚,而CAN网络的通讯就是依据这个文件的描述进行的,所以DBC文件的作用非常强大,正是因为有了它才可以使得整个CAN网路的节点控制器无差错的协同同步开发。

DBC文件一般我们在写应用代码时,会参考DBC文件的一些参数,编写他的代码。


一、DBC文件内容

当我们打开一份DBC文件时,主要看 Network nodes下里的网络节点,网络节点分为多个类,如下图,分为SDE、sensor2、sensor3三个类节点。

当点开节点时,会看到类节点下的 TX 与 RX 下的多个messages。

每个message 又包含了多个signals。

二、DBC文件中的重点内容

1. 信号的起始位,bit长度、factory因数、offset偏移量,最大最小值、多路复用

从图中可以看出,factory 是因数,offset 是偏移量,最大最小值、Multiplexing 是多路复用。

1.2 多路复用

如图所示,有5种message,每个message由很多信号组成。

1.2 信号中Length[bit]、factory、offset、minimum、maximum的用法实现以及运算

基于AUTOSAR 实现的部分代码:

void XXXX()
{(void)ProcessDataOfSingleTarget(IPduData,  0,&TargetData.as_Target[0], MsgId);(void)ProcessDataOfSingleTarget(IPduData,188,&TargetData.as_Target[1], MsgId);
}
static boolean ProcessDataOfSingleTarget(const uint8 *IPduData, uint16 offset, TS_RDA_5G3_00_DFPV_Target *target,uint32 MsgId)
{ReadSignalDataFromPdu(IPduData,  36u + offset, 15, SignalEndianness_Little, SignalType_uint16, &SignleTargetData.YPos);ReadSignalDataFromPdu(IPduData, 180u + offset,  8, SignalEndianness_Little, SignalType_uint8,  &SignleTargetData.YPosStd);ReadSignalDataFromPdu(IPduData,  65u + offset, 14, SignalEndianness_Little, SignalType_uint16, &SignleTargetData.YVelocity);ReadSignalDataFromPdu(IPduData, 188u + offset,  8, SignalEndianness_Little, SignalType_uint8,  &SignleTargetData.YVelocityStd);target->YPos = ConvertToPhysicalValue((float32)SignleTargetData.YPos,(float32) 0.01,(float32)-163.84,(float32)-163.84,(float32) 163.83);target->YPosStd = ConvertToPhysicalValue((float32)SignleTargetData.YPosStd, (float32) 0.1, (float32)0.0,(float32)0.0,(float32) 25);target->YVelocity = ConvertToPhysicalValue((float32)SignleTargetData.YVelocity, (float32) 0.01,(float32)-81.92, (float32)-81.92, (float32) 81.91);target->YVelocityStd = ConvertToPhysicalValue((float32)SignleTargetData.YVelocityStd,(float32) 0.1, (float32)0.0,(float32)0.0,(float32) 15);
}
static float32 GetMin(float32 x, float32 y)
{/* GetMin from x y*/return (x < y) ? x : y;
}static float32 GetMax(float32 x, float32 y)
{/* GetMax from x y*/return (x > y) ? x : y;
}float32 ConvertToPhysicalValue(float32 value, float32 factor, float32 offset, float32 minValue, float32 maxValue)
{// 运算float32 result = (value * factor) + offset;// As in a DBC file, when both the upper and lower bound are equal to 0, we do not take them into account.if ((minValue != (float32)0) || (maxValue != (float32)0)){// Take into account the upper and lower bounds.result = GetMin(result, maxValue);result = GetMax(minValue, result);}return result;
}

tips

factor(系数) 与 offset(偏移量) 定义了物理值(physical,物理量,如vehicle speed,engine speed,water temperature)与原始值(raw,总线上传输的值)的线性转换规则.

转换公式:

physical_value = raw_value * factor + offset

raw_value = ( pysical_value - offset ) / factor

如何看一份DBC文件相关推荐

  1. CSR867x — 如何看懂一份psr文件

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX  作       者:文化人 XX  联系方式: XX  版权声明:原创文章,欢迎 ...

  2. wow mysql dbc_WoW的DBC文件内容描述-魔兽有爱论坛 - 一个魔兽世界爱好者的聚集地 uiwow.com - Powered by Discuz!...

    楼猪也是新手小白,对wow的dbc文件已经学习一段了,分享一点成果: 第一个:WorldSafeLocs.dbc 从字面上理解是游戏中的安全位置数据 位置 : 位于dbc.mpq patch.mpq中 ...

  3. 关于DBC文件的创建

    版权声明:本文为CSDN博主「第55号小白鸭」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/weixin ...

  4. ETAS CP AUTOSAR RTA-CAR工具使用教程 -- ISOLAR-A导入dbc文件

    ISOLAR-A导入dbc文件 简介:将使用rta-car7演示 1.按图新建工程 2.选中Filesystem Navigator 3.将准备好的dbc文件copy到工程路径下 4.点开绿色的D按钮 ...

  5. 零基础速成simulink代码生成——结合CANOE的DBC文件CAN报文代码生成 移植到硬件4

    零基础速成simulink代码生成--结合CANOE的DBC文件CAN报文代码生成 移植到硬件4 本次我们将讲解如何将代码放到嵌入式硬件上运行,本次例子将dbc文件导入simulink中,生成代码,不 ...

  6. 各方评论《面向儿童的人工智能北京共识》:这是中国人工智能发展轨迹中的一份关键文件...

    近日,智源研究院联合北京大学人工智能研究院.清华大学人工智能研究院.清华大学人工智能国际治理研究院.中科院自动化所.中科院计算所.中科院心理所等高校院所,以及小米.旷视.奇虎360.好未来.爱学习.极 ...

  7. 美军称五角大楼遭网络袭击 2.4万份敏感文件被盗

    美军主管网络安全事务的国防部副部长威廉·林恩14日称,今年3月五角大楼遭受历史上最严重的一次网络袭击,计有2.4万份敏感文件被盗走. 林恩当天在位于华盛顿的美国国防大学发表演讲,正式公布美军第一份&l ...

  8. vector can通信源码_汽车电子CAN网络dbc文件

    CAN网络作为汽车网络已经被广泛使用,随着电子零部件被越来越多的应用到汽车中,零部件之间的通信越来越多,德国vector公司作为行业内的标杆企业,vector公司定义了一套文件规范-----dbc,作 ...

  9. 一图看懂hadoop分布式文件存储系统HDFS工作原理

    一图看懂hadoop分布式文件存储系统HDFS工作原理 转载于:https://www.cnblogs.com/AlexQY/p/9856477.html

  10. python调用simulink_使用Python从dbc文件中提取simulink建模数据定义

    使用dbc文件建模完成CAN通讯是一种比较高效的开发模式,不过在建模的过程中dbc文件中描述的数据需要自己去定义.使用文本编辑工具打开dbc文件可以看到,实际上dbc文件是一个可以进行语义解析的文本. ...

最新文章

  1. 我哭了,工业界AI项目落地有多难?
  2. mysql主主复制某张表_MySQL主主复制实战
  3. Re(正则表达式)库入门
  4. Javascript验证上传图片大小[前台处理]
  5. 【回顾】千万级智能推荐系统的架构演进
  6. 怎么看登陆哪个用户名_面试教材看哪个版本?抽到的版本与备考的不一致怎么办?...
  7. python: 正则表达式2--元字符与re模块
  8. 几点预防内存泄露的小建议
  9. CTRL-Space always toggles Chinese IME (Windows 7、10)
  10. c语言与西门子plc通讯,西门子PLC四种核心通讯方式汇总学习
  11. plist序列帧合图导出单独的图片
  12. 诸葛——如何摆脱APP速死症?
  13. 牛逼,我用Python做了一个word、PPT水印添加器!还带加密功能!
  14. Java游戏开发——推箱子
  15. 穿山甲成长中心——人能尽其才则百事兴
  16. Python opencv 伪彩色保存的结果和plt.imshow(blur_heatMap_jet)的结果截然相反 Python opencv如何imshow一张图片
  17. 计蒜客题解——T1769:最大岛屿
  18. 《外星人就在月球背面》值得一读
  19. iPhone设置代收 阿里云邮
  20. 正则校验特殊字符,英文特殊字符和中文特殊字符

热门文章

  1. QQ浏览器,正式推出,9.0版本又多些好东西!
  2. 牛客Top200---最长回文字符串(java)
  3. 数学建模之斯皮尔曼相关系数的假设检验
  4. 数二计算机考研大纲2016,2016数二考研大纲.doc
  5. 360 x TiDB|性能提升 10 倍,360 如何轻松抗住双十一流量
  6. 宋宝华:Linux的任督二脉——进程调度和内存管理
  7. List集合排序总结
  8. spss进行主成分分析
  9. 【转】推荐几本学习MySQL的好书-MySQL 深入的书籍
  10. vs应用程序无法正常启动