引言
在许多传统行业中,多路高精度温度采集系统是不可或缺的。电厂、石化行业、钢铁厂以及制药厂等企业生产过程中,普遍存在着需要进行温度测量的场合。利用单片机和温度传感器组成的专用测温系统由于具有结构简单、工作可靠、价格低廉的优势,而得到了广泛的应用。应用在电力系统中,当电力机房中的控制柜、电缆、电容、开关过载或损坏时,都会产生巨大的热量如不及时发现处理,往往会导致事故或火灾的发生。
系统方案
本装置结构(图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,成本低,通讯可靠性好,实时性高,已经完成样机试制,通过相关测试,并投入生产。本产品已经应用在电力系统监测蓄电池周围八路各点温度,并上传给后台。运行稳定,取得了良好的社会效益和经济效益。