温湿度实时监测系统设计与实现

更新时间:2024-05-22 00:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

长春理工大学毕业设计

摘 要

本文设计了一个计算机控制的温度、湿度实时监测与报警系统,可应用于多种需要采集温湿度数据的场合。

数据采集器的核心部件为单片机,主要完成对其所连接传感器件的测量与控制以及与主机的通信等功能。各采集器以网络结点的方式挂接到 RS485 传输网络上,传输距离远,还可有效的抑制共模干扰。设计中的 RS232/RS458 转换器用来实现 RS485 总线网络与主机 RS232 串口通信的相互转换。

本设计实现了温度、湿度的实时监测系统,该系统不仅能实时采集各抽样点的温度值与湿度值,而且能够迅速处理,并存储结果以方便以后的对比研究。 关键词: 单总线 DS18B20 HIH3610 RS232/RS485

Abstract

A kind of real-time monitoring system for temperature and humidity controlled by computer is introduced in this paper, which is can be used for many applications.

The kernel of data collector is MCU, which takes charge of measurement, control and communication with the host controller. The RS485 transmission net is made up of the data collection station, which can transmit for remote distance and restrain common mode interference. The RS232/RS485 converter is used for conversion between RS485 and RS232, which is used by the host controller.

Design of the temperature and humidity of real-time monitoring system, The system can not only real-time acquisition of the sampling point temperature and humidity values, but also dealt with expeditiously, and store the results to facilitate future comparison.

Key words:1-Wire DS18B20 HIH3610 RS232/RS485

目 录

第一章 绪论 ................................................................. 1

1.1 引言 ................................................................ 1 1.2 温湿度检测发展方向 .................................................. 1 1.3 本文主要研究内容 .................................................... 2 第二章 系统的总体设计 ....................................................... 3

2.1 系统的总体结构 ...................................................... 3 2.2 系统的工作过程 ...................................................... 3 2.3 温度、湿度监测的组成 ................................................ 4 2.4 温湿度测量芯片 ...................................................... 4 2.5 测量数据的传输 ...................................................... 5 第三章 温度、湿度传感电路设计 ............................................... 6

3.1 温度传感器电路设计 .................................................. 6 3.2 湿度传感器电路设计 .................................................. 9 3.3 单总线系统 ......................................................... 13 第四章 温湿度数据采集电路设计 .............................................. 15

4.1 AT89C52单片机 ..................................................... 15 4.2 数据采集器的结构与电路设计 ......................................... 15 4.3 数据采集系统的软件设计 ............................................. 18 4.4 RS232/RS485 转换器 ................................................. 21 结 论 ................................................................... 24 参考文献 ................................................................... 25 致 谢 ................................................................... 26 附 录 ................................................................... 27

I

第一章 绪论

1.1 引言

温度、湿度监测在人们现实生活生产中应用已日渐广泛,在发电厂、纺织、食品、医药、仓库、农业大棚等众多的应用场所,对温度、湿度参量的要求都非常严格,因此能否有效对这些领域的温、湿度数据进行实时监测和控制是一个必须解决的重要前提。

在现代工业现场,随着科技的进步和自动化水平的提高,电缆的用量越来越大,电缆的安全保护已成为不可忽视的问题。从国内外有关电缆火灾的统计资料看,许多电缆火灾是由电缆头击穿绝缘引起的。因此为电缆配置线温度监测系统, 对于电缆接头多,电缆密集的场所,就显得尤为重要。

粮食是人类生存的必需品,温度与湿度是保存好粮食的先决条件,我国的公粮现均集中存放在国家或地方的仓库中,最大粮库方圆几公里,仓库库房数为数十个,测点可达数千个。按照国家粮食保护法则,必须定期抽样检查各点的粮食温度与湿度,以确保粮食的存储质量。

档案馆中的档案资料同样会受到外界空气温湿度变化的影响,纸张纤维热胀冷缩,使强度降低,湿度过大会使霉菌和害虫滋长,以致造成资料质变。

本设计以上述问题为出发点,设计实现了温度、湿度的实时监测系统,该系统不仅能实时采集各抽样点的温度值与湿度值,而且能够迅速处理,将数据结果方便的显示给用户,并存储结果以方便以后的对比研究。

1.2 温湿度检测发展方向

温度传感器的种类很多,测温范围也很宽,高可以测量高达几千度,低也可以测量接近绝对零度,但在测量精度、稳定性、抗干扰等方面仍存在很多问题。如铂电阻温度计,虽然其测量范围宽,精度高但抗震动能力差;热敏电阻温度计灵敏度高、体积小、响应速度快但稳定性较差;热电偶温度传感器缺点是灵敏度低;因此进一步改进敏感元件的制作工艺及结构,充分利用微处理技术发展数字化、集成化和自动化的温度传感器,同时探索新的敏感机理,寻求新型温度敏感元件也是温度传感器的发展方向之一。

湿敏传感器在工业、农业、气象、医疗以及日常生活等方面都得到了广泛的应用,特别是随着科学技术的发展,对于湿度的检测和控制越来越受到人们的重视并进行了大量的研制工作。通常,理想的湿敏传感器的特性要求是:适合于在宽温、湿范围内使用,测量

1

精度要高;使用寿命长,稳定性好;响应速度快,湿滞回差小,重现性好;灵敏度高,线性好,温度系数小;制造工艺简单,易于批量生产;转换电路简单,成本低;抗腐蚀,耐低温和高温[6]特性等回。湿敏传感器正从简单的湿敏元件向集成化、智能化、多参数检测的方向迅速发展,为开发新一代湿度测控系统创造了有利条件,也将湿度测量技术提高到新的水平。

1.3 本文主要研究内容

本论文的研究对象是计算机控制的温度、湿度实时监测与报警系统的软硬件设计,它可应用于多种需要采集温湿度数据的场合。

系统的技术指标:

1)一台主机可最多管理 32 台数据采集器,若增设中继器,可使系统扩展大于 32台采集器;

2)各温湿度测试点与其所属采集器的最远距离不超过 150 米; 3)温度测量:

(1)测量范围:-55℃ ~+125 ℃;

(2)测量精度:±0.5℃(-10℃ ~+85 ℃);

±2.0℃(-55℃ ~+125 ℃);

(3)分辨率: 0.1℃; 4)湿度测量:

(1)测量范围:1%~99%RH; (2)测量精度:±5%RH(25℃);

2

第二章 系统的总体设计

2.1 系统的总体结构

如图 2.1 所示,整个监测系统从结构上分为三层:第一层是由工控机等组成的用户监

测层作为上位机;第二层是由单片机 AT89C52 构成温湿度采集器作为下位机;最底层是由 DS18B20 构成的温度传感器结点和 DS2438 与 HIH3610 构成的湿度传感器结点。其中温度结点和湿度结点均为满足 1-Wire 通信规则。上位机与下位机之间的通信为总线结构的 RS485 通信网,下位机与数字化结点之间的通信由 1-Wire 网络完成。

报警器UPS打印机RS485网络RS232RS232/RS485转换器采集器1采集器2采集器a采集器a+1采集器n测试点11测试点12测试点1n测试点21测试点nn单总线网络

图2.1系统组成结构图

2.2 系统的工作过程

系统中每台采集器都有一个唯一且固定的地址编码。由于系统的主机与下位机之间采用半双工的 RS485 通信标准,所以主机采用问答式的通信方式,通过不同的地址编码逐一同下层的采集器通信。采集器统一管理的命令包括:采集器搜索底层传感器的 64 位 ROM 序列码,采集器启动温度传感器和湿度传感器的数据转换,采集器上传采集到的温湿度数据,主机与各采集器之间的通信通道校验等。当采集回来的温湿度值超过其对应测

3

试点的报警上下限时,系统给出报警信号。

2.3 温度、湿度监测的组成

该系统的构成大体上可以分为三部分:一是温湿度参数的测量转换,二是测量数据的传输,三是数据的处理。其系统框图如图 2.2 所示。

数据采集模块RS232/RS485转换模块主机报警模块 图2.2 系统组成原理图

2.4 温湿度测量芯片

该部分是系统的主要环节,由原理图中温湿度采集模块来完成数据的获取与处理,在系统中将各温湿度采集模块称为数据采集器。温度传感器的种类很多,根据其输出方式及接口方式的不同,大体可以分为模拟温度传感器和数字温度传感器。模拟温度传感器输出的模拟信号,必须经过专门的接口电路转换成数字信号后才能由微处理器进行处理。数字温度传感器输出的数字信号,一般只需少量外部元器件就可直接送至微处理器进行处理。

美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持单总线接口的温度传感器。单总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。新一代的 DS18B20 体积更小、更经济、更灵活,而且由于芯片送出的温度信号是数字信号,因此省去了外部 A/D 转换,简化了硬件电路。

湿度测量方法也是多种多样,但是与温度相比,它是比较难于测量的。其主要原因是,由于空气中所含的水蒸气相对空气来说是微量的,而且水蒸气对各种物质的影响也是错综复杂的。一直以来被广泛使用的湿度传感器从原理上主要分为吸附型和非吸附型,水分子吸附在物体表面和渗入物体内部后,直接影响物体的电气物理性能,利用这一特性可以制成多种吸附型湿度传感器。

近年来,国内外在湿度传感器研发领域取得了长足进步。湿度传感器正从简单的湿敏元件向集成化、智能化、多参数检测的方向迅速发展,为开发新一代湿度、温度监测系统创造了有利条件,也将湿度测量技术提高到新的水平。其中由 Honeywell 公司开发生产的线性电压输出式集成湿度传感器,其典型产品有 HIH3605/3610、HM1500/1520,主要特点是采用恒压供电,内置放大电路,能输出与相对湿度呈比例关系的伏特级电压信号,响应速度快,重复性好,抗污染能力强。

4

2.5 测量数据的传输

各数据采集器在得到温湿度数据后,加以简单处理,然后将其传送给主机,这之间的数据可靠传送是该系统中另一个要解决的关键问题。由于各个数据采集器距离主机比较远,一般要上百米,因此数据传输实际是一个远程通信系统。数据在上传过程中往往易受干扰,干扰源主要有三个方面:一是现场用电设备产生的电磁干扰;二是电源线具有的 50Hz 工频干扰;三是各采集器之间的公共接地阻抗产生的干扰。将 RS232 转换成进行多点通信的 RS485 方式被应用到该系统中。RS485 具有带负载能力强,传输距离远(可达 1200 米),功耗小,传输速率高(最高可达 1Mbps)等特点。

5

第三章 温度、湿度传感电路设计

该系统的特点之一是测量温湿度数据的传感器均采用 Dallas 公司的单总线器件,单总线器件的数据传输严格遵守单总线协议。本章首先介绍由单总线温度传感器DS18B20 组成的温度采集结点,然后设计与实现了由单总线 A/D 转换器 DS2438 与湿度传感器HIH3610 构成的湿度采集结点,该湿度采集结点同样遵守单总线协议。最后介绍了单总线系统。

3.1 温度传感器电路设计

系统中温度测试点的数据采集DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。

3.1.1 DS18B20功能特点

(1)独特的单线接口方式,只需一个接口引脚即可通信; (2)每一个 DS18B20 都有一个唯一的 64 位 ROM 序列码; (3)在使用中不需要任何外围元件;

(4)可用数据线供电,电压范围:+3.0V~+5.5 V;

(5)测温范围:-55℃ ~+125 ℃,在-10℃~+85℃范围内精度为±0.5℃,分辨率 0.0625℃。等效的华氏温度范围是-67°F~+257°F;

(6)通过编程可实现 9~12 位的数字读数方式。温度转换成 12 位数字信号所需时间最长为 750ms,而在 9 位分辩模式工作时仅需 93.75ms; (7)用户可自设定非易失性的报警上下限值;

(8)告警搜索命令可识别和定位那些超过报警限值的 DS18B20;

(9)支持多点组网功能,多个 DS18B20 可以并联在惟一的三线上,实现多点测温。 (10)电源极性接反时,DS18B20 不会因发热而烧毁,但不能正常工作。 3.1.2 DS18B20内部结构

DS18B20 采用 3 引脚 TO-92 小体积封装,其内部结构和管脚排列如图3-1 所示,主要由 4 部分组成:64 位 ROM 序列码、温度传感器、非易失性的温度报警触发器 TH 和 TL、配置寄存器。

6

储存器和控制器I/O温度灵敏原件64位ROM和单电源检测总线接口8位CRC生成器图3.1(a)DS18B20的内部结构

高速缓存储存器低温触发器TL高温触发器TH配置寄存器UDD

DS18B201 2 3GNDI/OUDD图3.1(b)DS18B20的管脚排列

3.1.3 DS18B20工作原理

根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,当DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。

当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第 0,1 字节。主机可通过单线接口读到该数据。

DS18B20测温原理如图3.2所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55℃所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1

7

重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2.2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

斜率累加器预置比较低温度系数晶振计数器1预置加1LSB置位/清除=0温度寄存器高温度系数晶振计数器2=0停止

图3.2 DS18B20测温原理图

3.1.4 DS18B20供电方式

外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。

这种方法的优点是在 DQ 线上不要求强的上拉,总线上主机不需要连接其它的外围器件便在温度变换期间使总线保持高电平,这样也允许在变换期间其它数据在单总线上传送。

+3~+5.5vMicro-processor外接电源+3~+5.5vDS18B20 GND DQ VDD单总线4.7K接其它的一线装置

图3.3 外部电源工作方式

此外,在单总线上可以并联多个 DS18B20,而且如果它们全部采用外部电源工作方式,那么通过发出相应的命令便可以同时完成温度变换。如图3.4所示。

8

VCCDS18B20DS18B20DS18B20Micro-μprocessor4.7K GND DQ VDDGND DQ VDDGND DQ VDDVCCVCCVCC

图3.4 外部供电方式的多点测温电路图

3.2 湿度传感器电路设计 3.2.1湿度传感器HIH3610功能简介

该系统的湿度检测采用了美国 Honeywell 公司生产的相对湿度传感器 HIH3610。HIH3610 的管脚排列如图3.5所示,三管脚的外部结构使得其应用起来非常方便。其线性的电压输出可使器件直接与控制器或其它器件相连,驱动电流小使它适合于电池供电,用DS2438检测电池的电量和湿度的A\\D转换。

HIH-36101: 供电电源2:电压输出3:地1 2 3

图3.5 HIH3610 的管脚排列

3.2.2智能电池监视器 DS2438

DS2438是为了解决便携式电子产品电池工作状态的实时监测而推出的,并且可以测量环境温度,实现电源电压的校正及环境温度补偿。

采用 SOIC 表面贴装封装形式,其外形及引脚排列如图3.6所示。

9

DS2438Z,DS2438AZGND1 8DQGND:接地VSENS+:电源电流监视输入(+)VSENS+VSENS-2 7NCVSENS-:电源电流监视输入(-)VAD3 6NCVDDNCVAD4 5VDDDQ:通用A/D输入端:供电电压(2.4~10V):未定义:数据输入/输出8-Pin SOIC(150-mil)

图3.6 DS2438 的外形及管脚排列图

DS2438主要由单总线接口、电压 A/D 转换器、电流 A/D转换器、温度传感器、时钟电路、40 字节的 EEPROM 及与上述硬件相关的寄存器组成。其中的电压 A/D 转换器的输入,可编程为由 VDD 电源端输入或 VAD 输入端输入,以满足VDD 电源端及外部输入模拟量 VAD 的测量要求。

DS2438 的存储空间分为8页,页地址为 00~07H,每页 8 个字节,共 64 个字节,每一页都有对应的高速暂存页,因此存储器包括 RAM 高速暂存器和 SRAM/EEPROM两部分,这两部分是镜像关系。高速暂存器可确保在用单总线通讯时数据能够保持一致性,主机对 DS2438 进行数据读/写时只能对高速暂存器进行操作。存储空间内包括一些特殊功能寄存器和用户可使用的存储单元。

(1)DS2438与传感器接口

本设计中利用DS2438来同时完成对环境温度的测量、单总线电源电压的测量及湿度传感器输出电压值的测量。由图3.9可知,电源电路由VD1、VD2及电容C1构成。在总线空闲时为DS2438和HIH3610供电。DS2438的5脚VDD端的电位即是HIH3610的电源电压。通过编程DS2438内部的状态/结构寄存器的“AD”位,使二通道电压A/D转换器的输入选择为VDD端,可完成HIH3610电源电压测量功能。通过编程状态/结构寄存器的“AD”位,使二通道电压A/D转换器的输入选择为VAD端,即HIH3610的湿度电压值输出端可完成湿度值测量功能,环境温度的测量可由DS2438内部的温度传感器完成,因此,使用1片DS2438即可完成湿度值的A/D转换,环境温度的测量和电池电压的测量工作。

(2)电池电压、温度的测量及剩余电量的监测

由于DS2438内部有A/D转换器和数字温度传感器,要获得电池的电压、温度只需要由单片机对DS2438发出采集电压、温度的控制命令,然后等待其采集完毕并自动将电压、温度测量值存入相对应的寄存器后,再由单片机读取寄存器的内容即可。在读取寄存器值时,若单片机与DS2438之间的数据线为低电平,则表明DS2438正在进行电压、温度转换,此时不能读取数据,只有当数据线为高电平时,才能正确的读取数据。

10

电池的剩余电量可用电流积分累加(ICA)寄存器的值求得。ICA寄存器的值是由DS2438定时自动测量电池电流后更改的,无需对其进行控制,只需单片机读出ICA寄存器的值,然后将读出的值代入公式(3-1),便可得到电池的剩余电量。 剩余电量=ICA/(2048×RSENS) 其中RSENS的单位为Ω 。 (3-1)

(3)DS2438功能的软件实现

为了满足监测的实时性,本系统单片机采用定时中断的方式访问DS2438,进行电池参数采集。中断服务程序流程如图3.7所示。

开始程序初始化设置单片机内部计数器初值开启定时器和定时中断定时中断服务程序主程序及其它功能模块结束

图3.7 中断服务程序流程图

首先设置单片机的计数器为定时方式,开启计数器,定时长短可随需要灵活设定。然后单片机运行其它程序,等待定时中断的到来。定时中断发生之后进入中断服务程序,调用DS2438的控制操作程序,进行数据采集,并将采集来的数据进行处理,最后重新初始化定时中断,返回。

DS2438与单片机进行数据通讯时仅用一根数据线,因此必须严格按照芯片的读写时序要求来编写程序,这样才能保证数据的正确读写。

(4)湿度数据的温度补偿

如图 3.9所示,由 HIH3610 输出的线性模拟电压信号作为 DS2438 电压 A/D 转换的输入信号,通过对 DS2438 发送电压转换命令,该模拟电压信号对应的数字信息便存储在 DS2438 的电压寄存器中,主机再发送读暂存存储器命令即可以从单总线上将数字电压信息读回。器件 HIH3610 的电压输出对应湿度的通用关系为:

Vout=Vsupply{0.0062(sensorRH)+0.16} (3-2)

其中:Vout是从 DS2438 DQ 端测得的电压值,Vsupply是实测供电电压值,sensorRH 是环境温度在 25℃时的相对湿度。

11

4.54.03.5输出电压(VDC)4.073.903.500℃3.02.52.01.510.50.02025℃85℃0.8406080100

相对湿度

图3.8 HIH3610 输出电压与相对湿度的关系曲线

如图3.8,HIH3610 输出电压与相对湿度的关系曲线所示,HIH3610 测量的湿度值还与环境温度有关,故应进行温度补偿,温度补偿关系为:

RH=(sensorRH)/(1.0546-0.00216T) (3-3) 其中:RH 为经过温度补偿的湿度值,T 为实际环境温度值(摄氏度)。

因此为获得准确的湿度测量值,还应在湿度测量的同时测量环境温度和供电电压值。

3.2.3单总线数字湿度传感器外围电路设计

由于系统中采用的 HIH3610 湿度传感器,其输出量仍然是模拟电压量,因此在本系统的设计过程中为了实现全数字化的单总线网络,使用 DALLAS 公司单总线器件 DS2438配合 HIH3610 设计一种单总线湿度传感器,使之可以直接挂接到单总线上。

挂在单总线上的器件必须满足以下几方面的要求:

⑴低功耗:单总线网络中的器件一般是从总线上窃取电源,不用本地电源供电,因此要求单总线器件必须满足低功耗的特性。

⑵具有唯一的身份码:单总线是通过身份码来识别挂在同一总线上的不同器件的,因此要求每个单总线器件均具有全球唯一的 64 位 ROM 识别码。

⑶必须满足单总线器件的时序要求。

Dallas 公司生产的 DS2438 满足上述要求。利用 DS2438 的 A/D 转换功能,设计出的单总线数字湿度传感器的原理图如图3.9所示。

12

vccU1D1DATAVddDQ VadGNDD247uFGNDDS2438U2 VCCIN1- IN1+OUT1 VeeLM358U3 VddVout GNDHIH3610

图3.9 单总线湿度传感器原理图

由 HIH3610 输出的线性模拟电压信号作为 DS2438 电压 A/D 转换的输入信号,通过对 DS2438 发送电压转换命令,该模拟电压信号对应的数字信息便存储在 DS2438 的电压寄存器中,主机再发送读暂存存储器命令即可以从单总线上将数字电压信息读回。实际应用过程中在 HIH3610 的VOUT 和 DS2438 的 VAD 之间加一个运算放大器 LM358,该芯片在这里起电压跟随的作用。

3.3 单总线系统

单总线(1-wire)技术是近年来由美国 Dallas 半导体公司研发的一种总线技术。与 SPI、I2C 等多种标准串行数据通信方式不同,它采用单根信号线传输时钟和数据,以其具有的节约 I/O 资源、结构简单、成本低廉、便于总线扩展和维护等优点越来越多的被广泛应用于民用电器、工业控制领域。

单总线适用于单个主机(master)控制一个或多个从机(slave)设备的系统。当只有一个从机设备时,系统可按单节点系统操作,当有多个从机设备时,系统可按多节点系统操作。其中主机可以是微控制器,从机为单总线器件。在 Dallas 的产品中,这类单总线器件有温度传感器 、一线存储器、A/D 转换器、可寻址开关等。与其它如并行、串行及专用总线相比,单总线突出的特点是主机控制器件的地址线、数据线和控制线合成为一条信号线与从机设备进行双向的数据交换。所以在有多路多个测控对象时,系统的布线简单、方便。但是较小的硬件开销需要相对复杂的软件设计进行补偿。

本数据采集系统即为单总线系统,系统中的主机为单片机,从机为单总线器件。 3.3.1单总线协议

经过单线接口访问单总线器件有严格的单总线命令序列如下: 1)初始化 2)ROM 操作命令

13

空间。GET_ADDR 子程序中为每一口线都实现了以上三部分操作。

主单片机获得某一口线所连接单总线器件的温度、湿度数据,其中在采集温度数据的子程序中发送快速搜索命令字节(CCH)的目的是要求所有连接到该口线的单总线器件均响应接下来的存储器操作类命令——温度转换(44H)。当要读回某温度传感器的数据时,在发送完匹配 ROM 命令之后,需要把该器件的 64 位序列码放到该口线上,之后该温度传感器获得与主单片机进行通信的权利,在主单片机发送完读 RAM 命令之后,该传感器即把 9 个字节的数据按照低位字节在前、低位比特在前的次序依次串行传送给主单片机。同样的操作也体现在采集湿度数据的子程序中,此外在湿度采集中主单片机发送的存储器类操作命令都是双字节命令,其中第二个字节是对 DS2438 哪一页存储器进行定位。由两个子程序的流程图可以看出,采集湿度数据的过程更复杂一些,主要原因是作为湿度单总线器件的访问对象 DS2438 自身具有较多的功能,硬件上比单一作用的温度传感器 DS18B20要复杂的多,想要通过单总线来有效的访问 DS2438,必须增加软件上的开销。

主单片机为单总线器件传送回来的温湿度数据保留的存储空间为 80H~FFH,共 128个存储单元,其中为每一个传感器分配 4 个字节的存储空间。主单片机读回温度数据时对每一个 DS18B20 的 9 字节数据先暂存在 30H~38H 单元,校验正确之后,将其中的第0,1 字节的温度数据存储到为其分配 4 字节空间的后两个字节,将其中的第 2,3 字节的编号信息存储到 4 字节空间的前两个字节。单片机读回湿度数据时,对每一个 DS2438的第 0 页数据及其 CRC 校验共 9 个字节的信息先暂存到 40H~48H 单元,校验正确后,再读该 DS2438 的第 7 页的第 0 个字节,即该 DS2438 的编号信息并将其存储到 47H 单元,然后将 40H~48H 中的第 3,4 字节表示湿度的数字电压值存储到为其分配 4 字节空间的后两个字节,并在 4 字节空间的第 1 个字节直接写 80H,把 47H 单元的编号信息存储到第 2 个字节。

19

开始初始化搜索地址并储存监听命令字节1收到字节1是监听命令字节2否否否收到该采集地址是收到广播地址是监听命令字节3,4命令包CRC校验正确是搜索地址命令是否广播地址是搜索地址并存储否否采集数据命令是 否广播地址是采集温湿度数据否 数据包返回命令是返回数据包否返回确认包返回确认包通道检测命令是否搜索地址并存储采集温湿度数据返回确认包返回确认包返回确认包图4.5主程序流程图

20

4.4 RS232/RS485 转换器

RS232 作为美国电子工业协会(EIA)正式公布的一种串行总线标准,用来实现计算机与计算机、计算机与外设之间的数据通讯,在异步串行通信中得到了广泛的应用。但是该标准规定驱动器允许有 2500pF 的电容负载,通信距离将受此电容的限制,另外RS232 属于单端信号传送,存在共地噪声和不能抑制的共模干扰。因此 RS232 在通讯中所暴露的缺点为传输距离短,其最大的传输距离为 15 米。本系统中实现对各数据采集器进行统一管理与处理的主机,只有两个 RS232 串行接口,即 COM1 和 COM2,要实现主机与各个采集器构成的 RS485 总线网络的正常通信,需要一个性能可靠的 RS232 至 RS485 转换接口。这里面需要两组全双工串口,W77E58可以实现改功能。

4.4.1 W77E58简介

W77E58是与 MCS51 系列单片机兼容的可多次编程的快速微处理器,在它内部集成有 32K 的可重复编程的 FLASH ROM、256 字节的片内存储器、1K 的用 MOVX 指令访问的 SRAM、可编程的看门狗定时器、3 个 16 位定时器、2 个增强型的全双工串行口、片内 RC 振荡器、双 16 位数据指针等诸多功能。

和 80C52 相比,W77E58 除了具有与 80C52 相同的全双工串口外,又增加了一个全双工串口,其外部引脚 RXD1、TXD1 和 P1.2、P1.3 复用。这两个串口除了具有同原有80C52 的串口相同的功能外,还增加了两个增强型的特点,即多机通信自动地址识别和自动帧错误检测功能。

W77E58 新增加的功能都是用普通 80C52 所保留的特殊功能寄存器实现的,不与普通 80C52 的资源产生任何冲突,因此 W77E58 可以直接用在已设计好的 80C52 系统中,而为原有系统编写的程序几乎不作任何改动,系统就可正常工作。W77E58 的封装也完全兼容于 80C52,它所增加的与硬件有关的功能都是复用 80C52 的 P1 口,并且 W77E58的 PLCC/QFP 封装比普通的 8051 多一组 4 位的 I/O 口。

4.4.2 RS232/RS485转换器的实现

RS232/RS485 转换器的结构框图如图4.6所示。

由图 4.6 可以看出,RS232/RS485 转换器由单片机 W77E58、与 RS485 总线网络的通信接口电路以及与 RS232 串口标准的通信接口电路三部分组成。单片机 W77E58 主要完成信息的接收与发送(包括来自主机的控制信息和采集器的数据信息),利用W77E58的两个增强型全双工串口使其充当了一个信息中转站的角色。

21

TXD1RS-485驱动高速光耦RXD1ICL232W77E58TXDRXDT1IN T1OUTR1OUT R1INRS232RXDTXD

图4.6 RS232/RS485转换电路结构框图

W77E58 的串口 0 与主机的 RS232 串口进行通信,中间由 ICL232 完成 TTL 电平和RS232 电平的转换。W77E58 串口 0 的发送端与主机 RS232 串口的接受端相连,它的接受端与主机 RS232 串口的发送端相连。程序流程如图4.7所示。

开始比较为串口0分配的两个指针发送串口0区域内的数据到串口1并变动相应的指针两指针重合是比较为串口1分配的两个指针否是两指针重合否发送串口1区内的数据到串口0并变动相应的指针

图4.7 W77E58主程序流程图

W77E58 的串口 1 与由各个数据采集器构成的 RS485 总线网络进行通信,这里使用的 RS485 总线驱动芯片仍然是 SN75176,考虑到来自 RS485 平衡传输线上的有效信号中有可能引入雷击、感应电等干扰信号,在 W77E58 和 SN75176 之间采用了高速光偶 6N136。

单片机 W77E58 以中断的方式(通过中断处理程序实现)接收来自主机和各个采集

22

器的数据信息,发送数据部分以非中断方式而被包含在主程序段中。串口 0 的中断处理程序,接收来自主机的数据信息,串口 1 的中断处理程序,接收来自 RS485 总线上(各个采集器)的数据信息。

主程序段实现的功能是将串口0接收到的数据经串口1发送出去,将串口1接收到的数据经串口0发送出去。程序中为了实现该操作,为串口0和串口1分别分配了一个循环型的存储区域(40H~4FH)和(50H~5FH),每个存储区域设定两个指针POIN0(POIN1)和TIME0(TIME1),其中一个指针(POIN0、POIN1)用来记录当前接收到的字节在存储区域内的地址,另外一个指针(TIME0、TIME1)用来记录当前发送出去的字节在存储区域内的地址。初始化时每个串口包含的这两个指针是重合的。在中断处理程序中每接收到一个字节时,对应串口的指针POIN0或POIN1增加1。在主程序段中,通过比较TIME0(TIME1)和POIN0(POIN1)两指针是否重合来判定循环存储区域内的有效数据的发送。如果两指针未能重合则表示仍然存在未发送的数据,这时发送一个字节数据的同时将指针TIME0、TIME1增加1,然后进入下一次的判定,直到把所有未发送出去的有效数据发送完毕为止,此时两指针又一次重合在一起。

23

开始初始化发送快捷搜索ROM命令字节(CCH)返送温度转换命令字节(44H)初始化发送匹配ROM命令(55H)发送64位ROM序列码发送读ROM命令字节(BEH)读回9个字节的数据并进行CRC校验否校验正确是将温度数据及编码信息存储到相应的储存区域结束

获得温度数据子程序流程图

29

开始初始化初始化发送匹配ROM命令字节(55H)发送匹配ROM命令字节(55H)发送64位ROM序列码发送64位ROM序列码发送读暂存命令字节(BE00H)发送写暂存命令字节(4E00H)读回九个字节的数据并进行CRC校验写状态/配置寄存器的值为(07H)校验正确是初始化否初始化发送匹配ROM命令字节(55H)发送匹配ROM命令字节(55H)发送64位ROM序列码发送64位ROM序列码发送复制暂存命令字节(4800H)发送重调数据命令字节B807H初始化初始化发送匹配ROM命令字节(55H)发送匹配ROM命令字节(55H)发送64位ROM序列码发送64位ROM序列码发送电压转换命令字节(B4H)发送读暂存命令字节(BE00H)初始化读回器件编码发送匹配ROM命令字节(55H)将湿度数据以及比编码信息存储到相应的存储区域发送64位ROM序列码结束 发送重调数据命令字节B800H

获得湿度数据子程序流程图

30

本文来源:https://www.bwwdw.com/article/1d27.html

Top