芯片AON和NC

在嵌入式开发中,AON(Always-On Domain,始终开启域) 指的是芯片或微控制器(MCU)中一个特殊的电源域或功能模块,它即使在系统进入低功耗模式时仍然保持运行。AON 的主要作用是维持基本的系统功能,例如:

AON 的主要特点

  1. 低功耗:AON 设计的目标是尽量降低功耗,以保证系统在待机或睡眠模式下仍能运行关键功能。
  2. 独立供电:通常,AON 由一个独立的电源域供电,不受其他高功耗模块(如 CPU、主存储器)的影响。
  3. 关键功能支持:即使主系统进入休眠,AON 也能维持某些关键功能,如:
    • RTC(Real-Time Clock,实时时钟) 计时
    • 低功耗传感器监控(如环境传感器或运动检测)
    • 低功耗唤醒逻辑(如定时器、GPIO 事件检测、外部中断等)
    • 电源管理(PMU),控制系统的唤醒和休眠状态

AON 典型应用场景

  1. 智能手表 / 可穿戴设备
    • 即使 MCU 进入深度睡眠模式,AON 仍可保持计时功能,并在设定的时间唤醒 MCU。
  2. 物联网(IoT)设备
    • 远程传感器节点可以在长时间待机期间仅保持 AON 域运行,一旦检测到环境变化或接收到唤醒信号,才唤醒主系统。
  3. 智能手机 / 低功耗芯片
    • 当手机熄屏进入待机模式,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_NORMALMT_DEVICE)。
    • 使用编译器指令(如__attribute__((section(".noncache")))或链接脚本将数据分配到NC区域。

示例对比

特性AONNC
核心目的维持低功耗状态下的基础功能确保内存访问的直接性与一致性
依赖硬件独立电源域、低功耗外设MMU配置、内存属性标记
典型应用RTC、唤醒控制器、低功耗传感器DMA缓冲区、外设寄存器、共享内存

总结

  • AON是嵌入式系统低功耗设计的基石,确保设备在休眠时仍能响应关键事件。
  • NC通过绕过缓存解决数据一致性与实时性问题,是外设交互和关键任务内存管理的必备配置。

理解这两个概念有助于优化嵌入式系统的功耗、实时性和可靠性,具体实现需参考芯片手册(如ARM Cortex-M/A系列文档)或RTOS(如FreeRTOS、Zephyr)的配置指南。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/965916.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

储能系统-系统架构

已更新系列文章包括104、61850、modbus 、单片机等,欢迎关注 IEC61850实现方案和测试-1-CSDN博客 快速了解104协议-CSDN博客 104调试工具2_104协议调试工具-CSDN博客 1 电池储能系统(BESS) 架构 电池储能系统主要包括、电池、pcs、本地控制…

TOTP实现Google Authenticator认证工具获取6位验证码

登录遇到Google认证怎么办? TOTP是什么?(Google Authenticator) TOTP(Time-based One-Time Password)是一种基于时间的一次性密码算法,主要用于双因素身份验证。其核心原理是通过共享密钥和时间同步生成动态密码,具体步骤如下: 共享密钥:服务端与客户端预先共享一个…

清理服务器/docker容器

清理服务器 服务器或docker容器清理空间。 清理conda环境 删除不用的conda虚拟环境: conda env remove --name python38 conda env remove --name python310清理临时目录:/tmp du -sh /tmp # 查看/tmp目录的大小/tmp 目录下的文件通常是可以直接删除…

Naive UI去掉n-select下拉框边框,去掉n-input输入框边框

<template><div><div style"margin-top:10px;width: 100%;"><dade-descriptions><tr><dade-descriptions-item label"代理名称"><dade-input placeholder"代理名称"></dade-input></dade-de…

【完整版】DeepSeek-R1大模型学习笔记(架构、训练、Infra)

文章目录 0 DeepSeek系列总览1 模型架构设计基本参数专家混合模型&#xff08;MoE&#xff09;[DeepSeek-V2提出, DeepSeek-V3改良]多头潜在注意力&#xff08;MLA&#xff09;[DeepSeek-V2提出]多token预测&#xff08;MTP&#xff09;[DeepSeek-V3提出] 2 DeepSeek-R1-Zero及…

如何使用 Python 和 SQLAlchemy 结合外键映射来获取其他表中的数据

在使用 Python 和 SQLAlchemy 时&#xff0c;结合外键映射可以让你在查询时轻松地获取其他表中的数据。SQLAlchemy 提供了丰富的 ORM&#xff08;对象关系映射&#xff09;功能&#xff0c;可以让你通过定义外键关系来查询并获取关联的数据。下面我会演示如何设置外键关系&…

Python爬虫:1药城店铺爬虫(完整代码)

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

游戏引擎学习第91天

黑板&#xff1a;澄清线性独立性 首先&#xff0c;提到线性独立时&#xff0c;之前讲解过的“最小”的概念实际上是在表达线性独立。对于二维坐标系来说&#xff0c;两个基向量是最小的&#xff0c;这两个向量是线性独立的。如果超过两个基向量&#xff0c;就会变得冗余&#…

学习率调整策略 | PyTorch 深度学习实战

前一篇文章&#xff0c;深度学习里面的而优化函数 Adam&#xff0c;SGD&#xff0c;动量法&#xff0c;AdaGrad 等 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 本篇文章内容来自于 强化学习必修课&#xff1a;引…

在 Flownex 中创建自定义工作液

在这篇博文中&#xff0c;我们将了解如何在 Flownex 中为流网添加和定义一种新的流体温度相关工作材料。 Flownex 物料管理界面 在 Flownex 中使用与温度相关的流体材料时&#xff0c;了解其特性与温度的关系非常重要。这种了解可确保准确预测各种热条件下的流体行为&#xff0…

记一次golang环境的变化

前两天编译打包了了个文件&#xff0c;把env的 goos 搞坏了 导致运行项目一直报错 先是这样 go: unsupported GOOS/GOARCH pair windows/amd64再是这样 /amd64supported GOOS/GOARCH pair linux咱就说&#xff0c;咱也是知道环境配置的有问题 &#xff08; go env GOOS &…

算法【Java】—— 动态规划之子序列问题

最长递增子序列 https://leetcode.cn/problems/longest-increasing-subsequence 状态表示&#xff1a;和之前的经验一样&#xff0c;dp[i] 表示 以 i 为结尾元素的所有递增子序列中最大长度是多少 状态转移方程推导&#xff1a;从 i 前面的元素开始寻找&#xff0c;当 nums[j…

ASP.NET Core标识框架Identity

目录 Authentication与Authorization 标识框架&#xff08;Identity&#xff09; Identity框架的使用 初始化 自定义属性 案例一&#xff1a;添加用户、角色 案例二&#xff1a;检查登录用户信息 案例三&#xff1a;实现密码的重置 步骤 Authentication与Authorizatio…

124,【8】buuctf web [极客大挑战 2019] Http

进入靶场 查看源码 点击 与url有关&#xff0c;抓包 over

windows下安装Open Web UI

windows下安装openwebui有三种方式,docker,pythonnode.js,整合包. 这里我选择的是第二种,非docker. 非Docker方式安装 1. 安装Python&#xff1a; 下载并安装Python 3.11&#xff0c;建议安装路径中不要包含中文字符&#xff0c;并勾选“Add python 3.11 to Path”选项。 安…

Mac 基于Ollama 本地部署DeepSeek离线模型

最近节日期间最火的除了《哪吒》就是deepseek了&#xff0c;毕竟又让西方各个层面都瑟瑟发抖的产品。DeepSeek凭借其强大的AI能力真的是在全球多个领域展现出强大的影响力。由于受到外部势力的恶意攻击倒是deepseek官方服务不稳定&#xff0c;国内其他厂家的适配版本也不是很稳…

解决aspose将Excel转成PDF中文变成方框的乱码问题

原文网址&#xff1a;解决aspose将Excel转成PDF中文变成方框的乱码问题_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决aspose将Excel转成PDF中文变成方框的乱码问题。 问题描述 用aspose将word、excel等转成PDF后&#xff0c;英文展示正常&#xff0c;但中文全部变成了…

Jupyter Notebook自动保存失败等问题的解决

一、未生成配置文件 需要在命令行中&#xff0c;执行下面的命令自动生成配置文件 jupyter notebook --generate-config 执行后会在 C:\Users\用户名\.jupyter目录中生成文件 jupyter_notebook_config.py 二、在网页端打开Jupyter Notebook后文件保存失败&#xff1b;运行代码…

【漫话机器学习系列】083.安斯库姆四重奏(Anscombe‘s Quartet)

安斯库姆四重奏&#xff08;Anscombes Quartet&#xff09; 1. 什么是安斯库姆四重奏&#xff1f; 安斯库姆四重奏&#xff08;Anscombes Quartet&#xff09;是一组由统计学家弗朗西斯安斯库姆&#xff08;Francis Anscombe&#xff09; 在 1973 年 提出的 四组数据集。它们…

Axure设计教程:动态排名图(中继器实现)

一、开篇 在Axure原型设计中&#xff0c;动态图表是展示数据和交互效果的重要元素。今天&#xff0c;我们将学习如何使用中继器来创建一个动态的排名图&#xff0c;该图表不仅支持自动轮播&#xff0c;还可以手动切换&#xff0c;极大地增强了用户交互体验。此教程旨在提供一个…