题目:多功能计数器 2 摘要摘要::本设计给出了以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. Abstract: The CycloneII FPGA based multifunctional meter system is constructed of frequency measure unit, phase measure unit , DDS unit and NiosII embedded microprocessor. By setting the frequency word and the phase word, NiosII controls the DDS and drives the DAC900 to provide sine wave. With the importation of off-chip module using TI's broadband operational amplifier OPA699 and hysteresis Comparator TL3116, meter logic inside the FPGA measures the square waves using the principle of equal precision multi-period synchrony frequency measurement. Under the test environment, the whole system has obtained the request of velocity and the accuracy .
Keywords: frequency meter, phase meter, DDS, NiosII, SOPC. 一 方案论证与设计方案论证与设计 1.1方案设计方案设计 1.1.1 频率测量方案频率测量方案 方案一方案一::快速傅里叶变换快速傅里叶变换 数据由AD离散后,经FIR滤波,送入基-4快速傅里叶变换引擎进行多级蝶形运算,从3组ROM表中取出旋转因子乘入每次蝶形运算,对每级计算输入数据进行定浮点动态指数处理,在蝶算单元之外对存放每级输入输出数据的多组双口RAM的地址用逻辑模块进行调序来实现连贯的log4N级蝶算。对所得正弦余弦结果,通过CORDIC算法,经大面积逻辑单元的移位及流水线操作得到信号在整数倍基频处的模量。即完成时域到频域的转换。
方案二方案二::等精度计数等精度计数 将正弦信号进行迟滞比较转化为同频率的方波信号,在FPGA内,通过逻辑模块实现等精度频率测量并送NIOS核处理。测得1s左右闸门时间内整周期待测信号的时间段中,低频待 3
测信号和高频参考信号周期累计数之比,乘以参考频率即得带测信号频率。 对于以上两种方案进行比较,方案一速度快,可达到实时性测量,测量频率范围宽,但因频率分辨率完全依靠离散傅里叶变换的点数。逻辑单元和RAM的限制使得FFT不可能达到高频率分辨率,仅适合多频率混合时的测频。而方案二可在极小的消耗下实现非常精确的分辨率,在信号失真度较小,且外围环境稳定时是测频的理想方案。
1.1.2 相位测量方案相位测量方案 方案一:将两路同频信号在时域叠加,经FFT运算后,求得频域实部与虚部的模量之比的反正切值,即为正交分离下的正弦余弦相位差,作处理得到两路正弦相位差。
方案二:将被测的两路正弦波信号经比较器整形成方波信号,利用异或门电路进行鉴相处理,将得到的脉冲序列经过AD637真有效值-直流转换芯片,测出该脉冲序列的有效值,该有效值与脉冲序列的占空比成正比,从而反推出两信号的相位差。
方案三:测得两同频率待测信号对应跳沿的时间差中时钟脉冲的个数,与整周期时钟脉冲数比较,从而得出相位差。
比较三种方案,方案一在二分之一取样频率内整倍取样频率时的幅值可轻易达到的8位以上分辨率,因而计算出的相位准确度较高,但在时域上将两信号叠加所引入的误差难以很好控制,导致最终效果差。方案二在低频段时,AD637响应不平坦,转换精度有限。方案三在两信号相差较小或频率较高时,将导致相差时间计数脉冲数量不足,导致下降,但其实现简单方法简单可靠,误差最小。
1.1.3移相信号发生器方案 方案一:使用成品DDS芯片AD9851,AD9851是ADI公司的一款成品DDS发生芯片,该芯片的相位累加器为32位,而相位分辨率仅有四位,换算为仅有16种相移角度。
方案二:在FPGA内建查找表实现的程控DDS模块。在相位字的基础上频率字自累加作为ROM表地址,查表输出数据到DA;
比较两种方案,方案一移相能力无法满足本题需要;方案二的控制更灵活。 1.2主要器件型号 本设计中使用的主要器件为TI公司制造,分别为输出正/负可变电压集成三端稳压块LM317/LM337,低压差线性稳压芯片TPS78633,TTL集成施密特触发器SN74LS14, 宽带高增 4
益限压放大器OPA699,单电源Rail-to-rail双运放OPA2350,以及超快低功耗精密比较器TL3116。 3端1.5A可调正/负电压稳定器LM317/LM337具有高达1.5A的最大输出电流,内置过热、过流保护和短路保护,宽输入电压范围(最高40V),全温度范围内最大0.7%的温度系数,其具有极大的灵活性,与稳定性,为系统提供±5V电源。 单输出低压差1.5A线性稳压器TPS78633具有高达1.5A的最大输出电流,具有超低噪声、高电源抑制比等优点,0.4V的低压差使其能够在5V的电源下稳定提供可靠的3.3V系统电源,其内置的过流过热保护提高的系统的稳定性。 OPA699是宽带高增益限压放大器,其高增益稳定的特性、典型1400V/us的压摆率和260MHz的带宽增益积满足了本方案所要求的高增益(10倍)、宽带(1Hz~10MHz)。OPA699配合外部电阻构成的增益共100倍的两级前级放大器能够将最小10mVrms的小信号放大到整形系统所要求的范围。 TL3116是一款低功耗、超高速精密电压比较器,10ns的建立时间能够满足本方案要求的10MHz信号比较,并有一定的裕度,3mV的失调电压充分保证了比较门限的精度,14.7mA的通道消耗电流降低了系统能耗,5V的输出电平兼容后级整形电路。本方案中TL3116用来构造迟滞比较器将前级送来的放大后的信号转换为方波信号。 SN74LS14是一款TTL集成6施密特反相器,在本方案中用来做后级信号整形输入至FPGA。
二 系统实现统实现 2.1原理分析与硬件电路图原理分析与硬件电路图 该系统由FPGA片上数字部分及其片外模拟环境组成: 总系统框图为: 5
2.1.1 相位差测量模块 相位测量部分的实现原理为:通过测量两路波形异或时间和整周期时间内参考脉冲数之比以及超前滞后情况来求得相位差。具体时序如图
为避免由于斯密特触发器导致的方波占空比不为50%时对相位测量所造成的麻烦,首先对两路方波按周期交替取高低电平,再对处理后的两路待测方波取异或,对一周期区域内参考脉冲及异或区域内的参考脉冲分别计数。(图中结果分别为100和56)异或区域脉冲的一半比上整周期脉冲数,即为相位差。同时在第一个待测方波的上升沿判断超前滞后情况并给出标记。经一周期测量后数据和标记保持至下次复位,待NIOS读取。
2.1.2 频率测量模块 频率部分采用等精度测量法。在整周期的待测信号时间内同时对待测信号和参考脉冲进行周期计数。由两周期数之比及参考脉冲频率可得频率测量结果,逻辑时须如图:
在外界复位后,对参考脉冲s_clk进行计数,提供1s的参考时间second(图中仅为1/500脉冲时间)。在1s参考时间内取整周期的待测信号,此过程的时间由frq_second标记,在这段时间内同时对待测信号和参考信号进行按令一路参考信号clk进行计数。为了避免两路参考信号相位差较小时导致的不稳定因素及误差,两路参考信号分别使用NIOS核时钟及同频率-72°的SDRAM时钟。所测得待测信号与参考信号周期数保持至下次复位,等待NIOS读 6
取。 2.1.3 相移产生部分相移产生部分:: 数字部分由FPGA内部通过Matlab 的Simulink 建立基于延迟查表的DDS为两路频率相位可调的正弦信号。单个DDS模块如图:
综合考虑到低频频率需求及逻辑资源消耗,选取1024点的10位宽ROM表及32位的频率字与相位字,频率字经一级乒乓延迟后自累加,并加上相位字,削去溢出位,取高10位作为ROM表的地址。DDS模块直接输出数据到片外高速DA,经过缓冲放大输出,作为相位计部分的被测信号。
2.1.4 频率计片外调理部分频率计片外调理部分:: 输入信号幅度要求为10mVrms~5Vrms,频率范围为1Hz~10MHz。信号的幅度小,频率高,跨度范围大。我们才用了比较简便的办法,将输入的小信号进行足够倍数的放大,而大信号则被二极管箝位,保护了运放。
频率部分框图