在嵌入式开发中,AON(Always-On Domain,始终开启域) 指的是芯片或微控制器(MCU)中一个特殊的电源域或功能模块,它即使在系统进入低功耗模式时仍然保持运行。AON 的主要作用是维持基本的系统功能,例如:
AON 的主要特点
- 低功耗:AON 设计的目标是尽量降低功耗,以保证系统在待机或睡眠模式下仍能运行关键功能。
- 独立供电:通常,AON 由一个独立的电源域供电,不受其他高功耗模块(如 CPU、主存储器)的影响。
- 关键功能支持:即使主系统进入休眠,AON 也能维持某些关键功能,如:
- RTC(Real-Time Clock,实时时钟) 计时
- 低功耗传感器监控(如环境传感器或运动检测)
- 低功耗唤醒逻辑(如定时器、GPIO 事件检测、外部中断等)
- 电源管理(PMU),控制系统的唤醒和休眠状态
AON 典型应用场景
- 智能手表 / 可穿戴设备
- 即使 MCU 进入深度睡眠模式,AON 仍可保持计时功能,并在设定的时间唤醒 MCU。
- 物联网(IoT)设备
- 远程传感器节点可以在长时间待机期间仅保持 AON 域运行,一旦检测到环境变化或接收到唤醒信号,才唤醒主系统。
- 智能手机 / 低功耗芯片
- 当手机熄屏进入待机模式,AON 仍能保持基本的后台任务,如待机唤醒、按钮检测等。
AON 在芯片架构中的体现
- AON 寄存器(AON Registers):专门存储一些系统在低功耗模式下需要保持的数据。
- AON SRAM:部分芯片会设计一块 AON 低功耗 SRAM,用于存放关键数据,避免频繁访问高功耗存储器。
- AON 电源域(AON Power Domain):独立的电源管理模块,与主系统电源域分开。
示例
假设一款嵌入式芯片有一个 AON 模块,其中包含:
- AON RTC:用于维持时间计数
- AON GPIO:用于检测按键按下并触发系统唤醒
- AON PMU:用于控制整个芯片的电源状态
当设备进入深度睡眠模式时,除了 AON 之外,其他模块都被关闭。当 AON GPIO 检测到按键按下,或者 AON RTC 触发定时器超时,它就会发出唤醒信号,使整个芯片恢复正常工作。
总结
AON(Always-On Domain)是嵌入式系统中一个低功耗但始终保持工作的电源域,主要用于维持基本功能,如 RTC 计时、外部事件检测、低功耗唤醒等。它在低功耗系统(如 IoT、可穿戴设备、智能手机等)中至关重要,可以有效延长设备的电池寿命。
在嵌入式系统中,AON(Always On Domain)和NC(None Cache)是两个关键概念,分别用于电源管理和内存访问优化,以下是详细解答:
1. AON(Always On Domain)
-
定义与作用:
AON是嵌入式系统中一个始终保持供电的独立电源域,即使在设备进入低功耗模式(如睡眠或关机状态)时,AON区域仍持续运行。其核心目的是维持关键功能,例如:- 实时时钟(RTC)和定时器
- 中断控制器(用于唤醒主系统)
- 低功耗传感器(如加速度计)
- 部分存储单元(如保留内存)
-
典型应用场景:
- 设备唤醒:通过AON中的中断控制器或传感器检测外部事件(如按键、网络数据),唤醒主处理器。
- 低功耗设计:主处理器关闭后,AON处理基础任务以降低整体功耗,常见于物联网设备、可穿戴设备。
-
硬件实现:
AON通常由独立电源供电,与主系统电源隔离,并通过专用低功耗外设和内存实现。
2. NC(Non-Cacheable 或 None Cache)
-
定义与作用:
NC指内存区域被标记为不可缓存,强制CPU或外设直接访问物理内存,绕过缓存。其主要用途包括:- 避免缓存一致性问题:
当外设(如DMA)直接读写内存时,缓存可能与实际内存数据不一致,NC确保数据直接访问,防止数据错误。 - 实时性要求:
实时系统需要确定性的访问延迟,绕过缓存可消除缓存未命中(Cache Miss)带来的不确定性。 - 外设寄存器访问:
外设寄存器通常需直接读写,缓存可能导致副作用(如重复写入)。
- 避免缓存一致性问题:
-
典型应用场景:
- DMA缓冲区:标记为NC的内存供DMA与外设传输数据,避免CPU缓存干扰。
- 共享内存:多核或协处理器共享的内存区域需NC属性以保证一致性。
- 关键代码/数据:实时任务代码或中断服务程序(ISR)可能使用NC内存以确保执行时间可预测。
-
实现方式:
- 通过MMU(内存管理单元)配置内存区域的缓存属性(如ARM中的
MT_NORMAL
与MT_DEVICE
)。 - 使用编译器指令(如
__attribute__((section(".noncache"))
)或链接脚本将数据分配到NC区域。
- 通过MMU(内存管理单元)配置内存区域的缓存属性(如ARM中的
示例对比
特性 | AON | NC |
---|---|---|
核心目的 | 维持低功耗状态下的基础功能 | 确保内存访问的直接性与一致性 |
依赖硬件 | 独立电源域、低功耗外设 | MMU配置、内存属性标记 |
典型应用 | RTC、唤醒控制器、低功耗传感器 | DMA缓冲区、外设寄存器、共享内存 |
总结
- AON是嵌入式系统低功耗设计的基石,确保设备在休眠时仍能响应关键事件。
- NC通过绕过缓存解决数据一致性与实时性问题,是外设交互和关键任务内存管理的必备配置。
理解这两个概念有助于优化嵌入式系统的功耗、实时性和可靠性,具体实现需参考芯片手册(如ARM Cortex-M/A系列文档)或RTOS(如FreeRTOS、Zephyr)的配置指南。