欢迎来到天天文库
浏览记录
ID:53003245
大小:112.55 KB
页数:4页
时间:2020-04-10
《低频数字相位(频率)测量的CPLD实现[1].pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、低频数字相位(频率)测量的CPLD实现陈明杰(重庆工商大学计算机与信息工程学院,重庆400067)摘要:以单片机和CPLD为核心,设计了低频相位(频率)检测系统。系统由CPLD相位频率测量模块、单片机和显示模块三个部分组成。利用VHDL语言设计了高速的测频测相模块,并下载到CPLD中,通过与单片机的独立接口,将测量到的数据传送到单片机中,由单片机完成计算和显示的功能。重点介绍了测频测相系统原理框图,CPLD中的测频测相模块原理框图,简要介绍了单片机控制程序、计算程序。采用CPLD配合单片机的设计方案,具有造价较低、速度高、精度高的优点,并且可以通过软件下载而达到仪器硬件升级的
2、目的。关键词:频率测量;相位测量;CPLD;单片机中图分类号:TP216.1文献标识码:A在电子测量技术中,测频测相是最基本的测量之一。相位测量仪是电子领域的常用仪器,当前测频测相主要是运用等精度测频、PLL锁相环测相的方法。研究发现,等精度测频法具有在整个测频范围内保持恒定的高精度的特点,但是该原理不能用于测量相位。PLL锁相环测相可以实现等精度测相,但电路调试较复杂。因此,选择直接测相法作为低频测相仪的测试方[1、2、3、4]法。设计的低频测相仪,满足以下的技术指标:a.频率20-20KHz;b.输入阻抗≥100KΩ;c.相位测量绝对误差≤1度;d.具有频率测量和数字显示
3、功能;e.显示相位读数为0度--359度。1系统工作原理rightAclrP0,P2xcout[7..0]]单显BCPLD片示Add07128机板控制线Add1CLKAdd2图1测频测相系统原理框图Figure1frameofmeasurefrequencyphasesystem系统工作原理如图1所示,系统运行时,首先由单片机通过clr控制线送清零信号,启动CPLD的计数模块,在设计的CPLD内部控制模块作用下,记录AB两相的相差间隔时间内的标频个数(测相计数器),同时也记录下A相一个周期内的标频个数(测频计数器),此后测频和测相计数器处于保持状态,同时送出right信号表明
4、完成测频测相的计数,单片机可以读数据。单片机和CPLD的数据采用独立接口方式,这样设计比较灵活,可以不受单片机总线时序的影响。由ADD[0..2]进行控制,分别读取测频测相计数器中的19位数据,并存于单片机中,进行后续的计算。单片机完成数据的运算后,将所得数据转化为10进制,送到显示板进行显示。显示板共有8个数码管,其中,前5位用于显示频率(最大为20000Hz),后三位显示相位(最大为359度)。在CPLD设计中,根据计算,选取测频、测相计数器长度均为19位,在标频信号为10MHz时,相位测量精度小于1度。若只用89C51,其自带的计数器只有16位,且不易同时实现测频测相的
5、功能。故选用CPLD实现其测频测相的计数功能,并设计了独立的数据接口,以便与单片机[5、6]交换数据。2CPLD测频测相模块工作原理如图2所示,利用VHDL语言设计了完成测频测相计数功能的数字芯片。整个芯片由测频ADD[0..2]A测频计数器数据选择器xcout[7..0]A控制部分BrightclrB测相计数器clkA测试用分频器faoutBfbout图2CPLD测频测相内部原理框图Figure2frameofmeasurefrequencyphaseusingCPLD计数器、测相计数器、控制部分、数据选择器和测试用分频器5个部分组成。控制部分主要是利用状态机原理,设计了检
6、测一个测频周期的控制电路。在clr信号为高时,启动测频测相计数器,此时,状态机处于计数工作状态;当A相第一个上升沿到来时,测频测相计数器同时启动,开始计数;当B相第一个上升沿到来时,控制部分控制测相计数器停止计数;当A相第二个上升沿到来时,控制部分控制测频计数器停止计数,同时送出计数完成信号right;此后测频测相计数器处于保持状态。单片机读数时,通过设置add[0..2]数据选择器的地址选通端,依次送出测频计数器中的19位数据,8位一组,从xcout[0..7]端口送出,单片机需分3次读完测频计数器中的19位数据,数据选通端设置为001,010,011;同理,单片机也需分3
7、次读完测相计数器中的19位数据,数据选通端设置为100,101,110。为了测试方便,设计了测试用分频器,该分频器系数可以在VHDL源程序中改动,如为1000,则将测试时用的标频信号10M进行1000分频,分频后频率为10KHz,正好处于20-20KHz范围内。3单片机程序如图3所示,系统上电后,首先由单片机送出清零信号,启动CPLD中的测频测相计数器,CPLD进行测频测相的计数,单片机查询到right=1,则表明计数器完成计数工作,开始读取CPLD中的数据。否则,就等待。单片机通过控制CPLD中数据选
此文档下载收益归作者所有