新型高精度RC震荡器电路设计.docx
- 文档编号:24825106
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:47
- 大小:750.61KB
新型高精度RC震荡器电路设计.docx
《新型高精度RC震荡器电路设计.docx》由会员分享,可在线阅读,更多相关《新型高精度RC震荡器电路设计.docx(47页珍藏版)》请在冰豆网上搜索。
新型高精度RC震荡器电路设计
新型高精度RC震荡器电路设计
中国石油大学(华东)现代远程教育
毕业设计(论文)
题目:
新型高精度RC震荡器电路设计
学习中心:
重庆信息工程专修学院奥鹏学习中心
年级专业:
0409级电气工程及自动化
学生姓名:
张靓学号:
0451480509
指导教师:
韩亚军职称:
讲师
导师单位:
重庆信息工程专修学院
中国石油大学(华东)远程与继续教育学院
论文完成时间:
年月日
摘要
在对传统的震荡器电路的分析比较基础上,基于震荡器的基本工作原理,结合误差比较器技术,提出了一种新型高性能低功耗的RC震荡器。
利用CSMC的DPDMBsim3模型和Cadence的Spectre仿真器对该电路进行了模拟和仿真,结果表明该电路与传统的震荡器相比具有精度高、功耗低的优点。
在VLSICMOS电路设计中常常要用到一类专门用于产生信号的电路。
即振荡电路。
它可以将直流功率转换成为周期性的波形信号。
在设计中,常用到的振荡器有三种:
RC振荡器,环形振荡器和晶体振荡器。
RC振荡器是应用最为普遍的一种振荡器电路,它的结构简单,成本较低,另外该电路功耗也较低。
但是这种电路的工作电压极大地影响着它的频率,工艺相关性比较差,精度较差。
环形振荡器的振荡频率范围很宽,稳定度较高。
但是对电源噪声很敏感,布局尺寸面积较大。
晶体振荡器频率很准,而且工作稳定,其精度只与所选择的晶体器件固有频率有关。
但是它的功耗较大,不能集成在芯片内部。
所以本文提出了一种新型的RC振荡电路,该电路结构简单,能够在不增加功耗的条件下提高RC振荡器的精度,并且克服了传统RC振荡器波形占空比不易调节的缺点。
关键词:
RC振荡器,高精度,周期,误差比较器
第1章前言
新型高精度RC震荡器的探讨,是振荡电路若要满足频率稳定度、波形纯正度、温度特性、电源电压特性等,需要掌握的技术范围广大。
原因是进行优良的电路设计时,需要同时满足各种电气特性。
例如,以元器件廉价作为前提,要求设计的规格是振荡频率稳定性高、波形失真小时,这就需要研究兼顾两者的规格要求,采取折衷方案进行合理设计。
对于使用的元器件,有人说只要选用高性能元器件就能获得良好的波形,实际未必是这样的。
原因是元器件的性能也有与电气特性无关的时候。
那么,如何降低使用元器件的特性,降低到什么程度,这就需要掌握元器件的基本知识,电路设计技术以及电路的工作原理等。
若没有这些综合技术,就无法设计出性能均衡的振荡电路。
1.1课题任务
时钟在任何通信系统中都是非常重要的,时钟系统设计的好差直接关系到系统的稳定性。
因此我们需要用一个好的设计方案来实现。
本次设计的内容就是设计一个良好的时钟源。
本作品的主要技术指标:
主频:
2.048MHz;
分频:
64KHz、32KHz、16KHz、8KHz、1KHz;
精度:
0.1%。
1.2作品硬件设计
本作品工作系统具有极高的可靠性和稳定性,可工作与任何环境下.电路原理分为两部分:
时钟产生部分、分频部分。
(1)时钟产生部分采用石英晶体振荡器产生正弦信号,然后通过门电路得到方波。
(2)分频部分采用集成块CC4020,一种14位的计数器获得所需的频率。
(3)PCB的设计
1.3作品软件设计
软件设计部分为:
(1)用MAXPLUS-Ⅱ开发软件进行分频器原理图的设计与仿真
(2)分频用MAXPLUS-Ⅱ开发软件进行器VHDL语言的编写与仿真。
(3)将原理图和VHDL语言下载到器件中进行系统调试
第2章软件设计部分
2.1分频器的设计
计数器是数字系统中广泛应用的一种时序逻辑功能器件。
其基本功能是统计时钟脉冲的个数,即实现计数操作,也可以用于分频、定时、产生节拍脉冲等。
例如计算机中的时序发生器、分频器、指令计数器等都要用到计数器。
计数器的种类很多,分类方法也不相同:
(1)按照脉冲输入方式的不同,可以份为同步计数器和异步计数器
(2)按进位体制的不同,可以分为二进制和非二进制计数器
(3)按计数过程中数字增减趋势的不同,可以为加计数器、减计数器和可逆计数器。
大家都知道触发器有两个稳定状态,在外来信号作用下,触发器可以从一个稳定状态转换成另一个稳定状态;没有触发信号时,触发器保持原来的稳定状态。
我们把触发器的这种特性叫做“记忆”,利用触发器的这种“记忆”功能可以构成各种类型的计数器。
2.2D触发器工作原理及其特性
图2-1为D触发器逻辑图。
G1、G2构成基本RS触发器,Rd、Sd为直接复位、置位端,G3、G4、G5、G6构成维持阻塞触发方式的引导回路,D为信号输入端,CP为时钟脉冲输入端。
图2-1D触发器逻辑结构图
2.2.1逻辑功能
(1)D=0:
无论触发器原来状态如何,在脉冲没有到来之前,G3、G4输出均为1,基本RS触发器维持不变。
当时钟脉冲到来之后,由于D=0,G5输出Q5=1。
在Q5和CP=1的作用下,G3输出Q3=0,G1输出Q就为1,那么Q=0(与D=0对应,即记住D的状态)。
同时,Q3=0通过反馈线使G5的输出Q5=1。
在CP=1期间,无论D怎么变化,都不会影响触发器。
(2)D=1:
无论触发器处于什么状态,在时钟脉冲没有到来之前,CP=0,G3、G4输出均为1,触发器维持不变。
同时Q3=1和D=1,使Q5=0,Q6=1。
当时钟脉冲到来后,在CP=1和Q6=1的共同作用下,G4输出Q4=0,G2输出Q=1,它与D端对应。
同时,G4的输出Q4=0反馈到G6的输入端,保证了G6的输出Q6=1,在CP=1期间,无论D怎么变化,都不会影响触发器的状态。
2.2.2逻辑真值表,状态转换图
由上分析可得逻辑真值表和状态转换真值表以及逻辑函数关系式;Qn+1=D
表2-1状态转换真值表
Qn
D
Qn+1
0
0
0
1
0
0
0
1
1
1
1
1
表2-2逻辑真值表
D
Qn+1
0
0
1
1
该触发器的特点:
1触发器输出状态的转换发生在CP脉冲的上升沿。
2触发器所保留下来的状态仅仅是CP上升沿到达之前的D端信号。
2.3分频器的设计
我们知道二进制是逢二进一。
在二进制中只有0和1两个数符。
而触发器的也具有高低电平状态,因此可以用一个触发器表示1位二进制数。
用12个触发器可以构成12位计数器。
图2-1给出了分频器的电路图,该电路是由12个上升沿触发的D触发器组成的12位的二进制异步加计数器。
图中各个触发器的Q输出端都与一个非门相连,然后非门的输出端与该触发器的D端相连(即Di=Qi),把D触发器转换成计数型触发器T。
同时,各Q端与相邻高1位触发器的时钟脉冲输入端相连。
计数器过程:
当设备电源接通时,一个负脉冲加到CLRN端,进行清零,使计数器的状态为000000000000。
由于第1个触发器处于0状态,Q0=0,D0=0。
当第1个计数脉冲CP加至第一个触发器时钟脉冲输入端时,该触发器的Q0由0变为1是正跳变所以使后面的触发器都翻转。
这时的计数器的状态为111111111111。
当第2个计数脉冲到来后,第1个触发器的Q0由1变为0是负跳变所以后面的触发器不翻转,此时的计数器的状态为111111111110。
当第3个计数脉冲到来后,第1个触发器的Q0由0变为1是正跳变使得第二个触发器翻转,Q2由1变为0,第3个触发器及后面的触发器不翻转。
此时计数器的状态为11111111101。
当第4个计数脉冲到来后,第1个触发器的Q0为1变为0是负跳变,后面的触发器不翻转,此时计数器的状态为11111111100。
依次类推,每输入一个计数脉冲,第1位触发器翻转一次,而第2位触发器在第一位触发器Q0由0变为1的时候翻转,同样第3位触发器是在第2位触发器Q2由0变为1时才翻转1次。
而每输入一个计数脉冲,第一个触发器就翻转一次。
当Q0由1变为0时第二个触发器翻转一次,其它的触发器按照同样的方式翻转。
输入第40960000个脉冲后,计数器又回到1111111111状态。
这标志着十二位计数器计数完毕,开始下一个循环计数。
由此可知该计数器是一个异步减计数器。
图2-2计数器
把上面分析过程用波形来表示:
图2-3时钟波形图
由图2-3可以看出每经过一级触发器,脉冲的周期就会增加一倍,即频率降为原来的1/2。
于是第2位触发器Q端波形为二分频我们取,第6,7,8,9,12位触发器的Q端就可以得到我们,所需要的时钟。
2.4MAXPLUS-Ⅱ软件的使用
2.4.1特点
MAX+PLUSⅡ是MultipleArrayMatrixandProgrammableLogicUserSystem的缩写,它提供了与结构无关的设计环境,支持FLEX、MAX、及Classic系列器件,其简单易学、易用、可视化、集成化设计环境等优点为业界所公认。
MAX+PLUSⅡ具有开放的界面,支持多平台工作,还具有核开放的特点,允许设计人员添加自己的宏功能模块。
充分利用这些模块,可以大大减轻设计的工作量,成倍的缩短开发周期。
该软件支持各种语言输入,包括VHDL、Verilog、和Altera自己的硬件描述语言AHDL。
2.4.2设计流程
使用MAX+PLUSⅡ的设计过程如图2-4所示,若任一步出错或未达到设计要求则应修改设计,然后重复以后各步。
图2-4MAX+PLUSⅡ的设计流程
(1)输入设计项目
逻辑设计的输入方法有原理图输入(gdf)、文本输入、(vhd)、波形输入(wdf)以及第三方EDA工具生成的文件。
输入方法不同,生成设计文件的名称后缀就不同。
(2)编译设计项目
首先,根据设计项目要求设定编译参数和编译策略,然后对设计项目进行网表提取、逻辑综合、器件适配,并产生报告文件(rtp),延时信息文件(snf)等,供分析、仿真和编程使用。
(3)校验设计项目
设计项目校验方法包括功能仿真、模拟仿真和定时分析。
我们采用的是功能仿真,是指在不考虑器件延时的理想情况下仿真设计项目的一种项目验证方法,成为前仿真。
通过功能仿真可以验证一个项目的逻辑功能是否正确。
(4)编程验证设计项目
用MAX+PLUSⅡ编程器通过Altera编程硬件或其它工业标准编程器,将经过仿真后的编程目标文件编入所选定的Altera可编程逻辑器件中,然后加入实际激励信号,测试是否达到设计要求。
2.5原理图的输入
(1)打开MAX+plusII
(2)新建一个图形文件:
File菜单->new
新建文件时选择GraphicEditor
(3)输入设计文件
现在图形文件中输入电路,这个电路需要dff、NOT两个逻辑门电路和输入、输出端,
依次点击:
Symbol->EnterSymbol(或者双击空白处)
弹出窗口如图2-5
图2-5窗口对话框
在SymbolName中输入dff,点OK
同样可以加入not、input、output
对input、output,鼠标左键双击PIN_NAME,那么PIN_NAME被选中,并且变黑,然后输入你要改的名字,如clk如图2-6
图2-6clk示意图
把元件拖动到合适位置,将光标放到元件的引线出,可以发现光标变为十字星,此时摁住左键就可以进行连线。
最后的电路图如图2-7
图2-7电路图
(4)保存文件:
点击file菜单﹥saveas。
保存为majority_voter.gdf,AutomaticExtension选.gdf把文件设为当前工程:
FILE->PROJECT->SETPROJECTTOCURRENTFILE,这时MAX+PLUSII的标题条将显示新的项目名字。
如图2-8所示:
图2-8项目示意图
2.6编译
我们先要指定所用芯片的型号,
菜单:
Assign->Device
如图2-9所示
图2-9Device编译对话框
将弹出一窗口(注意把showonlyfastestspeedgrades前的钩去掉,否则看不到EPM7064SLC44-10)
图2-10EPM7064SLC44-10编译对话框
在DebiceFamily中选择MAX7000S,DEVICE选择EPM7064SLC44-10。
然后依次执行File->Project->save&Compile
如果设计正确,将如下图2-11所示,点确认
图2-11编译对话框
2.7波形仿真
此过程主要是用软件来仿真你的设计,看看结果是否符合你的设计要求
编译好以后,打开波形编辑器,MAX+PLUSII->WaveformEditor
然后载入端口,Node->EnterNodesfromSNF
将弹出如下对话框:
图2-12EnterNodesfromSNF对话框
点List,将出现端口列表,你默认是选择全部,你也可以通过左键和Ctrl组合来选择你想要的信号。
点=>将你的信号加入SNF文件中,然后点OK。
图2-13ListSNF对话框
然后设置仿真结束时间(这个在设计中也经常用到,否则默认的仿真时间只有1us)点击:
File->EndTime设置为100us。
图2-14EndTime对话框
GrideSize:
设置网格大小(这个非常有用,在一些设计中经常要改变网格大小,便于选择
SnaptoGrid:
鼠标按网格选取,用鼠标左键可以决定是否选取
ShowGrid:
显示网格
下面我们将对信号进行赋值,首先选中一个要赋值的信号区间,如SW3的10us到20us范围,按住鼠标左键,在SW3的10us到20us的范围只能够那拉出一个黑色区域,松开鼠标左键,再点左边工具栏上的“1”,使这个时间段,SW3就被赋值为高电平,如下图:
(注意时间不要选择太小,比如就选10ns,这样结果可能不对,因为电路的延迟可能就达到10ns)
图2-15SW3对话框
将其他信号按希望的加上激励
点OK,将会防真,如果正确会弹出窗口(图2-16)
图2-16防真对话框
点确认,再点openSCF,将出现防真后的波行
图2-17波形示意图
图2-17中CLK为时钟源,经过二分频后得到Q1,经过64分频得到Q2,128分频后得到Q3,256分频得到Q4,从图中可以看出,Q4的周期为Q3的2倍,也就是说Q4的频率为Q3的一半。
依次类推,可以得出结论波形图显示的逻辑功能和设计目的完全一样
2.8VHDL语言设计
该部分由同组的同学设计,其具体的实现过程为:
新建VHDL文档
FILE->NEW
图2-18新建VHDL文档
连后选择TextEditorFile文件,点OK如下图2-19
图2-19TextEditorFile对话框
输入设计文件
在文本窗口中输入以下VHDL源程序:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityclk_divis
port(clk:
instd_logic;
clk_div2:
outstd_logic;
clk_div64:
outstd_logic;
clk_div128:
outstd_logic;
clk_div256:
outstd_logic;
clk_div512:
outstd_logic;
clk_div4096:
outstd_logic
);
endclk_div;
architecturertlofclk_divis
signalcount:
std_logic_vector(5downto0);
begin
process(clk)
begin
if(clk'eventandclk='1')then
ifcount="111111111111"then
count<=(others=>'0');
else
count<=count+1;
endif;
endif;
endprocess;
clk_div2<=count(0);
clk_div64<=count
(1);
clk_div128<=count
(2);
clk_div256<=count(3);
clk_div512<=count(4);
clk_div4096<=count(5);
endrtl;
保存文件
FILE->SAVE,或点工具栏上的存盘符号
图2-20保存对话框
把文件保存为majority_voter.vhd(路径中不要有中文字符,AutomaticExtension选.vhd)
图2-21majority_voter.vhd对话框
把文件设为当前工程:
FILE->PROJECT->SETPROJECTTOCURRENTFILE
至此,程序输入就已经完成了。
对于程序的编译、仿真实现,与原理图类似在此不再赘述。
2.9下载验证:
1.DEVICE选择
指定芯片的管脚(也就是把你设计的IO口如clk,clr指定到芯片对应的管脚上)Assign->Pin/Location/Chip(也可以在空白处点右键,选Assign->Pin/Location/Chip)
图2-22Pin/Location对话框
将弹出下图窗口:
图2-23对话框
在NodeName中添入clk,ChipResource下的Pin中输入管脚43,在Pintype中输入input,点ADD连后同样指定以下管脚:
表2-3管脚输入值
Nodename
pin
Pintype
clk
44
input
clr
45
input
Q1
36
output
Q2
37
output
Q3
34
output
Q4
33
output
Q5
40
output
点击菜单MAX+plusII->programmer
图2-24programme对话框
将会弹出编程窗口:
图2-25编程窗口
我们现在先要选择适当的编程器:
(一定要打开编程窗口才可以看到这些设置)
图2-26编程窗口设置
设置如下:
HardwareType选择ByteBlaster[MV]
图2-27ByteBlaster[MV]窗口设置
点击图中的Program,将看到红条不断添满状态条,最后弹出编程成功的窗口,如图
图2-28编程成功的窗口
下载结束后,就可以用示波器和频率计,测量相应管脚的频率和波形。
通过测量,所得到的时钟信号正是我们需要的。
到此我的软件部分设计已经完成,在这个过程中,我熟悉了该软件的使用,通过使用该软件,我完成了我的设计任务。
第3章RC震荡器基本工作原理
3.1传统RC震荡器电路
图3-1给出了最基本的振荡器电路的结构,其中EN为使能信号端,
图3-1与非门与反相器组成的RC振荡器电路
当其为高时,电路正常工作。
振荡频率取决与RC的乘积,近似估算值为:
T=2.2RC[2]。
在振荡器的输入端加上“施密特触发器”,对输入信号做滤波处理,达到了对波形整形的目的,在一定程度上提高了RC振荡器周期的精度。
但是,这种振荡器的周期在本质上还是由RC的乘积所决定,所以,它不能从本质上提高RC振荡器的周期精度。
这种电路结构如图3-2所示。
RC振荡器有RC移相振荡器和桥式振荡器2种,而应用最多的属RC桥式振荡器,即文氏桥振荡器。
已具有较好的正弦波振荡波形,输出信号幅度稳定,非线性失真小,频率调节范围宽等优点,因此在低频振荡器中获得广泛应用。
3.2RC文氏桥震荡器的工作原理
文氏桥振荡器由一个具有选频作用的正反馈网络与一个具有负反馈的两级同相放大器组成,其方框图如图3-2所示。
正反馈网络由R1C1、R2C2组成,其反馈系数为:
(3-1)
整理后得:
(3-2)
图3-2RC文氏桥振荡器方框图
取R1=R2=R,C1=C2=C,则上式简化为
(3-3)
由(3-1)式可见,正反馈系数是一复数,并且是频率的函数,其幅模与相角随频率的变化关系如图3-3所示:
图3-3
及
的频率关系曲线
其模为:
(3-4)
相移为:
(3-5)
的模反映出选频网络的输出与输入信号幅度之比相移甲反映了选频网络输出信号相对输入信号的相位差。
由振荡器原理可知,要产生振荡必须首先满足相位条件,即要求反馈电压
与放大器输入电压
同相,一般放大器采用两级阻容耦合放大器,其输出电压
与输入电压
同相,因此,要
产生振荡必须使
与
同相,即反馈系数
应为实数,由(3-1)式可见,要使
为一实数,必须满足:
即当
时,模
以上说明,只有在
这个频率,反馈系数才为一实数,且为最大值。
也就是说,只有在
这个频率才能产生振荡,这就是正反馈网络的选频作用,振荡频率的大小由它的元件数值决定,改变R或C的数值就可以改变振荡频率。
在满足相位条件的基础上,产生振荡的第二个条件是振幅条件,即必须满足
或
(3-4)式中Au是两级放大器的电压增益Au>1/F是振荡的起振条件,Au=1/F是振荡的振幅稳定条件,由(3-4)式得出,振荡稳定时,放大器的增益Au=3,起振时,必须使Au>3。
如果放大器不加负反馈,则增益Au很容易大于3,起振容易,但振幅稳定必须靠非线性元件使Au由大于3减小到等于3,此时振荡波形必然失真。
为了使振荡波形为良好的正弦波,而又易于起振,在放大器中引入一定量的负反馈,并使这个负反馈支路含有非线性元件,常用的非线性元件一般是热敏电阻,热敏电阻的阻值随电压的增高而减小。
起振时热敏电阻的阻值大,负反馈支路的反馈系数小,使同相放大器放大信数Au>30
总结以上所述,得出RC文氏桥振荡器的几点结论:
①由振荡的相位条件得出振荡的频率决定于正反馈网络的元件数值。
②由振荡的振幅条件决定了放大器的增益,以及引入负反馈的原因。
③为了使振荡稳定而又不失真,必须在负反馈支路中引入非线性元件。
3.3新型高精度RC震荡器
图3-4带施密特触发器的RC震荡器
RC振荡器不够稳定而且精度不高的主要原因是因为它的电平翻转与电源电压的跳变密切相关。
如果采用两路信号作误差比较,由于这两路信号同时都受到电源电压变化的影响,在作误差比较的时候可以消除或者部分消除电源电压的影响,从而使振荡器的波形稳定。
传统的RC振荡器精度不高的另一个原因是它的周期主要依赖RC的乘积。
为了提高精度,可以使振荡器的周期主要由误差比较器的延迟时间来决定,而用RC的充放电时间来微调。
这样可以得到相对精度较高的振荡器电路。
改进后的电路原理图如图3-5所示。
1工作原理
图3-5改进后的高精度RC震荡器电路图
信号线Y2引入的是控制信号,当Y2为高的时候,N5导通,P4截止,R1和R2分压,提供参考电压Vref,该电路正常工作;否则电路停止工作,振
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新型 高精度 RC 震荡 电路设计
![提示](https://static.bdocx.com/images/bang_tan.gif)