本规约规约 AUTOSAR 基础软件模块 ADC 驱动(Analog-to-Digital Converter Driver, ADC)的功能、API 与配置。ADC 驱动位于微控制器抽象层(MCAL),初始化并控制内部 ADC 硬件单元。
ADC 驱动提供以下服务:
| 缩略语 | 描述 |
|---|---|
| ADC | Analog-to-Digital Converter(模数转换器) |
| ADC HW Unit | ADC 硬件单元(一个或多个通道) |
| Channel Group | 通道组(一组 ADC 通道) |
| Channel | 通道(单个 ADC 输入) |
| Conversion | 转换(一次模数转换) |
| One-Shot | 单次模式(转换一次后停止) |
| Continuous | 连续模式(连续转换) |
| Linear Access | 线性访问(结果存储在固定缓冲区) |
| Streaming Access | 流访问(连续覆盖结果缓冲区) |
| HW Trigger | Hardware Trigger(硬件触发) |
| SW Trigger | Software Trigger(软件触发) |
| DEM | Diagnostic Event Manager(诊断事件管理器) |
| DET | Default Error Tracer(默认错误追踪器) |
AUTOSAR_EXP_LayeredSoftwareArchitecture — 分层软件架构AUTOSAR_SRS_BSWGeneral — 基础软件通用需求AUTOSAR_SWS_BSWGeneral — 基础软件通用规范AUTOSAR_SRS_ADCDriver — ADC 驱动需求AUTOSAR_SRS_SPALGeneral — SPAL 通用需求ADC 驱动为基于硬件的 MCAL 驱动。硬件触发、电源状态管理、流访问等可选功能依赖硬件支持。
ADC 驱动依赖 EcuM(资源管理)、DEM(错误报告)、DET(开发错误追踪)、OS(中断管理)、Port(引脚配置)。
ADC 驱动满足 SRS_Adc_NNNNN 中的 20+ 条需求以及 RS_BRF_NNNNN 顶层需求。ADC 自身的 SWS_Adc_NNNNN 规范项 ID 约 300+ 条(详细列表见原文第 6/7/8/10 章;编号范围 00061-91001)。
ADC 驱动允许以下预配置:
ADC 驱动正常操作流程:
Adc_Init() 初始化 ADC 驱动;Adc_SetupResultBuffer() 设置流访问的结果缓冲区;Adc_StartGroupConversion(Group) 启动通道组转换;Adc_ReadGroup(Group, DataPtr) 读取最新转换结果;Adc_StopGroupConversion(Group) 停止通道组转换;Adc_DeInit() 反初始化。| 错误码 | 含义 |
|---|---|
ADC_E_UNINIT | ADC 未初始化 |
ADC_E_ALREADY_INITIALIZED | ADC 已初始化 |
ADC_E_PARAM_CHANNEL | 无效的通道 |
ADC_E_PARAM_GROUP | 无效的通道组 |
ADC_E_BUSY | 通道组忙 |
ADC_E_IDLE | 通道组空闲(不在运行) |
ADC_E_NOT_DISENGAGED | 硬件触发未禁用 |
ADC_E_BUFFER_UNINIT | 结果缓冲区未初始化 |
ADC_E_PARAM_POINTER | 无效的指针 |
ADC_E_REQ_PROCESSING | 请求处理中 |
无(ADC 不直接产生运行时错误)。
无。
无(ADC 不直接产生生产错误)。
无。
Std_ReturnType、Std_VersionInfoType、Std_ConfigType| 类型 | 描述 |
|---|---|
Adc_ConfigType | ADC 抽象配置类型 |
Adc_ChannelType | 通道 ID |
Adc_GroupType | 通道组 ID |
Adc_ValueType | ADC 结果值类型(uint8/16) |
Adc_GroupConvModeType | 转换模式枚举(ADC_CONV_MODE_ONESHOT / CONTINUOUS) |
Adc_GroupAccessModeType | 访问模式枚举(ADC_ACCESS_MODE_SINGLE / STREAMING) |
Adc_GroupStatusType | 组状态枚举(ADC_IDLE / BUSY / COMPLETED / STREAM_COMPLETED) |
Adc_PowerStateType | 电源状态枚举(FULL_POWER / LOW_POWER) |
| API | 签名 | 功能 |
|---|---|---|
Adc_Init | void Adc_Init(const Adc_ConfigType* ConfigPtr) | 初始化 ADC 驱动 |
Adc_DeInit | void Adc_DeInit(void) | 反初始化 ADC 驱动 |
Adc_SetupResultBuffer | Std_ReturnType Adc_SetupResultBuffer(Adc_GroupType Group, Adc_ValueType* DataBufferPtr, Adc_StreamNumSampleType StreamLength) | 设置流访问结果缓冲区 |
Adc_StartGroupConversion | void Adc_StartGroupConversion(Adc_GroupType Group) | 启动通道组转换 |
Adc_StopGroupConversion | void Adc_StopGroupConversion(Adc_GroupType Group) | 停止通道组转换 |
Adc_ReadGroup | Std_ReturnType Adc_ReadGroup(Adc_GroupType Group, Adc_ValueType* DataBufferPtr) | 读取最新转换结果 |
Adc_EnableHardwareTrigger | void Adc_EnableHardwareTrigger(Adc_GroupType Group) | 启用硬件触发 |
Adc_DisableHardwareTrigger | void Adc_DisableHardwareTrigger(Adc_GroupType Group) | 禁用硬件触发 |
Adc_EnableGroupNotification | void Adc_EnableGroupNotification(Adc_GroupType Group) | 启用组通知 |
Adc_DisableGroupNotification | void Adc_DisableGroupNotification(Adc_GroupType Group) | 禁用组通知 |
Adc_GetGroupStatus | Adc_GroupStatusType Adc_GetGroupStatus(Adc_GroupType Group) | 查询组状态 |
Adc_GetStreamLastPointer | Adc_StreamNumSampleType Adc_GetStreamLastPointer(Adc_GroupType Group, Adc_ValueType** PtrToSamplePtr) | 获取流访问最后指针 |
Adc_GetVersionInfo | void Adc_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr) | 获取版本信息 |
Adc_SetPowerState | Std_ReturnType Adc_SetPowerState(Adc_PowerStateType PowerState) | 设置电源状态 |
Adc_GetCurrentPowerState | Std_ReturnType Adc_GetCurrentPowerState(Adc_PowerStateType* CurrentPowerState) | 获取当前电源状态 |
Adc_GetTargetPowerState | Std_ReturnType Adc_GetTargetPowerState(Adc_PowerStateType* TargetPowerState) | 获取目标电源状态 |
Adc_PreparePowerState | Std_ReturnType Adc_PreparePowerState(Adc_PowerStateType PowerState) | 准备电源状态转换 |
Adc_Main_PowerTransitionManager | void Adc_Main_PowerTransitionManager(void) | 电源状态转换管理器(调度函数) |
共 18 个 API 函数。
| API | 签名 | 功能 |
|---|---|---|
Adc_Main_PowerTransitionManager | void Adc_Main_PowerTransitionManager(void) | 主函数(处理电源状态转换) |
Det_ReportError()(强制)Dem_SetEventStatus()(可选)Adc_StartGroupConversion() → ADC 转换 → Adc_ReadGroup() 读取;Adc_SetupResultBuffer() → Adc_StartGroupConversion() → 持续写入缓冲区 → Adc_GetStreamLastPointer();Adc_PreparePowerState() → Adc_Main_PowerTransitionManager() → Adc_SetPowerState()。| 容器 | 描述 |
|---|---|
| Adc | 根容器(开发错误检测、版本 API、多核支持等开关) |
| AdcGeneral | 通用配置(HW 单元数、通道数、优先级机制等) |
| AdcHwUnit | ADC HW 单元(时钟、参考电压、分辨率) |
| AdcChannel | 通道(采样时间、HW 单元引用) |
| AdcGroup | 通道组(通道列表、转换模式、访问模式、触发源、通知回调) |
| AdcGroupDef | 组默认值 |
| AdcPowerStateConfig | 电源状态配置 |
| AdcPublishedInformation | 发布信息 |
共 8 个 ECUC 容器(加 2 个发布容器),含 40+ 配置参数。
发布信息包括 ADC 模块版本、配置变体、HW 单元数、通道数、组数等。
校对轮次:L1 自动校对(2026-06-13)
ADC_E_UNINIT/ALREADY_INITIALIZED/PARAM_CHANNEL/PARAM_GROUP/BUSY/IDLE/NOT_DISENGAGED/BUFFER_UNINIT/PARAM_POINTER/REQ_PROCESSING)完整翻译。