新乡学院本科毕业论文(设计)
温湿度传感器SHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图3.7所示。该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大;然后进入一个14位的A/D 转换器;最后经过二线串行数字接口输出数字信号。SHT11在出厂前,都会在恒湿或恒温环境巾进行校准,校准系数存储在校准寄存器中;在测量过程中,校准系数会自动校准来自传感器的信号。此外,SHT11内部还集成了一个加热元件,加热元件接通后可以将SHT11 的温度升高5℃左右,同时功耗也会有所增加。此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。在高湿 (>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。加热后SHT11温度升高、相对湿度降低,较加热前,测量值会略有差异。
图3.7 SHT11 内部结构图
微处理器是通过二线串行数字接口与SHT11进行通信的。通信协议与通用的I2C总线协议是不兼容的,因此需要用通用微处理器I/O 口模拟该通信时序。微处理器对SHT11的控制是通过5个5位命令代码来实现的,命令代码的含义如表3.3 所列。
湿度传感器 校准寄存器 温度传感器 运算放大器 A/D转换器 二线串行数字接口和CRC校验
表3.3 SHT11控制命令代码
18
新乡学院本科毕业论文(设计)
传感器性能说明:
图3.8 传感器的最大相对湿度误差
图3.9 最大温度误差
电气特性:
表3.4 电气特性a
19
新乡学院本科毕业论文(设计)
表3.5 电气特性b
电气特性,如能耗,低、高电平,输入、输出电压等都取决于电源。表3.4详细解释了 SHT11的电气特性,若没有标明,则表示供电电压为 5V。若想与传感器获得最佳通讯效果,请设计时严格遵照表3.4 与表3.5的条件。
◆默认测量分辨率为温度14位,湿度12位。通过状态寄存器可分别降至12位和8 位。 ◆在出厂质量检验时,每支传感器都在 25℃(77℉)和 3.3V 条件下测试并且完全符合精度指标。该精度值不包括滞后与非线性
◆在25℃和1m/s气流的条件下,达到一阶响应63%所需要的时间。 ◆在挥发性有机混合物中数值可能会高一些。
◆在VDD=5.5V 和25℃的条件下,每秒进行一次12位精度测量的平均值。 ◆响应时间取决于传感器表面的热容和热阻。 3.3.3 DHT11数据结构
DHT11数字湿温度传感器采用单总线数据格式。即单个数据引脚端口完成输入输出双向传输。其数据包由5Byte(40Bit)组成。数据分小数部分和整数部分,具体格式在下面说明。
一次完整的数据传输为40bit,高位先出。 数据格式:8bit 湿度整数数据+8bit湿度小数数据 +8bit温度整数数据+8bit温度小数数据
20
新乡学院本科毕业论文(设计)
+8bit 校验和
校验和数据为前四个字节相加。
传感器数据输出的是未编码的二进制数据。数据( 湿度、温度、整数、小数) 之间 应该分开处理。如果,某次从传感器中读取如下5Byte数据:
由以上数据就可得到湿度和温度的值,计算方法: humi ( 湿度)= byte4.byte3=45.0 ( %RH) temp ( 温度)= byte2.byte1=28.0 ( ℃)
jiaoyan( 校验)= byte4+ byte3+ byte2+ byte1=73(=humi+temp)(校验正确) 注意:DHT11一次通讯时间最大3ms ,主机连续采样间隔建议不小于100ms 。 3.3.4 SHT11 应用设计
微处理器采用二线串行数字接口和温湿度传感器芯片SHT11进行通信,所以硬件接门设计非常简单;然而,通信协议是芯片厂家自己定义的,所以在软件设计中,需要用微处理器通用I/O 口模拟通信协议。
硬件设计:SHT11通过二线数字串行接口来访问。需要注意的地方是:DATA数据线需要外接上拉电阻,时钟线SCK用于微处理器和SHT11之间通信同步,由于接口包含了完全静态逻辑,所以对SCK最低频率没有要求;当工作电压高于4.5V时,SCK频率最高为10MHz,而当工作电压低于4.5V 时,SCK 最高频率则为1MHz。 软件设计:微处理器和温湿度传感器通信采用串行二线接口SCK和DATA,其中SCK为时钟线,DATA为数据线。该二线串行通信协议和I2C协议是不兼容的。在程序开
始微处理器需要用一组 “启动传输”时序表示数据传输的启动启动传感器。 ◆启动传输
首先,选择供电电压后将传感器通电,上电速率不能低于1V/ms 。通电后传感器需要11ms进入休眠状态,在此之前不允许对传感器发送任何命令发送命令用一组“启动传输”时序,来表示数据传输的初始化。它包括:当SCK时钟高电平时DATA 翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA 翻转为
21
新乡学院本科毕业论文(设计)
高电平。
图3.11 数据传输启动时序
后续命令包含三个地址位(目前只支持“000 ”),和五个命令位。SHT11会以下述方式表示已正确地接收到指令:在第 8 个SCK时钟的下降沿之后,将 DATA 下拉为低电平(ACK位)。在第 9 个SCK时钟的下降沿之后,释放DATA(恢复高电平)。测量时序(RH, T)发布一组测量命令(‘00000101’表示相对湿度RH,‘00000011’表示温度 T)后,控制器要等待测量结束。这个过程需要大约20/80/320ms ,分别对应8/12/14bit 测量。确切的时间随内部晶振速度,最多可能有-30%的变化。SHT11通过下拉DATA 至低电平并进入空闲模式,表示测量的结束。控制器在再次触发SCK时钟前,必须等待这个“数据备妥”信号来读出数据。检测数据可以先被存储,这样控制器可以继续执行其它任务在需要时再读出数据。接着传输2 个字节的测量数据和1 个字节的CRC奇偶校验。CRC需要通过下拉DATA 为低电平,以确认每个字节。所有的数据从MSB开始,右值有效(例如:对于12bit数据,从第5 个SCK时钟起算作MSB;而对于 8bit数据,首字节则无意义)。 用CRC数据的确认位,表明通讯结束。如果不使用CRC-8校验,控制器可以在测量值LSB 后,通过保持确认位ack 高电平,来中止通讯。在测量和通讯结束后,SHT11自动转入休眠模式。 ◆通讯复位时序
如果与SHT11通讯中断,下列信号时序可复位串口:当DATA 保持高电平时,触发 SCK时钟9 次或更多,参阅图3.12 。在下一次指令前,发送一个“传输启动”时序。这些时序只复位串口,状态寄存器内容仍然保留。
图3.12 复位时序
22