一种温湿度采集模块的设计及应用研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种温湿度采集模块的设计及应用研究

黎洪生,吕念

武汉理工大学自动化学院,武汉(430070)

E-mail: lvnian605516@

摘 要: 为了实现环境温湿度的精确控制必须进行多点测量。基于这一问题,本文利用P89LPC922单片机同时结合数字温湿度传感器芯片SHT11设计了一种具有现场独立显示和远距离通信功能的温湿度采集模块,介绍了模快的软硬件设计、通讯协议和几种典型工作方式。实验证明,该模块大大简化了系统软硬件设计,非常适合应用于现代化环境温湿度监测群。

关键词: 温湿度采集模块; P89LPC922;SHT11

1. 引言

随着社会经济的发展和科学技术的不断进步,许多情况下都需要对环境的温湿度进行精确控制。过去常用热敏电阻和湿敏电容来分别测量温度和湿度,这种温湿度测量系统在测量点比较少而且精度要求不高的场合还是可以胜任的,但在多点测量和精度要求比较高的场合其缺点就更为突出,因为当同时涉及到两个参数的检测时每一个测量点都必须使用两个独立的传感器和独立的数据初步处理电路,这将使多点测量系统设计的复杂性大大增加。对于此类系统的设计,若能设计一种集温湿度采集于一体同时能提供通信和显示接口的模块,则会使测量系统设计大大简化。基于上述想法本文设计了一种温湿度采集模块,该模块使用瑞士盛世瑞恩传感器公司(SENSIRION )的工业级集成型温湿度传感器SHT11作为模块的核心传感单元,在内置的高性能单片机的控制管理下,采用开放式的RS485总线,可向用户提供标准化的数字式测量结果,而用户不必了解传感器的内部结构和具体使用方法,非常适合用户根据应用情况随意组合使用。

2. 模块硬件总体设计

2.1 模块硬件框图

图1 模块硬件框图

2.2 基于P89LPC922单片机硬件设计

采用P89LPC922做为微控制器。P89LPC922适合于许多要求高集成度、低成本的场合,可以满足多方面的性能要求。采用了高性能的处理器结构,集成了许多系统级的功能,大大减少元件的数目和电路板面积并降低系统的成本。8kBFlash程序存储器,串行Flash编程可实现简单的在电路编程。

采用SHT11芯片做为数字温湿度传感器。芯片主要特点如下[1]:

◆高度集成,将温度感测、湿度感测、信号变换、A/ D转换和加热器等功能集成到一个芯片上;

◆提供二线数字串行接口SCK和DATA ,接口简单,支持CRC传输校验,传输可靠性高;

◆测量精确度高,由于同时集成温湿度传感器,可以提供温度补偿的湿度测量值和高质量的

露点计算功能;

◆封装尺寸超小,测量和通信结束后,自动转入低功耗模式;

◆高可靠性,采用CMOS工艺,测量时可将感测头完全浸于水中;

温湿度芯片SHT11通过两线串行接口电路与微控制器I/O口相连如图2所示,SHT11的SCK时钟线连接到LPC922的P3.1口,DATA数据线连接到P3.2口。SCK用于微控制器与SHT11之间的通信同步,而且由于SHT11接口包含了完全静态逻辑,所以并不存在最小SCK频率限制,即微控制器可以以任意低的速度与SHT11通信。串行数据线DATA引脚是三态门结构,用于内部数据的输出和外部数据的输入。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿后有效,所以微控制器可以在SCK高电平时读取数据,而当其向SHT11发送数据时则必须保证DATA线上的电平状态在SCK高电平段稳定;为了避免信号冲突,微控制器仅驱动DATA 在低电平,在需要输出高电平的时候,微控制器将引脚置为高阻态,由外部的上拉电阻将信号拉至高电平,从而实现高电平输出。LED为模块工作指示灯,当模块工作时通过P0.0输出低电平点亮LED。JP1为I2C扩展口和显示部分进行I2C通信。ICP为在线电路编程接口[2],方便烧写和调试程序。

图2 LPC922外围电路图

采用Maxim公司的半双工通信芯片MAX485做为RS485总线驱动芯片。它采用单一电源+5V工作,额定电流300A.MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。微控制器通过串口UART与MAX485相连如图3所示。RO和DI端分别为接收器的输出和驱动器的输入端,分别与LPC922的TXD232和RXD232相连;RE和DE端分别为接收和

发送的使能端,当RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用LPC922的一个管脚RE控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为O。A端和B端间使用ZD1-ZD4防止电压过高,起到保护电路的作用。由于RS485传输最长距离达1.5km ,从而更好的解决了监测点分布零散和集中管理的矛盾,也为环境温湿度远程控制提供了条件。

图3 MAX485外围电路图

3. 模块软件设计

软件设计主要是MCU在定时时间到或者收到查询命令后被唤醒并按照SHT11的工作时序通过模拟I2C接口发出测温、测湿等命令。P89LPC922的程序编写主要是按照SHT11的功能时序[5]对I/0口进行操作。SHT11测量过程包括4个部分:启动传输、发送测量命令、等待测量完成和读取测量数据。微控制器首先用一组“启动传输”时序来表示数据传输的初始化,其时序图如图5所示:当SCK时钟高电平时DATA翻转为低电平;在DATA为低电平期间,SCK变为低电平,再翻转为高电平;随后是在SCK时钟高电平时DATA翻转为高电平。

以下是传输启动的C51程序:

void trans_start(void)

{ DATA=1; SCK=0; _nop_();SCK=1;_nop_(); DATA=0;

_nop_(); SCK=0; _nop_();_nop_();_nop_();

SCK=1;_nop_();DATA=1;_nop_();SCK=0;}

在“启动传输”时序]2[之后,主机发出一个后续8位命令码,该命令码包含3个地址位(芯片设定地址为000)和5个命令位;发送完该命令码,将DATA总线设为输入状态等待SHT11的响应;SHT11接收到上述地址和命令码后,在第8个时钟下降沿,将DATA下拉为低电平作为从机的ACK;在第9个时钟下降沿之后,从机释放DATA(恢复高电平)总线;释放总线后,从机开始

测量当前湿度。

相关文档
最新文档