应用系统设计_第1页
应用系统设计_第2页
应用系统设计_第3页
应用系统设计_第4页
应用系统设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章应用系统设计

4.1系统设计概述

4.2ARM920T简介

4.3S3c2410X处理盎能详角星

4.4单元电路设计

45存储器系统设计

4.6JTAG调试接口设计

4.7综合训练之通过JTAG访问外设

4.1系统设计概述

图4」开发平台系统组成.

4.2ARM920T简介

ARM920T是ARM920TDMI系列中的一款通用性的微处理器,ARM920TDMI系

列微处理器包含如下几种类型的内核。

•ARM9TDMI:只有内核。

•ARM940T:由内核、高速缓存和内存保护单元组成。

•ARM920T:由内核、高速缓存和内存管理单元(MMU)组成。

4.2.1ARM920T系统结构分析

4.2.2ARM920T内核编程模型

ARM920T系统结构分析

ARM9TDMI采用5级流水线,其结构图如图4.2所示,具有分开的指令和数据

存储器,5级流水线具体如下。

(1)取指:从存储器中取出指令,并将其放入指令流水线。

(2)译码:对指令进行译码。

(3)执行:把一个操作数移位,产生ALU的结果。

(4)缓冲/数据:如果需要,则访问数据存储器;否则ALU的结果只是简单

地缓冲1个时钟周期,以便所有的指令具有同样的流水线流程。

(5)回写:将指令产生的结果回写到寄存器,包括任何从存储器中读取的数

据。

°ARM9TDMI处理器一个显著的特点是采用指令和数据分离访问的方式,即采

用了指令缓存(l-Cache)和数据缓存(D-Cache)。这样可以把指令访问和数

据访问单独安排1级流水线。

取指令移位/ALU”数据存储器访问.

取指p译码。执行〉存储器*

图4.2ARM9TDMI流水线图-

ARM920T以ARM9TDMI为内核,增加了高速缓存和内存管理单元,系统结构

图如图4.3所示。

m

图4.3ARM920T系统结构图

ARM920T内核编程模型

字(Word),在ARM体系结构中,字的长度为32位,而在8位/16位处理器体系结构

中,字的长度一般为16位。

半字(Half-Word),在ARM体系结构中,半字的长度为16位,与8位/16位处理器

体系结构中字的长度一致。

字节(Byte),在ARM体系结构和8位/16位处理器体系结构中,字节的长度均为8

位。

指令长度可以是32位(在ARM状态下),也可以为16位(在Thumb状态下)。

ARM920T中支持字节(8位)、半字(16位)、字(32位)3种数据类型,其中,

字需要4字节对齐,半字需要2字节对齐。

1.ARM微处理器的工作状态

从编程的角度看,ARM920T微处理器的工作状态一般有两种:

•ARM状态,此时处理器执行32位的、字对齐的ARM指令;

•Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。

ARM指令集和Thumb指令集均有切换处理器状态的指令,在程序的执行过程中,微

处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处

理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处

于ARM状态。

当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器

从ARM状态切换到Thumb状态。当操作数寄存器的状态位为0时,执行BX指令可以使

状态切换到ARM状态Tfe外处理器进行异常处理时fFG指针

放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换

到ARM状态。

2.ARM体系结构的存储器格式

ARM920T体系结构将存储器看做是从零地址开始的字节的线性组合。从0字

节到3字节放置第1个存储的字数据,从第4个字节到第7个字节放置第2个存储的

字数据,依次排列。作为32位的微处理器,ARM920T体系结构所支持的最大寻

址空间为4GB(232字节)。

ARM920T体系结构可以用两种方法存储字数据,分别称为大端格式和小端格

式。

大端格式中字数据的高字节存储在低地址中,而字数据的低字节则存放在高

地址中,如图4.4所示。

31”2“23P1M15,8A,0+字地址.

8〃9V10*-'11。8“

4川5,6P4d

2y3d

低出七址~

图4.4以大端格式存储字数据.

与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字

节,高地址存放的是字数据的高字节。如图4.5所示

31.->24」23,⑹138+702字地址,

11〃10。9川8P

7a6,5,4,

3,2“0“

低大!址,

图4.5以小端格式存储字数据」

3.处理器模式

ARM920T支持7种运行模式,分别为:

・用户模式(usr),ARM处理器正常的程序执行状态;

•快速中断模式(fiq),用于高速数据传输或通道处理;

•外部中断模式(irq),用于通用的中断处理;

•管理模式(svc),操作系统使用的保护模式;

•数据访问终止模式(abt),当数据或指令预取终止时进入该模式,可用于

虚拟存储及存储保护;

•系统模式(sys),运行具有特权的操作系统任务;

•未定义指令中止模式(und),当未定义的指令执行时进入该模式,可用

于支持硬件协处理器的软件仿真。

ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处

理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,

某些被保护的系统资源是不能被访问的。

除用户模式以外,其余的6种模式称为非用户模式或特权模式;其中除去用

户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及访

问受保护的系统资源等情况。

4.寄存器组织

ARM920T共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存

器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决

于微处理器的工作状态及具体的运行模式。

在ARM状态下,任一时刻可以访问16个通用寄存器和1〜2个状态寄存器。在

非用户模式(特权模式)下,则可访问到特定模式分组寄存器,图4.6所示为在

每一种运行模式下,可以访问的寄存器。

在ARM状态下有16个直接访问寄存器R0〜R15,除R15寄存器外均为通用目

的,可用来存储数据或地址值。除此之外,还有第17个寄存器用来存储状态信

息。

R14也称为子程序连接寄存器(SubroutineLinkRegister)或连接寄存器LR。

当执行BL子程序调用指令时,R14中得到R15(程序计数器PC)的备份。在其

他情况下,R14用做通用寄存器。与之类似,当发生中断或异常时,对应的分组

寄存器R14_svc、R14_irq>R14_fiq>R14_abt和R14_und用来保存R15的返回

值。

寄存器R15用做程序计数器(PC)。在ARM状态下,位[1:0]为0,位[31:2]

用于保存PC;在Thumb状态下,位⑼为0,位[31:1]用于保存PC。

寄存器R16用做当前程序状态寄存器(CurrentProgramStatusRegister,

CPSR),CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、

当前处理器模式标志位,以及其他一些相关的控制和状态位。

■■■

ARM状态下的通用寄存器与程序计数器,,

System&User*1FIQ/Supervisor-'About/IRGfUndefined-'

RCkR(kR0<R0〃RWR(k

RbRK)RMRI。Rl“RW

R2tR2»R20R2>R2”R2--

R3-R3>R3“R3“时R3-'

R4.R4“R43RWR4。R4"

R5-1R5a心,R5aR5-'R5。

R6・1R6<1R6kR6-1RMR6~

R7;R7」R7dR7~R7dR7P

R“、R8_6q+R8<R“R8+R8<'

R9・」、R9__fiq*-'R9+眸R9」R9~

R10<1、R10_fiq-RIO4--RIO^RIO。RI04-'

Rib1\Rll_fiq,R1U-R1U)Rll“Rih'

R⑵、R12_fiq*R⑵R12~RI2^R⑵

R13u、R13__fiq-»,、R13_SVC「\R13_abh-'、R13_irq。、R13_und*

R14<、R14_fiq<J、R14_SVC〃R14__abt*J、R14_irq。\R14__und«-,

R15(PC>R15(PC)-R15(PC>R15(PC)<R15(PC>R15(PC)^

ARM状态下的程序状态寄存器•

CPSR。CPS的CPSR/CPSR"CPSRxCPSRv

\SPSR_fiq>、SPSR__svc<-\SPSR_abt<」\SPSRJrq-'、SPSR_undp

'=分组寄存器,

图4.6ARNI状态下的寄存器组织”

每一种非用户模式下都有一个专用的物理状态寄存器,称为SPSR(Saved

ProgramStatusRegister,备份的程序状态寄存器)。当异常发生时,SPSR用

于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。

fiq模式下有7个分组寄存器R8_fiq~R14_fiq,在ARM状态下,许多fiq处理都

不用保存任何寄存器。usr、fiq、irq>svc、abt>und模式下有两个分组寄存器

R13和R14,而每种模式都有一个自己的堆栈指针和连接寄存器

Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接

访问8个通用寄存器(R7~R0)、程序计数器(PC)、堆栈指针(SP)、连接

寄存器(LR)和CPSR。同时,在每一种特权模式下都有一组SP、LR和SPSR。

图4.7所示表明Thumb状态下的寄存器组织。

Thumb状态下的寄存器组织与ARM状态下的寄存器组织存在如下关系:

•Thumb状态下和ARM状态下的R0〜R7是相同的;

•Thumb状态下和ARM状态下的CPSR和所有的SPSR是相同的;

•Thumb状态下的SP对应于ARM状态下的R13;

•Thumb状态下的LR对应于ARM状态下的R14;

•Thumb状态下的程序计数器对应于ARM状态下的R15。

以上的对应关系如图4.8所小。

在Thumb状态下,高位寄存器R8~R15并不是标准寄存器集的一部分,但可

使用汇编语言程序受限制地访问这些寄存器,将其用做快速的暂存器。使用带特

殊变量的MOV指令,数据可以在低位寄存器和高位寄存器之间进行传送;高位

寄存器的值可以使用CMP和ADD指令进行比较或加上低位寄存器中的值。

THUMBStateARMSlate।

RO।RO

RIRl.

R2.R2

R3।R3

R4R4.

R5.R5

R6R6.

R7.R7.

R8.

R9»

R1O..

Rll..

R12.

StackPoitSSP)SuckPointei(R13)

LinkBegkter(LR)LinkRegisteitRH)

ProgramCounter(PC)ProgramCountei(R15)

CPSRCPSR.

SPSRSPSR

图48Thwb状态下的寄存器组织/

5.程序状态寄存器

ARM920T体系结构中包含一个当前程序状态寄存器(CPSR)和5个备份的

程序状态寄存器(SPSR)。备份的程序状态寄存器用来进行异常处理,其功能

包括:

•保存ALU中的当前操作信息;

•控制允许和禁止中断;

•设置处理器的运行模式。

程序状态寄存器每一位的安排如图4.9所示。

条件码标志,保宜“控制牧

Cany/Boirow/ExijendStatebit

Zero---------------------------------FIQdisable

NegativeITwin----------------------------------IRQdi^bk।

图4.9程序状态寄存器格式丫

6.条件码标志(ConditionCodeFlags)

N、Z、C、V均为条件码标志位。它们的内容可被算术或逻辑运算的结果所改

变,并且可以决定某条指令是否被执行。条件码标志各位的具体含义如表4.1所示。

表4.1条件码标志的具体含义4

标志像◎义.

N,当用两个科吗爱家的带符号数送行过算时.N=1农示运算的结果的负数;N=0我不运算的统果为正数或察

Z,2=1及示运算的续果为黑;Z=0表示过算的结果为非窑

C可以有4种方法设置C的但:

一加法运算(包括比校指令CMP):当运算结果产生丁逸粒时(无符号数整出),C=E否则C=0

—减法运算(包括比长推母CMPL当运算时产生T借校(无符号基整出).C=0.否划C=1

—附子包含移位慢作的非加/减运算燧令,C欠移出值的最后一位

—对千其他的非加,减过篁微令.C的但圆堂不改变

V.可以有2种方法设餐V的值:

一和千加/蹴法过篁楂令.当区作敌和过复结果为二浇制的料包农不的药符号基时,V=1茂木符号位旅出

—对于其他的非加,减运篁拨令.C的但遇常不改变

Q■在ARM9应以上版近的E系列处理器中.用Q标志检摄示第裔的DSP过夏微令是否发生T溢出.在其他版

本的处理趋中.Q标志粒无定义

7.控制位

CPSR的低8位(包括I、F、T和M[4:0])称为控制位,当发生异常时这些位

可以被改变。如果处理器运行特权模式,这些位也可以由程序修改。

•中断禁止位I、F:置1时,禁止IRQ中断和FIQ中断。

•T标志位:该位反映处理器的运行状态。当该位为1时,程序运行于Thumb

状态,否则运行于ARM状态。该信号反映在外部弓I脚TBIT上。在程序中不得修

改CPSR中的TBIT位,否则处理器工作状态不能确定。

•运行模式位M[4:0]:MO、M1、M2、M3、M4是模式位。这些位决定了处

理器的运行模式。具体含义如表4.2所示。

•保留位:CPSR中的其余位为保留位,当改变CPSR中的条件码标志位或者

控制位时,保留位不要被改变,在程序中也不要使用保留位来存储数据。保留位

将用干ARM版本的扩展.

n表4.2运行模式位M[4:0]的具体含义「

M[4=0]」处理器极衣ARM梭衣出访日的备存卷」THUMB枚式可访日的备存期

0b10000.用户模式、PC,CPSR,R0忘14PC,CPSR,R0~R7・LR.SP

Ob10001.FIQ模忒,PC.CPSR,SPSR^q,R14®~R8_fiq・R7-R0PC,CPSR,SPSRjaq.LR_fiq,SPR7-R0

Ob10010.IRQ梭衣,PC.CPSR,SPSR_irq,R14_irq,RBJrq.R12-R0PC.CPSR,SPSR_irq・LR_irq・SP_irq・R7-R£L

OblOOll.管理槐衣PC.CPSR.SPSR_fVC.R14_SVC・R13耳.R12-R0PC<CPSR.SPSR_5vc.LR_$vc..SP_$vt.R7~R0

OblOlll中止极式PC,CPSR,SPSRJbt,R14_sbt.R13_abt,R12~RDPC,CPSR,SPSR_abt,LR_abt,SP/rt,R7~R0

ObllOlli泉定义橙衣PC,CPSR.SPSRjmdeR14jmdeR13jmd.R12-R0PC.CPSR,SPSRjmdeLRjond.SPjmd.R7-R0

Oblllll1系统梭衣PC.CPSR,R14-R0,PC.CPSR,LR.SP.R7-R0

8.异常(Exceptions)

当正常的程序执行流程发生暂时的停止时,称之为异常。在处理异常之前,当前处理

器的状态必须保留,这样,当异常处理完成之后,当前程序可以继续执行。处理器允许多

个异常同时发生,处理器会按固定的优先级对多个异常进行处理。ARM920T对异常的处

理按以下步骤操作:

(1)将下一条指令的地址存入相应连接寄存器LR。若异常是从ARM状态进入,LR寄

存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常

是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量。这样,异常处理程序就不

需要确定异常是从何种状态进入的,程序在处理异常返回时能从正确的位置重新开始执行。

例如:在软件中断异常SWI中,指令MOVPC,R14_svc总是返回到下一条指令,而不管

SWI是在ARM状态执行,还是在Thumb状态执行。

(2)将CPSR复制到相应的SPSR中。

(3)根据异常类型,强制设置CPSR的运行模式位。

(4)强制PC从相应的异常向量地址取下一条指令执行,从而跳转到相应的异常处理

程序处。

进入异常处理前可以设置中断禁止位,以禁止异常处理时对中断的响应。如果异常发

生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM

状态。异常处理完毕之后,执行以下操作从异常返回:

(1)将连接寄存器LR的值减去相应的偏移量后送到PC中。

(2)将SPSR复制回CPSR中。

(3)若在进入异常处理时设置了中断禁止位,要在此清除。

表4.3总结了进入异常处理时保存在相应R14中的PC值,及在退出异常处理时推荐

使用的指令。

表4.3异常进入/退出

3以的的伏布

返回摄令注徽,

ARMR14_xThumbR14_x」

BL,MOVPCrR14,PC-+-4,PC4-2,1」

SWI.MOVSPC,R14.PCI1PC-H21、

UDEFMOVSPC.R14jmdPC+4,PC+2,1,

FIQSUBSPC.R14_fiq.屏4PCI,PC4-4.,2.

IRQSUBSPC.R14_irq.尽4,PC+4iPC+42,

PABTSUBSPC,R14Jbt,N,PC+4.PC-4-41、

DABT.SUBSPC.R14_St,48.PC+8iPC-H83i

RESETNA、一,,-i4,

应用程序中的异常处理:当系统运行时,异常可能会随时发生。为保证在ARM处

理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处

理。采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处

理程序。当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向

量,从而跳转到异常处理程序。当异常处理完成以后,返回到主程序继续执行。

各异常向量地址如表4.4所示。

表4.4异常向曼表J

址,异常.,设入梭衣,

0x0000^000,复被冷理槐衣

0x0000^1004来定义檄令,耒是义极衣

0^0000^3008,SWI软件中断曾理模也,

0x0000pooC中止(初取橙令)中止叔忒•

0M000,010中止中止板式

0x0000^)014保密、保穿

0x0000/018.,IRQ.IRQ、

0x0000poic-RQ.FIQ-

当多个异常同时发生时,系统根据固定的优先级决定异常的处理顺序。

异常优先级由高到低的排列次序为:复位、数据中止、FIQ、IRQ、预取指

令中止、未定义指令、SWL

4.3S3c2410X处理器详解

S3c241OX在包含ARM920T核的同时,增加了丰富的外围资源,如图4.10所

示。主要片内外围模块包括:

•1个LCD控制器,支持STN和TFT液晶显示屏;

•外部存储器管理(SDRAM控制器和芯片选择逻辑);

•3个通道的UART;

•4个通道的DMA,支持存储器和I/O口之间的传输,以猝发模式提高传输率;

•4个具有PWM功能的16位定时/计数器和1个16位内部定时器,支持外部时

钟源;

•8通道的10位ADC,最高速率可达500kB/s,10位分辨率;

•触摸屏接口;

•IIS总线接口;

•2个USB主机接口,1个USB设备接口;

•2个SPI接口;

•SD卡接口和MMC卡接口;

•16位看门狗定时器;

•117位通用I/O口和24位外部中断源;

•8通道10位AD控制器;

•电源管理。

S3C241OX及片内外围简介

ClockG«rmtor

£(MPLL)Bridgt&DMA(4Ch)

UART0,l,2<M>12C

USBDeviceK)Z=(><2=t>

SDFMMC.gIO..

VMchdog

Tiner0=€>

BUSCONT.

ADC

Art>ito(r/Decode0

SPI0,1Ta/PWM

00~3,4(加闻nal)

图41。S3c2410X结构框图・

S3c2410X支持大、小端模式,将存储空间分成8组(Bank),每组大小是

128MB,共计1GB。

OM[1:0]4)1F10OM[1^)]-01,10

OxFFFF...FFFF

求使用耒使用

0x6000....0000.1

<1专用功能备存落区专用功能音存巷区

0x4800...0000.

0x4000....0FFF,耒便用

BootSRAM(4KB)

0x4000....0000.

SROMSROM

(BANK7,nGCS7)(BANK7,nGCS7).

0x3800....0000

SROM.SROM.

(BANK5,nGCS6)(BANK6,nGCS6)

0x3000....0000

SROM.SROM..

(BANK5,nGCS5)(BANK5,nGCS5)

0x2800....0000

SROMSROM

(BANK4,nGCS4).(BANK4,nGCS4).

0x2000....0000।

SROMSROM

(BANKS,nGCS3).(BANK5,nGCS3).

0x1800....0000।

SROM..SROM..

(BANK2,nGCS2)(BAbTK2,nGCS2)

0x0100....0000

SROMSROM

0x0800....0000(BANKl,nGCSl>.(BANKhnGCSl).

SROM

0x0000....0000(BANK0,nGCS0).BootSRAM(4KB)

便用NANDFlash启动L

不使用NANDFlash启动

图4.11S3c2410X复位后存绪器映射图•

特殊功能寄存器

1.内存控制器(MemoryController)

内存控制器为访问外部存储空间提供存储器控制信号,共有13个寄存器。

区4.5内存控制寄存淤

寄存卷,地址大炭方忒读闰,设明J定做后的但

BWSCON0X48000000,怠皎党度和善待拄制备毒备0M)

BANKCONO0X48000004BANK0控制言存君■03U700

BANKC0N10X48000008BANK1控制备存超、0XD700

BANKC0N2、0X4800000CBANK2控制专存留0MD700

BANKC0N303(48000010.BANK3控制言存静0MI700.

BANKC0N40X180000141BANK4拄制寄存器.0MJ700

BANKC0N5,0X48000018//耳,BANK5拄制寄存餐0MD700

BANKC0N60X4800001CBANK6控制备存卷、0X18008

BANKC0N7.0J38000020,BANK7控制备存&-0X18008

REFRESH0^8000024।SDRAM刷新控制备存百OWkCOOOO..

BANKSIZE0X48000028可变的缎大小寄存部0MD

L/DR.SR5603^800002CBANK6的极式设置志存巷:XXX

MRSEB70X48000030,BANK7的极式设置备存器3ODC

2.NandFlash控制器

S3c2410X支持NandFlash启动,启动代码存储在NandFlash上。启动时,

NandFlash的前4KB将被装载到内部的固定地址中,利用硬件纠错码ECC对数据

的正确性检验,然后开始执行其中的启动代码。一般情况下,该启动代码会把

NandFlash中的内容拷贝到SDRAM中去,拷贝完后,主程序将在SDRAM中执

行。操作流程如图4.13所示。

图4.13NandFlash执行流科

自动引导模式流程:

•复位;

•如果自动引导模式使能,NandFlash中的前4KB代码拷贝到内部的小石头区域;

•小石头映射到nGCSO;

•CPU开始执行小石头区域中的代码。

NandFlash模式:

•通过NFCONF寄存器设置NandFlash酉己置;

•iENandFlash命令写入NFCMD寄存器;

•fi5NandFlash地址写入NFADDR寄存器;

•读/写数据同时通过NFSTAT寄存器检测NandFlash状态。读操作前或者程序执

行后检查R/nB信号。

表4.7|NandFlash控制器

备存百出址、读,耳.说明复粒后的值

NFCON0»E»00000配置NandFlash:位15为1时使能N«ndFlash一,■

NFCMD.,03(40000004.1设置NandFlash一・■

读,耳

NEADDRn0X4ED00008.1设置NandFlash地址.

NFDATA,o»nioooocNandFlash数据备存卷.一.

NFSTAT03SD300010NandFlash国作伏本一,

读,

NFECC.03(40)00014NandFlashECC备存器•一.

3.时钟和电源管理

S3c2410X的主时钟由外部晶振或者外部时钟提供,选择后可以生成3种时钟信号,

分另U是CPU使用的FCLK,AHB总线使用的HCLK和APB总线使用的PCLK。时钟

管理模块同时拥有两个锁相环,一个称为MPLL,用于FCLK、HCLK和PCLK;另

一个称为UPLL,用于USB设备。对时钟的选择是通过OM[3:2]实现的。

•OM[3:2]=00B时,晶体为MPLLCLK和UPLLCLK提供时钟源;

•OM[3:2]=01B时,晶体为MPLLCLK提供时钟源,EXTCLK为UPLLCLK提供0寸

钟源;

•OM[3:2]=10B时,EXTCLK为MPLLCLK提供时钟源,晶体为UPLLCLK提供时

钟源;

•OM[3:2]=11B时,EXTCLK为MPLLCLK和UPLLCLK提供时钟。

(1)锁相环PLL。

锁相环最基本的结构由3个基本的部件组成:鉴相器(PFD)、环路滤波器

(LoopFilter)和压控振荡器(VCO),如图4.14所示。鉴相器是个相位比较装

置,它把输入信号Fref与压控振荡器输出分频后的信号Fvc。的相位进行比较,产

生对应于两个信号相位差的误差电压。环路滤波器的作用是滤除误差电压中的高

频成分和噪声,以保证环路所要求的性能,增加系统的稳定性。压控振荡器受控

制电压的控制,使压控振荡器的频率向输入信号的频率靠拢,直至消除频差而锁

定。由此可见,锁相环是个相位误差控制系统。它比较输入信号和压控振荡器输

出信号之间的相位差,从而产生误差控制电压来调整压控振荡器的频率,以达到

与输入信号同频。

P[5:0]

Mf7:0]

S[1:O]

图414PLL工作原理“

S3c2410X增加了1个转换泵和3个除法器来增加控制。转换泵首先对PFD的输出信号按一

定比例转换,然后传递给外部滤波器,最后由外部滤波器驱动压控振荡VCO。除法器P对

输入信号Fin分频产生信号Fref,除法器M对压控振荡器输出信号分频产生信号Fvco,分频

器S对压控振荡器输出信号分频后生成了MPLL。

在环路开始工作时,如果Fref与Fvco频率不同,则是由于两信号之间存在固有的频率差

,因此它们之间的相位差一直在变化,使得鉴相器PFD输出的误差电压就在一定范围内变

化。在这种误差电压的控制下,压控振荡器的频率也在变化。若Fvco的频率能够变化到与

Frefffi等,那么在满足稳定性条件下就在这个频率上稳定下来。达到稳定后,Fref与Fvco

之间的频差为零,相差不再随时间变化,误差电压为一固定值,此时环路进入“锁定”状

态。这就是锁相环工作的大致过程。

系统稳定后Fref与Fvco相等,可得输出频率MPLL与输入时钟频率Fin的关系式:

(M+8)xFin

MPLL—'L一一

(尸+2)x2

(2)时钟控制逻辑。

时钟控制逻辑决定了所使用的时钟源,是采用MPLL作为FCLK,还是采用外

部时钟。复位后,Fin直接传递给FCLK,即使不想改变默认的PLLCON值,也需

要重新写一遍。FCLK由ARM920T核使用,HCLK提供给AHB总线,PCLK提供

给了APB总线。

S3c2410X支持HCLK、FCLK和PCLK的分频选择,其比率是通过CLKDIV寄

存器中的HDIVN和PDIVN控制的,如表4.8所示。

表4.8分频设定表”

HDIVNPDIVNFCLK,HCLK,PCLK,

0..0.FCLK.,FCLK..FCLK

O.tFCLK..FCLK,FCLK/2

1.0,FCLK,FCLK/2FCLKQ.

1FCLK,FCLK/2FCLK/4

(3)电源管理。

S3c241OX电源管理模块通过4种模式有效地控制功耗:

•Normal模式:为CPU和所有的外设提供时钟,所有的外设开启时,该模式

下的功耗最大。这种模式允许用户通过软件控制外设,可以断开提供给外设的时

钟以降低功耗。

•Slow模式:采用外部时钟生成FCLK的方式,此时电源的功耗取决于外部

时钟。

•Idle模式:断开FCLK与CPU核的连接,外设保持正常,该模式下的任何中

断都可唤醒CPU。

•Power-off模式:断开内部电源,只给内部的唤醒逻辑供电。一般模式下需

要两个电源,一个提供给唤醒逻辑,另外一个提供给CPU和内部逻辑,在

Power-off模式下,后一个电源关闭。该模式可以通过EINT[15:0]和RTC唤醒。

aLEBIT・L_____________

frienupts,EINTp:23],RTC

[RESET)

r—yWLQW_BI吧*4、

£041(15:0],

RTCalaim

((SLOW_BIT-1)

POWER-OFFBIT-1,

图4.15S3c241UX的电源管理模式转换关系图,

(4)时钟和电源管理寄存器。

S3c2410X通过控制寄存器实现对时钟和电源的管理,相关寄存器

如表4.10所示。

表4.10时钟控制寄存

比址.、我,耳1说明定牧后的值

LOCKTIME0X4C00000、PLL假定时问计数器OXOOKFKVTF

MPLL配置备存春:MDIV=I19:12],..

MPLLCON.0x4C00004,0x0005C0801

PDIV=p:4],SDIV=[1:O]

读得

UPLLCON0X4C00008UPLL配置寄存希.同上■0x00028080

CLKCON0X4C0000C..时忖信号生成控制备存粉

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论