2oo9年1月 第1期 电子测试 Jan.2oO9 /go.7 基于FPGA的频率周期及相位差测量的多功能 计数器的实现 李虎成 (华中科技大学水电与数字化工程学院武汉430074) 摘要:本文介绍了一种基于FPGA的多功能计数器,该计数器包括数字式频率周期测试仪、数字式相位测试仪 两部分。数字式频率周期测试仪,通过FPGA实现频率周期的精确测量,结合单片机进行乘除法运算并显示;数 字式相位测试仪通过FPGA实现对两路处理过的信号的等精度测量,结合单片机进行乘除法运算并显示。本多 功能计数器模块化程度好、集成度高,具有友好人机交互界面且易于外部功能的扩展。 关键词:FPGA;测频;测相 中图分类号:TP216 文献标识码:A Multifunctional counter for measurement of frequence、period and phase difference based on FPGA Li Hucheng (School of hydropoTx ̄er and Digitalization Engineering,Huazhong University of Science and Technology,Wuhan 430074,China) Abstract:This paper introduces a multifunctiona1 counter which contains two parts:digital measurement of frequence-period and phase difference of the signia1.Digita1 frequence-period testing meter is based on FPGA for the correct measurement while digital phase difference tes— ting meter is based on FPGA for same precision measurement.And the results are finally calcu— lated by a singlechip and displayed on a LCD screen.This multifunctional counter is specially useful for its good modularization and high integration,also for its friendly man-machine con- versation and extendible functions. Keywords:FPGA;-measuring frequence;measuring phase 法,如二极管鉴相法、脉冲计数法等,测量系统复杂、 0引 言 需专用器件、硬件成本高、而且精度不高。近年来, 频率周期测量开始向数字化方向发展,如FPGA技 测量一个信号的频率、周期及两路同周期信号 的相位差在工程上有着重要的意义。其测量方法可 分为模拟和数字方法两种:传统依靠模拟器件的方 术,新发展出来的DSP器件等等。其优点在于硬件 简单、适应性强而且精度明显高于一般的模拟式测 量。当然,选定一套精确的算法是很重要的。 ELECTR0NIC TEST FPGA内置计数器计数测量法是信号测量中 常采用的手段,因为FPGA有很高的时钟频率,所 以可以采集到很高频率的信号。 在频率特性测试中,利用FPGA内置的时钟 1计数器频率周期相位测量原理 1.1 前级放大比较电路及其参数的设计 在闸门时间内对所采集到的信号进行上升沿捕获 我们不妨设定输人信号为0.01~5 Vrms,所 计数,因而可以得到在此闸门信号内被测信号出 现的次数,但是必须很好地设计此闸门信号的长 短及其出现时间,以降低因多记一次或少记一次 带来的误差。 选比较器的输入至少为1.3 V以上时其输出电压 才会发生跳沿变化,故前级放大至少为 1.3/0.28--46时才能检测到0.01 Vrms的信号,设 计时电路两级放大49倍,足以达到要求。在设计 时可以选取TI公司的ths4041宽带运算放大器, 电路如图1所示,该运算放大器增益带宽积为 165 MHz,为电压反馈型,7×10—70 MHz,故该运 放满足要求。比较器也可以选取TI公司的集成比 较器t131 16,该比较器的转换时间低至为10 ns。 这里的被测信号可能是方波,也有可能是正弦 波。所以先要对信号进行整波,让信号以方波的形 式进入FPGA信号输入口进行计数。整波需要制 作整波硬件电路,将正弦波变成同频率的方波。而 在大多数情况下,被测信号很小,所以在硬件电路 中又涉及 图1前级放大比较整波电路图 输入为0.01~5 Vrms的正弦波,要得到较理 想的方波送至FPGA,必须经过前级放大电路。设 计时输入信号经过钳位电路、放大器放大、比较器 延迟比较输出相应的方波。经过实际测试,需在在 每级输入输出前均加钳位电路,以便大小信号都能 得到很好的放大,否则在输出电压较大时由于运放 信号周期的整数倍,因此计数器的计数值会产生± 1个值的误差。 。 本身的局限信号会有比较大的漂动。 1.2频率周期的测量原理 数字频率计测频原理,如图2所示。假设基准 时钟信号的周期为Ts(频率为fs),被测信号的周 期为Tw,用被测信号控制测量计数器进行计数,当 定闸门信号 实际闸门信号 被测频率信号 标准频率信号 被测信号一个周期结束时,让计数器停止计数,若 计数器的计数值为Nx,则被测信号的周期为Tw= Nx*Ts钟频率的场合。用这种方法测量时,测量 精度与计数器中记录的数值Nx有关。由于被测 信号一个周期的时间长度不一定正好为基准时钟 图2频率周期的测量原理 定闸门信号是由FPGA自身产生的高电平为 1 S的方波信号,在闸门信号内对被测信号的每个 电堕酗隧匦 ELECTRONIC TEST 上升沿进行计数(相当于对应的周期),(我们假定 被测信号的频率在1~10 MHz的范围),故可由 FPGA提供频率为10 MHz的标准时钟信号。 在软件设计时取闸门信号为62.5 ,周期为 1.6 S的方波信号。对采集到的被测信号进行计数 其值为N1,同时对时钟计数为N2,将此数据锁存 送至单片机做除法N1*loo000O0/N2即为被测信 号频率。相应计算可得到周期T。 1.3相位差的测量原理 图3是一个数字式相位测量仪的系统工作示 意图。图中输入两路信号a和b,经参数相同的整 形电路变换为方波后,将两个方波进行异或(在 FPGA内完成),同时与测得的信号频率f(由前面 设计的FPGA频率计完成)再异或,然后将得到的 信号经1/2f分频,再将此信号作为闸门,并在其高 电平时段利用高频时钟fc进行计数,最后在下降沿 读出其计数值N,则相位为:Phase=180。*N/fc。 r__ 计数时钟 图3相位差的测量原理 该相位测量仪系统除整形电路外都由FPGA 完成。FPGA内的计数时钟所使用的频率为 lOmhz时,此系统的分辨率为180。/(10*10 )一 (1.8*10 )。,此分辨率已足够。 2软件实现 系统接收用户输入的信号,由FPGA计数测 频,液晶显示其频率、周期。当用户同时输入两路 有相位差的信号时,系统可测出相应的相位差,并 在液晶上显示。 本软件设计了如4图的菜单结构及友好提示 界面。用户可通过输入接口输入具有不同频率,或 有有相位差的两路信号,经过滤波、放大、过零比较 生成方波,送至FPGA,FPGA对信号周期计数,与 电璺 匦匦 ELECTRONIC TEST Appfication of MCU&PLD a b b.X O频佶 争 滑 『’ 参考时钟进行比较,得出相应的频率周期值,或相 位差值。整个程序用Verilog语言实现。 图4系统整体框图 3系统调试及结果 FPGA使用的是ALTER公司的CylonelI系列 EP2CSQ208CSdevice器件。该器件性价比高,能够完 成常用的数字系统设计,可固化,使用方便。 使用QuartusII进行设计,采用模块拼接,在功能时 序仿真正确后通过下载电缆下至板子上进行硬件调 试。使用信号源输入,并在线signaltap仿真。这样 便于查错,调错。在数据处理上,采用SST8051单片 机,程序使用c语言进行编写,具有快速、代码易读 易改等优点。在Keil C51环境下完成程序仿真与调 试,最终下至单片机进行总体调试。 图5为测频signaltap在线仿真图。10m—out 为FPGA内部自己产生的标准10 MHz的信号测 量结果如上显示为9.999970 MHz;test—out为外 部输入的139.1 kHz的信号,而在线仿真测得结果 139.105 kHz,已相当接近真实值。 将前级放大整波电路与FPGA及单片机整机 连调,输入正弦信号,将测试得到的单信号频率周 期及两路有相差信号的相位差显示在液晶上。相 关数据见表1。 图5线性仿真图 表1数字式频率周期测试仪的测试数据 [2]康华光.邹寿彬.电子技术基础(数字部分)[M].北 4结束语 FPGA设计作为取代传统模拟电路设计的一 种有效方法,目前已越来越多地被广大电子工程师 们所采用。本系统在完成频率周期测量的基础上, 同样采用等精度法实现了双路信号的相位测量,整 个测量功能模块完全在一块FPGA内部完成,极大 京:高等教育出版社,2005. [3]谢自美.电子线路设计・实验・测试[M].武汉:华 中科技大学出版社,2003. [4]罗杰.Verilog HDL与数字ASIC设计基础[M].武 汉:华中科技大学出版社,2006. [5]孟德刚,何国瑜.基于FPGA数据采集系统EJ-].电子 测试技术,2004(5):22—24. [6]夏宇闻.Verilog数字系统设计教程[M].北京:北京 航空航天大学出版社,2003. 地简化了外围逻辑电路,提高了系统的可靠性与测 量精度。同时,可将前级电路集成,再与单片机处 理模块和FPGA一起综合成一个具有三项测量功 能的仪器,以方便实际工程中的电子测量。 参考文献 [1]康华光.陈大钦.电子技术基础(模拟部分)EM].北 京:高等教育出版社,2002. [7]李春杰,李旭春.FPGA设计的思想与方法I-J].电测 与仪表,2005,42:470—473. 作者简介 _ 电E-与ma李数il:虎字ih成化uc工,h男e程n,g学(@19院s8m72a一0)il,.6华hu级中st本.科ed技u生.大c。n 学水 屯i 理!i荩 ELECT只0NlC TEST