摘要
本系统基于RS485通信网络,实现了多节点在线体温检测及状态呼叫,系统由上位机(主控制站)和下位节点(从站)两部分组成。下位节点完成对人体实时体温的检测、处理、显示以及呼叫状态检测;并通过通信网络完成与上位机的实时通信,上位机完成下位节点检测参数的集中管理、显示,并通过Modbus协议实现与计算机通信,计算机采用组态王实时监控软件实现系统的画面显示及声光报警。
一、方案论证与比较
1、体温检测方案设计
方案一 模拟型传感器大致可分为热电偶(E、K、S)、热电阻(PT100,CU50)、集成芯片(LM135、LM35、TMP35)等,它们输出都是模拟信号,都必须进行模拟缓冲、放大后经A/D转换后才能被单片机检测,硬件电路复杂,硬件结构复杂成本高。
方案二 数字型传感器与微控制器的接口大致可分为SPI、I2C及单总线,其中基于单总线接口的数字型温度传感器与单片机连接时接口电路最简单而且易于扩展。在电路实现时不需复杂的模拟硬件电路,采用全数字化信号传输,抗干扰能力强。
由于方案二电路简单、灵活性大。故采用DS18B20单总线数字传感器与AT89C5X系列单片机为主要芯片实现温度检测、显示及构建通信网络系统。
2、串行通信方案设计
方案一 RS232串行通信
图1 系统结构框图
由于RS-232串行通信传输距离短,信号采用电平表示,不能抑制共模干扰等问题,一般用于短距离的通信。而无法实现分布式系统长距离、多节点的要求,故不适合本设计。
方案二 RS485串行通信
RS-485采用差分信号表示数字数据,因此具有抑制共模干扰的能力。加上总线收发驱动器具有高阻抗,广泛应用于多节点通信网络中。在系统中只需为每个节点指定一个唯一的地址标识,就能实现各节点之间的数据通信。故本系统中采用此串行通信方式。
二、系统设计
1、系统结构
本系统设计总结构框图如图1所示。系统设计分为上位机和下位节点(下位机)部分组成。下位机完成对人体实时体温的检测、处理、显示以及呼叫状态检测并通过RS485总线传送给上位机;上位机完成对下位节点的检测及参数的集中管理、显示。本设计在完成了基本要求的基础上,我们还完成了计算机与上位机的通信实现了计算机对整个系统检测参数的显示和声光报警。

2、下位机设计
下位机设计由温度传感器DS18B20、单片机、键盘、看门狗电路、显示电路和RS485通信转换电路组成,其原理框图如图2所示。下位机电路图如图3所示。


为了保证系统运行的可靠性,设计了IMP813L芯片为核心的看门狗电路。RS485通信采用MAX1487总线驱动芯片。通过拨码开关实现了从站站号的自由设定。四个按键从左到右分别定义为紧急呼叫、一般呼叫、其他呼叫、取消呼叫状态。当按下左边三个中任一按键实现状态呼叫,此时指示灯将点亮,并通知上位机。上位机回复后,呼叫指示灯将熄灭。若下位机按取消按键将取消该状态呼叫,指示灯熄灭。其电路图如图3所示。
3、上位机设计
上位机由单片机、键盘、看门狗电路、显示电路、锁存器、双口RAM和RS485接口电路组成,其原理框图如图4所示。上位机电路图如图5所示 。


图5 上位机电路图
本上位机设计了五个按键,从左到右分别定义为“∧”、“确认”、“∨”、“清除”、“回复”,前三个按键用于下位机定点显示选择。后两个按键用于下位机状态清除与回复。节点号对应的两位显示小数点将点亮作为手动定点显示的标志。三个指示灯从左到右分别定义为紧急呼叫、一般呼叫和其他呼叫状态指示。
4、显示电路设计
上、下位机的显示电路由MAX7219、数码管组成。五位数码管,左边两位为下位机号,右边三位为对应下位机的温度值显示。其电路图如图6所示。

5、 其它部分设计
我们在完成基本要求的基础上,我们还对发挥部分进行了设计制作,在硬件上设计了计算机通信接口电路,其原理框图如图7所示。双口RAM用于上位机与此发挥电路的数据交换。

三、软件设计
1、从站软件设计
从站软件流程图如图8所示。

2、主控制站软件设计
主控制站软件流程图如图9所示。

四、测试方法和测试结果分析
我们制作的三个下位机定义为2号机、3号机和4号机。
1、室温测试
在环境温度下,将3个温度传感器放在一个密封的塑料袋内进行测试。记录温度值(每隔五分钟记录一次温度值)
|
1次
|
2次
|
3次
|
4次
|
5次
|
6次
|
7次
|
8次
|
9次
|
10次
|
11次
|
12次
|
2号机
|
13.0
|
13.0
|
13.1
|
13.0
|
13.0
|
13.0
|
13.1
|
13.2
|
13.2
|
13.1
|
13.1
|
13.1
|
3号机
|
13.0
|
13.0
|
13.0
|
13.0
|
12.9
|
13.0
|
13.1
|
13.1
|
13.2
|
13.1
|
13.1
|
13.1
|
4号机
|
13.0
|
13.0
|
13.1
|
13.0
|
13.0
|
13.0
|
13.1
|
13.1
|
13.2
|
13.1
|
13.0
|
13.1
|
结果分析:从测试结果可以看出2号机、3号机和4号机之间的最小误差值为零,最大误差值为0.1℃。
2、人体温度在线测试
在环境温度下,将一温度传感器和医用体温计分别放入测试者的左右腋窝下(紧贴)。每五分钟后取出体温计(传感器仍放在腋窝下),并记录标准值(体温计)和测量值;再放回体温计(放之前体温计要复原)。最后得如下数据表:
单位:℃
|
张三
|
李四
|
王二
|
标准值
|
测量值
|
误差
|
标准值
|
测量值
|
误差
|
标准值
|
测量值
|
误差
|
2号机
|
第一次
|
36.93
|
36.9
|
0.03
|
36.85
|
39.0
|
0.05
|
36.88
|
36.9
|
0.02
|
第二次
|
36.85
|
36.8
|
0.05
|
37.05
|
37.1
|
0.05
|
36.90
|
36.8
|
0.10
|
第三次
|
36.60
|
36.5
|
0.10
|
37.00
|
36.9
|
0.10
|
37.05
|
37.1
|
0.05
|
第四次
|
36.90
|
36.95
|
0.05
|
37.10
|
37.1
|
0.00
|
36.95
|
37.0
|
0.05
|
第五次
|
37.00
|
37.0
|
0.00
|
37.00
|
37.1
|
0.10
|
36.90
|
36.8
|
0.10
|
第六次
|
36.85
|
36.8
|
0.05
|
37.05
|
37.1
|
0.05
|
36.93
|
36.9
|
0.03
|
3号机
|
第一次
|
36.80
|
36.8
|
0.00
|
36.78
|
36.8
|
0.02
|
37.09
|
37.0
|
0.09
|
第二次
|
36.93
|
36.9
|
0.03
|
36.77
|
36.7
|
0.07
|
36.93
|
36.9
|
0.03
|
第三次
|
37.05
|
37.1
|
0.05
|
36.85
|
39.0
|
0.05
|
36.90
|
36.8
|
0.10
|
第四次
|
36.88
|
36.8
|
0.08
|
36.55
|
36.5
|
0.05
|
36.95
|
37.0
|
0.05
|
第五次
|
36.85
|
39.0
|
0.05
|
36.85
|
36.95
|
0.10
|
36.95
|
37.0
|
0.05
|
第六次
|
36.60
|
36.5
|
0.10
|
37.00
|
37.0
|
0.00
|
37.05
|
37.1
|
0.05
|
4号机
|
第一次
|
36.88
|
36.8
|
0.08
|
36.29
|
36.3
|
0.01
|
37.18
|
37.1
|
0.08
|
第二次
|
36.90
|
36.8
|
0.10
|
36.83
|
36.8
|
0.03
|
36.95
|
37.0
|
0.05
|
第三次
|
37.05
|
37.1
|
0.05
|
36.88
|
36.8
|
0.08
|
36.85
|
39.0
|
0.05
|
第四次
|
36.60
|
36.5
|
0.10
|
37.00
|
36.9
|
0.10
|
37.00
|
37.0
|
0.00
|
第五次
|
36.88
|
36.8
|
0.08
|
37.05
|
37.1
|
0.05
|
36.88
|
36.8
|
0.08
|
第六次
|
37.05
|
37.1
|
0.05
|
36.88
|
36.8
|
0.08
|
36.93
|
36.9
|
0.03
|
注:标准值小数点后第二位为估计值。测量值显示只有小数点后一位。
3、测试结果分析
根据以上测试结果可以看出,该系统已具备题目要求的基本功能指标。系统的温度误差≤0.1℃,体温显示、各种报警功能均能正常。
4、误差分析
系统仍具有一定的误差,定性分析主要是由于DS18B20在-10℃到+85℃之间的误差为±0.5℃[1],而要求精确到0.1℃,这就必须对温度误差进行补偿,经过对测量数据的反复分析,我们采用软件方法对误差进行补偿(系统误差、非线性),基本满足了设计要求。
注:经我们多次实验,测试时温度计和传感器都必须紧贴腋窝中心,否者将会影响测量结果。
五、结论
本系统应用广泛,例如,医院护士要多次给病人测量温度并要绘出该病人的体温变化曲线,此系统可代为完成,同时本系统的呼叫系统分三种状态呼叫,病人在有事或出现紧急情况时,分别能及时呼叫,医务人员可根据情况进行处理。将此系统稍加改动还可应用于其它很多地方。如某小区的呼叫系统,某生产地方的温度监控等等。
系统中很多可以改进,例如,显示可以采用液晶,在场合允许的情况下节约成本可以去掉下位机的显示等。
|