基于FPGA的脉冲参数测量系统
2018-07-11陈元莉
陈元莉,谭 劲
(西华师范大学a.电子信息工程学院;b.网络中心,四川 南充 637002)
目前在测量领域里,脉冲信号既可作为已知的激励信号,又可作为未知的被测信号。当作为未知的被测信号,对其参数(周期、频率、脉宽、占空比)测试更显重要[1],本系统采用由FPGA构造的2个32位计数器对相关参数进行测量,并将测量结果送入单片机中进行处理,将处理的结果用LED显示器显示出来,该系统测量精度高,工作稳定可靠。
1 测量原理
1.1 频率测量的基本原理
根据频率的定义,通过计数器统计出在1 s时间内被测信号的脉冲个数N为被测信号的频率,测量原理如图1所示。
图1 频率测量的基本原理
1.2 等精度频率测量原理
等精度测量的基本方法是,设置2个计数器,在相同的时间里分别对标准信号和被测信号计数,设标准信号频率用fs表示,计数值用Ns表示,被测信号频率用fx表示,计数值用Nx表示,则:
本系统采用50 MHz的信号作为标准信号源,只要测得计数值,就可以算出被测信号的频率,等精度测频法可以获得更高的测量精度、更宽的测量范围,本系统采用此法测量频率,测量原理如图2所示。
图2 等精度频率测量原理
1.3 周期测量原理
利用被测信号控制门电路,当被测信号的上升沿到来时,打开控制门电路,启动计数器对标准信号计数,当被测信号的下一个上升沿到来时,关闭控制门电路,停止计数器计数,设控制门打开期间的计数值为Ns,则信号的周期Tx可用下式计算:
测量原理如图3所示。
图3 周期测量原理
1.4 脉宽测量原理
利用被测信号控制门电路,当被测信号的上升沿到来时,打开控制门电路,启动计数器对标准信号计数,当被测信号的下降沿到来时,关闭控制门电路,停止计数器计数,设控制门打开期间的计数值为Ns,则信号的脉宽Px可用下式计算:
1.5 占空比测量原理
利用被测信号控制门电路,当被测信号的上升沿到来时,打开控制门电路,启动计数器对标准信号计数,当被测信号的下降沿到来时,关闭控制门电路,停止计数器计数,设高电平持续期间计数值为N1,然后再利用门控电路测量被测信号一个周期内对标准信号的计数值Ns,则信号的占空比Dx可用下式计算:
2 系统硬件电路的构成
2.1 系统的总体结构
本系统由单片机AT89s52和FPGA组成,由FPGA构造2个32位计数器分别对标准信号和被测信号进行计数,测量周期、脉宽及占空比所需门控电路也由FPGA构造,32位计数结果通过多路选择器按8位一组通过P2口送往单片机进行处理和显示,单片机部分由按键电路,显示电路等组成,P0口用来进行功能选择并传送相应控制信号控制FPGA的工作,系统总体结构框图如图4所示。
图4 系统总体结构框图
2.2 按键电路
图5 按键电路
系统中设置4个功能键,一个复位键,其中S0为复位键,S1,S2,S3,S4分别为测周期键、测频率键、测脉宽键、测占空比键,与P1.0~P1.3相连,P1剩余端口可用于扩充其它功能。
2.3 显示电路
显示电路采用静态显示,单片机的串行口工作在同步输出方式下,单片机的TXD端为同步脉冲输出分别接8个74LS164的时钟端,而单片机的RXD端用串行输出待显示的数据,通过8片74LS164作串并转换后,分别接8个LED显示器,显示器电路如图6所示。
图6 静态显示电路
2.4 FPGA内部电路
FPGA内部电路如图7所示,电路由一个D触发器,2个多路选择器,一个门控电路,2个32位计数器组成。其中门控电路根据具体功能用来控制计数器的启停时间,核心部分为2个32位计数器,分别用于对标准信号和待测信号计数,并将计数结果通过多路选择器送往单片机进行处理并显示。
图7 FPGA内部电路
3 软件设计
单片机部分主要是进行系统功能选择,并根据功能送出响应的控制信号去控制FPGA中计数器的工作,待计数停止后,读取计数器的计数结果,根据相关公式计算后得到待测参数值,最后送显示器显示,软件流程图如图8所示。
图8 主程序流程图
4 结语
通过综合测试,该系统可以测量频率为10~50 MHz的方波信号的频率、周期、占空比、脉宽等参数,并能在8位LED数码管显示器上显示结果。整个系统测量精度高,测量参数稳定可靠,如果在系统中提高标准信号的频率值,可以进一步提高测量频率范围。