CAN 数据库是OEM和电子零部件供应商开发和测试阶段必须用到的文件,通常由OEM提供。
CAN 数据库一般是可以导入CANoe的.bdc或.arxml格式的文件,将数据库导入CANoe就可以很方便的对总线环境进行仿真、测试和分析。
但有时候OEM不会直接提供.dbc或.arxml文件,而是提供记录总线消息的excel格式的can matrix文件,为了开发和测试需要供应商就必须根据can matrix来编辑生成可导入CANoe的.bdc或.arxml文件。
以编辑生成.dbc文件为例,有两种方法:
- 用Vector提供的CANdb++软件在GUI界面按照can matrix定义的消息和信号逐个手动编辑。
- .bdc文件有特定的格式,明确这个格式,就可以写脚本根据can matrix自动生成.bdc文件。
.bdc文件格式说明请参考:DBC文件格式解析
can matrix中的信号如果比较少可以用CANdb++手动编辑,但如果can matrix有成百上千条信号,最好还是写脚本生成,手动编辑绝对编到怀疑人生...
知道了.bdc文件的格式,再用python读取can matrix来生成.dbc就是简单的事情了。
gitgub上有一个开源的python库可供参考:canmatrix
canmatrix实现了多种CAN数据库格式之间的相互转化,包括:
.dbc|.dbf| .kcd|.arxml| .json|.xls(x)|*.sym|
canmatrix库支持转化的excel格式如图所示: