温湿度环境监测系统项目设计方案.doc_第1页
温湿度环境监测系统项目设计方案.doc_第2页
温湿度环境监测系统项目设计方案.doc_第3页
温湿度环境监测系统项目设计方案.doc_第4页
温湿度环境监测系统项目设计方案.doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

温湿度环境监测系统项目设计方案第一章 引 言现代电子技术日新月异,各种新型的自动控制系统也越来越多地运用到人们的日常生活、工业生产等领域,它不但可以提高劳动生产率,而且可以使控制的设备或执行的操作更加精确。传感器是信息采集的重要工具,传感器技术与通信技术(信息传输)和计算机技术(信息处理),构成了现代信息技术的三大支柱,它们在信息系统中分别起着“感觉”,“神经”,和“大脑”的作用。现代电子产品正在以前所未有的革新速度,向着功能多样化,体积最小化,功耗最低化的方向发展。它与传统电子产品在设计上的显著区别:一是大量使用大规模可编写芯片,以提高产品性能,缩小产品体积,降低产品功耗;二是广泛运用现代计算机技术,以提高电子设计自动化程序,缩短开发周期,提高产品的竞争力。单片机的单芯片的微小体积和极低的成本,可广泛地嵌入到电子系统,办公自动化、舰船、个人信息终端及通信产品等方方面面,成为现代电子系统中最重要的智能化工具。测量温湿度的关键是温湿度传感器,温湿度传感器的发展经历了三个发展阶段:传统的分立式传感器,模拟集成传感器,智能集成传感器。目前,国际上新型温湿度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。本文介绍智能集成温度传感器DS18B20和湿度传感器HS1101的结构特征;以STC89C52单片机为控制器,以1602型LCD为显示器的温湿度测量装置;单片机对温、湿度传感器的控制程序,温、湿度的读取,16进制到BCD码转换以及LCD显示程序。使用DS1820的测温系统电路简单,测温精度高,连接方便,占用处理器I/O端口少。使用HS1101的湿度传感器价格低廉,精度高,软件资源丰富。但是较小的硬件开销意味着相对复杂的软件补偿,传感器与处理器间采用串行的数据通信,因此在进行软件设计时设计汇编程序时I/O的时序就显得较为复杂。温湿度是最基本的环境参数,人们的生活与其息息相关,在工业生产过程中需要实时测量温湿度,在农业生产中也离不开温湿度的测量,因此研究温度和湿度的测量方法和装置具有重要的意义。51第二章 主要器件选取第二章 设计方案在本章中,我们将温、湿度环境监测系统的总体设计及其主要功能特点进行简单的分析,并给出它的特点、实现功能、系统的简单操作以及对单片机及其控制系统的了解。2.1 计算机、电子技术发展概述近年来,计算机技术迅猛发展,使得计算机在工业,农业,国防科研及日常生活的各个领域显示了日益旺盛的生命力,它已成为各国工业发展水平的主要标志之一,是发展新技术,改造老技术的强有力的武器,计算机使人类面临着一个新的赞赏技术和工业革命,它的作用远远超过了因蒸汽机和电的出现而产生的工业革命。目前,单片机正朝着高性能和多品种方向发展,单片机的发展正朝着CMOS化,低功耗,小体积,大容量,高性能,低价格和外围电路的内装化等几个方面发展。近几年,由于CMOS技术的进步,大大地促进了单片机的CMOS化,此种芯片除了低功耗外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态,并且单片机一般采用精简指令集结构和流水线技术,可以大幅度提高运行速度,提升信息处理功能,中断和定时控制功能,在一般上还具有串行扩展技术,随着低价位OTP及各种类型片内程序存储器的发展,加之外围接口不断进入片内,特别是IIC,API等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。这就引导我们利用单片机来实现对数显可调稳压电源的控制。 随着电子技术的迅速发展,计算机已深入渗透到我们的生活中,就51系列而言,由于Intel公司将其内核使用权以专利互换或出售的形式转给世界许多著名IC制造商,随着计算机技术的不断发展,在工业测量控制领域内单片机的应用越来越广泛。同时,随着超大规模集成电路工艺和集成制造技术的不断完善,单片机的硬件集成度也不断提高,已经出现了能满足各种不同需求、具有各种特殊功能的单片机,这类单片机具有集成度高、性能价格比优越、货源充足等优点,在工业测量领域内获得了极为广泛的应用价值。现代的电子产品朝密集型发展,而电子产品的温度特性普遍比较差,这就对温、湿度的监测提出了新的要求。若采用国外进口的温、湿度监测系统,虽然其性能较好,但是结合国情,其价格相当昂贵,又是全英文,推广起来较困难。就是在以上问题出现的情况下,我们设计出一个利用集成温度传感器及湿度传感器,配合单片计算机系统,从软件的编制上实现对各外围硬件的控制,最终实现对当前环境温、湿度进行监测。在硬件的设计上,所有元器件都采用了通用型产品,使得设计出来的产品生产及维修都相当方便,可以有效地降低成本,同时另外一点就是能用软件实现的功能尽量选用软件进行操作,更加突出了产品的简单性和高可靠性,因此,我们这一设计方法是一个值得推广的方法,接下来我们就对方案与设计原理方框图进行比较分析。2.2 系统主要单元的选择与论证 2.2.1单片机控制模块的选择论证方案一:采用XC9000系列的FPGA。该类器件具有并行处理能力,能快速的响应外部的各种数字信号,但在数据处理方面过于复杂,而且芯片价格较昂贵。 方案二:采用单片机作为控制核心,单片机数学运算功能较强。在程序相互调用方面,处理方便灵活,性能稳定,适合实际应用。且单片机技术发展较为成熟,价格便宜。基于以上分析,采用单片机控制可更为简便灵活地实现系统功能,故拟采用方案二。2.2.2温度湿度检测模块的选择与论证方案一:选用DHT11作为温湿度检测模块。DHT11是一款数字输出的复合传感器,包含一个电阻式感湿元件和NTC式温度检测元件,可测2090%RH湿度,误差5%RH,050摄氏度,误差2摄氏度。方案二:选用DS18B20温度传感器和HS1101湿度传感器。DS18B20是一线式数字温度传感器,具有独特的单线式接口方式,测量范围在55125,误差为0.5。最高精度可达0.0625。HS1101是电容式湿度传感器,可测相对湿度范围在0%100%RH,误差为2%RH。方案选择,有上述数据可知,根据需要(温度测量范围为-10-50,湿度为0-100%;温度测量误差为0.1,湿度测量误差为3%RH;),从设计要求的精度来看,本方案更优。综上所述,虽然方案一具有综合作用,但是方案二的测试范围和精度都由于方案一,故本模块采用方案二。2.2.3显示模块的选择与论证方案一:采用12864液晶模块显示测得的数据,可显示较多组的数据,字体较大,可清晰读数,但12864液晶模块价格昂贵,接线复杂,故不采用。方案二:采用1602液晶模块显示所测数据,1602液晶接线简单方便,同时也能满足显示需要,价格远低于12864液晶。因此,本方案为首选方案。综上所述,显示模块选择方案二。2.3主要器件选取与系统方框图为了使设计具有高可靠性,与实际运用的紧密结合性,从经济、实用的角度出发,我们对室内温、湿度控制系统进行精心的设计,在设计过程中,我们综合多方面的知识进行分析,对于本系统的设计,其控制部分的电路基本相同,主要不同的是对温、湿度传感器的选用,下面就各种不同的传感器构成的温、湿度监测系统进行分析与对比。 2.3.1 温度传感器的选取 一、热膨胀式温度计该温度计是利用膨胀法来测量温度的一种仪表。膨胀式温度计按选用的物质不同可分为液体膨胀式温度计,气体膨胀式温度计(压力式温度计) 和固体膨胀式温度计三大类。对于液体膨胀式温度计,根据填充的工作液不同又可分为水银温度计和有机液体温度计;固体膨胀式温度计,按结构又可分为双金属温度计和杆式温度计两种。膨胀式温度计可以用作标准仪器,广泛用于测量设备,管道和容器的温度; 在医疗卫生和食品工业中也得到了广泛的应用。膨胀式温度计具有结构简单,制造和使用方便,价格便宜以及精度高等优点。缺点:不便于远距离测温(压力式温度计除外) ,结构脆弱,易坏。二、电阻温度计热电阻是利用导体或半导体的电阻值随温度变化而变化的特性来测量温度的一种感温元件。使用热电阻作感温元件的温度计常称为电阻温度计。常用的热电阻有: 铜电阻、铂热电阻和镍热电阻。热电阻必须与二次仪表配合使用才能指示出被测介质的温度。热电阻的测温原理是基于金属导体的电阻值随温度的变化而变化的特性,再用显示仪表测出热电阻的电阻值从而得出与电阻值相应的温度值。这种测温的方法已广泛运用于工业生产与民用生活中,在此基础上,人们还将热敏电阻与信号放大、模数转换集成在一块芯片中,开发了集成温度传感器,使得设计出来的温度自动控制系统既简单可靠性又高,因此在业内运用极广。优点:电阻温度计具有测量精度高,性能稳定,灵敏度高,应用范围广,可远距离测温,便于微机实时处理,并能实现温度自动控制和记录。三、热电偶热电偶是用两种不同成份的导体焊接在一起,两端温度不同时,在回路中就会有热电势产生,因此热电偶是通过测量热电势从而测量温度的一种感温元件,它是一种变换器,它能将温度信号转变为电信号再由显示仪表显示出来。热电偶测量温度的基本原理是热电效应。它是热电效应理论的具体应用之一。在温度测量中得到了广泛的应用。优点:测量精度高,结构简单,动态响应快,可作远距离测量, 测温范围广。四、石英温度传感器测温仪石英温度传感器的测温原理是以石英晶体片作为测温元件,将温度变化的模拟量转化为石英晶体震荡频率的数字量,再将此频率信号进行转换,并显示其温度值。石英晶体温度传感器稳定性很好,灵敏度可达0.001 以上。缺点:响应速度较慢,测温速度约为一秒钟一次,显然不适合快速测温场合。五、DS18B20传感器(1)适应电压范围更宽,电压范围:3.05.5V,寄生电源方式下可由数据线供。 (2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 (3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。 (4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。 (5)温范围55125,在-10+85时精度为0.5。 (6)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。 (7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。 (8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。 (9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。经过以上分析,结合本系统的运用需要,决定选用电压电流式集成温度传感器DS18B20作为系统的测温传感器。2.3.2 湿度传感器的选取湿敏传感器是能够感受外界湿度变化,并通过器件材料的物理或化学性质变化,将湿度转化成有用信号的器件。湿度检测较之其它物理量的检测显得困难,这首先是因为空气中水蒸气含量要比空气少得多;另外,液态水会使一些高分子材料和电解质材料溶解,一部分水分子电离后与溶入水中的空气中的杂质结合成酸或碱,使湿敏材料不同程度地受到腐蚀和老化,从而丧失其原有的性质;再者,湿信息的传递必须靠水对湿敏器件直接接触来完成,因此湿敏器件只能直接暴露于待测环境中,不能密封。通常,对湿敏器件有下列要求:在各种气体环境下稳定性好,响应时间短,寿命长,有互换性,耐污染和受温度影响小等。微型化、集成化及廉价是湿敏器件的发展方向。 HS1101以其全互换性、在标准环境下不需校正、长时间饱和下快速脱湿、快速反应时间、价格低廉等特点深受大家欢迎。2.3.3总体方案设计该系统主要由以下功能块系统构成:中央控制处理器STC89C52组成的主机系统;环境数据采集系统,输出显示与键盘控制系统等。主要的系统电路有:电源电路、温度传感器与湿度传感器电路、显示电路,报警电路、键盘输入控制电路等。电路分析我们在下一章节中进行分析。该系统的主要特点有:(1)该产品的互换性好,响应速度快,抗干扰能力强,外围电路简单易懂,因此体积小。(2)该系统能用软件的方式控制硬件,所有用软件方式设计的系统向硬件系统的转换是由有关开发软件自动完成的,易操作。(3)可以从以前的组合设计转向真正的自由设计,所以设计的移植性好,效率高。可适合大规模的现场制作。 温度传感器DS18B20湿度传感器HS1101多谐振荡器波形产生电路CPU处理器STC89C51键盘输入控制电路系统电源1602液晶显示电路蜂鸣器报警电路图 2-1 基于DS18B20和HS1101的温湿度监测系统方框图系统0017理方框图第三章 设计原理第三章 设计原理3.1 DS18B20简介3.1.1 概述 Dallas 半导体公司的数字化温度传感器 DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。同DS1820一样DS18B20也支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C 范围内,精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V 的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20 数字温度计提供 9 位温度读数,指示器件的温度 。 信息经过单线接口送入 DS18B20 或从 DS18B20 送出,因此从中央处理器到 DS18b20 仅需连接一条线(和地),读写和完成温度变换所需的电源可以由数据线本身提供 ,而不需要外部电源。 因为每一个 DS1820 有唯一的系列(silicon serial number)因此多个 DS1820 可以存在于同一条单线总线上。这允许在许多不同的地方放置温度灵敏器件。此特性的应用范围包括 HVAC 环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测. 1. 特性 *独特的单线接口,只需 1 个接口引脚即可通信 *多点(multidrop)能力使分布式温度检测应用得以简化 *不需要外部元件 *可用数据线供电 *不需备份电源 *测量范围从-55至+125,增量值为 0.5 等效的华氏温度范围是-67F至257F ,增量值为 0.9F *以9 位数字值方式读出温度 *在1 秒(典型值)内把温度变换为数字 *用户可定义的,非易失性的温度告警设置 *告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况) *应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统2 . 引脚排列3. 引脚说明 引 脚8脚SOIC引脚PR35符号说 明51GND地42DQ单线运用的数据输入/输出引脚,漏极开路见。33Vdd寄生电可选Vdd引脚 3.2.2 详细说明 1. 工作原理 图3-1的框图表示 DS18B20 的主要部件 DS18B20 有三个主要的数据部件:1)64 位光刻ROM;2)温度灵敏元件;3)非易失性温度告警触发器TH和TL。器件从单线的通信线取得其电源,在信号线为高电平的时间周期内,把能量贮存在内部的电容器中,在单信号线为低电平的时间期内,断开此电源 直到信号线变为高电平重新接上寄生(电容)电源为止。作为另一种可供选择的方法,DS18B20也可用外部5V电源供电。 图3-1 DS18B20结构框图 与DS18B20的通信经过一个单线接口。在单线接口情况下,在ROM操作未定建立之前不能使用存贮器和控制操作。主机必须首先提供五种ROM操作命令之一:1) Read ROM(读 ROM) ;2) Match ROM(匹配ROM);3)Search ROM(搜索 ROM);4)Skip ROM(跳过 ROM); 5)Alarm Search(告警搜索)。这些命令对每一器件的 64 位激光 ROM 部分进行操作。如果在单线上有许多器件,那么可以挑选出一个特定的器件,并给总线上的主机指示存在多少器件及其类型。在成功地执行了 ROM 操作序列之后,可使用存贮器和控制操作,然后主机可以提供六种存贮器和控制操作命令之一。 一个控制操作命令指示DS18B20完成温度测量,该测量的结果将放入 DS1820 的高速暂存存贮器(Scratchpad memory)通过发出读暂存存储器内容的存储器操作命令可以读出此结果。每一温度告警触发器TH和TL构成一个字节的EEPROM。如果不对DS18B20施加告警搜索命令,这些寄存器可用作通用用户存储器。使用存储器操作命令可以写TH和TL。对这些寄存器的读访问通过高速暂存存贮器。所有数据均以最低有效位在前的方式被读写。 2. 寄生电源(parasite power) 图3-1示出寄生电源电路。当I/O或Vdd引脚为高电平时,这个电路便取得电源,只要符合指定的定时和电压要求,I/O 将提供足够的功率。寄生电源的优点是双重的:1)利用此引脚,远程温度检测无需本地电源;2)缺少正常电源条件下也可以读 ROM。 为了使DS18B20能完成准确的温度变换,当温度变换发生时I/O线上必须提供足够的功率。因为DS18B20的工作电流高达1mA,5K的上拉电阻将使I/O线没有足够的驱动能力。如果几个DS1820在同一条I/O线上而且企图同时变换,那么这一问题将变得特别尖锐。 3. DS18B20的运用DS18B20通过使用在板温度测量专利技术来测量温度。温度测量电路的方框图见图3-4所示。DS18B20 通过门开通期间内低温度系数振荡器经历的时钟周期个数计数来测量温度,而门开通期由高温度系数振荡器决定。计数器予置对应于-55的基数,如果在门开通期结束前计数器达到零,那么温度寄存器它也被予置到-55的数值将增量,指示温度高于-55。同时,计数器用钭率累加器电路所决定的值进行予置。为了对遵循抛物线规律的振荡器温度特性进行补偿,这种电路是必需的,时钟再次使计数器计值至它达到零。如果门开通时间仍未结束,那么此过程再次重复。钭率累加器用于补偿振荡器温度特性的非线性,以产生高分辩率的温度测量。通过改变温度每升高一度,计数器必须经历的计数个数来实行补偿。因此,为了获得所需的分辩率,计数器的数值以及在给定温度处每一摄氏度的计数个数(钭率累加器的值)二者都必须知道。DS18B20 内部对此计算的结果可提供 0.5的分辨力。温度以 16bit 带符号位扩展的二进制补码形式读出,表3-1给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS18B20 测温范围-55+125,以 0.5递增。如用于华氏温度,必须要用一个转换因子查找表。表3-1温度数字输出(二进制)数据输出(16进制)+12500000111 1111101007D0h+25.062500000001 100100010191h+1/200000000 000010000008h000000000 000000000000h-1/211111111 11111000FFF8h-25.062511111110 01101111FF6Fh-5511111100 10010000FC90h 注意 DS18b20内温度表示值为 1/2LSB,如下所示9bit 格式:最高有效(符号)位被复制充满存储器中两字节温度寄存器的高 MSB位,由这种“符号位扩展”产生出了示于表 1 的16bit 温度读数。 可用下述方法获得更高的分辨力。首先,读取温度值,将 0.5位(LSB)从读取的值中截去,这个值叫做 TEMP_READ。然后读取计数器中剩余的值,这个值是门周期结束后保留下来的值(COUNT_REMAIN)。最后,我们用到在这个温度下每度的计数值(COUNT_PER_C)。用户可以用下面的公式计算实际温度值:4 . 报警搜索操作 DS18B20完成一次温度转换后,就拿温度值和存储在TH和TL中的值进行比较。因为这些寄存器是8位的,所以0.5位被忽略不计。TH或TL 的最高有效位直接对应16位温度寄存器的符号位。如果测得的温度高于TH或低于TL,器件内部就会置位一个报警标识。每进行一次测温就对这个标识进行一次更新。当报警标识置位时,DS18B20会对报警搜索命令有反应。这样就允许许多DS18B20并联在一起同时测温,如果某个地方的温度超过了限定值,报警的器件就会被立即识别出来并读取,而不用读未报警的器件。 5 . 64位光刻ROM 每只DS18B20都有一个唯一的长达64位的编码。最前面8位是单线系列编码(DS18B20的编码是19h)。下面 48 位是一个唯一的序列号。最后8位是以上56位的CRC码。64位ROM和 ROM 操作控制区允许DS18B20做为单线制器件并按照详述于“单线总线系统”一节的单线协议工作。只有建立了 ROM 操作协议,才能对DS18B20进行控制操作。单线总线控制器必须提供5个ROM操作命令其中之一:1)Read ROM,2)Match ROM,3)Search Rom,4)Skip ROM,5)Alarm Search。成功进行一次 ROM 操作后,就可以对 DS18b20 进行特定的操作,总线控制器可以发出六个存储器和控制操作命令中的任一个。64位光刻ROM8位CRC编码48位序列号8位产品系列编码MSB LSB MSB LSB MSB LSB6. CRC 发生器 DS18B20 中有8 位CRC 存储在 64 位 ROM 的最高有效字节中。总线控制器可以用64位ROM中的前56位计算出一个CRC值,再用这个和存储在DS18b20中的值进行比较,以确定ROM数据是否被总线控制器接收无误。CRC计算等式如下: CRC=X8+X5+X4+1 DS18B20同样用上面的公式产生一个8位CRC值,把这个值提供给总线控制器用来校验传输的数据。在任何使用CRC进行数据传输校验的情况下,总线控制器必须用上面的公式计算出一个CRC值,和存储在DS18B20的64位ROM中的值或 DS18B20内部计算出的8位CRC值(当读暂存器时,做为第9个字节读出来)进行比较。CRC值的比较以及是否进行下一步操作完全由总线控制器决定。当在 DS18B20中存储的或由其计算的CRC值和总线控制器计算的值不相符时,DS18B20内部并没有一个能阻止命令序列进行的电路。 单线CRC可以用一个由移位寄存器和XOR门构成的多项式发生器来产生。 移位寄存器的各位都被初始化为0。然后从系列编号的最低有效位开始,一次一位移入寄存器,8位系列编码都进入以后,序列号再进入,48位序列号都进入后,移位寄存器中就存储了CRC值。移入8位CRC会使移位寄存器复0。 7. 存储器 DS18B20的存储器结构示于图3-2。存储器由一个暂存RAM和一个存储高低温报警触发值TH和TL的非易失性电可擦除(E2)RAM组成。当在单线总线上通讯时,暂存器帮助确保数据的完整性。数据先被写入暂存器,这里的数据可被读回。数据经过校验后,用一个拷贝暂存器命令会把数据传到非易性(E2)RAM 中。这一过程确保更改存储器时数据的完整性。暂存器的结构为8个字节的存储器。头两个字节包含测得的温度信息。第三和第四字节是TH和TL的拷贝,是易失性的,每次上电复位时被刷新。下面两个字节没有使用,但是在读回数据时,它们全部表现为逻辑1。第七和第八字节是计数寄存器,它们可以被用来获得更高的温度分辨力。还有一个第九字节,可以用读暂存器命令读出。这个字节是以上八个字节的 CRC 码。图3-2 DS18b20存储器图8. 单线总线系统 单线总线系统包括一个总线控制器和一个或多个从机。DS18B20是从机。关于这种总线分三个题目讨论:硬件结构、执行序列和单线信号(信号类型和时序)。 单线总线只有一条定义的信号线;重要的是每一个挂在总线上的器件都能在适当的时间驱动它。为此每一个总线上的器件都必须是漏极开路或三态输出。DS18B20 的单总线端口(I/O 引脚)是漏极开路式的,内部等效电路见图3-3。一个多点总线由一个单线总线和多个挂于其上的从机构成。单线总线需要一个约5K的上拉电阻。图3-3 硬件结构单线总线的空闲状态是高电平。无论任何理由需要暂停某一执行过程时,如果还想恢复执行的话,总线必必须停留在空闲状态。在恢复期间,如果单线总线处于非活动(高电平)状态,位与位间的恢复时间可以无限长。如果总线停留在低电平超过 480s,总线上的所有器件都将被复位。 通过单线总线端口访问 DS1820 的协议如下: *初始化 *ROM 操作命令 *存储器操作命令 *执行/数据 通过单线总线的所有执行(处理)都从一个初始化序列开始。初始化序列包括一个由总线控制器发出的复位脉冲和跟有其后由从机发出的存在脉冲。存在脉冲让总线控制器知道 DS18B20在总线上且已准备好操作。a. ROM操作命令 一旦总线控制器探测到一个存在脉冲,它就可以发出5个ROM命令中的任一个。所有 ROM 操作命令都8位长度。下面是这些命令(参见图2-6流程图): Read ROM 33h 这个命令允许总线控制器读到DS18B20的8位系列编码、唯一的序列号和8位CRC码。只有在总线上存在单只DS18B20的时候才能使用这个命令。如果总上有不止一个从机,当所有从机试图同时传送信号时就会发生数据冲突(漏极开路连在一起开成相与的效果)。 Match ROM 55h 匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20。只有和64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作命令。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。 Skip ROM CCh 这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下右以节省时间。如果总线上不止一个从机,在Skip ROM命令之后跟着发一条读命令,由于多个从机同时传送信号,总线上就会发生数据冲突(漏极开路下拉效果相当于相与)。 Search ROM F0h 当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。 Alarm Search ECh 这条命令的流程图和Search ROM相同。然而,只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要 DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。 b. I/O信号 DS18B20需要严格的协议以确保数据的完整性。协议包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0 和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。 和DS18B20间的任何通讯都需要以初始化序列开始,一个复位脉冲跟着一个存在脉冲表明 DS18B20 已经准备好发送和接收数据(适当的ROM命令和存储器操作命令)。 总线主机发送(TX)一复位脉冲(最短为480us的低电平信号)接着总线主机便释放此线并进入接收方式(Rx )。单线总线经过5k的上拉电阻被拉至高电平状态。在检测到 I/O 引脚上的上升沿之后,DS18B20等待15-60us并且接着发送存在脉冲(60-240us的低电平信号)。c . 存储器操作命令 下述命令协议概括于表3-2 表3-2指 令说 明协议发出协议代码后单总线操作备注温度转换命令温度转换启动温度转换44h读温度“忙”状态1存储器命令读暂存存储器读暂存器和CRC字节BEh读数据直到9字节写暂存存储器写字节到暂存器地此2和3处(TH 和TL温度报警触发器)4Eh写二个字节到地址2,33复制暂存存储器把暂存器数据复制到非易性存储器仅地址2和地址348h读复制状态2重新调入E2把贮存在非易失性存储器内的数值重新调入暂存器(温度报警触发器)B8h读温度“忙”状态读电源发送电源模式到主机B4h读电源 Write Scratchpad 4E 这个命令向 DS1820 的暂存器中写入数据,开始位置在地址 2。接下来写入的两个字节将被存到暂存器中的地址位置 2 和3。可以在任何时刻发出复位命令来中止写入。 Read Scratchpad BEh 这个命令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第 9(字节 8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。 Copy Scratchpad 48h 这条命令把暂存器的内容拷贝到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝到E2存储器,DS18B20就会输出一个“0”,如果拷贝结束的话,DS18B20则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。 Convert T 44h 这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后 DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而 DS18B20又忙于做时间转换的话,DS18B20将在总线上输出 “0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。 Recall E2 B8h 这条命令把报警触发器里的值拷回暂存器。这种拷回操作在DS18B20上电时自动执行,这样器件一上电 暂存器里马上就存在有效的数据了。若在这条命令发出之后发出读时间隙,器件会输出温度转换忙的标识: “0”=忙,“1”=完成。 Read Power Supply B4h 若把这条命令发给 DS18B20 后发出读时间隙,器件会返回它的电源模式:“0”=寄生电源,“1”=外部电源。 d . 读/写时间隙 DS18B20的数据读写是通过时间隙处理位和命令字来确认信息交换。 写时间隙 当主机把数据线从逻辑高电平拉到逻辑低电平的时候,写时间隙开始。有两种写时间隙:写1时间隙和写0时间隙。所有写时间隙必须最少持续60s,包括两个写周期间至少1s的恢复时间。 I/O线电平变低后,DS18B20在一个15s到60s的窗口内对I/O线采样。如果线上是高电平,就是写1,如果线上是低电平,就是写0 主机要生成一个写时间隙,必须把数据线拉到低电平然后释放,在写时间隙开始后的 15s内允许数据线拉到高电平。 主机要生成一个写0时间隙,必须把数据线拉到低电平并保持60s。 读时间隙 当从DS18B20读取数据时,主机生成读时间隙。当主机把数据线从高高平拉到低电平时,写时间隙开始。数据线必须保持至少1s;从DS18B20输出的数据在读时间隙的下降沿出现后15s内有效。因此,主机在读时间隙开始后必须停止把I/O脚驱动为低电平15s,以读取I/O脚状态。在读时间隙的结尾,I/O引脚将被外部上拉电阻拉到高电平。所有读时间隙必须最少60s,包括两个读周期间至少1s的恢复时间。3.2 HS1101简介3.2.1 概述HUMIREL 湿度传感器 HS1101/HS1100 基于独特工艺设计的电容元件,这些相对湿度传感器可以大批量生产。可以应用于办公自动化,车厢内空气质量控制,家电,工业控制系统等。在需要湿度补偿的场合也可以得到很大的应用。 特点: 全互换性 在标准环境下不需校正 长时间饱和下快速脱湿 可以自动化焊接,包括波峰焊或水浸 高可靠性与长时间稳定性 专利的固态聚合物结构 可用于线性电压或频率输出回炉 快速反应时间 3.2.2 HS1101工作原理温度检测采用HS1101型温度传感器,HS1101是HUMIREL公司生产的变容式相对湿度传感器,采用独特的工艺设计。设计的电路如图3-4所示。图3-4 湿度测量电路555芯片外接电阻R57,R58与HS1101,构成对HS1101的充电回路。7端通过芯片内部的晶体管对地短路实现对HS1101的放电回路,并将引脚2,6端相连引入到片内比较器,构成一个多谐波振荡器。HS1101作为一个变化的电容器,仿真图中由Cx代替,连接2和6引脚。充电、放电时间分别为t 充电 =Cx(R2 +R1 ) ln2 t 放电 =CxR1 ln2由图附2-1 HS1101湿度与电容的函数关系可知相对湿度与电容的关系可看成直线段,所以有f= 1 /(t 充电 +t 放电 )= 1 /Cx(R2+2R1)ln2)=1.442695/(R1+2R2)Cx如果 R1=560K,R2=560K那么 f=1.442695/(1680)K*C已知 Cx:161pF193pF则有 f:5334Hz4449Hz又 RH=0100%由此可以看出,空气相对湿度与555芯片输出频率存在一定线性关系。可以通过微处理器采集555芯片的频率,然后查表即可得出相对湿度值。第四章 系统设计第四章 系统设计4.1 系统组成整个系统硬件由三大部分组成:以DS18B20和HS1101温湿度传感器为主的温湿度测量传感部分、以STC89C52单片机为主的控制部分、以1602液晶显示器为主的显示部分。系统程序分传感器控制程序和显示器程序两部分,传感器控制程序是按照DS18B20的通信协议编制。系统的工作是在程序控制下,完成对传感器的读写和对温度的显示。整个系统的电路原理图如图4-1所示:图4-1 系统电路原理图4.1.1 温度测量传感部分温度传感器DS18B20将被测环境温度转化成带符号的数字信号(以十六位补码形式,占两个字节)向控制系统传输。输出脚I/O直接与单片机的P2.4相连。RP1为上拉电阻,传感器采用外部电源供电,在I/O线上不要求强的上拉。使总线上主机不需向上连接便在温度变换期间使线保持高电平,这就允许在变换时间内其它数据在单线上传送。4.1.2 湿度测量传感部分HS1101是电容式湿度传感器,由于电容不可直接测量,故选用555多谐震荡电路检测到频率,然后由单片机计算的电容值,再根据电容值算出相应的湿度值,这样能较精确的测出当前环境的相对湿度。4.1.3 控制部分STC89C52是整个装置的控制核心,STC89C52内带8K字节的FlashROM,EA/VPP接高电平使CPU在地址小于8K时访问内部存储器,控制程序就可以存放在FlashROM内,而无须外接片外存储器。Y1为12MHZ晶振与STC89C52的XTAL1和XTAL2引脚相连为系统提供时钟频率。C3和R5构成上电复位电路,C2手动上电复位开关。4.1.4 蜂鸣器电路原理蜂鸣器额定电流IB30mA,而对于AT89S52单片机,P1口的灌电流为 16mA,拉电流为60A,由此可见,仅靠单片机的P1口电流是不能驱动蜂鸣器的,必须使用集晶体管放大电路,为了使单片机消耗的功率更小,所以使用 PNP型晶体管9012。4.1.5 显示部分显示器模块由1602液晶显示器及其相配套的控制器、驱动器(driver)和偏压产生电路构成。可同时显示两行字符。显示器的BD0BD7引脚与STC89C52的P0口连接,完成数据传输。4.1.6 电源部分系统电源部分采用的是4节1.5V的电池,能为系统提供稳定的5V电压。 4.2 软件流程图主程序开始读取温湿度报警线确定定时器工作方式18B20初始化系统初始化1S标志到?键盘处理子程序获取计算,显示温湿度信息N修改报警线子程序Y图 4-1 主程序流程图第四章 系统设计K0程序处理入口延迟去抖动K0按下?K0按下?温度报警线加1菜单是1?湿度报警线加1菜单是2?K0程序处理返回YYNNNNY K0键盘处理子程序K1程序处理入口延迟去抖动K1按下?K1按下?温度报警线减1菜单是1?湿度报警线减1菜单是2?K1程序处理返回YYNNNNYYYK1键盘处理子程序第四章 系统设计开始初始化18B20跳过读序列号,启动温度转换跳过读序列号,读取温度值处理返回温度值温度是否为正?正负温度标志位置1置2返回正负温度标志位置0置2NY温度采集流程图图 4-2 子程序流程图主程序开始,单片机将温湿度预警线和当前温湿度数据显示在1602液晶屏上。如果K3键按下,则进行温湿度报警线的修改,如果按下K1键,则温度报警线加1,如果按下K2键,则温度报警线减1;再次按下K3键,光标闪烁到湿度报警线,如果按下K1键,则湿度报警线加1,如果按下K2键,则湿度报警线减1;再次按下K3,液晶屏正常显示温湿度。4.3 系统总的程序设计见附录附14.3.1 读取温度数据子程序的设计本节的主要实现功能为:将传感器检测到的数据信息读出并存于数据缓冲器中。_18B20_read()/读出温度函数_18B20_reset(); /总线复位_18B20_delay(200);_18B20_write(0xcc); /发命令_18B20_write(0x44); /发转换命令_18B20_reset(); _18B20_delay(1);_18B20_write(0xcc); /发命令_18B20_write(0xbe);temp_data0=_18B20read_byte(); /读温度值的低字节temp_data1=_18B20read_byte(); /读温度值的高字节temp=temp_data1;temp=Rset)|(_1820display4=Tset) beep=0; else beep=1;4.3.3 数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论