当前位置: 代码迷 >> 单片机 >> 有哪位高手用过用单片机控制SHT15温湿度传感器啊
  详细解决方案

有哪位高手用过用单片机控制SHT15温湿度传感器啊

热度:158   发布时间:2016-04-28 16:22:24.0
有谁用过用单片机控制SHT15温湿度传感器啊?
有谁用过用单片机控制SHT15温湿度传感器啊?
求助通信时序问题?

------解决方案--------------------
可能图拷不过来,还请楼主,酌情参考!~

CMOSens技术数字式温湿度传感器
新闻出处:孟臣 李敏 发布时间: 2006年08月29日

摘要:介绍了新一代基于CMOSensTM技术的单片全校准数字式相对温湿度传感器,该传感器是一种将COMS芯片技术与传感器技术结合在一起构成的高集成度、体积极小的湿度传感器。文中对基于CMOSensTM技术的传感器的技术特性,应用特性进行了详细阐述。
关键词:COMSensTM 数字式 温湿度传感器

1 概述

当前,在自动化测试与控制领域中,温湿度的测量获得了越来越广泛的应用,而在众多的湿度测量方法中,电容式湿度测量法被普遍采用,电容式湿度测量法的原理是将薄膜电容附在不同材质(如玻璃、陶瓷等)上即可做出传感元件,这种电介质是一个聚合体,它能通过一定比例的水吸收或释放到相对环境温度中来改变电容器的电容量,这种电容量的变化可以通过检测电路来检验,这样就得到了相对空气湿度的数值。但是现有的基于电容式湿度测量的湿度传感器普遍存在着以下的问题。

⑴ 极低的长期稳定性:由于电容式湿度传感器产品都是被置于大气环境下,必然会受到一定外部环境的影响,由于传感器电容元件的尺寸较大,同时由于聚合体层的老化,使得这些传感器在相同的外部环境下却显示出了完全不同的灵敏度,因此每一年的变化、即传感器的年变化误差已成为评价传感器质量的重要标准,金属电极的老化也会使湿度的测量误差增加;

⑵极复杂的校准过程:使用前,电容式湿度传感器必须经过一段复杂的校准处理过程,为了实现校准,用户必须拥有复杂且价格昂贵的校准及参考系统;

⑶模拟信号处理技术:电容式湿度测量的信号处理是基于模拟测量原理的,模拟测量还与电源电压、环境温度、传感器的精度等因素有关,以上问题的解决均需要通过模拟电子电路来解决,因此不可避免的使成本增加,同时使得传感器的互换性较差。

以上几方面的问题给基于电容式的湿度测量带来了诸多的不便。为了使众多的湿度传感器能够互换使用,同时又能降低成本而不影响传感器的质量,瑞士 Sensirion公司将CMOS芯片技术与传感器技术结合起来,推出了基于智能传感器理念的CMOSensTM技术的温湿度传感器。两种技术的结合发挥出了巨大的优势互补作用。

SHT15传感器的内部结构如图1所示。


图1 SHT15温湿度传感器的内部结构
SHT15传感器的性能参数见表1。

表1 SHT15传感器的性能参数
2 技术特性

2.1基于CMOSensTM传感器性能特点

SHT15是一款基于CMOSensTM技术的由多个传感器模块组成的单片全校准数字输出的相对湿度和温度传感器,它采用了特有的工业化CMOS技术确保了极高的可靠性和卓越的长期稳定性,整个芯片包括经校准的相对湿度和温度传感器,它们与一个14位的A/D转换器相连,每一个传感器都是在精确的温室中进行校准的,校准系数预先存在OTP内存中,在测量校准的全过程都要用到这些系数,二线串行I2C总线接口支持简单、快速的系统集成。SHT15传感器的特点如下:

⑴全校准数字输出,相对湿度、温度传感器;
⑵温度值分辨率为14位,湿度值分辨率为12位,可编程降至12位和8位;
⑶具有露点计算输出功能;
⑷无需外围元件;
⑸小体积(7×5×3mm),可表面贴装;
⑹卓越的长期稳定性;
⑺自动断电功能;
⑻工业标准I2C总线接口;
⑼可靠的CRC传输校验。

传感器的相对湿度绝对精度如图2(a)所示,温度精度如图2(b)所示,25℃露点精度如图2(c)所示。


(a) 相对湿度绝对精度


(b) 温度精度


(c) 露点精度
图2 SHT15相对湿度、温度和露点精度
2.2传感器信号输出

⑴湿度值输出

SHT15可通过I2C总线直接输出数字量湿度值,其相对湿度数字输出特性曲线见图3。


图3 SHT15传感器相对湿度数字输出特性曲线
由图3数字输出特性曲线可以看出,SHT15的输出特性呈一定的非线性,为了补偿湿度传感器的非线性以获取准确数据,可按如下公式修正湿度值:

RHlinear=c1+c2·SORH+c3·SORH2 (1)

式中SORH为传感器相对湿度测量值,系数取值如下:

12位SORH : c1=-4 c2=0.0405 c3=-2.8*10-6
8位SORH : c1=-4 c2=0.648 c3=-7.2*10-4

⑵温度值输出

由设计决定的SHT15温度传感器的线性非常好,故可用下列公式将温度数字输出转换成实际温度值:

温度=d1+d2*SOT

当电源电压为5V、温度传感器的分辨率为14位时,d1=-40,d2=0.01,当温度传感器的分辨率为12位时,d1=-40,d2=0.04。

⑶露点计算

空气的露点值可根据相对湿度和温度值由下面的公式计算。

LogEW=(0.66077+7.5*T/(237.3+T)+(log10(RH)-2)
Dp=((0.66077-logEW)*237.3)/(logEW-8.16077)

2.3命令与接口时序

SHT15传感器共有5条用户命令,具体命令格式见表2。

表2 SHT15传感器命令列表
下面介绍一下具体的命令顺序及命令时序。

⑴传输开始

初始化传输时,应发出“传输开始”命令,命令包括SCK为高时,DATA由高电平变为低电平,并在下一个SCK为高时将DATA升高。

后一个命令顺序包含三个地址位(目前只支持“000”)和5个命令位,通过DATA脚的ack位处于低电位表示SHT15正确收到命令。

⑵连接复位顺序

如果与SHT15传感器的通讯中断,下列信号顺序会使串口复位:

当使DATA线处于高电平时,触发SCK 9次以上(含9次),并随后发一个前述的“传输开始”命令。

⑶温湿度测量时序

当发出了温(湿)度测量命令后,控制器就要等到测量完成。使用8/12/14位的分辨率测量分别需要大约11/55/210毫秒。为表明测量完成,SHT15会使数据线为低,此时控制器必须重新启动SCK。然后传送两字节测量数据与1字节CRC校验和。控制器必须通过使DATA为低来确认每一字节,所有的量中从右算MSB列于第一位。通讯在确认CRC数据位后停止。如果没有用CRC-8校验和,则控制器就会在测量数据LSB后,保持ack为高来停止通讯,SHT15在测量和通讯完成之后会自动返回睡眠模式。需要注意的是,为使SHT15温升低于0.1℃,则此时工作频率不能大于15%(如:12位精确度时,每秒最多进行3次测量)。

测量温度和测量湿度命令所对应的时序如图4所示。


图4 测量温度和测量湿度命令所对应的时序
3 应用设计

3.1 硬件接口电路设计

这里以AT89C2051单片机为例给出SHT15与单片机的接口电路如图5所示。


图5 SHT15与AT89C2051的接口电路
由于AT89C2051不具备I2C总线接口,故使用单片机通用I/O口线来虚拟I2C总线,利用P1.0来虚拟数据线DATA,利用P1.1口线来虚拟时钟线,并在DATA端接入一只4.7K的上拉电阻,同时在VDD及GND端接入一只0.1μf的去耦电容。

3.2非线性校正及温度补偿

公式(1)给出的相对湿度的非线性补偿计算公式,对于单片机系统而言,由于计算量大而过于复杂,下面给出简化的计算方法。
  相关解决方案