DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 653|回复: 0
打印 上一主题 下一主题

[工仪] 基于单片机和FPGA的扫频仪设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 14:21:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一个网络的频率特性包括幅频特性和相频特性,在系统设计时,各个网络的频率特性对该系统的稳定性、工作频带、传输特性等都具有重要影响。实际操作中,扫频仪大大简化了测量操作,提高了工作效率,达到了测量过程快速、直观、准确、方便的目的,在生产、科研、教学上得到广泛运用。本设计采用数字频率合成技术产生扫频信号,以单片机和FPGA为控制核心,通过A/D和D/A转换器等接口电路,实现扫频信号频率的步进调整、数字显示及被测网络幅频特性与相频特性参数的显示。

1 系统总体方案及设计框图
1.1 系统总体方案

??? 将输出频率步进可调的正弦扫频信号源作为被测网络的激励Vi,可得被测网络的响应为V0。通过测量各频率点的幅度就可得到V0和Vi的有效值,两者之比就是该点的幅度频率响应;对V0和Vi进行过零比较、整形,再送到FPGA测量相位差,即可得到相频特性。
??? 设激励信号Vi=x(n)=Acos(ω0n+f),稳态输出信号V0=y(n)。利用三角恒等式,可将输入表示为两个复指数函数之和:

,式中,

。对于输入为

,线性时不变系统稳态输出为

。根据线性性质可知,输入g(n)的响应v(n)为:

。同理,输入g*(n)的输出v*(n)是v(n)的复共轭。于是得到输出y(n)的表达式:
???


??? 因此。输出信号和输入信号是频率相同的正弦波,仅有2点不同:1)振幅被

加权,即网络系统在ω=ω0的幅度函数值;2)输出信号的相位相当于输入有一个q(ω0)时延,即网络系统在ω=ω0的相位值。该方案幅度和相位测量的控制都通过FPGA实现,能够使测量结果精确。
1.2 系统总体设计框图
??? 系统通过键盘扫描得到外界设置的扫频范围和频率步进,通过调用DDS控模块控制DAC904,输出扫频信号。由于信号在被测网络阻带内会有很大的衰减,故用程控放大处理经被测网络的扫频信号之后,利用AD637进行有效值采样,LM311进行整形。信号有效值经MAXl270进行AD转换后得到有效值的数字量,整形后的信号经测相模块处理得到相位差值。在FPGA中写入2个RAM存放被测信号的有效值和相位差值。完成一次扫频后通过波形显示模块将幅频、相频曲线显示在示波器上,并将特定频率点的幅度和相位差值在液晶显示器上进行显示。系统实现框图如图1所示。





2 系统功能部分设计
2.1 扫频信号的产生

??? 直接数字合成(DDFS)信号源。它是一种完全数字化的方法:先将一个周期的正弦波(或者其他波形)的离散样点幅值的数字量预先存储于ROM或者RAM中,按一定的地址增量间隔读出,经D/A转换后成为不同频率的模拟正弦波信号波形,再经低通滤掉毛刺即可得到所需频率的输入信号。按此原理,DDS可以合成任意波形,且可以精确控制相位,频率也非常稳定。利用FPGA制作起来相当容易,且扫频步进实现简单。设FPGA内部的参考频率源的频率为fclk,采用计数容量为2N的相位累加器(N为相位累加器的位数),频率控制字为M,则DDS系统输出信号的频率fout=fclk/2N×M。频率分辨率为:△f=fclk/2N。
                          
                       
                          
                               
??? 若选取晶振频率为40 MHz,频率控制字为24位,相位累加器的位数为31位,则输出频率范围为0.02 Hz~312 kHz,步进频率为40 MHz/231≈0.02 Hz。
??? 系统采用高速14-bit电流输出型D/A转换器DAC904制作DDS扫频信号源。通过FPGA给其20 MHz的时钟信号以输出10 Hz~100 kHz的扫频信号。该器件制作成的PCb板中,很好地考虑了接地,使得输出信号在频率为1 MHz可以达到无明显失真。DAC904采用内部基准和双极性接法,输出信号幅值范围为0~5 V。其原理图如图2所示。




2.2 幅频特性测试方案
??? 使用集成真有效值转换器AD637先检测出信号每个频率点的有效值,再经过A/D采样将得到的数据读到单片机中进行处理即可。该器件外接电路简单,工作频带很宽,与A/D转换器级联,可以对任何复杂波形的有效值、平均值、均方值、绝对值进行采样,测量误差小于±(0.2%读数+0.5 mV),可以达到很高的测量精度。
2.3 相频特性测试方案
??? 采用计数法实现相位的测量。计数法的思想是将相位量转化为数字脉冲量,然后对数字脉冲进行测量而得到相位差。对转换后的数字脉冲量进行异或运算,产生脉宽为T0、周期为T的另一路方波,若高频计数时钟脉冲周期为TCP,则在一个周期T的时间内的计数数值为:
???


式中,φx为相位差的度数。
??? 这种方法应用比较广泛,精度较高,电路形式简单,适合FPGA实现。
??? 实际测量中,当两输入信号频率较高且相位差很小时,得到的脉冲很窄,这会造成较大误差。为了克服上述缺陷,引入等精度测量的思想(如图3),采用多周期同步计数法,利用触发器产生一个宽度为被测信号fa整数倍的闸门信号。利用计数器1测量出闸门信号内通过高频脉冲fm的个数N1,利用计数器2测量出相同时间内闸门信号、异或信号、高频脉冲三者相与后的脉冲数N2。因此,相位差值为△φ=N2/N1x36 0°。测量相位的同时,在FPGA内部引入一D触发器,用一路方波信号控制另一路方波,通过触发器输出的高低以判断信号相位差范围是大于180°还是小于180°。




                          
                       
                          
                               
2.4 系统显示电路设计
??? 为了在示波器上显示曲线,需要通过2个D/A转换器向X、Y轴同步送入扫描信号和数据信号。X轴方向的DA转换器输出扫描信号为O~5 V的锯齿波信号,而数据信号为-5~5 V,反应了各个频率点上的信号幅值和相位,由另一片D/A转换器向Y轴方向输出。

3 系统软件设计
??? 系统软件设计由单片机和FPGA组成。整个系统以用户按键中断为主线,调用不同的处理函数,与FPGA中各个控制模块之间,以总线的进行数据的交换,实现了系统测量频率特性的功能。软件流程图见图4。





4 结束语
??? 本扫频仪利用数字频率合成技术(DDS)产生扫频信号,通过14位D/A转换器DAC904产生了10 Hz~100 kHz的正弦扫频信号,作用于被测网络。网络的输出信号通过有效值采样电路,以及由比较器LM311配合FPGA内部实现的测相电路,完成了对被测网络频率特性的测量。
??? 为对系统的性能进行测试,制作了一个中心频率为5 kHz。带宽为±50 Hz的阻容双T网络。测试结果表明,在网络的通带和阻带内,相频特性测量均达到了3°以内的测量精度,幅频特性的测量误差均小于50%。此外,该系统可以通过键盘输入扫频范围,通过示波器显示幅频、相频曲线,并可以在液晶显示器上显示该网络在特定频率点上的幅度、相位特性值。该系统操作简单,成本低廉,测量精确,具有很强的实用性。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 18:29 , 耗时 0.084524 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表