正文频率与相位测量系统控制电路的VHDL设计.doc_第1页
正文频率与相位测量系统控制电路的VHDL设计.doc_第2页
正文频率与相位测量系统控制电路的VHDL设计.doc_第3页
正文频率与相位测量系统控制电路的VHDL设计.doc_第4页
正文频率与相位测量系统控制电路的VHDL设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

德州学院 物理 系 2008 届 电子信息工程 专业 毕业论文德州学院 系 届 专业 毕业论文频率与相位测量系统控制电路的VHDL设计韩元元(德州学院物理系 山东德州253023)摘 要 本文利用VHDL语言对数据采集控制系统电路进行了设计和硬件仿真,首先根据设计要求,通过对整个控制系统进行分析,将整个系统划分为五个子模块:信号分频模块、控制信号产生模块、时间检测模块、数据锁存模块和输出选择模块,并对各个模块进行了VHDL设计与波形仿真,最后完成总体系统的设计和波形仿真。通过对仿真波形图进行分析,所设计的电路系统符合给定的设计要求。关键词 VHDL; CPLD;数据采集1引言在电子测量技术中,测频测相是最基本的测量之一。频率测量相对简单,但相位测量则困难得多。相位测量最初是测量信号一个周期的参数,精度在低频时利用锁相技术尚可,随着大规模可编程逻辑器件的开发应用,因其工作频率高,采集速度快,具有现场可编程特性,外扩的器件少等优点,人们在电子系统设计时,逐渐将过去硬件难以实现的部分交给了FPGA处理实现。本文采用FPGA/CPLD技术,主要负责数据采集,具有高速而可靠的测控能力,具有比较强的数据处理能力,键盘输入及显示控制比较灵活,系统可扩展性能比较好,整个系统性能价格比比较好。采用VHDL语言进行软件编程,利用MAX+PLUSII软件平台进行设计输入、项目处理、项目校验及器件编程等。设计输入可采用原理图输入、文本输入、波形输入或第三方EDA工具生成的设计网表文件等输入方法;设计校验包括功能仿真、时序仿真和定时分析;器件编程是用经过仿真确认的配置文件配置CPLD器件;在线校验是对编程后的CPLD器件加入实际的激励信号进行测试,检查是否可完成预定功能;最后完成整个系统设计。2系统的总体设计方案2.1系统的设计要求设计并制作一个频率与相位测量系统控制电路,其设计要求如下: (1) 频率范围:20Hz20kHz。(2) 允许两路输入正弦信号峰-峰值可分别在15V范围内变化。 (3) 相位测量绝对误差2.(4) 具有频率测量及数字显示功能。(5) 相位数字显示:相位读数0359.9,分辨力为0.1。频率与相位测量系统电路系统按功能可分为三大基本组成部分:数据采集控制电路、数据运算控制电路和数据显示电路。数据采集控制电路由FPGA/CPLD实现,主要负责采集两个同频待测正弦信号的频率和相位差所对应的时间差,数据运算控制电路由单片机完成,负责读取FPGA/CPLD采集到的数据,并根据这些数据计算待测正弦信号的频率及两路同频正弦信号之间的相位差,并通过功能键切换控制显示待测信号的频率和相位差。其系统框图如图2.1: FPGA或CPLD数据采集电路单片机数据运算控制电路数据显示电路图2.1 系统框图2.2系统的设计方案频率与相位测量系统控制电路的VHDL设计主要是设计数据采集控制电路,并由FPGA实现,按照数据采集控制电路系统的功能,可分成信号分频、控制信号产生、时间检测、数据锁存和输出选择5个模块。FPGA数据采集电路系统组成原理图如图2.2:DATA118.0DATA218.0RSELENABL DATA18.0CLK CLKFCLKF ENABL DA18.0CLEARCLK1 ENABL CLEARCLK2 LOAD CLEABDA18.0 DATA118.0LOAD DATA218.0CLEABRESELENABLDATA318.0CLKFPGA数据采集电路的功能是实现将待测正弦信号的周期、相位差转变为19位的数字量。根据系统的总体设计方案,FPGA数据采集的输入信号有:CLK系统工作用时钟信号输入端;CLK1,CLK2两路被测信号输入端;ENABL单片机发出的传送数据使能信号,在ENABL的上升沿,FPGA向单片机传送数据;RSEL单片机发出的传送数据类型信号,当RSEL=0时,FPGA向单片机传送被测信号频率数据,当RSEL=1时,FPGA向单片机传送被测信号相位差数据。FPGA数据采集电路的输出信号有:DATA318.0 FPGA到单片机的数据输出口,由输出控制信号EN和RSEL控制。其应实现的功能就是负责对被测信号频率数据的实时测量。FPGA数据采集电路可设计成五个模块,其中时钟信号分频模块FPQ的作用是:将输入的40MHz的信号分频成10MHz的测控基准时钟信号CLKF。测量控制信号发生模块KZXH的作用是:根据两路被测信号整形后的方波信号CLK1和CLK2,产生有关测控信号,包括时间检测时能信号ENABL,时间检测清零信号CLEAR,锁存频率数据控制信号LOAD,锁存两被测信号相位差数据控制信号CLEAR。被测信号频率和相位差数据检测模块SJJC的作用是:在控制信号ENABL和CLEAR的控制下,对测控基准时钟信号CLKF进行计数和清零,以便获取有关频率和相位差数据。数据锁存模块SJSC的作用是:在LOAD的上升沿将频率数据锁存在DATA1中,在CLEAB的下降沿时将相位差数据锁存在DATA2中。输出选择模块SCXZ的作用是:根据单片机发出的控制信号数据传送使能信号ENABL和输出数据类型选择信号RSEL,将被测信号频率数据或相位差数据输出。3数据采集电路原理FPGA数据采集电路测量正弦波信号频率的原理是:在正弦波信号整形后得到的方波信号的一个周期内对周期为Tc秒的数据采样信号进行计数,其计算结果乘以1/Tc,就是被测正弦波信号的频率,单位为Hz。测量正弦信号周期原理是:在正弦波信号整形后得到的方波信号的一个周期内对周期为Tc秒的数据采样信号进行计数,其计数结果乘以Tc秒,就是被测正弦波信号的周期,单位为秒。测量两个同频正弦波信号的相位差,关键是要测出两个同频正弦波信号起点之间的时间差t,若t测出,则根据=t*360/t即可求出相位差,因此其测量原理与测量正弦波信号周期的原理相似。本设计的要求是测试并显示输入信号频率范围在20Hz20kHz,测试并显示信号a、b的相位差,相位差的变化范围为=0359.9,相位差的显示分辨力为0.1,要求测量相位的绝对误差2。由此可知:fmin=20Hz, Tmax=1/fmin=50ms, tTmax fmin=20kH Tmin=1/fmax=50s 2即t=2/360*50s=0.27s 由以上分析可知,要保证系统要求的精度,必须采用低于1/0.27s=3.7MHz的采集速度对信号周期进行计数,为进一步提高测量精度,同时便于计算,我们采用了10MHz方波信号作为FPGA数据采集信号,FPGA在10MHz时钟信号作用下对待测信号周期计数,并对两个同频正弦信号的相位差所对应的时间差进行计数,分别得到19位数字量,19位数字量的物理单位是0.1s。本设计采用40MHz的高频晶体震荡源,由FPGA内部的分频模块对40MHz信号进行四分频,得到10MHz的数据采样信号,其采样周期为0.1s。 为了实现中低频测量精度的要求,我们可采用10MHz的信号来循环计数被测信号的周期和两个同频正弦波信号的相位差所对应的时间差值,时间单位为0.1s。也就是说,计数周期和相位差所对应的时间差值的精度是0.1s。利用被测信号来刷新采样计数,在20Hz时,刷新频率可以精确到10Hz,20kHz时达到10kHz,可以实现高频多测量,低频少测量的效果,时间计数精确可靠,为后面单片机的数据处理提供了稳定、可靠的数据源。为了达到系统所要求的精度,必须保证数据计算处理时不丢失数据,我们采用了扩大数据倍数,定点取数的方法,在计算频率f和相位差时,f和分别扩到了10 000 000倍和10倍,即f=10000000/t, =360*10*t/t,然后定点取数。3.1 信号分频模块FPQ时钟信号分频模块FPQ的作用是:将输入的40MHz的信号分频成10MHz的测控基准时钟信号CLKF。其VHDL编程如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HANYUANYUAN_1 ISPORT(CLK:IN STD_LOGIC;CLKF:OUT STD_LOGIC);END ENTITY HANYUANYUAN_1;ARCHITECTURE ART OF HANYUANYUAN_1 ISBEGINPROCESS(CLK)ISVARIABLE TEMP:INTEGER RANGE 0 TO 4; VARIABLE CL: STD_LOGIC;BEGIN IF CLKEVENT AND CLK=1THEN IF TEMP=3 THEN TEMP:=0;CL:=1; ELSE TEMP:=0;CL:=1; ELSE TEMP:=TEMP+1; CL:=0; END IF; END IF;CLKF=CL;END PROCESS;END ARCHITECTURE ART;其仿真波形如下: 通过实验仿真后可以观察出:输入信号CLK的40MHZ信号分频成10MHZ的测控基准时钟信号CLKF,实现了模块FPQ的功能,与设计要求一致,因此模块HANYUANYUAN-1的源程序设计是正确的。3.2测量控制信号发生模块KZXH测量控制信号发生模块KZXH的作用是:根据两路被测信号整形后的方波信号CLK1和CLK2,产生有关测控信号,包括时间检测时能信号ENABL,时间检测清零信号CLEAR,锁存频率数据控制信号LOAD,锁存两被测信号相位差数据控制信号CLEAR。其VHDL源程序如下: LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HANYUANYUAN_2 ISPORT(CLK1: IN STD_LOGIC; CLK2: IN STD_LOGIC; ENABL:OUT STD_LOGIC; CLEAR: OUT STD_LOGIC;LOAD: OUT STD_LOGIC;CLEAB: OUT STD_LOGIC);END ENTITY HANYUANYUAN_2;ARCHITECTURE ART OF HANYUANYUAN_2 ISSIGNAL CLK1A,CLK2B,CLA,CLB:STD_LOGIC;BEGINCLK1A=NOT CLK1;CLK2B=NOT CLK2;PROCESS(CLK1A)IS BEGIN IF CLK1AEVENT AND CLK1A=1 THEN CLA=NOT CLA; END IF; ENABL=CLA; LOAD=NOT CLA;END PROCESS;PROCESS(CLK2B)IS BEGIN IF CLK2BEVENT AND CLK2B=1 THEN CLB=NOT CLB; END IF; ENABL=CLB; END PROCESS;PROCESS(CLK1A,CLA)IS BEGIN IF CLK1A=0 AND CLA=0 THEN CLEAR=1; ELSECLEAR=0;END IF; END PROCESS;END ARCHITECTURE ART;其仿真波形如下:通过实验仿真后可以观察出:输入两路同频被测信号CLK1,CLK2,系统产生有关测控信号,包括时间检测使能信号ENABL,时间检测清零信号CLEAR,锁存频率数据控制信号LOAD,锁存两被测信号相位差数据控制信号CLEAB.实现了模块KZXH的功能, 与设计要求一致,因此模块HANYUANYUAN_2的源程序设计是正确的。3.3被测信号有关时间检测模块SJJC被测信号频率和相位差数据检测模块SJJC的作用是:在控制信号ENABL和CLEAR的控制下,对测控基准时钟信号CLKF进行计数和清零,以便获取有关频率和相位差数据。其VHDL源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HANYUANYUAN_3 ISPORT(CLKF:IN STD_LOGIC; ENABL: IN STD_LOGIC;CLEAR: IN STD_LOGIC;DAC:OUT STD_LOGIC_VECYOR(18 DOWNTO 0);END ENTITY HANYUANYUAN_3;ARCHITECTURE ART OF HANYUANYUAN_3 ISSIGNAL DA: STD_LOGIC_VECYOR(18 DOWNTO 0); BEGIN PROCESS(ENABL,CLEAR,CLKF)IS BEGIN IF CLEAR=1THEN DA=”0000000000000000000”; ELSIF CLKFEVENT AND CLKF=1THEN IF ENABL=1THEN DA=DA+1; END IF; END IF;DAC=DA;END PROCESS;END ARCHITECTURE ART;其仿真波形如下:通过实验仿真后可以观察出:在ENABL上升沿到来时,系统开始对CLKF进行计数,CLEAR高电平有效,对CLKF进行清零,通过ENABL和CLEAR的控制,以便获取有关频率和相位差数据,实现了模块SJJC的功能,与设计要求一致,因此模块HANYUANYUAN_3的源程序设计是正确的。3.4数据锁存模块SJSC数据锁存模块SJSC的作用是:在LOAD的上升沿将频率数据锁存在DATA1中,在CLEAB的下降沿时将相位差数据锁存在DATA2中。其VHDL源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY HANYUANYUAN_4 ISPORT(DA:IN STD_LOGIC_VECYOR(18 DOWNTO 0);LOAD: IN STD_LOGIC;CLEAB: IN STD_LOGICDATA1:OUT STD_LOGIC_VECYOR(18 DOWNTO 0);DATA2: OUT STD_LOGIC_VECYOR(18 DOWNTO 0); END ENTITY HANYUANYUAN_4;ARCHITECTURE ART OF HANYUANYUAN_4 ISSIGNAL DATA1A,DATA2B: STD_LOGIC_VECYOR(18 DOWNTO 0);BEGINPROCESS(CLEAB)IS BEGIN IF CLEABEVENT AND CLEAB=0THENDATA2=DA; END IF;END PROCESS;PROCESS(LOAD)IS BEGIN IF LOADEVENT AND LOAD=0THENDATA1DATA3DATA3NULL; END CASE;END IF;END PROCESS;END ARCHITECTURE ART;其仿真波形如下:通过实验仿真后可以观察出:ENABL上升沿有效,当RESEL=0时,系统输出被测信号频率数据,当RESEL=1时,系统输出被测信号相位差数据。实现了模块SCXZ的功能,与设计要求一致,因此模块HANYUANYUAN_5的源程序设计是正确的。4结 论在整个设计过程中,通过对数据采集系统控制器的五个模块(信号分频、控制信号产生、时间检测、数据锁存和输出选择模块)的设计,用一片CPLD/FPGA、构成一个数据采集系统,并用CPLD/FPGA实现数据采集中对频率与相位测量系统控制电路的实现,用VHDL 设计的数据采集控制系统在计算机上仿真通过后,下载到可编程逻辑器件中。整个设计过程相对于传统的设计方法,有较大的突破11。主要体现在:有利于系统的分工合作,并且能够及早发现各子模块及系统中的错误,提高系统设计的效率;可以非常灵活地描述系统总线和实现算法,引入工作库,存放各种已编译的资源,使得一个设计的子模块可以被另一设计引用,达到资源共享的目的。同时VHDL作为标准化硬件描述语言,屏蔽了具体工艺及器件的差异,不会因工艺及器件的变化而变化12。参考文献:1 梁玉红,黄晓林 基于EDA技术的CPLD/FPGA应用前景 湖北汽车工业学院电气工程系论文2张洪润,易涛.单片机应用技术教程(第二版).北京:清华大学出版社,20033 陈意军,王迎旭 CPLD在频率测控系统中的应用 半导体技术 第26卷第12期.2001年12月.4 赵曙光、郭万有、扬颂华。可编程逻辑器件原理、开发与应用。西安电子科技大学出版社。2001年4月。5Http:/www. A /2004.Altera Corporation.Data Book 2003. 6 Xilinx Inc,DATA BOOK Xilinx Incorporation San Jose Use,19997 Harness The Power of VHDL for PLD Design .ElectronicDesign.No.19-26.1994,18 (美)James R.AmstrongF.Gail Gray.李宗伯 译VHDL设计表示和总和 北京:机械工业大学出版社,2002DESIAN OF THE CONTROL SYSTEM CIRCUIT OF AND FREQUENCE AND PHASEAbstract:This paper designed the contr

温馨提示

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

评论

0/150

提交评论