基于PC104总线和CPLD的测频模件设计

时间:2022-09-03 10:08:45

基于PC104总线和CPLD的测频模件设计

摘 要:根据某测试系统的需要,设计基于PC104总线和CPLD的高精度测频模件,采用多周期同步测频法实现对所测频段的等精度测量。设计了该测频模件的硬件电路,并给出用CPLD实现数字频率计的详细VHDL源代码。采用原理图的方式编写PC104总线的接口逻辑,并利用Max+PlusⅡ软件进行仿真。结果显示频率计及接口逻辑均可正确工作。实际应用表明,该测频模件具有精度高,可靠、稳定等优点。

关键词:PC104;CPLD;多周期同步测频;VHDL

中图分类号:TP391;TP368.1文献标识码:B

文章编号:1004-373X(2010)02-086-04

Design of Frequency Measuring Module Based on PC104 and CPLD

LIU Guohua1,HE Huafeng1,TIAN Pengfei1,WANG Lin2

(1.The Second Artillery Engineering College,Xi′an,710025,China;

2.The Second Artillery Military Representative Office in the Area of Xiaogan,Xiaogan,432100,China)

Abstract:According to the need of some test system,a high_accuracy frequency measuring module is designed based on PC104 and CPLD.A method of synchronous multi_period frequency measurement is used to achieve the equal precision measure to the tested frequency channel.The hardware circuit of the frequency measuring module is designed.And the detailed VHDL source code to achieve digital frequency using CPLD is given.The interface logic of PC104 bus is compiled using the way of schematic diagram,and the emulation is done by the software of MAXPLUSⅡ.The digital frequency and the interface logic are accurately working showed by the result.This frequency measuring module has been proved to be high_accurate,stable and reliable in the practical application.

Keywords:PC104;CPLD;synchronous multi_period frequency measurement;VHDL

随着科学技术的发展,嵌入式产品在军事领域的应用日益广泛,特别是在各种系统的自动化测试领域[1]。频率测试是测试系统中的重要测试项目,在此设计一种基于PC104嵌入式计算机和CPLD的高精度测频模件,以满足对频率量的测试。

1 测频原理

传统的频率测量方法有两种[2]:直接测频法和测周期法。直接测频法就是在给定的闸门信号中填入被测脉冲,通过必要的计数线路,得到填充脉冲的个数,从而算出待测信号的周期。它的主要缺点是存在被测脉冲的±1个误差,难以兼顾低频和高频实现等精度测量,所以测量准确度较低。测周期法[3]是在一个信号周期内记录下基准定时脉冲的个数,然后换算成频率f。主要缺点是存在基准脉冲的±1个误差,适用于较低频率的测量。

多周期同步测频方法[4]是在直接测频的基础上发展而来的,其特点在于测量过程中实际闸门时间不是固定值,而是被测信号周期的整数倍,即与被测信号是同步的,因此消除了对被测信号计数产生的±1个误差,测量精度大大提高,而且达到了在整个测量频段的等精度测量。多周期同步测频法的原理[5,6],如图1所示。

图1 多周期同步测频法原理

如图1所示,首先,由控制线路给出闸门开启信号,计数器等到被测信号的上升沿到来时,真正开始计数;然后,两组计数器分别对被测信号和标准频率信号计数。当控制线路给出闸门关闭信号后,计数器等到被测信号下降沿到来时结束计数,完成一次测量过程。可以看出,实际闸门与设定闸门并不严格相等,但最大差值不超过被测信号的一个周期。被测频率的计算方法为:

fx=(Nx/N0)f0(1)

式中:Nx为被测信号的计数值;N0为标准频率信号的计数值;f0为标准频率信号的频率;τ为闸门时间,计数器的开闭与被测信号完全同步,即在实际闸门中包含整数个被测信号的周期,因而不存在对被测信号计数的±1个误差。

2 硬件电路设计

如图2所示,该模件硬件主要包括PC104控制处理模块、CPLD测试模块、信号调理模块、继电器驱动模块和高精度20 MHz晶振。在该系统中为了实现对多路频率信号的测量,采用了通过继电器控制来选择信号的方案。通过CPLD控制继电器的动作,接通不同的继电器开关,被测信号通过继电器之后,由6N137高速光电隔离器隔离、电平转换之后送入CPLD进行测频。由于CPLD的I/O口驱动电流较小,所以加了一级ULN2803驱动器来驱动继电器的线包。CPLD主要完成的功能是实现数字频率计,采用多周期同步测频法完成对输入信号频率的测量,并通过与PC104的接口逻辑,将测量结果送给PC104主机,由主机进行频率值的计算及显示,从而完成整个测频模件的功能,CPLD选用Altera公司的EPM7128SQC100芯片。

图2 模件硬件电路设计

3 软件设计

3.1 测频电路程序设计

对于CPLD的编程,一般有通过电路原理图的方式和通过硬件描述语言即VHDL语言两种方式\。第一种方式直观性强,较好理解,适用于小规模数字电路的设计;第二种方式具有多层次描述系统硬件功能的能力,可读性强,适用于时序电路及大规模电路的设计。本文采用两者相结合的方式,用VHDL语言实现数字频率计的设计,用原理图的方式实现了PC104主机的接口逻辑,并进行仿真。结果表明完全可以满足功能需求,编译环境为Max+PlusⅡ。

以下为数字频率计的VHDL语言源代码[8-10]。设计了两个32位计数器,一个8位数据选择器及一个触发器控制闸门信号。

LIBRARY IEEE;

USE IEEE.STD_LOGIC-1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY frequency IS

PORT (BCLK,TCLK:IN STD_LOGIC;

CLR,CL:IN STD_LOGIC;

SEL:IN STD_LOGIC_VECTOR

(2 DOWNTO 0);

START,EEND:OUT STD_LOGIC;

DATA: OUT STD_LOGIC_VECTOR

(7 DOWNTO 0));

END ENTITY frequency;

ARCHITUCTURE behavior OF frequency IS

SIGNAL BC:STD_LOGIC_VECTOR

(31 DOWNTO 0);

SIGNAL TC:STD_LOGIC_VECTOR

(31 DOWNTO 0);

SIGNAL ENA: STD_LOGIC;

BEGIN

START

CH:PROCESS (SEL)

BEGINCASE SEL IS

WHEN "000"=>DATA

WHEN "001"=>DATA

WHEN "010"=>DATA

WHEN "011"=>DATA

WHEN "100"=>DATA

WHEN "101"=>DATA

WHEN "110"=>DATA

WHEN "111"=>DATA

WHEN OTHERS =>

DATA

END CASE;END PROCESS;

BF:PROCESS (BCLK,CLR)

BEGIN IF CLR=′1′ THEN

BC 0);

ELSIF (BCLK′EVENT AND BCLK=′1′) THEN

IF ENA = ′1′ THEN

BC

END IF;END IF;END PROCESS;

TF:PROCESS (BCLK,CLR)

BEGIN IF CLR=′1′ THEN

TC 0);

ELSIF (BCLK′EVENT AND BCLK=′1′) THEN

IF ENA = ′1′ THEN

TC

END IF;END IF;END PROCESS;

TR:PROCESS (TCLK,CLR)

BEGIN

IF (TCLK′EVENT AND TCLK=′1′) THEN

ENA

END IF;END PROCESS;

EN:PROCESS (ENA)

BEGIN

IF (ENA′EVENT AND ENA=′0′) THEN

EEND

END IF;END PROCESS;

END ARCHITUCTURE behavior;

以上程序通过软件编译后生成数字频率计的逻辑功能模块图如图3所示。

以下是程序的仿真波形(见图4),标准频率为20 MHz,被测信号频率为0.1 MHz,仿真时间设为120 μs。

图3 数字频率计逻辑功能模块图

图4 数字频率计仿真结果

从仿真的结果可以看出,在定时脉冲CL到来时,计数器并没有开始计数,而是等到被测信号的上升沿到来时,START信号才开启,计数器开始计数,定时脉冲结束时,计数器也是等到被测信号的上升沿到来时才结束计数,实现了多周期同步测频。图4中被测信号频率的计算方法如式(1)所示。与系统预设值相同,可以实现所需的功能。

3.2 PC104接口电路实现

该设计中PC104接口电路部分在Max+PlusⅡ中用原理图的方式实现。使用的PC104总线信号有地址线A0~A9、数据线D0~D7、读写信号线IOR/IOW、复位信号RESET、中断信号IRQ3、地址允许线AEN。在PC104总线的接口电路部分遵循一个原则:就是输出加锁存,输入加缓冲驱动。该接口电路示意如图5所示,首先地址线的A3~A9位与外部波段开关设置地址及AEN信号通过译码电路中的比较器进行比较,若相同,则说明该模块被选中,然后根据A0~A2的译码结果,结合读写信号线产生输出锁存器74HC273及输入缓冲器74HC244的脉冲信号或使能信号,完成对数字频率计及外部电路的读写及控制。在总线工作方式上采用中断方式。设计中,将计数器的实际计数结束信号EEND作为总线的中断触发信号IRQ3,以此来提高PC104总线的工作效率。该接口逻辑的仿真结果如图6所示。

从仿真结果可以看出,接口逻辑可以很好地控制外部继电器的接通,产生清零及定时脉冲,并能正确地读取数字频率计的计数结果,实现模块预定的功能。该接口逻辑已在实验中得到了验证。

3.3 PC104应用程序设计

在调试该模件时系统采用Windows Me操作系统,编译环境采用TC 3.0。主程序包括系统初始化、中断初始化、接通继电器及产生清零和定时脉冲模块。在中断服务程序中主要完成了读取计数值、计算频率值及显示打印功能。它的程序流程图如图7所示,在此不再列出具体代码列。

图5 PC104总线接口逻辑

图6 PC104总线接口逻辑仿真结果

图7 PC104应用程序流程图

4 实验结果

实验采用的方法是将板载的20 MHz的晶振在CPLD内部分别进行2分频和20分频,得到10 MHz和1 MHz的信号,然后再将这两个频率信号分别进行2,4,6,8分频,得到共9个被测信号,闸门时间为1 s,测试结果如表1所示。

表1 测试结果

被测频率值实测值误差

1 MHz1.000 000 MHz0

5 MHz5.000 000 MHz0

2.5 MHz2.500 000 MHz0

1.25 MHz1.250 000 MHz0

0.625 MHz0.625 000 MHz0

500 kHz500.000 000 kHz0

250 kHz250.000 000 kHz0

125 kHz125.000 000 kHz0

62.5 kHz62.498 295 kHz2.7×10-5

由测试结果可以看出,模件的测频精度较高,完全能够满足一般性测试系统的需要。

5 结 语

采用多周期同步测频技术设计并实现了基于PC104总线和CPLD的测频模件。给出硬件设计原理图和数字频率计的VHDL程序源代码,PC104总线的接口逻辑电路,最后得出仿真结果,编制了PC104总线应用程序。实际应用表明,该模件精度高,稳定性好,能够很好地完成对频率量测试的任务。

参考文献

[1]黄家彬,訾向勇,刘爱兰.基于PC104的脉冲信号的产生及测量方法[J].国外电子测量技术,2004(6):23-25.

[2]魏钟记,刘峰,汪铭东.数字测频方法及实现[J].电子测量技术,2006(4):28-29.

[3]王宏利,程旭德,徐兵,等.基于AT89C51的智能测频仪设计[J].计算机测量与控制,2007,15(3):410-412.

[4]章军,张平,于刚.多周期同步测频测量精度的提高[J].电测与仪表,2003(6):16-17.

[5]柳义利,周渭,刘海霞.一种高速连续频率测量方法[J].2000(1):32-33.

[6]董婧,陈昊.基于嵌入式微处理器和FPGA的高精度测频设计[J].现代电子技术,2007,30(20):160-162.

[7]刑建平,曾繁泰.VHDL程序设计教程[M].北京:清华大学出版社,2005.

[8]雷伏容.VHDL电路设计[M].北京:清华大学出版社,2006.

[9]张亦华,延明.数字电路EDA入门――VHDL程序实例集[M].北京:北京邮电大学出版社,2003.

[10]侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,1999.

作者简介 刘国华 男,1985年出生,硕士研究生。主要研究方向为导弹测试及故障诊断。

何华锋 男,1976年出生,副教授。研究方向为非线性系统鲁棒故障检测理论研究及数模电路分析与系统设计。

上一篇:基于门户平台的邮件系统集成与功能实现 下一篇:双相机采集的数据解包方案设计