《毕业设计温湿度环境监测系统毕业论文.doc》由会员分享,可在线阅读,更多相关《毕业设计温湿度环境监测系统毕业论文.doc(54页珍藏版)》请在三一办公上搜索。
1、 温、湿度环境监测系统设计 摘 要温湿度是一种最基本的环境参数,温湿度的测量方法和装置对现在的生活、生产具有重要的意义。此温湿度测量系统是基于单线式温度传感器DS18B20、电容式湿度传感器、单片机STC89C52 对温度湿度分别测量并通过液晶显示屏1602经行显示。温度传感器DS18B20是单线式,体积超小,硬件开消超低,抗干扰能力强,精度高,附加功能强的理想单片机温度传感器,可实时根据指令给出温度数据,可读性高。其结构简单、经济实用、清洗效果好,具有很高的实用价值。本系统具有可读性高,稳定性高,反应速度快,测量值准确的特点。关键词 :单片机,温温度,DS18B20,传感器,液晶显示器Tem
2、perature, humidity environment monitoring system design Abstract Temperature and humidity is one of the most basic environmental parameters. Temperature and humidity measurement methods and devices has the vital significance on present life. The temperature and humidity measurement system is based o
3、n singleline type temperature sensor DS18B20, capacitive moisture sensorSCM STC89C52 for temperature humidity measurement and respectively by LCD display. The line 1602 Temperature sensor DS18B20 is singleline type, volume super-small, hardware KaiXiao ultra-low, strong anti-jamming capability, high
4、 precision, additional features strong ideal single-chip microcomputer temperature sensor, real-time temperature data, depending on the directive given readable. This system has a readable, high stability, reaction speed, measured values exact characteristic.Keyword:microcontroller,temperature and h
5、umidity,DS18B20, sensor,LCD目 录第一章 引 言1第二章 设计方案22.1 计算机、电子技术发展概述22.2 系统主要单元的选择与论证32.2.1单片机控制模块的选择论证32.2.2温度湿度检测模块的选择与论证32.2.3显示模块的选择与论证42.3主要器件选取与系统方框图42.3.1 温度传感器的选取42.3.2 湿度传感器的选取62.3.3总体方案设计6第三章 设计原理83.1 DS18B20简介83.1.1 概述83.2.2 详细说明103.2 HS1101简介183.2.1 概述183.2.2 HS1101工作原理19第四章 系统设计214.1 系统组成214
6、.1.1 温度测量传感部分214.1.2 湿度测量传感部分224.1.3 控制部分224.1.4 蜂鸣器电路原理224.1.5 显示部分224.1.6 电源部分224.2 软件流程图234.3 系统总的程序设计254.3.1 读取温度数据子程序的设计264.3.2 数据比较程序的设计264.3.3 数据设置程序的设计264.4 软件仿真284.5 硬件调试284.6 电路测试29第五章 结论30参考文献31致 谢32附 录33附1 系统设计的原理图33附2 源代码34附3 DS18B20特性46附4 HS1101特性48第一章 引 言现代电子技术日新月异,各种新型的自动控制系统也越来越多地运用
7、到人们的日常生活、工业生产等领域,它不但可以提高劳动生产率,而且可以使控制的设备或执行的操作更加精确。传感器是信息采集的重要工具,传感器技术与通信技术(信息传输)和计算机技术(信息处理),构成了现代信息技术的三大支柱,它们在信息系统中分别起着“感觉”,“神经”,和“大脑”的作用。现代电子产品正在以前所未有的革新速度,向着功能多样化,体积最小化,功耗最低化的方向发展。它与传统电子产品在设计上的显著区别:一是大量使用大规模可编写芯片,以提高产品性能,缩小产品体积,降低产品功耗;二是广泛运用现代计算机技术,以提高电子设计自动化程序,缩短开发周期,提高产品的竞争力。单片机的单芯片的微小体积和极低的成本
8、,可广泛地嵌入到电子系统,办公自动化、舰船、个人信息终端及通信产品等方方面面,成为现代电子系统中最重要的智能化工具。测量温湿度的关键是温湿度传感器,温湿度传感器的发展经历了三个发展阶段:传统的分立式传感器,模拟集成传感器,智能集成传感器。目前,国际上新型温湿度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。本文介绍智能集成温度传感器DS18B20和湿度传感器HS1101的结构特征;以STC89C52单片机为控制器,以1602型LCD为显示器的温湿度测量装置;单片机对温、湿度传感器的控制程序,温、湿度的读取,16进制到BCD码转换以及LCD显示程序。使用DS1820的测温系统电
9、路简单,测温精度高,连接方便,占用处理器I/O端口少。使用HS1101的湿度传感器价格低廉,精度高,软件资源丰富。但是较小的硬件开销意味着相对复杂的软件补偿,传感器与处理器间采用串行的数据通信,因此在进行软件设计时设计汇编程序时I/O的时序就显得较为复杂。温湿度是最基本的环境参数,人们的生活与其息息相关,在工业生产过程中需要实时测量温湿度,在农业生产中也离不开温湿度的测量,因此研究温度和湿度的测量方法和装置具有重要的意义。第二章 设计方案在本章中,我们将温、湿度环境监测系统的总体设计及其主要功能特点进行简单的分析,并给出它的特点、实现功能、系统的简单操作以及对单片机及其控制系统的了解。2.1
10、计算机、电子技术发展概述近年来,计算机技术迅猛发展,使得计算机在工业,农业,国防科研及日常生活的各个领域显示了日益旺盛的生命力,它已成为各国工业发展水平的主要标志之一,是发展新技术,改造老技术的强有力的武器,计算机使人类面临着一个新的赞赏技术和工业革命,它的作用远远超过了因蒸汽机和电的出现而产生的工业革命。目前,单片机正朝着高性能和多品种方向发展,单片机的发展正朝着CMOS化,低功耗,小体积,大容量,高性能,低价格和外围电路的内装化等几个方面发展。近几年,由于CMOS技术的进步,大大地促进了单片机的CMOS化,此种芯片除了低功耗外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态,并且单
11、片机一般采用精简指令集结构和流水线技术,可以大幅度提高运行速度,提升信息处理功能,中断和定时控制功能,在一般上还具有串行扩展技术,随着低价位OTP及各种类型片内程序存储器的发展,加之外围接口不断进入片内,特别是IIC,API等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。这就引导我们利用单片机来实现对数显可调稳压电源的控制。 随着电子技术的迅速发展,计算机已深入渗透到我们的生活中,就51系列而言,由于Intel公司将其内核使用权以专利互换或出售的形式转给世界许多著名IC制造商,随着计算机技术的不断发展,在工业测量控制领域内单片机的应用越来越广泛。同时,随着超大规
12、模集成电路工艺和集成制造技术的不断完善,单片机的硬件集成度也不断提高,已经出现了能满足各种不同需求、具有各种特殊功能的单片机,这类单片机具有集成度高、性能价格比优越、货源充足等优点,在工业测量领域内获得了极为广泛的应用价值。现代的电子产品朝密集型发展,而电子产品的温度特性普遍比较差,这就对温、湿度的监测提出了新的要求。若采用国外进口的温、湿度监测系统,虽然其性能较好,但是结合国情,其价格相当昂贵,又是全英文,推广起来较困难。就是在以上问题出现的情况下,我们设计出一个利用集成温度传感器及湿度传感器,配合单片计算机系统,从软件的编制上实现对各外围硬件的控制,最终实现对当前环境温、湿度进行监测。在硬
13、件的设计上,所有元器件都采用了通用型产品,使得设计出来的产品生产及维修都相当方便,可以有效地降低成本,同时另外一点就是能用软件实现的功能尽量选用软件进行操作,更加突出了产品的简单性和高可靠性,因此,我们这一设计方法是一个值得推广的方法,接下来我们就对方案与设计原理方框图进行比较分析。2.2 系统主要单元的选择与论证 2.2.1单片机控制模块的选择论证方案一:采用XC9000系列的FPGA。该类器件具有并行处理能力,能快速的响应外部的各种数字信号,但在数据处理方面过于复杂,而且芯片价格较昂贵。 方案二:采用单片机作为控制核心,单片机数学运算功能较强。在程序相互调用方面,处理方便灵活,性能稳定,适
14、合实际应用。且单片机技术发展较为成熟,价格便宜。基于以上分析,采用单片机控制可更为简便灵活地实现系统功能,故拟采用方案二。2.2.2温度湿度检测模块的选择与论证方案一:选用DHT11作为温湿度检测模块。DHT11是一款数字输出的复合传感器,包含一个电阻式感湿元件和NTC式温度检测元件,可测2090%RH湿度,误差5%RH,050摄氏度,误差2摄氏度。方案二:选用DS18B20温度传感器和HS1101湿度传感器。DS18B20是一线式数字温度传感器,具有独特的单线式接口方式,测量范围在55125,误差为0.5。最高精度可达0.0625。HS1101是电容式湿度传感器,可测相对湿度范围在0%100
15、%RH,误差为2%RH。方案选择,有上述数据可知,根据需要(温度测量范围为-10-50,湿度为0-100%;温度测量误差为0.1,湿度测量误差为3%RH;),从设计要求的精度来看,本方案更优。综上所述,虽然方案一具有综合作用,但是方案二的测试范围和精度都由于方案一,故本模块采用方案二。2.2.3显示模块的选择与论证方案一:采用12864液晶模块显示测得的数据,可显示较多组的数据,字体较大,可清晰读数,但12864液晶模块价格昂贵,接线复杂,故不采用。方案二:采用1602液晶模块显示所测数据,1602液晶接线简单方便,同时也能满足显示需要,价格远低于12864液晶。因此,本方案为首选方案。综上所
16、述,显示模块选择方案二。2.3主要器件选取与系统方框图为了使设计具有高可靠性,与实际运用的紧密结合性,从经济、实用的角度出发,我们对室内温、湿度控制系统进行精心的设计,在设计过程中,我们综合多方面的知识进行分析,对于本系统的设计,其控制部分的电路基本相同,主要不同的是对温、湿度传感器的选用,下面就各种不同的传感器构成的温、湿度监测系统进行分析与对比。 2.3.1 温度传感器的选取 一、热膨胀式温度计该温度计是利用膨胀法来测量温度的一种仪表。膨胀式温度计按选用的物质不同可分为液体膨胀式温度计,气体膨胀式温度计(压力式温度计) 和固体膨胀式温度计三大类。对于液体膨胀式温度计,根据填充的工作液不同又
17、可分为水银温度计和有机液体温度计;固体膨胀式温度计,按结构又可分为双金属温度计和杆式温度计两种。膨胀式温度计可以用作标准仪器,广泛用于测量设备,管道和容器的温度; 在医疗卫生和食品工业中也得到了广泛的应用。膨胀式温度计具有结构简单,制造和使用方便,价格便宜以及精度高等优点。缺点:不便于远距离测温(压力式温度计除外) ,结构脆弱,易坏。二、电阻温度计热电阻是利用导体或半导体的电阻值随温度变化而变化的特性来测量温度的一种感温元件。使用热电阻作感温元件的温度计常称为电阻温度计。常用的热电阻有: 铜电阻、铂热电阻和镍热电阻。热电阻必须与二次仪表配合使用才能指示出被测介质的温度。热电阻的测温原理是基于金
18、属导体的电阻值随温度的变化而变化的特性,再用显示仪表测出热电阻的电阻值从而得出与电阻值相应的温度值。这种测温的方法已广泛运用于工业生产与民用生活中,在此基础上,人们还将热敏电阻与信号放大、模数转换集成在一块芯片中,开发了集成温度传感器,使得设计出来的温度自动控制系统既简单可靠性又高,因此在业内运用极广。优点:电阻温度计具有测量精度高,性能稳定,灵敏度高,应用范围广,可远距离测温,便于微机实时处理,并能实现温度自动控制和记录。三、热电偶热电偶是用两种不同成份的导体焊接在一起,两端温度不同时,在回路中就会有热电势产生,因此热电偶是通过测量热电势从而测量温度的一种感温元件,它是一种变换器,它能将温度
19、信号转变为电信号再由显示仪表显示出来。热电偶测量温度的基本原理是热电效应。它是热电效应理论的具体应用之一。在温度测量中得到了广泛的应用。优点:测量精度高,结构简单,动态响应快,可作远距离测量, 测温范围广。四、石英温度传感器测温仪石英温度传感器的测温原理是以石英晶体片作为测温元件,将温度变化的模拟量转化为石英晶体震荡频率的数字量,再将此频率信号进行转换,并显示其温度值。石英晶体温度传感器稳定性很好,灵敏度可达0.001 以上。缺点:响应速度较慢,测温速度约为一秒钟一次,显然不适合快速测温场合。五、DS18B20传感器(1)适应电压范围更宽,电压范围:3.05.5V,寄生电源方式下可由数据线供。
20、 (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内把温度值
21、转换为数字,速度更快。 (8)测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。 (9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。经过以上分析,结合本系统的运用需要,决定选用电压电流式集成温度传感器DS18B20作为系统的测温传感器。2.3.2 湿度传感器的选取湿敏传感器是能够感受外界湿度变化,并通过器件材料的物理或化学性质变化,将湿度转化成有用信号的器件。湿度检测较之其它物理量的检测显得困难,这首先是因为空气中水蒸气含量要比空气少得多;另外,液态水会使一些高分子材料和电解质材料溶解,一部分水分子电离后与溶入水
22、中的空气中的杂质结合成酸或碱,使湿敏材料不同程度地受到腐蚀和老化,从而丧失其原有的性质;再者,湿信息的传递必须靠水对湿敏器件直接接触来完成,因此湿敏器件只能直接暴露于待测环境中,不能密封。通常,对湿敏器件有下列要求:在各种气体环境下稳定性好,响应时间短,寿命长,有互换性,耐污染和受温度影响小等。微型化、集成化及廉价是湿敏器件的发展方向。 HS1101以其全互换性、在标准环境下不需校正、长时间饱和下快速脱湿、快速反应时间、价格低廉等特点深受大家欢迎。2.3.3总体方案设计该系统主要由以下功能块系统构成:中央控制处理器STC89C52组成的主机系统;环境数据采集系统,输出显示与键盘控制系统等。主要
23、的系统电路有:电源电路、温度传感器与湿度传感器电路、显示电路,报警电路、键盘输入控制电路等。电路分析我们在下一章节中进行分析。该系统的主要特点有:(1)该产品的互换性好,响应速度快,抗干扰能力强,外围电路简单易懂,因此体积小。(2)该系统能用软件的方式控制硬件,所有用软件方式设计的系统向硬件系统的转换是由有关开发软件自动完成的,易操作。(3)可以从以前的组合设计转向真正的自由设计,所以设计的移植性好,效率高。可适合大规模的现场制作。 温度传感器DS18B20湿度传感器HS1101多谐振荡器波形产生电路CPU处理器STC89C51键盘输入控制电路系统电源1602液晶显示电路蜂鸣器报警电路图 2-
24、1 基于DS18B20和HS1101的温湿度监测系统方框图0017理方框图第三章 设计原理3.1 DS18B20简介3.1.1 概述 Dallas 半导体公司的数字化温度传感器 DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。同DS1820一样DS18B20也支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C 范围内,精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费
25、电子产品等。与前一代产品不同,新的产品支持3V5.5V 的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20 数字温度计提供 9 位温度读数,指示器件的温度 。 信息经过单线接口送入 DS18B20 或从 DS18B20 送出,因此从中央处理器到 DS18b20 仅需连接一条线(和地),读写和完成温度变换所需的电源可以由数据线本身提供 ,而不需要外部电源。 因为每一个 DS1820 有唯一的系列(silicon serial number)因此多个 DS1820 可以存在于同一条单线总线上。这允许在许多不同的地方放置温度灵敏器件。此特性的应用范围包括 HVAC
26、环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测. 1. 特性 *独特的单线接口,只需 1 个接口引脚即可通信 *多点(multidrop)能力使分布式温度检测应用得以简化 *不需要外部元件 *可用数据线供电 *不需备份电源 *测量范围从-55至+125,增量值为 0.5 等效的华氏温度范围是-67F至257F ,增量值为 0.9F *以9 位数字值方式读出温度 *在1 秒(典型值)内把温度变换为数字 *用户可定义的,非易失性的温度告警设置 *告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况) *应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏
27、系统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也可用
28、外部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 操作序列之后,可
29、使用存贮器和控制操作,然后主机可以提供六种存贮器和控制操作命令之一。 一个控制操作命令指示DS18B20完成温度测量,该测量的结果将放入 DS1820 的高速暂存存贮器(Scratchpad memory)通过发出读暂存存储器内容的存储器操作命令可以读出此结果。每一温度告警触发器TH和TL构成一个字节的EEPROM。如果不对DS18B20施加告警搜索命令,这些寄存器可用作通用用户存储器。使用存储器操作命令可以写TH和TL。对这些寄存器的读访问通过高速暂存存贮器。所有数据均以最低有效位在前的方式被读写。 2. 寄生电源(parasite power) 图3-1示出寄生电源电路。当I/O或Vdd引
30、脚为高电平时,这个电路便取得电源,只要符合指定的定时和电压要求,I/O 将提供足够的功率。寄生电源的优点是双重的:1)利用此引脚,远程温度检测无需本地电源;2)缺少正常电源条件下也可以读 ROM。 为了使DS18B20能完成准确的温度变换,当温度变换发生时I/O线上必须提供足够的功率。因为DS18B20的工作电流高达1mA,5K的上拉电阻将使I/O线没有足够的驱动能力。如果几个DS1820在同一条I/O线上而且企图同时变换,那么这一问题将变得特别尖锐。 3. DS18B20的运用DS18B20通过使用在板温度测量专利技术来测量温度。温度测量电路的方框图见图3-4所示。DS18B20 通过门开通
31、期间内低温度系数振荡器经历的时钟周期个数计数来测量温度,而门开通期由高温度系数振荡器决定。计数器予置对应于-55的基数,如果在门开通期结束前计数器达到零,那么温度寄存器它也被予置到-55的数值将增量,指示温度高于-55。同时,计数器用钭率累加器电路所决定的值进行予置。为了对遵循抛物线规律的振荡器温度特性进行补偿,这种电路是必需的,时钟再次使计数器计值至它达到零。如果门开通时间仍未结束,那么此过程再次重复。钭率累加器用于补偿振荡器温度特性的非线性,以产生高分辩率的温度测量。通过改变温度每升高一度,计数器必须经历的计数个数来实行补偿。因此,为了获得所需的分辩率,计数器的数值以及在给定温度处每一摄氏
32、度的计数个数(钭率累加器的值)二者都必须知道。DS18B20 内部对此计算的结果可提供 0.5的分辨力。温度以 16bit 带符号位扩展的二进制补码形式读出,表3-1给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS18B20 测温范围-55+125,以 0.5递增。如用于华氏温度,必须要用一个转换因子查找表。表3-1温度数字输出(二进制)数据输出(16进制)+12500000111 1111101007D0h+25.062500000001 100100010191h+1/200000000 000010000008h000000000 000000000000h-1/211
33、111111 11111000FFF8h-25.062511111110 01101111FF6Fh-5511111100 10010000FC90h 注意 DS18b20内温度表示值为 1/2LSB,如下所示9bit 格式:最高有效(符号)位被复制充满存储器中两字节温度寄存器的高 MSB位,由这种“符号位扩展”产生出了示于表 1 的16bit 温度读数。 可用下述方法获得更高的分辨力。首先,读取温度值,将 0.5位(LSB)从读取的值中截去,这个值叫做 TEMP_READ。然后读取计数器中剩余的值,这个值是门周期结束后保留下来的值(COUNT_REMAIN)。最后,我们用到在这个温度下每度的
34、计数值(COUNT_PER_C)。用户可以用下面的公式计算实际温度值:4 . 报警搜索操作 DS18B20完成一次温度转换后,就拿温度值和存储在TH和TL中的值进行比较。因为这些寄存器是8位的,所以0.5位被忽略不计。TH或TL 的最高有效位直接对应16位温度寄存器的符号位。如果测得的温度高于TH或低于TL,器件内部就会置位一个报警标识。每进行一次测温就对这个标识进行一次更新。当报警标识置位时,DS18B20会对报警搜索命令有反应。这样就允许许多DS18B20并联在一起同时测温,如果某个地方的温度超过了限定值,报警的器件就会被立即识别出来并读取,而不用读未报警的器件。 5 . 64位光刻ROM
35、 每只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 进行特定的操作,
36、总线控制器可以发出六个存储器和控制操作命令中的任一个。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进行数据传输校验的情况下,总线
37、控制器必须用上面的公式计算出一个CRC值,和存储在DS18B20的64位ROM中的值或 DS18B20内部计算出的8位CRC值(当读暂存器时,做为第9个字节读出来)进行比较。CRC值的比较以及是否进行下一步操作完全由总线控制器决定。当在 DS18B20中存储的或由其计算的CRC值和总线控制器计算的值不相符时,DS18B20内部并没有一个能阻止命令序列进行的电路。 单线CRC可以用一个由移位寄存器和XOR门构成的多项式发生器来产生。 移位寄存器的各位都被初始化为0。然后从系列编号的最低有效位开始,一次一位移入寄存器,8位系列编码都进入以后,序列号再进入,48位序列号都进入后,移位寄存器中就存储了
38、CRC值。移入8位CRC会使移位寄存器复0。 7. 存储器 DS18B20的存储器结构示于图3-2。存储器由一个暂存RAM和一个存储高低温报警触发值TH和TL的非易失性电可擦除(E2)RAM组成。当在单线总线上通讯时,暂存器帮助确保数据的完整性。数据先被写入暂存器,这里的数据可被读回。数据经过校验后,用一个拷贝暂存器命令会把数据传到非易性(E2)RAM 中。这一过程确保更改存储器时数据的完整性。暂存器的结构为8个字节的存储器。头两个字节包含测得的温度信息。第三和第四字节是TH和TL的拷贝,是易失性的,每次上电复位时被刷新。下面两个字节没有使用,但是在读回数据时,它们全部表现为逻辑1。第七和第八
39、字节是计数寄存器,它们可以被用来获得更高的温度分辨力。还有一个第九字节,可以用读暂存器命令读出。这个字节是以上八个字节的 CRC 码。图3-2 DS18b20存储器图8. 单线总线系统 单线总线系统包括一个总线控制器和一个或多个从机。DS18B20是从机。关于这种总线分三个题目讨论:硬件结构、执行序列和单线信号(信号类型和时序)。 单线总线只有一条定义的信号线;重要的是每一个挂在总线上的器件都能在适当的时间驱动它。为此每一个总线上的器件都必须是漏极开路或三态输出。DS18B20 的单总线端口(I/O 引脚)是漏极开路式的,内部等效电路见图3-3。一个多点总线由一个单线总线和多个挂于其上的从机构
40、成。单线总线需要一个约5K的上拉电阻。图3-3 硬件结构单线总线的空闲状态是高电平。无论任何理由需要暂停某一执行过程时,如果还想恢复执行的话,总线必必须停留在空闲状态。在恢复期间,如果单线总线处于非活动(高电平)状态,位与位间的恢复时间可以无限长。如果总线停留在低电平超过 480s,总线上的所有器件都将被复位。 通过单线总线端口访问 DS1820 的协议如下: *初始化 *ROM 操作命令 *存储器操作命令 *执行/数据 通过单线总线的所有执行(处理)都从一个初始化序列开始。初始化序列包括一个由总线控制器发出的复位脉冲和跟有其后由从机发出的存在脉冲。存在脉冲让总线控制器知道 DS18B20在总
41、线上且已准备好操作。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
42、序列完全匹配的DS18B20才能响应随后的存储器操作命令。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。 Skip ROM CCh 这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下右以节省时间。如果总线上不止一个从机,在Skip ROM命令之后跟着发一条读命令,由于多个从机同时传送信号,总线上就会发生数据冲突(漏极开路下拉效果相当于相与)。 Search ROM F0h 当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的
43、所有从机的64位编码。 Alarm Search ECh 这条命令的流程图和Search ROM相同。然而,只有在最近一次测温后遇到符合报警条件的情况,DS18B20才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要 DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。 b. I/O信号 DS18B20需要严格的协议以确保数据的完整性。协议包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0 和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。 和DS18B20间的任何通讯都需要以初始化序列开始,一个复位脉冲跟着一个存在脉冲表明 DS18B2
44、0 已经准备好发送和接收数据(适当的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把贮存在非易失性存储器内的数值重新调入暂存器(温度报警触发器)