总线数据库的设计需要针对某一仿真工程,因此我们先来创建一个Motor-Speed的仿真项目。然后在针对它设计对应的总线数据库。
1. 创建仿真工程Motor-Speed
依据前面介绍的方法,创建一个仿真工程Motor-Speed。并在其下面创建CANdb、Nodes、Panels等子文件夹。
2.创建数据库MotorSpeed
选择CAN Template.dbc作为模板。创建打开MotorSpeed的数据库。导航区会自动出现包含Networks、ECUs、Environment variables、Networks Nodes、Messages、Signals,在导航区会显示所有对象之间的关系如图1所示。
图1 数据库对象之间关系
3. Networks总线属性编辑
右击MotorSpeed,选择Edit Networks进入总线属性编辑,将Definition中的Protocol 属性改为CAN总线。如图2所示。
图2 总线属性编辑
4. Networks Nodes
在导航区右击Networks Nodes,新建三个网络节点,Motor、Door、和Display,地址分别为1、2、3。完成后如图3示。
图3 创建Networks Nodes
5. Messages
创建MotorState的报文,选择标准CAN,标识符ID为0x100,数据长度为2。在Transmitters选项卡中单击Add按钮,将Motor添加到发送节点。同样的方法创建DoorState的报文,ID为0x200,数据长度为1,发送节点为Door。创建完成后,报文已被添加到相应的节点下,如图4所示。
图4 Messages 设置完毕界面
6、创建Signals(信号)
创建4个信号:马达速度(MotorSpeed),马达状态(OnOff),左车门开关状态(Door_L)和右车门开关状态(Door_R)并分别关联到报文MotorState和DoorState中。MotorSpeed参数设置如图5所示。
图5 Signal MotorSpeed设置参数界面
图5中定义了Factor和Offset定义了raw value与physical value之间的关系。raw value是CAN报文发到总线上的十六进制数据,physical value是信号所表的物理量的值。图中的Inti. Vlue、Minumum、Maximum均为physical value。
raw value与physical value的关系为:physical value=[raw value]*[ Factor]+ [Offset]
在Message选项卡中单击Add将信号关联到报文MotorState中,如图6所示。
图6 将信号关联到报文界面
同样的方法,添加信号(OnOff)和左车门开关状态(Door_L)和右车门开关状态(Door_R)。并将其分别关联到报文MotorState和DoorState中。
7、设置接收节点
单击Networks Nodes,右击Display,选择Eidt Node,在弹出的对话框中,选择Mapped Rx Sig.选项卡,单击单击Add按钮,将信号MotorSpeed添加到其中。同样的将其他信号也加入其中,最后的结果如图7所示。
图7 为Display添加接收信号
本部分内容我们主要完成了总线数据库的创建,并编辑了数据库的第一部分。下一部分内容我将完成该工程的数据库设计的第二部分。