低功耗接口
本章介绍进入和退出低功耗状态期间的 AXI 协议时钟控制接口。 它包含以下部分:
- 低功耗接口
- 低功耗时钟控制
12.1 关于低功耗接口
低功耗接口是针对两类不同外设的数据传输协议的可选扩展:
- 需要断电序列并且只有在进入低功耗状态后才能关闭时钟的外设。 这些外设需要来自系统时钟控制器的指示来确定何时启动掉电序列。
- 没有断电序列的外设,可以独立指示何时可以关闭其时钟。
12.2 低功耗时钟控制
低功耗时钟控制接口由以下信号组成:
- 来自外设的信号,指示何时可以启用或禁用其时钟
- 系统时钟控制器请求退出或进入低功耗状态的两个握手信号。
时钟控制接口中的主要信号是 CACTIVE。外设使用此信号来指示何时需要启用其时钟。外设置位 CACTIVE 以指示它需要时钟,并且系统时钟控制器必须立即启用时钟。外设复位 CACTIVE 以指示它不需要时钟。然后系统时钟控制器可以确定是启用还是禁用外设时钟。
可以随时启用或禁用其时钟的外设可以永久驱动 CACTIVE LOW。必须始终启用其时钟的外设必须永久驱动 CACTIVE HIGH。
这种简单的系统时钟控制器接口对于一些没有掉电或上电序列的外设来说已经足够了。
对于具有掉电或上电序列的更复杂的外设,只有在系统时钟控制器发出请求后才会进入低功耗状态。 AXI 协议提供双线请求/确认握手来支持此请求:
CSYSREQ 为了请求外设进入低功耗状态,系统时钟控制器将 CSYSREQ 信号驱动为低电平。 在正常操作期间,CSYSREQ 为高电平。
CSYSACK 外设使用 CSYSACK 信号来确认低功耗状态请求和退出低功耗状态。
CSYSREQ 和 CSYSACK 的关系如图 12-1 所示。
在图 12-1 中的序列开始时,对于正常时钟操作,CSYSREQ 和 CSYSACK 均为高电平。 在时间 T1,系统时钟控制器解除 CSYSREQ 置位,指示将外设置于低功耗状态的请求。 外设在时间 T2 时通过解除 CSYSACK 确认请求。 在 T3,系统时钟控制器置位 CSYSREQ 以指示退出低功耗状态,外设在 T4 置位 CSYSACK 以确认退出。(CSYREQ和CSYSACK为低时,外设进入低功耗)
CSYSREQ 和 CSYSACK 之间的这种关系是 AXI 协议的要求。
外设可以接受或拒绝来自系统时钟控制器的低功耗状态请求。 当外设通过解除 CSYSACK 置位确认请求时,CACTIVE 信号的电平指示接受或拒绝请求。
12.2.1 接受低功耗请求
图 12-2 显示了外设接受系统低功耗请求时的事件序列。
在图 12-2 中,当系统时钟控制器将 CSYSREQ 置为无效以请求外设进入低功耗状态时,该序列从 T1 开始。 在外设识别出请求后,它可以执行掉电功能并取消激活 CACTIVE。 然后外设在 T3 时取消声明 CSYSACK 以完成进入低功耗状态。
在 T4,系统时钟控制器通过置位 CSYSREQ 开始低功耗状态退出序列。 然后外设在 T5 置位 CACTIVE,并通过置位 CSYSACK 在 T6 完成退出序列。
12.2.2 拒绝低功耗请求
图 12-3 显示了外设拒绝系统低功耗请求时的事件序列。
在图 12-3 中,外设通过在确认低功耗请求时将 CACTIVE 保持为高电平来拒绝低功耗请求。 在那之后,系统时钟控制器必须通过置位 CSYSREQ 来完成低功耗请求握手,然后才能发起另一个请求。
12.2.3 退出低功耗状态
系统时钟控制器或外设都可以请求退出低功耗状态并恢复时钟。 根据定义,CACTIVE 和 CSYSREQ 在低功率状态期间均为低电平,驱动这两个信号之一为高电平会启动退出序列。
系统时钟控制器可以通过启用时钟并将 CSYSREQ 驱动为高电平来启动退出低功耗状态。 然后外设可以执行一个上电序列,在该序列中它驱动 CACTIVE HIGH。 然后它通过驱动 CSYSACK HIGH 完成退出。
外设可以通过驱动 CACTIVE HIGH 启动退出低功耗状态。 然后系统时钟控制器必须立即恢复时钟。 它还必须将 CSYSREQ 驱动为高电平以继续握手序列。 然后外设通过在退出低功耗状态时将 CSYSACK 驱动为高电平来完成序列。 外设可以在完成退出序列所需的多个周期内将 CSYSACK 保持为低电平。
12.2.4 时钟控制序列总结
图 12-4 显示了进入和退出低功耗状态的典型流程。
12.2.5 在低功耗域中组合外设
系统时钟控制器可以在同一个低功耗时钟域内组合许多不同的外设。 如果遵守以下规则,则可以将时钟域视为单个外设:
- 时钟域CACTIVE 信号是时钟域内所有CACTIVE 信号的逻辑或。 这意味着系统时钟控制器只能在所有外设指示可以禁用时钟时才能禁用时钟。
- 系统时钟控制器可以使用路由到时钟域内所有外设的单个CSYSREQ 信号。
- 时钟域 CSYSACK 信号生成如下:
- 当所有外设的最后一个下降沿出现时,CSYSACK 的下降沿出现
可以使用路由到时钟域内所有外设的单个CSYSREQ 信号。
- 当所有外设的最后一个下降沿出现时,CSYSACK 的下降沿出现
- 时钟域 CSYSACK 信号生成如下:
- 当所有外设的最后一个下降沿出现时,CSYSACK 的下降沿出现
- 当所有外设的最后一个上升沿出现时,CSYSACK 的上升沿出现