刘彦文清华大学出版社嵌入式系统原理及接口技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1 时钟与电源管理概述
6.1.1 时钟与电源管理概述
S3C2410A片内集成了时钟与电源管理模块,该 模块由三部分组成:时钟控制、USB控制和电 源控制。
时钟与电源管理有以下特点。
时钟与电源管理模块内有两个锁相环(Phase Locked Loop,PLL),一个称为主锁相环MPLL, 产生三种时钟信号,FCLK用于ARM920T; HCLK用于AHB总线设备和ARM920T;PCLK用于 APB总线设备。另一个称为USB锁相环UPLL, 产生的时钟信号UCLK(48MHz)用于USB。
6.3 电源管理
6.3.1 电源管理模式的转换
S3C2410A有4种电源管理模式,分别是 NORMAL、SLOW、IDLE和Power_OFF。不允许 在这4种模式中自由转换,合法的转换见图6.4。
图6.4
对于4种电源管理模式中的每一种,连接 S3C2410A中各模块的时钟或电源的状态,见表 6-6(P200)。
S3C2410A为了支持软件对功耗的管理,在 NORMAL模式,还可以通过对时钟控制寄存器 CLKCON设置不同的值,把不使用的外设或控制 器所连接的时钟信号切断,以节省功耗。
在IDLE模式,S3C2410A可以停止到ARM920T 的时钟。在Power_OFF模式,可以切断除唤醒 逻辑外的ARM920T和全部片内外设的电源,降 低系统的功耗。
另外,当OM[1:0]=11时,OM[3:2]被wenku.baidu.com作确定 测试模式。
6.2.3 锁相环
图6.1中有2个锁相环,MPLL和UPLL。它们的输 入信号,见表6-2,可以选择晶振或EXTCLK, 频率常为12MHz。MPLL输出信号Mpll的频率是 可以改变的,方法是通过在寄存器MPLLCON中 设置MDIV、PDIV和SDIV为不同的值而实现的。 在内核电源电压为2.0V时,MPLL输出信号Mpll 的频率最高为266MHz。UPLL输出信号Upll的频 率也可以调整,方法是通过在UPLL控制寄存器 UPLLCON中设置MDIV、PDIV和SDIV为不同的 值而实现的。
⒋ USB时钟控制
USB主接口和设备接口需要48MHz的时钟。 S3C2410A中UPLL能够产生48MHz的时钟。在 UPLLCON寄存器中相应的参数被设置后,UPLL 产生的48MHz的时钟作为UCLK,具体见表6-4。
⒌ 分频比
FCLK也称为主时钟,通过在时钟分频控制寄存 器CLKDIVN中对HDIVN1、HDIVN和PDIVN设置 不同的值,可以改变FCLK、HCLK、PCLK之间 频率的比值,具体见表6-5。
S3C2410A中,FCLK是主时钟,可以由软件调节 时钟分频比,产生不同频率的HCLK和PCLK,以 适应不同的应用方案,减少功耗。
6.1.3 时钟与电源管理用到的S3C2410A引脚信号
表6-1列出了部分S3C2410A的引脚信号及它们 的含义,它们是时钟与电源管理所用到的。另 外,将Reset相关引脚信号也一并放在这里介绍。
如果已知主锁相环MPLL输入Fin的频率以及 MDIV、PDIV和SDIV的值,输出Mpll的频率计算 见式6-1。
Mpll=(m×Fin) / (p×2S)
(式6-1)
式中m=MDIV+8,p=PDIV+2,s=SDIV。 Upll频率的计算方法与Mpll相同。
【例6.1】对MPLL,已知Fin=12MHz,MDIV=161, PDIV=3,SDIV=1,计算Mpll频率;对UPLL, 已知Fin=12MHz,MDIV=120,PDIV=2, SDIV=3,计算Upll频率。
⒉ 加电Reset
参见图6.1,加电Reset后,由于MPLL、UPLL还不稳定, 在软件将一个新的设置值写到MPLLCON寄存器以前, Fin被送到时钟控制逻辑,代替Mpll,直接作为FCLK。 因此即使用户在加电Reset后,不需要改变保留在 MPLLCON、UPLLCON寄存器中的缺省值,也应该通过 软件写相同的值到MPLLCON、UPLLCON寄存器,之后 经过自动插入锁定时间,MPLL的输出Mpll(而不是Fin) 经过时钟控制逻辑输出作为FCLK。FCLK的频率与加电 Reset后通过软件写到MPLLCON寄存器的设置值相对 应。同样,UPLL的输出频率也与加电Reset后通过软件 写到UPLLCON寄存器的设置值相对应。
在实际对MPLL设置MDIV、PDIV和SDIV参数时, 还要求满足以下关系:
FCLK频率 >= 3倍晶振频率或3倍EXTCLK频率
6.2.4 时钟控制逻辑
⒈ 时钟控制逻辑的功能
时钟控制逻辑确定被使用的时钟源。例如,是 使用MPLL的时钟Mpll呢,还是直接使用外部时 钟XTIpll或EXTCLK。另外,当MPLL被设置一个 新的频率值时,时钟控制逻辑依据锁定时间计 数寄存器LOCKTIME中设定的锁定时间参数,自 动插入锁定时间。在锁定时间,FCLK不输出时 钟脉冲,维持低电平,直到锁定时间结束,以 新的频率输出的信号稳定后,才输出FCLK。
在NORMAL模式,通过改变MPLLCON寄存器中 的MDIV、PDIV和SDIV(简称PMS)参数值,使 时钟FCLK变慢,依据LOCKTIME寄存器中 M_LTIME锁定时间参数,自动插入锁定时间的 图例见图6.3(P198)。
在加电Reset和从Power_OFF模式中唤醒时,时 钟控制逻辑也使用锁定时间参数,自动插入锁 定时间。
6.3.2 4种电源管理模式
⒈ NORMAL模式
在NORMAL模式,全部片内外设,以及包含电 源管理模块在内的基本模块,如ARM920T、总 线控制器、存储器控制器、中断控制器、DMA 和外部总线控制器等,全部可以操作,这时功 耗最大。这种模式允许用户通过软件,控制连 接每一个片内外设的时钟接通或切断,以减少 功耗。在时钟控制寄存器CLKCON中可以设置不 同的值,能够切断或接通某一个或某几个片内 外设的时钟。
Mpll = ((161+8)×12) / (5×21) = 202.80 (MHz)
Upll = ((120+8)×12) / (4×23) = 48.00 (MHz)
对于特殊功能寄存器MPLLCON和UPLLCON中的 MDIV、PDIV和SDIV,三星公司给出了一组推 荐值,使得输出频率可以选择45.00MHz, 50.70MHz,56.25MHz,……202.80MHz、 266.00MHz,以至最高达270.00MHz。表6-3是 从这组推荐值中选出的几个数据,供参考。
第6章 时钟与电源管理、 DMA与总线优先权
本章重点:
⑴ S3C2410A时钟与电源管理概述;时钟发生器; 电源管理;时钟与电源管理特殊功能寄存器。其 中包含了时钟与电源管理用到的引脚信号、电源 用到的引脚。
⑵ S3C2410A DMA概述,包括存储器到外设DMA 传输举例等;DMA操作,包括选择硬件DMA请求 或软件DMA请求,硬件DMA请求源的选择、有限 状态机、外部DMA请求/响应协议和DMA传输举 例等;DMA特殊功能寄存器;总线优先权。
动态频率调节需要有相应的调度程序,负责收 集系统当前运行速度、负荷,预测系统未来的 需求,以及计算调度花费的功耗与调度后节省 的功耗。
S3C2410A时钟与电源管理模块中的MPLL,在 外接时钟源频率已经固定的情况下(如 12MHz),通过软件设置特殊功能寄存器 MPLLCON中主、预、后分频控制为不同的值, 可以使锁相环在程序运行过程中,输出的时钟 频率发生改变。比如从266MHz变成150MHz, 或从150MHz变成200MHz,实现动态频率调节。
⒉ IDLE模式
如果将时钟控制寄存器CLKCON[2]设置为1, S3C2410A经过一定的延时,进入IDLE模式。
6.2 时钟发生器
6.2.1 时钟与电源管理结构框图 时钟与电源管理结构框图见图6.1。
6.2.2 时钟源的选择
系统启动时,在nRESET上升沿,连接到 S3C2410A模式控制引脚OM[3:2]的状态,被自 动锁存到机器内部。由OM[3:2]的状态,决定 S3C2410A使用的时钟源,详见表6-2。
6.1.2 功耗管理概述
基于CMOS电路芯片的功耗,由静态功耗与动态 功耗组成。静态功耗非常小,可以忽略不计。 门电路电容充放电的动态功耗是电路功耗的主 要部分。动态功耗通常与加在芯片上的电源电 压的平方成正比;与加在芯片上的时钟信号的 频率成正比。
动态频率调节(Dynamic Frequency Scaling) 是指,由频率调度程序负责在运行过程中针对 不同的运算需求,动态调节系统时钟的频率, 以达到降低功耗的目的。
⒊ 在NORMAL模式改变MPLLCON、UPLLCON中 的设置值
S3C2410A允许在NORMAL模式,由运行的程序, 改变MPLLCON、UPLLCON寄存器中MDIV、 PDIV和SDIV的设置值。改变之后,经过锁定时 间,输出时钟的频率被改变。新的频率值与新 写入MPLLCON、UPLLCON中的MDIV、PDIV和 SDIV参数值对应,见图6.3。
图6.2给出了OM[3:2]=00和11时,S3C2410A片 外时钟源的连接方法。图中,晶振频率范围为 10~20MHz,常用12MHz的;电容可用 15~22pF的。
参见图6.1,虽然在启动后MPLL就接通(ON状 态),但是MPLL的输出Mpll,在软件写一个合 法的设置值到MPLL控制寄存器MPLLCON以前, 不会作为系统时钟。在合法的值设置以前,从 外部晶振或EXTCLK来的时钟源将被直接地用作 系统的时钟。即使用户不需要改变MPLLCON寄 存器中的缺省值,用户也应该写相同的值到 MPLLCON寄存器。
Power_OFF模式:在这种模式下,除了唤醒逻 辑外,S3C2410A片内电源被切断。为了能够激 活Power_OFF模式,S3C2410A要求有两个单独 的电源供电,一个给唤醒逻辑,另一个给包含 CPU在内的内部逻辑供电,并且这1路电源应该 能够被控制,使得它的电源能够被接通或切断。 从Power_OFF模式中被唤醒,使用外部中断请 求EINT[15:0]或RTC报警中断。
MPLLCON、UPLLCON寄存器的值,在程序运行 中可以随时修改,用于实现动态调整时钟频率 的目的。通常UPLL输出时钟频率要求为48MHz, 一般不改变。
图6.1中MPLL和UPLL旁边的P[5:0]、M[7:0]和 S[1:0]与PDIV(预分频控制)、MDIV(主分频 控制)和SDIV(后分频控制)分别对应。
SLOW模式:SLOW模式不使用主锁相环, SLOW模式使用外部频率较低的时钟(XTIpll或 EXTCLK)经过分频后直接作为FCLK。在这种模 式下,功耗仅仅取决于外部时钟的频率。
IDLE模式:在这种模式下,只切断了到 ARM920T的时钟FCLK,到所有片内外设或控制 器的时钟信号仍然接通。计算功耗时应减去 ARM920T的功耗。任何到CPU的中断请求,能 够将CPU从IDLE模式中唤醒。
FCLK在S3C2410A内核供电电源为2.0V时,最 高频率为266MHz;内核供电电源为1.8V时,最 高频率为200MHz。
电源管理有4种模式,分别是NORMAL、SLOW、 IDLE和Power_OFF。
NORMAL模式:在这种模式下,只允许用户通 过软件控制片内外设的时钟信号接通或切断。 例如,UART2如果不使用,可以通过软件切断 它的时钟信号,以减少功耗。
用于USB的时钟频率,即UPLL的输出,通常使 用48MHz,不改变。
虽然S3C2410A在内核电源为2.0V时,MPLL产 生的时钟频率最高为266MHz,但是对于某些应 用场合,如果事先能够确定它的工作频率,比 如100MHz已经满足系统要求,那么在初始化阶 段,通过设定锁相环对应的参数,可以使其启 动后就工作在较低的频率。