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

桃源乐游 2023-06-18 08:30:32

[传送门---> 返回AUTOSAR配置与实践总目录]


一、为什么需要兼容多DBC

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

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

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

所以适配这一个车型的差异,可以有两个方案

方案1:
做成两版本DBC(细微差异),通过创建两个CFG工程,生成两套可执行文件,管理两套软件版本

方案2:兼容两版本DBC,通过一个工程集成两版本DBC,只管理一个软件版本。

而对于少部分DBC的差异,管理两版软件将会增加很多开发和维护工作,显然如果能做成兼容,是最好的。
 所以我们当前选用方案2.

    
    
二、多DBC兼容的方案实现

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


> 2.2 添加对应的DBC Variant, 可以按照车型名称定义 

> 2.3  给PostBuild Variant对应命名 


> 2.4 给PostBuild Variant对应命名 !


> 2.5  确认当前配置,点击finish 完成 !

> 2.6  查看工程,已可以自主选择切换DBC Variant选项(实际对应DBC尚未切换,因为DBC还未导入!) 



> 2.7  依次导入对应的DBC文件。 !

 

 

三、新建Variant后的错误解决

  

>   新建Variant后主线在COM\PDUR\CANIF模块出现CFG工程的check和生成错误    COM Stack各模块主要错误及解决方法



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



> 原因和对策: CANIF层存在报文即设定的CANID(固定),又设定了范围,所以产生了冲突
> 对于NM报文可以设定接收范围,所以删除CANID(固定),保留范围项即可。 


  删除此项配置,即可解决报错
> 3.2  错误类型: 相同报文在不同DBC Varaint下的信号访问属性配置差异导致的错误  



> 解决方式:把信号ACCESS_UNLCEAR属性统一变成ACCESS_NEEDED_BY_SWC_OR_COM 


> 3.3  错误类型: 接收报文DataProvision 属性被误填充 


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

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



> 错误原因 可以看出DBC导入后部分报文PDUR长度属性策略默认了UNUSED,(TP长度策略,理解应该是诊断报文属性)
> 解决方法:针对非诊断报文,PDUR长度策略配置成IGNORE,发送属性选择Transmission Confirmation 



> 3.5  错误类型:CANif层Buffer中的PDU数量设置为空  



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

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


 解决方法:根据需要可以配置成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配置与实践总目录]

...全文
506 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

30,461

社区成员

发帖
与我相关
我的任务
社区描述
就等你来冒个泡~
社区管理员
  • 灌水乐园
  • 社区助手
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

版主:

社区助手

 

试试用AI创作助手写篇文章吧