高精度温湿度传感器SHT2x的应用
扫描二维码
随时随地手机看文章
摘要:介绍了基于STC11系列单片机和Sensirion公司新一代高精度温湿度传感器SHT2x的温湿度数据采集系统的设计。SHT2x完全标定,具有精度高、功耗低、稳定度好、体积小和数字输出等特点,非常适合于在便携和移动设备中对温度和湿度进行监控。
关键词:湿度;温度;传感器;单片机;SHT2x
引言
新一代Sensirion温湿度传感器SHT2x,采用适于回流焊的双列扁平无引脚DFN无铅封装,底面3 mm×3mm,高度1.1 mm,具有超小型的体积,特别适合移动测量设备。传感器输出经过标定的数字信号,是标准的I2C总线格式。SHT2x配有一个全新设计的4C代CMOSens芯片、一个经过改进的电容式湿度传感元件和一个标准的能隙温度传感元件,内置放大器、A/D转换器、OTP内存和数字处理单元,能同时检测温度和湿度。SHT2x的性能和可靠性,特别是在高湿环境下的稳定性,相对于前一代传感器SHT1x和SHT7x有很大提升,而数据传输操作更为简单。每一个传感器都经过校准和测试,在芯片内存储了电子识别码,可以通过输入命令读出这些识别码。此外,SHT2x的分辨率可以通过输入命令进行改变,传感器可以检测到电池低电量状态,有极低功耗的节能模式,具有优异的长期稳定性。SHT2x系列中最高精度的SHT25的相对湿度测量精度达到1.8%,温度测量精度为0.2。
1 接口和通信协议
1.1 芯片引脚、信号和时序说明
SHT2x使用了6引脚封装中的4个引脚,分别是电源VDD、地VSS、双向串行时钟SCL和双向串行数据SDA。SHT2x供电范围为2.1~3.6 V,推荐电压为3.0 V。SCK用于微处理器与SHT1x之间的通信同步。
SDA引脚用于传感器的数据输入和输出。当向传感器发送命令时,SDA在串行时钟SCL的上升沿有效,且当SCL为高电平时,SDA必须保持稳定。在SCL下降沿之后,SDA值可被改变。为确保通信安全,SDA的有效时间在SCL上升沿之前和下降沿之后应该分别延长至tSU和tHD,数字输入/输出端时序如图1所示。当从传感器读取数据时,SDA在SCL变低以后有效tVD时长,且维持到下一个SCL的下降沿。图1中的缩略语在表1中解释。图1中DATA OUT SDA由传感器控制,DATA IN SDA由MCU控制。SDA有效读取时间由前一个转换的下降沿触发。
1.2 通信协议
SHT2x采用标准的I2C总线协议进行通信,所有传感器都被设置为相同的7位I2C总线地址1000 000。
1.2.1 传感器的启动与停止时序
上电后,传感器需要15 ms时间以达到空闲状态,即准备接收由主机(MCU)发送的命令,此时SCL为高电平。每个传输序列都以启动传输状态(S)作为开始,并以停止传输状态(P)作为结束。图2是启动传输状态的时序图。
当SCL为高电平时,SDA由高电平转换为低电平。开始状态是由主机控制的一种特殊的总线状态,指示从机传输开始,启动之后,总线处于占线状态。图3是停止传输状态的时序图。
当SCL高电平时,SDA由低电平转换为高电平。停止状态是由主机控制的一种特殊的总线状态,指示从机传输结束,停止之后,总线处于闲置状态。
1.2.2 发送命令和接收数据
在启动传输后,随后传输的首字节包括7位的I2C总线设备地址和一个SDA方向位,读为“1”,写为“0”。在第8个SCL时钟下降沿之后,通过拉低SDA引脚(ACK位),指示传感器数据接收正常。在发出测量命令之后主机必须等待测量完成。基本的命令在表2中进行说明,有两种不同的方式可选——主机模式或非主机模式。
MCU与传感器之间的通信有两种不同的工作模式:主机模式和非主机模式。在主机模式下,在测量的过程中,SCL线被封锁(由传感器进行控制);在非主机模式下,当传感器在执行测量任务时,SCL线仍然保持开放状态,可进行其他通信。非主机模式允许传感器进行测量时在总线上处理其他I2C总线通信任务。本文只涉及主机模式,其时序如图4所示。
在主机模式下测量时,SHT2x将SCL拉低,强制主机进入等待状态。通过释放SCL线,表示传感器内部处理工作结束,进而可以继续数据传送。
图4中灰色部分由SHT2x控制。如果要省略校验和(CRC)传输,可将第45位改为NACK,之后接一个传输停止时序。
由于测量的最大分辨率为14位,第2个字节SDA上的后两位LSB,即第43和44位用来传输相关的状态信息,第43位表示测量的类型,“0”表示测量温度,“1”表示测量湿度,第0位当前没有使用。
在图4中,传感器输出为0110 0011 0101 0010。在进行物理换算时,后两位状态位应置0。
所需最长测量时间取决于测量类型和分辨率,最高分辨率14位的测量时间最大值为85 ms,测量时间的最大值由MCU控制。
2 信号转换
传感器内部设置的默认分辨率是最高分辨率,即相对湿度12位、温度14位。SDA的输出数据被转换成两个字节的数据包,高字节MSB在前,低字节LSB在后,左对齐。每个字节后面都跟随两个状态位和一个应答位。两个状态位,即LSB的后两位在进行物理计算前须置0。这样在图4的示例中,所传输的16位相对湿度数据为SRH=0110 0011 0101 0000=25 424。
2.1 相对湿度转换公式
相对湿度RH可以根据SDA输出的相对湿度信号SRH通过下面的公式计算,单位以%RH表示。
RH=-6+125·(SRH/216)
对于图4的例子,相对湿度的计算结果为42.5%RH。RH物理值对应于世界气象组织(WMO)所规定的基于液态水的相对湿度。
2.2 温度转换公式
温度T可以通过SDA温度输出信号ST代入到下面的公式计算得到,单位以℃表示。
T=-46.85+175.72·(ST/216)
相对湿度和温度转换公式对所有分辨率都适用。
用温度和湿度可以计算露点,相关公式见参考文献。
3 硬件设计
电路设计中,PCB布局、布线,组装工艺对器件的精度影响很大,为保证器件和系统的精度,硬件设计需考虑多方因素。图5是某个多点无线数据采集应用中与SHT2x相关部分的电路图。MCU采用STC11L16XE,STC11系列MCU的唯一ID号在识别多个传感器节点时很方便,其掉电自唤醒功能以极低的功耗延长电池寿命,I/O引脚模式可控的强推挽输出可以用作SHT2x的可控电源。另外,STC11系列的低电压中断可用于电池电压监测,超大的EEPROM可以用于数据存储。
电路中包括了上拉电阻R1、R2和VDD与GND之间的去耦电容。布局时,电容的位置应尽量靠近传感器。
将P3.5引脚设置为强推挽,输出电流可达20 mA,而SHT2x的最大工作电流为330μA。I/O口高电平电压约为3 V,这是SHT2x的推荐工作电压。用MCU的一个引脚提供可控电源,可以将SHT2x的静态电流减小到0。
SHT2x是一种混合信号IC,需要低噪声供电。通过MCU的引脚供电,易受MCU电源的数字噪声的影响。因此,要在MCU的供电引脚加一个RC滤波器,图5中的R1和C1构成了一个RC滤波器。
在布线时,如果SCL和SDA信号线相互平行并且非常接近,有可能导致信号串扰和通信失败。解决方法是在两个信号线之间放置GND,将信号线隔开。
可以使用标准的回流焊炉对SHT2x进行焊接。回流焊接后,需将传感器在>75%RH的环境下存放至少12小时,以保证聚合物的重新水合,否则将导致传感器读数的漂移。也可以将传感器放置在自然环境(>40%RH)下5天以上,使其重新水合。
无论是手动焊接还是回流焊接,在焊接后都不允许冲洗电路板。建议使用“免洗”型焊锡膏。
如果将传感器应用于腐蚀性气体中或有冷凝水产生(如高湿环境),引脚焊盘与PCB都需要密封以避免接触不良或短路。
如果传感器与易发热的电子元件在同一个印刷线路板上,在设计电路时应采取措施,尽可能将热传递的影响减小到最小。SHT2x与印刷电路板其他部分的铜镀层应尽可能最小,或在两者之间开一道缝隙。
4 软件设计
在软件中需控制测量频率,当测量频率过高时,传感器的自身温度会升高,从而影响测量精度。如果要保证它的自身温升低于0.1℃,SHT2x的激活时间不应超过测量时间的10%。例如在12位测量时,每s测量次数最多不超过2次。
编译器使用Keil C51,基于STC11系列MCU的采集SHT2x的主要程序和注释略——编者注。
结语
SHT2x湿温度传感器比其上一代产品SHT1x有更高的精度,体积更小,测量范围更宽,MCU对其控制和操作更加方便。
本文介绍的应用系统在掉电休眠时实测电流为15μA。采用LQFP-44封装的STC11系列MCU作为控制器与SHT2x组成的温湿度采集系统具有体积小、功耗低、多点ID识别的优点,加上无线数据传输单元可以构成很适合电池供电的小型无线温湿度数据采集节点。