桂林电子科技大学信息科技学院毕业设计(论文)说明书 第 6 页 共 48 页
2.2 数字温度模块设计分析
2.2.1 DS18B20内部结构及工作原理 (1)DS18B20的引脚图功能及性能特点
① DS18B20与微处理器连接时仅需要一根数据线即可实现微处理器与DS18B20的双向通讯。
② 可用数据线供电,电压范围:+3.0V到+5.5 V。
③ 测温范围:-55℃ ~+125℃。固有测温分辨率为0.5℃。 ④ 通过编程可实现9~12位的数字读数方式。 ⑤ 用户可自设定非易失性的报警上下限值。 (2)DS18B20引脚功能如图2-3所示:
引脚1为GND端:该引脚接地。
引脚2为DQ端: 该引脚是数据的输入/输出端, 对于单线传输是漏极开路。 (3)数字温度传感器内部结构
DS18B20内部结构主要有四部分组成:温度传感器,64位光刻ROM,非挥发的温度报警触发器TH和TL,高速暂存器。如图2-4所示。
图2-4 DS18B20内部结构图
⑥ 负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
引脚3为VDD端:该引脚接+5V,为电源输入端。 图2-3 DS18B20引脚图
(4)DS18B20工作原理
DS18B20其内部含有两个温度系数不同的温敏振荡器,其中低温度系数振荡器相当于标尺,高温度系数振荡器相当于测温元件,通过不断比较两个温敏振荡器的振荡周期得到两个温敏振荡器在测量温度下的振荡频率比值。根据频率比值和温度的对应曲线得到相应的温度值。这种方式避免了测温过程中的A/D转换,提高了温度测量的精度。低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其振荡频率明显改变,是很敏感的振荡器,它所产
桂林电子科技大学信息科技学院毕业设计(论文)说明书 第 7 页 共 48 页
生的信号作为减法计数器2的脉冲输入,为计数器2提供一个频率随温度变化的计数脉冲。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。
(5)DS18B20时序图
单片机芯片通过发命令字对DS18B20进行控制。命令字分为二种:ROM命令字和RAM命令字。不同的命令字代表不同的操作。在发送每一个ROM命令字和RAM命令字之前,都要先发送初始化时序。
① DS18B20复位时序如图2-5所示
图2-5 DS18B20的复位时序图
图2-6 DS18B20的读时序图
② DS18B20的读时序如图2-6所示
对于DS18B20的读时序分为读0时序和读1时序两个过程。DS18B20的读时隙是从主机把单总线拉低之后,在15 微秒之内就得释放单总线,好让DS18B20把数据传输到 ③ DS18B20的写时序如图2-7所示
单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。
桂林电子科技大学信息科技学院毕业设计(论文)说明书 第 8 页 共 48 页
图2-7 DS18B20的写时序图
对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。DS18B20写0时序
和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。 2.2.2 DS18B20硬件接口电路
DS18B20采用3脚PR-35封装,接线图如图2-8所示,如图电路采用外接电源工作方式,其中DS18B20是采用单总线进行数据传输,外接一个4.7K的上拉电阻与单片机的P3.0口相接,通过P3.0端口进行双向传输。
图2-8 DS18B20硬件接线图 2.3 湿度模块电路设计分析
2.3.1 DHT11传感器内部结构及工作原理
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,传感器内部是由一个电阻式感湿元件和一个NTC测温元件组成。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,其中信号传输距离可达20米以上。 (1)DHT11引脚功能如图2-9所示:
引脚1为VDD: 接3V-5.5V的直流电源。
引脚2为DATA:该引脚为单总线串行数据传输脚。 引脚3为NC: 该引脚为空脚,悬空。
引脚4为GND: 该引脚为接低端,接电源负极。
DHT11数字型温湿度传感器的测量分辨率分别为 8bit(温度)、8bit(湿度)。直接与微控制器的端口P3.4连接。微控制器模拟传感器DHT11的工作时序,读取其寄存器的湿度值,微控制器是采取主动的方式与传感器DHT11进行通信,并且DHT11传感器不需要
(2)DHT11时序原理分析 图2-9 DHT11引脚图
桂林电子科技大学信息科技学院毕业设计(论文)说明书 第 9 页 共 48 页
进行相关的寄存器设置。 ① DATA的通讯方式
DATA用于微处理器与DHT11之间的通讯和同步、采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,小数部分用于扩展,在本系统读出为零。一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和。数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。单片机发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。在从模式下,DHT11接收到开始信号触发一次温湿度采集, 如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。采集数据后转换到低速模式。时序图如图2-10所示。
图2-10 DHT11读时序图
② DHT11写时序如图2-11所示
总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。如图2-11所示。
图2-11 DHT11写时序图
③ DHT11结束时序图如图2-12所示
总线为低电平,表明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短决定了数据位是0还是1。如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正
桂林电子科技大学信息科技学院毕业设计(论文)说明书 第 10 页 共 48 页
常。当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字“0”信号表示方法如图2-12所示,数字“1”信号表示方法如图2-13所示。
图2-12 DHT11结束时序图
④ DHT11信号表示时序图如图2-13所示
图2-13 DHT11信号表示图
2.3.2 DHT11硬件接口电路
图2-14 DHT11硬件接线电路图
本模块电路设计VCC端供电电压为3V-5.5V,数据连接线长度小于20米时,用5K的上拉电阻,大于20米时根据实际情况使用合适上拉电阻,通过上拉电阻使控制总线处在高电平状态。电源引脚(VCC,GND)之间加一个100nF的电容,用于去耦滤波。在引脚1上加正向二极管用以预防电源接反而烧传感器。如图2-14所示。 2.4 时钟模块电路设计分析
在本模块设计中,为了使系统具有实时性,采用DS1302时钟芯片给系统提供时钟信号(年,月,日,时,分,秒),然后通过I/O口连接方式,单片机对DS1302写入数据和读取数据。通过控制单片机也可以实现计时功能,但是如果单片机掉电后就麻烦了,实时时钟数据会丢失,而外加DS1302时钟芯片可以解决掉电问题,从而防止数据丢失。 2.4.1 DS1302芯片结构及工作原理
DS1302是一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口