基于FPGA的液位检测系统的前端设计.docx
- 文档编号:24195700
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:14
- 大小:27.37KB
基于FPGA的液位检测系统的前端设计.docx
《基于FPGA的液位检测系统的前端设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的液位检测系统的前端设计.docx(14页珍藏版)》请在冰豆网上搜索。
基于FPGA的液位检测系统的前端设计
基于FPGA的液位检测系统的前端设计
摘要
本设计是关于一个基于FPGA的液位检测系统的设计,即设计合适的传感器来对液位的信号进行采集,然后在FPGA上对信号进行处理,主要是对FPGA用VHDL进行编程,建立若干逻辑模块对数据进行一系列的处理,最后利用LED来对信号进行输出显示。
本文着重介绍了这个系统的液位检测信号采集的前端设计,前端设计包括传感器模块、放大电路模块以及A“D转换模块的设计,它是整个液位检测设计的基础,主要目的是数据的采集即如何获得高质量的液位信号,然后对其进行加工处理传送。
本文介绍的前端设计能实现结构简化,系统精度较好,适用性强,具有良好的人机交互功能。
关键词:
液位检测,传感器,FPGA,VHDL
第一章引言
液位检测的意义
液位检测广泛用于各种行业领域,它几乎遍及生产与生活的各个领域,尤其工业生产过程如石油、化工、医药和食品等行业领域中,液体的测量不但要求精度高,还需很好地适应工业现场的特殊环境,具有在恶劣环境下持续传感的能力,由于液体性质物理环境的复杂性,给准确检测液位变化带来的很大的困难。
故对液位测量提出了精确、实时、在线的要求。
随着科学技术与生产的迅速发展,液位自动检测领域出现了种类多样的测量手段,对其经济性、技术性提出了很高的要求。
液位检测的发展现状和趋势
由于液位检测应用领域的不同,性能指标和技术要求也有差异,但适用有效的测量成为共同的发展趋势,随着电子技术及计算机技术的发展,液位检测的自动控制成为其今后的发展趋势,控制过程的自动化处理以及监控软件良好的人机界面,操作人员在监控计算机上能根据控制效果及时修运行参数,这样能有效地减少工人的疲劳和失误,提高生产过程的实时性、安全性。
随着计算机控制技术应用的普及、可靠性的提高及价格的下降,液位检测的微机控制必将得到更加广泛的应用。
液位检测系统的任务和所要达到的目标
该系统功能结构主要分为五个方面:
一、使用压力传感器去采集与压力相对应的电压值;二、由于本系统使用的传感器MPX53输出电压较小,所以输出电压必须经过放大电路放大再传送至A/D转换器;三、从A/D转换器出来后的信号变成了相应的数字信号,再将其传送给FPGA芯片;四、对FPGA用VHDL进行编程,建立若干逻辑模块对数据进行一系列的处理与控制;最后,把信号传送给LCD进行显示。
液位检测功能图如图1-1所示。
图1-1液位检测功能结构图
我设计的部分是信号的采集即前端设计,其设计模块图1-2所示:
其中包括传感器模块、放大电路模块、A“D转换模块的设计,设计所要达到的目标是硬件系统的结构简化,系统精度较好,适用性强,具有良好的人机交互功能,有问题就能立即发现,通过实现水位的显示以便自动调节控制液位。
液位控制在设定值上正常运行不需要人工干预,操作人员劳动强度小。
图1-2前端设计模块图
第二章传感器模块的设计方案
传感器简介
传感器,指能感受规定的被测量并按照一定的规律转换成可用输出信号的器件或装置。
根据传感器工作原理,可分为物理传感器和化学传感器二大类:
传感器工作原理的分类物理传感器应用的是物理效应,诸如压电效应,磁致伸缩现象,离化、极化、热电、光电、磁电等效应。
被测信号量的微小变化都将转换成电信号。
化学传感器包括那些以化学吸附、电化学反应等现象为因果关系的传感器,被测信号量的微小变化也将转换成电信号。
而本设计的测量对象是液体,所选择的传感器能够准确反映液位的变化,所选择的传感器应该符合以上要求,我们知道压力传感器是工业实践中最为常用的一种传感器,其广泛应用于各种工业自控环境,涉及水利水电、铁路交通、智能建筑、生产自控、航空航天、军工、石化、油井、电力、船舶、机床、管道等众多行业,下面就简单介绍压阻式力传感器原理:
电阻应变片是一种将被测件上的应变变化转换成为一种电信号的敏感器件。
它是压阻式应变传感器的主要组成部分之一。
电阻应变片应用最多的是金属电阻应变片和半导体应变片两种。
金属电阻应变片又有丝状应变片和金属箔状应变片两种。
通常是将应变片通过特殊的粘和剂紧密的粘合在产生力学应变基体上,当基体受力发生应力变化时,电阻应变片也一起产生形变,使应变片的阻值发生改变,从而使加在电阻上的电压发生变化。
这种应变片在受力时产生的阻值变化通常较小,一般这种应变片都组成应变电桥,并通过后续的仪表放大器进行放大,再传输给处理电路显示或执行机构。
选择了合适的传感器,为了节约成本,同时保证传感器的测量精度及稳定度达到技术指定要求,需要对原始芯片进行合理的封装,实现压力传感器内部无可动部件,保证传感器抗冲击、抗震动,从而保护了内部芯片,对于MPX53D型号压力传感器芯片,对其进行封装应注意的问题是测量软管的选择,应根据芯片的端口选择合适的软管,封装时应保证其密封度。
前端设计的传感器模块的设计方案
根据以上传感器的选择原则,考虑到测量范围、量程、重复性、可靠性等因数,而本实验环境是量程较小的液体,有两种方案可供选择参考:
一种方案是选用Motorola公司生产的MPX53D型号压力传感器作为前端采集器件,通过液位的高低不同所产生的压力值的不同,把采集到的电压值经过放大电路的放大以后,再传送到A/D转换器的输入通道。
另一种方案是APM公司生产的BP300T,BP300T压力传感器是专为电子医疗器械开发的一款气体压力传感器,标称压力为(300mmHg),采用标准的小型DIP-6塑胶封装,完全代替NAISADP4系列、HoneywellHPX系列压力传感器。
方案一:
MPX53D型号压力传感器是一个50kPa的非补偿性硅压力传感器,封装简单,允许用户自行设计和增加外部温度补偿和通信功能。
除了接受水压的一面,另一面为真空的,正常工作下P1P2,两面所承受的最大压差为200ka,表1显示了MPX53D的基本特性。
传感器提供了非常精确的电压输出—与压力成正比,传感器的输出方程为:
Vout=Voff+(△V/△P)×P
其中Voff为偏移电压典型值约为20mV,△V/△P为灵敏度典型值为/kPa,P为检测对象的压力。
图2-1显示了其在不同温度下的典型的输出特性。
储藏温度与工作温度均在-40℃—+125℃,MPX53D是半导体的压阻式压力传感器,能够使电信号成比例输出,衡量该传感器的应变性能要依赖温度的变化,温度变化的范围需要温度补偿装置。
图2-2显示了其实际与理论线性度,线性表示理想传感器的输出特性,由于种种原因实际的传感器总是非线性的,只能用线性度来表示其输出特性,有两种非线性的计算方法:
终点直线拟合和最小二乘法拟合,摩托罗拉指定的压力传感器非线性的依据是终点直线法测的终端压力。
方案二:
BP300T压力传感器是专为电子医疗器械开发的一款气体压力传感器,其外部结构图及内部结构原理图分别如图2-3、2-4所示:
它具有结构简单、性能稳定、可靠性好、通用性强等优点,具有低廉的价格,替换性好等特点,其工作压力为300mmHg,能测量量程较小的气压或液体信号,其应用范围相对局限,是属于专用的一款传感器,主要适用于腕式“臂式电子血压计、医疗按摩器等需要控制气体压力的设备和器械中。
该传感器的优缺点是整机结构紧凑、精度、过载倍数和可靠性高,动作误差和温度系数小,成本较低,在各种实验室及医疗中能广泛应用,但封装要求较高,容易出现封装问题而影响测量精度。
对比以上两种方案的性能特点可知,方案一的MPX53D型号压力传感器具有良好的线性输出特性,能适用多种液体环境,结构简单,可靠性强,可操作性强且经济,能容易满足设计要求,方案二的BP300T压力传感器虽然也能满足一些性能指标,但测量量程较小,主要是测量气压信号,是属于专用的一款传感器,其应用范围相对局限,其稳定性也相对较差,故选择方案一较为合理。
第三章液位信号的放大电路模块设计
放大电路简介
放大即为增加电信号幅度或功率的电子电路。
应用放大电路实现放大的装置称为放大器。
它的核心是电子有源器件,如电子管、晶体管等。
为了实现放大,必须给放大器提供能量。
常用的能源是直流电源,但有的放大器也利用高频电源作为泵浦源。
放大作用的实质是把电源的能量转移给输出信号。
输入信号的作用是控制这种转移,使放大器输出信号的变化重复或反映输入信号的变化。
现代使用最广的是以晶体管放大电路为基础的集成放大器。
大功率放大以及高频、微波的低噪声放大,常用分立晶体管放大器。
高频和微波的大功率放大主要靠特殊类型的真空管,如功率三极管或四极管、磁控管、速调管、行波管以及正交场放大管等。
放大电路的前置部分或集成电路元件变质引起高频振荡产生"咝咝"声,检查各部分元件,若元件无损坏,再在磁头信号线与地间并接一个1000PF~0.047雾的电容,"咝咝"声若不消失,则需要更换集成块。
在测量控制系统中,用来放大传感器输出的微弱电压,电流或电荷信号的放大电路称为测量放大电路,亦称仪用放大电路。
放大电路的主要特性指标
放大电路的性能指标是衡量它的品质优劣的标准,并决定其适用范围。
这里主要讨论放大电路的输入电阻、输出电阻、增益、频率响应和非线性失真等几项主要性能指标。
输入阻抗应与传感器输出阻抗相匹配;
一定的放大倍数和稳定的增益:
放大倍数是描述一个放大电路放大能力的指标,其中电压放大倍数定义为输出电压与输入电压的变化量之比。
当输入一个正弦测试电压是,也可用输出电压与输入电压的正弦向量之比来表示,即
A=U出“U入
于此类似,电流放大倍数定义为输出与输入电流的变化量之比,同样也可用二者的正弦向量之比来表示,即
A=I出“I入
需注意以上两个表达式只有在输出电压和输出电流基本上也是正弦波,即输出信号没有明显失真的情况下才有意义。
低的输入失调电压和输入失调电流以及低的漂移
如前所述的放大电路模型是极为简单的模型,实际的放大电路中总是存在一些电抗性元件,如电容、电感、电子器件的极间电容以及接线电容与接线电感等。
因此,放大电路的输出和输入之间的关系必然和信号频率有关。
放大电路的频率响应所指的是,在输入正弦信号情况下,输出随频率连续变化的稳态响应。
若考虑电抗性元件的作用和信号角频率变量,则放大电路的电压增益可表达为 由于通常有fL fH的关系,故有BWfH。
有些放大电路的频率响应,中频区平坦部分一直延伸到直流,如图3-4所示。
可以认为它是图3-3的一种特殊情况,即下限频率为零。
这种放大电路称为直流放大电路。
现代模拟集成电路大多采用直接耦合进行放大。
线性好、精度高
信号的另一种失真是由放大器件的非线性特性所引起的。
放大器件包括分立器件和集成电路器件。
对于分立器件放大电路来说,电子电路设计工作者应设法使它工作在线性放大区。
当要求信号的幅值较大,如多级放大电路的末级,特别是功率放大电路,非线性失真难以避免。
对于集成运算放大器,通常是由正、负双电源供电,当输出信号的幅值接近双电源值时,其输出将产生非线性失真,称为饱和失真。
有关上述非线性失真的细节。
向放大电路输入标准的正弦波信号,可以测定输出信号的非线线失真,并用下面定义的非线性失真的系数来衡量。
放大电路除上述几种主要性能指标外,针对不同用途的电路,还常会提出一些其指标,诸如最大输出功率、效率、信号噪声比、抗干扰能力等等,甚至在某些特殊使用场合还会提出体积、重量、工作温度、环境温度等要求。
其中有些在通常条件下很容易达到的技术指标,但在特殊条件下往往就变得很难达到,如强背景噪声、高温等恶劣环境下运行,即属这种情况。
要想全面达到应用中所要求的性能指标,除合理设计电路外,还要靠选择高质量的元器件及高水平的制造工艺来保证。
放大电路模块设计方案一
由于传感器的信号较小,需要适当放大,考虑到设计的经济性及环境要求,用三极管实现放大,选择共射电路就能实现电压和电流的放大,且输入电阻和输出电阻比较适中,如何测量输入输出电阻成为放大电路的关键。
要测一个放大电路的输入电阻,本来只要测出输入电压Ui和输入电流Ii,那么输入电阻Ri=Ui/Ii。
但是我们实验室里没有测量微小交流电流的《交流微安表》,只有测量微小电压的交流毫伏表,为了将这个电流量转换成电压,于是在输入电路中串联了一个电阻R,这个R的大小应当和输入电阻的大小相当。
这样,输入电流Ii=(Us-Ui)/R,在这里,Us是信号源输出电压,Ui是放大电路输入端得到的电压,只要测出这两个电压,就可求出输入电阻了。
其具体步骤第一步,不串电阻,在放大电路输入端接入信号源电压U1,在放大电路输出端接示波器观察输出电压Uo;第二步,在输入电路中串入适当已知阻值的电阻R,这时在示波器上看到的波形将明显变小,调整信号源输出,使示波器上的输出波形达到原来的Uo大小,,再测量这时的信号源输出电压U2,(由于信号源内阻很小,不会产生感应电压),U2与U1的差就是R上的压降。
输入电流Ii=(U2-U1)/R,电路的输入电阻Ri=U1/Ii=U1*R/(U2-U1)。
此放大电路的设计方案图如图3-5所示:
方案一的原理论证
此设计适合于传感器的单端输出,由三极管的特性可知,要使NPN处于放大状态,则射极正偏,集电结反偏,三极管的简单工作电路如图3-6所示:
具体运用于信号放大时,使用单管共射就能实现电压或电流信号的放大,整个设计的工作原理图见附录3。
放大电路工作原理计算论证:
由于传感器的信号不稳定,容易失真,因此放大电路前端采用射极跟随器,同样用三极管来实现,电压跟随器的电压放大倍数恒小于且接近1。
电压跟随器的显着特点就是,输入阻抗高,而输出阻抗低,一般来说,输入阻抗要达到几兆欧姆是很容易做到的。
输出阻抗低,通常可以到几欧姆,甚至更低。
在电路中,电压跟随器一般做缓冲级及隔离级。
因为,电压放大器的输出阻抗一般比较高,通常在几千欧到几十千欧,如果后级的输入阻抗比较小,那么信号就会有相当的部分损耗在前级的输出电阻中。
在这个时候,就需要电压跟随器来从中进行缓冲。
起到承上启下的作用。
应用电压跟随器的另外一个好处就是,提高了输入阻抗,这样,输入电容的容量可以大幅度减小,为应用高品质的电容提供了前提保证。
电压跟随器的另外一个作用就是隔离,在HI-FI电路中,关于负反馈的争议已经很久了,其实,如果真的没有负反馈的作用,相信绝大多数的放大电路是不能很好的工作的。
但是由于引入了大环路负反馈电路,扬声器的反电动势就会通过反馈电路,与输入信号叠加。
造成音质模糊,清晰度下降,所以,有一部分功放的末级采用了无大环路负反馈的电路,试图通过断开负反馈回路来消除大环路负反馈的带来的弊端。
但是,由于放大器的末级的工作电流变化很大,其失真度很难保证。
共集电路时输入高阻抗,输出低阻抗,这就使得它在电路中可以起到阻抗匹配的作用,能够使得后一级的放大电路更好的工作。
其电路原理图3-7设计
射极跟随加单管共射电路能实现传感器的放大功能,该电路设计简单、明了、经济,但由于Ube=才能实现正向偏置,集电极反偏,因此要求外界的供电电压有一定的要求,对传感器的选择对其电压相对局限,此外,还需要与电路匹配的电容。
放大电路模块设计方案二
如果传感器是对采集的信号进行比较的双输出,则直接选用集成放大器进行放大,把双输入转化为单输出,同样应注意到电压信号的跟随问题。
其设计电路图3-8
在差分比例运算电路中,R1、R2、R3和R4电阻必需采用高密度电阻,并要精确匹配,否则将产生较大误差,而且降低电路的共模抑制比。
综上可知,两方案都能实现信号简单放大,两方案的性价比也不多,根据设计要求,传感器采集的信号较小,而且考虑到信号的稳定性问题,方案二对电阻要求不高,只要能满足电路匹配的电阻就可以实现,也不需要电容,故选择方案二作为设计方案。
第四章:
A/D转换器模块的设计
A/D转换器用以实现模拟量向数字量的转换,常用的A/D转换器是逐次逼近式和双积分式,其中ADC0808/0809是采样频率为8位的、以逐次逼近原理进行模—数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0809介绍
ADC0809主要特性
主要特性
1)8路8位A/D转换器,即分辨率8位。
2)具有转换起停控制端。
3)转换时间为100μs
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如下图4-1所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近。
ADC0809外部特性
ADC0809芯片有28条引脚,采用双列直插式封装,如图4-2所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表2所示。
表2通道选择表
数字量输出及控制线:
11条
地址输入和控制线:
4条
START:
A/D转换启动信号,输入,高电平有效。
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KH。
Vcc:
电源,单一+5V。
GND:
地。
D7-D0:
8位数字量输出引脚。
REF:
参考电压正端。
REF:
参考电压负端。
ADC0809硬件及外围
确定了传感器模块方案和放大电路模块方案后,把各个模块的硬件按照原理图连接起来,其中A/D0809与FPGA的硬件连接原理图如图4-3所示,其中通道IN0IN7通过A,B和C为地址输入线来选择。
具体传送时,首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示。
进行A/D转换之前,要启动转换的方法,ABC=000选择第一通道,ST=0,ST=1,ST=0产生启动转换的正脉冲信号。
ADC0809控制的VHDL程序设计
VHDL语言概述
VHDL主要用于描述数字系统的结构、行为、功能和接口,将一项工程设计,或称设计实体,可以是一个元件、一个电路模块或一个系统,分成外部和内部,即设计实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就直接调用这个实体。
VHDL具有较强的行为描述能力,决定了它成为系统设计领域最佳的硬件描述语言,此外,它既是一种硬件电路描述和设计语言也是一种标准的网表格式,还是一种仿真语言。
ADC0809的转换程序流程
首先数据传送时信号单极性,电压范围是0-5V,若信号太小,必须进行放大,输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
A/D转换后得到的数据应及时传送给FPGA芯片进行处理。
数据传送的关键问题是确认A/D转换的完成,因为只有确认完成后,才能进行传送。
A/D转换器的主要程序是主控程序和时序程序,时序程序为主控程序提供时钟信号,主控程序控制程序的进程。
工作时序图见,其具体工作流程
ADC0809内部带有输出锁存器,可以与FPGA芯片直接相连。
初始化时,使ST和OE信号全为低电平。
送要转换的哪一通道的地址到A,B,C端口上。
在ST端给出一个至少有100ns宽的正脉冲信号。
是否转换完毕,我们根据EOC信号来判断。
当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给FPGA芯片了。
转换程序流程图如图4-4所示
主控程序代码段为:
com:
process(current_state,eoc)--规定各种状态的转换方式
begin
casecurrent_stateis
whenst0=next_state=st1;ale=‘0‘;start=‘0‘;en=‘0‘;
whenst1=next_state=st2;ale=‘1‘;start=‘0‘;en=‘0‘;
whenst2=next_state=st3;ale=‘0‘;start=‘1‘;en=‘0‘;
whenst3=ale=‘0‘;start=‘0‘;en=‘0‘;
ifeoc=‘1‘thennext_state=st3;--检测EOC的下降沿
elsenext_state=st4;
endif;
whenst4=ale=‘0‘;start=‘0‘;en=‘0‘;
ifeoc=‘0‘thennext_state=st4;--检测EOC的上升沿
elsenext_state=st5;
endif;
whenst5=next_state=st6;ale=‘0‘;start=‘0‘;en=‘1‘;
whenst6=next_state=st0;ale=‘0‘;start=‘0‘;en=‘1‘;regl=d;
whenothers=next_state=st0;ale=‘0‘;start=‘0‘;en=‘0‘;
endcase;
endprocess;
转化时序代码段为:
clock:
process(clk)--对系统时钟进行分频,得到ADC0809转换工作时钟
begin
ifclk‘eventandclk=‘1‘thenqq=qq+--在clk1的上升沿,转换至下一状态
ifQQ="01111111"THENclk1=‘1‘;current_state=next_state;
elsifqq="01111111"thenclk1=‘0‘;
endif;
endif;
endprocess;
q=regl;abc_out=abc_in;
endbehav;
AD0809控制程序调试
FPGA开发板
现场可编程门阵列FPGA是美国Xilinx公司于1984年首先开发的一种通用型用户可编程器件。
FPGA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 检测 系统 前端 设计