基于ARM的远程温度监测系统的设计_第1页
基于ARM的远程温度监测系统的设计_第2页
基于ARM的远程温度监测系统的设计_第3页
基于ARM的远程温度监测系统的设计_第4页
基于ARM的远程温度监测系统的设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

学位论文基于ARM的远程温度监测系统的设计作者姓名郝冬冬学科专业通信工程学号092027111指导教师焦冬莉讲师完成日期201369太原工业学院TAIYUANINSTITUTEOFTECHNOLOGY太原工业学院毕业设计(论文)I诚信申明本人申明本人所提交的毕业设计(论文)基于ARM的远程温度监测系统的设计的所有材料是本人在指导教师指导下独立研究、写作、完成的成果,设计(论文)中所引用他人的无论以何种方式发布的文字、研究成果,均在设计(论文)中加以说明;有关教师、同学和其他人员对我的设计(论文)的写作、修订提出过并为我在设计(论文)中加以采纳的意见、建议,均已在我的致谢辞中加以说明并深致谢意。本设计(论文)和资料若有不实之处,本人承担一切相关责任。特此申明。本人签名2013年06月15日基于ARM的远程温度监测系统的设计II毕业设计(论文)任务书设计(论文)题目基于ARM的远程温度监测系统的设计系部电子工程系专业通信工程学号092027111学生郝冬冬指导教师(含职称)焦冬莉(讲师)专业负责人焦冬莉1设计(论文)的主要任务及目标随着科技的发展,人类进入了信息时代,人类对信息的获取越来越多,但是信息时代的另外一个重要的特点是人们在生产生活中越来越多的依赖信息技术,从而达到节省时间,提高效率,节约经费的目的。目前,信息技术的一个重要应用方向是远程温度监测技术,温度是最基本的环境参数,人们的生活与其息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度测量方法和装置具有重要的意义。温度监测可以分为现场和远程监测,现场监测就是在测量对象附近显示数值,特定场合下由于监测地点比较分散、偏远、环境对工作人员身体健康有害等,采用传统的温度测量方式周期长、成本高,而且工作人员必须到现场进行测量,因此工作效率非常低,且不便于管理。远程监测就是在测量对象附近放置信号发射装置,将现场采集到的温度数值发射到工程师的接收器上。系统具有结构简单、可靠性高、成本低等特点。监测分站和监测中心之间通过网络方式传递数据,避免了工作人员到现场测量,大大提高了工作效率。本课题所设计的远程温度监测系统,是以仓库温度为研究对象,通过使用DS18B20温度传感器和ARM开发板,将采集到的数据传输到网页上,用户在网页上实现对仓库温度的实时查询。应用此系统,可以使仓库管理者能够实时的知道仓库温度的变化,避免管理者长期呆在仓库,减少人力物力。2设计(论文)的基本要求和内容(1)查阅相关资料,了解远程温度监测系统基本结构,常规应用,参数指标;(2)确定远程温度监测系统的结构,外围条件,基本参数;(3)进行全局方案的选定、确定;(4)完成系统设计及相关代码的编写。太原工业学院毕业设计(论文)III3主要参考及文献1谭浩强C程序设计(第三版)北京清华大学出版社,20052宋宝华LINUX设备驱动开发详解(第2版)北京人民邮电出版社,20103李晓林等单片机原理与接口技术(第2版)北京电子工业出版社。20114刘伟等CGI技术全面接触北京清华大学出版社,20015冯博琴等微型计算机原理与接口技术(第3版)北京清华大学出版社,20116吴继峰基于TCP/IP协议的网络测控仪表的设计与实现东北东北大学出版社,20057张越等基于DS18B20温度传感器的数字温度计20058唐继贤51单片机工程应用实例北京北京航空航天大学出版社,20099KATSUHIKOOGATAMODEMCONTROLENGUNEERINGMPUBLISSHINGHOUSEOFELECTRONICSINDUSTRY,200010MSP430X4XXFAMILYUSERSGUINDETEXASINSETS,2000263211ABMADWBIPHASEAMPLIFIERFORPRECISIONCONTROLLEDRECTIFICATIONANDPOLARLOGICOPERATIONSIEEETRANSINDELECTRON,1991,38162612SOCLOFSANALOGINTEGRATEDCIRCUITSPRENTICEHILL,198513WANGZFULLWAVEPRECISIONRECTIFICATIONTHATISPERFORMEDINCURRENTDOMAINANDVERYSUITABLECMDSIMPLEMENTATIONIEEETRANSCIRCUITSSYST199214樊建明等基于数字温度湿度传感器的温室多点测量系统设计J传感器与微系统,2007,26(7)11515郁有文等传感器原理及工程应用西安西安电子科技大学出版社,20004进度安排设计(论文)各阶段名称起止日期1整理开题报告313102学习相关知识,提出设计方案310523确定指标选择设计方案535134系统设计5145225论文修改整理523611基于ARM的远程温度监测系统的设计IV基于ARM的远程温度监测系统的设计摘要随着网络技术的不断发展,INTERNET技术已经渗透到日常生活和工业生产的各个领域,这也使得实现智能传感器的网络通信功能成为可能。为了实现信息的采集和传输的协调和统一,将计算机网络技术和智能传感器相结合就十分必要。本设计采用嵌入式系统为核心,通过DS18B20温度传感器采集当前的温度数据,并传送给ARM板处理后显示在液晶显示屏上。将其直接接入网络,用户便可使用联网的计算机访问该系统,实现对温度随时的监控。实际上就是在该系统上建立WEB服务器,用户通过浏览器查看传感器的温度值,并能通过服务器进行简单的控制。关键词嵌入式LINUX操作系统,WEB,DS18B20温度传感器,ARM太原工业学院毕业设计(论文)VDESIGNOFREMOTETEMPERATUREMONITORINGSYSTEMBASEDONARMABSTRACTWITHTHECONTINUOUSDEVELOPMENTOFNETWORKTECHNOLOGY,INTERNETTECHNOLOGYHASPENETRATEDINTOEVERYFIELDOFDAILYLIFEANDINDUSTRIALPRODUCTION,ITALSOMAKESTHEFUNCTIONOFINTELLIGENTSENSORNETWORKCOMMUNICATIONPOSSIBLEINORDERTOACHIEVETHECOORDINATIONANDINTEGRATIONOFINFORMATIONCOLLECTIONANDTRANSMISSION,COMBININGCOMPUTERNETWORKTECHNOLOGYANDINTELLIGENTSENSORISVERYNECESSARYTHISDESIGNUSESEMBEDDEDSYSTEMASTHECORE,THECURRENTTEMPERATUREDATAGATHEREDTHROUGHDS18B20TEMPERATURESENSOR,ANDTRANSMITTEDTOTHEARMBOARDDISPLAYONTHELCDSCREENAFTERPROCESSINGITSDIRECTACCESSTOTHENETWORK,THEUSERCANUSENETWORKEDCOMPUTERSTOACCESSTHESYSTEM,IMPLEMENTATIONOFTEMPERATUREMONITORINGATANYTIMEISACTUALLYSETUPAWEBSERVERONTHESYSTEM,THEUSERTHROUGHABROWSERTOVIEWSENSORSOFTEMPERATURE,ANDCANBEEASYTOBECONTROLLEDBYTHESERVERKEYWORDSEMBEDDEDLINUXOPERATINGSYSTEM,WEB,DS18B20TEMPERATURESENSOR,ARM基于ARM的远程温度监测系统的设计VI目录1绪论111系统的定义及构成特点112嵌入式系统的两种应用模式313研究远程温度监测的前景42设计方案及设备选择621设计分析622温度传感器的选择723传感器介绍8231DS18B20的外型及内部结构8232DS18B20工作原理924功能说明123开发流程1331开发环境1332工具安装134软件设计1741DS18B20驱动程序1742应用程序2043CGI程序2544HTML程序305系统测试31总结35参考文献37致谢38太原工业学院毕业设计(论文)11绪论本章主要介绍嵌入式系统的发展,然后介绍了网络化的远程监控和研究本设计的意义,最后介绍了本论文所完成的工作及成果。11系统的定义及构成特点嵌入式系统的核心是嵌入式微处理器。嵌入式处理器一般具备以下4个特点(1)对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。(2)具有功能很强的储存区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区起保护功能,同时也有利于软件诊断。(3)可扩展的处理器结构,以能迅速开发出满足相应的最高性能的嵌入式微处理器。(4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有MW甚至W级。目前,在嵌入式系统应用领域中,不少人对什么事嵌入式系统不甚了解。有些人搞了十多年的单片机应用,不知道单片机就是一个最典型的嵌入式系统;也有些人在解释什么是嵌入式系统时,不是从定义出发,二是列举了嵌入式系统的一些特点,往往不知所云。因此,有必要从现代计算机的发展历史,了解嵌入式系统的由来,从学科建设的角度来探讨嵌入式系统较为准确的定义。嵌入式技术的发展,大致经历了四个阶段第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。这一阶段的操作系统具有一定的兼容性和扩展性,但用户界面不够友好。基于ARM的远程温度监测系统的设计2第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统的主要特点是嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API),开发应用程序简单;嵌入式应用软件丰富。第四阶段是以基于INTERNET为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于INTERNET之外,但随着INTERNET的发展以及INTERNET技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与INTERNET的结合将代表着嵌入式技术的真正未来。综上所述,嵌入式系统技术日益完善,32位微处理器在该系统中占主导地位,嵌入式操作系统已经从简单走向成熟。嵌入式系统已由原先的单一的、非实时的控制系统发展成多元的、实时控制系统。嵌入式系统的性能越来越完善,使得它的应用涉及到很多领域。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及上层应用软件系统等组成,它是集软硬件于一体的可独立工作的系统。嵌入式系统的特点在于(1)面向用户,面向产品,面向应用和通用计算机不同,嵌入式系统的工耗、体积、成本、可靠性、速度、处理能力等方面均受到应用要求的制约,如果独立于应用自行发展,则会失去市场。(2)高效性,高可靠性嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣,去除冗余,力争在同样的成本下实现更强的性能,这样才能在具体应用的选择面前更具有竞争力。在硬件方面,嵌入式系统要针对用户的具体需求,对系统配置进行裁剪和添加才能达到理想的性能甚至根据用户的特殊需求,设计不同的系统以面向不同的用户。在软件方面,要求代码高质量,高可靠性,要求程序编写和编译工具的质量要高,以减少程序二进制代码程度,提高执行效率,节省宝贵的存储空间。(3)相对稳定性嵌入式系统应和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式产品一旦进入市场,具有较长的生命周期。嵌入式系统中的软太原工业学院毕业设计(论文)3件,一般都固化在只读存储器中,而不是以磁盘为载体,可以随意更换,所以嵌入式系统的生命周期也和嵌入式产品一样长。另外,各个行业的用用系统和产品,和通用计算机不同,很少发生突然性的跳跃,嵌入式系统中的软件也因此更强调可继承性和技术衔接性,发展比较稳定。12嵌入式系统的两种应用模式嵌入式系统的嵌入式应用特点,决定了它的多学科交叉特点。作为计算机的内含,要求计算机领域人员介入其体系结构、软件技术、工程应用方面的研究。然而,了解对象系统的控制要求,实现系统控制模式必须具备对象领域的专业知识。因此,从嵌入式系统发展的历史过程,以及嵌入式应用的多样性中,可以了解到客观上形成的两种应用模式。(1)客观存在的两种应用模式嵌入式计算机系统起源于微型机时代,但很快就进入到独立发展的单片机时代。在单片机时代,嵌入式系统以器件形态迅速进入到传统电子技术领域中,以电子技术应用工程师为主体,实现传统电子系统的智能化,而计算机专业队伍并没有真正进入单片机应用领域。因此,电子技术应用工程师以自己习惯性的电子技术应用模式,从事单片机的应用开发。这种应用模式最重要的特点是软、硬件的底层性和随意性;对象系统专业技术的密切相关性;缺少计算机工程设计方法。虽然在单片机时代,计算机专业淡出了嵌入式系统领域,但随着后PC时代的到来,网络、通信技术得以发展;同时,嵌入式系统软、硬件技术有了很大的提升,为计算机专业人士介入嵌入式系统应用开辟了广阔天地。计算机专业人士的介入,形成的计算机应用模式带有明显的计算机的工程应用特点,即基于嵌入式系统软、硬件平台,以网络、通信为主的非嵌入式底层应用。(2)两种应用模式的并存与互补由于嵌入式系统最大、最广、最底层的应用是传统电子技术领域的智能化改造,因此,以通晓对象专业的电子技术队伍为主,用最少的嵌入式系统软、硬件开销,以8位机为主,带有浓重的电子系统设计色彩的电子系统应用模式会长期存在下去。另外,计算机专业人士会愈来愈多地介入嵌入式系统应用,但囿于对象专业知识的隔阂,其应用领域会集中在网络、通信、多媒体、商务电子等方面,不可能替代原基于ARM的远程温度监测系统的设计4来电子工程师在控制、仪器仪表、机械电子等方面的嵌入式应用。因此,客观存在的两种应用模式会长期并存下去,在不同的领域中相互补充。电子系统设计模式应从计算机应用设计模式中,学习计算机工程方法和嵌入式系统软件技术;计算机应用设计模式应从电子系统设计模式中,了解嵌入式系统应用的电路系统特性、基本的外围电路设计方法和对象系统的基本要求等。(3)嵌入式系统应用的高低端由于嵌入式系统有过很长的一段单片机的独立发展道路,大多是基于8位单片机,实现最底层的嵌入式系统应用,带有明显的电子系统设计模式特点。大多数从事单片机应用开发人员,都是对象系统领域中的电子系统工程师,加之单片机的出现,立即脱离了计算机专业领域,以“智能化”器件身份进入电子系统领域,没有带入“嵌入式系统”概念。因此,不少从事单片机应用的人,不了解单片机与嵌入式系统的关系,在谈到“嵌入式系统”领域时,往往理解成计算机专业领域的,基于32位嵌入式处理器,从事网络、通信、多媒体等的应用。这样,“单片机”与“嵌入式系统”形成了嵌入式系统中常见的两个独立的名词。但由于“单片机”是典型的、独立发展起来的嵌入式系统,从学科建设的角度出发,应该把它统一成“嵌入式系统”。考虑到原来单片机的电子系统底层应用特点,可以把嵌入式系统应用分成高端与低端,把原来的单片机应用理解成嵌入式系统的低端应用,含义为它的底层性以及与对象系统的紧耦合。13研究远程温度监测的前景防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。它直接影响到储备物资的使用寿命和工作可靠性。为保证日常工作的顺利进行,首要问题是加强仓库内温度的监测工作。但传统的方法是用温度计等测试器材,通过人工进行检测,对不符合温度要求的库房进行通风和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温度测量仪。高性能的ARM微处理器有强大的数据处理能力和网络功能,研究基于WEB的智能传感器便是对ARM的应用和网络发展趋势做的一个很好的尝试,我们在嵌入式系统中建立WEB服务器,使其能通过WEB服务器便能方便的查询远程传感器所采集的太原工业学院毕业设计(论文)5数据。WEB技术是以HTTP技术为基础,具有简单、高效、跨平台等优点,已成为信息网络的一种最普遍应用的交互平台。因此,基于ARM的远程温度监测具有许多显著的优点,研究此智能传感器的意义综合起来如下(1)该传感器在嵌入式系统中建立WEB服务器,用户只要安装有浏览器,便可通过INTERNET监视远程传感器的温度,无需安装其他支撑软件,便于推广到INTERNET广域网络,在保证网络的情况下可以实现全球范围的实时监控。(2)有网络接口,切网络接口运用的是TCP/IP协议,能方便随时的接入网络。(3)所有数据和表单都在源程序中,升级和修改只需在源程序中进行。在监视过程中,服务器端能提供实时变化的数据。今天,以INTERNET为代表的的计算机网络的迅速发展及相关技术的不断进步,突破了传统通信方式的时空限制和地域障碍,使大范围内的通信更加便捷。INTERNET拥有的硬件和软件资源在越来越多的领域中得以应用,如远程数据采集、远程设备的故障诊断等。智能传感器也顺应这发展趋势,在新需求的推动下,逐步与网络相结合,出现了网络化的智能传感器。而ARM凭着其功能强、成本低、体积小和功耗低等优点成为开发网络化智能传感器首选的处理器。我这次的毕业设计所做的基于ARM的远程温度监测便是迎合现在这种网络化的需求,使用嵌入式系统来实现传感器的网络化控制,可用于各种家电设备中,方便人们能通过网络上远程的计算机随时对传感器进行访问。本文主要完成的工作体现在以下几个方面(1)对智能传感器的概念和发展做了分析和研究。(2)提出了基于WEB的智能传感器的设计和方案,对设计思想和关键技术做了具体的分析。(3)对嵌入式开发工作平台友善之臂ARM6410的环境的熟悉了解,介绍了温度传感器DS18B20内部结构。(4)阐述了软件开发环境,对软件开发中各模块做了分析和叙述。并提出了测试方案及测试结果。(5)对基于WEB智能传感器的远程监测设计总结以及有待进一步解决的问题进行了展望。基于ARM的远程温度监测系统的设计62设计方案及设备选择21设计分析由于本设计的目标是在ARM板上基于WEB的远程温度监测的设计,实现使传感器采集到的数据能通过网络传送到WEB浏览器查看,在此我选用的是嵌入式系统的方案。下图是本设计的框架图图21框架图本设计的主要模块有18B20驱动程序、蜂鸣器的驱动程序、应用程序(含温度采集、比较、入库)、WEB页面及CGI程序。温度采集读取温度输送输出库中时间温度入库阈值时间温度读取阈值温度超出阈值报警温度传感器ARM板WEB浏览器WEB页面CGI程序应用程序18B20缓存文件蜂鸣器数据库太原工业学院毕业设计(论文)7阈值存入读取数据库中数值图22模块关系图ARM板我选用的是友善之臂6410开发板,该开发板是采用TINY6410核心板的一款参考设计底板,它主要帮助开发者以此为参考进行核心板的功能验证以及扩展开发。该底板具有三LCD接口、4线电阻触摸屏接口、100M标准网络接口、标准DB9五线串口、MINIUSB20接口、USBHOST11、35MM音频输入输出口、标准TVOUT接口、SD卡座、红外接收等常用接口;另外还引出4路TTL串口,另1路TVOUT、SDIO2接口可接SDWIFI接口等;在板的还有蜂鸣器、I2CEEPROM、备份电池、AD可调电阻、8个中断式按键等。22温度传感器的选择当将单片机用作监测系统时,系统总要有被测信号懂得输入通道,由计算机拾取必要的输入信息。对于测量系统而言,如何准确获得被测信号是其核心任务;而对监测系统来讲,对被监测对象状态的测试和对监测条件的监察也是不可缺少的环节。传感器是实现测量的首要环节,是监测系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量都将无法实现。工业生产过程的自动化测量,几乎主要依靠各种传感器来检测生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。方案一采用热电阻温度传感器。热电阻是利用导体的电阻随温度变化的特性制成的测温元件。现应用较多的有铂、铜、镍等热电阻。其主要的特点为精度高、测量范围大、便于远距离测量。铂的物理、化学性能极稳定,耐氧化能力强,易提纯,复制性好,工业性好,电阻率较高,因此,铂电阻用于工业检测中高精密测温和温度标准。缺点是价格贵,温度系数小,受到磁场影响大,在还原介质中易被玷污变脆。按IEC标准测温范围2道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库基于ARM的远程温度监测系统的设计800650,百度电阻比W(100)13850时,R0为100和10,其允许的测量误差A级为(0150002|T|),B级为(030005|T|)。铜电阻的温度系数比铂电阻大,价格低,也易于提纯和加工;但其电阻率小,在腐蚀性介质中使用稳定性差。在工业中用于50180测温。方案二DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。技术性能(1)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)测温范围55125,固有测温误差05。(3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。(4)工作电源35V/DC(可以数据线寄生电源)。(5)在使用中不需要任何外围元件。(6)测量结果以912位数字量方式串行传送。(7)不锈钢保护管直径6。(8)适用于DN1525,DN40DN250各种介质工业管道和狭小空间设备测温。(9)标准安装螺纹M10X1,M12X15,G1/2”任选。(10)PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温控制领域;轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制;汽车空调、冰箱、冷柜、以及中低温干燥箱等;供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制。综合比较方案一与方案二,方案二更为适合于本设计系统对于温度传感器的选择。23传感器介绍太原工业学院毕业设计(论文)9美国DALLAS半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线“接口的温度传感器,在其内部使用了在板(ONB0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。231DS18B20的外型及内部结构DS18B20内部结构主要由四部分组成64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图图23DS18B20外型及引脚排列DS18B20引脚定义(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。基于ARM的远程温度监测系统的设计10图24DS18B20内部结构图232DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2S减为750MS。DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。LSB置位/清除斜率累加器预置比较低温度系数晶振计数器1预置太原工业学院毕业设计(论文)11加1图25DS18B20测温原理框图DS18B20有4个主要的数据部件(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRCX8X5X41)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例用16位符号扩展的二进制补码读数形式提供,以00625/LSB形式表达,其中S为符号位。图26DS18B20温度值格式表这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于00625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于00625即可得到实际温度。温度寄存器0高温度系数晶振计数器20基于ARM的远程温度监测系统的设计12例如125的数字输出为07D0H,250625的数字输出为0191H,250625的数字输出为FF6FH,55的数字输出为FC90H。图27DS18B20温度数据表(3)DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。图28配置寄存器结构低五位一直都是“1“,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示(DS18B20出厂时被设置为12位)太原工业学院毕业设计(论文)13图29温度分辨率设置表24功能说明您可以在WEB网页上设置温度的上下限的阈值,当温度不在这一范围内时,就会使蜂鸣器报警响铃,如果高于上限报警器每隔1秒响一次,低于下限则报警器响5秒钟,在区间内不响。传感器如果测量的值恢复正常的话,就会关闭蜂鸣器,不然会一直响铃报警。程序运行后,温度测量程序每隔十秒钟测一次,每次测量都会把时间,温度值存入数据库中,远程控制监测CGI页面,每次刷新,都会把入库的所有数据显示在页面上,你通过它可以清楚的看到每次的温度记录。3开发流程31开发环境(1)本次开发环境为FEDORA9(2)编译器为ARMLINUXGCC451(3)开发板为ARM116410开发板(4)温度传感器为DS18B2032工具安装一、安装交叉编译器ARMLINUXGCC451基于ARM的远程温度监测系统的设计141、把ARMLINUXGCC45120101103TGZ复制到FEDORA9中去。2、使用TARZXVF命令解压,这时会生成OPT文件夹。3、进入文件夹OPT/FRIENDLYARM/TOOLSCHAIN/会看到451文件夹。4、使用SU命令进入ROOT用户,使用命令MKDIR在/USR/LOCAL/目录下创建ARM目录。5、并使用CPRF命令把451文件夹及内的所有内容复制到/USR/LOCAL/ARM/目录下。6、打开/ETC/下的BASHRC文件,在最后加上以下内容EXPORTPATHPATH/USR/LOCAL/ARM/451/BIN。7、重启LINUX系统,此时交叉编译器安装完毕。二、安装SQLITE3数据库1、把SQLITE3的安装包SQLITEAMALGAMATION36231TARGZ复制到LINUX中去。2、使用TARZXVF命令解压,生成SQLITE36231文件夹,进入ROOT用户并进入解压出来的文件夹执行命令/CONFIGUREHOSTARMLINUXPERFIX/USR/LOCAL/SQLITE3MAKEMAKEINSTALL此时嵌入式版本的SQLLITE3数据库安装完毕了。三、数据库移植我们用的是FTP下载,也可以使用其他的方式下载到板子上1、把刚安装好的数据库移植到开发板上,首先把串口线,网线等与开发板连接好,打开SECURECRT这个工具,打开串口,启动开发板。2、在LINUX系统中进入ROOT用户使用命令。(1)SERVICEVSFTPDRESTART启动FTP。(2)SERVICEIPTABLESSTOP关闭防火墙。(3)IFCONFIG查看PC机LINUX系统的IP。太原工业学院毕业设计(论文)15(4)CP/USR/LOCAL/SQLITE3/BIN/SQLITE3/VAR/FTP/这样把SQLITE3复制到/VAR/FTP/目录下去,等待向板子上下载。(5)CP/USR/LOCAL/SQLITE3/LIB/LIBSQLITE3SO086/VAR/FTP/目录下。3、在开发板上的终端创建目录/PROJECT/进入并执行FTPPC机的LINUX的IP地址,输入ANONYMOUS表示匿名登录回车,再输入回车(不需要密码)。4,使用命令GETSQLITE3下载SQLITE3,在使用命令GETLIBSQLITE3SO086下载动态库。把SQLITE3放在/USR/BIN/目录下,把LIBSQLITE3SO086放在板子上的/USR/LIB/目录下,并在该目录下执行LNSLIBSQLITE3SO086LIBSQLITE3SO生成一个链接文件LIBSQLITE3SOLNSLIBSQLITE3SO086LIBSQLITE3SO0生成一个链接文件LIBSQLITE3SO0到现在板子上已经有了SQLITE3数据库了,即移植数据库完成了。四、驱动的编译及下载1、把18B20C程序复制到LINUX中的一个文件夹下/PROJECT/目录下。2、新建一个MAKEFILE文件,用VI打开,在里面写上OBJ18B20O。3、把LINUX内核文件LINUX263820111205TGZ复制到ARMLINUX目录下,解压缩,进入LINUX2638目录下,使用命令CPCONFIG_MINI6410_H43CONFIG因为板子的液晶屏是H43的,所以必须使用这一个文件。4、在LINUX2638文件目录下,执行MAKEZIMAGE,如果没有错误,则可以进行下一步,这时会在LINUX2638/ARCH/ARM/BOOT/目录下生成ZIMAG文件镜像,此镜像可以下载到开发板上运行。5、然后再执行命令MAKEC/HOME/DELL/LINUX2638/M/HOME/DELL/PROJECT/MODULES基于ARM的远程温度监测系统的设计16C后边的是内核的路径,M后边是驱动程序的路径,MODULES表示编译成模块(此编译方法为内核外编译)。6、这时会生成18B20KO文件,并将其复制到/VAR/FTP/目录下,等待下载到板子上,用下载数据库的办法,下载KO文件到开发板上。五、驱动程序的加载及创建设备节点1、把下载的两个驱动程序生成的KO文件18B20KO和BEEP_SKO文件下载到板子上的一个目录下/PROJECT/(推荐)。都放到一个目录下,易于操作管理。2、使用命令INSMOD18B20KO回车,此时会出现一个主设备号251或者其他数字,在使用MKNOD/DEV/DS18B20C251主设备号0回车创建设备节点,以后提供给用户的就是这个节点文件,他可以OPEN,READ,CLOSE,WRITE等操作。3、使用同样的办法,创建蜂鸣器的设备文件节点。4、此时,你可以执行测试程序,查看一下效果。六、应用程序及WEB页面程序的运行1、把编译生成的CGI程序,以及PTHREAD程序下载到板子上。2、把CGI程序放在板子的/WWW/CGIBIN/目录下。3、把TMPHTMLHTM网页文件放在/WWW/目录下。4、在目录/LIN/PROJECT/WORK/目录下创建DATE数据库SQLITE3DATE便可创建。再执行PTHREAD这个程序,这时,后台程序就已经开始运行了。打开浏览器,输入1921681230看到开发板的页面,再在后面输入TMPHTMLHTML回车。太原工业学院毕业设计(论文)174软件设计41DS18B20驱动程序一18B20驱动程序分为几个模块函数,寄存器的设置(输入)VOIDTMP_INPUTVOID寄存器的设置(输出)VOIDTMP_OUTPUTVOIDIO口的设置(高电平)VOIDTMPHVOIDIO口的设置(低电平)VOIDTMPLVOID向18B20写一个位VOIDWRBTUCHARBITE基于ARM的远程温度监测系统的设计18从18B20读一个位UCHARRDBTVOID向18B20写一个字节VOIDWRBYTEUCHARK从18B20读一个字节UCHARRDBYTEVOID复位初始化18B20UCHARRESETVOID打开设备节点(向用户提供的)INTDS18B20_OPENSTRUCTINODEINODE,STRUCTFILEFILE关闭设备节点(向用户提供的)INTDS18B20_RELEASESTRUCTINODEINODE,STRUCTFILEFILE对18B20进行ROM操作命令STATICSSIZE_TDS18B20_READSTRUCTFILEFILP,UNSIGNEDCHAR_USERBUF,SIZE_TCOUNT,LOFF_TPPOS。二驱动的框架(1)驱动框架包括向内核注册驱动信息,从内核删除驱动信息(防止内核污染),设备的主次设备号的获取,STATICSTRUCTFILE_OPERATIONSDS18B20_FOPSOWNERTHIS_MODULE,/拥有该结构模块的指针,避免在操作时被卸载,一般初始化为THIS_MODULE(2)对外操作OPENDS18B20_OPEN,/对外提供打开操作RELEASEDS18B20_RELEASE,/当FILE结构指针释放时,调用次函数,即当最后一个打开该设备文件的用户调用CLOSE时,将调用此函数/RELEASE函数的主要任务是清理未结束的输入/输出操作、释放资源、用户自定义排他标志的复位等READDS18B20_READ,/对外提供读操作WRITEDS18B20_WRITE,/对外提供写操作UNLOCKED_IOCTLDS18B20_IOCTL,/该函数是特殊的控制函数,可以通过它向设备传递控制信息或从设备取得状态太原工业学院毕业设计(论文)19信息,即为IO控制函数(3)设备号生成STATICSTRUCTCDEVDS18B20_DEVSINTMAJOR0STATICVOIDDS18B20_SETUP_CDEVSTRUCTCDEVDEV,INTMINOR,STRUCTFILE_OPERATIONSFOPSINTERR,DEVNOMKDEVMAJOR,MINOR/把0和原来生成的设备号再合并到一块去,再生成一个设备号,表示有一个设备CDEV_INITDEV,FOPSDEVOWNERTHIS_MODULEDEVOPSFOPS/把DEV的OPS设置成为FOPSERRCDEV_ADDDEV,DEVNO,1/向内核注册新生成的DEVNO信息,1表示和设备关联的的设备书目IFERR/判断设备是否存活,如果CDEV_ADD调用成功的话,设备就可以使用了,外部的应用程序对它的操作,内核就会允许了PRINTK“ERRORSADDINGDS18B20DN“,KERN_ALERT,MINORPRINTK“ERRORDADDINGDS18B20DN“,ERR,MINOR(4)申请设备号STATICINTDS18B20_INITVOIDINTRESULTDEV_TDEVMKDEVMAJOR,0/申请设备,MAJOR为主设备号,0为次设备号,表示自动分配设备号基于ARM的远程温度监测系统的设计20IFMAJOR/表示如果已经有了主设备号,就直接注册设备号RESULTREGISTER_CHRDEV_REGIONDEV,1,DS18B20_DEVICE_NAMEELSE/如果没有主设备号,RESULTALLOC_CHRDEV_REGION/自动申请主设备号MAJORMAJORDEV/通过访问设备号,获得主设备号IFRESULTINTPTHREAD_CREATEPTHREAD_TTID,CONSTPTHREAD_ATTR_TATTR,VOIDSTART_FUNVOID,VOIDARG作用创建一个线程TIDP线程标识符(唯一性)ATTR线程属性NULLSTART_FUN线程要执行的函数ARGSTART_FUN的参数返回成功返回0,失败返回错误代码INTPTHREAD_JOINPTHREAD_TTID,VOIDPVA基于ARM的远程温度监测系统的设计22作用阻塞调用线程,等待指定线程终止,获取线程返回PVA线程退出的返回值的指针返回成功返回0,失败返回错误码(2)温度采集线程TEMP_COLLECTING线程TEMP_COLLECTING实现温度的采集。使用了系统I/OOPEN,READ,TIME函数和获取时间函数。INCLUDEINTOPENCONSTCHARPATHNAME,INTFLAGS,/MODE_TMODE/作用打开或创建文件返回值成功则返回文件描述符,否则返回1PATHNAME文件路径,需用“”引起来FLAGS函数代表打开模式都以O_开头必选项O_RDONLY只读打开O_WRONLY只写打开O_RDWR可读可写打开这三个参数必须有一个且只能有一个在第二个参数有O_CREAT时添加第三参数INCLUDESIZE_TREADINTFD,VOIDBUF,SIZE_TCOUNT作用从的文件描述符中读出数据返回成功返回读到的字节数,0已到文件尾,出错返回1并设置ERRNOINCLUDEINTCLOSEINTFD作用关闭已经打开的文件太原工业学院毕业设计(论文)23返回值成功返回0,出错返回1并设置ERRNOINCLUDETIME_TTTIME(0);STRFTIME(STR,SIZEOF(STR),“YMDHMS”,LOCALTIME(IOCTL函数是文件结构中的一个属性分量,就是说如果你的驱动程序提供了对IOCTL的支持,用户就能在用户程序中使用IOCTL函数控制设备的I/O通道。返回值成功为0,出错为1FD就是用户程序打开设备时使用OPEN函数返回的文件标示符CMD就是用户程序对设备的控制命令,至于后面的省略号,那是一些补充参数,基于ARM的远程温度监测系统的设计24一般最多一个,有或没有是和CMD的意义相关的。(4)数据库线程TEMP_SAVING线程TEMP_SAVING实现数据(时间和温度)插入数据库的操作。1、打开指定数据库INCLUDEINTSQLITE3_OPENCONSTCHARNAME,SQLITE3MYSQLITENAME数据库文件MYSQLITE句柄返回成功返回0,失败返回错误代码2、关闭数据库INTSQLITE3_CLOSESQLITE3MYSQLITEMYSQLITE句柄返回值成功返回0,失败返回错误码3、执行数据库操作语句INTSQLITE3_EXECSQLITE3,CONSTCHARSQL,SQLITE_CALLBACK,VOID,CHAR返回成功返回0,失败返回错误码SQL执行的SQL语句字符串SQLITE_CALLBACK回调函数VOID回调函数参数,NULLCHAR错误信息回调函数一般在SELECT操作时用来处理查询结果,INSERTUPDATE的时候填NULL4、SQL语句创建表CREATETABLE,太原工业学院毕业设计(论文)25);向表中插入数据INSERTINTOVALUES()程序中除了上述的标准I/O、系统I/O、数据库、多线程操作之外,还运用了信号量的机制,以实现线程之间同步。(5)信号量头文件INCLUDE使用信号量的原因多线程编程,因为无法知道哪个线程会在哪个时候对共享资源进行操作,因此让如何保护共享资源变得复杂,信号量可以线程间对资源的竞争。涉及到的几个信号量函数创建信号量并初始化INTSEM_INITSEM_TSEM,INTPSHARED,UNSIGNEDINTVALUEPSHARED控制信号量的类型,0表示是当前进程的局部信号量,否则在多个进程间共享VALUE初始化值返回值成功返回0,失败返回错误码INTSEM_WAITSEM_TSEMINTSEM_POSTSEM_TSEM信号量其实就是一个计数器。通过操作系统中的PV原语对其进行操作。每一次调用WAIT操作将会使SEM值减一,而如果SEMINCLUDE“SQLITE3H“INCLUDE/包含三个头文件,分别含有标准输入输出、数据库、文件操作的库函数LONGM,NINTSQLINTFIL/函数的声明(1)主函数部分包含有WEB网页及SQL与FIL函数的调用,WEB网页的编写主要是实现网页的布局,其中包含文字的大小、颜色及相关属性,还有就是对其格式的实现。INTMAINVOIDPRINTF“CONTENTTYPETEXT/HTMLNN“/将通过C语言编写的HTML语言转换为HTML语言格式,使其可以正确输出CHARDATAPRINTF“N“太原工业学院毕业设计(论文)27PRINTF“N“PRINTF“温度远程控制N“/网页的标题PRINTF“N“PRINTF“N“/网页的“身体”部分,并将背景颜色设置为粉红色PRINTF“温度远程控制“/输出一行提示信息,其字体为6号,颜色为红色,其他属性为默认值PRINTF“/以下出现的输出信息字体都设置为6号字,颜色设为绿色DATAGETENV“QUERY_STRING“/从网页

温馨提示

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

评论

0/150

提交评论