电压控制LC振荡器的_第1页
电压控制LC振荡器的_第2页
电压控制LC振荡器的_第3页
电压控制LC振荡器的_第4页
电压控制LC振荡器的_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

第16章电压控制LC振荡器的设计与分析,16.1系统设计要求16.2系统设计方案16.3主要VHDL源程序和汇编语言程序16.4系统仿真/硬件验证16.5设计技巧分析16.6系统扩展思路,16.1系统设计要求,设计并制作一个电压控制LC振荡器,具体要求:(1)振荡器输出无明显失真的正弦波;(2)输出频率范围:1535MHz;(3)输出频率稳定度:优于0.001;(4)输出电压峰-峰值:1V0.1V;(5)可实现输出频率步进及显示,步进间隔为100kHz;(6)实时测量并显示振荡器的输出频率。,16.2系统设计方案,16.2.1系统设计总体方案根据系统的设计要求,本系统可分为两大部分:电压控制LC振荡源电路和压控LC振荡源的测控和显示电路。其中电压控制LC振荡源电路部分综合考虑各方面的因素,本系统拟用变容二极管构成频率可调的LC振荡器,而变容二极管的电压则由锁相环频率合成器MC145152进行控制。,16.2.2电压控制LC振荡器的设计电压控制LC振荡器主要包括4个部分:压控LC振荡器电路、MC145152锁相环电路、精度达10-5的温补晶体基准频率发生电路、LM258组成的电压比较器电路,其电路原理图如图16.2所示。,图16.1系统总体原理框图,图16.2电压控制LC振荡器的电路原理图,1压控LC振荡器电路(VCO)压控LC振荡器电路(VCO)由分立元件L、C组成。由于变容二极管的结电容随反向偏压增加而减少,因此若电路中的电容选用变容二极管作反向运用并加上控制电压,就可改变由LC决定的振荡器的频率。若电感的值一定,则可调频率的范围由变容二极管的容量变化范围决定。,图16.3等效的LC振荡回路,本设计中变容二极管调频电路如图16.2所示,图中L1是振荡器的振荡线圈,等效的LC振荡回路如图16.3所示。具体计算过程如下。根据图16.3可得振荡回路中的等效电容为,(d为变容二极管的节电容),当f=15MHz时,由可得,解方程得Cd375pF。,2锁相环及其工作原理本设计中锁相环选用摩托罗拉公司生产的锁相环频率合成器专用芯片MC145152,其内部组成方框图如图16.4所示,其工作原理如下所述。,图16.4MC145152内部组成方框图,表16.1MC145152中R值的设置及步进对应表,3锁相环MC145152的控制根据本系统的设计要求,步进频率要求设置为100kHz,因此要求R分频器采用128分频,即将RA0、RA1、RA2分别设置为0、1、0。在本设计中,因为fd直接输入fin,而且步进是100kHz,所以分频系数不会出现小数,故可将A5A0直接置0。,16.2.3FPGA测控专用芯片的VHDL程序设计根据系统的总体设计方案,FPGA测控专用芯片的输入信号有:FIN被测频率信号输入端;CLK200Hz基准信号输入端;ENADDSUB的控制信号端口,在EN的上升沿,ADDSUB可加载到FPGA;ADDSUB1.0对MC145152的控制输入,当其为“00”时,将发射频率设定在25MHz,当其为“01”时,每按一次升频键,发射频率以100kHz增加,,当其为“10”时,每按一次降频键,发射频率以100kHz降低,当其为“11”时,对FPGA不起作用;SEL1.0输出选择,当其分别为“00”、“01”、“10”、“11”时,输出为频率计数器的第07位、第815位、第1623位、第1623位。输出信号有:CTR9.0MC145152控制信号输出口;DATA7.0FPGA到单片机的数据输出口,与单片机的P0口相连,由SEL1.0控制输出的内容。其应实现的功能就是负责控制MC145152和实时测量压控振荡器输出信号的频率。,图16.5FPGA测控专用芯片组成框图,16.2.4单片机控制程序的设计本系统中单片机AT89C51负责键盘处理、各工作状态的串行显示,以及配合FPGA测控和频率的预置,具体包括单片机主程序,预置频率加1子程序,预置频率减1子程序,键扫子程序,测频率子程序,显示子程序等程序,各程序的流程图如图16.6图16.11所示。,图16.6单片机主程序流程图,图16.7预置频率加1子程序流程图,图16.8预置频率减1子程序流程图,图16.9键扫子程序流程图,图16.10测频率子程序流程图,图16.11显示子程序流程图,16.3主要VHDL源程序和汇编语言程序,16.3.1FPGA的VHDL源程序-YKZTQ.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYYKZTQISPORT(FIN:INSTD_LOGIC;-被测频率信号输入端CLK:INSTD_LOGIC;-200Hz基准信号输入端,EN:INSTD_LOGIC;-ADDSUB的控制信号ADDSUB:INSTD_LOGIC_VECTOR(1DOWNTO0);-修改对MC145152的控制SEL:INSTD_LOGIC_VECTOR(1DOWNTO0);-输出数据段选择信号CTR:OUTSTD_LOGIC_VECTOR(9DOWNTO0);-MC145152控制信号DATA:OUTSTD_LOGIC_VECTOR(7DOWNTO0)-输出至单片机);ENDENTITYYKZTQ;,ARCHITECTUREARTOFYKZTQISSIGNALDATAA:STD_LOGIC_VECTOR(23DOWNTO0);-信号计数SIGNALDATAC:STD_LOGIC_VECTOR(23DOWNTO0);-锁存频率计数值SIGNALCLKIN:STD_LOGIC;-50Hz频率SIGNALCONTROL:STD_LOGIC_VECTOR(9DOWNTO0);-MC145152控制信号SIGNALLOAD:STD_LOGIC;-数据锁存使能BEGIN,-MC145152控制模块SXHKZ:BLOCKISBEGINPROCESS(EN,ADDSUB)ISBEGINIFENEVENTANDEN=1THENIFADDSUB=00THENCONTROL=0011111010;ELSIFADDSUB=01THENCONTROL=CONTROL+1;ELSIFADDSUB=10THENCONTROL=CONTROL-1;ENDIF;ENDIF;,CTR=CONTROL;ENDPROCESS;ENDBLOCKSXHKZ;-测控信号发生模块CKXH:BLOCKISBEGINPROCESS(CLK)ISVARIABLECOUNT:STD_LOGIC;BEGINIFCLKEVENTANDCLK=1THENIFCOUNT=1THENCOUNT:=0;CLKIN=NOTCLKIN;,ELSECOUNT:=NOTCOUNT;ENDIF;ENDIF;LOAD=NOTCLKIN;ENDPROCESS;ENDBLOCKCKXH;-频率测量模块PLCS:BLOCKISSIGNALCLR:STD_LOGIC;-频率计数清零信号BEGIN,PROCESS(CLK,CLKIN)ISBEGINIFCLK=0ANDCLKIN=0THENCLR=1;ELSECLR=0;ENDIF;ENDPROCESS;PROCESS(FIN,CLR)ISBEGINIFCLR=1THENDATAA=000000000000000000000000;,ELSIFFINEVENTANDFIN=1THENDATAA=DATAA+1;ENDIF;ENDPROCESS;ENDBLOCKPLCS;-数据锁存模块SJSC:BLOCKISSIGNALDATAB:STD_LOGIC_VECTOR(23DOWNTO0);BEGINPROCESS(LOAD)IS-计数值锁存BEGINIFLOADEVENTANDLOAD=1THEN,DATAB=DATAA;ENDIF;ENDPROCESS;PROCESS(CLKIN)IS-送显示数据的锁存VARIABLEA:STD_LOGIC_VECTOR(5DOWNTO0);BEGINIFCLKINEVENTANDCLKIN=1THENIFA=000011THEN-IFA=110001THENA:=000000;DATAC=DATAB;ELSE,A:=A+1;ENDIF;ENDIF;ENDPROCESS;ENDBLOCKSJSC;-输出选择模块SCXZ:BLOCKISBEGINDATA=DATAC(7DOWNTO0)WHENSEL=00ELSEDATAC(15DOWNTO8)WHENSEL=01ELSEDATAC(23DOWNTO16)WHENSEL=10ELSEDATAC(23DOWNTO16);ENDBLOCKSCXZ;ENDARCHITECTUREART;,16.3.2单片机的汇编语言源程序;YKZTQ.ASMLED8EQU7FH;显示单元LED7EQU7EHLED6EQU7DHLED5EQU7CHLED4EQU7BHLED3EQU7AHLED2EQU79HLED1EQU78HFDY8EQU3FH;测频率单元,FDY7EQU3EHFDY6EQU3DHFDY5EQU3CHFDY4EQU3BHFDY3EQU3AHFDY2EQU39HFDY1EQU38HFUNKEYEQUP1.0;测频率SELKEYEQUP1.1;预置,上调FIXKEYEQUP1.2;修改,下调LOADEQUP2.7DDQUP2.6,SEL2EQUP2.5SEL1EQUP2.4RUNBZEQUP2.2ADBEQUP2.1ADAEQUP2.0INT_R1EQU46HINT_R0EQU47HINT_R2EQU48HKEYNUMEQU49HORG00HLJMPMAINORG30H,MAIN:CLEAR:MOVR0,#00HMOVR1,#128MOVA,#00HL1:MOVR0,AINCR0DJNZR1,L1MOVSP,#60HMOVP2,#00HSETBRUNBZCLRRUNBZLCALLNL0MOVLED3,#02H;初值为25MHz,MOVLED2,#05HMOVLED1,#00HMOV5FH,#01H;100kHz,0.1MHzMOV5EH,#00HMOV37H,#0FAHMOVLED8,#0AHLCALLDISPML0:LCALLKKEYIMLL2:CJNEA,#00H,ML1SETB28H.0CLR28H.1,ML00:LCALLTESTFLCALLKKEYIIJNB28H.3,ML1LJMPML00ML1:CJNEA,#01H,ML11CLR28H.0SETB28H.1LCALLJIACLSETBSEL1SETBRUNBZCLRRUNBZCLRSEL1LJMPML0,ML11:CJNEA,#02H,ML2CLR28H.0SETB28H.1LCALLJIANCLSETBSEL2SETBRUNBZCLRRUNBZCLRSEL2ML2:LJMPML0JIACL:MOV4EH,36HMOV4FH,37HLCALLADDMB,MOV36H,4EHMOV37H,4FHMOV22H,4DHMOV21H,4EHMOV20H,4FHLCALLHEXBCD2MOVLED8,#0BHMOVLED7,#12HMOVLED6,#12HMOVLED5,#12HMOVLED4,#12HLCALLDISPRET,JIANCL:MOVR2,36HMOVA,37HMOVR0,#5FHLCALLSUBB2MOV36H,R2MOV37H,AMOV22H,35HMOV21H,36HMOV20H,37HLCALLHEXBCD2MOVLED8,#0BHMOVLED7,#12H,MOVLED6,#12HMOVLED5,#12HMOVLED4,#12HLCALLDISPRETSUBB2:CPLAADDA,R0CPLAINCR0XCHA,R2,CPLAADDCA,R0CPLAXCHA,R2DECR0RETTESTF:ANLP2,#0FCHMOVR0,#3FH;读入数据MOVR3,#03H;读3次P0口,TFL0:MOVA,P0MOVR0,ADECR0MOVA,P2INCA;指向CPLD下一个数据ADRCADRBADRA=MOVP2,ADJNZR3,TFL0ANLP2,#0FCHMOV58H,3EH;另存,MOV59H,3FHMOV22H,3DHMOV21H,3EHMOV20H,3FHLCALLHEXBCD2MOVA,LED7CJNEA,#00H,FL4MOVLED7,#12HMOVA,LED6CJNEA,#00H,FL4MOVLED6,#12H,FL4:MOVLED8,#0BHLCALLDISPRET;显示程序DISP:MOVR0,#LED8;预置显示单元MOVR1,#08HJNB28H.0,DL0,DLL0:MOVA,R1CJNEA,#05H,DL3LJMPDL4DL0:MOVA,R1CJNEA,#02H,DL3LJMPDL4DL3:MOVA,R0MOVDPTR,#TAB1MOVCA,A+DPTRMOVSBUF,ALJMPDL1,DL4:MOVA,R0MOVDPTR,#TAB1MOVCA,A+DPTRORLA,#01HMOVSBUF,ADL1:JNBTI,DL1CLRTIDECR0DJNZR1,DL8LJMPNEXT4,DL8:JB28H.0,DLL0;JB28H.1,DL0LJMPDL0NEXT4:RET;a,b,c,d,e,f,g,hTAB1:DB0FCH,60H,0DAH;012DB0F2H,66H,0B6H;345DB0BEH,0E0H,0FEH;678DB0F6H,0EEH,3EH;9ABDB9CH,7AH,9EH;CDEDB8EH,0CEH,02H;FP-DB00H,0CFH,6EH;NL,P.,H;BCD转换及送显缓,HEXBCD2:NOP;3BYTEHEXTO4BYTEBCDHEX(2220H)-BCD(2623H)MUBTD:MOVR0,#23HMOVR7,#04HCLRALOPP1:MOVR0,AINCR0DJNZR7,LOPP1MOVR7,#18H;32BITLOOP4:MOVR1,#20HMOVR6,#03HCLRC,LOPP2:MOVA,R1RLCAMOVR1,AINCR1DJNZR6,LOPP2MOVR5,#04HMOVR0,#23HLOOP3:MOVA,R0ADDCA,R0DAAMOVR0,AINCR0,DJNZR5,LOOP3DJNZR7,LOOP4SBCD:MOVR0,#23H;MOVR1,#LED1SL1:MOVR3,#04HHEX1:MOVA,R0ANLA,#0FHMOVR1,AINCR1MOVA,R0ANLA,#0F0HSWAPA,MOVR1,AINCR1INCR0DJNZR3,HEX1NEXT2:RET;数码管熄灭子程序NL0:MOVR0,#LED1JNB28H.1,NL1MOVR0,#FDY1NL1:MOVR1,#08H,CLRRT:MOVR0,#12HINCR0DJNZR1,CLRRTRET;键盘子程序KKEYII:LCALLKKS1;KEYSCANNINGPROGJNZKLK1;有按键,转跳KLK1KNN1:LCALLDELAY;LCALLDELAYSETB28H.3RET,KKEYI:LCALLKKS1;KEYSCANNINGPROGJNZKLK1;有按键,转跳KLK1KN1:LCALLDELAY;LCALLDELAYLJMPKKEYI;无按键,转跳KKEYI继续测键KLK1:LCALLDELAY;LCALLDELAYLCALLKKS1JNZKLK2;确实有按键,转跳至KLK2LCALLDELAYLJMPKKEYI,KLK2:NOP;THEREISKEYIJBP1.0,NOK1MOVA,#00HLJMPGOHMNOK1:NOPJBP1.1,NOK2MOVA,#01HLJMPGOHMNOK2:NOPJBP1.2,NOK3MOVA,#02HLJMPGOHM,NOK3:NOPJBP1.3,NOK4MOVA,#03HLJMPGOHMNOK4:NOPJBP1.4,NOK5MOVA,#04HLJMPGOHMNOK5:NOPJBP1.5,NOK6MOVA,#05HLJMPGOHM,NOK6:NOPJBP1.6,NOK7MOVA,#06HLJMPGOHMNOK7:NOPJBP1.7,KLK1MOVA,#07HGOHM:PUSHACCKLK3:LCALLDELAYLCALLKKS1,JNZKLK3LCALLDELAYLCALLDELAYLCALLKKS1JNZKLK3POPACCCLR28H.3RETKKS1:MOVP1,#0FFH;ISTHEREANYLCALLDELAYLCALLDELAYMOVA,P1,CPLARET;IFTHEREISKEYINGTHENA=/=0DELAY:MOVR1,#09HWWW:MOVR0,#0FFHNMN:DJNZR0,NMNDJNZR1,WWWRETT1S:MOVINT_R1,#0FFH,TSM3:MOVINT_R0,#0FFHTSM4:DJNZINT_R0,TSM4DJNZINT_R1,TSM3RETADDMB:MOVR2,#02H;NOSIGNNBYTESADDSNBYTESMOVR0,#4FH;(.4FH)+(.5FH)=(.4FH)MOVR1,#5FHADDMBB:CLRC,ADDL:MOVA,R0ADDCA,R1MOVR0,ADECR0DECR1DJNZR2,ADDLRETEND,16.4系统仿真/硬件验证,16.4.1系统调试的方法本系统既含有电压控制的LC振荡源高频电路,又含有FPGA自编程硬件设计电路和单片机控制电路,整个系统非常复杂,因此我们采用自底向上的调试方法,也就是先进行各个单元电路的软件仿真和硬件调试,在各个单元电路调试好后再进行系统联调,最后进行硬件的编程固化及系统的组装。,16.4.2系统调试的软/硬件(1)设计开发软件:MAX+plus10.0、伟福6000(WAVE6000forwindows)。(2)主要设备:高频电路调试设备:WYQ230V2A直流稳压电、GDS-820S数字存储示波器、EE5113型无线电综合测试仪;单片机及FPGA/CPLD调试设备:PIV计算机、伟福E6000L单片机仿真器及POD8X5XP仿真头、GW48-CKEDA实验开发系统、单片机最小系统、炜煌WH-500B程序编写加密器。,16.4.3系统的有关仿真从图16.12可以看出,当ADDSUB=0(即ADDSUB1.0=00)时,CTR=H0FA,即CTR=D250,当ADDSUB=1(即ADDSUB1.0=01)时,EN每来一个上升沿,CTR在原来值的基础上加1,依次为H0FB、H0FC、H0FD、H0FE、H0FF等,即CTR=D251、D252、D253、D254、D255等,亦即其锁定频率分别为25MHz,25.1MHz、25.2MHz、25.3MHz、25.4MHz、25.5MHz。,图16.12FPGA测控专用芯片YKZTQ.VHD的仿真图之一,程序设计时规定CLK=200Hz,而仿真时被测信号FIN的频率为CLK的20倍,因此仿真的结果应该为20020=4000Hz。从图16.13的实际仿真结果看,所测频率为十六进制的000028,即十进制的000040,亦即00.0040MHz,也就是4000Hz,与预计的结果一致。,图16.13FPGA测控专用芯片YKZTQ.VHD的仿真图之二,16.4.4系统的硬件验证1单元电路的调试LC压控振荡器的调试:使用WYQ230V2A直流稳压电源、GDS-820S数字存储示波器、EE5113型无线电综合测试仪等仪器设备,对LC压控振荡器进行测试,包括是否起振,振荡器的频率、幅值、功率等。FPGA/CPLD测控电路的调试:使用MAX+plus10.0、计算机、GW48-CKEDA实验开发系统等软件和设备,对FPGA/CPLD测控电路进行VHDL程序的调试、有关仿真以及编程下载,硬件测试等。,单片机键盘和显示控制程序的调试:使用伟福6000(WAVE6000forwindows)、计算机、伟福E6000L单片机仿真器及POD8X5XP仿真头等软件和设备,对单片机键盘和显示控制程序进行调试。,2系统的联合调试在各个单元电路调试好后即可进行系统联调,各联调设备的连接请参考相关内容。3系统的硬件验证系统联合调试成功后,可将单片机程序通过编程器固化到单片机中并插入EDA实验开发系统中的单片机插座上,将VHDL设计经过综合适配后的网表对CPLD/FPGA进行编程下载,输入相关的信号,并进行有关性能指标的测试,直到满足系统的设计要求为止。,16.5设计技巧分析,(1)在系统总体设计方面,充分利用单片机和FPGA/CPLD各自的优势,将测控的主体频测及锁相环的控制分配给FPGA/CPLD,既可满足频测对速度方面的要求,又可满足对锁相环控制需多I/O口的要求,同时利用单片机具有良好的人机接口和控制运算的功能,可

温馨提示

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

评论

0/150

提交评论