图3—6 DS18B20
3 DS18B20结构和工作原理
图3—7是表示 DS18B20 的结构图,表3—3已经给出了引脚说明。64位只读存储器储存器件的唯一片序列号。高速暂存器含有两个字节的温度寄存器,这两个寄存器用来存储温度传感器输出的数据。除此之外,高速暂存器提供一个直接的温度报警值寄存器(TH和TL),和一个字节的的配置寄存器。配置寄存器允许用户将温度的精度设定为9,10,11或12位。TH,TL和配置寄存器是非易失性的可擦除程序寄存器(EEPROM),所以存储的数据在器件掉电时不会消失。DS18B20通过达拉斯公司独有的单总线协议依靠一个单线端口通讯。当全部器件经由一个3态端口或者漏极开路端口(DQ引脚在DS18B20上的情况下)与总线连接的时候,控制线需要连接一个弱上拉电阻。在这个总线系统中,微控制器(主器件)依靠每个器件独有的64位片序列号辨认总线上的器件和记录总线上的器件地址。由于每个装置有一个独特的片序列码,总线可以连接的器件数目事实上是无限的。DS18B20的另一个功能是可以在没有外部电源供电的情况下工作。当总线处于高电平状态,DQ与上拉电阻连接通过单总线对器件供电。同时处于高电平状态的总线信号对内部电容(Cpp)充电,在总线处于低电平状态时,该电容提供能量给器件。这种提供能量的形式被称为“寄生电源” 。作为替代选择,DS18B20同样可以通过VDD引脚连接外部电源供电。
17
图3—7 DS18B20内部结构
表3—3 DS18B20引脚说明
4 硬件设计
DS18B20可以通过从VDD引脚接入一个外部电源供电,或者可以工作于寄生电源模式,该模式允许DS18B20工作于无外部电源需求状态。寄生电源在进行远距离测温时是非常有用的。当总线为高电平时,寄生电源由单总线通过VDD引脚。这个电路会在总线处于高电平时偷能量,部分汲取的能量存储在寄生电源储能电容内,在总线处于低电平时释放能量以提供给器件能量。当DS18B20处于寄生电源模式时,VDD引脚必须接地。寄生电源模式下,单总线和电容在大部分操作中能提供充分的满足规定时序和电压的电流给DS18B20。然而,当DS18B20正在执行温度转换或从高速暂存器向EPPROM传送数据时,工作电流可能1.5mA。这个电流可能会引起连接单总线的弱上拉电阻的不可接受的压降,这需要更大的电流,而此时电容无法提供[7]。为了保证DS18B20由充足的供电,当进行温度转换或拷贝数据到EEPROM操作时,必须给单总线提供一个强上拉电阻。用漏极开路把I/O直接拉到电源上就可以实现,见图3—8。在发出温度转换指令或拷贝暂存器指令之后,必须在至多10us之内把单总线转换到强上拉,并且在温度转换时序或拷贝数据时序必须一直保持为强上拉状态。当强上拉状态
18
保持时,不允许有其它的动作。对DS18B20供电的另一种传统办法是从VDD引脚接入一个外部电源,见图3—9。这样做的好处是单总线上不需要强上拉。而且总线不用在温度转换期间总保持高电平。温度高于100℃时,不推荐使用寄生电源,因为DS18B20在这种温度下表现出的漏电流比较大,通讯可能无法进行。在类似这种温度的情况下,强烈推荐使用DS18B20的VDD引脚。对于总线控制器不直到总线上的DS18B20是用寄生电源还是用外部电源的情况,DS18B20 预备了一种信号指示电源的使用意图。总线控制器发出一个 Skip ROM指令,然后发出读电源指令,这条指令发出后,控制器发出读时序,寄生电源会将总线拉低,而外部电源会将总线保持为高。如果总线被拉低,总线控制器就会知道需要在温度转换期间对单总线提供强上拉。
图3—8 DS18B20 温度转换期间的强上拉供电
图3—9 外部电源给 DS18B20 供电
3.1.3 湿度传感器 1 DHT11概述
DHT11属于Sensirion温湿度传感器家族中的插针型封装系列。传感器将传
19
感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。传感器采用专利的CMOSens@技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路实现无缝连接。因此,该产品具有品质卓越、响应迅速、抗干扰能力强,性价比高等优点。每个传感器芯片都在极为精确的湿度腔室中进行标定,校准系数以程序形式储存在OTP内存中,用于内部的信号校准。两线制的串行接口与内部的电压调整,使外围系统集成变得快速而简单。 2 DHT11特点
? 湿温度传感器的一体化结构能相对的同时对相对湿度和温度进行测量。 ? 数字信号输出,从而减少用户信号的预处理负担。
? 单总线结构输出有效的节省用户控制器的I/O口资源。并且,不需要额外电 器元件。
? 独特的单总数据传输线协议使得读取传感器的数据更加便捷。 ? 全部校准。编码方式为8位二进制数。
? 40bit 二进制数据输出。其中湿度整数部分占1Byte,小数部分1Byte,温度 整数部分1Byte,小数部分1Byte。其中,湿度为高16位。最后1Byte为和。 ? 卓越的长期稳定性,超低功耗。 ? 4引脚安装,超小尺寸。 ? 各型号管脚完全可以互换。
? 测量湿度范围从20%RH到90%RH;测量温度范围从0℃到50℃。 ? 适用范围包括恒湿控制,消费家电类产品,温湿度计等领域
图3—10 DHT11外形及引脚说明
3 DHT11引脚说明及工作原理
20
传感器管脚方向识别:正面(有通气孔的一面)看过去,从左到右依次为1、2、3、4脚。
表3—4 引脚说明
引脚号 1 2 3 4 引脚名称 VCC Dout NC GND 类型 电源 输出 空 地 引脚说明 正电源输入,3V-5.5V DC 单总线。数据输入/输出引脚 空脚。扩展未用 电源地 数字湿温度传感器采用单总线数据格式。即单个数据引脚端口完成输入输出双向传输。其数据包由5Byte(40Bit)组成。一次通讯时间最大3ms,数据分小数部分和整数部分,具体格式在下面说明。 DATA 用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,当前小数部分用于以后扩展,现读出为0。操作流程如下:
一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据+8bit湿度小数数据 +8bit温度整数数据+8bit温度小数数据 +8bit校验和,校验和数据为前四个字节相加。
DHT11传感器是通过奥松电子有限公司开发的单总线协议和上位机(控制器)进行数据通信。DHT11 传感器需要严格的读写协议来确保数据的完整性。整个读写分为,上位机发送起始信号,上位机接收下位机发来的握手响应信号,读‘0’和读‘1’四个步骤。所有的信号除主机启动复位信号外,全部都由 DHT11 产生。通过单总线访问 DHT11顺序归纳如下: 1) 主机发开始信号
2) 主机等待接收 DHT11 响应信号 3) 主机连续接收 40Bit 的数据和校验和 4) 数据处理
4 DHT11与单片机连接的设计
DHT11数字湿温度传感器连接电路简单,只需要占用控制器一个I/O口即可完成上下位的连接[8]。典型应用电路如下图所示。另外,建议连接线长度短于20时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,如图3—11
21