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

下载本文档

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

文档简介

太原工业学院毕业设计(论文) 学 位 论 文基于ARM的远程温度监测系统的设计 作 者 姓 名: 郝冬冬 学 科 专 业: 通信工程 学 号: 092027111 指 导 教 师: 焦冬莉讲师 完 成 日 期: 2013-6-9 太原工业学院Taiyuan Institute of Technology39诚信申明本人申明:本人所提交的毕业设计(论文)基于ARM的远程温度监测系统的设计的所有材料是本人在指导教师指导下独立研究、写作、完成的成果,设计(论文)中所引用他人的无论以何种方式发布的文字、研究成果,均在设计(论文)中加以说明;有关教师、同学和其他人员对我的设计(论文)的写作、修订提出过并为我在设计(论文)中加以采纳的意见、建议,均已在我的致谢辞中加以说明并深致谢意。本设计(论文)和资料若有不实之处,本人承担一切相关责任。特此申明。本人签名: 2013年06月15日毕业设计(论文)任务书设计(论文)题目: 基于ARM的远程温度监测系统的设计 系部: 电子工程系 专业: 通信工程 学号: 092027111 学生:郝冬冬 指导教师(含职称): 焦冬莉(讲师) 专业负责人:焦冬莉 1 设计(论文)的主要任务及目标随着科技的发展,人类进入了信息时代,人类对信息的获取越来越多,但是信息时代的另外一个重要的特点是人们在生产生活中越来越多的依赖信息技术,从而达到节省时间,提高效率,节约经费的目的。目前,信息技术的一个重要应用方向是远程温度监测技术,温度是最基本的环境参数,人们的生活与其息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度测量方法和装置具有重要的意义。温度监测可以分为现场和远程监测,现场监测就是在测量对象附近显示数值,特定场合下由于监测地点比较分散、偏远、环境对工作人员身体健康有害等,采用传统的温度测量方式周期长、成本高,而且工作人员必须到现场进行测量,因此工作效率非常低,且不便于管理。远程监测就是在测量对象附近放置信号发射装置,将现场采集到的温度数值发射到工程师的接收器上。系统具有结构简单、可靠性高、成本低等特点。监测分站和监测中心之间通过网络方式传递数据,避免了工作人员到现场测量,大大提高了工作效率。本课题所设计的远程温度监测系统,是以仓库温度为研究对象,通过使用DS18B20温度传感器和ARM开发板,将采集到的数据传输到网页上,用户在网页上实现对仓库温度的实时查询。应用此系统,可以使仓库管理者能够实时的知道仓库温度的变化,避免管理者长期呆在仓库,减少人力物力。2 设计(论文)的基本要求和内容(1)查阅相关资料,了解远程温度监测系统基本结构,常规应用,参数指标;(2)确定远程温度监测系统的结构,外围条件,基本参数;(3)进行全局方案的选定、确定;(4)完成系统设计及相关代码的编写。3 主要参考及文献1谭浩强.C程序设计(第三版).北京:清华大学出版社,20052宋宝华.Linux设备驱动开发详解(第2版).北京:人民邮电出版社,20103李晓林等.单片机原理与接口技术(第2版).北京:电子工业出版社。20114刘伟等.CGI技术全面接触.北京:清华大学出版社,20015冯博琴等.微型计算机原理与接口技术(第3版).北京:清华大学出版社,20116吴继峰.基于TCP/IP协议的网络测控仪表的设计与实现.东北:东北大学出版社,20057张越等.基于DS18B20温度传感器的数字温度计.20058唐继贤.51单片机工程应用实例.北京:北京航空航天大学出版社,20099Katsuhiko Ogata.Modem Control EnguneeringM.Publisshing house of electronics industry,200010MSP430X4XX Family Users Guinde.texas Insets,2000:26-3211Abmad W.Biphase amplifier for precision controlled rectification and polar logic operations IEEE Trans Ind Electron,1991,38(1):62-612Soclof S.Analog integrated circuits.prentice-Hill,198513Wang Z.Full-wave precision rectification that is performed in current domain and very suitable CMDS implementation.IEEE Trans.Circuits Syst.199214樊建明等.基于数字温度湿度传感器的温室多点测量系统设计J.传感器与微系统,2007,26(7):1-1515郁有文等.传感器原理及工程应用.西安:西安电子科技大学出版社,20004.进度安排设计(论文)各阶段名称起止日期1整理开题报告3.13.102学习相关知识,提出设计方案3.105.23确定指标选择设计方案5.35.134系统设计5.145.225论文修改整理5.236.11基于ARM的远程温度监测系统的设计摘要随着网络技术的不断发展,Internet技术已经渗透到日常生活和工业生产的各个领域,这也使得实现智能传感器的网络通信功能成为可能。为了实现信息的采集和传输的协调和统一,将计算机网络技术和智能传感器相结合就十分必要。本设计采用嵌入式系统为核心,通过DS18B20温度传感器采集当前的温度数据,并传送给ARM板处理后显示在液晶显示屏上。将其直接接入网络,用户便可使用联网的计算机访问该系统,实现对温度随时的监控。实际上就是在该系统上建立WEB服务器,用户通过浏览器查看传感器的温度值,并能通过服务器进行简单的控制。 关键词:嵌入式Linux操作系统,WEB,DS18B20温度传感器,ARMDesign of remote temperature monitoring system based on ARMAbstractWith the continuous development of network technology, Internet technology has penetrated into every field of daily life and industrial production, it also makes the function of intelligent sensor network communication possible. In order to achieve the coordination and integration of information collection and transmission, combining computer network technology and intelligent sensor is very necessary.This design USES embedded system as the core, the current temperature data gathered through DS18B20 temperature sensor, and transmitted to the ARM board display on the LCD screen after processing. Its direct access to the network, the user can use networked computers to access the system, implementation of temperature monitoring at any time. Is actually set up a WEB server on the system, the user through a browser to view sensors of temperature, and can be easy to be controlled by the server.Key words:embedded Linux operating system, WEB,DS18B20 temperature sensor ,ARM目录1绪论11.1系统的定义及构成特点11.2嵌入式系统的两种应用模式31.3研究远程温度监测的前景42设计方案及设备选择62.1设计分析62.2温度传感器的选择72.3传感器介绍82.3.1 DS18B20的外型及内部结构82.3.2 DS18B20工作原理92.4功能说明123开发流程133.1开发环境:133.2工具安装:134软件设计174.1 DS18B20驱动程序174.2应用程序204.3 CGI程序254.4 HTML程序305系统测试31总结35参考文献37致谢381绪论本章主要介绍嵌入式系统的发展,然后介绍了网络化的远程监控和研究本设计的意义,最后介绍了本论文所完成的工作及成果。1.1系统的定义及构成特点嵌入式系统的核心是嵌入式微处理器。嵌入式处理器一般具备以下4个特点:(1)对实时多任务有很强的支持能力,能完成多任务并且有较短的中断响应时间,从而使内部的代码和实时内核心的执行时间减少到最低限度。(2)具有功能很强的储存区保护功能。这是由于嵌入式系统的软件结构已模块化,而为了避免在软件模块之间出现错误的交叉作用,需要设计强大的存储区起保护功能,同时也有利于软件诊断。(3)可扩展的处理器结构,以能迅速开发出满足相应的最高性能的嵌入式微处理器。(4)嵌入式微处理器必须功耗很低,尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此,如需要功耗只有mW甚至W级。目前,在嵌入式系统应用领域中,不少人对什么事嵌入式系统不甚了解。有些人搞了十多年的单片机应用,不知道单片机就是一个最典型的嵌入式系统;也有些人在解释什么是嵌入式系统时,不是从定义出发,二是列举了嵌入式系统的一些特点,往往不知所云。因此,有必要从现代计算机的发展历史,了解嵌入式系统的由来,从学科建设的角度来探讨嵌入式系统较为准确的定义。嵌入式技术的发展,大致经历了四个阶段:第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。这一阶段的操作系统具有一定的兼容性和扩展性,但用户界面不够友好。第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统的主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API),开发应用程序简单;嵌入式应用软件丰富。第四阶段是以基于Internet 为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及 Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来。综上所述,嵌入式系统技术日益完善,32位微处理器在该系统中占主导地位,嵌入式操作系统已经从简单走向成熟。嵌入式系统已由原先的单一的、非实时的控制系统发展成多元的、实时控制系统。嵌入式系统的性能越来越完善,使得它的应用涉及到很多领域。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及上层应用软件系统等组成,它是集软硬件于一体的可独立工作的系统。嵌入式系统的特点在于:(1)面向用户,面向产品,面向应用:和通用计算机不同,嵌入式系统的工耗、体积、成本、可靠性、速度、处理能力等方面均受到应用要求的制约,如果独立于应用自行发展,则会失去市场。(2)高效性,高可靠性:嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣,去除冗余,力争在同样的成本下实现更强的性能,这样才能在具体应用的选择面前更具有竞争力。在硬件方面,嵌入式系统要针对用户的具体需求,对系统配置进行裁剪和添加才能达到理想的性能甚至根据用户的特殊需求,设计不同的系统以面向不同的用户。在软件方面,要求代码高质量,高可靠性,要求程序编写和编译工具的质量要高,以减少程序二进制代码程度,提高执行效率,节省宝贵的存储空间。(3)相对稳定性:嵌入式系统应和具体应用有机的结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式产品一旦进入市场,具有较长的生命周期。嵌入式系统中的软件,一般都固化在只读存储器中,而不是以磁盘为载体,可以随意更换,所以嵌入式系统的生命周期也和嵌入式产品一样长。另外,各个行业的用用系统和产品,和通用计算机不同,很少发生突然性的跳跃,嵌入式系统中的软件也因此更强调可继承性和技术衔接性,发展比较稳定。 1.2嵌入式系统的两种应用模式嵌入式系统的嵌入式应用特点,决定了它的多学科交叉特点。作为计算机的内含,要求计算机领域人员介入其体系结构、软件技术、工程应用方面的研究。然而,了解对象系统的控制要求,实现系统控制模式必须具备对象领域的专业知识。因此,从嵌入式系统发展的历史过程,以及嵌入式应用的多样性中,可以了解到客观上形成的两种应用模式。(1)客观存在的两种应用模式嵌入式计算机系统起源于微型机时代,但很快就进入到独立发展的单片机时代。在单片机时代,嵌入式系统以器件形态迅速进入到传统电子技术领域中,以电子技术应用工程师为主体,实现传统电子系统的智能化,而计算机专业队伍并没有真正进入单片机应用领域。因此,电子技术应用工程师以自己习惯性的电子技术应用模式,从事单片机的应用开发。这种应用模式最重要的特点是:软、硬件的底层性和随意性;对象系统专业技术的密切相关性;缺少计算机工程设计方法。虽然在单片机时代,计算机专业淡出了嵌入式系统领域,但随着后PC时代的到来,网络、通信技术得以发展;同时,嵌入式系统软、硬件技术有了很大的提升,为计算机专业人士介入嵌入式系统应用开辟了广阔天地。计算机专业人士的介入,形成的计算机应用模式带有明显的计算机的工程应用特点,即基于嵌入式系统软、硬件平台,以网络、通信为主的非嵌入式底层应用。(2)两种应用模式的并存与互补由于嵌入式系统最大、最广、最底层的应用是传统电子技术领域的智能化改造,因此,以通晓对象专业的电子技术队伍为主,用最少的嵌入式系统软、硬件开销,以8位机为主,带有浓重的电子系统设计色彩的电子系统应用模式会长期存在下去。另外,计算机专业人士会愈来愈多地介入嵌入式系统应用,但囿于对象专业知识的隔阂,其应用领域会集中在网络、通信、多媒体、商务电子等方面,不可能替代原来电子工程师在控制、仪器仪表、机械电子等方面的嵌入式应用。因此,客观存在的两种应用模式会长期并存下去,在不同的领域中相互补充。电子系统设计模式应从计算机应用设计模式中,学习计算机工程方法和嵌入式系统软件技术;计算机应用设计模式应从电子系统设计模式中,了解嵌入式系统应用的电路系统特性、基本的外围电路设计方法和对象系统的基本要求等。(3)嵌入式系统应用的高低端由于嵌入式系统有过很长的一段单片机的独立发展道路,大多是基于8位单片机,实现最底层的嵌入式系统应用,带有明显的电子系统设计模式特点。大多数从事单片机应用开发人员,都是对象系统领域中的电子系统工程师,加之单片机的出现,立即脱离了计算机专业领域,以“智能化”器件身份进入电子系统领域,没有带入“嵌入式系统”概念。因此,不少从事单片机应用的人,不了解单片机与嵌入式系统的关系,在谈到“嵌入式系统”领域时,往往理解成计算机专业领域的,基于32位嵌入式处理器,从事网络、通信、多媒体等的应用。这样,“单片机”与“嵌入式系统”形成了嵌入式系统中常见的两个独立的名词。但由于“单片机”是典型的、独立发展起来的嵌入式系统,从学科建设的角度出发,应该把它统一成“嵌入式系统”。考虑到原来单片机的电子系统底层应用特点,可以把嵌入式系统应用分成高端与低端,把原来的单片机应用理解成嵌入式系统的低端应用,含义为它的底层性以及与对象系统的紧耦合。1.3研究远程温度监测的前景防潮、防霉、防腐、防爆是仓库日常工作的重要内容,是衡量仓库管理质量的重要指标。它直接影响到储备物资的使用寿命和工作可靠性。为保证日常工作的顺利进行,首要问题是加强仓库内温度的监测工作。但传统的方法是用温度计等测试器材,通过人工进行检测,对不符合温度要求的库房进行通风和降温等工作。这种人工测试方法费时费力、效率低,且测试的温度误差大,随机性大。因此我们需要一种造价低廉、使用方便且测量准确的温度测量仪。高性能的ARM微处理器有强大的数据处理能力和网络功能,研究基于WEB的智能传感器便是对ARM的应用和网络发展趋势做的一个很好的尝试,我们在嵌入式系统中建立WEB服务器,使其能通过WEB服务器便能方便的查询远程传感器所采集的数据。WEB技术是以HTTP技术为基础,具有简单、高效、跨平台等优点,已成为信息网络的一种最普遍应用的交互平台。因此,基于ARM的远程温度监测具有许多显著的优点,研究此智能传感器的意义综合起来如下:(1)该传感器在嵌入式系统中建立WEB服务器,用户只要安装有浏览器,便可通过Internet监视远程传感器的温度,无需安装其他支撑软件,便于推广到Internet广域网络,在保证网络的情况下可以实现全球范围的实时监控。(2)有网络接口,切网络接口运用的是TCP/IP协议,能方便随时的接入网络。(3)所有数据和表单都在源程序中,升级和修改只需在源程序中进行。在监视过程中,服务器端能提供实时变化的数据。今天,以Internet为代表的的计算机网络的迅速发展及相关技术的不断进步,突破了传统通信方式的时空限制和地域障碍,使大范围内的通信更加便捷。Internet拥有的硬件和软件资源在越来越多的领域中得以应用,如远程数据采集、远程设备的故障诊断等。智能传感器也顺应这发展趋势,在新需求的推动下,逐步与网络相结合,出现了网络化的智能传感器。而ARM凭着其功能强、成本低、体积小和功耗低等优点成为开发网络化智能传感器首选的处理器。我这次的毕业设计所做的基于ARM的远程温度监测便是迎合现在这种网络化的需求,使用嵌入式系统来实现传感器的网络化控制,可用于各种家电设备中,方便人们能通过网络上远程的计算机随时对传感器进行访问。本文主要完成的工作体现在以下几个方面:(1)对智能传感器的概念和发展做了分析和研究。(2)提出了基于WEB的智能传感器的设计和方案,对设计思想和关键技术做了具体的分析。(3)对嵌入式开发工作平台友善之臂ARM6410的环境的熟悉了解,介绍了温度传感器DS18B20内部结构。(4)阐述了软件开发环境,对软件开发中各模块做了分析和叙述。并提出了测试方案及测试结果。(5)对基于WEB智能传感器的远程监测设计总结以及有待进一步解决的问题进行了展望。2设计方案及设备选择2.1设计分析由于本设计的目标是在ARM板上基于WEB的远程温度监测的设计,实现使传感器采集到的数据能通过网络传送到WEB浏览器查看,在此我选用的是嵌入式系统的方案。下图是本设计的框架图:ARM板WEB浏览器温度传感器 图2-1:框架图本设计的主要模块有18B20驱动程序、蜂鸣器的驱动程序、应用程序(含温度采集、比较、入库)、WEB页面及CGI程序。WEB页面18B20 温度采集数据库 读取温度应用程序输送 输出库中 时间 温度入库阈值 时间温度CGI程序 读取阈值 温度超出阈值报警蜂鸣器缓存文件 阈值存入 读取数据库中数值图2-2:模块关系图ARM板我选用的是友善之臂6410开发板,该开发板是采用Tiny6410核心板的一款参考设计底板,它主要帮助开发者以此为参考进行核心板的功能验证以及扩展开发。该底板具有三LCD接口、4线电阻触摸屏接口、100M标准网络接口、标准DB9五线串口、Mini USB 2.0接口、USB Host 1.1、3.5mm音频输入输出口、标准TV-OUT接口、SD卡座、红外接收等常用接口;另外还引出4路TTL串口,另1路TV-OUT、SDIO2接口(可接SD WiFi)接口等;在板的还有蜂鸣器、I2C-EEPROM、备份电池、AD可调电阻、8个中断式按键等。2.2温度传感器的选择当将单片机用作监测系统时,系统总要有被测信号懂得输入通道,由计算机拾取必要的输入信息。对于测量系统而言,如何准确获得被测信号是其核心任务;而对监测系统来讲,对被监测对象状态的测试和对监测条件的监察也是不可缺少的环节。传感器是实现测量的首要环节,是监测系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量都将无法实现。工业生产过程的自动化测量,几乎主要依靠各种传感器来检测生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。方案一:采用热电阻温度传感器。热电阻是利用导体的电阻随温度变化的特性制成的测温元件。现应用较多的有铂、铜、镍等热电阻。其主要的特点为精度高、测量范围大、便于远距离测量。铂的物理、化学性能极稳定,耐氧化能力强,易提纯,复制性好,工业性好,电阻率较高,因此,铂电阻用于工业检测中高精密测温和温度标准。缺点是价格贵,温度系数小,受到磁场影响大,在还原介质中易被玷污变脆。按IEC标准测温范围-2道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库00650,百度电阻比W(100)=1.3850时,R0为100和10,其允许的测量误差A级为(0.15+0.002 |t|),B级为(0.3+0.005 |t|)。铜电阻的温度系数比铂电阻大,价格低,也易于提纯和加工;但其电阻率小,在腐蚀性介质中使用稳定性差。在工业中用于-50180测温。方案二:DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。技术性能:(1)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)测温范围 55+125,固有测温误差0.5。(3)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输 的不稳定。(4)工作电源: 35V/DC (可以数据线寄生电源)。(5)在使用中不需要任何外围元件。(6)测量结果以912位数字量方式串行传送。(7)不锈钢保护管直径 6。(8)适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温。(9)标准安装螺纹 M10X1, M12X1.5, G1/2”任选。(10)PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温控制领域; 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制;汽车空调、冰箱、冷柜、以及中低温干燥箱等;供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制。综合比较方案一与方案二,方案二更为适合于本设计系统对于温度传感器的选择。2.3传感器介绍美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 一线总线接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS18B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。2.3.1 DS18B20的外型及内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图::图2-3:DS18B20外型及引脚排列DS18B20引脚定义:(1)DQ为数字信号输入/输出端;(2)GND为电源地;(3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 图2-4:DS18B20内部结构图2.3.2 DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。斜率累加器比较预置预置计数器1低温度系数晶振LSB置位/清除0温度寄存器 加1=0高温度系数晶振计数器2图2-5:DS18B20测温原理框图DS18B20有4个主要的数据部件:(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。 (2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。图2-6:DS18B20温度值格式表这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。图2-7:DS18B20温度数据表(3)DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 图2-8:配置寄存器结构:低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)图2-9:温度分辨率设置表2.4功能说明您可以在web网页上设置温度的上下限的阈值,当温度不在这一范围内时,就会使蜂鸣器报警响铃,如果高于上限报警器每隔1秒响一次,低于下限则报警器响5秒钟,在区间内不响。传感器如果测量的值恢复正常的话,就会关闭蜂鸣器,不然会一直响铃报警。程序运行后,温度测量程序每隔十秒钟测一次,每次测量都会把时间,温度值存入数据库中,远程控制监测cgi页面,每次刷新,都会把入库的所有数据显示在页面上,你通过它可以清楚的看到每次的温度记录。3开发流程3.1开发环境:(1)本次开发环境为fedora9(2)编译器为arm-linux-gcc -4.5.1(3)开发板为arm11-6410开发板(4)温度传感器为DS18B203.2工具安装:一、安装交叉编译器arm-linux-gcc4.5.11、把arm-linux-gcc-4.5.120101103.tgz复制到fedora9中去。2、使用tar zxvf 命令解压,这时会生成opt文件夹。3、进入文件夹opt/FriendlyARM/toolschain/会看到4.5.1文件夹。4、使用su 命令进入root用户,使用命令mkdir在/usr/local/目录下创建arm目录。5、并使用cp rf命令把4.5.1文件夹及内的所有内容复制到/usr/local/arm/目录下。6、打开/etc/下的bashrc文件,在最后加上以下内容:export PATH=$PATH:/usr/local/arm/4.5.1/bin。7、重启linux系统,此时交叉编译器安装完毕。二、安装sqlite3数据库1、把sqlite3的安装包sqlite-amalgamation-.tar.gz复制到linux中去。2、使用tar zxvf 命令解压,生成sqlite-文件夹,进入root用户并进入解压出来的文件夹执行命令./configure - -host=arm-linux -perfix=/usr/local/sqlite3 makemake install此时嵌入式版本的sqllite3数据库安装完毕了。三、数据库移植我们用的是ftp下载,也可以使用其他的方式下载到板子上:1、把刚安装好的数据库移植到开发板上,首先把串口线,网线等与开发板连接好,打开SecureCRT这个工具,打开串口,启动开发板。2、在linux系统中进入root用户使用命令。(1)service vsftpd restart启动ftp。(2)service iptables stop关闭防火墙。(3)ifconfig 查看PC 机linux系统的ip。(4)cp /usr/local/sqlite3/bin/sqlite3 /var/ftp/这样把sqlite3复制到/var/ftp/目录下去,等待向板子上下载。(5)cp /usr/local/sqlite3/lib/libsqlite3.so.0.8.6 /var/ftp/目录下。3、在开发板上的终端创建目录/project/进入并执行:ftp +PC机的linux的ip地址,输入anonymous(表示匿名登录)回车,再输入回车(不需要密码)。4,使用命令get sqlite3下载sqlite3,在使用命令get libsqlite3.so.0.8.6下载动态库。把sqlite3放在/usr/bin/目录下,把libsqlite3.so.0.8.6放在板子上的/usr/lib/目录下,并在该目录下执行:ln s libsqlite3.so.0.8.6 libsqlite3.so生成一个链接文件libsqlite3.soln s libsqlite3.so.0.8.6 libsqlite3.so.0生成一个链接文件libsqlite3.so.0到现在板子上已经有了sqlite3数据库了,即移植数据库完成了。四、驱动的编译及下载1、把18b20.c程序复制到Linux中的一个文件夹下/project/目录下。2、新建一个Makefile文件,用vi打开,在里面写上obj:=18b20.o。3、把linux内核文件linux-2.6.38-20111205.tgz复制到arm-linux目录下,解压缩,进入linux-2.6.38目录下,使用命令:cp config_mini6410_h43 .config因为板子的液晶屏是h43的,所以必须使用这一个文件。4、在linux-2.6.38文件目录下,执行make zImage,如果没有错误,则可以进行下一步,这时会在linux-2.6.38/arch/arm/boot/目录下生成zImag文件镜像,此镜像可以下载到开发板上运行。5、然后再执行命令:make C /home/dell/linux-2.6.38/ M=/home/dell/project/ modules-C后边的是内核的路径,M后边是驱动程序的路径,modules表示编译成模块(此编译方法为内核外编译)。6、这时会生成18b20.ko文件,并将其复制到/var/ftp/目录下,等待下载到板子上,用下载数据库的办法,下载.ko文件到开发板上。五、 驱动程序的加载及创建设备节点1、把下载的两个驱动程序生成的.ko文件:18b20.ko和beep_s.ko文件下载到板子上的一个目录下/project/(推荐)。都放到一个目录下,易于操作管理。2、使用命令insmod 18b20.ko回车,此时会出现一个主设备号251或者其他数字,在使用mknod /dev/DS18B20 c 251(主设备号) 0 回车创建设备节点,以后提供给用户的就是这个节点文件,他可以open,read,close,write等操作。3、使用同样的办法,创建蜂鸣器的设备文件节点。4、此时,你可以执行测试程序,查看一下效果。六、应用程序及web页面程序的运行1、把编译生成的.cgi程序,以及pthread程序下载到板子上。2、把.cgi程序放在板子的/www/cgi-bin/目录下。3、把tmp-html.htm网页文件放在/www/目录下。4、在目录/lin/project/work/目录下创建date数据库sqlite3 date便可创建。再执行pthread这个程序,这时,后台程序就已经开始运行了。打开浏览器,输入30看到开发板的页面,再在后面输入tmp-html.html回车。4软件设计4.1 DS18B20驱动程序一 18b20驱动程序分为几个模块函数,l 寄存器的设置(输入)void tmp_input(void )l 寄存器的设置(输出)void tmp_output(void)l IO口的设置(高电平)void tmph(void)l IO口的设置(低电平)void tmpl(void)l 向18b20写一个位void wrbt(uchar bite)l 从18b20读一个位uchar rdbt(void)l 向18b20写一个字节void wrbyte(uchar k)l 从18b20读一个字节uchar rdbyte(void)l 复位初始化18b20uchar reset(void)l 打开设备节点(向用户提供的)int DS18B20_open(struct inode *inode,struct file *file)l 关闭设备节点(向用户提供的)int DS18B20_release(struct inode *inode,struct file *file)l 对18b20进行ROM操作命令static ssize_t DS18B20_read(struct file *filp,unsigned char _user *buf,size_t count,loff_t *ppos)。二 驱动的框架(1)驱动框架包括向内核注册驱动信息,从内核删除驱动信息(防止内核污染),设备的主次设备号的获取,static struct file_operations DS18B20_fops=.owner = THIS_MODULE,/拥有该结构模块的指针,避免在操作时被卸载,一般初始化为THIS_MODULE(2)对外操作 open = DS18B20_open,/对外提供打开操作.release = DS18B20_release,/当file结构指针释放时,调用次函数,即:当最后一个打开该设备文件的用户调用close时,将调用此函数/release 函数的主要任务是清理未结束的输入/输出操作、释放资源、用户自定义排他标志的复位等 .read = DS18B20_read,/对外提供读操作 .write = DS18B20_write,/对外提供写操作.unlocked_ioctl = DS18B20_ioctl,/该函数是特殊的控制函数,可以通过它向设备传递控制信息或从设备取得状态信息,即为io控制函数;(3)设备号生成static struct cdev DS18B20_devs;int major=0;static void DS18B20_setup_cdev(struct cdev *dev,int minor,struct file_operations *fops)int err,devno=MKDEV(major,minor);/把0和原来生成的设备号再合并到一块去 ,再生成一个设备号,表示有一个设备 cdev_init(dev,fops); dev-owner=THIS_MODULE; dev-ops=fops;/把dev的ops设置成为fopserr=cdev_add(dev,devno,1);/向内核注册新生成的devno信息,1表示和设备关联的的设备书目if(err)/判断设备是否存活,如果cdev_add()调用成功的话,设备就可以使用了,外部的应用程序对它的操作,内核就会允许了 printk(Error %s adding DS18B20 %dn,KERN_ALERT,minor); printk(Error %d adding DS18B20 %dn,err,minor); (4)申请设备号static int DS18B20_init(void) int result;dev_t dev=MKDEV(major,0);/申请设备,major为主设备号,0为次设备号,表示自动分配设备号if(major)/表示如果已经有了主设备号,就直接注册设备号 result=register_chrdev_region(dev,1,DS18B20_DEVICE_NAME); else/如果没有主设备号, result=alloc_chrdev_region(&dev,0,1,DS18B20_DEVICE_NAME);/自动申请主设备号 major=MAJOR(dev);/通过访问设备号,获得主设备号 if(result0) printk(DS18B20:unable to get major %sn,KERN_ALERT);/报告错误,立即采取措施宏为1 printk

温馨提示

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

评论

0/150

提交评论