基于AT89C52和Pt100铂电阻传感器实现航天医用冷藏设备监测系统的设计

安全设备/系统

158人已加入

描述

引言

航天医用冷藏设备主要用于储存血液、试剂、疫苗等医学样品,是在特殊条件下对医学样品进行存储研究的冷藏设备。为了保证冷藏设备具备高的可靠性、稳定性,在开发过程中需要进行全面的实验测试,这就需要一种相匹配的监测仪器对影响其可靠性、稳定性的参数进行实时监测、分析,进而提高冷藏设备的性能,最终使其满足在极特殊的条件下工作。

目前,医用冷藏设备在国内外有广泛的研究,而在航空航天领域的研发在国内外属于领先技术,为保证达到严格的制冷保温指标要求,在结构设计、板材选取等方面需特殊处理,才能保证冷藏设备在特殊条件下稳定可靠的运行。相匹配的监测系统主要针对工作电源和温度这两个重要的控制指标进行准确可靠的监测。

系统硬件设计

航天医用冷藏设备监测系统硬件关键部分是信号检测装置,包括模拟量信号测量电路、电源系统和串口通讯。其中电源系统采用经典电路实现,本文不作详细叙述。监测系统的硬件设计过程中采用冗余技术、单点双线、光耦隔离等抗干扰技术,增加了系统数据采集的准确性和可靠性。监测系统原理框图如图1所示。

图1 监测系统框图

模拟量信号测量电路

以AT89C52单片机为核心,外置看门狗X5045和一片11.0592MHz晶振构成最小单片机系统,AT89C52是整个系统的控制核心,内带8KB的Flash ROM,用户程序存放于此。测温单元采用Pt100铂电阻传感器(测温范围-50~+100℃),配套线性化输出0~5V标准信号的温度变送器,误差为0.06℃,构成单线式温度采集网络。为了提高精度,选用12bit的串行A/D转换器TLC2543,应用单片机I/O口的双向传输数据的功能,将P1.0~P1.3口与TLC2543的4根控制线CS、OUT、IN、SCK相连接,实现对TLC2543进行读取和写入操作。将温度变送器输出接入TLC2543的模拟输入通道即可。由于AT89C52单片机没有SPI接口,需要用软件实现SPI的功能,对TLC2543操作的关键是理清接口时序图和寄存器的使用方式。系统程序利用Xeltek公司的基于USB口的通用编辑器Superpro3000U下载到AT89C52芯片中,实现系统固件编程。温度采集电路如图2所示。

电源信号的测量包括采集电路和显示模块两部分,装置电路图如图2所示。检测供电电源的电压采用分压电路实现,小电阻4.3KΩ两端接上一个5.6V稳压管以保护单片机系统;检测工作电流应用运算放大器LM358将采样电压放大为标准信号,如图3所示。然后将电压、电流检测电路输出接入TLC2543的AIN0,AIN1接口,完成对电源信号的采集。显示模块由2个四位一体的共阴极数码管和1片LED串行共阴极驱动器MAX7219构成。MAX7219的3根控制线DIN, LOAD, CLK与单片机AT89C52的P1.5~P1.7相连,数码管的段选信号线a-dp分别和MAX7219对应的SegA~SegDP相连,其中一组数码管LED1的4根位选信号线和MAX7219的位驱动线Dig0~Dig3相连接,另一组LED2的位选信号与Dig4~Dig7相连。LED1显示系统供电电压,LED2显示工作电流。固件程序分为信号采集和数据显示两部分,系统工作是在程序控制下,完成对模拟信号的采集和电源信号的显示。

图2 数据采集、显示电路

图3 电流采集电路

串口通讯

由于RS-232串行通信标准接口使用方便、接线少而且传输距离可达到15m,足以满足监测系统的技术要求,因此选用RS-232的串口通信方式。ATMEL的89C52单片机通过普通I/O口与 PC机 RS-232串口实现通信的硬件接口电路,如图4所示。由于 PC系列微机串行口为RS-232标准接口,与输入、输出均为TTL电平的AT89C52单片机在接口规范上不一致,因此TTL电平到RS-232接口电平的转换采用 MAX232标准 RS-232接口芯片,该芯片可以用单电压(+5 v)实现RS-232接口逻辑“1”(-15~3V)和逻辑“0”(3~15 v)的电平转换。AT89C52的P3.0为串行输入端,P3.1为串行输出端。

图4 RS232串口通讯

系统软件设计

监测系统软件包括下位机程序和Delphi数据通讯软件两部分,实现测试数据的分析处理、回放显示、打印输出等功能,它可以接收命令和数据,向设备发送控制信号,返回设备的状态参数,提供友好的人机界面。同时,利用软件滤波方法提高数据采集的准确性。

下位机程序设计

监测系统的核心在于下位机程序能够进行数据的采集、显示并与上位机的数据通讯,向上位机发送采集的温度、电源数据,接收上位机发来控制指令,进行传输数据,与上位机通信采用查询和中断方式实现,并有奇偶校验以保证数据正确传输,下位机程序的软件流程图如图5所示。

图5 主程序流程图

MAX7219初始化即设置各个寄存器初始值,包括BCD译码器、多位扫描电路、段驱动器、位驱动器和用于存放每个数据位的8×8静态RAM以及数个工作寄存器。通过指令设置这些工作寄存器,使其进入所要求的工作状态。AT89C52单片机有发送缓冲寄存器和接收缓冲寄存器SBUF、串行口控制寄存器(SCON)、特殊功能寄存器(PCON),MAX232串口初始化就是通过程序设置SCON定为工作方式2,并使REN为1,允许串行口中断。串口通信发送程序采用查询方式实现,数据接收程序采用串口中断方式实现,在数据接收中断服务程序中根据所接收的数据判断是否将发送标识Send_flag置位。数据采集处理子函数形参为模拟通道号,完成对此通道数据采集转换,并将转换结果放入一维数组Cstring[],然后循环采集多次顺序放入Cstring[]数组中,采用软件滤波方法得到此通道的数据。LED显示子函数是按照正确的时序和寻址方式操作内部寄存器,完成电源信号的实时显示。

Delphi通讯软件设计

上位机利用Delphi开发,由于Delphi没有自带的通信控件,采用第三方SPComm控件实现PC机与单片机串口通信。它具有丰富的与串口通讯密切相关的属性、方法和事件,提供了对串口进行操作的多种功能。在使用过程中,只要设置正确,完全可以发送从 0到 255的二进制数字,且接收正确。SPComm控件的StartComm方法用于打开串口,StopComm过程用于关闭串口。利用事件驱动法完成数据的接收和发送,SPComm控件的OnReceiveData事件,当输入缓存有数据时将触发该事件,在这里可以对串口收到的数据进行处理,而WriteCommData完成数据的发送,这样上位机系统可以接收单片机发送的数据和信息,以使PC机更快速作出反应。

为实现数据通讯程序,须在Delphi开发环境下设置一个窗体,窗体上主要有一个通讯控件SPComm和3个Timer控件。软件采用定时器Timer1和Timer2控件来实现在数据信息送出2s后PC机仍未收到任何回执信息,程序出现提示然后跳出系统,以下是程序编写时相关注意点:

(1)握手信号建立以及发送接收数据时:为了使主机能够对整个检测过程进行实时控制,串口打开即发送握手信号,接着设定等待时间,握手成功后,通过条件判断下一步是发送还是接收数据。对发送的命令,最好采用文本方法,若采用二进制特别注意数据的格式。

(2)接收数据:接收数据通过被动的触发事件完成,可以通过函数实现,根据自己的要求编写,在接收过程中,多用特征字符,如“#”,“$”等,这需要在通信协议中约定。

(3)Timer控件:根据需要设定Timer控件,通过它可以完成发送命令和接收数据的过程,同时可以有效的判断通信异常等情况,并迅速作出反应。

(4)通讯错误:由于外界干扰或电压波动等原因,PC机和单片机之间的通讯可能会出现错误,如接收缓冲区溢出、网络端口超速等,这些可能在代码中引起运行错误,为了处理这些错误,须将错误处理加到SPComm控件的Receivedata事件中处理。

结语

温度传感器通过温度变送器接入TLC2543A/D转换器,输入信号很小,对干扰很敏感,因此一定要加装独立的屏蔽线,避免外界的干扰。同时,供电电源置于设备内部,工作时会产生干扰,所以一定要与信号线、控制线分开并屏蔽好,防止设备出现意外的情况。

经过模块化的电路测试、软件调试和系统组装,测温精度可以达到±0.08℃。

此仪器采用单片机作为主控制器,成本低,通讯可靠性高,实时性好,系统运行稳定,各项指标达到了技术要求,通过青岛市科技局鉴定,并已交付用户单位使用,目前在冷藏设备的开发过程中已经发挥了重要作用。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分