浅析基于以太网的病人体温远程自动检测系统设计方
医院病人体温等参数的远程自动检测系统是医院数字化建设中的一个重要项目。该设计主要是针对医院病人体温进行远程自动检测,采用分布式多点温度采集技术,并通过以太网通信技术传输到医院监控中心,值班医生和护士通过监控中心可以实时了解病人的体温变化,监控中心可以对病人的体温异常进行报警和相应的记录,并且与病人数据库同步,方便医生对病人病情的分析。
本文引用地址:http://www.amcfsurvey.com/article/199440.htm1 系统总体设计方案
该系统总体设计框图如图1所示。整个系统采用三级结构,即医院监控中心、病房主机和温度传感器。其中病房主机采用单片机AT89C52为主控单元,主要实现网络通信、温度采集和显示。网络通信是通过周立功公司开发的以太网转串口模块ZNE-100T实现的,每台ZNE-100T都可以设定IP地址和服务器 IP地址,便于构成分布式测温网络。测温元件采用美国DALLAS半导体公司生产的数字温度传感器DS18B20,每个DS18 B20都有惟一的ID号,体积小,可以封装成普通温度计大小,其拉线最长距离可达80 m,便于分布式安放在病人身上。温度数据可以在病房主机的液晶上滚动显示。医院监控中心和各病房主机之间的网络通信,采用C-S架构,病房主机每分钟向医院监控中心发送各路温度数据。医院监控中心接收来自各病房主机的数据,可以以曲线或者数字的方式实时显示各病人温度变化情况,并进行异常处理和相应信息记录,并且与病人数据库同步,及时提醒值班医生和护士关注病人情况。
2 硬件设计
2.1 单片机主控单元设计
单片机AT89C52是一个低电压,高性能CMOS8位单片机,片内含8 KB的FLASH和256 B的RAM,片内置通用8位中央处理器,具备32个双向I/O口。其中单片机的P0口用于现场显示电路,采用点阵液晶显示模块LM6038D,可以滚动显示各个病人的体温;P1口用于接单总线数字温度传感器DS18B20;P2口用于现场控制电路,包括按键、指示灯等;P3口的P3.0(RXD)和 P3.1(TXD)用于和ZNE-100T的串口通信。系统采用5V供电。
2.2 单总线温度采集电路设计
DS18B20的测量范围为-55~+125℃;在-10~+85℃时,它的精度为±0.625℃,通过特殊处理,可以达到0.1℃。
单总线数字温度传感器DS18B20的电路连接方式主要有两种,如图2所示。该设计采用外接电源方式,如图2(b)所示。理论上单片机的每个端口可以接无数个DS18B20,但是单片机端口负载能力有限,P1口的每个端口(P1.0至P1.7)只能推动8个DS18B20。该设计中只用P1.0端口接了8 只DS18B20。
2.3 以太网通信电路设计
ZNE-100T是采用RS 232接口(DB9接头)与单片机通信的,而单片机只能用TTL电平,因此,必须设计一个RS 232转换电路与之通信。RS 232转换芯片选用Maxim公司的MAX232E。其转换电路如图3所示。
2.4 液晶显示电路设计
液晶显示模块采用拓谱微公司生产的LM6038D点阵液晶模块,该模块有128(列)×64(行)个像素点,另外每列多设计了4个像素点,实际上是 132×64个像素点,分成9页。该设计充分利用了多出的4个像素点,做成了一个滚动条,通过按键可以操作滚动条,以便用户翻页查看显示的内容。
2.5 控制电路设计
该设计设计了两个按键,分别接在单片机的P2.0和P2.1引脚上,分别用于控制液晶显示屏滚动条的上下拉。还设计了两个指示灯,分别接在单片机的P2.2和P2.3引脚上,分别用于指示发送数据指示(红色发光二极管)和连网成功指示(绿色发光二极管)。
2.6 看门狗电路设计
为防止系统死循环,提高系统的可靠性,采用了MAX813L看门狗电路。其最大超时为1.6 s,高电平复位,即RESET脚保持状态1.6 s后就发一复位信号。因此,程序中必须每1.6 s内改变RESET状态1次。
3 单片机程序设计
该系统单片机程序采用C语言编写。程序首先对硬件进行初始化,包括对单片机AT89C52寄存器的初始化、DS18B20内部RAM的初始化、液晶显示模块LM6038D的初始化以及对以太网通信模块ZNE-100T的初始化。程序通过分时法轮流采集8只DS18B20的温度读数,并实时在液晶上显示,用户通过操作按键可以翻页查看8只DS18B20的温度数据,单片机每隔1min通过串口把8路温度数据打包后发送给以ZNE-100T,ZNE- 100T、实时把数据传输到医院监控中心。系统流程图如图4所示。主要的子程序有:DS18B20驱动程序、液晶显示驱动程序和串口和网络通信驱动程序。
3.1 DS18B20驱动程序设计
单总线通信时只需要1根信号线,并严格按照特定的时序要求逐位交换信息,主机和从机允许数据双向传输,但在同一时刻数据的传输只能是一个方向的。
(1)初始化时序
初始化时CPU首先发出一个复位信号将单线总线上所有DS18B20复位;然后释放总线,改成接收状态,单线被上拉电阻R拉成高电平。在检测到此上升沿后,DS18B20需要等待15~60μs才向CPU发出响应脉冲,此后便可对ROM,RAM进行操作。
(2)读/写时序
①写时序。CPU把I/O线从高电平拉至低电平时,作为一个写周期的开始。写时序包括2种类型即写1时序和写0时序。
②读时序。当CPU将I/O线从高电平拉成低电平时,就作为一个读周期的开始,并且I/O线保持低电平至少为1μs。DS18B20的输出数据至读时序下降沿后的15μs内有效。经过15μs后读时序结束,I/O线经外部上拉电阻又变成高电平。读/写1位数据至少需要60μs,并在两位数据之间至少要有 1μs的恢复期。读/写1位数据时序的波形如图5所示。
3.2 液晶显示驱动程序设计
利用点阵液晶显示模块LM6038D的串口模式,其时序图如图6所示。
LM6038D的显示驱动程序包含了字符库,由于系统只是简单地显示温度数据,所以字符库做的比较小,只有“0~9”,“.”,“:”,“℃”,“+”以及“-”的字符编码,采用16×16的字符大小。液晶每一页只显示4路DS18B20的数据,通过两个按键可以上下翻页查看其他DS18B20的数据。数据显示格式:“1:+36.7℃”。
3.3 串口和网络通信驱动程序设计
单片机和ZNE-100T‘模块之间通过RS 232接口通信,采用中断的方式进行串口通信。单片机串口初始化波特率为9 600 b/s,单片机在初始化时,就先通过串口对ZNE-100T进行初始化操作,包括设置服务器IP地址,本机IP地址、网关、掩码以及服务器端口号等,连网成功后,绿色发光二极管会亮起。单片机单元加上ZNE-100T模块,就构成了病房主机,它和医院监控中心之间的通信协议如下:
每个病房主机都有一个ID号。单片机每隔1 min把采集到的8路温度数据按照通信协议打包之后通过串口发送给ZNE-100T,ZNE-100T则通过网口把数据发送到医院监控中心,此时红色发光二极管会不断的闪,表示正在发送数据。
4 医院监控中心
医院监控中心包括数据库和监控平台。数据库记录从个病房主机发过来的病人的体温数据,并且与病人的其他数据库同步,便于医生分析病人的病情变化。监控平台则实时显示各床号病人的体温数据,并对体温变化异常的病床号进行预警,同时显示相应的编号和床位信息,提示医护人员注意检查病人身体状况。
5 测试结果和实际使用情况
(1)DS18B20温度测量精度
在测试过程中选用了水银体温计同时测量温度,以检验DS18B20的测量精度。在此测量20次体温,DS18B20的测量结果和水银体温记的测量结果基本一致。
(2)监控中心温度显示
在实际测试过程中,用5台病房主机和监控中心组成了一个测试网络,可以在监控中心实时看到各病房主机发送过来的温度数据,每路温度数据都可以以曲线或者数字的方式显示。
6 结语
实践表明,该系统可以稳定地测量多个人体温度,可以正常与监控中心通信,并且可以实时地在病房主机上显示测量的温度数据。该系统具备稳定性好,成本低廉,采用单总线测温技术和以太网通信技术,便于实现分布式温度测量,可以作为子系统模块在医院信息系统中应。
评论