星期六, 02 10月 2021 13:28

解析.DBC文件, 读懂CAN通信矩阵,实现车内信号仿真

通常我们拿到某个ECU的通信矩阵数据库文件,.dbc后缀名的文件。 直接使用CANdb++ Editor打开,可以很直观的读懂信号矩阵的信息。
例如下图:

现在要把上图呈现的信号从.dbc文件中解析出来,供实现自动化仿真总线信号使用,比如使用python+支持can收发的硬件即可替代canoe实现信号仿真(性能上不够用,可满足功能测试所需)。
一个标准CAN帧中包含的信息有,消息ID、报文发送周期、 报文长度、信号信息等。
开始解析前,先了解一下报文帧。下表体现了摩托罗拉字节位序的报文发送时的字节序和bit序,一会儿可以帮助我们理解dbc中的定义

 我使用了notepad++打开数据库文件,提取数据库文件中的关键信息。此处随意选取了其中一个ID=1015(dec)作为例子讲解。全文本搜索1015,结果如下:
Line 62: BO_ 1015 IPK_ODO_Consump: 8 Vector__XXXLine 883: CM_ BO_ 1015 "Transmitted by IPK, including EV DTE odometer, power consumption and fuel consumption";Line 884: CM_ SG_ 1015 IPK_EVDTEodometer "The EV DTE odometer ";Line 1265: BA_ "GenMsgCycleTime" BO_ 1015 1000;Line 1463: BA_ "GenSigStartValue" SG_ 1015 IPK_EVDTEodometer 4095;Line 1967: VAL_ 1015 IPK_EVDTEodometer 4095 "Invalid" ;
挨个戳开每条搜索结果查看详细内容,逐句解释:
说明:dbc文件以空格符拆分数据信息,类似于csv文件以","拆分数据的意思," "属于分隔符。...

继续阅读完整内容

请查看下方广告以解锁文章剩余内容

广告加载中...
查看 12794

AI 智能舌象仪

Tongue imager rafavi

导航信号采集及测试设备

Portable singal acquisition and replay
 
Please support our site by viewing this advertisement.

Please support our site by viewing this advertisement

Free Content