摘要信息技术的高速发展和广泛应用给人类带来了革命性的进步,随之渗透到人们日常活动的方方面面。因此各种计算机、服务器机房也如雨后春笋般涌现。大量维护工作也由此产生。对于机房的日常管理和维护最重要的就是安全问题。而其中最为突出的问题之一就是防火。本次毕业设计的主要目的就是设计一个基于温度监测的火灾报警系统。本人采用理论探讨与实际开发相结合的方法,研究了美国DALLAS公司开发的一线总线技术及其通信协议。并以美国DALLAS公司的一线总线技术为核心,连同单片机技术,将火灾报警的温度监测环节予以实现。并且依据该理论,设计出一个廉价、实用的温度监测系统。关键词:一线总线DS1820AT89C51AbstractThehigh-speeddevelopmentandwideapplicationofinformationtechnologyhasbroughtrevolutionaryprogresstoandinfluencedhumanbeings.Astheresult,theemergedcomputer&serverroomarousesseriousdailymaintenance.Thefirefightingisoneofthemtothecomputer&serverroom.Theaimofthispaperistodesignoneauto-alarmsystembasedonthetemperaturesupervision.Bymeansofcombiningtheorydiscussionaridpracticaldevelopment,theauthorstudiedthe1-wirebustechnologydevelopedbytheDallasSemiconductorcompanyinUSA.Atthesametime,theauthorrealizedthetemperaturesupervisionasonepartoftheauto-alarmsystembasedonDALLAS1-wirebustechnologyandMCU.Also,theauthorengineeredanddesignedoneon-lineandcheaptemperaturesupervisionsystem.Keywords:1-wirebus,DS1820,AT89C51目录1引言1.1课题的意义1.2课题主要研究的内容2系统硬件电路设计2.1基于数字温度传感器的系统硬件设计方案2.2一线总线网络2.3系统硬件结构框图2.4结构框图的简要说明2.4.1基于AT89C51单片机及其外围电路的主机控制单元2.4.2DS1820串行组成的一线总线型网络2.4.3LED数字显示及其驱动电路2.5系统可行应用分析3主要元器件介绍3.1AT89C513.1.1单片机的选择3.1.2主要特性3.1.3管脚说明3.2DS18203.2.1一般说明3.2.2特性3.2.3DS1820的引脚3.2.4DS1820引脚说明3.2.5DS1820内部逻辑框图3.2.6DS1820工作过程中的协议3.3LED数码显示3.47406/74074一线总线技术4.1一线总线(1-WireBus)技术简介4.2一线总线工作原理4.3一线总线协议简介5系统软件设计5.1系统程序设计总框图5.2软件算法说明5.3一线总线协议的软件实现结论致谢参考文献1引言1.1课题的意义近年来随着我国信息化进程的加快,在很多大专院校、科研院所建设了大量的计算机、服务器机房。因此,在一个不大的空间区域内使用了大量的贵重设备,再加上与之配套的空调、试验平台等附属设备,整个机房就需要有几十个电源接插装置(即电源插座)。某些插座接点中通过的电流可能达到几十安培,甚至会更高。电线接点又是容易出现局部高温高热的,那么就需要一种监测系统,在那些平时难以看到、发生危险无法在第一时间察觉的地方,“替”机房的管理人员监视这些地点(例如暗藏的供电线路接头)。一旦发生危险情况,就可以及时准确的报告给机房人员,以保证能准确及时的处理危险状况。这个系统如果设计上更进一步,也可以提供预警功能:我们知道火灾的发生都是易燃物质在一定的环境下,温度达到燃点开始燃烧的。系统可以设计成一旦出现火灾隐患,就提醒在场人员采取有效措施的机制。这样可以事先预警。目前,国际上的温度传感器正从模拟式向数字式、由集成化向智能化的方向飞速发展。如今,随着数字温度传感器的诞生,曾经令人眼花缭乱的电路、密密麻麻焊接在一起的元器件,如今己经被一个小小的、毫不起眼的数字传感器代替了。MAXIM,DALLAS(已被MAXIM收购)等世界上有实力的公司根据不同应用领域的不同需求推出了多款产品,性能良好、价格低廉。使得我们对数字温度传感器有了足够的选择。1.2课题主要研究的内容本课题研究的是基于温度传感的火灾报警系统中的温度监测和显示部分的实现。以智能温度传感器应用技术和单片机应用技术为核心进行开发。其中,涉及到了一线总线技术开发应用;单片机技术开发应用;智能传感器应用等。并且以理论分析和该技术方案为基础,在不断地实验和方案调整中,完成了一个温度监测系统的设计。2系统硬件电路设计2.1基于数字温度传感器的系统硬件设计方案图2-1监测系统示意图DS1820的所有功能、操作均是在单片机控制下进行的,线上接有若干个DS1820传感器,即可进行多点的温度采集.值得注意的是所有的命令码均以串行方式通过一线总线输出到DS1820,读出的数字温度值也以串行方式输入到单片机,并存入数据缓存。2.2一线总线网络根据DS1820数字温度传感器的功能特点,选择一线总线的网络结构。该网络基于DS1820以及一线总线协议。其特点在后面的章节中将有详细介绍,这里不再讨论。…………………图2-2系统逻辑框图2.3系统硬件结构框图本系统的硬件,主要由三个部分组成:基于AT89C51单片机及其外围电路的主机控制单元;DS1820串行组成的一线总线型网络;LED数字显示及其驱动电路。电路原理图如下图:2.4结构框图的简要说明2.4.1基于AT89C51单片机及其外围电路的主机控制单元AT89C51单片机功能强、I/O口多、但是其内部的数据暂存存储器空间比较小,只有128个字节。而DS1820的ROM码有64位,也就是说,记录一个ROM码要占据8个字节的数据暂存存储器空间,再加上用于搜索、温度值存储、指针等操作所必须额外分配的存储器空间。实际上AT89C51单片机内部已经没有多少富余了,在程序编写中发现,10个ROM码是能允许的最大值。哪怕再增加一个8字节的ROM码都必须使用扩展的片外RAM。考虑到本系统目前只计划应用在较小的机房中,监测点不多;同时,本设计的重点在于数字温度传感器及其一线总线技术的应用研究。因此,没有使用外扩RAM的方法来扩大一线总线网络的规模。相信,即便本系统由于某种原因需要对一线总线网络进行扩展,无论是选择单片机换型,或者选择外扩RAM,实现它们都应没有太大的障碍。AT89C51具有4个I/O口,它们分别是P0口、P1口、P2口和P3口。利用其中的3个I/O口,与本系统其它部分连接,分别实现了不同的功能:P1口连接着由10个DS1820传感器组成一线总线网络,还连接着用于显示单个DS1820传感器ROM码的接口电路。P0、P2口连接着LED数字显示单元。P0口连接一片14引脚的反相门芯片7406,用于对6个LED显示灯的选择控制。同时,7406也起到了反向驱动器的作用。P2口连接两片14引脚的7407芯片,用于发送显示内容。同时7407也起到正向驱动器的作用。2.4.2DS1820串行组成的一线总线型网络最多由10片DS1820组成的一线总线网络,由三条线连接。它们分别是电源线、数据传输线、共用地线。电源线根据DS1820的要求,使用5V的直流供电。在具体设计上可以和AT89C51使用同一个电压源。数据传输线直接连接在P1口的P1.5引脚上,对应着P1寄存器的P1.5数据位,因此主机对总线上的DS1820的操作实际上就是对P1.5数据位的操作。所以在程序设计时需要注意这一点。还有,就是出于对特殊情况的特别考虑,本系统设置了一个插口,用于读出某个DS1820传感器ROM码。这个插口除了中间的引脚连接在AT89C51的P1.6引脚上,从硬件上说和一线总线网络的接口没有什么不同。但是从软件上来说,它专用于对单个DS1820的ROM码读取。实际的设计上,作者在数据线上设置了一个切换跳线,当需要系统进行读ROM码操作时,就将该引脚接上带5K左右上拉电阻的上拉电;需要系统转入正常的温度监测运行时,就将该引脚的数据传输线连至地线。AT89C51通过对P1.6引脚的读和判断,就可以决定是转入读ROM操作还是运行温度监测。通过一个小小的切换跳线,就可以实现在两种功能之间方便地进行切换。这个跳线以及DS1820插口都设置在主机的面板上,很便于使用。2.4.3LED数字显示及其驱动电路LED显示器的工作情况有两种:一种是温度显示;另一种是ROM码显示。DS1820测温范围上限是125℃,因此温度的十进制显示需要用3位;本系统总线上有10个DS1820传感器的温度值需要显示,所以要显示系统为每个传感器自动分配的编号,必须设置2位显示;另外考虑到编号和温度的显示值紧挨在一起可能造成混淆,因此在它们之间还增加了分隔的一位。最终选择在这里设置了6位的LED显示。当显示ROM码时,即使用十六进制显示,也最少需要显示16个十六进制数。因此设计上,只能是让6个LED从低位到高位逐个显示三次,如此才能全部显示完。考虑到人工记录需要时间,所以软件设计上采用无限循环的显示方式。要想中止显示ROM的操作,只要拔下待测的DS1820,并且将切换跳线跳至测量温度运行模式即可。本系统使用7406和7407作为电路驱动芯片,主要是考虑简化硬件设计和软件设计。降低系统硬件和软件的复杂程度。便于后期调试,以及为将来可能的功能扩展留有余地。系统还可扩展当LED显示超过最高温度后的控制电路,某个监测点的温度超标时将自动开启风扇降低温度,如温度仍然不能降低到控制的范围内,报警系统将被开启,提醒工作人员予以有效措施加以控制。2.5系统可行应用分析由于监测点的数量不确定,系统规模应具有一定的可伸缩性。也就是说总线上的传感器数量是可以在一定范围内随意增减的。不会因为传感器数量的变化影响系统正常运行。系统必须能够同时监测多个点的温度,因此必须具备地址查询的功能。另外每个DS1820传感器具有一个ROM码,这为实现地址查询提供了技术上的可能。为了能支持总线上的地址识别,对DS1820传感器ROM码的事先读取是必要的。因此系统必须具备读取和显示ROM码的功能。作为多路监测系统,确认多个测量点的实际地理位置是必要的。就是说某个传感器被放置在具体某个地方应该明确。否则,即使系统己经提供了某个线路接点温度不正常的信息,管理人员也无法确认是哪里的接点出现了问题。在这里解决方案是使用自动排序、双地址方案:64位的ROM码虽然能确认传感器的唯一性,但直接在传感器的现场识别中使用仍然非常不便。如果主机能够自动为所有挂载在总线上的传感器排序。并且编上方便识别的号码,就可以很好的解决这个问题。但这也要求主机对传感器的排序结果应该具有唯一性,否则可能出现系统因某种原因重启后,双地址排序错误的问题。DS1820本身具有报警功能,当测量的温度值超出主机所设定的上限值或者下限值时,DS1820就会向总线发送报警信号,此时正在监听总线的主机将得知报警信息。该功能的设置使我们在系统设计时增加了手段和实现方法。然而,经过仔细研究,最终认为,使用轮询的方法更为妥当。作为一个报警系统,漏报的问题是要努力克服避免的。当总线上的一个DS1820出现故障时,即使温度值超标,DS1820也不会提供报警。而该传感器的故障情况,管理者也是无从得知的。尽管使用轮询的访问方式同样无法克服从机意外故障的问题,但由于轮询定期的访问每个DS1820传感器,作