基于FPGA实现等精数字频率计设计_第1页
基于FPGA实现等精数字频率计设计_第2页
基于FPGA实现等精数字频率计设计_第3页
基于FPGA实现等精数字频率计设计_第4页
基于FPGA实现等精数字频率计设计_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、基于FPGA实现等精数字频率计设计 作者: 日期:2 个人收集整理 勿做商业用途漳州师范学院 毕业论文(设计)基于FPGA实现等精度数字频率计设计 Cymometer of Equal Precision Based On FPGA 2010 年 1 月 15 日63摘要本文基于FPGA的等精度测频原理,给出了通过FPGA来设计等精度频率计的具体方法。并在此基础上增加了测量周期、脉冲宽度、占空比的功能.设计中,以Alteta FPGA系列Cyclone EP2C5T144C8器件为核心;运用VHDL语言设计功能模块;运用SOPC设计技术来配置NiosII系统,进行信号的控制、数据读取、运算处理

2、、液晶的显示.关键词: 等精度频率计;FPGA;Nios;AbstractThe principle of cymometer of equal precision based on FPGA is introduced in this paper. The specific methods are given to design the system through the FPGA. It is also adds much more function such as cycle, pulse width, duty cycle measurement. It uses Altera Co

3、rporation CycloneII series ship-EP2C5T144C8 as a core; adopts Verilog Hardware Description Language to implement function module; adopts the SOPC technique to configuration NiosII system. the Niossystem is used for signal controlling, data processing , calculation, and display。文档为个人收集整理,来源于网络个人收集整理,

4、勿做商业用途Key Word: equal precision frequency meter; FPGA; Nios;目录摘要IAbstractI1 引言12 系统设计12.1设计要求12。2方案论证与比较22.3 设计思路22.4 系统的总体设计33 模块电路的设计43.1 Cyclone SOPC Board 简介43.2 频率、周期测试模块53。2.1 等精度测频法原理53。2。2 等精度测周期法原理63。2。3 实现方法63。2.4 仿真73.3 脉宽、占空比测试模块83.3.1 脉宽测量原理83。3.2 占空比测量原理83。3.3 实现方法83。3.4 仿真83.4 液晶显示93。

5、4。1 LCM128645ZK液晶概述93。4。2 液晶的控制94 NIOS系统的设计114.1 NIOS系统的分析114。2 基于NIOS IDE的软件设计124.2.1 主要的库函数说明124.2。2 系统流程图125 系统测试145.1 测试仪器145.2数据记录与分析145.2。1 频率、周期测试145.2。2 脉宽测试165。2.3 占空比测试175.3 设计不足176 结束语18致谢19参考文献20附录211 引言在电子测量技术中,频率测量是最基本的测量之一。工程中很多测量,如用振弦式方法测量力、时间测量、速度测量、速度控制等,都涉及到频率测量,或可归结为频率测量. 常用的直接测频

6、方法对被测信号的计数都会产生±1个数字误差1;基于传统测频原理的频率计的测量精度将随着被测信号频率的下降而降低,在实用中有很大的局限性,而等精度频率计不但有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。等精度测频方法是一种在直接测频方法基础上发展起来的测频方法,该方法测量精度高、频段宽,在频率测量中具有广泛的应用前景.采用等精度频率测量方法具有测量精度保持恒定,不随所测信号的变化而变化;结合现场可编程门阵列FPGA ( Field Programmable Gate Array),具有集成度高、高速和高可靠性的特点.设计人员只需要完成对系统功能的描述,就可以由计算机软件进行

7、处理,得到设计结果,而且修改设计如同修改软件一样方便,可以极大地提高设计效率2。Nios嵌入式处理器是Altera公司于2004年6月推出的第2代用于可编程逻辑器件的可配置的软核处理器,性能超过200DMIPS。基于哈佛结构的RISC通用嵌入式处理器软核,Nios处理器系统的外设配置具有很大的灵活性,设计者可以根据自己的系统需求来添加必要的外设,Nios能与用户逻辑相结合,编程至Altera的FPGA中,降低了用户的系统总体成本。无论是外设、存储器接口、性能特性,还是成本,这些优势的体现都借助于再Altera的FPGA上创建一个定制的片上系统,或者更精确地说,创建一个可编程单芯片系统3。本次的

8、毕业设计将通过等精度数字频率计的设计,对FPGA技术、SOPC的开发流程、Quartus II开发软件有了一个比较全面、直观的介绍。2 系统设计2。1设计要求基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度4。本系统设计的基本指标如下:1 对于频率测试功能,测频范围为1 Hz90 MHz;对于测频精度,测频全域相对误差恒为百万分之一.2 对于周期测试功能,信号测试范围与精度要求与测频功能相同。3 对于脉宽测试功能,测试范围为0。1 s1 s,测试精度为0。01 s。4 对于占空比

9、测试功能,测试精度为1%99%。5 利用液晶显示测量结果。2.2方案论证与比较本设计是以Altera公司的Cyclone为核心,其实现方案有四种:方案一:将单片机和FPGA结合起来实现。其中单片机完成整个测量电路的测试控制、数据处理和显示输出;FPGA完成各种测试功能5。方案二:将ARM和FPGA结合起来实现。其中利用ARM技术来完成测量电路的测试控制以及数据处理等.方案三:利用FPGA实现。在EDA工具软件平台上以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合经及逻辑优化与仿真,直到实现既定的电子线路系统功能. 方案四:在方案

10、二的基础上稍加改进,通过在FPGA上嵌入Nios系统,在IDE环境下采用C或者C+对各种逻辑器件进行控制。另外在FPGA上采用VHDL或者VERILOG等硬件描述语言编写各种逻辑器件的驱动,从而完成各种测试功能。下面对三种方案进行论证:方案一实现起来比较简单,但是由于该系统板上的资源充足,可以完成等精度数字频率计涉及到的计算(包括加、减、乘、除),没必要增加资源,另外单片机的处理频率一般不是很高,易受外部条件的干扰,功耗也高。方案二中使用到得ARM技术性能较好,但是相对于FPGA来说其处理速度还是稍逊一筹的,另外在灵活性上不如FPGA。方案三中,采用VDHL 编程设计实现的数字频率计, 整个设

11、计过程变得十分透明、快捷和方便, 特别是对于各层次电路系统的工作时序的了解和把握显得尤为准确, 而且具有灵活的现场可更改性。在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能和测量频率的范围。该数字频率计具有高速、精确、可靠、抗干扰性强、而且可根据需要进一步提高其测量频率的范围而不需要更改硬件连接图, 具有现场可编程等优点。方案四在FPGA中嵌入Nios系统,用户可以根据设计要求对NIOS及其外围设备进行构建,实现单芯片片上系统(SOPC)。由于要进行乘除运算,采用VHDL语言设计时,使用FPGA的资源较大,相比之下,嵌入一个Nios系统可以节约资源,另外灵活性也比较好,信

12、号的处理也比较简单。综上所述,采用方案四。2.3 设计思路根据系统设计功能的要求,确定系统由7个模块电路组成:频率测量模块、周期测量模块、脉宽测量模块、占空比测量模块、Nios微处理器(控制器)模块、PLL模块、液晶显示,系统框图如图1所示。图1 系统框图2.4 系统的总体设计图2 系统总体原理图系统总体原理图如图2所示.各模块的说明如下:1。 f_d_test为测试模块,即测试输入信号的频率、周期、脉宽、占空比,通过四个输入信号(CLR、START、W_D、QH)来控制该模块的工作.该模块的各个端口功能说明如下:u BCLK是频率为fs的标准信号输入端;u TCLK是频率为fx的待测信号输入

13、端;u CLR为清零端,为1时对计数值进行清零;u QH为功能选择控制端,为0时进行频率/周期测量,为1时进行脉宽/占空比测量;u START为频率/周期测量的预置门控信号,当START为高电平后,同时启动两个计数器对标准信号和待测信号进行计数,当START为低电平后,两个计数器同时关闭,Nios处理器读取计数值;u W_D为脉宽/占空比测试的允许位,当W_D=1时,进行脉宽/占空比测试。2. nios2c5是由SOPC Builder创建的Nios系统,该内核主要有五个作用:第一,检测按键,根据按键来设置工作的状态;第二,产生控制测试模块f_d_test的信号,即CLR、START、W_D、

14、QH;第三,读取两个计数器的计数值;第四,对读取的计数值进行运算;第五,控制液晶显示.3. lcd_delay模块用于产生满足LCD的时序。4。 LCD_EN模块用于产生LCD的使能信号EN.5. DEBOUNCING模块用于按键去抖。6。 delay_reset_block模块用于保证PLL稳定工作才产生复位信号.7。 PLL模块用于产生系统时钟、标准信号和SRAM的时钟。3 模块电路的设计3。1 Cyclone SOPC Board 简介本课题所用的开发板为Cyclone SOPC Board,开发板的实物图见附录1。开发板上的主要配置如下:u Cyclone系列的EP2C5T144C8芯

15、片: 采用全铜层、1.2伏SRAM工艺设计,具体内部资源如下表1所示.另外该芯片还支持SOPC的开发,用户可以使用Nios嵌入式处理器。表1 EP2C5T144C8的资源列表6逻辑单元(LE)M4K RAM块RAM数量嵌入式18*18乘法器锁相环(PLL)最大可用I/O口460826119808132142u Am29LV160D:16兆位的闪存FLASH,另外,FLASH与SRAM共用数据总线和地址总线。u IS61LV25616:256K×16bit,高速异步的CMOS静态RAM。u 50M的晶振u JTAG配置:将ByteBlaster或USB Blaster 下载电缆连接到J

16、TAG接口,通过Quartus软件就能直接对FPGA进行配置。3.2 频率、周期测试模块3.2。1 等精度测频法原理等精度测频法是指利用二个计数器分别计算标准信号的脉冲个数与实测信号的脉冲个数,最后由公式进行换算。此方法的优势是,不用再进行多个频段的转换,如果标准频率高,测量的精度也是会相应提高。等精度测频方法是在直接测频方法的基础上发展起来的.它的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,消除了对被测信号计数所产生±1 的误差,并且达到了在整个测试频段的等精度测量。其测频波形图如图3所示7。图3 测频原理时序图由图3可看出,在测量过程中,有2个计数器分

17、别对标准信号和被测信号同时计数。首先给出闸门开启信号(预置门限上升沿) ,此时计数器并不开始计数, 而是等到被测信号的上升沿到来时, 计数器才真正开始计数。然后预置闸门关闭信号(下降沿) 到来时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成1 次测量过程。若所测频率值为fx,标准频率为fs,计数器1测得的被测信号的脉冲数值为Nx,计数器2测得的标准信号的脉冲值为Ns,则它们之间存在如下的关系8: (1)下面由(1)可推得 (2)等精度数字频率计误差的证明:若所测频率值为fx,其真实值为fxe,标准频率为fs,一次测量中,由于fx计数的起停时间都是由该信号的上升沿触发的

18、,因此在Tpr时间内对fx的计数Nx无误差,在此时间内的计数Ns最多相差一个脉冲,即et1,则下式成立: (3)可推得 (4)根据相对误差的公式(2)(4)推得 (5)经整理可得到 (6)因et1,故et/Ns1/Ns,即 (7) (8)结论:误差在频率范围内恒定,取决于标准频率,标准频率越大,误差越小,所以又称等精度测试。3。2.2 等精度测周期法原理为提高周期测量的精度,采用等精度周期测量法。该方法在测量电路和测量精度上与等精度频率测量完全相同,只是在进行计算时公式不同,用周期1/T代换频率f即可,计算公式为8 (9)3。2.3 实现方法测试模块f_d_test内部的原理图如图4所示89。

19、当QH=0时,测试模块进行频率或周期测量,其工作步骤如下:(1) 在CLR端加以正脉冲信号以完成测试电路状态的初始化。(2) 将预置门控信号START端置高电平,预置门开始定时,此时由被测信号的上升沿打开计数器CNT1和CNT2,两计数器开始工作.(3) 预置门定时结束信号START端置为低电平(由NIOS微处理器来完成).在被测信号的下一个脉冲的上升沿到来时,两个计数器停止工作。(4) 计数结束时,count_end端口输出低电平,NIOS微处理器读取该信号后,就对两个计数器的计数时进行读取,再根据公式进行运算,计算出被测信号的频率或周期值。图4 测试模块的原理图3。2.4 仿真周期/频率测

20、试仿真图如图5所示。测试信号TCLK的频率值设置为10MHz,即fx=10MHz;标准信号BCLK的频率值设置为100MHz,即fs=100MHz.仿真情况分析如下:1。计数器CNT1的计数值为4,即Nx=4;计数器CNT2的计数值为40,即Ns=40;则由公式计算可得:,与设置的频率值一致,故满足设计要求。图5 周期/频率测试仿真图 2。由图可看出:当START=1时,测试信号的第一个上升沿到来时,计数器使能端BENA=1,但是相对于计数器时钟信号的上升沿,使能端会有些延时,以至于计数器无法计数打开使能端的这个测试信号的脉冲,只能从下一个脉冲开始计数;同理,当START=0时,计数器仍然会对

21、关闭计数器的这个测试信号的脉冲进行计数,只有等到下一个脉冲的上升沿到来时才停止,故在软件编写上要注意延时,以确保测试正常。3。3 脉宽、占空比测试模块3。3.1 脉宽测量原理测量电路在检测到脉冲信号的上升沿时打开计数器,在下降沿时关闭计数器,设脉冲宽度为Twx,计算公式为8 (10)3。3。2 占空比测量原理测一次脉冲信号的脉宽,记录其值为Twx1,然后将信号反相,再测一次脉宽并记录其值为Twx2,通过下式计算占空比8: (11) 3.3。3 实现方法图6 脉宽测量原理图脉宽测量原理图如图6所示,编译生成为图4中的MAIKUANG模块。当QH=1, 测试模块进行脉宽或占空比测量.当W_D=1时

22、,测试的是信号高电平的脉宽;当W_D=0时,测试的是信号高电平的脉宽;具体工作步骤如下8:(1) 在CLR端加以正脉冲信号以完成测试电路状态的初始化.(2) 在被测信号的上升沿到来时,标准频率信号进入计数器CNT2.(3) 在被测信号的下升沿到来时,计数器CNT2被关断。3。3。4 仿真脉宽/占空比测试仿真图如图7所示。测试信号TCLK的频率值设置为10MHz,即fx=10MHz;标准信号BCLK的频率值设置为100MHz,占空比为60%,即fs=100MHz.仿真情况分析如下:1.当W_D=1时,计数器CNT2的计数值为6,即N1=6;当W_D=0时,计数器CNT2的计数值为4,即N2=4,

23、则由公式计算可得:脉宽为,与设置的脉宽值一致,故满足设计要求;,与设置的测试信号的占空比一致,故满足设计要求。2。由图可看出:初始化后,计数器工作在测试信号的第二个高电平或者低电平期间,即此时才对标准信号进行计数。这是因为脉宽测试模块(见图6)中只有等到第二个测试信号的上升沿到来时,PUL端口才有输出值,这样才能打开后面的计数器.故在软件编写上要注意延时,以确保测试正常。图7 脉宽/占空比测试仿真图3.4 液晶显示3.4.1 LCM128645ZK液晶概述中文液晶显示模块 LCM128645ZK 的字型ROM 内含8192个16*16 点中文字型和128 个16*8 半宽的字母符号字型;另外绘

24、图显示画面提供一个64*256 点的绘图区域GDRAM;而且内含CGRAM 提供4 组软件可编程的1616 点阵造字功能,可实现汉字、ASCII 码、点阵图形的同屏显示。与单片机等微控器的接口模式有三种,分别为:并行8 位/4 位,串行.LCM128645ZK液晶引脚说明见附录2。3。4。2 液晶的控制图8 液晶驱动电路SOPC Builder中有已经定制好的液晶显示的内核,液晶屏内部带有液晶控制器ST7920.液晶驱动电路如图8所示.由于液晶屏是Motorala接口,不能直接使用Avalon总线接口来操作,要对LCD_EN信号进行必要的逻辑转换,转换由LCD_EN模块来实现10,其中的具体逻

25、辑如图9所示。可以看出只有当片选和读(或写)低电平有效时才产生高电平有效的LCD_EN,满足控制要求。图9 LCD_EN模块的逻辑图查看ST7920的数据手册,从CPU写数据到ST790的时序图中可看出,数据是在使能信号(LCD_EN,高有效)的下降沿写入,并要求RS(由地址信号A0产生)信号有一定的保持时间(大于20ns),相当于写数据时要求地址信号有一定的保持时间;另一方面,Avalon三态接口中的选通信号与地址信号是同时结束,不能满足液晶屏的写控制时序.这个问题可通过将控制液晶屏的地址信号A0(RS)和A1(R/W)延时解决,因此增加一个lcd_delay模块,其内部逻辑如图10所示。l

26、cd_delay模块内部逻辑中,有一个多路选择开关,其选择由LCD_nCS来控制,因此只有对液晶屏进行操作时,A0(RS)和A1(R/W)才可延时10。图10 lcd_delay模块的逻辑图4 NIOS系统的设计4。1 NIOS系统的分析1、根据系统要实现的功能和开发板配置,系统需要使用的外围器件包括:u LCD液晶显示:显示待测信号的频率、周期、脉宽、占空比等信息;u 按键(四个):用于测试模块功能的选择;u Flash存储器:存储硬件和程序;u SRAM存储器:程序运行时将其导入SRAM.2、根据用到的外设和器件特性,在sopc builder中加入的内核及各内核的作用如下11:u CPU

27、:用来对系统各外设的逻辑控制u JTAG UART( JTAG 通用异步通信总线):用于Flash存储器的读写控制,在参数设置时一般保持默认不变u 系统ID外设:当SOPC Builder 生成NIOS系统时,将为每个NIOS系统生成一个标识符.该标识符会被写入system id寄存器中,供编译器和用户辨别所运行的程序是否与目标系统匹配u timer(定时器内核):作为系统的周期性时钟源、定时器等u SRAM:用作程序运行时所要的内存u FLASH:用于存放最终的程序和数据,掉电时,数据不会丢失u Avalon Tristate Bridge(Avalon三态桥):是Avalon交换结构与片外

28、外设相连的桥梁,它产生片外器件所需的数据、地址、读/写、片选以及其他控制信号u PIO口:用作功能选择及控制信号u LCD显示:显示所测量的结果图11 NIOS微处理器的配置NIOS系统的配置情况如图11所示。4.2 基于NIOS IDE的软件设计本系统的软件设计是以C语言形式在非操作系统环境下,利用Altera公司的软件集成开发工具IDE所提供的硬件抽象层(HAL)的函数支持下来完成编写的.4。2.1 主要的库函数说明系统中用到的主要的NIOS库函数如下所示:1。 I/O操作IORD_ALTERA_AVALON_PIO_DATA(base):读取I/O口的值. IOWR_ALTERA_AVA

29、LON_PIO_DATA(base, data):往I/O口写入数据.IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data):写中断屏蔽寄存器。参数data为向中断屏蔽寄存器写入的数据。IOWR_ALTERA_AVALON_PIO_IRQ_EDGE_CAP(base, data):写边沿捕获寄存器。参数data为向边沿捕获寄存器写入的数据。alt_irq_register(alt_u32 id,void *context,void(* isr)(void ,alt_u32):登记中断源2. 液晶显示LCD_init(void):液晶显示初始化LCD_Backli

30、ghtCon(alt_u8 status):打开背光LCD_printf(alt_u8 row,alt_u8 col,alt_u8 pdata,alt_u8 len):显示字符ST7920_ClearScreen():清屏3.定时函数alt_busy_sleep(unsigned int us):延时4.2.2 系统流程图 系统总流程图如图12所示。系统外部共有四个按键,分别控制频率测试、周期测试、脉宽测试、占空比测试。主程序中主要是检测按键,根据键值Test_Mode来选择系统的工作状态.频率、周期、脉宽、占空比测试的子程序分别如图13、14、15、16所示。对于频率/周期测试,不同的待测信

31、号频率采用不同的预置门限.原因如下:当高频时,若系统采用的门限时间太长的话,FPGA内部的32位计数器可能会溢出,另外也会影响系统的实时性;当频率低时,若系统采用的门限时间太短时,计数器可能就无法计数了.本系统中,划分了三个频率段,每个频率段的门控信号的时间不同:Fx<1KHz时,门控信号,即闸门时间为2s,1KHzFx<1MHz时,闸门时间为1.5s,Fx1MHz时,闸门时间为1s。图12 系统总流程图图13 周期测试子程序图14 频率测试子程序图16 占空比测试子程序图15 脉宽测试子程序5 系统测试5.1 测试仪器表2 仪器列表序号仪器名称及型号数量1TDS 1002数字示波

32、器12SP1641B型函数信号发生器13EE1461型DDS合成信号发生器15.2数据记录与分析5.2。1 频率、周期测试1。 利用SP1641B型函数信号发生器产生方波,输出电压为2.5V,占空比为50%。数据记录如表3所示.相对误差值的计算公式如下:REL= (12)表3 频率测试数据记录表 仪器测试信号发生器OSC示波器测试IDE液晶显示DES相对误差()REL频率(Hz)1。0951.0951。090.456周期-920。00ms0。92s0频率(Hz)1。3051。2991。30-0.077周期-780。00ms0。779s0。128频率(Hz)2。2252.2222.220。090

33、周期450ms0。449s0.222频率(Hz)11。7911.796211。790.052周期-84。77ms84。77ms0频率(Hz)66.4966。490366.490周期-15.03ms15。03ms0频率(Hz)604。51604.533604.530.0004周期-1.65ms1.65ms0频率(Hz)6。4182K6。41830K6.418K0.005周期155。8us0.156ms0。128频率(Hz)70。619K70.6199K70.619K0。001周期14。16us14.16us0频率(Hz)742.15K742。173K742。173K0周期1。35us1。35us

34、0频率(Hz)1148.7K1。14882M1。1488M0.001周期870。5ns0。870ms0.057频率(Hz)3403.6K3。40368M3。4037M0。0005周期-293.8ns0.294ms0。0682。 利用EE1461型DDS合成信号发生器产生一正弦波,数据记录如下表4所示。相对误差值的计算公式如下:REL= (13)表4 频率、周期测试数据记录表 仪器测试信号发生器OSC示波器测试IDE液晶显示DES相对误差(%)REL频率(MHz)2。0212002.021202.02120周期(ns)494.755500.00494。7550频率(MHz)5。0212005。0

35、21205。02120周期(ns)199。155200。00199。1560.0005频率(MHz)10。02120010。021210。02120周期(ns)99.788100.0099.7880频率(MHz)30。02120030.021230.02120周期(ns)33.31034.0033。3100频率(MHz)50。02120050。021450.02140.0004周期(ns)19.99219。9900.0050频率(MHz)70.021200-70。02150.0004周期(ns)14。281-14。280频率(MHz)85。021200-85。02150.0006周期(ns)1

36、1。76211.7600.0070频率(MHz)87。02120087。0215-0。0006周期(ns)11.49111。4900。0087频率(MHz)92。02120092.00410。0186周期(ns)10。867-10.869-0.0184频率(MHz)100.021200- 3。数据分析与总结:当被测信号频率在01kHz时,精确到小数点后两位;当被测信号频率在1kHz1MHz范围内时,精确度为小数点后三位;当被测信号频率在1MHz100MHz范围内时,精确度为小数点后四位.用SP1641B型函数信号发生器产生信号时,由于仪器的精度问题,测试时参考示波器测到的频率/周期;在用EE1

37、461型DDS合成信号发生器产生信号时,参考信号发生器上的频率值/周期。由于系统设计时,液晶显示的位数有限,与参考的频率/周期的位数不一致。所以由表3、4可知,用公式计算出的相对误差比较大,但在整个频率范围内,其精度都近乎相等,且精度都保持在0。05之内。综上所述:频率/周期测试的测量范围为1Hz90MHz,且精度达到设计要求.5。2.2 脉宽测试利用SP1641B型函数信号发生器产生方波,输出电压为2.5V。数据记录如表5所示。表5 脉宽测试数据记录表示波器测得的脉宽液晶显示的脉宽相对误差(%)176.0ns0.174us1.14500。0ns0。500us05。200us5.190us0.

38、1947。00us47.00us0500。0us0。499ms0.204.600ms4.5183ms1.7850.00ms50。186ms-0。37490ms0。485s1。02980ms0。977s0.31数据分析与总结:由表5可知,测试范围无法测到0。1us,这是由于该信号发生器最大的输出频率为3MHz.相对误差最大为1。78%,测试精度略超出0。01 s。另外,由于信号的周期是手动测量,也存在人为误差。综上所述:由于未设计外部整形电路,无法得到高频的矩形波,导致无法测量高频,故测量范围未达到要求,精度有待提高。5。2.3 占空比测试 信号发生器输出一矩形波,其频率f=1。0007kHz,

39、幅度Vpp=2.7V,改变占空比测试如表6所示.表6 占空比测试数据记录表高电平(us)低电平(us)占空比(%)显示的占空比(%)误差(%)90016084。9850。1264036064.0651。5640062039。2402。0424082022。6246。1916098014.014050050050。0500数据分析与总结:由表6可知,由示波器测出该仪器输出的矩形波的占空比的范围为14%85,本设计均能较准确地测出占空比。综上所述:由于仪器问题,无法测试设计要求中的占空比的范围,在可测范围内,本设计基本可以准确的测出信号的占空比,达到设计要求。5.3 设计不足频率/周期测试模块的实

40、时性不是很高.NIOS系统对频率/周期测试的门控信号进行控制,系统是通过延时以等待计数的完成,若在计数期间,外部的待测信号的频率值发生改变,系统无法马上进行判别,只能等待计数完成后,才能对该频率值进行测试。6 结束语本次设计的等精度数字频率计不仅能够很好地对被测信号的频率进行测量,并且实现了周期、脉宽、占空比测量等功能,测量结果通过液晶很直观地显示。另外本系统利用SOPC技术,嵌入一个IP核,节约了FPGA芯片的资源,便于添加外设.所测得的指标如下: 对于频率测试功能,测频范围为1HZ90MHz:对于测频精度,测频全域相对误差为0.05%之内. 对于周期测试功能,测周期范围为7ns90ms;对

41、于测量精度,测周期全域相对误差为0.2%之内。 对于脉宽测试功能,被测范围为176ns980ms。 对于占空比测试功能,被测范围为14%85%。 用字符型液晶来显示测试的结果,直观明了。它与传统的频率计的比较,其优点是:软件开发效率高,易于很好的扩展功能,并且在整个测量范围内都能保持一定的精确度,对于高频信号的测量准确更高,速度更快,稳定度更高.致谢在本次毕业设计的过程中,王灵芝老师在论文的选题、开题、设计构思到最后定稿的各个环节上都给予了悉心的指引与教导,使我对FPGA、SOPC的设计、开发软件的应用有了深刻的认识.更为重要的是王老师教会了我面对困难时不要轻言放弃。王老师精益求精的治学态度、

42、丰富渊博的知识以及诲人不倦的师者风范是我终生学习的楷模。在此,谨向老师表示崇高的敬意和衷心的感谢!同时我要感谢吴一纯老师在我课题研究期间给予了很大的帮助、提出了宝贵的意见和建议。最后,感谢我的家人,他们一直默默的支持和鼓励着我。参考文献1 张梦梨 韩国松.基于FPGA的等精度数字频率计的研究与实现J。 商丘职业技术学院学报,2006年第2期,第5卷:7981。2 褚振勇,齐亮,田红心,高楷娟编著.FPGA设计及应用(第二版)M.西安电子科技大学出版社2006。12 8323 周立功等.SOPC嵌入式系统基础教程M。北京:北京航空航天大学出版社,2006年11月.312.4 莫琳基于FPGA的等

43、精度频率计的设计与实现J现代电子技术,2004(10):81825 唐亚平 王学梅. 基于FPGA的等精度频率计的设计J。电子元器件应用,2005(10):6365.6 Altera Corporation。 CycloneDevice HandbookK.http:/www。altera。7 张杰 姚剑 叶林 李昌禧.频率测量的新方法J。工业仪表与自动化装置,2003年,第1期:6365.8 谭会生 瞿遂春.EDA技术综合应用实例与分析M.西安:西安电子科技大学出版社,2007.217251。9 潘松 黄继业.EDA与VHDL(第二版)M。北京:清华大学出版社.2007.251253.10

44、周立功等。SOPC嵌入式系统实验教程(一)M.北京:北京航空航天大学出版社,2006年11月. 134135。11 周立功等.SOPC嵌入式系统基础教程M。北京:北京航空航天大学出版社,2006年11月.73132.附录1. 开发板实物图2。 LCM128645ZK液晶引脚说明3. 基于NIOS IDE的软件设计的程序#include "stdio。h” /标准输入/输出函数头文件include ”system。h” /SOPC生成的cpu信息include string。h#include "alt_types.h"#include ”sys/alt_irq。h

45、"/中断操作函数头文件include ”altera_avalon_pio_regs.h" /该文件定义了内核的寄存器映射并提供硬件设备访问宏定义include ”zlg_avalon_lcd128_64.h” include "sys/alt_alarm。h” #include "altera_avalon_timer_regs.h"include "priv/alt_busy_sleep。h”#include ”hello_world_small_1。h"hello_world_small_1.h#ifndef HELL

46、O_WORLD_SMALL_1_H_define HELLO_WORLD_SMALL_1_H_define Tdata_BASE 0x00502070#define Bdata_BASE 0x00502080define button_BASE 0x00502090define CLR_BASE 0x005020a0#define count_end_BASE 0x005020b0#define SPUL_BASE 0x005020c0#define START_BASE 0x005020d0#define w_d_end_BASE 0x005020e0define W_D_BASE 0x00

47、5020f0define button_IRQ 3define count_end_IRQ 4define w_d_end_IRQ 5#endif /HELLO_WORLD_SMALL_1_H_*/ float Fs=100000000.0;/标准频率fs=100MHz float Fx; /待测频率 float Tx; /待测周期 float Twx;/待测信号脉宽 float Duty;/待测信号的占空比 alt_u32 Ns; /标准频率计数器BZQ中的计数值 alt_u32 Nx; /待测频率计数器TZQ中的计数值 alt_u32 N1; /高电平时,标准频率计数器BZQ中的计数值 a

48、lt_u32 N2; /低电平时,标准频率计数器BZQ中的计数值 alt_u8 Test_Mode=0; /模式选择 alt_u8 Operation=0; /频率测量或者占空比测量或者暂停标志 alt_u8 gata_time; alt_u8 number1=0; alt_u8 number2=0; alt_u8 number3=0; alt_u8 number4=0; alt_u8 i; alt_u8 j; alt_u8 k; alt_u8 l; alt_u8 byte1;/显示测量的频率、周期的位数不同时,转换前清零所设的标志位 alt_u8 byte2; alt_u8 byte3; a

49、lt_u8 byte4; alt_u8 byte5; alt_u8 byte6; alt_u8 duty; alt_u8 aa; alt_u8 danwei; alt_u8 danwei2; char a; /显示数据缓冲区char b;char c;char d;char e;char f;int edge_capture;void Init(); /初始化设置void Freq_Test();/频率测量void Time_Test();/周期测量void Duty_Test();/占空比测量void Width_Test();/脉宽测量void display();/刚上电时的显示void key_Scan();/按键扫描void init_button_pio();void judge();void count_end_interrupts(void context,alt_u32 id);void judge();void Init_pio();void w_d_end_interrupts(void context,alt_u32 id);/

温馨提示

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

评论

0/150

提交评论