关键词
嵌入式、C语言、autosar、OS、BSW
平台说明
项目 | Value |
---|---|
OS | autosar OS |
autosar厂商 | vector , |
芯片厂商 | TI 英飞凌 |
编程语言 | C,C++ |
编译器 | HighTec (GCC) |
一、DBC创建时的区别
1.在创建DBC的时候,CAN 2.0 选择的模板为CANTemplate.dbc,而CANFD 选择的为CAN_FD Template.dbc.
二.分别生成一个空白模板
从上图可以看出,CAN2.0 和CANFD 的区别。
三、CAN 2.0 转为 CANFD
3.1 用文本工具打开需要转换的CAN2.0DBC文件
找到BA_DEF_ “BusType” STRING ; BA_DEF_DEF_ “BusType” “CAN”;
替换为下文:
BA_DEF_ BO_ "CANFD_BRS" ENUM "0","1";
BA_DEF_ "DBName" STRING ;
BA_DEF_ "BusType" STRING ;
BA_DEF_ BU_ "NodeLayerModules" STRING ;
BA_DEF_ BU_ "ECU" STRING ;
BA_DEF_ BU_ "CANoeJitterMax" INT 0 0;
BA_DEF_ BU_ "CANoeJitterMin" INT 0 0;
BA_DEF_ BU_ "CANoeDrift" INT 0 0;
BA_DEF_ BU_ "CANoeStartDelay" INT 0 0;
BA_DEF_ BO_ "VFrameFormat" ENUM "StandardCAN","ExtendedCAN","reserved","reserved","reserved","reserved","reserved","reserved","reserved","reserved","reserved","reserved","reserved","reserved","StandardCAN_FD","ExtendedCAN_FD";
BA_DEF_DEF_ "CANFD_BRS" "1";
BA_DEF_DEF_ "DBName" "";
BA_DEF_DEF_ "BusType" "";
BA_DEF_DEF_ "NodeLayerModules" "";
BA_DEF_DEF_ "ECU" "";
BA_DEF_DEF_ "CANoeJitterMax" 0;
BA_DEF_DEF_ "CANoeJitterMin" 0;
BA_DEF_DEF_ "CANoeDrift" 0;
BA_DEF_DEF_ "CANoeStartDelay" 0;
BA_DEF_DEF_ "VFrameFormat" "StandardCAN";
BA_ "BusType" "CAN FD";
BA_ "DBName" "CANFD";
注意:BA_DEF_DEF_ 后面接的 Attribute Definitions 记得替换。以前can2.0 的Attribute Definitions 和 BA_DEF_ SG_、BA_DEF_ BO_记得保留。
四、CAN 2.0 转为 CANFD
按照第三节反着来就行,
注意事项:
1.DLC大于8的需手动调整。
2.CANFD才有的Attribute Definitions 必须删除。
3.别忘了一致性校验。