AUTOSAR OS 按照功能职责可划分为8 大核心模块,各模块相互协作,共同实现实时操作系统的完整功能。这些模块在 AUTOSAR 规范中被明确定义,确保不同厂商的 OS 实现具备一致性和兼容性。以下会根据各模块进行详细说明:
任务管理模块(Task Management)
任务
Autosar Os中的任务有两种:基本任务和拓展任务。
基本任务(Basic Task)
- 特点:执行完后自动进入挂起态,不能等待事件(无 “等待态”)。
- 适用场景:简单的周期性任务(如 “LED 闪烁”“日志打印”)。
- 生命周期:激活 → 运行 → 终止(挂起)。
扩展任务(Extended Task)
- 特点:可通过
WaitEvent
进入等待态,事件触发后自动激活,适合复杂逻辑。 - 适用场景:需要等待外部信号的任务(如 “等待 CAN 报文接收后处理”)。
- 关键区别:拥有 “等待态”,可通过事件(Event)驱动状态转换。
Tsak和OS-Application的关系
OS-Application的定义:Os-Application(简称 “应用”)是 AUTOSAR OS 中最小的隔离单元,本质是一组相关资源的集合,包含:任务(如 “传感器采集任务”“控制逻辑任务”);中断服务程序(ISR,如 CAT2 中断);资源(如专用内存缓冲区、硬件接口);计数器、闹钟等时间资源。
Task必须从属于某个Os-Application,不能独立存在。
一个Os-Application可以包含多个Task任务(如 “自动驾驶应用” 包含 “环境感知任务”“决策任务”“控制任务”),这些任务共享该应用的资源(如内存区域、权限),但受限于应用的隔离边界。
Os-Application的分类
Os-Application又可分为可信和不可信。
二者区别如下:
可信os-app:可调用所有 OS 服务,可访问其他应用的资源,安全限制少
不可信os-app:禁止调用特权服务,仅能访问自身专属的内存区域,调用 OS 服务时需通过 “陷阱机制”(Trap)由内核代劳,防止越权操作。
当一个os-app是可信时,并且系统通过显式配置对其授予了跨应用访问权限时,它可以访问其他 Os-Application 的资源。
中断管理模块(Interrupt Management)
Autosar Os中断分为两类:一类中断和二类中断。
任何中断的优先级都比任务高
Category 1(CAT1):快速响应中断
核心特点:
执行时间极短(通常微秒级),仅做最基础的硬件操作(如读取寄存器、清除标志);
禁止调用任何 OS 服务(如ActivateTask、GetResource),不能依赖 OS 调度;
优先级最高,不可被任务或 CAT2 中断抢占。
适用场景:对实时性要求极高的硬件响应(如电机过流保护、电源故障)。
Category 2(CAT2):可调度中断
核心特点:
可执行稍复杂的逻辑(如数据缓存、触发任务激活);
允许调用部分 OS 服务(如ActivateTask、ClearPendingInterrupt);
优先级低于 CAT1,但高于任务,可被 CAT1 中断抢占。
时间管理模块(Time Management)
计数器(Counter):系统的 “时钟”
计数器是单调递增的整数变量,由硬件定时器驱动,按固定频率递增(如每 1ms 加 1),为系统提供时间基准。
关键特性
计数周期:两次递增的时间间隔(如 1ms),由硬件定时器决定,精度固定;
溢出处理:达到MaxAllowedValue后归零,可配置OverflowHook处理溢出事件;
可读性:应用可通过 API 读取当前值(如GetCounterValue)。
计数器分类
系统计数器:OS 核心计数器(如SystemCounter),为调度表、时序保护提供基准;
用户计数器:应用自定义计数器(如SensorCounter),用于特定功能的定时。
计数器与闹钟的关系
一对一 / 多对一:一个计数器可关联多个闹钟(如SensorCounter可绑定 “采集闹钟” 和 “校验闹钟”);
依赖关系:闹钟必须绑定到一个计数器,无法独立工作;
生命周期:计数器停止时,关联的闹钟也停止触发。
闹钟(Alarm):时间的 “触发器”
闹钟是基于计数器的定时触发器,当计数器达到预设值时,自动执行指定动作(如激活任务、设置事件)。