以单片机为核心的频率响应测试仪方法设计

发布者:DelightWish123最新更新时间:2020-02-25 来源: elecfans关键字:单片机  频率响应测试仪  测量系统 手机看文章 扫描二维码
随时随地手机看文章

引言

在模拟电路设计和调试过程中, 测量系统的频率响应特性是非常重要的一步。而市场上能购买到的具有分析系统频率响应的仪器通常都比较昂贵, 而且体积较大, 一般很难接受。为此, 本文介绍了一种成本较低、体积小、操作简单, 能满足大部分系统测量要求的频率响应测试仪的设计方法。


1 系统总体设计

本文介绍的是基于单片机C8051F060和频率合成芯片AD9834开发的、可测量系统频率响应曲线的仪器系统。其系统总体设计框图如图1所示。

以单片机为核心的频率响应测试仪方法设计

图1 系统总体设计框图。

本设计中的单片机C8051F060可控制扫频信号源, 以产生一系列不同频率的正弦信号, 然后将这些信号进行滤波、放大后作为被测对象的输入送到被测网络中, 而被测对象的输出信号则经过调理电路输入到单片机C8051F060中进行数据采集与处理, 并将其幅频特性曲线、相频特性曲线通过LED显示出来。键盘可通过控制单片机来设置频率的步进值。


2 各部分模块的设计

2.1 主要芯片简介

本系统中的C8051F060是美国Cygnal公司推出的完全集成混合信号片上系统型MCU。

C8051F060采用与8051兼容的专利内核CIP-51,速度高达25MIPS, 并具有59个数字I/O 引脚、5个16位通用定时器、6个带有捕捉/比较模块的可编程定时器/计数器阵列。同时, 片内还集成了两个16 位、1 Msps 的ADC和2个12位DAC、3个电压比较器、看门狗定时器, VDD监视器和温度传感器。该芯片上集成有64KB的FLASH和4352B内部RAM, 以及硬件实现的SPI、SMBus/I2C和2个UART 串行接口。最为便利的是, C8051F060还集成了CAN总线控制器, 这使得用CAN总线开发C8051F060具有开发费用低廉、抗干扰性强、可适用于工业现场应用等特点。


本设计选用的频率合成芯片AD9834是AD公司生产的具有高集成度、低功耗的直接数字频率合成器, 它使用的DDS技术是一种利用正弦信号相位随时间线性增加的原理, 并由数字累加和数/模转换来合成所需频率的技术。它主要由数控振荡器(NCO)、相位调制器、正弦查询表ROM和1个10位D/ A转换器组成。数控振荡器和相位调制器主要由2个频率选择寄存器、1个相位累加器、2个相位偏移寄存器和1个相位偏移加法器构成, 其最高工作频率可达50 MHz。在参考时钟1MHz下的频率分辨率达0.004 Hz。同时, AD9834还具有三总线串行(SPI) 接口, 可以较好地与DSP或单片机兼容, 并可以输出正弦波、三角波和方波信号。


2.2 扫频信号源设计

本设计采用C8051F020单片机作为控制器件,它的最高工作频率可达到25 MHz, 并可提供一个串行外设接口SPI器件, 然后利用SPI总线向AD9834发送频率控制字, 以使AD9834产生正弦信号, 将此差分信号通过引脚IOUT和引脚IOUTB输出。本系统中的扫频信号源电路如图2所示。

以单片机为核心的频率响应测试仪方法设计

图2 扫频信号源设计电路图。


2.3 调理电路设计

在设计调理电路时, 可选用模拟开关ADG408来控制放大电路的增益, 以将±5 V的信号经过调理电路衰减后, 再和ADC的参考电压相加, 从而使信号的幅度范围达到ADC允许的范围内(0~2.5 V)。


3 单片机C8051F060与AD9834的通讯接口

本设计采用单片机C8051F060并通过SPI接口向AD9834发送命令和数据, 再由AD9834 产生系统需要的扫频信号。C8051F060 的SPI是一个高速同步串行输入/输出口, 可支持主/从形式的多机通信, 通常用于DSP 控制器和外设或另一个处理器之间以串行方式进行通信和数据交换。通信时一般使用四条线, 即串行时钟线SPICLK、主机输入/从机输出线SPIMISO、主机输出/从机输入线SPIMOSI、从传送使能线SPISTE。而AD9834有三根串行接口线, 且与SPI等接口标准兼容。


由于单片机只向AD9834发送数据, 而不需要接收数据, 因此, 设计时可将单片机的SPI设置为主器件, NSS置为高电平。C8051F060与AD9834的具体接口电路如图3所示。

以单片机为核心的频率响应测试仪方法设计

图3 C8051F060与AD9834的接口电路。


4 软件设计

本系统的软件主要完成系统的初始化、程控放大、数据采集与处理及LCD显示等功能。其主程序流程图如图4所示。

以单片机为核心的频率响应测试仪方法设计

图4 主程序流程图。


初始化包括系统初始化、单片机初始化、DDS初始化和液晶屏初始化。初始化之后, 就可以读键值, 如果步长改变, 则清计数器和液晶屏, 没有改变, 则可写频率控制字, 用程序控制其放大倍数, 采集输出信号。如果输出电压超过满量程, 则应减小放大倍数, 以使其被控制到合适的范围内。刚好满足时, 就可以对输入、输出信号两端同时采集, 待采集完成后, 再对输入信号和输出信号分别进行傅里叶变换, 然后计算出各自的幅度和相位, 再用输出端的幅度除以输入端的幅度, 就可以得到被测网络对应频率的放大倍数, 然后用输出端信号的相位减去输入端信号的相位, 就可以得到被测网络对应频率的相频响应。最后将计算出的结果通过LCD显示出来。本系统选用320240B液晶显示器, 并使用功能强大的RA8835/ SED1335作为控制器, 一屏最多可显示320个点, 当这320个点全部显示完成时, 扫频结束, 扫频结束后, 还可以进行频率响应函数的计算。否则就返回, 以进行下一个频率的测量。


5 结束语

通过本文所设计的频率响应测试仪可测出被测网络的响应信号与激励信号的幅值比和相位差, 从而求出系统的幅频特性和相频特性, 再由求得的频率特性进一步求出系统的传递函数。该设计由于输入信号频率成分单一, 信号稳定, 能量集中, 因此, 求出的结果精确度高, 从而克服了其他方法中激励信号成分复杂, 各成分的能量分布不均匀, 持续时间短, 能量不足, 噪声影响较大等缺点。

关键字:单片机  频率响应测试仪  测量系统 引用地址:以单片机为核心的频率响应测试仪方法设计

上一篇:砖坯水分快速测试仪的工作原理及制作
下一篇:漏电测试仪怎么用

推荐阅读最新更新时间:2024-10-16 11:15

用51单片机实现串口通信
#include void ckInt()//串口初始化 { TMOD=0x20;//定时计数器1,方式2 TH1=0xF3; //计算出来的初值 TL1=0xF3; //计算出来的初值 PCON=0X80;//波特率加倍 TR1=1;//启动定时计数器1 SCON=0x50;//串口工作方式1 ES=1;//打开串口中断 EA=1;//打开总中断 } void main()//主函数 { ckInt();//调用函数 while(1); } void ckzd()interrupt 4//中断函数,串口中断编号4 { unsigned int DATA; DATA=SBUF;//发送数据 RI=0;//
[单片机]
89C51单片机的P0~P3端口进行输入时为什么要设置为1?
89C51 单片机 的P0~P3口不是标准意义的双向口 ,他只是准双向口, 你可以对照着P0口的 结构图 看这段话,向端口写1,就是向锁存器写1, 也就是让其口输出FF,为什么,是这样的,给锁存器写1,那么锁存器 的反向端就输出0,那么和它相接的MOS管也就在截止状态,也就是呈高 阻态,这样P0口上数据就会从读引脚的三态 缓冲器 上正确的输入,如果 不写1,那么锁存器上次锁存的可能为0,那么反向端有可能出现1,这样 和反向端相接的MOS管就倒通,也就是直接拉到地,那么不管你P0口上输 入什么信号都会拉成低 电平 ,输入就错了 双向口与准双向口的区别主要是:准双向口I/O口操作时做数据输入时需 要对其置1,否则若前一位为低电平,后
[单片机]
89C51<font color='red'>单片机</font>的P0~P3端口进行输入时为什么要设置为1?
基于AVR单片机的激光测距机性能检测设计方案
  笔者设计了一种基于AVR单片机的激光测距机综合性能检测设备,借助该设备,对不同型号的激光测距机完成测距精度、测距能力、测距逻辑、单脉冲能量等的数字化检测,大大提高了检测效率和测试精度。    1 设计方案   本方案的基本思想基于模拟激光测距机的工作原理和激光传输过程,激光测距机在工作时,首先从其发射通道发射一激光脉冲,经过大气传输照射在被测物体上,然后漫反射,激光测距机的接收通道接收到漫反射的激光回波,激光测距机内部安装有激光脉冲的发射、接收和计时模块,根据激光脉冲从发射到返回的时间可以计算出其走过的距离,从而得到被测目标和激光测距机之间的距离。而本方案的综合性能检测设备与激光测距机的接收、发射通道相对应,分别提供发射、
[单片机]
基于AVR<font color='red'>单片机</font>的激光测距机性能检测设计方案
工程师STM32单片机学习基础手记(4):用PWM实现荧火虫灯(六)
     DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;   DMA_InitStructure.DMA_Priority = DMA_Priority_High;   DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;   以下是stm32f10x_dma.c中有关DMA的初始化设置代码   tmpreg |= DMA_InitStruct-》DMA_DIR | DMA_InitStruct-》DMA_Mode |   DMA_InitStruct-》DMA_PeripheralInc | DMA_InitStruct-》DMA
[模拟电子]
工程师STM32<font color='red'>单片机</font>学习基础手记(4):用PWM实现荧火虫灯(六)
数控电位器与PIC单片机的接口技术
1x9268器件描述 1X9268是Xicor公司生产的,把2个E2POT数控电位器集成在单芯片的CMOS集成电路上的一种数控电位器。它包含两个电阻阵列,每个电阻阵列包含255个电阻单元,在每个单元之间和二个端点都有可以被滑动单元访问的抽头点。滑动单元在阵列中的位置,由用户通过二线串行总线接口控制。每个电阻阵列,与1个滑动端计数寄存器(WCR)和4个8位数据寄存器(R0~R3)联系在一起,这4个数据寄存器可以由用户直接写入或读出。滑动端计数寄存器的内容,控制滑动端在电阻阵列中的位置。 数据寄存器可以由用户读出和写入。数据寄存器的内容可以传输到滑动端计数寄存器,以设置滑动端的位置。当前滑动端的位置可以被传输到与它相联系的任一
[模拟电子]
数控电位器与PIC<font color='red'>单片机</font>的接口技术
PIC单片机数据存储的问题
遇到的问题:定义了一个无符号整形的数组,数组中某个元素的低字节在0X01FF,高字节在0X0200,因此出现了错误; 解决的方案:重新把定义的变量的顺序规范了一下,高效利用了数据存储空间,同时也该数组的地址也变了,其他变量也都没有跨页存储的现象,问题解决; 备用的方案:利用#pragam关键字,自己定义变量的存储地址,可以有效避免此类情况发生,更为灵活。但是要比较了解该款单片机的存储空间的结构,否则容易出错。 以下为网上整理资料: idata表示已经初始化的数据。udata表示没有初始化的数据。 当一个数据块没有足够的空间用于存放一个连续的数据时(数组);此时便可用#pragma idata 或#pragma
[单片机]
STM32F系列单片机内部FLASH编程
STM32F系列单片机内部含有较大容量的FLASH存储器,但没有EEPROM存储器,有时候对于参数的保存不得不另外加一片EEPROM芯片。这对于现如今大部分MCU都是FLASH+EEPROM的配置而言,显的相当的不厚道,尤其是从AVR转过来的开发者们,极为不方便。考虑到STM32F系列自身FLASH容量较大,且有自编程功能,所以很多时候可选择用FLASH模拟EEPROM,存储参数。STM32F系列的FLASH容量一般都足够大,笔者的所有设计中,最高也只用到其相应FLASH的60%左右,还有很多未用到的空间,用于存储参数还是相当方便的。另外,操作FLASH还能方便的实现IAP功能,这对于某些应用,是非常实用的。   STM32F系列
[单片机]
STM32F系列<font color='red'>单片机</font>内部FLASH编程
可兼容替换STM32F042的32位单片机MM32F0130
STM32 STM32F042单片机集成了运行频率高达48兆赫兹的高性能32位RISC内核M0的32位MCU,高速嵌入式存储器(高达32KB的闪存和6KB的SRAM),以及广泛的增强型外设和I/O。 所有设备均提供标准通信接口(一个I2C、两个SPI/一个I2S、一个HDMICEC和两个USART)、一个USB全速设备(无晶体)、一个CAN、一个12位ADC、四个16位定时器、一个32位定时器和一个高级控制PWM定时器。在-40至+85℃和-40至+105℃温度范围内工作,电源电压为2.0至3.6V。 我司上海灵动微电子代理英尚微电子介绍一款可兼容替换STM32F042的32位单片机-MM32F0130。可提供样品开发板测
[单片机]
小广播
最新测试测量文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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