本规约规约 AUTOSAR 基础软件模块 OCU 驱动(Output Compare Unit Driver, OCU)的功能、API 与配置。OCU 驱动位于微控制器抽象层(MCAL),控制输出比较单元的比较事件以生成精确时序输出。
| 缩略语 | 描述 |
|---|---|
| OCU | Output Compare Unit(输出比较单元) |
| GPT | General Purpose Timer(通用定时器) |
| ICU | Input Capture Unit(输入捕获单元) |
| MCAL | Microcontroller Abstraction Layer(微控制器抽象层) |
| Threshold | 阈值(比较值) |
| Pin Action | 引脚动作(比较匹配时执行:翻转/置位/清零) |
| Pin State | 引脚状态(高/低) |
AUTOSAR_EXP_LayeredSoftwareArchitecture — 分层软件架构AUTOSAR_SRS_BSWGeneral — 基础软件通用需求AUTOSAR_SRS_OCUDriver — OCU 驱动需求AUTOSAR_SRS_GPTDriver — GPT 驱动需求OCU 驱动依赖 GPT 驱动作为定时器源。通道数与引脚动作依赖硬件支持。
OCU 驱动依赖 GPT 驱动(提供计数器源)、DET、Port(引脚配置)、EcuM(资源管理)。
OCU 驱动满足 SRS_Ocu_NNNNN 中的 12 条需求。SWS_Ocu_NNNNN 规范项 ID 约 200+ 条(编号范围 00001-91001)。
OCU 驱动允许以下预配置:
OCU 驱动提供:
| 错误码 | 含义 |
|---|---|
OCU_E_UNINIT | OCU 未初始化 |
OCU_E_ALREADY_INITIALIZED | 已初始化 |
OCU_E_PARAM_CHANNEL | 无效的通道 |
OCU_E_PARAM_VALUE | 无效的参数值 |
OCU_E_PARAM_THRESHOLD | 无效的阈值 |
OCU_E_BUSY | 通道忙 |
无。
无。
无。
无。
Std_ReturnType、Std_VersionInfoType、Std_ConfigType| 类型 | 描述 |
|---|---|
Ocu_ConfigType | OCU 抽象配置类型 |
Ocu_ChannelType | 通道 ID(uint8/16/32) |
Ocu_ValueType | 计数器/阈值值(uint16/32) |
Ocu_PinStateType | 引脚状态枚举(OCU_HIGH / OCU_LOW / OCU_TRISTATE) |
Ocu_PinActionType | 引脚动作枚举(OCU_SET_HIGH / OCU_SET_LOW / OCU_TOGGLE / OCU_DISABLE) |
| API | 签名 | 功能 |
|---|---|---|
Ocu_Init | void Ocu_Init(const Ocu_ConfigType* ConfigPtr) | 初始化 OCU |
Ocu_DeInit | void Ocu_DeInit(void) | 反初始化 OCU |
Ocu_StartChannel | void Ocu_StartChannel(Ocu_ChannelType Channel) | 启动通道 |
Ocu_StopChannel | void Ocu_StopChannel(Ocu_ChannelType Channel) | 停止通道 |
Ocu_SetPinState | void Ocu_SetPinState(Ocu_ChannelType Channel, Ocu_PinStateType PinState) | 设置引脚状态(高/低/高阻) |
Ocu_SetPinAction | void Ocu_SetPinAction(Ocu_ChannelType Channel, Ocu_PinActionType PinAction) | 设置引脚动作(比较匹配时) |
Ocu_GetCounter | Ocu_ValueType Ocu_GetCounter(Ocu_ChannelType Channel) | 读取当前计数器值 |
Ocu_SetAbsoluteThreshold | void Ocu_SetAbsoluteThreshold(Ocu_ChannelType Channel, Ocu_ValueType Value) | 设置绝对阈值 |
Ocu_SetRelativeThreshold | void Ocu_SetRelativeThreshold(Ocu_ChannelType Channel, Ocu_ValueType Value) | 设置相对阈值(相对于当前计数器) |
Ocu_DisableNotification | void Ocu_DisableNotification(Ocu_ChannelType Channel) | 禁用通知 |
Ocu_EnableNotification | void Ocu_EnableNotification(Ocu_ChannelType Channel) | 启用通知 |
Ocu_GetVersionInfo | void Ocu_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr) | 获取版本信息 |
Ocu_Notification_<Channel> | void Ocu_Notification_<Channel>(void) | 通知回调(应用实现) |
共 12 个 API 函数 + 1 个通知回调模板。
Ocu_SetAbsoluteThreshold(Channel, Value);Ocu_StartChannel(Channel) → 计数器开始计数;Ocu_StopChannel(Channel)。| 容器 | 描述 |
|---|---|
| Ocu | 根容器(开发错误检测、版本 API、多核支持) |
| OcuGeneral | 通用配置(通道数) |
| OcuChannel | 通道(默认状态/动作、引用 GPT 通道、通知回调) |
| OcuPublishedInformation | 发布信息 |
共 4 个 ECUC 容器,含 15+ 配置参数。
发布信息包括 OCU 模块版本、配置变体、通道数等。
校对轮次:L1 自动校对(2026-06-13)
OCU_E_UNINIT/ALREADY_INITIALIZED/PARAM_CHANNEL/PARAM_VALUE/PARAM_THRESHOLD/BUSY)完整翻译。