基于51单片机和FPGA的频率特性测试仪的设计

发布者:老桃子最新更新时间:2011-12-09 关键字:51单片机  频率特性测试仪 手机看文章 扫描二维码
随时随地手机看文章

1 引言
    频率特性是网络的性能最直观反映。频率特性测试仪是测量网络的幅频特性和相频特性,并显示相应曲线的一种快速、方便、动态、直观的测量仪器,可广泛应用于电子工程领域。
    该测试仪以扫频外差为基本原理,并以单片机和FPGA构成的最小系统为控制核心,很好地完成对有源双T网络进行频率在100 Hz~100 kHz范围内的幅频响应和相频响应特性的测试,并实现在通用数字示波器上同时显示幅频和相频响应特性曲线。

2 系统设计方案
2.1 总体方案
    该设计采用单片机和FPGA结合的方式。将输出频率可步进的正弦信号的扫描信号源作为被测网络的输入信号Vi,则被测网络的输出信号Vo为频率可步进的信号。通过测量各频率点的幅度就可得到Vo和Vi的有效值,两者之比就是该点的幅度频率响应;对Vo和Vi进行过零比较、整形,再送到FPGA测量相位差。 Vi的上升沿启动计数,Vo的上升沿停止计数,所得时间值与信号周期之比,就是该点的相位频率响应。此方案采用FPGA测量相位差,而且便于制作DDS扫描信号源。
2.2 扫频信号源设计方案
    该设计采用直接数字合成(DDS)信号源。DDS信号源是由数字量控制的频率源,如图 1所示,其具体实现过程是:将输出波形一个完整周期的幅度值按相位步进顺序量化存储于双端口RAM中,按一定的地址间隔读出,经D/A转换成模拟信号,再经低通滤波器滤去D/A转换带来的小台阶和数字电路产生的毛刺,即可获得高精度、高纯度的正弦信号。理论上只要累加器的位数足够多,便可实现任意小的频率步进,且频率分辨率很高,十分接近于连续变化。通过预设相位累加器初值可很方便地实现精密相位调节。

2.3 幅度测量模块的方案
    该模块采用集成真有效值变换器件。测量被测信号的真有效值,然后将其换算为幅值。即可实现对正弦波的幅值测量。该方案硬件、软件都很简单,而且精度高,效果理想。[page]

2.4 相位测量模块的方案
    该模块采用相位一时间转化法。两个频率相同、相位不同的正弦信号经整形异或运算后产生脉宽为Tx、周期为T的方波,相位差与(TX/T)之间始终存在一一对应关系。因此无论频率如何变化,只要测出(Tx/T),相位差的大小也就确定。

3 理论分析与计算
3.1 DDS相关计算
    由DDS原理可得:
式中,N为相位累加器位数,K为频率控制字。
    当K=1时,可知DDS的最低输出频率为:

   

    此即DDS的频率分辨率。
    (1)移相信号发生器部分DDS由于输出级D/A转换器DAC0800的建立时间为100 ns,则时钟频率应小于10 MHz,取时钟频率fout=8.388 608 MHz,相位累加器N=23bit,则:

(2)扫频信号部分DDS 由于FPGA片内资源丰富,为保证足够的扫频精度,取参考时钟频率fclk为40 MHz。通过控制频率控制字K的变化范围,完全可以满足DAC0800的速度要求。
3.2 相位测量相关计算
    由FPGA利用等精度法测得被测信号和基准时钟的频率分别为f0、fCP,对被测信号鉴相后,由得到的相位差脉冲宽度T控制计数器计数,其计数值设为M,则被测信号的相位差为:

 (1)相位测量误差计算 若让计数器在1 s内累计记数,则累计数:M1=Mf0,式(5)改为


其测量误差△φ为:


    (2)相位测量分辨率计算 数字移相信号发生器频率范围为20 Hz~20 kHz,相位差测量范围为0~359°,因此计数器时钟频率fclk至少为72 MHz,取fCP=100 MHz,由于计数器分辨率为±1,对应最小相位分辨率(f0=20 kHz时):

   4 系统整体框图
    系统设计发挥FPGA稳定、可靠、可编程的特点,让FP-GA实现尽可能多的功能,从而减少模拟部分的工作,使整个设计更加可靠。系统整体框图如图2所示。

[page]

5.2 示波器显示部分
    系统除实现LCD显示外,还可借助示波器显示曲线。为分别显示幅频和相频特性曲线,用叠加直流电平的方法使两种曲线显示在示波器荧光屏适当位置(示波器上方为幅频曲线,下方为相频曲线)。根据需要,亦可独立显示某一种曲线。幅度、相位数据均取256 bit,D/A转换采用DAC0800完成。图4为共电路图。

5.3 系统软件的设计
    软件设计由C和Verilog HDL语言编写完成,前者由单片机运行完成实时显示、键值读取、数据处理等系统的主控功能;后者写入FPGA完成键盘扫描。
    并在其中写入滤波模块对波形进行处理,DDS控制产生最终波形的显示并充当单片机与外围电路的桥梁。系统软件流程如图5所示。

6 结束语
    系统很好地完成对有源双T网络进行100 Hz~100 kHz频率范围内的幅频响应和相位响应特性的测试,频率稳定度达到10-6,并能在通用数字示波器上同时显示幅频和相频响应特性曲线。同时系统单片机的软件设计实现友好的人机交互界面,充分发挥了单片机智能化的特点。

 

关键字:51单片机  频率特性测试仪 引用地址:基于51单片机和FPGA的频率特性测试仪的设计

上一篇:基于51单片机的交流伺服电机转速控制系统研究
下一篇:一种基于单片机的节能断电保护电路设计

推荐阅读最新更新时间:2024-03-16 12:48

51单片机学习——9--温度传感器DS18B20
DS18B20 简介 DS18B20数字温度传感器接线方便,封装后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 特点 1、适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电 2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微 处理器与DS18B20的双向通讯。 3、DS18B20支持多点组网功能,多个
[单片机]
<font color='red'>51单片机</font>学习——9--温度传感器DS18B20
51单片机时钟与周期
单片机机中,有时钟周期,机器周期,指令周期,初学者往往不能弄清楚他们之间的关系,这里我就简单介绍一下. 在说明之前我首先要明确几个概念,既什么是周期和频率,相信大多数人都知道他们的含义,周期就是物体循环一周的时间,频率就是1 秒钟内循环的次数.单片机是靠脉冲工作的,既一个脉冲单片机产生一个操作.下面言归正传. 时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us), 既产生一个脉冲的时间,是计算机中最基本的、最小的时间单位。 在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则
[单片机]
51单片机+TM1638驱动数码管测试程序
某宝上买的TM1638模块测试程序 根据数据手册搞出来的 骑远飞TM1638 按键数码管模块 电路原理图如下: 单片机源程序如下: #ifndef _TM1638_H #define _TM1638_H #include REGX51.H #define DATA_COMMAND 0X40 #define DISP_COMMAND 0x80 #define ADDR_COMMAND 0XC0 //TM1638模块引脚定义 sbit DIO=P1^0; sbit CLK=P1^1; sbit STB=P1^2; //共阴数码管显示代码
[单片机]
<font color='red'>51单片机</font>+TM1638驱动数码管测试程序
51单片机串口T1加看门狗程序
数码管部分的电路图 程序: #include reg52.h #define UCHAR unsigned char #define UINT unsigned int sfr WDT_CONTR = 0xe1; UCHAR table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; UCHAR timer; UCHAR conter; void initserial(void) { timer='0'; conter=0; TMOD=0X20; SCON=0X50; TL
[单片机]
<font color='red'>51单片机</font>串口T1加看门狗程序
51单片机12864显示的电子密码锁源码
1.当要想从标志位中退出来就一定要知道程序当前在哪个标志位中读取,然后就是在这个里面设定退出方可,否则是不能使用的,相当于是没有一样。 单片机源程序如下: /************************************************************************************* 密码锁,可以改个人密码和管理员密码的一个基于单片机的锁。 按键值码:1 2 3 set 输入密码只能按0~9,10位确定键,11位取消键(输入密码小 4 5 6 ↑ 于8时取消输入的密码),12是时钟功能键,13是时
[单片机]
51单片机 用数码管显示动态检测结果
注:本数码管为共阴极,P2为位选口,P0为数据口 本实验是一个60s计数器,当满60s后,此时又从00开始计数 #include reg51.h unsigned char Tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char int_time; unsigned char second; void delay(void) { unsigned char i; for(i=0;i 250;i++) ; } void Display(unsigned char k) { P2=0xfd; P0=Tab ;
[单片机]
关于51单片机的复位
单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。 复位电路: 当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。 上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图A中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时
[单片机]
关于<font color='red'>51单片机</font>的复位
什么是51单片机?又该如何自学51单片机
51 单片机是目前使用最多的单片机之一,那么什么是 51 单片机呢?作为新手,又该如何自学 51 单片机?为帮助大家更好的学习 51 单片机,本文将对这两个问题予以阐述。如果你对 51 单片机具有兴趣,不妨继续往下阅读哦。 一、何为 51 单片机 51 单片机是对所有兼容 Intel8031 指令系统的单片机的统称。该系列单片机的始祖是 Intel 的 8004 单片机,后来随着 Flashrom 技术的发展,8004 单片机取得了长足的进展,成为应用最广泛的 8 位单片机之一,其代表型号是 ATMEL 公司的 AT89 系列,它广泛应用于工业测控系统之中。很多公司都有 51 系列的兼容机型推出,今后很长的一段时间内将占有大量
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved