AMBA低功耗接口规范(Low Power Interface Spec)
1.简介
AMBA提供的低功耗接口,用于实现power控制功能。目前AMBA里面包含2种低功耗接口:
Q-Channel:实现简单的power控制,如上电,下电。
P-Channel:实现复杂的power控制,如全上电,半上电,1/4上电等。
ARM引入这2种低功耗接口是为了满足不同的应用场景下对power的控制。在一些场景下组件只有两种power状态,分别为power-up和power-down。因此,对这种组件的power控制只需要对其上电和断电,用Q-Channel即可实现。而在另外的场景下,组件拥有多种power状态,比如全上电,半上电,1/4上电等。因此,对这种组件的power控制就要复杂很多,不能简单的对其上电断电,还需要Q-Channel制。此时,用Q-Channel就不合适了,需要使用P-Channel。
2.Q-Channel
Q-Channel是从AXI的低功耗接口中演变过来,但是可以向后兼容。
Q-Channel通过独立于设备活动指示的握手机制来简化时钟域交叉。
2.1.接口

接口两侧分别为device端和power controller端(PMU)。device端是需要被电源控制的组件,比如core、外设等。PMU端,就是提供电源管理的组件。
在Q-Channel中,将device的power状态,分成了2种:
operational状态: device处于工作状态或上电状态
quiescent 状态:device处于静默状态或断电状态
接口信号说明如下:
| 信号 | 说明 | 补充 |
| QACTIVE | 作为device向PMU的power请求的提示信号。 高为上电请求,低为提示信号但不一定接受断电。 | 独立信号,与握手机制无关。 |
| QREQn | PMU向device发送power请求信号。 高为上电,低为断电。 | 请求状态有三种: 断电→上电 上电→保持 上电→断电 |
| QACCEPTn | device对PMU的power请求的接受信号。 高为上电接受,低为断电接受。 | 高表示device已上电,低表示device可(已)断电。 |
| QDENY | device对PMU的power请求的拒绝信号。 高为断电拒绝,低为上电拒绝。 | 高表示device处于busy状态,低表示device处于idle状态。 |
2.2.握手状态
对于Q-Channel的接口,定义了以下集中握手状态:
| 握手信号 | 握手状态 Interface State | 描述 Description | ||
| QREQn | QACCEPTn | QDENY | ||
| 0 | 0 | 0 | Q_STOPPED | device已进入quiescent状态。 在此唯一状态下,PMU不保证接口管理的任何时钟或电源的可用性。 |
| 1 | 0 | 0 | Q_EXIT | PMU保证已供电,device等待被上电的状态。 当device上电后,置位QACCEPTn高以进入Q_RUN态。 |
| 1 | 1 | 0 | Q_RUN | device处于上电且正常运行状态。 |
| 0 | 1 | 0 | Q_REQUEST | device处于上电且正常运行状态。 但当device空闲(idle)时被要求进入quiescent状态。 |
| 0 | 1 | 1 | Q_DENIED | device拒绝PMU断电请求且保持上电且正常运行状态。 PMU必须拉高QREQn。 |
| 1 | 1 | 1 | Q_CONTINUE | PMU在Q_DENIED状态后,将QREQn拉高后的状态。device处于上电且正常运行状态。 |
| x | 0 | 1 | Unused(illegal) | 不存在 |
下图是各个握手状态的切换:

握手信号规则如下:
•当QACCEPTn为高且QDENY为低时,QREQn只能从高转换为低。
•QREQn只能在以下任一情况下从低电平转换为高电平:
-QACCEPTn和QDENY均为低。
-QACCEPTn和QDENY均为高。
•当QREQn为低且QDENY为低时,QACCEPTn只能从高转换为低。
•当QREQn为高且QDENY为低时,QACCEPTn只能从低转换为高。
•当QREQn为高且QACCEPTn为高时,QDENY只能从高转换为低。
•当QREQn为低且QACCEPTn为高时,QDENY只能从低转换为高。
2.3.握手协议
2.3.1.device接受PMU的power请求
握手时序如下图:

在T1,QREQn和QACCEPTn为高,Q_Channel进入Q_RUN状态。
在T2,QREQn为低,PMU请求device进入断电状态,然后等待外设响应,此时Q_Channel进入Q_REQUEST状态。
在T3,QACCEPTn为低,表示device接收PMU的请求,将自己进入断电状态。此时Q_Channel进入Q_STOPPED状态。
在T4,QREQn为高,PMU请求device进入上电状态,然后等待外设响应。此时Q_Channel进入Q_EXIT状态。
在T5,QACCEPTn为高,表示device接收PMU的请求,将自己进入上电状态。此时Q_Channel进入Q_RUN状态。
2.3.2.device拒绝PMU的power请求
当外部PMU给device发送power请求,device可以拒绝该power请求。PMU收到device的拒绝响应后,应取消该power请求。

在T1,QREQn和QACCEPTn为高,Q_Channel进入Q_RUN状态。
在T2,QREQn为低,PMU请求device进入断电状态,然后等待外设响应,此时Q_Channel进入Q_REQUEST状态。
在T3,QDENY为高,表示device拒绝PMU的请求,自己保持上电状态。此时Q_Channel进入Q_DENIED状态。
在T4,PMU接收到device的拒绝响应,将QREQn拉高,PMU请求device进入上电状态,然后等待外设响应。此时Q_Channel进入Q_CONTINUE状态。
在T5,QDENY为低,表示device接收PMU的上电请求,将自己保持上电状态。此时Q_Channel进入Q_RUN状态。
2.4.复位操作
复位时,device必须:
同时驱动QACCEPTn和QDENY为LOW。
QACTIVE可重置LOW(低)或HIGH(高)。如果设备必须在退出复位时执行启动操作,则可以重置QACTIVE HIGH,否则建议将QACTIVE重置为LOW。
PMU可以通过以下任一方式解除设备复位:
QREQn LOW,接口处于Q_STOPPED状态。
QREQn HIGH,接口处于Q_EXIT状态,前提是满足时钟或电源保证。
当接口处于Q_STOPPED状态或控制器和设备同时复位时,控制器只能断言设备复位。这与在功率边界隔离所有信号LOW的建议一致。


2.5.QACTIVE
QACTIVE是提供给device向PMU发送power请求的信号,可以由多个来源的组合。如果为高,那么PMU要给自己上电,并且之后不能给自己断电。
QACTIVE和握手信号(QREQn,QACCEPTn,QDENY)是独立开的。
2.5.1.请求上电和请求断电
时序图如下:

T1时刻,device将QACTIVE拉高,向PMU发起退出断电请求。T2时刻,PMU将QREQn拉高,Q_Channel进入Q_EXIT状态。T3时刻,device拉高QACCEPTn,进入Q_RUN状态。
T4时刻,device将QACTIVE拉低,device向PMU发起进入断电请求。T5时刻,PMU将QREQn拉低,Q_Channel进入Q_REQUEST状态,在T6时刻,进入Q_STOPPED状态。
2.5.2.PMU不允许断电

T1时刻,device将QACTIVE拉高,向PMU发起上电请求。T2时刻,PMU将QREQn拉高,Q_Channel进入Q_EXIT状态,T3时刻,进入Q_RUN状态。之后,device处于上电状态。
T4时刻,PMU将QREQn拉低,PMU想让device进入断电状态,但是QACTIVE为高,表示device要一直处于上电状态。因此QACCEPTn持续保持高,Q_Channel一直维持在Q_REQUEST状态。device维持在上电状态。
T5时刻,因为之前QACTIVE拉低,device想进入断电状态,device将QACCEPTn拉低,响应PMU的断电请求,然后Q_Channel进入Q_STOPPED状态。device进入断点状态。
2.6.接口的同步
一般来说,device和PMU的时钟是异步时钟。因此需要一些同步化。下图是同步化的框图:

Q-Channel实现指导:
被使用的所有信号,都需要进行同步;
只有当Q_Channel进入Q_STOPPED状态时,才可以将时钟和power给关掉;
为了保证握手信号的正确性,QREQn,QACCEPTn,QDENY需要使用寄存器直接输出;
QACTIVE使用寄存器直接输出,或者是相关寄存器输出的组合输出。ARM强烈建议组合输出,使用或门。
2.7.与AXI低功耗接口的兼容


3.P-Channel(略)
相关文章:
AMBA低功耗接口规范(Low Power Interface Spec)
1.简介 AMBA提供的低功耗接口,用于实现power控制功能。目前AMBA里面包含2种低功耗接口: Q-Channel:实现简单的power控制,如上电,下电。 P-Channel:实现复杂的power控制,如全上电,半上…...
matlab-汽车四分之一半主动悬架模糊控制
1、内容简介汽车四分之一半主动悬架模糊控制651-可以交流、咨询、答疑2、内容说明半主动悬架汽车 1/4 动力学模型建立 本章主要对悬架类型进行简要介绍,并对其进行对比分析,提出半主动悬架的优越性,论述半主动悬架的工作原理,并对…...
【安全加密】通信加密算法介绍
加密常用于通信中,如战争中电台通讯有明码和密码,密码需要不断更换密码本;另外,商用软件也需要用到加密技术,如根据电脑的mac地址设置权限,防止软件被恶意传播。 文章目录一、介绍1. 单向散列/哈希算法2. 对…...
kubernetes教程 --组件详细介绍
组件详细介绍 NameSpace 在 Kubernetes 中,名字空间(Namespace) 提供一种机制,将同一集群中的资源划分为相互隔离的组。 同一名字空间内的资源名称要唯一,但跨名字空间时没有这个要求。 名字空间作用域仅针对带有名字…...
数字化系统使用率低的原因剖析
当“数字化变革”成为热门话题,当“数字化转型”作为主题频频出现在一个个大型会议中,我们知道数字化时代的确到来了。但是,根据Gartner的报告我们看到一个矛盾的现象——85%的企业数字化建设与应用并不理想、但对数字化系统的需求多年来持续…...
<<Java开发环境配置>>7-Apache Tomcat安装教程环境变量配置IDEA配置
一.Apache Tomcat简介: Apache是普通服务器,本身只支持html即普通网页。不仅可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。Apache只支持静态网页,但像php,cgi,jsp等动态网页就需要Tomc…...
互联网大厂测开面试记,二面被按地上血虐,所幸Offer已到手
在互联网做了几年之后,去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好,更重要的是,它是对你专业能力的背书,大厂工作背景多少会给你的简历增加几分竞争力。 如何备战面试的? 第一步:准备简历…...
网络管理之设备上线技术的发展现状和趋势
网络和网络设备无处不在 随着社会的发展和技术的进步,人类文明开始向信息时代演进,网络逐渐变成现代社会不可或缺的一部分,极大程度影响了人类的认知形式、思维方式与生活模式。从家庭网,到企业网;从无线网࿰…...
SQL67 返回固定价格的产品
描述有表Productsprod_idprod_nameprod_pricea0018sockets9.49a0019iphone13600b0018gucci t-shirts1000【问题】从 Products 表中检索产品 ID(prod_id)和产品名称(prod_name),只返回价格为 9.49 美元的产品。【示例结…...
webpack 开发环境的基本配置(webpack打包样式资源、html、图片、devserver、开发环境配置、以及其他资源)
A.打包样式资源 1. 创建文件 2. 下载安装 loader 包 npm i css-loader style-loader less-loader less -D 3. 修改配置文件 /*webpack.config.js webpack的配置文件作用: 指示 webpack 干哪些活(当你运行 webpack 指令时,会加载里面的配置ÿ…...
刷题记录:牛客NC14402求最大值
传送门:牛客 题目描述: 给出一个序列,你的任务是求每次操作之后序列中 (a[j]-a[i])/(j-i)【1<i<j<n】的最大值。 操作次数有Q次,每次操作需要将位子p处的数字变成y. 输入: 5 2 4 6 8 10 2 2 5 4…...
javaEE 初阶 — 传输层 TCP 协议 中的延迟应答与捎带应答
文章目录1. 延迟应答2. 捎带应答TCP 工作机制:确认应答机制 超时重传机制 连接管理机制 滑动窗口 流量控制与拥塞控制 1. 延迟应答 延时应答 也是提升效率的机制,也是在滑动窗口基础上搞点事情。 滑动窗口的关键是让窗口大小大一点,传输…...
STM32单片机初学8-SPI flash(W25Q128)数据读写
当使用单片机进行项目开发,涉及大量数据需要储存时(例如使用了屏幕作为显示设备,常常需要存储图片、动画等数据),单靠单片机内部的Flash往往是不够用的。 如STM32F103系列,内部Flash最多只能达到512KByte&a…...
MS-SQL创建查询排序语句总结
重新捡起枪杆子,学习N年没用过的MS-SQL,整理一些学习笔记记录。 一、创建、修改和删除表 在SQL中,表有如下规则: 每张表都有一个名字,通常称为表名或关系名。表名必须以字母开头,最大长度为 30 个字符。一…...
subprocess—Python多进程模块
subprocess—Python多进程模块 1.概述 这篇文章介绍并行运算中的subprocess模块,subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。 subprocess 它可以用来调用第三方工具(例如&#x…...
【APP渗透测试】 Android APP渗透测试技术实施以及工具使用(客户端服务端)
文章目录前言一、安全威胁分析二、主要风险项三、Android测试思维导图四、反编译工具五、Android客户端漏洞一、Jnaus漏洞漏洞二、数据备份配置风险漏洞漏洞三、Activity组件泄露漏洞漏洞四、BroadcastReceiver组件泄露漏洞漏洞五、允许模拟器Root环境登录漏洞漏洞六、未识别代…...
字符串匹配 - Overview
字符串匹配(String Matchiing)也称字符串搜索(String Searching)是字符串算法中重要的一种,是指从一个大字符串或文本中找到模式串出现的位置。字符串匹配概念字符串匹配问题的形式定义:文本(Text)是一个长度为 n 的数组 T[1..n]&…...
【IP课堂】Ip地址如何进行精准定位?
通过Ip地址定位,是目前网络上最常见的定位方式。当然,也是最简单的定位方式。其实方法大多都是雷同的,通过Ip定位,就目前网上公开的技术。如通过搜索关键词“定位,定位查询,Ip定位”等,只能查询…...
MySQL 临时表相关参数说明区别
MySQL 临时表参数innodb_temp_tablespaces_dir、innodb_temp_data_file_path、innodb_tmpdir、tmpdir 区分 解决方案 innodb_tmpdir: alter table生成中间表文件,innodb_tmpdir有指定效路径,优选选择innodb_tmpdir,没有则选择tm…...
第二章 变量和基本类型
1.string类型数据的另一种初始化方式 语法: string 变量名 (" 初始化内容 "); 2.C中的列表初始化 语法: 数据类型 变量名 { 变量初始化的值 } ; 数据类型 变量名 { 变量初始化的值 } ; 例: 3.引用常量 常量引…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
Linux安全加固:从攻防视角构建系统免疫
Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...
Python常用模块:time、os、shutil与flask初探
一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...
