基于单片机的宽范围高精度光纤传感测温仪的研制
2008-10-28
作者:者明礼 王俊强
摘 要: 一种基于单片机的大动态范围" title="动态范围">动态范围、高精度的光纤温度传感器的设计研制,用双光路、可编程增益放大系统来实现大动态范围的温度测量,并利用12位ADC将被测温度信号由模拟量转换为数字量,利用单片机系统达到高精度的要求,整个系统有非线性校正、多点温度补偿、多种测量方式可选、LCD显示和键盘输入等功能,且系统可与计算机通过RS-232接口通讯,将采样数据传输到上位机处理。
关键词: 光纤传感" title="光纤传感">光纤传感 温度 单片机
光纤传感测温仪" title="测温仪">测温仪是一种非接触式测温方法与光纤传感技术相结合,实现高精度、高重复性、快速响应、非接触式测量和高性价比的新型光纤传感类测温系统。该类测温仪利用光纤的空间滤波效应,使入射光波从空间瞬态变为空间稳态,消除杂散光的影响,提高测量的精度和稳定性;将光纤探头和电子处理单元隔离,使信号处理单元不受环境高温影响,提高抗电磁干扰能力;响应速度快;根据热源温度,选择最佳工作波段。
有时需要对范围很宽的温度信号进行测量,但是实现宽温度范围的测量,采用一个探测器的光纤传感测温仪很难达到要求。为了解决单一探测器光纤传感测温仪范围窄的不足,设计了利用双光路系统,采用两个不同波长范围探测器的光纤传感测温仪,实现测量温度范围的扩展,将测温范围的下限和上限延伸。实现大动态范围要求的光纤传感测温的关键技术之一是适应大动态范围要求的高信噪比电子数据处理系统的设计。电子数据处理系统应采用高阻抗低噪声前放。500℃~1800℃温度范围的光功率动态范围高达105W量级,远远超出放大器的动态范围,采用电子开关动态范围扩展技术将测温范围分成若干温度段,问题就能解决;同时采用数据拟合等技术来实现高精度的测量。
1 仪器基本原理框图及功能框图
整个仪器主要分为以下几个部分:信号拾取单元、模数转换单元、键盘与显示单元、8051单片机系统单元、RS-232通讯单元以及数模转换单元。整个原理框图如图1所示。
仪器的工作过程为:用光纤将物体的辐射传导至探测器,探测器输出电信号完成光电转换;利用信号拾取单元将电信号调理,然后将电信号经过A/D" title="A/D">A/D转换成数字信号用8051单片机处理;在单片机中用软件完成被测物体温度的非线性校正、温度补偿等功能。经过单片机处理后利用D/A" title="D/A">D/A转换将温度信号转换成0~5V的电压信号输出。
2 系统的硬件设计
整个系统按照模块化的设计方法设计,使系统的整体结构更加完善,系统性能得以提高,方便调试、维修。
2.1信号拾取单元
由于测量的温度范围广,只使用一个光电探测器不能适应整个范围内的信号检测。所以将温度范围一分为二,用两个探测器两条光路来实现信号的检测。两个通道的电路大体相似,但由于信号的强弱不同,在系统中所选用的运放不一样。其中低温段所使用的运放为OPA129。OPA129是B_B公司的超低偏置电流运算放大器,低漂移、低噪声、高开环增益,适合于将光电转换信号放大。从热力学中玻耳兹曼定律可知,信号与温度的四次方成正比。在温度较低时信号很弱,采用OPA129;而温度较高时则使用OP27运放。两路分别都有调零和调增益功能,两路信号输入到一个数字开关MAX4622。MAX4622是一个单刀双掷数字开关,它的导通电阻最大为5Ω。MAX4622的通道选通信号由程序根据当前温度的高低来控制。如图2所示。
2.2 模数转换单元
为了达到大范围、高精度地测量,不仅要精心设计信号拾取单元,而且在A/D转换部分也采用了可编程增益放大器PGA103和12位的A/D转换器MAX191来实现信号的数字化。PGA103是一种通用的低温漂可编程增益放大器,它的增益分为三挡:X1、X10、X100,通过两个CMOS/TTL兼容的输入端来选择,PGA103工作电压从±4.5V~±18V。系统中PGA103的增益选择端A0、A1分别接至8051单片机的P10、P11端。为了防止在单片机上电时,P1口输出全为1,PGA103的增益为100可能会输出大于A/D转换器的输入界限,在PGA103的输入端加一保护二极管,以防止过冲电压损害PGA103。MAX191是MAXIM公司的一种12位、非线性误差为1/2LSB的CMOS模/数转换器,它的输入可为单极性或双极性,内建采样保持器,可调内部参考电压,采样速率为100kSPS,数据可以串行输出也可以8位并行输出,内部或外部采样时钟。它有三种工作模式:Slow-Memory模式、ROM模式、Serial-Interface模式。在本系统中选用ROM模式,即A/D转换后的数字量以8位并行输出到单片机,单片机分两次读取12位的转换结果;模拟信号单极性输入,幅值为0~5V,采用内部的振荡时钟,通过外接一个120pF的电容,正常情况下可产生1MHz的时钟。A/D转换结束后,通过8051查询MAX191的转换状态端来判断转换的结束与否,然后再通过两条读指令来读取12位的A/D转换结果,最后将两次读的8位数据拼接为12位的转换结果。
2.3 键盘和显示单元
本系统采用8255A的A口和C口扩展出一个4×4的键盘,包括10个数字键和6个功能键。在本系统中采用程序扫描法来识别按键。单片机先使8255A的PC口均为低电平,再读A口。如果A口不全为高电平,则延时10ms去抖动;然后再读A口,此时A口仍不全为高电平,说明确有键按下。进一步确定按下键的位置,先置PC0=0,PC1=PC2=PC3=1,读A口,由A口低电平的位便可确定按下键的位置。依次类推,如果检查完所有的键均无按下,说明是干扰或误操作;扫描结束时,按下键的位置信息存于某个存储单元中。
显示采用以内藏HD61830控制器的液晶模块8032B点阵型LCD。HD61830是点阵式液晶图象显示控制器,可与MPU直接接口,具有专用指令集,可完成文本显示或图形显示的功能设置,以及画面卷动、光标、闪烁、位操作等功能。
2.4 8051单片机单元
由于整个系统的程序较大,所以需要一个外部程序存储器,在系统中选用了32KB的EEPROM。在系统中实现多点温度补偿要存储一些温度点的修正值以提高系统的测量精度,所以将EEPROM既作程序存储器又作数据存储器。整个系统的地址分配为:0000~7FFF为存储器地址,D000~D003和E000~E003分别为两个8255A的四个端口地址,BFFC~BFFF为A/D转换器的地址,FFF4~FFF5为D/A转换器的地址。在地址译码中没有采用GAL而是通过分离元件实现。地址译码通过两片74LS138、一片74LS04、一片74LS08来实现。
2.5 RS-232通讯单元
为了方便数据的处理,将测量所得的数据送入计算机,本系统采用RS-232通讯方式,通讯速率为9600波特率。接口所用芯片为MAX232,接收端采用VC++编制的接收程序,显示并存储接收到的数据。进而分析、处理得到拟和曲线。在单片机中将利用此拟和曲线实时计算当前被测物的温度值。
2.6 数模转换单元
系统中预留一路模拟信号输出,在测量、显示的同时可将当前的温度值通过D/A转换输出进而实现闭环控制。系统采用的D/A转换器为MAX508,它是一种完备的12位、片内参考电压、电压输出型的D/A转换器,输出电压和参考电压同极性,允许单电源工作,双缓冲逻辑输入接口使之与微处理器连接非常容易。
3 系统的软件设计
系统软件的设计完全按照结构化的程序设计方法来完成 ,将整个程序细分为若干个子程序(模块),方便调试与检查。开发系统采用Franklin C51编译器和伟福仿真器,利用C51语言使得整个软件开发变得简单、快速、易于调试。整个软件流程见图3。下面就几个主要的子程序作一简单的介绍。
3.1 初始化子程序
在初始化程序中,主要对8051的系统资源,包括定时器、中断、串行通讯、LCD显示、8255A等进行初始化工作。
3.2 LCD显示子程序和键盘输入子程序
在显示程序中,完成显示功能菜单的任务。菜单显示的字符利用LCD显示控制器HD61830的字符集中的资源,菜单为滚动式,通过功能键可使光标从上往下移动,当移至最下一行时,屏幕开始滚动显示。利用软件程序扫描8255A的PA和PC口得到按键的键值,函数返回键码。
3.3 A/D转换子程序和D/A转换子程序
A/D转换结果的读入采用查询方式。通过查询MAX191的BUSY端的信号来判断转换是否结束;12位的转换结果需要两次读取,然后拼接成12位的结果。如果为了使外部干扰的影响减小可采用软件滤波。对于温度信号一般来说是缓变的,可采用一阶滞后滤波或中值平均滤波等。D/A转换是直接将12位的数据送入MAX508的缓冲器即可实现数摸的转换。
3.4 RS-232通讯子程序
通讯中将12位的数据分成两次传送,在计算机中采用VC++6.0中的一个通讯控件MS Communications Control6.0来实现串口的通讯程序。在接收到测量数据后,可进行一系列的数据处理与分析得到光纤传感测温仪的特性曲线,将此曲线生成电压-温度表存入单片机程序中来计算出温度。
参考文献
1 马忠梅,籍顺心,张 凯,马岩.单片机的C语言应用程序设计. 北京:北京航空航天大学出版社,1999
2 王福瑞.单片微机测控系统设计大全. 北京:北京航空航天大学出版社,1999
3 何立民.MCS-51系列单片机应用系统设计.北京:北京航空航天大学出版社,1990
4 安毓英,曾小东.光学传感与测量.北京:电子工业出版社,2001
5 MAXIM. 2000年产品资料全集
6 BURR-BROWN. 2000年CD-ROM资料