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 用户手册
为简化客户集成工作,你需要提供用户手册,通常用户手册又需要包含如下信息:
-
CDD模块介绍和概览。
-
功能描述,比如初始化,正常模式,关机模式,错误处理等。
-
与其他模块的依赖关系描述。比如是否需要使用其他BSW模块,SchM,RTE或者是否需要使用NvM提供存储块,是否需要配置一些关键存储区等等。
-
模块文件结构及依赖关系。
-
接口描述/功能服务描述:名字,功能简介,是否重入,参数名字,参数类型,参数范围,参数值,返回值类型,返回值范围,参数配置类型等。
-
非功能性描述,时间及操作要求,资源使用情况,与其他BSW或SWC的交互情况。
-
Dem错误描述,Det错误描述(可选项),调试变量(可选项)等。
-
配置参数描述:配置参数名字,配置参数类型,配置参数取值范围,配置参数值。
-
存储区域(Flash,RAM)映射描述。
-
使用限制及已发现但还未解决的问题描述。
-
集成约束及对其他模块的依赖。
-
示例代码。
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。
推荐文件结构:
下图是文件包含关系的一个概览:
一致性检查(Coherence checks):
CDD模块需要避免集成一些不兼容的文件。通常是通过检查版本号来实现。
请见AUTOSAR_SWS_BSWGeneral.pdf文档里面Version check章节。
————————————————
版权声明:本文为CSDN博主「斯蒂芬杜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文始发于微信公众号(汽车电子与软件):AUTOSAR CDD 模块解析 — 设计建议