引言

在许多传统行业中,多路高精度温度采集系统是不可或缺的。电厂、石化行业、钢铁厂以及制药厂等企业生产过程中,普遍存在着需要进行温度测量的场合。利用单片机和温度传感器组成的专用测温系统由于具有结构简单、工作可靠、价格低廉的优势,而得到了广泛的应用。应用在电力系统中,当电力机房中的控制柜、电缆、电容、开关过载或损坏时,都会产生巨大的热量如不及时发现处理,往往会导致事故或火灾的发生。


系统方案

本装置结构(图 1)可以大致分为:采集部分、供电电源系统、通讯部分。采集部分是通过主核心芯片 AT89S52 单片机和 DALLAS 最新单线式数字温度传感器 DS18B20 组建采集网络完成。DS18B20 采集温度测量范围为 -55~+125℃,多个 DS18B20 可以并联在唯一的三线上,实现多点测温,可节省大量的引线和逻辑电路。DS18B20 非常适用于远距离多点温度检测系统,通过两种通讯方式实时上传温度数据,这两种通讯方式为 RS485 通讯和 RS422 通讯,在 RS485 通讯中用 ADI 公司的串行 RS485 接口芯片 ADM2483,它是双电源供电,输出和输入完全隔离的 RS485 芯片,可以加强对有效信号的接受与发送,增加了远距离通讯的可靠性。而 RS422 通讯实现了全双工的通讯机制,在另一端采用光耦隔离的方式,将电源和信号隔离,增加了信息传输的正确率和抗干扰性,保证了信息的完整性。

 

系统硬件设计

采集电路

原文位置  以 AT89S52 单片机为核心,外置看门狗 X5045 和一片 11.0592MHz 晶振构成最小单片机系统,应用 AT89S52 单片机的 I/O 口双向传输数据的功能,P3.4 与 DS18B20 一线总线连接,实现对 DS18B20 进行读取和写入操作,在总线上加入一个上拉电阻,这个电阻可以根据加入网络 DS18B20 的多少和采集距离的长短来改变电阻阻值。利用 P3.0 和 P3.1 特殊功能 I/O 口定义,做为通讯的收发器。P2.0 应用 AMD2483 的使能控制引脚。在此应用 JTAG 标准仿真接口设计,通过 JTAG 接口将程序下载到 AT89S52 芯片中。实现操作功能。采集电路如图 2 所示。

 

 

电源

原文位置  在进行系统运行时,不可缺少的就是电源的稳定性和可靠性,AMS1117-5.0 具有限流和过热自动关断保护功能,其内置的带隙基准可以保证输出电压的误差精度。在输出端需要连接一个至少 10mf 的钽电解电容用于提高输出端的瞬态响应和稳定性。主要为单片机及周围电路供电。B0505S-W5 是金升阳公司的一款专门针对线路板上分布式电源系统中需要产生一组与输入电源隔离的电源的应用场合而设计的,在此为内部隔离的 ADM2483 提供隔离电源和 MAX488 通讯提供隔离电源。从而使信号的传输更加可靠。电源电路示于图 3。

 

 

通讯

原文位置  在通讯中分为 RS485 通讯和 RS422 通讯。RS485 通讯采用的 ADM2483 是 ADI 公司的串行 RS485 接口芯片,采用双电源供电,输出和输入完全隔离的 RS485 芯片,可以加强对有效信号的接收与发送,增加了远距离通讯的可靠性。配合 555 的定时器的功能,EA_485 在通常情况下处于低电平接收状态,当 TXD_IN 有信号输出时使能 EA_485 变为高电平,将数据发送出去。当发完这段数据时 EA_485 自动回到低电平接收状态,发送数据这段时间是由 R5×C5 决定的,能够确定数据传输的完整性;RS422 通讯上位机通过 A、B 端输入命令,这是 RS422 接收器端口,Y、Z 接收命令,这是 RS422 的发送器端口。在 RS422 的另一端采用光耦隔离的方式,将电源和信号隔离,增加了信息传输的正确率和抗干扰性,保证了信息的完整性。LED、LED1 分别指示信息接收指示和发送指示。可以直观的监测信息的传输过程。通讯电路如图 4 所示。

 

系统软件设计

在多路高精度测温系统中,测温单元能独立进行数据采集与上位机的数据通讯,向上位机(主机)发送测量到的温度数据,接收上位机发来控制指令,进行传输数据,与上位机通讯的指令采用定长的 CDT 代码指令,并有 CRC 纠错以保证数据正确传输。软件流程图如图 5 所示。

 

在多点温度测量系统中,单总线数字温度传感器(例如 DS18B20)因其体积小、构成的系统结构简单等优点,应用越来越广泛。每一个数字温度传感器内均有唯一的 64 位序列号(最低 8 位是产品代码,其后 48 位是器件序列号,最后 8 位是前 56 位循环冗余校验码),只有获得该序列号后才可能对其进行操作,也才能在多传感器系统中将它们一一识别。由于传感器序列号的最低 8 位为产品代号,“需要的位值”可按对应的值给出,关键是其后的 48 位器件序列号的识别。这里采用了“完全二叉树”的排序思想(图 6)。具体思路:设在 K 位首次发生数据位冲突,这时所有的传感器分成两类,即该位为 1 的传感器和为 0 的传感器。“需要的位值”给 1,K 位为 1 的传感器仍挂接在总线上。若接下来 K+M、K+N 位发生数据位冲突,“需要的位值”仍分别给 1,获得一个序列号。下一个过程在 K、K+M 位“需要的位值”仍给 1,但在 K+N 位则给 0,获得另一个传感器的序列号。第三个过程在 K 位仍给 1,而在 K+M 位给 0,在这条支路上继续识别。K 位为 1 的传感器的序列号识别完后,回到 K 位时,“需要的位值”给 0,按同样的方法识别该支路的传感器序列号。按此思路,多个传感器的序列号只需要分别识别一次。

 

建立关系表后,编制好程序,系统可投入运行。读取每个测温点的温度时,需要用到“符合”ROM 命令,该命令要求将关系表中的序列号取出送到总线上,只有序列号与之相符的传感器才挂接在总线上,可读取其温度。

 

综上所述,用简单的硬件以及编程方法自动建立关系表,在单总线多点温度测量系统中实现了数字温度传感器的自动识别,大大有利于系统的调试、维护,减少维护工作量,并解决了过去维护工作必须由专业人员来完成,而不是由运行人员来完成的不便。

 

结语

此装置采用 51 系列单片机作为主 CPU,成本低,通讯可靠性好,实时性高,已经完成样机试制,通过相关测试,并投入生产。本产品已经应用在电力系统监测蓄电池周围八路各点温度,并上传给后台。运行稳定,取得了良好的社会效益和经济效益。