您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 刘彦文清华大学嵌入式系统原理及接口技术
第6章时钟与电源管理、DMA与总线优先权本章重点:⑴S3C2410A时钟与电源管理概述;时钟发生器;电源管理;时钟与电源管理特殊功能寄存器。其中包含了时钟与电源管理用到的引脚信号、电源用到的引脚。⑵S3C2410ADMA概述,包括存储器到外设DMA传输举例等;DMA操作,包括选择硬件DMA请求或软件DMA请求,硬件DMA请求源的选择、有限状态机、外部DMA请求/响应协议和DMA传输举例等;DMA特殊功能寄存器;总线优先权。6.1时钟与电源管理概述6.1.1时钟与电源管理概述S3C2410A片内集成了时钟与电源管理模块,该模块由三部分组成:时钟控制、USB控制和电源控制。时钟与电源管理有以下特点。时钟与电源管理模块内有两个锁相环(PhaseLockedLoop,PLL),一个称为主锁相环MPLL,产生三种时钟信号,FCLK用于ARM920T;HCLK用于AHB总线设备和ARM920T;PCLK用于APB总线设备。另一个称为USB锁相环UPLL,产生的时钟信号UCLK(48MHz)用于USB。FCLK在S3C2410A内核供电电源为2.0V时,最高频率为266MHz;内核供电电源为1.8V时,最高频率为200MHz。电源管理有4种模式,分别是NORMAL、SLOW、IDLE和Power_OFF。NORMAL模式:在这种模式下,只允许用户通过软件控制片内外设的时钟信号接通或切断。例如,UART2如果不使用,可以通过软件切断它的时钟信号,以减少功耗。SLOW模式:SLOW模式不使用主锁相环,SLOW模式使用外部频率较低的时钟(XTIpll或EXTCLK)经过分频后直接作为FCLK。在这种模式下,功耗仅仅取决于外部时钟的频率。IDLE模式:在这种模式下,只切断了到ARM920T的时钟FCLK,到所有片内外设或控制器的时钟信号仍然接通。计算功耗时应减去ARM920T的功耗。任何到CPU的中断请求,能够将CPU从IDLE模式中唤醒。Power_OFF模式:在这种模式下,除了唤醒逻辑外,S3C2410A片内电源被切断。为了能够激活Power_OFF模式,S3C2410A要求有两个单独的电源供电,一个给唤醒逻辑,另一个给包含CPU在内的内部逻辑供电,并且这1路电源应该能够被控制,使得它的电源能够被接通或切断。从Power_OFF模式中被唤醒,使用外部中断请求EINT[15:0]或RTC报警中断。6.1.2功耗管理概述基于CMOS电路芯片的功耗,由静态功耗与动态功耗组成。静态功耗非常小,可以忽略不计。门电路电容充放电的动态功耗是电路功耗的主要部分。动态功耗通常与加在芯片上的电源电压的平方成正比;与加在芯片上的时钟信号的频率成正比。动态频率调节(DynamicFrequencyScaling)是指,由频率调度程序负责在运行过程中针对不同的运算需求,动态调节系统时钟的频率,以达到降低功耗的目的。动态频率调节需要有相应的调度程序,负责收集系统当前运行速度、负荷,预测系统未来的需求,以及计算调度花费的功耗与调度后节省的功耗。S3C2410A时钟与电源管理模块中的MPLL,在外接时钟源频率已经固定的情况下(如12MHz),通过软件设置特殊功能寄存器MPLLCON中主、预、后分频控制为不同的值,可以使锁相环在程序运行过程中,输出的时钟频率发生改变。比如从266MHz变成150MHz,或从150MHz变成200MHz,实现动态频率调节。用于USB的时钟频率,即UPLL的输出,通常使用48MHz,不改变。虽然S3C2410A在内核电源为2.0V时,MPLL产生的时钟频率最高为266MHz,但是对于某些应用场合,如果事先能够确定它的工作频率,比如100MHz已经满足系统要求,那么在初始化阶段,通过设定锁相环对应的参数,可以使其启动后就工作在较低的频率。S3C2410A为了支持软件对功耗的管理,在NORMAL模式,还可以通过对时钟控制寄存器CLKCON设置不同的值,把不使用的外设或控制器所连接的时钟信号切断,以节省功耗。在IDLE模式,S3C2410A可以停止到ARM920T的时钟。在Power_OFF模式,可以切断除唤醒逻辑外的ARM920T和全部片内外设的电源,降低系统的功耗。S3C2410A中,FCLK是主时钟,可以由软件调节时钟分频比,产生不同频率的HCLK和PCLK,以适应不同的应用方案,减少功耗。6.1.3时钟与电源管理用到的S3C2410A引脚信号表6-1列出了部分S3C2410A的引脚信号及它们的含义,它们是时钟与电源管理所用到的。另外,将Reset相关引脚信号也一并放在这里介绍。6.2时钟发生器6.2.1时钟与电源管理结构框图时钟与电源管理结构框图见图6.1。6.2.2时钟源的选择系统启动时,在nRESET上升沿,连接到S3C2410A模式控制引脚OM[3:2]的状态,被自动锁存到机器内部。由OM[3:2]的状态,决定S3C2410A使用的时钟源,详见表6-2。图6.2给出了OM[3:2]=00和11时,S3C2410A片外时钟源的连接方法。图中,晶振频率范围为10~20MHz,常用12MHz的;电容可用15~22pF的。参见图6.1,虽然在启动后MPLL就接通(ON状态),但是MPLL的输出Mpll,在软件写一个合法的设置值到MPLL控制寄存器MPLLCON以前,不会作为系统时钟。在合法的值设置以前,从外部晶振或EXTCLK来的时钟源将被直接地用作系统的时钟。即使用户不需要改变MPLLCON寄存器中的缺省值,用户也应该写相同的值到MPLLCON寄存器。另外,当OM[1:0]=11时,OM[3:2]被用作确定测试模式。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为不同的值而实现的。MPLLCON、UPLLCON寄存器的值,在程序运行中可以随时修改,用于实现动态调整时钟频率的目的。通常UPLL输出时钟频率要求为48MHz,一般不改变。图6.1中MPLL和UPLL旁边的P[5:0]、M[7:0]和S[1:0]与PDIV(预分频控制)、MDIV(主分频控制)和SDIV(后分频控制)分别对应。如果已知主锁相环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频率。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是从这组推荐值中选出的几个数据,供参考。在实际对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模式中唤醒时,时钟控制逻辑也使用锁定时间参数,自动插入锁定时间。⒉加电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寄存器的设置值相对应。⒊在NORMAL模式改变MPLLCON、UPLLCON中的设置值S3C2410A允许在NORMAL模式,由运行的程序,改变MPLLCON、UPLLCON寄存器中MDIV、PDIV和SDIV的设置值。改变之后,经过锁定时间,输出时钟的频率被改变。新的频率值与新写入MPLLCON、UPLLCON中的MDIV、PDIV和SDIV参数值对应,见图6.3。⒋USB时钟控制USB主接口和设备接口需要48MHz的时钟。S3C2410A中UPLL能够产生48MHz的时钟。在UPLLCON寄存器中相应的参数被设置后,UPLL产生的48MHz的时钟作为UCLK,具体见表6-4。⒌分频比FCLK也称为主时钟,通过在时钟分频控制寄存器CLKDIVN中对HDIVN1、HDIVN和PDIVN设置不同的值,可以改变FCLK、HCLK、PCLK之间频率的比值,具体见表6-5。6.3电源管理6.3.1电源管理模式的转换S3C2410A有4种电源管理模式,分别是NORMAL、SLOW、IDLE和Power_OFF。不允许在这4种模式中自由转换,合法的转换见图6.4。图6.4对于4种电源管理模式中的每一种,连接S3C2410A中各模块的时钟或电源的状态,见表6-6(P200)。6.3.24种电源管理模式⒈NORMAL模式在NORMAL模式,全部片内外设,以及包含电源管理模块在内的基本模块,如ARM920T、总线控制器、存储器控制器、中断控制器、DMA和外部总线控制器等,全部可以操作,这时功耗最大。这种模式允许用户通过软件,控制连接每一个片内外设的时钟接通或切断,以减少功耗。在时钟控制寄存器CLKCON中可以设置不同的值,能够切断或接通某一个或某几个片内外设的时钟。⒉IDLE模式如果将时钟控制寄存器CLKCON[2]设置为1,S3C2410A经过一定的延时,进入IDLE模式。在IDLE模式,到ARM920T的时钟FCLK被停止。但是到总线控制器、存储器控制器、中断控制器和电源管理模块的时钟仍接通;到片内外设的时钟仍接通。在IDLE模式,计算功耗时应减去ARM920T的功耗。当EINT[23:0]或RTC报警中断或其他中断激活时,退出IDLE模式。⒊SLOW模式SLOW模式是一种非锁相环模式。在SLOW模式,由于使用了比较慢的时钟,能够减少S3C2410A的功耗。在SLOW模式,MPLL应该被切断,计算功耗时应减去MPLL的功耗。虽然UPLL也可以被切断,但是
本文标题:刘彦文清华大学嵌入式系统原理及接口技术
链接地址:https://www.777doc.com/doc-2644173 .html