车载温湿度检测系统

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

车载温湿度检测系统
作为一个巡检系统,有着控制系统的小车能保证巡检系统按照我们要求的路线和合适的速度来前进监控,非常好的完成了作为载体的任务,接下来就是要在该载体上安装温湿度检测系统了,通过这个系统来完成对环境温度和湿度的探测。

温湿度检测系统的系统组成如下所示:
该系统包括电源,传感器,数字处理部分和显示部分几个功能块。

将SHTll采集到的温度和湿度经过数字处理并显示出来。

5.1系统硬件设计
温湿度检测系统的核心器件就是传感器,所以在这里我们选用瑞士产的SHTll传感器。

温湿度传感器SHTll将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图5.2所示。

该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。

这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大;然后进入一个14位的A/D转换器;最后经过二线串行数字接口输出数字信号。

SHTll 在出厂前,都会在恒湿或恒温环境中进行校准,校准系数存储在校准寄存器中;在测量过程中,校准系数会自动校准来自传感器的信号。

此外,SHTll内部还集成了一个加热元件,加热元件接通后可以将SHTll的温度升高5口左右,同时功耗也会有所增加。

此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。

在高湿(>95 RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。

加热后SHTll温度升高、相对湿度降低,较加热前,测量值会略有差异。

硬件设计主要以AT89C5l作为主要处理器,以此来扩展外围电路,主要包括温湿度传感器检测,和显示部分。

SHTll通过二线数字串行接口来访问,所以硬件接口电路非常简单。

需要注意的地方是:DATA数据线需要外接上拉电阻,VDD和GND中间加一个0.1驴的滤波电容,时钟线SCK用于微处理器和SHTll 之间通信同步,由于接口包含了完全静态逻辑,所以对SCK最低频率没有要求;当工作电压高于5矿时,SCK频率最高为10肋,而当工作电压低于4.5矿时,SCK最高频率则为
l肋,SHTll的DATA和SCK脚直接送入AT89C51的P1.O和P1.1口,在AT89C51中处理完后将数据通过其P0.0,P0.1,P0.2口送入显示驱动芯片MAX7219,并通过MAX7219来驱动数码显示管来显示采集到的温度和湿度,MAX7219是美国MAXIM公司研制的紧凑型、串行输入、串行输出、共阴极新型LED显示驱动器。

它一片芯片可以驱动多达8位7段LED显示器、条型图形、或64个单个LED。

其片内有BCD译码器、多路复用扫描电路、段和数字驱动器、以及存贮每个数字的8×8静态RAM。

所有LED的段电流设定只需一个外部电阻来完成。

其硬件电路图如下:
图5—3硬件电路图
.2系统软件设计
.2.1温湿度测量部分软件设计
微处理器是通过二线串行数字接口与SHTll进行通信的。

通信协议与通用的12C总线议是不兼容的,因此需要用通用微处理器I/O口模拟该通信时序。

微处理器对SHTll控制是通过5个5位命令代码来实现的,命令代码的含义如表5一l所示。

.
DA TA在SCK时钟下降沿之后改变状态并仅在SCK时钟上升沿有效。

SHTll上电后进入休眠模式,首先应发送一个“启动’’时序,唤醒芯片,即在ScK为高时使DA TA由高电平变为低电平,并在下一个SCK为高时将DATA升高,时序图如下所示。

微控器发出测量命令后就等待测量完成,为表明测量完成,SHTll将数据线拉成低电平。

微控器重新启动SCK,SHTll就传送两字节的测量数据与一字节的CRC数据,传输数据的顺序是从最高位(MSB)到最低位(LSB)。

微控器接收到每个字节后,必须将数据线拉成低电平,为每个字节产生应答信号ACK。

CRC寄存器通过计算一个多项式(X8+X5+X4)之和来判定测量过程是否发生错误,一旦发现错误,微控器就发送软启动命令,重新进行测量。

如果不使用CRC一8校验,微控器可以在测量值KSB后保持应答信号ACK高电平,来终止通信。

5.2.2显示部分软件设计
MAX7219是SPI总线驱动方式,要想与MAX7219通信,首先要先了解MAX7219的控制字,MAX7219的控制字格式如表5—2。

工作时,MAX7219规定一块接收16位数据,在接收的16位数据中:D15~D12可以与操作无关,可以任意写入。

D11~D8决定所选通的内部寄存器地址,D7~D0为待显示数据或是初始化控制字。

如表2所示。

在CLK脉冲作用下。

DIN的数据以串行方式依次移入内部16位寄存器。

然后在一LoAD 上升沿作用下。

锁存到内部的寄存器中。

在接收时,先接收最高位D16,最后是DO因此,在程序发送时必须先送高位数据,再循环移位。

工作时序图见图5。

相关文档
最新文档