星期六, 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文件以","拆分数据的意思," "属于分隔符。...

继续阅读完整内容

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

广告加载中...
查看 12373
 

瑞驰车友会微信公众号

qrcode for gh 673928177533 258

Please support our site by viewing this advertisement.

Please support our site by viewing this advertisement

Free Content