DBC概述
CAN数据库(Data Base for Can,DBC)文件用于描述一个CAN网络中所有ECU之间的CAN通信。DBC文件可以使用编辑器CANdb++来进行编辑。DBC文件可以导入到Davinci Configurator Pro中,通过使用DBC属性配置CAN通信栈。
DBC属性的值类型
值类型 | 描述 |
---|
Enum | 枚举类型,该类型的值可以采用有限的非数值列表,例如No / Yes。 |
Hex | 该类型的值为一个十六进制数,例如地址0x1FFFFFFF |
Integer | 该类型的值为一个整形的数 |
String | 该类型的值为一个字符串 |
DBC属性的分类
从适用对象上可以分为四类,包括网络属性,节点属性,报文属性,信号属性。一个CAN网络中包含两个以上的节点(即ECU),每个节点都可以接收或发送不同类型的报文,每条报文中可包含多个信号。
属性分类 | 描述 |
---|
网络属性 | 适用对象为整个网络(Network) |
节点属性 | 适用对象为网络中的节点(Node) |
报文属性 | 适用对象为报文(Message) |
信号属性 | 适用对象为信号(Signal) |
从用途上主要可以分为:Com属性(用于描述AUTOSAR COM模块的相关属性)、诊断属性(用于描述AUTOSAR DCM模块和CANTP模块的相关属性)、网络管理属性(用于描述OSEK-NM模块、AUTOSAR CanNm模块的相关属性)以及通用属性。
通用属性
属性名 | 适用对象 | 值类型 | 值与范围(粗体为默认值) | 描述 |
---|
Baud rate | Network | Integer | 0…500000…1000000 | CAN网络波特率,单位为比特/秒。 |
SamplePointMin | Network | Integer | 50…75…100 | 最小采样点 |
SamplePointMax | Network | Integer | 50…90…100 | 最大采样点 |
SyncJumpWidthMin | Network | Integer | 1…4 | 最小重同步跳变宽度 |
SyncJumpWidthMin | Network | Integer | 1…4 | 最大重同步跳变宽度 |
NBTMin | Network | Integer | 6…8…25 | Tq的最小数量 |
NBTMax | Network | Integer | 8…21…25 | Tq的最大数量 |
Manufacturer | Network | String | Vector | 指定原始设备生产商OEM,取值必须为“Vector” |
DBName | Network | String | CAN | 指定网络名称 |
BusType | Network | String | CAN ,CAN FD | CAN-2.0和CAN-FD网络的定义。如果至少有一个CAN-FD消息,则必须设置为“CAN -FD” |
VFrameFormat | Message | Enum | CAN Standard,CAN Extended,CAN FD Standard,CAN FD Extended | 表示CAN报文的类型。提示:此属性可用于每个消息,而无需在属性定义中声明。其显示文本为“ID-Format”或“Type” |
Com属性
属性名 | 适用对象 | 值类型 | 值与范围(粗体为默认值) | 描述 |
---|
GenMsgILSupport | Message | Enum | No: 0 ,Yes: 1 | 指示消息应由COM处理。如果选择“Yes”,则消息将由COM处理,否则不处理 |
GenMsgSendType | Message | Enum | Cyclic: 0, NotUsed: 1. .7, NoMsgSendType: 8 | 指定I-PDU的Tx行为, 可以与任何类型的GenSigSendType组合使用 |
GenSigSendType | Signal | Enum | Cyclic: 0, OnWrite: 1, OnWriteWithRepetition: 2, OnChange: 3, OnChangeWithRepetition: 4, NotUsed:5…6, NoSigSendType: 7 | 指定信号的发送行为。OnChange仅支持<= 4字节的信号。请注意:有重复和无重复的传输类型组合将导致消息随时重复传输。 |
GenMsgCycleTime | Message | Integer | 0…65535 | 报文每一次循环传输之间的时间 ,单位:ms |
GenMsgCycleTimeFast | Message | Integer | 0…65535 | 如果至少有一个IfActiveSignal具有不同的默认值,则该属性定义每个消息循环传输之间的时间(毫秒)。与重复报文(即GenMsgNrOfRepetition > 0)相关的还有:每次重复之间的时间。 |
GenSigStartValue | Signal | Integer | 0…2147483647 | 信号的默认值 |
GenSigInactiveValue | Signal | Integer | 0…2147483647 | 指示信号的无效值 |
GenMsgDelayTime | Message | Integer | 0…65535 | 具有相同标识符的不同报文传输之间的最小时间,单位:ms |
GenMsgStartDelayTime | Message | Integer | 0…65535 | 定义了从Com_IpduGroupStart开始到第一次发送这个I-PDU的循环部分之间的时间,单位:ms |
GenMsgNrOfRepetition | Message | Integer | 0…255 | 一次初始传输请求后的传输重复次数。重复之间的时间必须使用dbc属性GenMsgCycleTimeFast来定义 |
GenSigTimeoutTime_ | Signal | Integer | 0…65535 | 特定节点接收该信号的超时时间,单位为毫秒。如果为一条消息配置了不同的GenSigTimeoutTime值,并且没有使用更新位,则使用最低超时时间(最强定义)进行超时监控。必须为接收此信号的每个Ecu提供专用属性定义(GenSigTimeoutTime_) |
网络管理属性
AUTOSAR网络管理属性
属性名 | 适用对象 | 值类型 | 值与范围(粗体为默认值) | 描述 |
---|
NmType | Network | String | NmAsr | 该属性定义了NM的类型,AUTOSAR NM网络必须设置为“NmAsr” |
NmAsrNode | Node | Enum | No = 0, Yes = 1 | 该属性定义了相应的节点是否使用AUTOSAR NM |
NmAsrTimeoutTime | Network | Integer | 1…1000…65535 | 该属性定义了NM网络超时时间 |
NmAsrWaitBusSleepTime | Network | Integer | 1…750…65535 | 此属性定义了等待总线休眠时间 |
NmAsrRepeatMessageTime | Network | Integer | 1…400…65535 | 这个属性定义了重复报文时间 |
NmAsrMessage | Message | Enum | No = 0, Yes = 1 | 该属性定义了相应的报文是否为AUTOSAR NM报文 |
NmAsrMessageCount | Network | Integer | 1…64…256 | 该属性定义了接收AUTOSAR NM报文的最大数目(报文范围)。取值必须为2的n次方,且n必须是自然数 |
NmAsrBaseAddress | Network | Hex | 0…0x400… 0x1FFFFFFF | NM报文的基址,与NmAsrMessageCount一起标识NM报文范围:NmAsrBaseAddress到NmAsrBaseAddress + NmAsrMessageCount - 1 ,取值必须是NmAsrMessageCount的整数倍 |
NmAsrCanMsgCycleTime | Network | Integer | 1…100…65535 | NM报文周期时间 |
NmAsrCanMsgReducedTime | Node | Integer | 1…50…65535 | 总线负载减少的报文时间。该属性是节点特定的,必须大于或等于½* NmAsrCanMsgCycleTime,但小于NmAsrCanMsgCycleTime |
NmAsrCanMsgCycleOffset | Node | Integer | 0…65535 | NM报文传输偏移量,必须小于NmAsrCanMsgCycleTime |
NmAsrNodeIdentifier | Node | Hex | 0…255 | 有任意地址能力节点的默认地址。节点ID(如果使用了NID) |
OSEK网络管理属性
属性名 | 适用对象 | 值类型 | 值与范围(粗体为默认值) | 描述 |
---|
NmType | Network | String | Vector | 该属性定义了NM的类型,没有OEM特定功能的OSEK-NM网络必须设置为“Vector" |
NmNode | Node | Enum | No = 0, Yes = 1 | 该属性定义了相应节点是否参与OSEK-NM通信 |
NmMessage | Message | Enum | No = 0, Yes = 1 | 该属性定义了相应的报文是否为OSEK-NM报文 |
NmMessageCount | Network | Integer | 16…128…256 | 该属性定义了ECU接收OSEK-NM报文的最大数量(报文范围)。该值必须为2的n次方,且n必须是自然数 |
NmBaseAddress | Network | Hex | 0…0x400… 0x1FFFFFFF | NM报文的基址;NM报文范围(NmBaseAddress,NmBaseAddress + NmMessageCount - 1)由该属性和NmMessageCount计算得出。取值必须是NmMessageCount的整数倍 |
NmStationAddress | Node | Hex | 0…0xFF | ECU自己的地址,由OSEK-NM使用 |
诊断属性
属性名 | 适用对象 | 值类型 | 值与范围(粗体为默认值) | 描述 |
---|
DiagState | Message | Enum | No = 0, Yes = 1 | 设置为Yes时用于功能请求。CanTp将使用正常寻址方式 |
DiagRequest | Message | Enum | No = 0, Yes = 1 | 设置为Yes时用于物理请求。CanTp将使用正常寻址方式 |
DiagResponse | Message | Enum | No = 0, Yes = 1 | 设置为Yes时用于物理响应。CanTp将使用正常寻址方式 |
DiagConnection | Message | Integer | 0…0xFFFF | 通过该属性的相似值将DiagRequest和DiagResponse分组到一个连接,该值由TesterAddress,ServerAddr推导 |
DiagFdOnly | Message | Enum | No = 0, Yes = 1 | 指定ECU将响应哪种类型的诊断请求。No:ECU将以CAN 2.0和CAN- fd两种格式响应诊断请求。Yes:ECU将仅以CANFD格式响应诊断请求。注意:报文请求和响应必须给定相同的属性值。此属性对CAN-2.0帧没有影响 |