当前位置:首页 > 基于VHDL语言设计数字频率计
基于VHDL语言设计数字频率计
摘要:
该频率计采用STC公司生产的STC89C51单片机和Altera公司所生产的FPGA芯片EP1C6Q240C8N。FPGA的软件用VHDL语言描述实现在单片机的控制信号下进行计数。单片机的软件采用C语言编写,很方便处理运算由FPGA传给单片机的数据。
关键字: 一、引言
频率检测是电子测量领域的最基本也是最重要的测量之一。频率信号抗干扰能力强、易于传输,可以获得较高的测量精度,所以测频率方法的研究越来越受到重视。以往的测频仪都是在低频段利用测周的方法、高频段用测频的方法,其精度往往会随着被测频率的下降而下降。该设计采用等精度测量方法,解决了这个问题。
本设计中采用的STC89C51是一种低功耗、高性能的8位CMOS单片机,片内有4KB的闪烁可编程/擦除只读存储器,并且与MCS-51引脚和指令系统完全兼容,并且有宽工作电压范围、存储数据保存时间长(10年)等优点,是一款性价比较高的单片机。EP1C6Q240C8N可容纳各种各样、独立的组合逻辑和时序逻辑函数,可以快速而有效的重新编程,并保证可编程擦除100次,这样可以进行重复烧录,比较方便系统的调试。FPGA的各种功能块用VHDL语言描述实现。该测频仪将FPGA的高速高可靠性、单片机的灵活控制功能和等精度测频原理较高的测量精度相结合,具有速度快、功能全、精度高等特点。
二、设计原理
1、 设计内容
设计一数字频率计,测量功能如下:
(1) 能测量正弦波、方波等信号的频率(周期); (2) 能测量脉冲信号的宽度、占空比; (3) 由键盘选择确定测量功能;
(4) 能实时显示被测信号的频率(周期)、脉宽等参数;
(5) 具有自校功能,时标信号频率为2MHz;
系统可由单片机控制单元与FPGA测量单元两部分构成。其中,单片机控制单元主要实现处理运算FPGA测量单元送来的信号并产生反馈信号,通过单片机处理键盘的键值来选择区分各功能并控制液晶显示测量值。FPGA测量单元主要实现频率、周期及脉宽等参数的测量。 2、 系统技术指标
本系统设计的基本指标如下:
(1) 对于频率测试功能,测频范围为1Hz-2MHz;对于测频精度,测频全域相对误差小于0.1%。
(2) 对于周期测试功能,信号测试范围和精度要求与测频功能相同。 (3) 对于脉宽测试功能,测试范围为≧100us,测试误差小于1%。 (4) 对于占空比测试功能,测试误差小于1%。
3、本系统采用的设计方案
电路系统框图如图1所示,其中单片机完成整个测量电路的测试控制、数据处理和显示输出;FPGA完成各种测试功能;键盘控制命令直接通过单片机I/O口读入单片机,实现测频、测脉宽及测占空比等功能;单片机从FPGA读回计数数据并进行运算,向显示电路输出测量结果。显示器电路使用1602液晶显示屏实时显示所测参数值,液晶显示屏(LCD)具有耗电量低,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点,而且可以显示各种西文字符,在本系统中可以方便直观的显示出各测量参数的单位。输入通道主要对被测信号进行限幅和电压比较器整形后得到满足FPGA所能测量的信号后送入FPGA。FPGA测试的标准频率为50MHz的有源晶振。电源部分采用220V交流电经变压、滤波、稳压后得到±5V及±12V电压供整个系统使用。单片机由外接12MHz标准晶振提供时钟电路。本系统中的自校信号也是由12MHz标准晶振提供。
图1 系统框图
三、设计实现
1、基于STC89C51单片机的硬件设计方案 ①单片机控制电路的设计
如图2所示,为本系统单片机控制电路的设计。
C1CAPC2X1CAPU119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617DATA0LCD2LM032LCRYSTAL18XTAL29RSTDATA7SEL0SEL1SEL2LCM_RWLCM_RSECLSPULCLRRSTSTARTEENDF_KEYT_KEYM_KEYZ_KEYVSSVDDVEERSRWED0D1D2D3D4D5D6D7P2.44P2.35P2.56293031PSENALEEA123789101112131412345678P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7STC89C51 图2单片机控制电路
②液晶显示电路的设计
如图3所示,单片机控制1602液晶显示各参数的值。1602的数据口接单片机的P1口,RS、RW、E分别接单片机的P2.4、P2.3、P2.5。
C1CAPC2X1CAPU119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617CRYSTAL18XTAL2RV1RES-VARLCDVSSVDDVEERSRWED0D1D2D3D4D5D6D712345678910111213149RST293031PSENALEEA12345678P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7AT89C52 图3 显示电路
③键盘控制电路的设计
经对本系统中单片机的口资源分配,可以用单片机的口单独控制各按键,在
口资源足够分配的情况下,这样比较简单,也比较容易处理。本系统中,设定了五个按键,分别用五个口去控制,如图4所示P3.7控制占空比的测量,当占空比按键按下时,该系统会通过P3.7传送单片机一信号,经处理后,单片机控制液晶显示占空比的值;同理P3.6控制脉宽的测量;P3.5控制周期的测量;P3.4控制频率的测量;P3.1控制液晶复位。
U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P3.1复位18XTAL29RSTP3.4频率293031PSENALEEAP3.5周期12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.6脉宽P3.7占空比 图4键盘控制电路
2、基于STC89C51单片机的软件设计方案
等精度数字频率计涉及到的计算包括加、减、乘、除,耗用的资源比较大,用一般中小规模FPGA芯片难以实现且较麻烦。因此,我们选择单片机和FPGA的结合来实现。利用单片机C语言处理数据的加、减、乘、除很方便这个特点,我们可以很方便的处理FPGA计数所得的两个32位数据。[8] ①单片机主程序的设计
图5为单片机主程序流程图。
共分享92篇相关文档