当前位置: 首页 > article >正文

AUTOSAR CP复杂驱动程序(Complex Driver,CDD)的设计与集成指南导读

在这里插入图片描述

一、文档主要内容

该文档聚焦于AUTOSAR CP(汽车开放系统架构经典平台)中复杂驱动程序(Complex Driver,CDD)的设计与集成指南,旨在为汽车电子系统中CDD的开发和集成提供全面的指导,确保其在系统中的规范性、兼容性和可靠性。

  1. 引言
    • 文档目的:概述CDD,并为其在AUTOSAR架构中的实现和集成提供建议,主要面向CDD的开发者和集成者。
  2. 术语定义与缩写
    • 局部范围的缩写和术语应列于本地术语表,通用术语定义参考相关文档。
  3. 约定
    • 规定需求描述中关键词(如“MUST”“SHOULD”等)的语义,以明确要求的严格程度和可选性。
  4. 相关文档
    • 列出编写本指南所参考的众多输入文档,包括基本软件模块相关规范、通信相关规范、错误处理相关规范等。
  5. CDD介绍
    • 定义与位置:CDD是可通过AUTOSAR接口和基本软件模块API访问的非标准化软件实体,位于基本软件的复杂驱动层,可与标准BSW模块或RTE交互。
    • 功能与作用:实现复杂传感器评估和执行器控制,满足特殊功能和定时要求,还可用于实现增强服务/协议或封装遗留功能,是向AUTOSAR软件架构引入新功能的迁移机制。
  6. CDD设计建议
    • 文档编制:提供用户手册,涵盖功能操作、与其他模块关系、接口、非功能需求、错误处理、配置参数、内存映射等多方面内容。
    • 实现约束:遵循相关输入规范,保护关键资源,其模式可由EcuM和BswM管理,可处理内存段并报告错误。
    • 文件结构:推荐代码文件和头文件的组织结构,头文件应自包含并按需包含其他文件,同时需进行一致性检查。
    • 行为与接口描述:若CDD有抽象接口供应用SW - C访问,需遵循相关模板要求,描述服务、接口、内部行为、触发事件、独占区和内存映射等。
    • 参数配置:若使用AUTOSAR GCE配置参数,需遵循ECU配置规范,明确模块版本并在生产阶段按需停用错误报告。
  7. 与其他模块的接口
    • 与RTE和SW - C接口:通过RTE与SW - C接口,需按AUTOSAR规范指定和实现端口及接口,并使用相关参数。
    • 与库接口:可使用AUTOSAR库,如E2E库进行通信保护。
    • 与标准BSW模块接口
      • 分层软件架构模块与CDD接口:CDD应提供可配置接口,如PDU路由器访问新总线系统接口;CDD访问分层软件架构模块时,需注意接口可重入性、回调例程命名、状态管理及提供配置参数。
      • 具体模块接口
        • 与MCAL模块接口:推荐CDD使用MCAL模块标准API访问微控制器资源,避免冲突。
        • 与BSW模式管理器和ECU状态管理器接口:EcuM和BSW模式管理器是模式管理的专属访问点,CDD需遵循相关初始化、唤醒事件处理和模式切换协议。
        • 与内存堆栈接口:若NVRAM由CDD专属管理可直接访问,否则使用NVM API;使用标准内存堆栈时,NVRAM管理器是唯一访问点。
        • 与看门狗堆栈接口:看门狗管理器可监控CDD的可运行实体,CDD应按规范调用API,通过RTE与看门狗管理器交互,实现状态控制和故障处理。
        • 与通信堆栈接口:可通过多种访问点与通信堆栈交互,如PDU路由器、

二、CDD设计建议解析

文档编制

CDD设计者应提供用户手册以助力集成并向客户提供信息。例如,在一个车辆的电子控制系统中,CDD负责管理特殊的传感器(如高精度的环境监测传感器)和执行器(如新型电子节气门执行器)。用户手册中会详细介绍CDD的功能操作,包括传感器数据采集的初始化过程、正常运行时数据处理流程、系统关机时执行器的关闭顺序以及故障发生时的应对操作。同时,描述与其他模块的关系,如与NvM模块交互获取存储在非易失性存储器中的配置数据,以及与SchM模块协作配置关键代码段。还会涵盖接口信息,如传感器数据读取接口的名称、参数类型(如传感器数据类型、采样频率参数等)、返回值类型(如传感器状态码)以及接口的可重入性(如传感器数据采集接口可重入,允许多个任务同时调用)。对于非功能要求,明确传感器数据采集的定时要求(如每10毫秒采集一次数据)、与其他模块交互时的资源使用情况(如占用的CPU时间和内存空间)。在错误处理方面,列出可能出现的传感器通信错误(如数据传输错误)和执行器控制错误(如执行器位置反馈异常),并说明对应的错误码和调试变量(如错误码0x01表示传感器通信超时,调试变量记录最后一次成功通信的时间戳)。详细描述配置参数,如传感器校准参数的名称、数据类型(如浮点型)、取值范围(如0.0 - 100.0)和默认值(如50.0)。明确内存映射需求,如传感器数据存储在特定的RAM区域,执行器控制指令存储在特定的Flash区域。指出使用限制,如在高温环境下传感器精度可能降低,以及尚未解决的问题(如与某些特定型号的传感器兼容性有待优化)。阐述与其他模块的集成约束,如与发动机控制模块协同工作时的时序要求(如在发动机启动后的5秒内完成传感器初始化),并提供示例说明正常和异常情况下的系统行为。

实现约束

  1. 遵循规范:CDD必须遵守如[2] General Requirements on Basic Software Modules和[4] General Specification on Basic Software Modules等输入规范。例如,在车辆的安全系统中,CDD实现涉及到与安全相关的操作(如安全气囊触发控制),必须严格遵循规范中对于安全关键功能的实现要求,包括数据处理的准确性、可靠性以及与其他安全相关模块(如传感器模块、诊断模块)的交互规范,以确保整个安全系统在各种工况下的正确运行。
  2. 资源保护:CDD应通过定义可由SchM或OS机制处理的关键代码段来保护其关键资源。比如在车辆的电子稳定控制系统中,CDD负责处理传感器数据(如车轮转速传感器、横向加速度传感器等数据)并控制执行器(如制动压力调节器),其中涉及到对传感器数据处理和执行器控制的关键代码段,通过SchM机制确保在同一时刻只有一个任务能够访问和修改关键数据(如当前车辆的行驶状态数据),防止数据冲突和错误操作,保证系统的稳定性和可靠性。
  3. 模式管理:CDD的模式可由EcuM和BswM模块管理。以车辆的混合动力系统为例,CDD负责监控电池状态(如电量、温度等)和管理电机的运行模式(如电动驱动、发电模式等),EcuM和BswM模块根据车辆的整体运行状态(如启动、行驶、停车等)和系统需求(如能量回收、动力输出需求)来管理CDD的模式切换,确保电池和电机在不同工况下的正确运行和协调工作。
  4. 内存管理:CDD可使用内存映射机制处理其内存段。在车辆的导航系统中,CDD负责管理地图数据的存储和读取,通过内存映射机制将地图数据存储在特定的内存区域(如Flash用于存储地图数据库,RAM用于临时存储导航计算过程中的数据),并根据系统需求动态管理内存资源,提高内存使用效率,确保导航系统在运行过程中能够快速准确地访问地图数据,提供流畅的导航服务。
  5. 错误报告:CDD可使用Det或Dem模块报告其错误。例如在车辆的通信系统中,CDD负责管理车载网络通信(如CAN总线通信),若出现通信错误(如数据传输错误、总线冲突等),CDD使用Det模块记录详细的错误信息(如错误发生的时间、错误类型、涉及的数据帧等),并通过Dem模块向系统报告错误,以便系统进行故障诊断和处理,保障通信系统的稳定性和可靠性。

文件结构

  1. 代码文件
    • 基本要求:除遵循相关规范要求外,至少应提供CDD_.c文件。例如在车辆的车身控制系统中,CDD负责控制车窗升降、门锁开关等功能,CDD_BodyControl.c文件包含了这些功能的核心实现代码。
    • 中断函数文件:中断函数可放置在CDD__Irq.c文件中。如在车辆的发动机控制系统中,发动机转速传感器的中断处理函数可放在CDD_EngineControl_Irq.c文件中,以便在发动机转速变化时及时响应并处理相关数据。
    • 回调函数文件:回调函数可放在CDD__Callout.c文件中。在车辆的远程信息处理系统中,当接收到远程服务器的指令(如车辆定位请求)时,对应的回调函数可放在CDD_Telematics_Callout.c文件中,实现与外部系统的交互响应。
    • 配置相关文件:根据配置生成的C对象,在链接时生成的可放在CDD_Lcfg.c文件,在构建后生成的可放在CDD_PBcfg.c文件。例如在车辆的自适应巡航控制系统中,根据不同的车辆配置(如不同车型、不同传感器配置)生成的相关配置数据对象,分别放置在对应的配置文件中,方便系统在不同配置下的正确运行。
  2. 头文件
    • 层次结构与包含关系:CDD模块应提供头文件结构,用户只需包含CDD_.h文件,其他配置相关的声明可按需放在CDD_Cfg.h、CDDPBcfg.h、CDD_Lcfg.h文件中。以车辆的照明控制系统为例,CDD_Lighting.h文件包含了照明控制模块的基本接口声明,而CDD_Lighting_Cfg.h文件则包含了根据配置生成的灯光亮度、颜色等参数的声明。
    • 错误报告相关:CDD模块可包含Det.h和/或Dem.h头文件以报告错误。在车辆的故障诊断系统中,CDD负责检测和报告系统中的各种故障(如传感器故障、执行器故障等),通过包含Det.h和Dem.h文件,使用相应的函数来记录和报告故障信息,以便维修人员进行故障排查。
    • 内存映射相关:若需定义内存映射区域,可包含_MemMap.h头文件(为模块实现前缀)。在车辆的多媒体系统中,CDD负责管理音频和视频数据的存储和播放,通过包含相关的MemMap.h文件,确保音频和视频数据存储在正确的内存区域(如音频数据存储在特定的RAM区域以保证流畅播放,视频数据存储在Flash或大容量存储设备中)。
    • 与RTE接口相关:若配置了与RTE的接口,可包含Rte_<CDD_MODULENAME>.h头文件。在车辆的自动驾驶系统中,CDD与RTE交互以获取传感器数据和发送控制指令,通过包含Rte_Autopilot.h文件,实现与RTE之间的接口定义和数据传输,确保自动驾驶系统各组件间的协同工作。

行为与接口描述

在车辆的智能驾驶辅助系统中,CDD负责处理来自多个传感器(如摄像头、雷达等)的数据,并通过RTE与其他模块(如决策模块、控制模块)交互。

  1. 服务与接口描述:CDD提供的服务包括传感器数据预处理(如滤波、融合等),其接口明确数据输入输出类型(如摄像头图像数据输入,处理后的目标检测结果输出)、可重入性(如数据预处理接口可重入,允许多个任务同时调用进行不同传感器数据处理)、参数范围(如雷达数据处理接口的距离参数范围为0 - 200米)等。
  2. 内部行为与可运行实体:内部行为描述数据处理流程,如摄像头图像数据先进行滤波处理,再与雷达数据进行融合,然后通过可运行实体(如SensorDataProcessor任务)将处理结果发送给决策模块。
  3. 触发事件描述:可运行实体的触发事件包括传感器数据更新(如摄像头新帧数据到达、雷达检测到目标距离变化),这些事件触发相应的数据处理操作。
  4. 独占区与共享资源保护:对于共享资源(如传感器数据缓冲区),定义独占区以确保在数据处理过程中不会被其他任务修改,保证数据的一致性和完整性。
  5. 内存映射描述:明确传感器数据存储在特定的内存区域(如摄像头数据存储在专用的图像缓冲区内存区域),处理结果存储在与RTE交互的共享内存区域,以便其他模块读取。

参数配置

在车辆的发动机管理系统中,CDD负责控制发动机的运行参数(如燃油喷射量、点火时间等)。

  1. 版本识别:使用AUTOSAR GCE配置参数时,配置文件应明确CDD模块以及相关软件的版本。例如,配置文件中记录CDD_EngineManagement模块版本为1.0,与之相关的软件组件(如传感器驱动程序、通信协议栈等)版本信息,以便在系统维护和升级时进行版本兼容性检查。
  2. 错误报告控制:在生产阶段,应根据需要在配置参数中设置是否停用Det模块的错误报告。如在大规模生产的车辆中,为了减少不必要的错误报告对系统性能的影响,可在配置参数中将Det模块的错误报告设置为停用状态,但在研发和测试阶段保持启用,以便及时发现和解决问题。

http://www.kler.cn/a/428545.html

相关文章:

  • 计算机组成原理(计算机系统3)--实验八:处理器结构拓展实验
  • AI守护煤矿安全生产:基于视频智能的煤矿管理系统架构解析
  • Flutter:carousel_slider 横向轮播图、垂直轮播公告栏实现
  • Python运算符
  • JDBC实验测试
  • Linux容器(初学了解)
  • 动态规划子序列问题系列一>最长递增子序列
  • 用Python开发“迷你井字棋”小游戏
  • find命令深度详解
  • 计算机视觉:学习指南
  • 【python 批量将PPT中各种东西保存为图片 没有水印】
  • 在 Spring Boot 中使用 JPA(Java Persistence API)进行数据库操作
  • Telnet不安全?如何配置使用更安全的STelnet远程登录华为AR1000V路由器?
  • docker修改并迁移存储至数据盘
  • C语言求斐波那契数(不考虑溢出)(递归+迭代)
  • mobi文件转成pdf
  • App自动化测试用例的录制与编写
  • 服务器被ping的风险,如何开启和禁止ping?
  • 国内有什么AI软件可供使用
  • k8s 之 StatefulSet
  • 力扣100题--移动零
  • C++打造局域网聊天室第四课: 动态启用或禁用窗口及MFC消息映射机制
  • QT 中 QString 转换为 Unicode 和 ASCII 的方法
  • 【JavaEE 初阶】⽹络编程套接字
  • 【Linux】Git
  • 运输层4——TCP格式(重点!)