推荐CMOS高速锁相环的研究与设计 精品文档格式.docx
《推荐CMOS高速锁相环的研究与设计 精品文档格式.docx》由会员分享,可在线阅读,更多相关《推荐CMOS高速锁相环的研究与设计 精品文档格式.docx(93页珍藏版)》请在冰豆网上搜索。
seraofrapiddevelopmentofelectronicinformation.
AtetrisgamesdesignmethodhasbeenintroducedinthisthesisbasedonSTC89C53MCU.ThissystemischieflyconstitutedofSTC89C53MCU,KXM12864JLCD,independentkeysandbuzzer.MCUisthecorecontrollerinthisdesign.Tomakerelatedinformationofthegameseenbyplayers,anareaisdifferentiatedshowingshapeofnextgraph,score,gametime,speedandlevelinthescreen.Whenplayingthisgame,wecancontrolthegraphshowntomoveleftandright,fallquicklyandtransformintoanotheroneflexiblybypressingkeys.Afterpassingonelevel,thescreenshowsus“GOODJOB”,orweget“GAMEOVER”.Thebuzzergivesoutdifferentsoundsmeanwhiletowarngame-playersofthecurrentstate.
Inthisdesign,thesimulationisdoneinProteussimulativesoftware.Codepiling,debuggingandmodificationofhardwarecircuitaredonewiththehelpofKielC51tool.Thenitisdebugedagainaftercircuitboardwelded.Finally,thesystemraslizesallthefunctionsofaminitypetetrismachine.
Keywords:
MCU;
KXM12864J;
Tetris;
Keil
1引言
1.1锁相技术的发展
锁相技术是一门实现相位自动控制的学科,是专门研究系统相位的技术。
利用锁相技术而成的锁相环PLL(Phase-LockedLoop)是一个闭环的相位自动控制系统,它的输出信号能够自动跟踪输入信号的相位变化,也可以将之称为一个相位差自动跟踪系统,它能够自动跟踪两个信号的相位差,并且靠反馈控制来达到自动调节输出信号相位的目的。
“锁相”的起源可以追溯到17世纪,荷兰天文学家、物理学家ChristianaHuygens,通过观察首次提出了“同步振荡器”(synehronizedoseillator)的概念,但因为当时科学技术条件的限制,并没有引起重视,得到应有的发展。
1932年法国科学家DeBelleseize在“LaReceptionSynehrone”一文中,首先公开发表了对锁相环路的数学描述,明确提出了“锁相”的概念,且运用此概念论述了无线电信号的同步接收。
但是他的同步检波理论在当时并没有引起普遍的重视。
直到1940年锁相环技术才得到了第一次成功的应用,在电视机水平扫描行同步装置中,有效的抑制外界噪声对同步信号的干扰,使电视图像的同步性能得到很大的改善。
同时,在此期间的第二次世界大战中,各种武器装备对锁相环提出了更多的要求,也极大地推动了锁相技术的发展。
为了满足这些极具挑战性的要求,很多先进的反馈控制理论在此期间得到发展。
随着对锁相技术理论以及应用的广泛而深入的研究,锁相技术己经成为一门比较系统的理论科学。
但是,研究的不断深入,科技技术的不断前进,新的物理现象和问题还是层出不穷,得不到解释。
因此直到现在,世界各国科技工作者对锁相环的理论和应用进行还在继续的进行研究,而且锁相环原理的应用已经深入到许多其他学科中去了,如气象学、海洋学、生物物理学、原子物理学等等。
在锁相环发展的最初阶段,PLL都是由分立元器件组成的,电路复杂,调整困难。
随着半导体集成技术的日趋成熟,锁相环技术成为模拟集成电路设计中一个重要的研究方向[3]。
之后的几年内就出现了数模混合的锁相环电路,以及后来的全数字锁相环电路。
这三种锁相环电路各有千秋,相互弥补,分别存在于各类电子产品中。
模拟锁相环在稳定工作时,各模块都可以认为是线性工作的,所以也称为线性锁相环。
模拟锁相环对正弦特性信号的相位跟踪非常好,环路特性主要由鉴相器的特性决定,主要用于对信号的调制解调。
模拟锁相环的优点是电路简单有效,低通滤波器设计良好时,输出频率纯净稳定,跟随性能好,理想情况下输出频率完全等于同步频率,对晶振压控特性的线性要求不高。
缺点是一旦失去基准频率,输出频率立刻跳回晶振本身的频率。
全数字锁相环的英文全称是AllDigitalPhase-LockedLoop,简称是ADPLL。
ADPLL的经典结构为鉴相器用过零检测数字鉴相器,环路滤波器一般用可逆计数器来实现,振荡器则用数控振荡器实现。
全数字锁相环具有精度高且不受温度和电压影响,环路带宽和中心频率编程可调,易于构建高阶锁相环等优点,缺点是不能过滤时钟源的抖动,会引入固有抖动,造成抖动的累积。
数模混合锁相环的部分环路部件为数字电路,但是环路控制仍是模拟形式。
数模混合锁相环的优点是相位误差、温度误差等较小,电路结构较简单,且噪声较小,具有高速低功耗等优越特性。
电荷泵锁相环CPPLL(Charge-PumpPhase-LockedLoop)是数模混合锁相环中的典型代表。
数模混合锁相环主要用于频率综合,时钟处理等领域。
虽然PLL技术已经发展了半个多世纪,但是由于其应用领域的扩展,而且高新科技的发展对它的性能又不断提出新的要求,所以一直以来PLL的设计与分析都是集成电路设计者的热点。
设计者们也不断的提出新的结构和新的分析方法,以满足不同应用的需要。
本文设计了一种高速电荷泵锁相环,并用0.13μmCMOS工艺实现。
利用Tanner软件进行仿真,并进行版图的绘制与验证。
2芯片简介
2.1单片机简介
单片微型计算机简称单片微机或单片机,又称微控制器(MCU)。
它是在一块半导体芯片上,集成了CPU、ROM、RAM、I/O接口、定时器/计数器、中断系统等功能部件,构成了一台完整的数字电子计算机。
该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性好且性价比高的设计方案。
随着集成电路技术的发展,单片机功能逐渐增强,由单片机构成的计算机应用系统的功能也日益增强,进一步深化了单片机在工业控制、自动检测、智能仪器仪表、家用电器等领域的突出地位[2]。
STC系列单片机功能基本相同,在此以STC89C51为代表进行简单介绍。
1.STC89C51单片机引脚
STC89C51单片机封装引脚如图2-1所示。
图2-1STC89C51单片机封装引脚图
STC89C51有4个8位可编程并行I/O口(P0、P1、P2、P3),1个全双工串行口,2个定时器/计数器,2个外部中断输入口。
各个引脚的功能说明如下:
GND:
接地端。
VCC:
电源端,接+5V。
XTAL1:
接外部石英晶体的一端。
在单片机内部,它是反相放大器的输入端,这个放大器构成了片内振荡器。
当采用外部时钟时,该引脚作为外部振荡的输入端。
XTAL2:
接外部石英晶体的另外一端。
在单片机内部,它是反相放大器的输出端。
RST:
该引脚为单片机的上电复位引脚,高电平有效。
当单片机电源电压达到单片机工作电压、同时单片机振荡器正常工作后,该引脚上必须持续两个机器周期的高电平,才可能实现复位操作,使单片机回到初始状态。
ALE/PROG:
地址锁存允许。
PSEN:
外部程序存储器读允许。
:
为0时,单片机只访问外部程序存储器。
P0口:
P0数据/低八位地址复用总线端口。
P1口:
P1静态通用端口。
P2口:
P2高八位地址总线动态端口。
P3口:
P3双功能静态端口。
P3口也可作为STC89C51的一些特殊功能口。
如:
P3.0为串行输入口(RXD),P3.1为串行输出口(TXD),P3.2为外部中断0(INT0),P3.3为外部中断1(INT1),P3.4为定时/计数器0的外部输入口(T0),P3.5为定时/计数器1的外部输入口(T1),P3.6为外部数据存储器写选通(WR),P3.7为外部数据存储器读选通(RD)。
由于本设计中定时器的应用很多而且很重要,在此对定时器/计数器T1、T0的使用方法进行简单说明:
STC89C51单片机内有两个可编程的定时器/计数器T1、T0。
两个定时器都具有定时器和计数器两种工作模式,四种工作方式(方式0、方式1、方式2和方式3),其控制字均在相应的特殊功能存储器中,通过对它的特殊功能寄存器编程,用户可方便地选择定时器/计数器的两种工作模式和四种工作方式。
定时器/计数器T0由特殊功能寄存器TH0、TL0构成,定时器/计数器T1由特殊功能寄存器TH1、TL1构成。
特殊功能寄存器TMOD用于选择定时器/计数器T1、T0的工作模式和工作方式。
特殊功能寄存器TCON用于控制T1、T0的启动和停止计数,同时包含了T1、T0的状态。
TMOD、TCON这两个寄存器的内容由软件设置[3]。
2.STC89C51单片机特点
STC89C51单片机是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,指令代码完全兼容传统8051单片机,其主要特点:
(1)增强型6时钟/机器周期,12时钟/机器周期,8051CPU。
(2)工作电压:
3.4~5.5V。
(3)工作频率0~40MHZ,实际工作频率可达48MHZ。
(4)应用程序空间8K字节。
(5)RAM存储容量为128B,可扩展至64KB。
(6)I/O口有32个,P0口开漏输出,作为I/O口需要上拉;
P1、P2、P3口是准双向/弱上拉。
(7)ISP,无需专用编程器/仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,8K程序3秒即可完成。
(8)具有看门狗,冷启动后为关闭状态。
(9)工作温度范围:
0~75
。
(10)STC89C51单片机的抗干扰与抗EMI辐射能力。
2.2KXM12864J简介
型的液晶显示模块种类繁多,而且大部分液晶显示模块都自带驱动,使用时直接连接控制器件即可。
型的液晶显示模块分为带字库的和不带字库的。
带字库的液晶显示模块可以直接从字库中调用汉字或字符,减少了代码长度,方便用户使用。
不带字库的液晶显示模块,每个字符要逐个按一定的规则送出显示,但掌握一定的使用方法后使用会很方便,可以显示汉字、字符和图形。
不带字库的液晶显示模块价格相对便宜又是其一大优势。
本次设计选用KXM12864J显示模块。
KXM12864J是一种不带字库的图形点阵液晶显示器。
它主要采用动态驱动原理由行驱动—控制器和列驱动器两部分组成了128(列)×
64(行)的全点阵液晶显示。
此显示器采用了COD的软封装方式(COD:
英文全称为CacheonDie,芯片内集成缓存),通过导电橡胶和压框连接LCD,使其寿命长,连接可靠。
1.KXM12864J的特点
(1)工作电压为
5V
10%,可自带驱动LCD所需的负电压。
(2)全屏幕点阵,点阵数为128(列)
64(行),可显示8(行)
4(行)个(16
16点阵)汉字,也可完成图形,字符的显示。
(3)与CPU接口采用5条位控制总线和8位并行数据总线输入输出,适配M
系列时序。
(4)内部有显示数据锁存器。
(5)简单的操作指令。
如显示开关设置,显示起始行设置,地址指针设置和数据读/写等指令。
2.KXM12864J的内部结构
KXM12864J内部主要包括以下部分:
数据显示RAM(DDRAM)、I/O缓冲器(DB0~DB7)、输入寄存器、输出寄存器、指令寄存器、状态字寄存器、
地址寄存器、Y地址计数器、Z地址计数器、显示起始行寄存器、显示开/关触发器、复位端RES、背光接线[4]。
KXM12864J的内部原理图如图2-1所示。
图2-1KXM12864J原理图
3.KXM12864J的软件应用规则
KXM12864J的指令功能:
(1)读状态字
状态字是MPU了解LCM(液晶显示模块)当前状态,或LCM向MPU提供其内部状态的唯一的信息渠道。
BUSY表示当前LCM接口控制电路运行状态。
BUSY=1表示LCM正在处理MPU发过来的指令或数据。
此时接口电路被封锁,不能接受除读状态字以外的任何操作。
BUSY=0表示LCM接口控制电路已外于“准备好”状态,等待MPU的访问。
ON/OFF表示当前的显示状态。
ON/OFF=1表示关显示状态,ON/OFF=0表示开显示状态。
RESET表示当前LCM的工作状态,即反映RES端的电平状态。
当RES为低电平状态时,LCM处于复位工作状态,标志位RESET=1。
当RES为高电平状态时,LCM为正常工作状态,标志位RESET=0。
在指令设置和数据读写时要注意状态字中的BUSY标志。
只有在BUSY=0时,MPU对LCM的操作才能有效。
因此MPU在每次对LCM操作之前,都要读出状态字判断BUSY是否为“0”。
若不为“0”,则MPU需要等待,直至BUSY=0为止。
(2)显示开关设置
该指令设置显示开/关触发器的状态,由此控制显示数据锁存器的工作方式,从而控制显示屏上的显示状态。
D位为显示开/关的控制位。
当D=1为开显示设置,显示数据锁存器正常工作,显示屏上呈现所需的显示效果。
此时在状态字中ON/OFF=0。
当D=0为关显示设置,显示数据锁存器被置零,显示屏呈不显示状态,但显示存储器并没有被破坏,在状态字中ON/OFF=1。
(3)显示起始行设置
该指令设置了显示起始行寄存器的内容。
LCM通过CS的选择分别具有64行显示的管理能力,该指令中L5~L0为显示起始行的地址,取值在0~3FH(1~64行)范围内,它规定了显示屏上最顶一行所对应的显示存储器的行地址。
如果定时间隔地,等间距地修改(如加一或减一)显示起始行寄存器的内容,则显示屏将呈现显示内容向上或向下平滑滚动的显示效果。
(4)页面地址设置
该指令设置了页面地址—X地址寄存器的内容。
LCM将显示存储器分成8页,指令代码中P2~P0就是要确定当前所要选择的页面地址,取值范围为0~7H,代表第1~8页。
该指令规定了以后的读/写操作将在哪一个页面上进行。
(5)列地址设置
该指令设置了Y地址数计数器的内容,LCM通过CS的选择分别具有64列显示的管理能力,C5~C0=0~3FH(1~64)代表某一页面上的某一单元地址,随后的一次读或写数据将在这个单元上进行。
Y地址计数器具有自动加一功能,在每一次读/写数据后它将自动加一,所以在连续进行读/写数据时,Y地址计数器不必每次都设置一次。
页面地址的设置和列地址的设置将显示存储器单元唯一地确定下来,为后来的显示数据的读/写作了地址的选通。
KXM12864J的接口时序:
(1)写操作将8位数据写入先前已确定的显示存储器的单元内。
操作完成后列地址计数器自动加一。
时序如图2-2所示。
图2-2写操作时序图
(2)读操作该操作将LCM接口部的输出寄存器内容读出,然后列地址计数器自动加一。
时序如图2-3所示。
图2-3读操作时序图
4.KXM12864J的显示方法
点阵式LCD的取模方式有逐列式、逐行式、列行式、行列式等。
本设计中选用列行式。
列行式就是:
先选择点阵的第一页,逐列查表显示一个汉字的上半部分,再选择第二页,逐列查表显示一个汉字的下半部分。
显示字符,一页就可以显示完整一个。
每次显示要先通过指令选中显示位置的页和列,然后将字模逐个送入。
(1)汉字取模
应用51单片机工具箱取汉字字模。
取字模的方法以汉字“唐”为例进行介绍。
设定每个汉字大小为16
16。
首先将汉字“唐”写入汉字字模生成工具16
16的点阵中,如图2-4所示。
图2-4汉字16
16点阵图
然后就可以生成“唐”字字模,“0xFF,0xFF,0xBF,0xBB,0xD8,0x1B,0xDB,0xAB,0x7A,0xAB,0x9A,0xAB,0xDA,0xAB,0xF2,0xAB,0xEA,0xAB,0xDA,0xAB,0x1A,0xAB,0xDE,0xFB,0xDD,0x7B,0xDB,0xBB,0xD7,0xAB,0xDF,0xF7”。
(2)字符取模
51单片机工具箱不可以实现字符取模,没有找到相应的取模工具,使用了一种比较传统的取模方式。
以字符“T”为例进行介绍。
设定每个字符大小为5
8。
首先将字符“T”写入5
8的点阵中,如图2-5所示。
图2-5字符5
8点阵图
然后每列从下往上读,亮的点为“1”,暗的点为“0”。
读出“T”的二进制字模“00000001,00000001,01111111,00000001,00000001”。
最后转换为十六进制字模“0x01,0x01,0x7F,0x01,0x01”。
3系统硬件的设计
俄罗斯方块游戏系统硬件电路的设计分为四大模块,分别是单片机最小系统模块、LCD显示模块、独立按键模块和声音模块。
硬件电路整体框图如图3-1所示。
图3-1硬件电路整体框图
1.单片机最小系统模块,包括电源电路、复位电路、振荡电路和下载接口电路。
2.LCD显示模块,采用KXM12864J型液晶显示器显示图形的形状、游戏得分游戏时间、游戏速度和游戏等级等信息。
3.独立按键模块,设定六个独立按键进行游戏操作,功能分别为左移、右移、快速下移、翻转、变形、确定和暂停,其中确定和暂停功能由一个独立按键来实现。
4.声音模块,主要由蜂鸣器构成,可以在不同的游戏进程发出不同的音乐,增加了游戏的娱乐性。
系统总体设计电路原理图见附录一。
3.1单片机最小系统的设计
单片机最小系统包括:
V直流电源电路、振荡电路、复位电路和下载电路。
下面分模块进行介绍。
3.1.1电源电路的设计
设计中单片机和LCD显示屏所需电源均为
V直流电。
一般将220V交流电转化为稳定的
V直流电的电路设计流程是把单相交流电经过电源变压器、整流电路、滤波电路和稳压电路转换成稳定的直流电[5],其框图如图3-2所示。
图3-2电源电路框图
由于上述供电方法需要220V到12V的电源变压器,这种变压器相对系统来说体积偏大,而且偏重。
本次设计选择USB供电和外部供电。
电路图如图3-3所示。
图3-3电源电路图
1.USB供电
在很多情况下使用USB供电比较方便,不必携带不方便的AC适配器。
在设计过程中电路板直接和笔记本电脑连接就可以供电。
所有主机USB设备(如PC和笔记本电脑)至少可以供出500mA电流或每个USB插口提供5个“单元负载”。
在USB述语中,“一个单元负载”是100mA。
自供电USB插孔也可以提供5个单元负载。
总线供电USB插孔保证提供一个单元负载(100mA)。
所有USB设备在连接主机时需要主机对其加以识别。
在识别过程中,主机决定USB设备的电源以及是否为其供电,对于被认可的设备将负载电流从100mA增大到500mA。
USB供电方式,可以选择比较简单的电路来实现。
如图3-3所示,在电路板上
只需要有一个USB接口,传输过来的电流经过滤波后接电源开关。
最后连接上熔断器,在电流过大时熔断器首先被烧坏使主板断电,可以有效的保护电路主板[6]。
2.外部电源供电
USB供电可能出现供电不足,在此又设计了外部供电。
外部供电方式,首先需要用电源变压器将220V交流电转变为直流电,然后经过滤波和7805稳压后与USB供电电路重合。
7805的引脚1是输入脚,接+8~+20V直流电源。
引脚2是接地脚,接直流电源的负极。
引脚3是输出脚,输出+5V的稳定电压,确保在输入交流电压波动或负载和温度变化时输出电压的稳定。
后面电路与USB供电电路重合,如图3-3所示。
3.电源指示灯电路
为了可以直观的观测到电源接通情况,在电源设计部分增加了电源指示灯电路,如图3-4所示。
图3-4电源指示灯电路图
此电路由一个发光二极管和一个1KΩ的限流电阻构成,两端连接电路板电源的正负极。
当按下电源开关时,电路板得电,同时指示灯亮。
3.1.2振荡电路的设计
单片机以晶体振荡器的振荡周期为最小的时序单位,片内的各种微操作都以此周期为时序基准。
STC89C53可以选用外部振荡方式和内部振荡方式。
内部振荡方式所得的时钟信号比较稳定,实用电路中实用较多,本设计选用内部振荡方式。
STC89C53中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶振一起构成自激振荡器,振荡电路如图3-5所示。
图3-5振荡电路图
外接晶振及电容C2、C3接在放大器的反馈回路中构成并联振荡电路。
外接电容C2、C3起稳定振荡频率,快速起振的作用。
对外接电容C2、C3虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,电容使用30pF
10pF,而如果使用陶瓷谐振器则选择30pF
10pF[7]。
在此选用石英晶体,电容使用30pF。
3.1.3复位电路的设计
STC89C53单片