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

08 多功能计数器-华中科技大学

[复制链接]
跳转到指定楼层
沙发
发表于 2015-9-10 21:57:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zhangxunyi 于 2015-9-11 20:59 编辑

        题目:多功能计数器                        

指导教师 :  尹仕,肖看
队员及年级:胡光恒(06级)
                     王 越(06级)
                     骆潘钿(06级)
学校及院系:华中科技大学电工电子科技创新中心
摘要:
      本设计给出了以CycloneII型 FPGA EP2C8为核心的多功能计数器的基本原理与实现
方案。FPGA片内包括测频模块,测相模块,DDS查表模块及NIOSII处理器; NIOS核调节频
率字与相位字控制DDS查表模块并经片外高速DA DAC900输出正弦波。测频测相模块的片外
输入采用TI公司的宽带运放OPA699放大,并使用TL3116构建迟滞比较器整形为方波送入
FPGA片内,由可编程逻辑在FPGA内部组建的测频测相逻辑单元,采用等精度测量方法测得
结果并送NIOS核处理,在LCD上显示。经测试,频率测试范围达到1Hz~14MHz,准确度达
0.1ppm,相位测量范围0~360°准确度1°,信号灵敏度达到8mvRMS。
关键词:频率测量 相位测量 DDS NiosII SOPC.
一 方案论证与设计
1.1方案设计
1.1.1 频率测量方案
方案一:快速傅里叶变换
方案二:等精度计数
1.1.2 相位测量方案
方案一:将两路同频信号在时域叠加,经 FFT 运算后,求得频域实部与虚部的模量之比
的反正切值,即为正交分离下的正弦余弦相位差,作处理得到两路正弦相位差。
方案二:将被测的两路正弦波信号经比较器整形成方波信号,利用异或门电路进行鉴相
处理,将得到的脉冲序列经过AD637 真有效值-直流转换芯片,测出该脉冲序列的有效值,
该有效值与脉冲序列的占空比成正比,从而反推出两信号的相位差。
方案三:测得两同频率待测信号对应跳沿的时间差中时钟脉冲的个数,与整周期时钟脉
冲数比较,从而得出相位差。
比较三种方案,方案一在二分之一取样频率内整倍取样频率时的幅值可轻易达到的8 位
以上分辨率,因而计算出的相位准确度较高,但在时域上将两信号叠加所引入的误差难以很
好控制,导致最终效果差。方案二在低频段时,AD637响应不平坦,转换精度有限。方案三
在两信号相差较小或频率较高时,将导致相差时间计数脉冲数量不足,导致下降,但其实现
简单方法简单可靠,误差最小。
1.1.3 移相信号发生器方案
方案一:使用成品DDS芯片 AD9851,AD9851是 ADI公司的一款成品DDS发生芯片,该芯
片的相位累加器为32位,而相位分辨率仅有四位,换算为仅有16种相移角度。
方案二:在 FPGA内建查找表实现的程控DDS模块。在相位字的基础上频率字自累加作为
ROM表地址,查表输出数据到DA;
比较两种方案,方案一移相能力无法满足本题需要;方案二的控制更灵活。
二 系统实现
2.1原理分析与硬件电路图
该系统由FPGA片上数字部分及其片外模拟环境组成:
总系统框图为:
2.1.1 相位差测量模块
相位测量部分的实现原理为:通过测量两路波形异或时间和整周期时间内参考脉冲数之
比以及超前滞后情况来求得相位差。
2.1.2 频率测量模块
频率部分采用等精度测量法。在整周期的待测信号时间内同时对待测信号和参考脉冲进
行周期计数。由两周期数之比及参考脉冲频率可得频率测量结果
2.1.3 相移产生部分:
数字部分由FPGA内部通过Matlab 的Simulink 建立基于延迟查表的DDS为两路频率相
位可调的正弦信号。单个DDS 模块如图:
综合考虑到低频频率需求及逻辑资源消耗,选取1024点的10位宽ROM 表及32 位的频
率字与相位字,频率字经一级乒乓延迟后自累加,并加上相位字,削去溢出位,取高10位作
为ROM 表的地址。DDS 模块直接输出数据到片外高速DA,经过缓冲放大输出,作为相位
计部分的被测信号。
2.1.4 频率计片外调理部分:
输入信号幅度要求为10mVrms~5Vrms,频率范围为1Hz~10MHz。信号的幅度小,频率高,
跨度范围大。我们才用了比较简便的办法,将输入的小信号进行足够倍数的放大,而大信号
则被二极管箝位,保护了运放。
题目要求频率计的输入范围能达到10mVrms~5Vrms,对应的峰峰值为28mV~14V。为使
电路后级施密特触发器能够正常工作并识别脉冲,信号幅度最大的放大值为110 倍,故前级
采用了两级11倍共121倍的同相放大,并采用7414施密特触发器对信号进行整形。
对运放的选型要求,放大倍数11 倍,带宽10Mhz,同时为避免小信号时的直流漂移对整形
的影响,必须采用低失调运放。运放选用了TI 公司的OPA699 宽带高增益运算放大器,其
1400Mhz 带宽增益积,高增益特性,典型1.5mV的失调,能够很好的满足本题的需要,特别
是需要运放进行饱和放大时,较低的过载恢复时间能够减小运放带来的波形失真。1400V/uS
的高压摆率能最大提高波形的前沿。
电路测试时发现前级电路的输入频率与输出方波脉冲频率在低频段有较大误差。输入信
号500Hz而读数却有2000多。示波器观察放大器输出发现,放大器输出有明显毛刺。
分析后得出,由于方案采用了饱和放大的做法,以至前一级放大器在过零点的噪声毛刺
被后级放大器放大到可使比较器翻转的幅度,导致产生毛刺脉冲,计数错误。而在高频段由
于毛刺宽度窄,信号上升沿陡以及系统带宽的原因被忽略掉。
因此我们采取了在施密特触发器整形前加装一级RC 低通滤波器的简便做法,将低频段
(<100KHz)毛刺滤掉,而在高频段将滤波器断开,减小高频信号的损耗。实践表明,该改进取
得良好效果。
2.2软件设计流程
另:开机校准。如有更精确频率的信号源(如温补晶振),可选择开机外部校准,即接入外部
信号源,输入准确频率值,系统会根据测试结果对精度进一步校正。最后得到的值以开机外
部校准为参考。默认情况下为系统已进行过的内部校准。
三 系统测试与误差分析
4.1:片上部分测试
4.1.1:.FPGA测频模块与测相模块经时序仿真通过。DDS 模块经MATLAB仿真通过。
4.1.2:.使用 FPGA硬件级调试,NIOS 控制DDS 输出信号,送往片内测频测相模块计算, 再
读取测量结果,作基本运算并通过JTAG UART 控制台显示出来。以联合测试整个数字系统。
(系统时钟50M)
ROM 表地址线10位,在32位控制字中的步进为0x0040_0000。
设Fn0x0040
为频率字相对于0x0040_0000的倍数,即相当于0x0040_0000的步进数。同理设
Pn0x0040
为相位字步进数。
由计算可得:
待测信号频率 = DDS 频率 * Fn
0x0040/ 102
待测信号每周期参考脉冲数 = 参考脉冲频率 / 待测信号频率
= (参考脉冲频率 * 1024)/ (DDS 频率 * Fn

0x0040


= 1024 / Fn0x0040
待测信号每周期相差时间内参考脉冲数 = △ Pn
0x0040*待测信号每周期参考脉冲数 / 1024
= △ Pn0x004/ Fn0x00404.2片外部分测试:
4.2.1 测试环境 25°C
4.2.2 测试仪器:TDS1012 100M 数字存储示波器;固纬GFC-8270 8位等精度频率计;
EE1643C 型函数信号发生器;Fluke F17B 型数字万用表
4.2.3 测试方法
标准频率计与自制频率计同时测量函数信号发生器频率。







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

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