AUTOSAR CDD 模块解析 — 设计建议

汽车安全 3年前 (2021) admin
1,935 0 0

AUTOSAR CDD 模块解析 --- 设计建议



1. 模块简介


CDD是啥?

首先看字面意思,CDD(Complex Device Driver or Complex Driver)是复杂设备驱动/复杂驱动的缩写,但是它不仅限用于驱动模块,也可以是应用或者与芯片、ECU相关的其他模块。

一个CDD模块是AUTOSAR里面的一个软件实例,属于AUTOSAR的一部分,但是该模块没有被AUTOSAR标准化。它可以通过AUTOSAR接口访问AUTOSAR里面其他基础模块(BSW),同样也可以被其他BSW或者RTE访问,SWCs与CDD之间不能直接进行访问,但可通过RTE进行。

CDD虽然是没有被AUTOSAR标准化的模块,但其可看作AUTOSAR软件架构里面的一种机制或者一种理念。


为啥有CDD?

CDD的主要目标是实现复杂的传感器采集和/或执行器控制,使用特定的中断和/或复杂的微控制器外设,外部设备(通信收发器,ASIC …)直接访问微控制器,以满足特殊的功能和时序要求。

CDD模块ID为2551。


2. CDD设计建议


为了使用户更容易集成一个CDD模块到AUTOSAR软件架构里面,设计者需要考虑下面这些东西。


2.1 用户手册

为简化客户集成工作,你需要提供用户手册,通常用户手册又需要包含如下信息:

  1. CDD模块介绍和概览。

  2. 功能描述,比如初始化,正常模式,关机模式,错误处理等。

  3. 与其他模块的依赖关系描述。比如是否需要使用其他BSW模块,SchM,RTE或者是否需要使用NvM提供存储块,是否需要配置一些关键存储区等等。

  4. 模块文件结构及依赖关系。

  5. 接口描述/功能服务描述:名字,功能简介,是否重入,参数名字,参数类型,参数范围,参数值,返回值类型,返回值范围,参数配置类型等。

  6. 非功能性描述,时间及操作要求,资源使用情况,与其他BSW或SWC的交互情况。

  7. Dem错误描述,Det错误描述(可选项),调试变量(可选项)等。

  8. 配置参数描述:配置参数名字,配置参数类型,配置参数取值范围,配置参数值。

  9. 存储区域(Flash,RAM)映射描述。

  10. 使用限制及已发现但还未解决的问题描述。

  11. 集成约束及对其他模块的依赖。

  12. 示例代码。


2.2 代码实现要求

除了需要满足以下这些要求外,AUTOSAR对CDD的其他实施限制很少。

  • CDD模块必须对关键资源进行保护,需要定义一些关键区(Section),这些区能被SchM或OS操作管理。

  • CDD的模式能被EcuM及BswM模块进行管理。

  • CDD可能需要使用内存映射机制来使用/操作其相关内存区域。

  • CDD可能需要使用Det或者Dem模块来报告错误信息。


2.3 文件组成

对于文件结构,这里只是一个推荐,并没有完全定义文件结构,可以根据自己实际需求进行定义,但需要遵循下面两个文档里面的规则。

以下是一个CDD模块一些基本的文件组成:

代码文件(Code file):

  • 至少需要一个CDD_<MODULENAME>.c。

  • 如果有中断函数,需要放到CDD_<MODULENAME>_Irq.c。

  • 如果有Callout函数,需要放到CDD_<MODULENAME>_Callout.c。

  • 如果配置中有代码是在链接时(Link time)生成,那么这部分代码放到CDD_<MODULENAME>_Lcfg.c。

  • 如果配置中有代码是在编译后时(Post Build)生成,那么这部分代码放到CDD_<MODULENAME>_PBcfg.c。

如果需要额外的文件,可自由增加。


头文件(Header file):

  • 你需要提供一个CDD_<MODULENAME>.h文件,通常使用该模块的时候只需要包含该文件即可。

  • 如果有回调函数(Callback)被其他模块(BSW)使用,需要提供CDD_<MODULENAME>_Cbk.h。

  • 你可能还需要提供CDD_<MODULENAME>_Cfg.h,CDD_<MODULENAME>_PBcfg.h,CDD_<MODULENAME>_Lcfg.h,根据配置目标类型来决定。

如果需要包含(include)额外的文件,可自由引用。比如:

  • 通常CDD模块需要包含Det.h/Dem.h来报告错误。

  • 如果定义了内存映射区域,需要包含<Mip>_MemMap.h(Mip是模块缩写前缀,如Com,Adc等)。

  • 如果配置了给Rte使用的接口,那么需要提供Rte_CDD_.h。


推荐文件结构:

下图是文件包含关系的一个概览:

AUTOSAR CDD 模块解析 --- 设计建议


一致性检查(Coherence checks):

CDD模块需要避免集成一些不兼容的文件。通常是通过检查版本号来实现。

见AUTOSAR_SWS_BSWGeneral.pdf文档里面Version check章节。


————————————————

版权声明:本文为CSDN博主「斯蒂芬杜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。



原文始发于微信公众号(汽车电子与软件):AUTOSAR CDD 模块解析 — 设计建议

版权声明:admin 发表于 2021年12月19日 上午4:20。
转载请注明:AUTOSAR CDD 模块解析 — 设计建议 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...