版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WORD格式整理./毕业设计<论文>题目基于物联网技术的智能家居系统学院<全称>信息科学与工程学院专业、年级计算机科学与技术09级学生姓名学号指导教师论文评阅人XX交通大学2013年前言既互联网技术之后,物联网作为一个信息技术综合应用的代名词,掀起信息产业第三浪潮,大国纷纷将其纳为重点领域,显而易见,它将影响到政治,军事,经济,环境等方方面面,必在未来极大地改变人们的生活。物联网是新一代信息技术的重要组成部分。其英文名称是"Theinternetofthings"。顾名思义,"物联网就是物物相连的互联网"。这里包括两层意思:第一,物联网的核心和基础仍然是互联网,它是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物体与物体之间,进行信息交换和通信。因此可总结出,物联网的定义是:通过射频识别〔RFID、光电感应器、全球定位系统、激光扫描器信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、监控和管理的一种网络。物联网上部署了海量的多种类型传感器,每个传感器都是一个信息源,不同类别的传感器所捕获的信息内容和信息格式不同。传感器获得的数据具有实时性,按一定的频率周期性的采集环境信息,不断更新数据。其目的是实现物与物、物与人,所有的物品与网络的实时连接,方便识别、管理和控制。其在2011年的产业规模超过2600亿元人民币,行业竞争将会越来越激烈。在市场应用方面,2011年从整体来看,占据中国物联网市场主要份额的应用领域为智能工业、智能物流、智能交通、智能电网、智能医疗、智能农业、智能环保和智能家居等。本文研究的是基于物连网技术的智能家居系统。"智能家居",又称智能住宅,是通过采用先进的计算机技术、网络通信技术和综合布线技术,建立一个由家庭安全防护系统、网络服务系统和家庭自动化系统等组成的家庭服务与管理集成系统,从而实现全面、安全、舒适的居住环境以及便利的通讯网络家庭住宅。把与家庭生活有关的各种子系统有机结合在一起统一管理,使生活舒适、安全、和高效,具有良好的发展前景。随着科学技术的发展和物质生活水平的提高,人们对家居生活环境的要求也越来越高。家居不再是生活起居的场所,同时也是休闲、娱乐的地方。目前,高科技技术已经融入智能建筑当中,智能的概念也不断得到深化和更新。建设部要求根据不同消费者的需求,推动家居数字化、建筑智能化,产品便利化的发展,未来智能家居市场潜力巨大。智能家居是一个多功能的系统,它包括可视化对讲、家庭内部的安全防范、家电远程监控,远程视频监控、远程医疗诊断及护理系统,网上教育系统、家庭影星系统等。智能家居的基本目标是将家庭中各种信息相关的通信设备、家用电器和家用安防等装置连接到一个智能化系统上进行集中或异地监视、控制和家庭事务性管理,并保持这些家庭设施与住宅环境的和谐与协调。随着人类的应用需求和住宅智能化的发展,智能家居系统将拥有更丰富的内容,系统也越来越复杂,功能也越来越齐全。在当前市场中,智能家居相比传统家居、建材行业所占的市场份额还是微乎其微。在目前的智能家居市场中不少企业均是发展项目与渠道建设并行发展,其中项目合作占据着相当重要的位置,这些项目往往也是定位相对高端的别墅、复式楼和大户型高档小区住宅居多。随着信息技术和Internet技术的飞速发展,智能家居技术在实现成本上大幅度降低,同时人们永不停步地追求生活智能化和舒适化,如果技术更加成熟、成本更加低廉,功能更加完美,其市场需求将会非常巨大。目录TOC\o"1-3"\h\u摘要IABSTRACTII第1章绪论11.1智能家居的简介11.2国内外的现状及发展趋势21.2.1国外的发展现状21.2.2国内的发展现状31.3本课题研究的目的和意义41.4本课题研究的基本内容41.5本章小结5第2章系统的总体方案设计62.1系统需求分析62.1.1系统功能需求分析62.1.2性能需求分析62.1.3用户界面及其他需求分析62.2系统设计的原则72.3系统总体架构设计72.4系统主要硬件介绍82.4.1ARM处理器82.4.2TC35模块10温度传感器112.4.4MQ-2烟雾传感器12光电传感器132.4.6ISD1760语音芯片14继电器152.5软件系统介绍152.5.1几种嵌入式操作系统的比较152.5.2选择嵌入式操作系统的依据172.6本章小结19第3章建立Linux开发环境203.1搭建开发环境203.1.1安装虚拟机、Linux操作系统、源代码及其他工具203.1.2建立交叉编译环境203.1.3配置网络文件系统NFS213.2嵌入式软件开发层次213.2.1BootLoader介绍223.2.2定制Linxu内核223.2.3根文件系统233.3本章小结24第4章系统的实现254.1GSM远程控制模块的实现274.1.1mini2440串口的配置和实现274.1.2通过串口发送短信284.2温度采集模块的实现294.3烟雾传感器模块的实现324.4具有语音提示功能的密码锁防盗模块的实现344.5预防小孩坠楼模块374.6本章小结39第5章系统测试405.1整体界面测试405.2模块功能测试415.2.1远程监控家电模块功能测试415.2.2密码锁防盗模块功能测试435.2.3烟雾报警模块功能测试435.2.4预防小孩坠楼模块功能测试44第6章总结与展望456.1总结456.2展望46致谢47参考文献48WORD格式整理.摘要物联网技术的兴起和发展,不仅改变了我们的工作方式、也逐渐地改变我们的生活方式。不仅要求办公自动化、智能化,也需要家居生活逐渐地变得自动和智能起来。智能家居就是在这样的背景下产生的。智能家居系统是利用计算机、嵌入式系统和网络通信技术将各种家用设施通过家庭网络连接到一起,从而为人们提供更为便利舒适的生活环境。本设计利用32位嵌入式ARM处理器S3C2440作为智能家居控制系统的核心控制器,运用高性能、接口丰富、方便移植与扩展性好等优点,并且利用嵌入式操作系统实时性强、可靠性高、资源丰富等优势,将嵌入式技术作为智能家居控制器的开发平台,使智能家居控制系统的应用开发能够变为在嵌入式平台上的二次开发,从而缩短开发周期,并且节约资源。该设计通过对智能家居系统的分析,确定了总体架构设计。针对智能家居系统的特点和所要实现的基本功能,分析了智能家居控制器的基本结构,然后对各个模块电路进行了详细设计。最终利用人体红外传感器<infraredsensor>、GSM模块、温度传感器<temperaturetransmitter>、光电传感器<photoelectricsensor>,烟雾传感器<MQ-2>,继电器等,结合电路组装成系统,实现房屋的远程监控,以及保护人员、物体的安全,方便用户随时在最短的时间内了解并掌握房屋情况。关键词:物联网,智能家居,远程监控.ABSTRACTTheriseanddevelopmentoftheInternetofthingstechnology,especiallyhighlydevelopingofcomputerandnetworkingtechnologies,notonlychangeoureverydaywork,butalsoourlife.Automationandintelligenceinofficewillnotenough,it’satrendtoaskformoreintelligenteverywhere,homelifeincluded.Thatiswhysmarthousecomeout.Thesmarthomesystemisusingcomputerandnetworkcommunication,embeddedsystemtechnologywillallkindsofhouseholdfacilitiesviahomenetworkconnectiontogether,soastoprovidemoreconvenientandcomfortablelifeforpeople.Weutilizethe32-bitembeddedARMprocessorS3C44B0Xasthecontrollingcoreofthesmarthomesysteminthispaper.Ithascharacteristicsofhighperformance,plentifulinterfacesandconvenienttransplantationandextension.Andalsoweadoptembeddedtechnologyastheplatformofthesmarthomecontrollerowingtoitshighreal-timeability,highreliabilityandrichresourses.Thustheapplicationofsmarthomesystembecomesthesecondarydevelopmentontheembeddedplatformsothatthedevelopingperiodiscutdownandresourceissaved.Thisdesignthroughtheanalysisoftheintelligenthouseholdsystem,determinetheoverallarchitecturedesign.Accordingtothecharacteristicsoftheintelligenthouseholdsystemandtoachievethebasicfunctions,thebasicstructureofsmarthomecontrollerareanalyzed,thenhascarriedonthedetaileddesigntoeachmodulecircuit,thefinalbodyusingthehumanbodyinfraredsensor,GSMmodule,temperaturetransmitter,photoelectricsensor,smokesensors,etc.combiningwiththecircuitassemblesystem,realizetheremotemonitoringofthebuilding,aswellastoprotectthesafetyofpersonnel,objects,convenienttotheuseratanytimeintheshortestpossibletimetounderstandandgrasphousingsituation.Keywords:Internetofthings,Smarthome,Remotecontrol.第1章绪论随着人们生活水平的提高,电子技术,通信技术和自动化技术的日趋完善,家居智能化相应也就出现在了人们的生活中。它既能给我们营造了温馨舒适、安全便捷的生活环境,还能够对家电设备进行实时监控以及管理,当家庭安全问题出现后还能及时给我们相应的警报。智能家居系统是将大大小小的各种家用电器以及家庭安全保护设备通过有线或无线的方式连接起来,可以进行集中或远程的监控、管理,为家庭住宅环境的安全提供了高效的管理方式。与普通的家居相比,智能家居不仅包括了普通家居的全部功能,更重要的是它提供给了我们温馨快乐,且安全高效的高质量生活环境,还将一个看似静止的生活空间变成了一个有一定高智能的生活小帮手,更加进一步优化了我们的生活质量。1.1智能家居的简介智能家居系统的概念起源于上世纪70年代的美国[1],随后,传播到欧洲、日本等国并且得到了很好的发展。在我国,智能家居这一概念推广较晚,约在90年代末家居智能化系统才得以进入国内,但发展速度惊人,至今已存在相当数量的智能化小区及住宅。所谓智能家居〔SmartHome是现代电子技术、自动化技术及通信技术相结合的产物。它是以家为平台,兼备建筑、自动化,智能化于一体的高效、舒适、安全、便利的家居环境。自动化的智能家居不再是一幢被动的建筑,相反,成了帮助主人尽量利用时间的工具,使家庭更为舒适、安全、高效和节能。智能家居是现代社会最热门的话题之一,它的目标是通过网络等信息通信技术手段实现对家居电器等的智能控制,使其能够按照人们的设定工作运行,而不论距离的远近。智能化与远程控制是智能家居的两大特点。目前,已经有越来越多的机构和个人开始了对智能家居进行研究。随着网络技术的发展,特别是无线网络的发展,网络化智能家居系统可提供遥控、家电〔空调,热水器等控制、照明控制、室内外遥控、窗帘自控、防盗报警、电话远程控制、可编程定时控制及计算机控制等多种功能和手段,使生活更加舒适、便利和安全。它能够自动控制和管理家电设备,对家庭环境的安全进行监控报警,并且能够为住户提供安全舒适、高效便利的学习生活及工作环境。家居智能化系统将家庭中各种与信息相关的通信设备、家用电器以及家庭保安装置通过有线或无线的方式连接起来,并进行集中或异地的监控、管理,保持家庭住宅环境的舒适、协调。1.2国内外的现状及发展趋势智能家居的发展分为三个阶段[2]:首先是家庭电子化〔HomeElectronics阶段,这个时期主要是面向单个的电器,家庭电器之间并没有形成网络,亦没有大的联系。其次是住宅自动化〔HomeAutomation阶段,这个时期是面向功能的阶段,一部分的家庭电器之间形成了简单的网络,主要是为了实现某个特定单一的功能,例如单一的自动抄表功能。最后是家居智能化〔欧洲称为SmartHome,美国称为WiseHouse阶段,这个时期是面向系统设计的阶段,系统通过家庭分布总线把住宅内各种与信息相关的通信设备、家用电器、报警装置并到网络节点中进行集中的监控、管理,保持家电与环境的协调,提供生活、工作、学习以及娱乐的各种优质服务,营造一种温馨舒适的家庭氛围。智能家居控制系统提供高效、舒适的家居环境,确保住户的生命财产安全;集中或远程调节家居环境的温度、湿度以及风的速度等,同时检查空气成分,提高空气质量;调节音响,电视等娱乐设施,愉悦心情;合理利用太阳能活周遭环境的变化,尽可能的节约能耗,达到合理利用资源;提供现代化的通信、信息服务。1.2.1国外的发展现状1984年,世界上第一幢智能建筑在美国康涅迪格州落成,这栋意义非凡的建筑只是对一座旧式大楼的一定程度的改造而完成的。它只是采用计算机系统对大楼的空调、电梯、照明等设备进行监控,并提供语音通信、电子邮件、情报资料等方面的信息服务。2000年,新加坡有近30个社区的约5000户家庭采用了这种家庭智能化系统,而美国的安装住户高达4万户。2003年,网络化家居的建设带来了高达4500亿美元的市场价值,这其中有3700亿美元是智能家电硬件产品的价值,剩余的部分则是软件和技术支持服务的费用。现在,国外的智能家居系统技术己日趋成熟,预计今年,50%以上的新房将具有一定的"智能型家居"功能。于此同时,由于技术的日益标准化,这些新型智能家居系统将比比尔.盖茨耗资6000万美元的高端别墅便宜得多。在智能家居系统研发方面,美国及一些欧洲国家一直处于领先地位。近年来,以美国微软公司及摩托罗拉公司等为首的一批国外知名企业,先后挤身于智能家居的研发中。例如:微软公司开发的"梦幻之家"、摩托罗拉公司开发的"居所之门"、IBM公司开发的"家庭主任"等均已日趋成稳。此外,日韩新等国的龙头企业纷纷致力于家居智能化的开发,对家居市场更是跃跃欲试。目前市场上出现得智能家居控制系统主要有:〔1X-10系统〔美国,该系统是利用电力线作为网络平台,采用集中控制方式实现。这套系统的功能较为强大,与其它家居控制系统如ABB、C_BUS等比起来更容易接收,使用也相对简单。因为实现同样的功能,X-10家居控制系统是利用220v电力线将发射器发出的X-10信号传送给接收器从而实现智能化的控制,因此采用这套系统不需要额外的布线,这也是这套系统的最大的一个优势,因为其它系统基本上都需要布低压线,在墙上或地面开槽、钻孔,施工难度大、费用高、工期长。但由于缺乏在国内市场推广的条件且价格昂贵,该系统在国内应用极少。〔2EIB系统〔德国,该系统采用预埋总线及中央控制方式实现控制功能。但由于其工程要求复杂严苛,并且价格较高,因此一直无法打开国内市场。〔38X系统〔新加坡,该系统采用预处理总线跟集中控制方式来实现功能。它的优点在于利用的产品对系统进行扩展,系统较为成熟,比较适合中国国情。但是由于系统架构、灵活性及产品价格等方面还难以达到要求,所以目前在国内还较少应用。1.2.2国内的发展现状20世纪90年代后期,我国的智能小区日益兴起。众所周知,我国的智能化住宅建设最早起于上海、XX和XX等沿海城市,并逐渐向内陆发展[3]。在97香港回归之际,在建设部"97跨世纪住宅小区案竞赛活动"中,上海中皇广场被建设部科技委员会列为全国首家"智能住宅示范工程",揭开了全国智能小区发展的序幕。1999年,建设部勘察设计司、建设部住宅产业化办公室联合组织实施全国住宅小区智能化技术示范工程,标志着我国住宅小区智能化进入了一个新阶段。随着信息化走进了千家万户,由国家经贸委牵头成立了家庭信息网络技术委员会,而信息网络技术体系研究及产品开发已经被列为了国家技术创新的重点专项计划。据建设部要求,截止今年,我国将有70%以上的家庭拥有Internet入网设备,大中城市中50%的住宅要实现智能化。我国的智能家居相对于国外起步较晚,尚未形成一定的国家标准。目前,主要采用国外的一些技术产品,但也有一些企业推出了自己的产品,主要有:〔1e家庭〔海尔,该系列产品以海尔电脑作为控制中心,各种网络家电作为终端设备,海尔移动电话作为移动数字控制中心。海尔在技术上同微软合作,利用微软的WindowsMe技术和海尔的网络家电,使"e家庭"已具雏形,已推出了网络洗衣机、网络冰箱、网络空调、网络微波炉等一系列网络家电。〔2e-home数字家园〔清华同方,该智能家居控制系统是专门针对中国家庭设计的,遵循国际技术标准,采用嵌入式软、硬件技术,提供网络、网络节点及末端设备。产品以功能模块开发为主,基于国外成熟的智能家居标准之上。其智能家居控制系统主要有以下三个部分:A系列:遵循EIB协议的家庭控制产品,适用于中高档住宅区。B系列:遵循X-10协议的家庭控制产品,适用于中档住宅区。易家三代:配电箱集中安装式家庭控制产品。国内各大软、硬件机构正在积极的研制、开发更为符合市场的智能化家居设备,以解决当前智能化产品实用性差、使用复杂及产品价格昂贵等缺点,而技术创新性也逐步向国际先进水平靠拢,这样的未来值得期待。1.3本课题研究的目的和意义根据前面提到的一些调查结果及数据可以看出,虽然目前智能家居系统有了一定的发展,并且市场上也开始出现相应的产品,但从总体的发展来看,不容乐观,特别是统一标准和权威产品的缺乏严重影响了家居智能化的发展。随着科技的提高,经济的发展,人们的物质生活水平的提高,对家居环境的要求也越来越高,作为家居智能化的核心部分——智能家居控制系统也越发显得重要。家居智能化控制的开发和建设是未来国家、经济发展的必然趋势[4]。智能家居控制器可以为系统提供智能控制方案,使住户的控制更便捷,更高效,更能为家庭的日常活动节约不必要的能耗。而且在现在这个注重绿色环保的世界里,智能地为住户控制好空气的湿度、温度等,检查分析空气成分,让住户安心入住。同时,智能家居控制器可以根据住户的要求调整方案,加强紧急处理,危机救护等急救控制,充分达到只要是"用户想要的,就是我们追求的"宗旨。1.4本课题研究的基本内容本次设计是基于ARM9的S3C2440核心处理器,以Linux嵌入式系统为家居总中心监控系统,使用LinuxQt完成控制程序及人机界面的编写,采用ds18b20温度传感器、MQ-2烟雾传感器、光电传感器为数据采集源,采用西门子公司的AT35GSM模块完成通信及监控功能,实现了远程监控、实时监控家居温度、空气质量,以及家居重要财产防盗的功能。1.5本章小结本章主要分析了智能家居的研究背景,以及国内外的发展现状及发展趋势,以及智能家居平台系统的技术特点。最后简单介绍了本智能家居系统的基本内容和设计思路。第2章系统的总体方案设计2.1系统需求分析针对国内市场的实际情况分析,消费者对远程抄表和物业管理兴趣索然,但是对家电控制、家居安防报警网络却情有独钟,所以目前众多企业都往这一方向发展。而嵌入式技术在最近几年得到了广阔的发展[5]。嵌入式处理器的性能得到了显著地提高,这就为以嵌入式为基础的智能化家居系统的发展奠定了硬件基础,使较复杂的检测和识别算法在系统中得到应用。在软件方面,出现了丰富的支持嵌入式设备的软件,使嵌入式系统的开发的难度降低,出现了大量专注于嵌入式的企业,使嵌入式开发中能得到良好的技术支持。同时智能化家居的概念也更加明确,相关的智能化技术得到了显著地发展,使开发能获得大量先进的资料。设计本智能家居系统,需要满足以下需求。2.1.1系统功能需求分析〔1能用手机通过收发短信的方式检测家电,打开、关闭家电的工作状态。〔2在家居的门口安装了4*4键盘,当用户输入正确的密码可以把门打开,用户通过其他非法手段比如撬开锁时,系统及时启动报警模块,达到防盗的功能。〔3能实时测量家居内温度、烟雾情况,当室内烟雾浓度偏高时,系统可以打开室内抽风机把室内有害气体抽出室外,当室内烟雾浓度过高,系统启动火灾报警模块,提示家居主人预防火灾的发生。〔4当有小孩靠近窗户时,系统自动把窗户关上,避免小孩可能发生坠楼的危险,当小孩离开时,系统自动把窗户打开。2.1.2性能需求分析智能家居系统在正常运行时,几乎每时每刻都在运行,必须高度重视系统的稳定性和可靠性,尽量提高系统的容错能力,同时一定要保证系统安全,性能良好。2.1.3用户界面及其他需求分析智能家居相关的设备都是跟人们生活息息相关的,因而智能家居系统必须要求用户界面友好,用户体验效果良好,并且使用户可以很容易掌握操作流程,同时要求实用、舒适和有个性等。2.2系统设计的原则智能家居又称智能住宅,它的最基本目的是为人们提供一个舒适、安全、高效、方便、实用的生活环境。对智能家居产品来说,最重要的是应立足于客户的对家居环境的具体需求,以实用为核心,摒弃掉那些华而不实的功能。同时还要充分考虑到用户体验,注重操作的便利化和直观性,注重完美的图形化控制界面。智能家居系统大部分时间都在运行,必须高度重视系统的安全性、可靠性和容错能力,保证系统正常安全使用、质量、性能良好,具备应付各种复杂环境变化的能力。根据目前国内外智能家居系统的发展现状,人们不仅关注家居内部控制,更加注重对家用电器内部情况进行远程实时监控。在要求智能家居控制系统方便快捷的同时,还要求产品外观小、功耗低、成本低和扩展性号的特点。本系统主要针对用户家庭内部进行远程控制,主要实现的功能有:通过远程监控家电运行情况、通过温度、烟雾传感器检测家居温度、空气质量的情况,通过光电传感器监控家庭重要财产,具有防火防盗的功能。2.3系统总体架构设计本课题旨在设计一套智能家居系统,根据系统的设计需求,本控制系统采用分布式控制方式对智能家居的各部分进行统一控制,主要包括远程监控家电<包括台灯、风扇>部分,具有语音提示功能的密码锁防盗部分,窗户自动关窗预防小孩坠楼部分,烟雾浓度监测自动报警部分。各个模块相互独立,某个模块出现故障不影响其他模块运行。本智能家居系统整体架构框图如图2.1所示。图2.1智能家居系统整体架构框图该智能家居系统用S3C2440处理器,控制器控制远程监控家电模块,检测温度、烟雾模块,密码锁模块等。在实际开发中先在ARMLinux中编写每个模块的驱动程序,编译加载驱动后应用层方能操作硬件模块,手机通过收发短信的方式通过应用层程序与硬件模块通信达到控制硬件的目的。2.4系统主要硬件介绍2.4.1ARM处理器嵌入式系统常用的处理器有单片机和ARM,由于考虑到单片机引脚少、功能简单以及后续学习研究等原因,故选择功能更强大的ARM处理器[6]。随着电子技术的发展,ARM处理器经历了包括ARM7、ARM9、ARM11等在内的多个发展阶段,不断成熟的ARM处理器的应用必将为嵌入式的发展带来新的活力,是更高端的产品应用成为可能。Mini2440ARM是一款真正低价实用的ARM9开发板,它采用SamsungS3C2440为微处理器,并采用专业稳定的CPU内核电源芯片和复位芯片来保证系统运行时的稳定性。它采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。本系统初期采用友善之臂公司集成的mini2440开发板,开发板硬件资源如下所示。图2.2开发板硬件资源开发板的硬件资源包括:SamsungS3C2440A处理器:主频400MHz,最高533Mhz。SDRAM内存:在板64MSDRAM,32bit数据总线,SDRAM时钟频率高达100MHz。FLASH存储:256MNandFlash,掉电非易失。在板2MNorFlash,掉电非易失,已经安装BIOS。LCD显示:板上集成4线电阻式触摸屏接口,可以直接连接四线电阻触摸屏,支持黑白、4级灰度、16级灰度、256色、4096色STN液晶屏,尺寸从3.5寸到12.1寸。屏幕分辨率可以达到1024x768象素,支持黑白、4级灰度、16级灰度、256色、64K色、真彩色TFT液晶屏;尺寸从3.5寸到12.1寸,屏幕分辨率可以达到1024x768象素。标准配置为统宝3.5真彩LCD,分别率240x320,带触摸屏。接口和资源:1个100M以太网RJ-45接口<采用DM9000网络芯片>。3个串行口。1个USBHost。1个USBSlaveB型接口。1个SD卡存储接口。1路立体声音频输出接口,一路麦克风接口。1个2.0mm间距10针JTAG接口。4USERLeds。6USERbuttons<带引出座>。1个PWM控制蜂鸣器。1个可调电阻,用于AD模数转换测试。1个I2C总线AT24C08芯片,用于I2C总线测试。1个2.0mm间距20pin摄像头接口。板载实时时钟电池。电源接口<5V>,带电源开关和指示灯。系统时钟源:12M无源晶振。实时时钟:内部实时时钟〔带后备锂电池。扩展接口:1个34pin2.0mmGPIO接口。1个40pin2.0mm系统总线接口。规格尺寸:100x100<mm>。操作系统支持:Linux+Qtopia-2.2.0+QtE-4.6.1<独创双图形系统共存,无缝切换>。WindowsCE.NET6.0<R3>。2.4.2TC35模块TC35是西门子公司出的一款双频900/1800MHZ高度集成的GSM模块。在GSM网络日臻完善的今天,它易于集成,可以在较短的时间内花费较少的成本开发出新颖的产品。在远程监控和无线公话以及无线POS终端等领域您都能看到TC35无线模块在发挥作用。本系统采用TC35对家电进行远程监控,TC35的主要特征如下:信息传送内容:语音和数据。电源:单电源3.3V~5.5V。频段:双频GSM900MHz和DCS1800MHz<Phase2+>。SIM卡连接方式:外接。天线:由天线连接器连接外部天线。短信息:MT,MO,CB和PDU模式。音频接口:模拟信号〔麦克风,耳麦,免提手柄。通讯接口:RS232〔指令和数据的双向传送。模块复位:采用AT指令或掉电复位。串口通讯波特率:300bps...115kbps。要实现发短信或语音功能主要是通过开发板串口发送AT指令经max232把TTL电平转换成RS232电平并处理TC35反馈回来的信息来进行的。下面图2.3是TC35模块和max232串口转换电路。图2.3TC35模块和max232串口转换电路2.4.3温度传感器本系统选择DALLAS公司生产的DS18B20温度传感器进行开发。DS18B20以超小的体积、超低的硬件开销,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。DS18B20的主要特征和引脚封装原理图如下:全数字转换及输出。先进的单总线数据通信。测量结果以9~12位数字量方式串行传送。不需要外围任何元件。测温范围-55℃~+125℃,固有测温分辨率为0.5℃。工作电压:3~5V/DC。PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。图2.4DS18B20封装及原理图DS18B20引脚功能说明如下:〔1DQ为数字信号输入/输出端。〔2GND为电源地。〔3VDD为外接供电电源输入端〔在寄生电源接线方式时接地。DS18B20与ARM处理器的接口十分简单,只需要将DS18B20的信号线与控制线的一位双向端口连接即可。本系统将DS18B20的信号线与S3C2440的GPE0引脚连接,如下面图2.4所示。图2.4DS18B20引脚电路图2.4.4MQ-2烟雾传感器MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡<SnO2>。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。MQ-2的主要特征如下:工作温度:-10℃~+50℃报警浓度:0.65~15.5%FT工作湿度:10~90%工作电源:12VDC/9VDC信号输出:常开/常闭安装方式:吸顶外壳:阻燃树脂产品尺寸:直径105mm厚度32mm图2.4MQ-2引脚接线图根据MQ-2的工作原理〔其电导率随着气体浓度的增大而增大,其电阻是电导率的倒数,所以随着烟雾浓度的增大其电阻是减小的并且参考图MQ-2Datasheet上的测试电路,在根据图2.4的电路图,可以得到烟雾传感器的输出电压如式2.1所示。<式>光电传感器光电传感器是各种光电检测系统中实现光电转换的关键元件,它是把光信号〔红外、可见紫外光辐射转变成为电信号的器件。光电传感器是以光电器件作为转换元件的传感器。它可以用于检测直接引起光量变化的非电量,如光强等。本设计试图把光电传感器安装在家庭保险柜或其他重要的财产出,当小偷或其他非家庭主人试图靠近保险柜等重要财产处能自动触发语音报警,从而达到防盗的目的。图2.5光电传感器引脚图光电传感器简单易用,正确接好线之后输入3.3V高电平,当检测到有障碍物时会一直输出低电平信号。我们把光电传感器的输出引脚接单片机的EINT5/GPF5中断引脚,程序中设定低电平触发,当有小偷靠近保险柜或家居其他重要财产时,系统能捕捉到这一信号从而做出反应。2.4.6ISD1760语音芯片语音报警部分采用isd1760语音芯片来完成。ISD1700系列录放芯片可工作于独立按键模式和SPI控制模式。芯片内有存储管理系统来管理多段语音,这样在独立按键模式下也能进行多段语音录放。此芯片内有振荡器,可通过外部电阻来调节其振荡频率;还有带自动增益控制〔AGC的话筒运放,模拟线路输入。本设计采用独立按键模式,连接好电路后给芯片的23脚一个电平信号即可播放提前录好的声音。图2.6isd1760语音芯片接线引脚图2.4.7继电器由于家电电器工作电压是220V,而单片机工作电压是5V,因而监控家电时需要引入继电器。继电器是一种控制器件。它具有控制系统〔又称输入回路和被控制系统〔又称输出回路之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种"自动开关"。故在电路中起着自动调节、安全保护、转换电路等作用。当收到特定的短信要把家电打开时,MCU通过打开继电器给插座上电,即可打开家电,当需要关闭家电时,也是通过继电器关闭家电。图2.7继电器原理图ARM是一个弱电器件,一般情况下它们大都工作在电压为5V甚至更低、驱动电流在mA级以下,而要把它的输出用于一些大功率场合,比如控制步进电机,很显然是不可行的。因此,就要设计一个环节来衔接,这个衔接环节就是"功率驱动"。一个典型简单的功率驱动环节就是继电器的驱动。此处,继电器驱动含有两层意思:一是通过GPIO口对继电器本身进行驱动,因为继电器对于ARM来说是一个功率器件;另一个就是继电器去驱动其它负载,比如继电器可以驱动中间继电器,也可以直接驱动接触器,因此继电器驱动就是ARM与其塔大功率负载的接口。ARM的I/O口输出电压高电平为3.3V,直接接上继电器后电平被拉低,无法控制继电器的闭合。三极管具有良好的信号放大功能,信号经过三极管的放大后,再接入继电器,可以实现对继电器的控制,最终实现对交流电路的控制.2.5软件系统介绍2.5.1几种嵌入式操作系统的比较目前市场上流行的嵌入式操作系统比较多,下面对其进行性能比较:嵌入式LinuxLinux是1991年由荷兰人LinusTorvalds发明的,从诞生到现在的短短几十年时间,Linux已经发展成为一个功能强大、设计完善的操作系统,不仅在通用操作系统领域与Windows等商业系统分庭抗争,而在在新兴的嵌入式操作系统领域也获得了飞速的发展。嵌入式Linux<EmbeddedLinux>是指对标准Limix进行小型化裁剪处理后,可固化在存储器或单片机中,适合于特定嵌入式应用场合的专用Linux操作系统。商品化嵌入式操纵系统大都没有公开其核心源代码[7],这种源代码的封闭性大大限制了开发者的积极性,当前国家队研制自主核心源代码大力支持,为源码开发的Linux的推广提供了广阔的发展前景。嵌入式Linux的主要特征如下:〔1高性能、可裁剪的内核:其独特的模块机制使用户可以根据自己的需要,实时地将某些模块插入到内核或从内核中移走,很适合与嵌入式系统的小型化需要。〔2优秀的开发工具:嵌入式Linux提供了一套完整的工具链〔3免费,开发源代码:Linux是开发源码的自由操作系统,用户可以根据自己的应用需要方便对内核进行修改和优化。〔4完善的网络通信和文件管理机制:Linux支持所有标准的Internet网络协议,并且很容易移植到嵌入式系统当中。〔5广泛的硬件支持:支持x86、ARM、MIPS等多种体系结构。〔6软件资源丰富:几乎每一种通用程序在Linux上都能找到,从而减轻了开发的工作量。目前,网络上无论是研究Linux操作系统还是研究嵌入式Linux的开发团队都有很多,各种相应的程序以及文档也比较丰富。μC/OSIIμC/OS是美国人JeanLabrosse在1992年开发的一个嵌入式操作系统[8],并于1998年推出了它的升级版本μC/OS-II。μC/OS-II是一种免费、开放源代码、结构小巧、基于可抢占优先级调度的实时操作系统,其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。μC/OS-II主要面向中小型嵌入式系统,具有执行效率高、占用空间小、结构简洁、实时性能优良和可扩展性强等特点,最小内核可编译至2KB,一般情况下占用10KB数量级。它的内核本身并不支持文件系统,但它具有良好的扩展性能,如果需要的话可以自行加入。由于免费、源码开放、规模较小,μC/OS-II不仅在众多的商业领域中获得了广泛的应用,而且被大学所接纳,作为教学用的嵌入式实时操作系统。VxWorksVxWorks是美国WindRiverSystem公司开发的一款嵌入式实时操作系统具有良好的可靠性和卓越的实时性,是目前嵌入式系统领域中使用最广泛、市场占有率最高的商业系统。VxWorks支持各种主流的32位处理器,如X86、MotorolaMC68xxx、Clodfile、PowerPC、MIPS,ARM等。它基于微内核的体系结构、整个系统有四百多个相对独立、短小精炼的目标模块组成,用户可以行剪裁和配置,根据自己的需要来选择适当的模块。VxWorks采用GNU类型的编译和调试器,它的大多数API函数都是专有的。VxWorks以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖技术及实时性要求极高的领域中。PalmOS在个人数字助理〔PDA市场上,PalmOS全球知名、使用人数最多的PDA操纵系统。它是由PDA操作系统开发的先驱者PalmComputing公司开发的。从1996年4月PlalmOS1.0发布至今,PlamOS逐步巩固了其在PDA市场上的霸主地位。它的一个最大的特点就是省电以及系统资源开销较少,速度也很快,但不支持多线程,长远发展受到影响。但由于PalmOS采用开发式架构,全球有很多PlamOS用户都投入到其软件开发工作中,使其应用软件非常丰富,这也成为PlamOS操作系统成功的一个重要因素之一。WindowsCEWindowsCE是微软公司在嵌入式操纵系统市场上的一个重要的产品,它是一个开放的、可升级的32位操作系统,是基于掌上型电脑类的电子设备操作系统,它可以移植能够开发多种企业和客户类设备。WindowsCE为工作、家庭及其间的任何一部分开启了动态的、崭新的开发远景。这个模块化、可自订的作业系统将Windows平台延伸到桌面之外,到达更小、更机动性、更特别的装置之上,然而它的Windows血统则确保了它的相容性,并且支援了更广泛的开发基础。目前,网络上研究WinCE的开发团队越来越多,其资源也逐渐丰富起来,可以说是新的趋势。2.5.2选择嵌入式操作系统的依据在选择软件开发方式和操作系统的时候,不仅要考虑到对硬件系统的支持,还要考虑软件开发的周期等问题。一般而言,在选择嵌入式操作系统时,可以遵循以下原则[9]。〔1市场进入时间。制定产品时间表与选择操作系统有关系,实际产品和一般演示是不同的,上市时间和功能完善同样重要。Linux出现时间较早,现成资源较多。〔2可移植性。也就是平台无关性。当进行嵌入式软件开发时,可移植性是要重点考虑的问题。良好的软件可移植性,可以在不同平台、不同系统上运行,跟操作系统无关。软件的通用性和软件的性能通常是矛盾的,即通常以损失某些特定情况下的优化性能为代价。很难设想开发一个嵌入式浏览器而仅能在某一特定环境下应用,反过来说,当产品与平台和操作系统紧密结合时,往往你的产品的特色就蕴含其中。〔3可利用资源。产品开发不同于学术课题研究,它是以快速、低成本、高质量的推出适合用户需求的产品为目的的。集中精力研发出产品的特色,其他功能尽量由操作系统附加或采用第三方产品,因此操作系统的可利用资源对于选型是一个重要的参考条件,Linux和WinCE都有大量的资源可以利用,这是他们被看好的重要原因。其它有些实时操作系统由于比较封闭,开发时可以利用的资源比较少,因此多数功能需要自己独立开发,从而影响开发进度。近来的市场需求显示,越来越多的嵌入式系统,均要求提供全功能的Web浏览器。而这就要求有一个高性能、高可靠的GUI的支持。〔4系统定制能力。信息产品不同于传统PC的Wintel结构的单纯性,用户的需求是千差万别的,硬件平台也都不一样,所以对系统的定制能力提出了要求。要分析产品是否对系统底层有改动的需求,这种改动是否伴随着产品特色。Linux由于其源代码开放的天生魅力,在定制能力方面具有优势。〔5成本。成本是所有产品不得不考虑的问题。操作系统的选择会对成本有着重要的影响。Linux免费,WinCE等商业系统需要支付许可证使用费,但这都不是问题的答案。成本是需要综合权衡以后进行考虑的,选择某一系统可能会对其它一系列的因素产生影响,如对硬件设备的选型、人员投入、以及管理和与其它合作伙伴的共同开发之间的沟通等许多方面的影响。〔6中文内核支持。国内产品必然需要对中文的支持。由于操作系统多数是采用西文方式,是否支持双字节编码方式,是否遵循GBK,GB18030等各种国家标准,是否支持中文输入与处理,是否提供第三方中文输入接口是针对国内用户的嵌入式产品的必需考虑的重要因素。智能家居系统并不需要很严格的实时性,而且在本系统的设计中,关键任务将可以由可编程器件实现,仅向系统提供一个状态信息。操作系统的主要目的是方便开发友好的人机界面,缩短开发周期,提高系统的稳定性。嵌入式操作系统选择了嵌入式Linux[10]。Linux作为一款开源软件,具有功能强大,与硬件兼容性好,可任意裁减等诸多特点,同时在Linux系统下支持很多开源软件,在一定程度上减小了开发的难度。在版本方面,选择内核的arm-linux,该内核在原有内核的基础上进行了一定程度的裁减,同时也是专门支持ARM系统芯片的Linux版本,这也为后期的进一步裁减做好了铺垫的工作。在文件系统方面,目前FLASH上常用的文件系统主要有JFFS2、CRAMFS、Yaffs2、ROMFS以及ROMFS等。目前,Mini2440开发板支持Yaffs2。YAFFS2是第一个专门为Nandflash存储器设计的嵌入式文件系统,适用于大容量的存储设备;并且是在GPL〔GeneralPublicLicense协议下发布的,可在其网站免费获得源代码。CRAMFS文件系统是专门针对闪存〔如NorFlash>设计的只读压缩的文件系统,采用实时解压缩方式,小巧且速度快。本设计采用YAFFS2文件系统,可以读写保存。系统主要采用C语言作为基本开发语言,在嵌入式开发中,语言的可移植性很重要。因为Linux是用C语言编写的,对C语言有良好的函数库的支持,其编译出的代码精简,具有运行速度快和对底层开发支持好的特点。2.6本章小结本章通过对智能家居的分析,确定了系统总体架构设计,然后针对其方案进行软硬件选型。首先确定了SAMSUNG公司的32位RISC处理器S3C2440作为微控制器芯片;其次是介绍本智能家居各模块所使用到的硬件设备,接着介绍几种嵌入式操作系统和选择嵌入式操作系统的依据,最后确定了适合CPU的最佳嵌入式操作系统。第3章建立Linux开发环境3.1搭建开发环境3.1.1安装虚拟机、Linux操作系统、源代码及其他工具本设计是在虚拟机上安装Linux操作系统Fedora9.0版本而进行。首先安装vmware并下载Fedora-9-i386-DVD.iso镜像,安装好Fedora9.0操作系统。在操作终端上创建工作目录/opt/FriendlyARM/mini2440,在此终端上解压安装源代码,此次用的是内核自带的内核源代码:linux--mini2440-20100106。此次设计用开发板自动的arm-qtopia设计qt运行界面。建立交叉编译环境在Linux平台下,要为开发板编译内核,图形界面Qtopia,bootloader,还有其他一些应用程序,均需要交叉编译工具链。之前的系统,要使用不同的编译器版本才能正常编译各个部分,因此要在开发过程不断切换设置,这十分不利于初学者使用,也降低了开发的效率;自从Linux-2.6.2开始<Mini2440所配内核已为最新的Linux->,我们把交叉编译器统一为arm-linux-gcc-4.4.3,下面是它的安装设置步骤。<1>将arm-linux-gcc-4.4.3.tgz复制到某个目录下如tmp\,然后进入到该目录,执行解压命令:#cd/tmp#tarxvzfarm-linux-gcc-4.4.3.tgz–C/<2>Step2:把编译器路径加入系统环境变量,运行命令#gedit/root/.bashrc编辑/root/.bashrc文件,在最后一行添加:保存退出,注销系统后,使设置生效,重新登录系统<不必重启机器,开始->logout即可>,在命令行输入arm-linux-gcc–v,若没有输出错误信息即表示建立交叉编译环境成功。配置网络文件系统NFSNFS是NetworkFileSystem的简写,即网络文件系统,NFS允许一个系统在网络上与他人共享文件。通过使用NFS,用户和程序可以像访问本地文件一样访问别的系统上的文件。在嵌入式开发环境中,通过NFS服务器,可以把NFS作为根文件系统来启动开发板,通过使用NFS作为根文件系统,不仅使开发板的"硬盘"变得很大,还可以减少程序烧写的次数,提供程序开发速度[11]。下面介绍NFS服务器的安装和配置。首先安装NFS服务器一般情况下系统默认按照好NFS服务,系统不默认安装的话,只需要下载两个安装包安装即可:nfs-utils-*<包括基本的NFS命令与监控程序
>portmap-*<支持安全NFSRPC服务的连接>接着需要共享Linux系统和开发板目录。必须解压安装好root_qtopia目标板文件系统包。接着在Fedora9.0的终端上运行命令#gedit/etc/exports,编辑nfs服务的配置文件,添加以下内容/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4*〔rw,sync,no_root_squash,其中/opt/FriendlyARM/**/rootfs_qtopia_qt4表示nfs共享目录。最后启动NFS服务。在命令行下运行以下命令即可:/etc/init.d/nfsstop。3.2嵌入式软件开发层次本设计的软件系统一个嵌入式Linux系统从软件角度来看可以分为三个层次:〔1引导加载程序,包括固化在固件中的boot程序<可选>,和Bootloader部分两大部分。〔2linux内核,特定于嵌入式平台的定制内核。〔3文件系统,包括了系统命令和应用程序。一个同时装有BootLoader、内核的启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图如图3.1图3.1空间分配结构图BootLoader介绍简单的说bootloader是一段程序,它的作用就是加载操作系统,BootLoader〔引导加载程序是系统加电后运行的第一段软件代码[12]。通过这段代码实现硬件的初始化,建立内存空间的映射图,为操作系统内核准备好硬件环境并引导内核的启动。bootloader位于最底层,首先被运行来引导操作系统运行,很容易可以看出bootloader是底层程序所以它的实现严重地依赖于硬件,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的BootLoader几乎是不可能的。尽管如此,一些功能强大、支持硬件环境较多的BootLoader也被广大的使用者和爱好者所支持,从而形成了一些被广泛认可的、较为通用的的bootloader实现。此次开发板引导程序用的是Supervivi,它是友善之臂基于vivi改进的一个简单易用的Bootloader。在此不用自己来移植bootloader。定制Linxu内核Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客LinusTorvalds为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,在计划的早期有一些Minix黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。技术上说Linux是一个内核。"内核"指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。Linux内核源代码很庞大,想要短时间内读懂大部分内核源代码几乎是不可能的,此次设计用的是开发板自带的内核,版本号是Linux-。首先把内核代码解压安装在工作目录/opt/FriendlyARM/mini2440,进入内核代码根目录,执行"cpconfig_mini2440_t35.config_t35"使用缺省的配置文件。然后执行"makemenuconfig",打开内核配置界面,配置好内核后通过执行"makezImage"命令编译内核,编译结束后在/arch/arm/boot目录下生成Linux内核映像文件zImage。根文件系统文件系统是对一个存储设备上的数据和元数据进行组织的机制。这种机制有利于用户和操作系统的交互。在Linux中没有文件系统的话,用户和操作系统的交互也就断开了,所有应用用户程序,都没有办法运行。根文件系统,是Linux/Unix系统启动的一个重要的组成部分,也是操作系统正常工作的必要组成部分。Linux要在一个分区上存放系统启动所必需的文件,如Init进程、系统配置文件、文件系统及网络系统等等的工具集、链接库等等。这些存放在同一个分区中的基本且必需的文件合起来称为根文件系统。根文件系统的基本目录结构一般包括:/bin,/sbin,/etc,/proc,/dev,/bin,/usr,/lib,/tmp等,如有需要可再添加。下面做简单介绍:/bin存放root与普通账号的命令,由于这些命令在挂接其他文件系统之前就可以使用,所以/bin目录和根文件系统在同一个分区中。/sbin存放系统命令,只有系统管理员〔root能够使用的命令,系统命令还可以存放在/usr/sbin,/usr/local/sbin目录下,/sbin目录中存放的是基本的系统命令,它们用于启动系统和修复系统等/etc存放着系统主要的配置文件,例如人员的账号密码文件、各种服务的其实文件等。/lib存放共享库和可加载〔驱动程序,共享库用于启动系统。运行根文件系统中的可执行程序。/home系统默认的用户文件夹,它是可选的,对于每个普通用户,在/home目录下都有一个以用户名命名的子目录,里面存放用户相关的配置文件。/root存放系统管理员〔root的主文件夹的,即是根用户的目录。/usr存放的是共享、只读的程序和数据,这表明/usr目录下的内容可以在多个主机间共享,这些主要也符合FHS标准的。/var存放可变的数据,比如spool目录〔mail,news,log文件,临时文件。/mnt存放临时挂载某个文件系统的挂接点,通常是空目录,也可以在里面创建一引起空的子目录,比如/mnt/cdram/mnt/hda1。用来临时挂载光盘、移动存储设备等。/tmp存放临时文件,通常是空目录,一些需要生成临时文件的程序用到的/tmp目录下,所以/tmp目录必须存在并可以访问。3.3本章小结本章主要介绍了嵌入式系统开发平台搭建过程。分别对虚拟机安装,交叉编译环境、在Linux服务器上安装交叉编译工具链、嵌入式Linux内核的配置和编译,YAFFS32文件系统的实现,以及嵌入式软件开发层次等。第4章系统的实现本智能家居系统分几个模块组成:GSM远程控制模块,温度、烟雾数据采集模块,具有语音提示功能的密码锁防盗功能模块,预防小孩坠楼模块。每个硬件模块在嵌入式开发中称为设备,每个设备想要运行都要在Linux内核中编写设备驱动程序。所谓设备驱动程序就是控制与管理硬件设备数据收发的软件,它是应用程序与硬件设备沟通的桥梁。从本质上讲设备驱动程序主要负责硬件设备的数据读写、参数配置与中断处理。设备驱动程序是操作系统的一部分,通常运行在内核层。应用层通过系统调用进入内核层,内核层根据系统调用号来调用驱动程序对应的接口函数。Linux驱动程序运行的原理如图4.1所示。图4.1驱动程序运行原理Linux中的大部分驱动程序,是以内核模块的形式编写的,内核模块是Linux内核向外部提供的一个接口。Linux内核本身就是一个单内核,具有效率高的优点,也具有可扩展性和可维护性差的缺陷,模块机制就是为了弥补这一缺陷而设计的。内核模块可以单独编译,在运行时被链接到内核,作为内核的一部分在内核空间中运行。采用可加载模块方式可以让驱动程序的运行更加灵活,也更便于调试。本设计就是用动态可加载方式逐个模块调试好,调试好后在直接编译进内核中,然后开机就运行应用程序。一般来说,Linux系统将设备分为3种类型:字符设备、块设备、网络接口设备。本系统设计中用到的设备都是指字符设备驱动,这里主要讲解字符设备及其相关内容。字符设备是指那些每次只能一个字节读写数据的设备,不能随机读取设备内存中的某一数据,其驱动程序中完成的主要工作是初始化、添加和删除cdev结构体,申请和释放设备号,以及填充file_operations结构体中操作函数,并实现file_operations结构体中的read<>、write<>、ioct1<>等重要函数。cdev结构体、file_operations和用户空间调用驱动的关系如图4.2所示。图4.2字符设备与用户空间关系想要设备正常工作,就必须要按图4.2所示先加载设备驱动模块,然后才能正确调用open<>、read<>、write<>、ioctl<>函数操作系统硬件设备。另外,上层应用程序是在qtopia中编译的,而智能家居系统每个模块必须互不干扰,其中一个模块发生故障应不影响其他模块的运行,要实现每个模块能单独工作,这里用到了多线程的技术,为每个模块创建Timer定时器,把每个模块的程序放在定时器函数中运行,下面分别详细介绍本设计的几个模块的调试过程。4.1GSM远程控制模块的实现mini2440串口的配置和实现在实际程序设计过程中主要包括两个组成部分,其一是串口的硬件驱动程序,其二是文件系统上的应用程序。S3C2440本身自带了3个串口UART0、1、2,其中UART0做了RS232电平转换,UART1、UART2输出的点平是TTL电平,但是从NFS启动系统需要用到UART0,我们开发时用到UART2,中间经过232电路与GSM模块连接。开发板的内核源代码自带了串口驱动程序,在开发时我们不需要自己编写驱动。在Linux中,所有东西都可以看成文件,在应用层想使用串口时首先需要打开串口:intfd;fd=open<"/dev/ttySAC1",O_RDWR>;if<-1==fd>{/*不能打开串口二*/perror<"提示错误!">;}打开串口后还不能时串口正常工作,需要正确设置串口包括设置波特率、效验位和停止位的设置,设置串口主要是设置structtermios结构体的各成员值。Structtermios{ unsignedshortc_iflag;//输入模式标志 unsignedshortc_oflag;//输出模式标志 unsignedshortc_cflag;//控制模式标志 unsignedshortc_lflag;//本地模式标志 unsignedcharc_line;//控制协议 unsignedcharc_cc[NCC];//控制模式字符};几乎对串口的操作都是通过结构体structtermios和几个函数实现,其中最重要的是tcgetattr<>和tcsetattr<>,刚开始程序通过tcgetattr<>函数获取设备当前的设置,然后修改这些设置,最后用tcsetattr<>使设置生效。在使用串口时,波特率设置成b9600,无校验位,8位数据位和一位停止位。设置好串口之后,就可以通过把串口当作文件读写了。发送数据:charbuffer[1024];intLength=1024;intnbyte;nbyte=write<fd,buffer,Length>;接受数据:charbuffer[1024];intLen=1024;intreadbyte=read<fd,buff,Len>;通过串口发送短信前面已经简单介绍过TC35模块,TC35模块有40个引脚,通过一个ZIF<ZeroInsertionForce,零阻力插座>连接器引出。这40个引脚可以划分为5类,即电源、数据输入/输出、SIM卡、音频接口和控制。在开发中我们用的是GSM集成模块,模块把我们需要使用的引脚都接了出来,开发时只有提供电源和接上MAX232电路即可。由于开发板上输出的电平是TTL电平,TC35模块输入输出的是RS232电平,因而开发时需要自己外接MAX232电路进行电平转换。让TC35工作的过程主要是通过开发板的串口给TC35发送AT指令以及处理开发板返回的AT指令。通过GSM短信模块发送短信主要有两种格式:英文短信和中文PDU短信。下面是发送英文短信的收发过程。发:AT //与AT35握手
收:OK
发:AT+CMGF=1//选择发送短信的格式
收:OK
发:AT+CMGS=//要发送的手机号
收:>
发:data→
//test为发送内容,→为发送符〔ctrl+z,十六进制0x1A
收:+CMGS:54OK知道了GSM英文短信的发送过程,只要把握好顺序用nbyte=write<fd,buffer,Length>;即可实现发送英文短信的功能。本设计中,用发送短信主要是为了实现家电远程监视的功能,当用户发送检测家电的请求时,系统通过发送英文短信向用户反馈家电的工作状态,从而达到检测家电的功能。要控制家电,首先系统要识别是什么用户向系统发送了消息,而且系统还要识别受到消息的内容,从而对家电进行控制。系统首先保存用户的电话号码,当用户收到消息时,首先判断是否是智能家居系统对家电发送了消息,如果是系统的主人发送的控制命令,系统接着对短信进行解析,最后控制器对家电进行控制。若智能家居系统收到其他用户的短信请求,将不会对短信进行解析,也不会对短信进行监控。GSM短信模块远程监控家电过程如图4.3所示:图4.3GSM短信模块的程序流程图控制器的串口和连接GSM模块的max232串口相连接,当GSM模块收到信息后马上向开发板返回AT指令信息,因而系统一直在检测是否收到短信,4.2温度采集模块的实现DS18B20温度传感器提供9位到12位<二进制>温度读数,指示器件的温度信息经过单线接口送入DS18B20或从DS18B2O送出,从主机CPU到DS18B20仅需一条线<共地>,DS18B20可选择两种供电方式,一是数据总线供电方式,可节省一根导线,但测量温度时间较长;二是外部供电方式,DS18B2O工作电源由VDD引脚接入,I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,这样虽多用一根导线,但测量速度较快,同时总线可以挂接多个DS18B20传感器,组成多点测温系统,为了实现及时多点采集温度,本设计选用了外部供电的方式。DS18B20的测量范围从-55摄氏度到+125摄氏度,增量值为0.5摄氏度,可在1s<典型值>内把温度变换成数字,每一个DS18B20在出厂时已给定了唯一的序号,多个DS18B20可以存放在同一条单线总线上,实现多路温度采集。DS18B20的序号值存放在DSl8B20内部的ROM<只读存贮器>中,多路测量时需用DS18B20的ROM搜索命令对所有单线总线上的传感器进行搜索,然后初始化各DS18B20并发送跳过ROM命令和RAM温度转换命令,单线上各DS18B20完成温度转换后,即可定位某一个DS18B20,并用匹配ROM命令和RAM温度读取命令读取其数字温度值。ROM和RAM存储器操作命令分别如表4.1和表4.2所示:表4.1ROM存储器操作命令ROM指令代码指令功能ReadROM33H读取DS18B20的64位器件序列号Match55H总线控制在单线上定位一只特定的DS18B20SkipROMCCH总线控制器不需发送器件序列号就可对存储器操作SearchROMF0H识别单线总线上各单线器件的序列号AlarmROMECH对温度超过报警上、下限的器件做出警告搜索响应表4.2RAM存储器操作命令RAM指令代码指令功能WriteScratchpad4EH写入数据到储存器字节2,3和字节4ReadScratchpadBEH读暂存存储器CopyScratchpad48H将暂存器中TH,TL和配置寄存器内容复杂到E2PROMConvertTemperature44H启动DS18B20温度转换RecallEPROMB8H将E2PROM中TH,TL和配置寄存器内容回写到暂存器ReadPowersupplyB4H读电源数字温度传感器DS18B20将模拟温度信号直接转换为数字信号,然后通过串行通信的方式输出。因此,温度采集的关键是DS18B20的通信协议,为了确保数据转换与传输的完整性,DS18B20器件必须采用严格的通信协议与处理器S3C2440进行数据通信DS18B20数据通信协议包括传感器的初始化,数据执行ROM操作命令和存储器操作命令等。初始化协议定义复位和存在脉冲时序,数据执行协议定义处理器读0读1时序和写0写1时序,所有的命令和数据以字节发送,并且低位在前,高位在后,DS18B20数据通信时序图如图4.4所示:图4.4DS18B20数据通信时序图处理器将单线总线DQ从逻辑高电平拉为逻辑低电平时,启动一个写时序,所有的写时序必须在60µs~12µs内完成,并且两个连续的写时序之间至少需要1µs的恢复时间,在写"0"整个时序期间,总线一直保持为逻辑低电平,而在写"1"时序期间,处理器先将单线总线拉为逻辑低电平,在时序开始后15µs内将总线释放,写"0"与写"1"时序如图4.5所示:图4.5写"0"与写"1"时序图DS18B20温度采集程序设计流程图如图4.6所示:图4.6DS18B20温度采集程序设计流程图数据采集过程中驱动层所编写的主要函数如下:1:staticintds18b20_init<void>;//数据初始化2:staticunsignedcharwrite_byte<void>;//向DS18B20读数据3:staticunsignedcharread_byte<void>;//往DS18B20写数据4:staticssize_tds18b20_read<structfile*file,char__user*buf,size_tcount,loff_t*f_pos>;//读出温度值,然后利用copy_to_user函数返回给用户层。为便于调试,该驱动模块没有内核驱动方式配置,而是以模块方式配置,所以每次使用的时候必须通过运行insmoddr18b20.ko命令加载模块。温度传感器在嵌入式系统中对应的设备文件为/dev/ds18b20,首先系统调用函数intfd_ds18b20=open<"/dev/ds18b20",O_RDWR>打开嵌入式设备中的传感器设备,打开设备失败返回-1,以后的系统函数就可以使用fd_ds18b20来对设备进行操作。关闭数字温度传感器的函数为close<fd_ds18b20>。系统通过调用read<fd_ds18b20,&result,sizeof<result>>读出温度值,保存在result中,最后显示出来。4.3烟雾传感器模块的实现MQ-2气体传感器可检测多种可燃性气体,当传感器所处环境中存在可燃性气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出电压信号。根据传感器输出的电压大小判断环境中可燃性气体浓度的大小。MQ-2气体传感器输出的是电压信号,处理器要把相应的电压值转换成对应的数值,S3C2440自带了A/D转换的功能,A/D转换芯片在嵌入式系统中对应的设备文件"/dev/adc",首先系统调用函数intfd_adctest=open<"/dev/adc",O_RDWR>打开嵌入式设备中的A/D转换设备,打开设备失败返回-1,以后的系统函数就可以使用fd_adctest来对设备进行操作。关闭烟雾传感器的函数为close<fd_adctest>。下图是烟雾传感器的连接图。图4.7烟雾传感器接线图如上图所示,MQ-2其他传感器有6只针状管引脚,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 神经影像学在神经退行性疾病中的价值
- 净化厂房合同范本
- 《高溢价并购下商誉减值问题研究》
- 借款合同范本房贷
- 《小电流接地系统的单相接地故障研究》
- 《循环水养殖中总有机碳及菌群组成分析的研究》
- 《谢晶日教授脾胃病学术思想与经验总结及胃痛诊治规律研究》
- 《人工智能对我国劳动力就业技能结构的影响研究》
- 股权转让清算协议三篇
- 酒店用品运输合同三篇
- 第2章离散傅里叶变换(DFT)课件
- 二年级音乐节奏训练课-动起来教学教案
- 决策心理学第二讲课件
- 舞蹈教室使用记录表
- 提高输液执行单签字规范率品管圈汇报书模板课件
- 教学第七章理性情绪疗法课件
- 北师大版六年级数学上册《比的应用》习题
- 手术器械传递的原则与方法课件
- 小学五年级整本书阅读方案
- 《长相思》 完整版课件
- 作品赏析:《雷雨》集中尖锐的矛盾冲突
评论
0/150
提交评论