AUTOSAR CFG工程兼容多DBC的方案实现

传送门—> 返回AUTOSAR配置与实践总目录

AUTOSAR CFG工程兼容多DBC的方案实现

  • 一、为什么需要兼容多DBC
  • 二、多DBC兼容的方案实现
  • 三、新建Variant后的错误解决
  • 四、多DBC集成注意事项(持续补充)

一、为什么需要兼容多DBC

当DBC中少数报文对于ECU来说在特定场景下属于发送报文,而特定其他场景属于接收报文

针对这少部分报文差异(特定场景下的收发属性不同),从OEM角度来说,

这部分差异不足以大到通过创建不同的车型来区分。

所以适配这一个车型的差异,可以有两个方案 方案1:
做成两版本DBC(细微差异),通过创建两个CFG工程,生成两套可执行文件,管理两套软件版本 方案2:
兼容两版本DBC,通过一个工程集成两版本DBC,只管理一个软件版本。
而对于少部分DBC的差异,管理两版软件将会增加很多开发和维护工作,显然如果能做成兼容,是最好的。
所以我们当前选用方案2.

二、多DBC兼容的方案实现

2.1 选择Project --》Project Settings ,点击下图Edit Vatiant

AUTOSAR CFG工程兼容多DBC的方案实现_第1张图片

2.2 添加对应的DBC Variant, 可以按照车型名称定义
AUTOSAR CFG工程兼容多DBC的方案实现_第2张图片
2.3 给PostBuild Variant对应命名 AUTOSAR CFG工程兼容多DBC的方案实现_第3张图片
2.4 给PostBuild Variant对应命名 AUTOSAR CFG工程兼容多DBC的方案实现_第4张图片
2.5 确认当前配置,点击finish 完成 AUTOSAR CFG工程兼容多DBC的方案实现_第5张图片

2.6 查看工程,已可以自主选择切换DBC Variant选项(实际对应DBC尚未切换,因为DBC还未导入!) AUTOSAR CFG工程兼容多DBC的方案实现_第6张图片

2.7 依次导入对应的DBC文件。 AUTOSAR CFG工程兼容多DBC的方案实现_第7张图片

三、新建Variant后的错误解决

新建Variant后主线在COM\PDUR\CANIF模块出现CFG工程的check和生成错误 COM Stack各模块主要错误及解决方法
AUTOSAR CFG工程兼容多DBC的方案实现_第8张图片

3.1- 错误类型:CAN if层报文range和指定ID配置冲突

AUTOSAR CFG工程兼容多DBC的方案实现_第9张图片

原因和对策: CANIF层存在报文即设定的CANID(固定),又设定了范围,所以产生了冲突
对于NM报文可以设定接收范围,所以删除CANID(固定),保留范围项即可。
AUTOSAR CFG工程兼容多DBC的方案实现_第10张图片AUTOSAR CFG工程兼容多DBC的方案实现_第11张图片
在这里插入图片描述删除此项配置,即可解决报错

3.2 错误类型: 相同报文在不同DBC Varaint下的信号访问属性配置差异导致的错误

AUTOSAR CFG工程兼容多DBC的方案实现_第12张图片

解决方式:把信号ACCESS_UNLCEAR属性统一变成ACCESS_NEEDED_BY_SWC_OR_COM
AUTOSAR CFG工程兼容多DBC的方案实现_第13张图片
3.3 错误类型: 接收报文DataProvision 属性被误填充

AUTOSAR CFG工程兼容多DBC的方案实现_第14张图片

解决方法: 由属性解释可以看出这是针对发送报文的,删除属性即可

3.4 错误类型:PDUR使用的长度策略错误

AUTOSAR CFG工程兼容多DBC的方案实现_第15张图片

b
在这里插入图片描述

错误原因 可以看出DBC导入后部分报文PDUR长度属性策略默认了UNUSED,(TP长度策略,理解应该是诊断报文属性)
解决方法:针对非诊断报文,PDUR长度策略配置成IGNORE,发送属性选择Transmission Confirmation
AUTOSAR CFG工程兼容多DBC的方案实现_第16张图片

3.5 错误类型:CANif层Buffer中的PDU数量设置为空
AUTOSAR CFG工程兼容多DBC的方案实现_第17张图片

原因及解决方法 设置成1即可。表示CAN报文canif buffer中开辟一个PDU。

3.6 错误类型:COM层最大Notification次数缓存被清

AUTOSAR CFG工程兼容多DBC的方案实现_第18张图片

解决方法:根据需要可以配置成1,表示缓存1个notification。
代码修改: 查看对应ECUC中的3项Variant参数(图中仅列举了Veh_type3),切换DBC Variant后如下
红框出参数名称也会对应变更,标志着成功完成了对应多个DBC Variant的添加

在启动时候对应函数初始化中(参考附图)Com_init,PduR_init等函数中添加新的参数Veh_type3对应handle的初始化即可。

四、多DBC集成注意事项(持续补充)

兼容方案的实施,主要有较多注意地方,主要是DBC文件的格式,如果不遵循一定规则,那么会导致集成,编译出错,多次的DBC返工和重新制作,影响DBC的开发效率。

注意相同信号如果分布在多个variant中,受第三方工具制约,在制作DBC那么他们的的Data Type、Compute Method、Value Table、Unit等信号属性务必定义完全相同,否则CFG工程check和生成阶段会报错.

传送门—> 返回AUTOSAR配置与实践总目录

你可能感兴趣的:(AutoSAR配置和实践,单片机,mcu)