APP下载

VHDL电容测量仪的设计与实现

2012-10-27孙巍巍田明才

沈阳大学学报(自然科学版) 2012年6期
关键词:数码管时钟电容

吴 琼,孙巍巍,田明才

(1.沈阳大学 信息学院,辽宁 沈阳 110044;2.东软集团股份有限公司,辽宁 沈阳 110179)

随着电子产品的普及,电容在工业器件上随处可见,电容的测量得到了很好的发展,测量的理论和方法层出不穷.传统的测量方法多采用模拟电路测量手段,主要有电桥电路、脉冲宽度调制电路、脉冲宽度调频电路等.其中,电桥电路包括普通交流电桥、变压电桥、二极管电桥等[1].这些测量方式环节多,容易受零漂、温漂的影响,尤其对小电容的测量,难以保证其精度.

本设计采用软硬件结合的方式进行电容测量.该电容测量仪的核心思想是用恒定电流给电容均匀充电,合理设定系统参数,通过测量电容充电时间的长短确定电容值的大小.硬件电路包括电容充电电路、充电控制电路、状态显示电路及计数显示电路[2];软件部分接口充电控制电路,通过分频、选择、计数、译码、显示等软件流程得到显示信息、再接口状态及计数显示硬件电路,完成电容测量过程[3].

1 电容测量原理

电容测量原理图如图1所示.

图1 电容测量原理图Fig.1 Capacitance measurement schematics

(1)复位电路.为了保证硬件电路中存在可控的放电电路部分,设计采用双刀单掷开关,一方面,在电路初态实现对电容的完全放电,同时将软件模块清零,等待电容充电状态的开始.

(2)充电电路.本设计以运算放大器LM 358为核心,使其工作于线性区,应用积分电路来实现对电容两端的恒流充电过程[4-5].

在充电过程中,应当保证充电电流恒定.当充电电流恒定不变时,随着充电时间的增加,电容一端的电压持续均匀升高,合理设置阈值电压,则电容两端充到该阈值电压所用的时间将与电容器电容成正比,因此,可以通过充电时间的长短来测量电容值的大小.

需要注意的是,充电电压范围的选择要满足均匀充电过程,且低于电容的击穿电压值.

(3)比较电路.设置运放工作于非线性区,依据充电电压与阈值电压的相对大小关系,通过比较电路向外界输出信号,来判断充电完成与否,接入计数处理模块,完成状态识别.同时输出控制信号,终止软件计数.

(4)计数处理模块.接收复位信号信息,将系统复位清零,依据设定内部时钟频率进行计数,直至接收到比较电路的终止信号时完成计数过程,计算电容值,并驱动LED于状态显示电路显示.

(5)显示电路.接收计数处理模块输出信号,完成LED与状态直观显示功能.

2 电容充电电路的硬件实现

2.1 电容充电电路及分析

电阻R2、R3阻值的确定:一是要当S1断开时,在运放UIA的反相输入端产生一个合适的电压,而形成一个对被测电容器充电的恒定电流电路;二是要产生一个高电平信号控制后续电路,此处选择R2=5.1kΩ,R3=4kΩ,满足上述要求.电容充电电路图如图2所示.

图2 电容充电电路图Fig.2 Capacitor charging circuit diagram

在开始测量前,将S1、S2闭合,S2闭合将被测电容的电荷全部放掉,使得电容器初始电压为0;S1闭合是给后续的软件模块一个复位信号,软件模块清零.t=0时刻,S1、S2同时断开,开始测量.

运放LM 358配合R1、R2、R3与被测电容C组成积分电路,实现对电容器的恒定电流充电.其中

2.2 比较电路模块

UIB构成比较器,比较电压为3.53V,比较电压的大小是由电阻R5、R6决定的,也可以选用其他电阻而改变比较电压.需要注意的是,比较电压必须大于运放UIA输出端初始电压,而且不能太接近.变化范围就是UIA的输出电压(从2.20V逐渐增加)到比较电压3.53V.初始状态,输出端输出的是高电平,但当变化电压增加到3.53V时,输出端输出低电平.可见,输出高电平时,表示电路处于测量过程中,电容正在充电;输出低电平时,表示电路处于饱和阶段,测量结束.比较电路电路图如图3所示.

图3 比较电路电路图Fig.3 Comparator circuit

2.3 电容的计算

将U1=2.2+43×10-3t/C 代入终止条件(阈值电压3.53V),得

其中,T为系统计数脉冲频率.为使得LED数码管能更直观地显示电容的容量值,保证脉冲计数个数和被测电容值相同,取计数脉冲周期0.03s,频率32Hz.此时

数码管显示的计数个数就等于电容的容量值,实现了直观显示.

3 电容充电电路的软件设计

本电容测量仪的软件部分使用VHDL语言设计实现[6-8].

3.1 Clk时钟频率提供模块

各个模块对于时钟的要求各不相同,例如,计数电路所需要的脉冲信号就远远小于显示电路的高频扫描信号;多位七段LED数码显示器为了得到较好的显示质量,需要保证扫描循环周期低于20ms(频率大于50Hz).为了对各子模块提供合适的时钟信号,设计中设置分频模块,对高频信号进行恰当分频,满足各个模块对clk时钟信号的不同要求.分频模块VHDL程序仿真图如图4所示.

图4 分频模块仿真图Fig.4 Frequency module simulation Figure

3.2 充电状态显示电路模块

电容处于充电状态和饱和状态,软件部分的工作方式是截然不同的.在设计中,依据输入信号的不同状态,产生两个输出指示信号,用来显示硬件电路的工作状态.充电状态的显示电路通过本模块的两个输出端口分别接两个LED灯,输入状态的不同直接决定了输出状态的不同,同时存在一个稳定的、与输入信号相同的输出信号,作为后续电路的输入信号.指示模块VHDL程序仿真图如图5所示.

图5 充电状态指示模块仿真图Fig.5 Charge status indicator module simulation

由图5可见,在时钟clk的作用下,当输入a为高电平时,输出LED2为高电平,输出LED1为低电平;输入a为低电平时,则正好相反.时钟输出信号b与a保持相同.与程序设计的初始目的相同.

3.3 计数电路模块

计数模块在时钟信号的作用下工作,记下电容充电过程中所经历的时钟信号周期数,得到对应的充电时间.通过电容均匀充电时间的长短,通过相关计算和转换而得到电容的容量值.

计数模块是软件设计模块中的核心模块,包括两个输入端:reset为复位信号,由硬件输入端提供,硬件闭合(低电平)对此模块进行清零操作,断开(高电平)开始计数;clk是指示模块和分频模块通过与非门电路产生的时钟信号,通过对该时钟信号计数,得到充电时间.计数模块VHDL程序仿真图如图6所示.

图6 计数模块VHDL程序仿真波形Fig.6 Counting module VHDL procedures simulation waveforms

3.4 译码显示模块

选用七段数码管对测量电容值进行显示,程序采用扫描显示方式,分为译码和扫描两部分.译码部分是对计数模块输出的数据译码成七段数码管的显示数据,扫描部分通过高频时钟分时点亮各个数码管,轮扫位选.

显示模块VHDL程序如图7和图8所示.

图7 位选信号的仿真输出Fig.7 Bit-select signal simulation output

图8 段选译码的仿真波形Fig.8 The segment select decode simulation waveform

3.5 软件模块总体连接图及各引脚说明

图9为上文所述的所有软件模块的连接图,总体模块图由4个模块组成,即分频模块、指示模块、计数模块和显示模块.

图9 软件设计模块连接图Fig.9 Software design module connection diagram

如图9所示的连接图包括2个输入接口和4组输出接口.其中,输入信号u0接硬件电路的比较电路输出端,输入信号u1接充电电路下面的输出信号,输出信号LED1接硬件电路中的LED灯1,输出信号LED2接硬件电路中的LED灯2,输出信号temp[3..0]分别接八位七段数码管的四位扫描接口,输出信号seg7[6..0]分别接八位七段数码管的显示控制接口.

图10为软件设计部分总体仿真波形全图.从图10可以看出,在输入信号u0,u1的作用下,软件部分实现了完整的功能.

图10 软件设计部分总体仿真波形全图Fig.10 Full map of the overall simulation waveforms of software design part

4 结 语

本文以电容测量仪为研究内容,使用一种软硬件结合的方式实现了对电容的测量.硬件部分通过运放电路、比较电路的使用,完成了电容的恒定电流充电过程,为电容的测量提供了硬件基础;设定充电电压阈值,由CPLD采集信息,通过VHDL软编程完成充电时间的累加;应用LED数码管,接收CPLD输出信号,实现电容值的直观显示,完成电容测量过程,为电容测量提供了新的解决思路.

[1] 杨金峰,刘鸣.简易电容测量仪的设计与调试[J].实验科学与技术,2005(3):110-112.(Yang Jinfeng,Liu Ming.Designing and Debugging Simple Instrument for Capacitance Measuring[J].Experiment Science & Technology,2005(3):110-112.)

[2] 邬春明,刘海维.隔离病房监控系统设计[J].沈阳大学学报:自然科学版,2012(3):56-59.(Wu Chunming,Liu Haiwei.Design of Isolation Ward Monitoring System[J].Journal of Shenyang University:Natural Science,2012(3):56-59.)

[3] 吴琼,张明,田明才.基于有限状态机的Morse码识别算法的 VHDL实现[J].沈阳大学学报,2011(3):1-4.(Wu Qiong,Zhang Ming, Tian Mingcai. Discerning Algorithm of Morse Code with VHDL Based on Finite State Machine[J].Journal of Shenyang University,2011(3):1-4.)

[4] 沈晓谷.采用脉冲计数法以单片机实现电容的测量[J].上海应用技术学院学报:自然科学版,2006(4):290-293.(Shen Xiaogu. Capacity Measure of Single-chip Microcomputer by Using Pulse Counting[J].Journal of Shanghai Institute of Technology:Natural Science,2006(4):290-293.)

[5] 邵学涛,李新娥.振荡式微小电容测量电路[J].电子测试,2011(1):50-53.(Shao Xuetao, Li Xin’e. Measuring circuit with the oscillating micro-capacitance[J].Electronic Test,2011(1):50-53.)

[6] 侯伯亨.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,2004.(Hou Boheng.VHDL hardware description language and digital logic circuit design[M].Xi’an:Press of Xi’an University of Electronic Science and Technology,2004.)

[7] 李洋.EDA技术实用教程[M].北京:机械工业出版社,2009.(Li Yang.Technology of EDA[M].Beijing:Machinery Industry Press,2009.)

[8] 谭会生,张昌凡.EDA技术及应用[M].西安:西安电子科技大学出版社,2004.(Tan Huisheng,Zhang Changfan.EDA Technology and Application[M].Xi’an:Press of Xi’an University of Electronic Science and Technology,2004.)

猜你喜欢

数码管时钟电容
别样的“时钟”
微课教学设计之“数码管动态显示”
古代的时钟
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
有趣的时钟
时钟会开“花”
PWM Buck变换器电容引起的混沌及其控制
一种降压/升压式开关电容AC-AC变换器设计