关键词:SHT10;温湿度传感器;数字传感器;ATmeg8L
引 言
随着社会的不断发展前进,人们进入了数字化信息时代,对生活质量的要求越来越高。汽车、空调、除湿器、烘干机等都已家喻户晓,它们都离不开对温度、湿度等环境因素的要求。
瑞士Sensirion公司推出了SHTxx单片数字温湿度集成传感器。采用CMOS过程微加工专利技术(CMOSens technology),确保产品具有极高的可靠性和出色的长期稳定性。该传感器由1个电容式聚合体测湿元件和1个能隙式测温元件组成,并与1个14位A/D转换器以及1个2-wire数字接口在单芯片中无缝结合,使得该产品具有功耗低、反应快、抗干扰能力强等优点。
1 SHT10的特点
SHT10的主要特点如下:
◆相对湿度和温度的测量兼有露点输出;
◆全部校准,数字输出;
◆接口简单(2-wire),响应速度快;
◆超低功耗,自动休眠;
◆出色的长期稳定性;
◆超小体积(表面贴装);
◆测湿精度±45%RH,测温精度±0.5℃(25℃)。
2 引脚说明及接口电路
(1)典型应用电路
SHT10典型应用电路如图1所示。
(2)电源引脚(VDD、GND)
SHT10的供电电压为2.4V~5.5V。传感器上电后,要等待11ms,从“休眠”状态恢复。在此期间不发送任何指令。电源引脚(VDD和GND)之间可增加1个100nF的电容器,用于去耦滤波。
(3)串行接口
SHT10的两线串行接口(bidirectional 2-wire)在传感器信号读取和电源功耗方面都做了优化处理,其总线类似I2C总线但并不兼容I2C总线。
①串行时钟输入(SCK)。SCK引脚是MCU与SHTIO之问通信的同步时钟,由于接口包含了全静态逻辑,因此没有最小时钟频率。
②串行数据(DATA)。DATA引脚是1个三态门,用于MCU与SHT10之间的数据传输。DATA的状态在串行时钟SCK的下降沿之后发生改变,在SCK的上升沿有效。在数据传输期间,当SCK为高电平时,DATA数据线上必须保持稳定状态。
为避免数据发生冲突,MCU应该驱动DATA使其处于低电平状态,而外部接1个上拉电阻将信号拉至高电平。
3 命令与时序
(1)SHT10命令
SHT10命令如表1所列。
(2)命令时序
发送一组“传输启动”序列进行数据传输初始化,如图2所示。其时序为:当SCK为高电平时DT翻转保持低电平,紧接着SCK产生1个发脉冲,随后在SCK为高电平时DATA翻转保持高电平。
紧接着的命令包括3个地址位(仅支持“000”)和5个命令位。SHT10指示正确接收命令的时序为:在第8个SCK时钟的下降沿之后将DATA拉为低电平(ACK位),在第9个SCK时钟的下降沿之后释放DATA(此时为高电平)。
(3)测量时序(RH和T)
“000 00101”为相对湿度(RH)量,“000 00101”为温度(θ)测量。发送一组测量命令后控制器要等待测量结束,这个过程大约需要20/80/320ms对应其8/12/14位的测量。测量时间随内部晶振的速度而变化,最多能够缩短30%。SHT10下拉DATA至低电平而使其进入空闲模式。重新启动SCK时钟读出数据之前,控制器必须等待这个“数据准备好”信号。
接下来传输2个字节的测量数据和1个字节的CRC校验。MCU必须通过拉低DATA来确认每个字节。所有的数据都从MSB开始,至LSB有效。例如对于12位数据,第5个SCK时钟时的数值作为MSB位;而对于8位数据,第1个字节(高8位)数据无意义。
确认CRC数据位之后,通信结束。如果不使用CRC-8校验,控制器可以在测量数据LSB位之后,通过保持ACK位为高电平来结束本次通信。
测量和通信结束后,SHT10自动进入休眠状态模式。
(4)复位时序
如果与SHT10的通信发生中断,可以通过随后的信号序列来复位串口,如图3所示。保持DATA为高电平,触发SCK时钟9次或更多,接着在执行下次命令之前必须发送一组“传输启动”序列。这些序列仅仅复位串口,状态寄存器的内容仍然保留。
(5)状态寄存器读写时序
SHT10通过状态寄存器实现初始状态设定。
读状态寄存器时序如图4所示。
写状态寄存器时序如图5所示。
4 几点说明
①CRC-8校验。整个数据的传输过程都由8位校验保证,确保任何错误的数据都能够被检测到并删除[1] 。
②为保持自身发热温升小于0.1℃,SHTxx的激活时间不超过10%。如12位精度测量,每秒最多测量2次。
③转换为物理量输出相对湿度输出转换公式为:
其中,RHlinear为25℃时相对湿度的线性值,SORH为传感
器输出的相对湿度的数值,c1,c2,c3为系数,如表3所列。
当测量温度与25℃相差较大时,则需要考虑传感器的温度系数:
其中,RHtrue为温度不等于25℃时相对湿度的实际值,θc为当前温度,t1、t2是系数,如表4所列。
温度输出转换公式为:
其中,θ为实际温度,SOθ为传感器输出的温度数值,θ1,θ2为系数,如表5、表6所列。
由于湿度与温度经由同一块芯片测量而得,因此SHT10可以同时实现高质量的露点测量。具体算法可参阅参考文献[2] ,这里不再详述。
5 SHT10与ATmegal的应用实例
这里以SHT10与Atmel公司低功耗8位RISC指令集的ATmega8L(内部8MHz振荡频率)MCU的接口电路为例,给出实际应用电路及控制程序实例。
本例采用ATmega8L微控制器控制SHT10,读取温湿度数据,并将结果显示在LCD1602(采用4位模式)上,如图6所示。
程序采用C语言模块化设计,大大方便被移植到其他MCU上使用,提高了工作效率。
参考文献:
[1]Sensirion.CRC Calculation Application Note,2006.
[2]Sensirion.Dew-point Calculation Application Note,2006.
[3]Sensirion.SHT10 Humidity Sensor Datasheet,2007.
缩略语:
FCS Frame Check Sequence 帧校验序列
TTS Text To Speech 语音合成
SSP Synchronous Serial Port 同步串行口
SMC Symbolic Model Checking 符号模型检查
MANET Mobile Ad hoc NET 移动Ad Hoc网络
WMN Wireless Mesh Network 无线网状网
详情请点击:新型温湿度传感器SHT10的原理及应用