基于FPGA实现等精度数字频率计设计Word下载.docx

上传人:b****8 文档编号:22731573 上传时间:2023-02-05 格式:DOCX 页数:90 大小:586.30KB
下载 相关 举报
基于FPGA实现等精度数字频率计设计Word下载.docx_第1页
第1页 / 共90页
基于FPGA实现等精度数字频率计设计Word下载.docx_第2页
第2页 / 共90页
基于FPGA实现等精度数字频率计设计Word下载.docx_第3页
第3页 / 共90页
基于FPGA实现等精度数字频率计设计Word下载.docx_第4页
第4页 / 共90页
基于FPGA实现等精度数字频率计设计Word下载.docx_第5页
第5页 / 共90页
点击查看更多>>
下载资源
资源描述

基于FPGA实现等精度数字频率计设计Word下载.docx

《基于FPGA实现等精度数字频率计设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA实现等精度数字频率计设计Word下载.docx(90页珍藏版)》请在冰豆网上搜索。

基于FPGA实现等精度数字频率计设计Word下载.docx

基于哈佛结构的RISC通用嵌入式处理器软核,NiosⅡ处理器系统的外设配置具有很大的灵活性,设计者可以根据自己的系统需求来添加必要的外设,NiosⅡ能与用户逻辑相结合,编程至Altera的FPGA中,降低了用户的系统总体成本。

无论是外设、存储器接口、性能特性,还是成本,这些优势的体现都借助于再Altera的FPGA上创建一个定制的片上系统,或者更精确地说,创建一个可编程单芯片系统[3]。

本次的毕业设计将通过等精度数字频率计的设计,对FPGA技术、SOPC的开发流程、QuartusII开发软件有了一个比较全面、直观的介绍。

2系统设计

2.1设计要求

基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度[4].本系统设计的基本指标如下:

1对于频率测试功能,测频范围为1Hz~90MHz;

对于测频精度,测频全域相对误差恒为百万分之一。

2对于周期测试功能,信号测试范围与精度要求与测频功能相同。

3对于脉宽测试功能,测试范围为0.1μs~1s,测试精度为0.01μs。

4对于占空比测试功能,测试精度为1%~99%。

5利用液晶显示测量结果。

2.2方案论证与比较

本设计是以Altera公司的CycloneⅡ为核心,其实现方案有四种:

方案一:

将单片机和FPGA结合起来实现。

其中单片机完成整个测量电路的测试控制、数据处理和显示输出;

FPGA完成各种测试功能[5]。

方案二:

将ARM和FPGA结合起来实现。

其中利用ARM技术来完成测量电路的测试控制以及数据处理等。

方案三:

利用FPGA实现。

在EDA工具软件平台上以硬件描述语言VHDL为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合、结构综合经及逻辑优化与仿真,直到实现既定的电子线路系统功能。

方案四:

在方案二的基础上稍加改进,通过在FPGA上嵌入NiosⅡ系统,在IDE环境下采用C或者C++对各种逻辑器件进行控制。

另外在FPGA上采用VHDL或者VERILOG等硬件描述语言编写各种逻辑器件的驱动,从而完成各种测试功能。

下面对三种方案进行论证:

方案一实现起来比较简单,但是由于该系统板上的资源充足,可以完成等精度数字频率计涉及到的计算(包括加、减、乘、除),没必要增加资源,另外单片机的处理频率一般不是很高,易受外部条件的干扰,功耗也高。

方案二中使用到得ARM技术性能较好,但是相对于FPGA来说其处理速度还是稍逊一筹的,另外在灵活性上不如FPGA。

方案三中,采用VDHL编程设计实现的数字频率计,整个设计过程变得十分透明、快捷和方便,特别是对于各层次电路系统的工作时序的了解和把握显得尤为准确,而且具有灵活的现场可更改性。

在不更改硬件电路的基础上,对系统进行各种改进还可以进一步提高系统的性能和测量频率的范围。

该数字频率计具有高速、精确、可靠、抗干扰性强、而且可根据需要进一步提高其测量频率的范围而不需要更改硬件连接图,具有现场可编程等优点。

方案四在FPGA中嵌入NiosⅡ系统,用户可以根据设计要求对NIOSⅡ及其外围设备进行构建,实现单芯片片上系统(SOPC)。

由于要进行乘除运算,采用VHDL语言设计时,使用FPGA的资源较大,相比之下,嵌入一个NiosⅡ系统可以节约资源,另外灵活性也比较好,信号的处理也比较简单。

综上所述,采用方案四。

2.3设计思路

根据系统设计功能的要求,确定系统由7个模块电路组成:

频率测量模块、周期测量模块、脉宽测量模块、占空比测量模块、NiosⅡ微处理器(控制器)模块、PLL模块、液晶显示,系统框图如图1所示。

2.4系统的总体设计

系统总体原理图如图2所示。

各模块的说明如下:

1.f_d_test为测试模块,即测试输入信号的频率、周期、脉宽、占空比,通过四个输入信号(CLR、START、W_D、QH)来控制该模块的工作。

该模块的各个端口功能说明如下:

◆BCLK是频率为fs的标准信号输入端;

◆TCLK是频率为fx的待测信号输入端;

◆CLR为清零端,为1时对计数值进行清零;

◆QH为功能选择控制端,为0时进行频率/周期测量,为1时进行脉宽/占空比测量;

◆START为频率/周期测量的预置门控信号,当START为高电平后,同时启动两个计数器对标准信号和待测信号进行计数,当START为低电平后,两个计数器同时关闭,NiosⅡ处理器读取计数值;

◆W_D为脉宽/占空比测试的允许位,当W_D=1时,进行脉宽/占空比测试。

2.nios2c5是由SOPCBuilder创建的NiosⅡ系统,该内核主要有五个作用:

第一,检测按键,根据按键来设置工作的状态;

第二,产生控制测试模块f_d_test的信号,即CLR、START、W_D、QH;

第三,读取两个计数器的计数值;

第四,对读取的计数值进行运算;

第五,控制液晶显示。

3.lcd_delay模块用于产生满足LCD的时序。

4.LCD_EN模块用于产生LCD的使能信号EN。

5.DEBOUNCING模块用于按键去抖。

6.delay_reset_block模块用于保证PLL稳定工作才产生复位信号。

7.PLL模块用于产生系统时钟、标准信号和SRAM的时钟。

3模块电路的设计

3.1CycloneⅡSOPCBoard简介

本课题所用的开发板为CycloneⅡSOPCBoard,开发板的实物图见附录1。

开发板上的主要配置如下:

◆Cyclone系列的EP2C5T144C8芯片:

采用全铜层、1.2伏SRAM工艺设计,具体内部资源如下表1所示。

另外该芯片还支持SOPC的开发,用户可以使用NiosⅡ嵌入式处理器。

表1EP2C5T144C8的资源列表[6]

逻辑单元

(LE)

M4KRAM块

RAM数量

嵌入式18*18

乘法器

锁相环(PLL)

最大可用I/O口

4608

26

119808

13

2

142

◆Am29LV160D:

16兆位的闪存FLASH,另外,FLASH与SRAM共用数据总线和地址总线。

◆IS61LV25616:

256K×

16bit,高速异步的CMOS静态RAM。

◆50M的晶振

◆JTAG配置:

将ByteBlasterⅡ或USBBlaster下载电缆连接到JTAG接口,通过QuartusⅡ软件就能直接对FPGA进行配置。

3.2频率、周期测试模块

3.2.1等精度测频法原理

等精度测频法是指利用二个计数器分别计算标准信号的脉冲个数与实测信号的脉冲个数,最后由公式进行换算。

此方法的优势是,不用再进行多个频段的转换,如果标准频率高,测量的精度也是会相应提高。

等精度测频方法是在直接测频方法的基础上发展起来的。

它的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,消除了对被测信号计数所产生±

1的误差,并且达到了在整个测试频段的等精度测量。

其测频波形图如图3所示[7]。

由图3可看出,在测量过程中,有2个计数器分别对标准信号和被测信号同时计数。

首先给出闸门开启信号(预置门限上升沿),此时计数器并不开始计数,而是等到被测信号的上升沿到来时,计数器才真正开始计数。

然后预置闸门关闭信号(下降沿)到来时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成1次测量过程。

若所测频率值为fx,标准频率为fs,计数器1测得的被测信号的脉冲数值为Nx,计数器2测得的标准信号的脉冲值为Ns,则它们之间存在如下的关系[8]:

…………

(1)

下面由

(1)可推得

…………

(2)

等精度数字频率计误差的证明:

若所测频率值为fx,其真实值为fxe,标准频率为fs,一次测量中,由于fx计数的起停时间都是由该信号的上升沿触发的,因此在Tpr时间内对fx的计数Nx无误差,在此时间内的计数Ns最多相差一个脉冲,即Δet≤1,则下式成立:

…………(3)

可推得

…………(4)

根据相对误差的公式

(2)(4)推得

…………(5)

经整理可得到

…………(6)

因Δet≤1,故Δet/Ns≤1/Ns,即

…………(7)

…………(8)

结论:

误差在频率范围内恒定,取决于标准频率,标准频率越大,误差越小,所以又称等精度测试。

3.2.2等精度测周期法原理

为提高周期测量的精度,采用等精度周期测量法。

该方法在测量电路和测量精度上与等精度频率测量完全相同,只是在进行计算时公式不同,用周期1/T代换频率f即可,计算公式为[8]

…………(9)

3.2.3实现方法

测试模块f_d_test内部的原理图如图4所示[8][9]。

当QH=0时,测试模块进行频率或周期测量,其工作步骤如下:

(1)在CLR端加以正脉冲信号以完成测试电路状态的初始化。

(2)将预置门控信号START端置高电平,预置门开始定时,此时由被测信号的上升沿打开计数器CNT1和CNT2,两计数器开始工作。

(3)预置门定时结束信号START端置为低电平(由NIOSⅡ微处理器来完成)。

在被测信号的下一个脉冲的上升沿到来时,两个计数器停止工作。

(4)计数结束时,count_end端口输出低电平,NIOSⅡ微处理器读取该信号后,就对两个计数器的计数时进行读取,再根据公式进行运算,计算出被测信号的频率或周期值。

3.2.4仿真

周期/频率测试仿真图如图5所示。

测试信号TCLK的频率值设置为10MHz,即fx=10MHz;

标准信号BCLK的频率值设置为100MHz,即fs=100MHz。

仿真情况分析如下:

1.计数器CNT1的计数值为4,即Nx=4;

计数器CNT2的计数值为40,即Ns=40;

则由公式计算可得:

,与设置的频率值一致,故满足设计要求。

2.由图可看出:

当START=1时,测试信号的第一个上升沿到来时,计数器使能端BENA=1,但是相对于计数器时钟信号的上升沿,使能端会有些延时,以至于计数器无法计数打开使能端的这个测试信号的脉冲,只能从下一个脉冲开始计数;

同理,当START=0时,计数器仍然会对关闭计数器的这个测试信号的脉冲进行计数,只有等到下一个脉冲的上升沿到来时才停止,故在软件编写上要注意延时,以确保测试正常。

3.3脉宽、占空比测试模块

3.3.1脉宽测量原理

测量电路在检测到脉冲信号的上升沿时打开计数器,在下降沿时关闭计数器,设脉冲宽度为Twx,计算公式为[8]

…………(10)

3.3.2占空比测量原理

测一次脉冲信号的脉宽,记录其值为Twx1,然后将信号反相,再测一次脉宽并记录其值为Twx2,通过下式计算占空比[8]:

…………(11)

3.3.3实现方法

脉宽测量原理图如图6所示,编译生成为图4中的MAIKUANG模块。

当QH=1,测试模块进行脉宽或占空比测量。

当W_D=1时,测试的是信号高电平的脉宽;

当W_D=0时,测试的是信号高电平的脉宽;

具体工作步骤如下[8]:

(2)在被测信号的上升沿到来时,标准频率信号进入计数器CNT2。

(3)在被测信号的下升沿到来时,计数器CNT2被关断。

3.3.4仿真

脉宽/占空比测试仿真图如图7所示。

标准信号BCLK的频率值设置为100MHz,占空比为60%,即fs=100MHz。

1.当W_D=1时,计数器CNT2的计数值为6,即N1=6;

当W_D=0时,计数器CNT2的计数值为4,即N2=4,则由公式计算可得:

脉宽为

,与设置的脉宽值一致,故满足设计要求;

,与设置的测试信号的占空比一致,故满足设计要求。

2.由图可看出:

初始化后,计数器工作在测试信号的第二个高电平或者低电平期间,即此时才对标准信号进行计数。

这是因为脉宽测试模块(见图6)中只有等到第二个测试信号的上升沿到来时,PUL端口才有输出值,这样才能打开后面的计数器。

故在软件编写上要注意延时,以确保测试正常。

3.4液晶显示

3.4.1LCM128645ZK液晶概述

中文液晶显示模块LCM128645ZK的字型ROM内含8192个16*16点中文字型和128个16*8半宽的字母符号字型;

另外绘图显示画面提供一个64*256点的绘图区域GDRAM;

而且内含CGRAM提供4组软件可编程的16*16点阵造字功能,可实现汉字、ASCII码、点阵图形的同屏显示。

与单片机等微控器的接口模式有三种,分别为:

并行8位/4位,串行。

LCM128645ZK液晶引脚说明见附录2。

3.4.2液晶的控制

SOPCBuilder中有已经定制好的液晶显示的内核,液晶屏内部带有液晶控制器ST7920。

液晶驱动电路如图8所示。

由于液晶屏是Motorala接口,不能直接使用Avalon总线接口来操作,要对LCD_EN信号进行必要的逻辑转换,转换由LCD_EN模块来实现[10],其中的具体逻辑如图9所示。

可以看出只有当片选和读(或写)低电平有效时才产生高电平有效的LCD_EN,满足控制要求。

查看ST7920的数据手册,从CPU写数据到ST790的时序图中可看出,数据是在使能信号(LCD_EN,高有效)的下降沿写入,并要求RS(由地址信号A0产生)信号有一定的保持时间(大于20ns),相当于写数据时要求地址信号有一定的保持时间;

另一方面,Avalon三态接口中的选通信号与地址信号是同时结束,不能满足液晶屏的写控制时序。

这个问题可通过将控制液晶屏的地址信号A0(RS)和A1(R/W)延时解决,因此增加一个lcd_delay模块,其内部逻辑如图10所示。

lcd_delay模块内部逻辑中,有一个多路选择开关,其选择由LCD_nCS来控制,因此只有对液晶屏进行操作时,A0(RS)和A1(R/W)才可延时[10]。

4NIOSⅡ系统的设计

4.1NIOSⅡ系统的分析

1、根据系统要实现的功能和开发板配置,系统需要使用的外围器件包括:

◆LCD液晶显示:

显示待测信号的频率、周期、脉宽、占空比等信息;

◆按键(四个):

用于测试模块功能的选择;

◆Flash存储器:

存储硬件和程序;

◆SRAM存储器:

程序运行时将其导入SRAM。

2、根据用到的外设和器件特性,在sopcbuilder中加入的内核及各内核的作用如下[11]:

◆CPU:

用来对系统各外设的逻辑控制

◆JTAGUART(JTAG通用异步通信总线):

用于Flash存储器的读写控制,在参数设置时一般保持默认不变

◆系统ID外设:

当SOPCBuilder生成NIOSⅡ系统时,将为每个NIOSⅡ系统生成一个标识符。

该标识符会被写入systemid寄存器中,供编译器和用户辨别所运行的程序是否与目标系统匹配

◆timer(定时器内核):

作为系统的周期性时钟源、定时器等

◆SRAM:

用作程序运行时所要的内存

◆FLASH:

用于存放最终的程序和数据,掉电时,数据不会丢失

◆AvalonTristateBridge(Avalon三态桥):

是Avalon交换结构与片外外设相连的桥梁,它产生片外器件所需的数据、地址、读/写、片选以及其他控制信号

◆PIO口:

用作功能选择及控制信号

◆LCD显示:

显示所测量的结果

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_AVALON_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_u32id,void*context,void(*isr)(void*,alt_u32)):

登记中断源

2.液晶显示

LCD_init(void):

液晶显示初始化

LCD_BacklightCon(alt_u8status):

打开背光

LCD_printf(alt_u8row,alt_u8col,alt_u8*pdata,alt_u8len):

显示字符

ST7920_ClearScreen():

清屏

3.定时函数

alt_busy_sleep(unsignedintus):

延时

4.2.2系统流程图

系统总流程图如图12所示。

系统外部共有四个按键,分别控制频率测试、周期测试、脉宽测试、占空比测试。

主程序中主要是检测按键,根据键值Test_Mode来选择系统的工作状态。

频率、周期、脉宽、占空比测试的子程序分别如图13、14、15、16所示。

对于频率/周期测试,不同的待测信号频率采用不同的预置门限。

原因如下:

当高频时,若系统采用的门限时间太长的话,FPGA内部的32位计数器可能会溢出,另外也会影响系统的实时性;

当频率低时,若系统采用的门限时间太短时,计数器可能就无法计数了。

本系统中,划分了三个频率段,每个频率段的门控信号的时间不同:

Fx<

1KHz时,门控信号,即闸门时间为2s,1KHz≤Fx<

1MHz时,闸门时间为1.5s,Fx≥1MHz时,闸门时间为1s。

5系统测试

5.1测试仪器

表2仪器列表

序号

仪器名称及型号

数量

1

TDS1002数字示波器

SP1641B型函数信号发生器

3

EE1461型DDS合成信号发生器

5.2数据记录与分析

5.2.1频率、周期测试

1.利用SP1641B型函数信号发生器产生方波,输出电压为2.5V,占空比为50%。

数据记录如表3所示。

相对误差值的计算公式如下:

REL=

…………(12)

表3频率测试数据记录表

仪器

测试

信号发生器

OSC

示波器测试

IDE

液晶显示

DES

相对误差(%)

REL

频率(Hz)

1.095

1.09

0.456

周期

-

920.00ms

0.92s

1.305

1.299

1.30

-0.077

780.00ms

0.779s

0.128

2.225

2.222

2.22

0.090

450ms

0.449s

0.222

11.79

11.7962

0.052

84.77ms

66.49

66.4903

15.03ms

604.51

604.533

604.53

0.0004

1.65ms

6.4182K

6.41830K

6.418K

0.005

155.8us

0.156ms

70.619K

70.6199K

0.001

14.16us

742.15K

742.173K

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1