版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 时钟与电源管理、 DMA与总线优先权本章重点本章重点:功耗管理、 S3C2410A时钟与电源管理概述;时钟管理;电源管理;时钟与电源管理特殊功能寄存器。其中包含了时钟与电源管理用到的引脚信号、电源用到的引脚。 DMA基础、S3C2410A DMA概述,包括存储器到外设DMA传输举例等;DMA操作,包括选择硬件DMA请求或软件DMA请求,硬件DMA请求源的选择、有限状态机、外部DMA请求/响应协议和DMA传输举例等;DMA特殊功能寄存器;测试举例;总线优先权。4.1 功耗管理、时钟与电源管理概述4.1.1 微处理器功耗管理基础 对微处理器的功耗管理,通常是通过对时钟与电源进行管理来实现的
2、。 通常嵌入式微处理器通过软件设置某些特殊功能寄存器的值,能够对微处理器的功耗进行管理。因此针对微处理器的不同应用方案,可以有不同的功耗管理方案。 降低功耗一方面可以降低电池的能量消耗,另一方面可以降低微处理器工作过程中产生的热量,降低芯片温度。 电路模块中的功耗电路模块中的功耗 微处理器中CMOS电路模块的功耗与三个因素有关:加在电路模块上的电压、电路开关(切换)的频率、泄漏电流,其中前两项为主要因素。 电压 功耗与加在电路模块上的电压的平方成正比,例如同样的电路模块,在5V电压、3.3V电压下都可以工作,那么选择在3.3V下工作,功耗可以降低52/32=2.29。 开关频率 功耗与加在电路
3、模块上的开关频率成正比,例如同样的电路模块,可以工作在50MHz、25MHz,那么在25MHz下工作,功耗可以降低50/25=2。 泄漏电流 泄漏电流是指CMOS电路不是处于开关(切换)状态所流过的电流。CMOS泄漏电流对功耗影响比较小,消除泄漏电流的唯一方法是断开电路模块的供电电源。 降低功耗的几种方法降低功耗的几种方法 电压 微处理器在设计阶段已经考虑到在满足其所需性能的条件下,采用新技术尽可能降低其工作电压。 另外,微处理器中不同的电路模块如果工作电压不同,则使用不同的引脚分别供电。 例如,S3C44B0X芯片,给内核ARM7TDMI使用2.5V供电,I/O使用3.3V供电。 S3C24
4、10A分为两种型号,一种型号的ARM920T内核使用1.8V电源,另一种型号的ARM920T内核使用2.0V。另外,S3C2410A微处理器内部存储器与I/O使用3.3V电源,使用了与内核不同的引脚分别供电。 开关频率 开关频率也就是加在电路模块上的时钟信号频率,通过软件对S3C2410A内部某些特殊功能寄存器设置不同的值,可以分别改变到ARM920T内核的时钟频率、到不同外设的时钟频率;另外由于S3C2410A芯片内部有的电路模块可能在某些应用方案中不被使用,可以分别切断到这些电路模块的时钟信号。 泄漏电流 S3C2410A由软件对某些特殊功能寄存器设置不同的值,可以实现断开对S3C2410
5、A芯片的供电电源;需要恢复供电时,由外部中断或报警信号等事件进行唤醒,恢复供电。S3C2410A芯片内部有一个单独供电的唤醒逻辑,实现唤醒功能。 动态频率调节动态频率调节 S3C2410A支持在程序运行期间,由软件设置某些特殊功能寄存器的值,改变送往各电路模块的时钟频率。 4.1.2 时钟与电源管理概述 S3C2410A片内集成了时钟与电源管理模块,该模块由三部分组成:时钟控制、USB控制和电源控制。 时钟与电源管理有以下特点。(1) 时钟与电源管理模块内有两个锁相环(Phase Locked Loop,PLL),一个称为主锁相环MPLL,产生三种时钟信号,FCLK用于ARM920T;HCLK
6、用于AHB总线设备和ARM920T;PCLK用于APB总线设备。另一个称为USB锁相环UPLL,产生的时钟信号UCLK(48MHz)用于USB。(2) FCLK在S3C2410A内核供电电源为2.0V时,最高频率为266MHz;内核供电电源为1.8V时,最高频率为200MHz。(3)电源管理有4种模式,分别是NORMAL、SLOW、IDLE和Power_OFF。lNORMAL模式:在这种模式下,只允许用户通过软件控制片内外设的时钟信号接通或切断。例如,UART2如果不使用,可以通过软件切断它的时钟信号,以减少功耗。lSLOW模式:SLOW模式不使用主锁相环,SLOW模式使用外部频率较低的时钟(
7、XTIpll或EXTCLK)经过分频后直接作为FCLK。在这种模式下,功耗仅仅取决于外部时钟的频率。lIDLE模式:在这种模式下,只切断了到ARM920T的时钟FCLK,到所有片内外设或控制器的时钟信号仍然接通。计算功耗时应减去ARM920T的功耗。任何到CPU的中断请求,能够将CPU从IDLE模式中唤醒。lPower_OFF模式:在这种模式下,除了唤醒逻辑外,S3C2410A片内电源被切断。为了能够激活Power_OFF模式,S3C2410A要求有两个单独的电源供电,一个给唤醒逻辑,另一个给包含CPU在内的内部逻辑供电,并且这1路电源应该能够被控制,使得它的电源能够被接通或切断。从Power
8、_OFF模式中被唤醒,使用外部中断请求EINT15:0或RTC报警中断。4.1.3 时钟与电源管理用到的S3C2410A引脚信号 表4-1(p97)列出了部分S3C2410A的引脚信号及它们的含义,它们是时钟与电源管理所用到的。另外,将Reset相关引脚信号也一并放在这里介绍。4.2 时钟管理4.2.1 时钟与电源管理结构框图 时钟与电源管理结构框图见图4.1(p98)。4.2.2 片外时钟源的选择 系统启动时,在nRESET上升沿,连接到S3C2410A模式控制引脚OM3:2的状态,被自动锁存到机器内部。由OM3:2的状态,决定S3C2410A使用的时钟源,详见表4-2(p99)。 图4.2
9、给出了OM3:2=00和11时,S3C2410A片外时钟源的连接方法。图中,晶振频率范围为1020MHz,常用12MHz的;电容可用1522pF的。 参见图4.1,虽然在启动后MPLL就接通(ON状态),但是MPLL的输出Mpll,在软件写一个合法的设置值到MPLL控制寄存器MPLLCON以前,不会作为系统时钟。在合法的值设置以前,从外部晶振或EXTCLK来的时钟源将被直接地用作系统的时钟。即使用户不需要改变MPLLCON寄存器中的缺省值,用户也应该写相同的值到MPLLCON寄存器。 另外,当OM1:0=11时,OM3:2被用作确定测试模式。 4.2.3 锁相环 图4.1中有2个锁相环,MPL
10、L和UPLL。它们的输入信号,见表4-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,一般不改变。 图4
11、.1中MPLL和UPLL旁边的P5:0、M7:0和S1:0与PDIV(预分频控制)、MDIV(主分频控制)和SDIV(后分频控制)分别对应。 如果已知主锁相环MPLL输入Fin的频率以及MDIV、PDIV和SDIV的值,输出Mpll的频率计算见式4-1。 Mpll=(mFin) / (p2S) (式4-1) 式中m=MDIV+8,p=PDIV+2,s=SDIV。 Upll频率的计算方法与Mpll相同。【例4.1】对MPLL,已知Fin=12MHz,MDIV=161,PDIV=3,SDIV=1,计算Mpll频率; 对UPLL,已知Fin=12MHz,MDIV=120,PDIV=2,SDIV=3,
12、计算Upll频率。 Mpll = (161+8)12) / (521) = 202.80 (MHz) Upll = (120+8)12) / (423) = 48.00 (MHz) 对于特殊功能寄存器MPLLCON和UPLLCON中的MDIV、PDIV和SDIV,三星公司给出了一组推荐值,使得输出频率可以选择45.00MHz,50.70MHz,56.25MHz,202.80MHz、266.00MHz,以至最高达270.00MHz。 表4-3(p100)是从这组推荐值中选出的几个数据,供参考。 在实际对MPLL设置MDIV、PDIV和SDIV参数时,还要求满足以下关系: FCLK频率 = 3倍晶
13、振频率或3倍EXTCLK频率 4.2.4 时钟控制逻辑 时钟控制逻辑的功能 时钟控制逻辑确定被使用的时钟源。例如,是使用MPLL的时钟Mpll呢,还是直接使用外部时钟XTIpll或EXTCLK。另外,当MPLL被设置一个新的频率值时,时钟控制逻辑依据锁定时间计数寄存器LOCKTIME中设定的锁定时间参数,自动插入锁定时间。在锁定时间,FCLK不输出时钟脉冲,维持低电平,直到锁定时间结束,以新的频率输出的信号稳定后,才输出FCLK。 在NORMAL模式,通过改变MPLLCON寄存器中的MDIV、PDIV和SDIV(简称PMS)参数值,使时钟FCLK变慢,依据LOCKTIME寄存器中M_LTIME
14、锁定时间参数,自动插入锁定时间的图例见图4.3。 在加电Reset和从Power_OFF模式中唤醒时,时钟控制逻辑也使用锁定时间参数,自动插入锁定时间。 加电Reset 参见图4.1,加电Reset后,由于MPLL、UPLL还不稳定,在软件将一个新的设置值写到MPLLCON寄存器以前,Fin被送到时钟控制逻辑,代替Mpll,直接作为FCLK。因此即使用户在加电Reset后,不需要改变保留在MPLLCON、UPLLCON寄存器中的缺省值,也应该通过软件写相同的值到MPLLCON、UPLLCON寄存器,之后经过自动插入锁定时间,MPLL的输出Mpll(而不是Fin)经过时钟控制逻辑输出作为FCLK
15、。FCLK的频率与加电Reset后通过软件写到MPLLCON寄存器的设置值相对应。同样,UPLL的输出频率也与加电Reset后通过软件写到UPLLCON寄存器的设置值相对应。 在NORMAL模式改变MPLLCON、UPLLCON中的设置值 S3C2410A允许在NORMAL模式,由运行的程序,改变MPLLCON、UPLLCON寄存器中MDIV、PDIV和SDIV的设置值。改变之后,经过锁定时间,输出时钟的频率被改变。新的频率值与新写入MPLLCON、UPLLCON中的MDIV、PDIV和SDIV参数值对应,见图4.3。 USB时钟控制 USB主接口和设备接口需要48MHz的时钟。S3C2410
16、A中UPLL能够产生48MHz的时钟。在UPLLCON寄存器中相应的参数被设置后,UPLL产生的48MHz的时钟作为UCLK,具体见表4-4(p102)。 分频比 FCLK也称为主时钟,通过在时钟分频控制寄存器CLKDIVN中对HDIVN1、HDIVN和PDIVN设置不同的值,可以改变FCLK、HCLK、PCLK之间频率的比值,具体见表4-5(p102)。4.3 电源管理4.3.1 电源管理模式的转换 S3C2410A有4种电源管理模式,分别是NORMAL、SLOW、IDLE和Power_OFF。不允许在这4种模式中自由转换,合法的转换见图4.4。 对于4种电源管理模式中的每一种,连接S3C2
17、410A中各模块的时钟或电源的状态,见表4-6(p103)。图4.4 4.3.2 4种电源管理模式 NORMAL模式 在NORMAL模式,全部片内外设,以及包含电源管理模块在内的基本模块,如ARM920T、总线控制器、存储器控制器、中断控制器、DMA和外部总线控制器等,全部可以操作,这时功耗最大。这种模式允许用户通过软件,控制连接每一个片内外设的时钟接通或切断,以减少功耗。在时钟控制寄存器CLKCON中可以设置不同的值,能够切断或接通某一个或某几个片内外设的时钟。 IDLE模式 如果将时钟控制寄存器CLKCON2设置为1,S3C2410A经过一定的延时,进入IDLE模式。 在IDLE模式,到A
18、RM920T的时钟FCLK被停止。但是到总线控制器、存储器控制器、中断控制器和电源管理模块的时钟仍接通;到片内外设的时钟仍接通。在IDLE模式,计算功耗时应减去ARM920T的功耗。当EINT23:0或RTC报警中断或其他中断激活时,退出IDLE模式。 SLOW模式 SLOW模式是一种非锁相环模式。 在SLOW模式,由于使用了比较慢的时钟,能够减少S3C2410A的功耗。在SLOW模式,MPLL应该被切断,计算功耗时应减去MPLL的功耗。虽然UPLL也可以被切断,但是USB使用的UCLK要求为48MHz的时钟,通常并不切断UPLL。只有在SLOW模式,才允许切断或接通MPLL或UPLL。 在S
19、LOW模式,FCLK分频(见p104,105)。 Power_OFF模式 Power_OFF模式简介 Power_OFF模式S3C2410A部分引脚状态 在Power_OFF模式,S3C2410A的GPIO、功能输出和功能输入引脚状态见表4-8(p105)。 Power_OFF模式对电源的控制 在Power_OFF模式,仅仅VDDi和VDDiarm电源能被切断,切断是由S3C2410A输出引脚PWREN控制的。如果PWREN信号为高电平,由外部电压调节器提供VDDi和VDDiarm;如果PWREN信号为低电平,切断VDDi和VDDiarm,见图4.6(p106)。 用于唤醒的EINT15:0
20、电池失效信号(nBATT_FLT) ADC Power Down4.3.3 S3C2410A电源引脚 S3C2410A电源引脚连接的电源电压和电源的用途见表4-9(p107)。4.4 时钟与电源管理 特殊功能寄存器及设置4.4.1时钟与电源管理特殊功能寄存器 6个特殊功能寄存器的名称、地址及Reset值 6个特殊功能寄存器的名称、地址及Reset值,见表4-10(p108)。 锁定时间计数寄存器 锁定时间计数寄存器LOCKTIME,分别保存用于UPLL和用于MPLL的锁定时间计数值,具体含义见表4-11(p108)。 MPLL及UPLL控制寄存器 MPLL及UPLL控制寄存器,即MPLLCON
21、/UPLLCON,具体含义见表4-12(p108)。 时钟控制寄存器 时钟控制寄存器根据设置的不同值,允许/禁止PCLK或HCLK时钟信号连接到某一确定的模块;控制进入Power_OFF或IDLE模式与否。 时钟控制寄存器CLKCON含义见表4-13(p108)。 SLOW时钟控制寄存器 SLOW时钟控制寄存器CLKSLOW,具体含义见表4-14(p109)。 时钟分频控制寄存器 时钟分频控制寄存器CLKDIVN,具体含义见表4-15(p110)。 4.4.2 U-Boot对特殊功能寄存器的初始设置对特殊功能寄存器的初始设置 加电Reset后,最先运行的装载引导程序,例如U-Boot,对时钟与
22、电源管理特殊功能寄存器进行初始设置,代码见例4.2。 在例4.2中,首先对各寄存器不同的域(位)定义了不同的数值,然后设置了LOCKTIME、MPLLCON、UPLLCON寄存器的值,其余3个寄存器可以使用Reset后硬件自动产生的默认值,暂不进行软件设置。 【例4.2】 U-Boot对SMDK2410评估板时钟与电源管理特殊功能寄存器,进行初始设置的代码(p110)。4.5 DMA基础基础4.5.1 DMA含义含义 DMA(Direct Memory Access)称为直接存储器存取,通常含义是指,从内存输出到I/O设备的数据,或者从I/O设备输入到内存的数据,不需要CPU的介入,由一个称为
23、DMA控制器(DMAC)的电路控制;数据也不经过CPU,直接由内存通过数据总线输出到设备接口,或从设备接口通过数据总线输入到内存。 如果不使用DMAC,从外设输入一个数据到内存,通常要执行一条输入指令,在CPU的控制下,把指定外设接口中的数据读入CPU的某个寄存器;然后再执行一条指令,在CPU的控制下,把CPU指定寄存器中的数据,传输到内存指定单元。 DMA传输方式提高了在内存与外设之间传输数据的速度。 DMAC也支持从内存一块数据区,将数据一个一个不经过CPU,直接传输到内存的另一块数据区。而在非DMA方式,一块内存的数据必须以字节或字为单位,顺序读入CPU的寄存器,然后从CPU的寄存器顺序
24、送到内存的另一块数据区,重复这一过程,直到全部数据传输完成。 有的DMAC能够支持从一个外设读入数据,不经过CPU,直接送往另一个外设。 DMAC电路有的在处理器片外,集成在一个单独的芯片中,如8259A;也有集成在处理器片内的。 4.5.2 DMAC控制输入传输举例控制输入传输举例 图4.7是一个简化的单通道DMAC控制输入传输原理性框图,DMAC内部组成也经过了简化。从外设接口输入多个数据到内存的处理过程简要描述如下。 CPU通过软件对DMAC设置参数 假定外设端口地址(源)为0 x100,输入0 x50字节数据,送往内存0 x200起址(目的)处;每传送1字节后,外设端口地址(源)不改变
25、,内存地址(目的)加1;全部数据传输完成后DMAC发中断请求。 CPU运行程序要分别写入DMAC以下数据: 源地址寄存器写入0 x100; 目的地址寄存器写入0 x200; 字节计数器写入0 x50; 控制寄存器写入的控制标识有,由外设启动DMA、源地址固定不变、目的地址增量、DMA结束发中断请求。 CPU对DMAC设置参数后,执行其他程序。 DMA请求、响应 见图4.7,接口数据准备好后,向DMAC的REQ发出请求信号,然后由DMAC的DREQ向CPU发DMA请求,CPU响应后通过DACK发出响应信号,时序关系见图4.8。 在图4.8中,DREQ低电平表示DMAC有请求,CPU结束当前总线周
26、期后,经过延时,向DMAC发出低电平响应信号DACK,通知DMAC,DMAC用ACK信号通知外设接口,本次DREQ请求已经被CPU响应;CPU同时使总线控制器输出为高阻状态,断开与系统总线的连接,由DMAC控制(占用)系统总线。 DMAC控制读写一次的操作控制读写一次的操作 DMAC控制产生一个读周期,将源地址寄存器中内容0 x100送往地址总线,选择接口中的端口0 x100;DMAC还发出读有效(nOE)、选择I/O地址(nGCSn)等信号送往控制总线,并送达接口电路;由接口读出指定端口的字节数据,通过数据总线,送到DMAC中一个暂存器。由于暂存器是CPU指令不可操作的,所以图4.7中没有画
27、出。 DMAC控制在读周期后,产生一个写周期,将目的地址寄存器中的内容0 x200送往地址总线,选择内存地址0 x200;DMAC还发出写有效(nWE)、选择内存地址(nGCSn)等信号送往控制总线,并送达内存;同时DMAC将暂存器1字节内容送往数据总线,写到内存0 x200单元。一次数据读、写操作后,DMAC控制源地址寄存器内容不变,仍为0 x100;目的地址寄存器内容加1,为0 x201;字节计数器内容减1,为0 x4F。 为了避免DMAC长时间独占总线,通常在一次读、写操作后,DMAC的DREQ信号变为高电平,送往CPU,表示一次DMA请求结束。之后DACK变为高电平,表示一次DMA响应
28、结束,同时CPU恢复对系统总线控制。 全部数据传送完成 当接口再次准备好数据时,由REQ向DMAC再次发出请求,CPU再次响应,DMAC控制再次从外设接口读一字节数据送内存,目的地址寄存器内容再次加1,字节计数器内容再次减1,DMAC再次释放总线。重复这个过程,直到字节计数器内容为0时,表示全部数据传送完成,DMAC发中断请求,CPU响应中断后,对内存0 x200起址的数据区进行处理。 4.5.3 总线主设备、从设备总线主设备、从设备 能够向CPU提出占用总线的请求,并且能够控制总线进行数据传输的设备,称为总线主设备、主模块。在图4.7中,DMAC是总线主设备。 总线从设备是指,能够由CPU通
29、过总线进行读、写的设备(接口),例如在CPU写入DMAC中各寄存器内容、读出状态寄存器内容时,DMAC作为总线从设备、从模块被使用。 DMAC既是总线主设备,又是总线从设备。 另外,图4.7中DMAC的状态寄存器,通常保存的内容表示全部数据传输完成与否等信息。在不使用中断信号表示数据传输结束时,CPU可以查询状态寄存器内容,判断全部数据传输完成与否。4.6 DMA概述4.6.1 DMA概述 参见第2章图2.1(p18) S3C2410A组成框图,S3C2410A支持一个4通道的DMA控制器,DMA控制器位于AHB与APB之间。每个通道能够处理如下4种情况: 传输数据的源和目的设备都连接在AHB
30、; 传输数据的源设备连接在AHB,而目的设备连接在APB; 传输数据的源设备连接在APB,而目的设备连接在AHB; 传输数据的源和目的设备都连接在APB。 本章将连接在AHB、APB上的控制器,简称为设备。 连接在AHB上和APB上的设备见图2.1。 图2.1中并不是所有连接在AHB和APB上的设备都可以使用DMA方式,具体哪些可用或不可用,在后续各设备对应章节中会讲到。 DMA主要优点是传输数据不需要CPU介入。 DMA操作能够以3种方式启动:软件、片内外设请求或S3C2410A片外DMA请求引脚信号。 4.6.2 存储器到外设DMA传输举例 DMA传输举例 例如存储器(内存)某缓冲区的数据
31、,要读出传输到某外设(接口),与DMA传输相关事项有: DMA传输前要确定使用的DMA通道、初始参数设置,如果DMA传输结束需要进入中断处理,则需要考虑中断处理程序在存储器的定位; 确定由外设提出DMA请求,还是由软件提出DMA请求(本例中由外设提出); CPU运行其他程序,外设随机提出DMA请求,DMA控制器控制读存储器数据,送外设(接口); 全部数据传输完成,DMA发中断请求,中断服务程序进行处理(例如用新数据填写内存缓冲区、设置新的DMA初始参数以及清除相应的中断登记位等);也可以通过查询DMA状态,确定数据传输是否完成。 DMA初始参数设置与状态寄存器 假定使用DMA通道0,那么以下所
32、有参数都要送到通道0的特殊功能寄存器。可以读出通道0的状态寄存器,判断通道0处于就绪/忙状态、判断传输计数当前值。 源地址 由于是从存储器某缓冲区读出数据,送某外设(接口),所以存储器缓冲区的起始地址作为源地址,要送到DMA通道0的初始源(地址)寄存器DISRC0。DMA自动将DISRC0的值送到通道0的当前源(地址)寄存器DCSRC0,参见表4-17。 目的地址 本例中,目的地址指的是某外设(接口)的端口地址,是从内存读出数据送往的目的地址,是目的区的一个起始地址,这个地址要送到DMA通道0的初始目的(地址)寄存器DIDST0。DMA自动将DIDST0的值送到通道0的当前目的(地址)寄存器D
33、CDST0,参见表4-19。 传输计数 由存储器缓冲区数据个数(字节数),通过计算得到一个传输计数值,这个值也称传输节拍数,送到通道0的控制寄存器DCON0的TC域,称为初始传输计数值。DMA自动将TC域的值送到通道0的状态寄存器DSTAT0的CURR_TC域,称为传输计数当前值,参见表4-21、表4-22。 初始源、初始目的控制寄存器 初始源控制寄存器,通过设置不同的参数值,控制源(设备)连接到AHB还是APB。本例中存储器控制器连接在AHB,应该将DISRCC01设置为0。 在初始源控制寄存器中还可以选择当前源地址是增量还是固定不变。 DMA控制寄存器 每个通道有1个DMA控制寄存器,通道
34、0的为DCON0。通过程序可以分别选择:请求/握手(Demand/Handshake)模式;使用AHB/APB时钟同步;传输计数当前值CURR_TC为0时产生中断与否;Unit/Burst模式;Single/Whole服务模式;DMA请求源对应的设备;软/硬件DMA请求;自动重装与否;数据尺寸(data size),并可设置初始传输计数TC值。 屏蔽触发寄存器 每个通道有1个屏蔽触发寄存器,通道0的是DMASKTRIG0,可以用于停止DMA操作、设置通道0 ON/OFF、触发软件DMA请求。 状态寄存器 每个通道有1个状态寄存器,通道0的是DSTAT0,保存就绪/忙(Ready/Busy)状态
35、,保存传输计数当前值CURR_TC。CURR_TC在每个原子操作结束时减1。 4.6.3 DMA用到的S3C2410A引脚信号 S3C2410A芯片引脚信号nXDREQ1:0为输入信号,可以分别外接2路DMA请求信号;芯片引脚信号nXDACK1:0为输出信号,输出对nXDREQ1:0产生的DMA响应信号。4.7 DMA请求、有限状态机和协议4.7.1 硬件DMA请求与软件DMA请求 S3C2410A可以使用片外DMA请求引脚信号nXDREQ1:0、片内外设和软件方式启动DMA操作,前2种称为硬件DMA请求,后1种称为软件DMA请求。 选择硬件DMA请求或软件DMA请求 DMA控制寄存器DCON
36、n中的SWHW_SEL域控制选择硬件DMA请求还是软件DMA请求。当DCONn23=0时为软件请求模式,通过设置DMA屏蔽触发寄存器DMASKTRIGn的SW_TRIG位,能够触发DMA请求;当DCONn23=1时为硬件请求模式,需要通过DCONn26:24选择DMA请求源,由这个请求源提出DMA请求。 硬件DMA请求源的选择 DMA控制器的每个通道,如果在DMA控制寄存器中选择了使用硬件请求模式(DCONn23=1),那么可以从5个请求源中选出1个作为请求源,具体见表4-16(p118)。 如果选择了软件请求模式,表4-16中的硬件请求源没有意义。4.7.2 用于DMA操作的有限状态机 DM
37、A使用3个状态的有限状态机(Finite State Machine,FSM)实现它的操作,3个状态分别描述如下: State-1:作为初始状态,DMA等待DMA请求。如果出现DMA请求,进入State-2。在State-1中,DMA ACK和INT REQ为0(无效)。 State-2:在这个状态,DMA ACK变为1(有效),并且把DMA控制寄存器的DCONn19:0的初始传输计数值装入到DMA状态寄存器DSTATn的传输计数当前值CURR_TC域。DMA ACK保持1(有效),直到它被清除为止。 nState-3:在这个状态,处理DMA原子操作(最基本的操作、不可分开的操作)的子有限状态
38、机(sub-FSM)被启动。子有限状态机从源地址读数据,然后写数据到目的地址。在这个操作中,数据尺寸(size)和传输个数(Unit/Burst)被考虑。这个操作一直重复,在全部服务(Whole Service)模式,直到CURR_TC计数器变为0;在单个服务(Single Service)模式,只执行一次。当子有限状态机结束每个原子操作时,主有限状态机(即有限状态机)的CURR_TC进行减法计数。当CURR_TC变为0并且寄存器DCONn29中断设置位被设置成1时,主有限状态机发出INT REQ(有效)信号。如果遇到以下条件中的一个,DMA ACK被清除(无效): 在全部服务模式,CURR_
39、TC变成0; 在单个服务模式,原子操作结束。 在单个服务模式,主有限状态机的这3个状态被执行,然后停止,等待下一个DMA请求。如果出现DMA请求,重复上述3个状态。因此,对每个原子操作,DMA ACK先有效,然后无效。在全部服务模式,主有限状态机在State-3等待,直到CURR_TC变为0。因此,DMA ACK在全部传输期间有效,而当CURR_TC=0时无效。 然而,仅仅在CURR_TC变为0时INT REQ有效,与当前服务是单个服务模式或全部服务模式无关。 4.7.3 外部DMA请求/响应协议 有3种外部DMA请求/响应协议类型,分别是: 单个服务请求(Single Service Dem
40、and)模式; 单个服务握手(Single Service Handshake)模式; 全部服务握手(Whole Service Handshake)模式。 基本DMA定时 DMA服务意味着在DMA操作中,执行一对读和写周期,并且读和写周期被看作1个不可分开的DMA操作。图4.9表示S3C2410A在DMA操作中的基本定时关系。 请求(Demand)/握手(Handshake)模式 请求和握手模式与XnXDREQ和XnXDACK之间的协议有关。 请求模式 在请求模式,当XnXDREQ有效时,经过2个同步时钟,XnXDACK有效。从XnXDACK有效开始,最少经过3个时钟,传输一次数据(如果处于
41、Unit传输模式,则读一次、写一次)。 请求模式只要XnXDREQ有效,能够传输多次。请求模式信号关系见图4.10。 握手模式 在握手模式,一次数据传输后,DMA控制器只有在XnXDREQ撤消(高电平)后,经过2个时钟,XnXDACK才无效(高电平)。仅仅在XnXDREQ再次有效(低电平),才开始下一次传输。传输后如果XnXDREQ一直有效,则XnXDACK一直为低电平,直到XnXDREQ撤消。 握手模式信号关系见图4.11。 单个服务(Single Service)/全部服务(Whole Service)模式 在单个服务模式,每次原子传输(Unit模式传输1次,Burst模式4个突发读,之后
42、4个突发写)后,DMA停止,等待下一个DMA请求。 在全部服务模式,1个DMA请求出现,进行原子传输,重复原子传输,直到当前传输计数值CURR_TC达到0为止。在这种模式下,只要有1个DMA请求,就可以传输全部数据。 在全部服务模式,当每次原子传输后,DMA将释放总线,然后自动重新获得总线,从而避免了独占总线使其他总线主设备无法获得总线带来的问题。重新获得总线并不要求重新激活DMA请求。 4.7.4 Unit/Burst传输、数据尺寸与自动重装 Unit/Burst传输 Unit传输的含义是1次传输由1个读周期和1个写周期组成。 Burst传输的含义是1次传输由4个连续的读周期和4个连续的写周
43、期组成。 在Unit或Burst传输期间,DMA稳固地保持总线,其他总线主设备不能得到总线。 S3C2410A DMA Burst传输信号关系见图4.12。 数据尺寸(data size) 数据尺寸的含义是每个读(写)周期,DMA传输的数据宽度。只能选择使用字节/半字/字3种宽度中的一种。通过对DMA控制寄存器DCONn21:20位进行不同的设置,可以指定不同的数据尺寸。 自动重装 DMA控制寄存器DCONn22为自动重装选择位,当这1位设置为0时,允许自动重装。 当传输全部结束,在DMA状态寄存器中的传输计数当前值CURR_TC变为0时,如果允许自动重装,则在下一个DMA请求出现时,进行自动
44、重装,将初始源(地址)寄存器的值、初始目的(地址)寄存器的值和初始传输计数TC的值,分别送到DMA当前源(地址)寄存器、当前目的(地址)寄存器和传输计数当前值CURR_TC域中。 4.7.5 外部DMA请求/响应协议传输举例 单个服务、请求模式、Unit传输 在单个服务模式,每次Unit传输,需要检查XnXDREQ是有效的。在请求模式,只要XnXDREQ有效,操作将继续,读和写操作被看作不可分开的一对操作被执行,具体见图4.13。 单个服务、握手模式、Unit传输 单个服务、握手模式、Unit传输见图4.14。 全部服务、握手模式、Unit传输 全部服务、握手模式、Unit传输见图4.15。4
45、.7 DMA特殊功能寄存器 DMA控制器共有36个特殊功能寄存器,每个DMA通道有9个寄存器。其中6个控制DMA传输,另外3个监控DMA控制器的状态。 DMA初始源(地址)寄存器 4个通道的DMA初始源(地址)寄存器的名称分别为DISRC0、DISRC1、DISRC2和DISRC3;对应地址分别为0 x4B000000、0 x4B000040、0 x4B000080和0 x4B0000C0;可读写;Reset后初值全部为0;分别存放各通道要传输的源数据的基本地址(起始地址),具体见表4-17(p123)。 DMA初始源控制寄存器 4个通道的DMA初始源控制寄存器的名称分别为DISRCC0、DI
46、SRCC1、DISRCC2和DISRCC3;对应地址分别为0 x4B000004、0 x4B000044、0 x4B000084和0 x4B0000C4;可读写;Reset后初值全部为0;分别存放各通道源(设备)连接的总线、传输后地址增加与否等信息,具体见表4-18(p123)。 DMA初始目的(地址)寄存器 4个通道的DMA初始目的(地址)寄存器的名称分别为DIDST0、DIDST1、DIDST2和DIDST3;对应地址分别为0 x4B000008、0 x4B000048、0 x4B000088和0 x4B0000C8;可读写;Reset后初值全部为0;分别存放各通道要传输的目的基本地址(起始地址),具体见表4-19(p124)。 DMA初始目的控制寄存器 4个通道的DMA初始目的控制寄存器的名称分别为DIDSTC0、DIDSTC1、DIDSTC2和DIDSTC3;对应地址分别为0 x4B00000C、0 x4B00004C、0 x4B00008C和0 x4B0000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度上海市高校教师资格证之高等教育心理学基础试题库和答案要点
- 2024年劳务合作综合合同范本版
- 2024年美容院股份交易协议书样本版
- 2024年严苛条件下借款协议规定
- 2024年专业钢结构工程全包协议样式版
- 电子集成电路项目评价分析报告
- 标准个人赠与合同范本
- 电磁线圈项目评价分析报告
- 水加热器相关项目建议书
- 担保义务细则协议(2024年度版)版
- 【自考复习资料】00288社会调查方法(按章节整理)
- 小学生安全伴我成长主题班会课件
- 口腔门诊医生晋升副高工作总结
- 混凝土质量控制与强度评定培训课件
- 氢燃料电池课件
- 水利工程危险源辨识清单全
- 第9课+隋唐时期的经济、科技与文化-【中职专用】《中国历史》(高教版2023基础模块)
- 塑料改性及其产品研发生产二期项目环境影响报告表
- 培训结果调查表模板
- 某建筑企业集团经营理念与目标(5篇)
- 关于收集员工个人信息档案工作的通知-+员工个人信息档案登记表模板
评论
0/150
提交评论