基于AVR单片机的数字式耳温测量仪的设计
2014-11-19钱明理谢海源
钱明理,谢海源
上海交通大学医学院附属新华医院资产管理部,上海 200092
0 前言
随着医院的发展,含汞医疗设备逐步被淘汰,水银体温计也在被淘汰之列。根据我院2012年的测量仪器采购情况,数字式耳温测量仪的采购数量在短时间内有一个爆发式的增长。然而目前市场上拥有医疗器械注册证的耳温测量仪产品只有1种,且价格在3000元以上,而充斥市场的低价耳温测量仪大多为民用产品,测试准确度和稳定性较难保证,用于医疗诊断存在一定的风险。
经初步调研,耳温测量仪在临床上有较大的需求,特别是在儿科的应用具有一定的优势。因此,医院自行开发一套耳温测量仪,存在一定的可行性。根据调研结果,耳温测量仪的实际制造成本应该在200~300元左右。为此,我们设计开发了1款基于AVR单片机和医用级数字式红外热电堆传感器MLX90615的电子耳温测量仪(简称测试耳温仪)。
1 主要开发器件的选择
MLX90615医用及数字式红外热电堆传感器是一种非接触式传感器,通过赛贝克效应来探测热辐射[1],电压与温度的函数关系式为[2]:
式(1)中,U0为输出电压,电压单位为mV;T0和Ta分别为被测物体温度和背景温度,温度单位为K;ε为被测物体发射率;C为与传感器结构有关的系数。
早期的耳温测量仪一般采用传统的模拟传感器,典型的型号有10TP583T、TS118-3、ZTP135S-R等。模拟传感器设计较为复杂,而且稳定性较难控制[3]。近年来逐渐有直接数字式的红外热电堆传感器推出,如TI公司的温度传感器,最高精度为1℃[4],可用于感知热源,用于医学诊断则达不到要求;MELEXIS公司的传感器在36~39℃范围内,精度达到了0.1℃,分辨率为0.02℃,而且专门设计了医用级传感器MLX90615-DAA[5]。其内部结构,见图1。
图1 MLX90615-DAA内部结构图
目前常用的单片机有51系列、AVR系列、PIC系列和ARM单片机等。而MLX90615-DAA传感器采用IIC总线协议进行数据传输,51系列单片机不具备专门的IIC功能,用软件实现较复杂,且占用较多运行资源;采用ARM单片机也过于浪费资源。综合考虑,本研究采用AVR单片机进行开发,型号是较常用的Atmega16系列[6-8]。
2 硬件电路设计。
温度传感器采用3.3 V供电,因此硬件电路按此电压设计。单片机Atmega16L的工作电压为2.7~5.5 V,为保证输入电压的稳定,硬件设计增加了ASM1117-3.3三端稳压芯片,对于常用的纽扣电池3、6、9 V均能使用;电源设计增加了防反接功能,起到对元器件保护作用。传感器输出为两线协议,电路连接,见图2。
图2 电路连接
图2 中,SDA为数据线、SCL为时钟线,Atmega16为主机,传感器MLX90615-DAA为从机。SDA和SCL分别连接PC1和PC0引脚,实际设计需增加上拉电阻,这里使用了300 kΩ弱上拉电阻,否则传感器不能输出高电平。显示采用4位段码液晶显示,偏压1/3 V,由HT1621驱动芯片进行驱动。HT1621以32×4位的格式储存所显示的数据,适用于多种LCD应用场合。耳温测量采用中断方式进行触发,由INT0口完成。
系统通过蜂鸣器提示测试完成的信号,并具有正常和高温报警功能,分别用红色和绿色LED进行显示。硬件电路采用Altium Designer 9.0进行设计,电路硬件连接示意图,见图3。
图3 硬件连接示意图
3 系统软件设计。
软件采用WinAVR进行程序设计、GCC编译器编译。软件设计主要分为3个部分:① 数据的测量和计算;② 测量结果显示;③ 空闲状态下掉电模式和唤醒模式提示。程序执行流程图,见图4。
图4 程序执行流程
笔者前一版本的设计采用51系列单片机实现,需要模拟IIC总线进行通信,程序设计非常复杂,而且调试困难。而采用AVR单片机设计,程序相对要简单很多,而且JTAG接口具有在线调试功能,使用非常方便。AVR单片机具有TWI两线串行接口;TWBR(比特率寄存器),用于存放发送和接收的数据,数据长度为8bit;TWCR(控制寄存器)用于单片机引脚第二功能使能中断控制设置;TWSR(状态寄存器),主要用于产生波特率,程序设置为9600波特率,晶振采用7.3728 MHz。通过寄存器设置可直接进行IIC通信。IIC协议读操作示意图,见图5。
图5 IIC协议的读操作
图中S位为起始位,SDA拉低,总线处于占用状态,Slave Address为7位从机地址(这里的从机为传感器),Wr为写操作标识,A为应答位,Command为写8位命令(这里是写入读取温度命令)。IIC总线的读写转换需要重新进行设备握手;PEC为校验码。图中白色部分为主机向从机发送数据状态,灰色部分为从机向主机发送数据状态。
单片机从传感器RAM中的0x7h地址中读取温度值,再通过转换公式直接计算目标体温度。一般情况下,单片机只需要进行读操作即可。
4 系统测试。
4.1 稳定性测试
采用某品牌耳温度仪测和试耳温仪分别对20人测试,其中体温正常5人,发烧15人。对同一测试样本间隔30 s重复测量5次,对测试数据进行比较,见图6。
图6 稳定性测试数据比较直方图
图中条状高度代表方差,方差值越大,稳定性越差。浅色代表某品牌耳温度仪的测量方差,深色代表测试耳温仪的方差。可见,测试耳温仪的方差优于某品牌耳温仪,且温度稳定性在±0.1℃以内,与传感器的技术参数相符。
4.2 准确性测试
对测试耳温仪的测试结果与口腔温度计(假设为标准仪器)和国外某品牌医用耳温测量仪测量结果进行比较,重复测量20次,结果见表1。
表1 两种耳温测试仪与口腔温度计测试误差比较(温度单位℃)
从测试情况看,某品牌耳温仪与测试耳温仪的最大偏差都为0.2℃,但是,20次测量结果中,某品牌耳温仪出现0.2℃偏差5次,0.1℃偏差11次,无偏差4次;测试耳温仪出现0.2℃偏差2次,0.1℃偏差7次,无偏差11次。可见测试耳温仪的测量温度更接近口表。
5 分析和改进
本研究开发的耳温测量仪具有如下优点:制作成本低,制作单个耳温仪的成本在200元以下,相比价格在3000元左右的进口耳温仪成本相差悬殊;从传感器的技术参数看,测量性能好,精度较高;3AVR单片机属于新一代单片机,程序执行采用流水结构,与51系列单片机比较运算速度快。本设计采用8 MHz晶振,单条指令执行周期为0.125 μs,而采用51系列单片机[10],单周期指令的执行时间为1 μs。AVR单片机具有内部上点复位功能,而且引脚内置了上拉电阻,而51系列单片机需要设置外部复位电路,而且P0口需要接外部上拉电阻。AVR单片机具有TWI接口,只需设置3个内置的寄存器即可进行IIC通信,其中 JTAG接口的在线调试功能,使开发时间明显缩短。考虑到实际使用情况,该系统采用纽扣电池供电,大大减少了仪器的体积和重量。系统专门对电源部分进行了改进,使得3~9 V的电源均适合该系统使用。但是,系统如果作为一款产品进行开发,外观的设计也是相当重要的,本项目只进行了电路系统的开发,未进行外观的设计。
[1]傅中君,侯雪亚.基于TS118-1的无接触式人体体温计的实现[J].江苏技术师范学院学报,2007,(13):7-8.
[2]庞建莹,施云波,修德斌,等.基于红外传感器的电器火灾预警系统[J].仪表技术与传感器,2010,(3):64-66.
[3]SEMITEC.10TP583T infrared thermometer datasheet[EB/OL](2003-10-15)[2004-01-21].http://www.sensor-ic.com.
[4]TEXAS INSTRUMENTS.TMP006 user guide datasheet[EB/OL](2010-09-12)[2011-05-06].http://www.ti.com.
[5]MELEXIS.MLX90615 infrared thermometer datasheet[EB/OL](2012-08-30)[2013-01-11].http://www.melexis.com.
[6]HOLTEK.HT1621/HT1621G RAM Mapping 32×4 LCD Controller for I/O MCU[EB/OL](2010-09-08)[2012-01-25].http://www.holtek.com.tw.
[7]詹位前.从MCS51向AVR的快速转换[EB/OL].(2013-6-15)[2013-07-12].http://www.SL.com.cn.
[8]谢海源.基于数字式红外热电堆传感器的耳温仪设计[J].中国医疗器械杂志,2013,(5):336-339.
[9]AVR.具有16KB系统内可编程FLASH的8位AVR微控制器[EB/OL].(2006-02-16)[2013-07-12].http://www.atmel.com.
[10]宏晶科技.STC89C51RC/RD+系列单片机工作指南[EB/OL].(2005-02-16)[2013-07-12].http://www.MCU-Memory.com.