基于物联网的智能家居软件系统设计--学位论文.doc
学 号:201240450133前沿技术讲座课程论文论文题目基于物联网的智能家居软件系统设计姓 名专 业软件工程班 级2012级(1)班指导教师计算机学院2015年5月26日目录一、相关研究51.1物联网的概念和背景51.1.1物联网的概念51.1.2物联网的概念模型51.2物联网的特征61.3国内外智能家居的研究现状61.4相关领域的研究进展及成果71.5存在的不足或有待深入研究解决的问题8二、技术方法介绍82.1物联网的技术体系82.2智能家居中的RFID技术102.3智能家居中的Zigbee技术102.4 智能家居系统的组件思路12三、实验结果或数据分析133.1系统需求分析133.2硬件模块及其驱动设计实现153.3系统软件部分223.3.1 主程序及大致流程223.3.2 短消息程序设计25四、课程总结29参考文献30一、相关研究1.1物联网的概念和背景1.1.1物联网的概念物联网是新一代信息技术的重要组成部分。物联网的英文名称叫“The Internet ofthings",顾名思义,物联网就是“物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物体与物体之间,进行信息交换和通信。因此,物联网的定义是:通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、监控和管理的一种网络。1.1.2物联网的概念模型如果说互联网实现了人与人之间的交流,那么物联网可以实现人与物体的沟通和对话,也可以实现物体与物体互相间的连接和交互。物联网的概念模型如图1.1所示:物联网条码二维码RFID接入网传感网互联网GPS短距离wifi图1.1 物联网概念模型1.2物联网的特征和传统的互联网相比,物联网有其鲜明的特征:首先,它是各种感知技术的广泛应用。物联网上部署了海量的多种类型传感器,每个传感器都是一个信息源,不同类别的传感器所捕获的信息内容和信息格式不同。传感器获得的数据具有实时性,按一定的频率周期性的采集环境信息,不断更新数据。其次,它是一种建立在互联网上的泛在网络。物联网技术的重要基础和核心仍旧是互联网,通过各种有线和无线网络与互联网融合,将物体的信息实时准确地传递出去。在物联网上的传感器定时采集的信息需要通过网络传输,由于其数量极其庞大,形成了海量信息,在传输过程中,为了保障数据的正确性和及时性,必须适应各种异构网络和协议。还有,物联网不仅仅提供了传感器的连接,其本身也具有智能处理的能力,能够对物体实施智能控制。物联网将传感器和智能处理相结合,利用云计算、模式识别等各种智能技术,扩充其应用领域。从传感器获得的海量信息中分析、加工和处理出有意义的数据,以适应不同用户的不同需求,发现新的应用领域和应用模式。1.3国内外智能家居的研究现状 智能家居的概念经过了提出一认证一发展的漫长发展历程,同其他的科技概念大同小异,它也是最早由美国、加拿大、欧洲等经济较发达的西方国家提出。智能家居可以概括为:“将人们日常生活中息息相关的各类通讯设备、电器设施、安防装置等,作为Zigbee节点,经过无线组网的形式把它们全部连接到家庭网络系统的网关上,并通过网络实现数据的收取和传送,从而实现监控安防、管理家庭事务等目的,同时达到优化住宅设施和环境,使之与用户不断提升的家居要求更贴合、更一致、更和谐4”尽管智能家居的概念起源较早,但由于当时科技力量及人类前瞻性等的制约,并没有得到大力推行,直到1984年美国联合科技公司(United Technologies Building system)将建筑设备信息化、整合化概念应用于美国康乃迪克州(Connecticut)哈特佛市(Hartford)的City PlaceBuilding时,世界上首栋“智能型建筑”真正面世。进入21世纪以来,通信和科技迅猛发展,给了人类更加大胆的设想,人类开始提出“住宅信息时代”这一十分切合科技实力以及人类生活需求的概念。顺应这一时代潮流而产生的新的科技名词是家庭网络和家庭网关技术,他们从诞生到发展到推广得到了诸多科研领域高科技人才的高度重视,这一发展趋势无疑是在向世人宣布,面向开放式应用的智能家居系统时代即将来临。走在全球科技前端的美国,在智能家居方面同样引领世界潮流。Motorola, Microsoft等顶级企业,以其敏锐的专业嗅觉第一时间洞察到了蕴藏在智能家居中的巨大商机,迅速成立自己的精英研发队伍。一时间,“梦幻之家”、“家庭主任”、“居所之门”等新鲜概念以其最快的成熟方式面世,希望能够第一时间抢占市场。全球各国的众多相关领域研究者、相关产业链生产厂商纷纷追随科技脚步,顺应科技发展潮流投身到这一新兴产业的大潮中来,不仅带领公司迈出了科研领域的新步伐,更是使得全球倡导的“以人为本”的科技理念取得了划时代的重大飞跃。 在我国,智能家居由于技术力量等的限制,经历了较长的摸索阶段。但是在全球重视的大浪潮下,我国的智能家居也得到了政府重视以及各方支持,迎来了迅猛的发展势头。诸多家电产业的倡导者也预见到了智能家居产业的巨大潜力,纷纷投身其中,争先推出自己在此新领域的新产品。海尔曾在世博会期间退出了其首款“物联网冰箱”,使这一概念首次已实体的方式呈现在大众面前;小天鹅公司也结合物联网技术退出“充满智慧”的洗衣机,它可以自动识别电网运行状态及阶梯电价等信息,对洗衣模式进行动调整,可以有效降低洗衣机的能耗,更为环保。与此同时,海信、长虹、美的等国内知名企业也纷纷响应物联网智能家居产业的发展趋势,将各自的产品和物联网相关技术进行有效融合,纷纷推出了自己的相关产品及解决方案。 物联网智能家居中的家电部分的技术难点在于系统的远程接入网,目前较为接受的技术传输有基于GPRS, WCDMA, TD-SCDMA/TD-LTE等网络模式。而家庭内部家电之间、网管与家电之间的互通互联则主要依赖无线通信技术,目前主流的近距离无线传输技术有Bluetooth, Zigbee, Wi-Fi, UWB等。虽然各种技术各有所长,但是就目前的发展趋势来看,Zigbee以其低功耗、低成本、容量大、安全性高、抗干扰性能强、自组织能力强等诸多明显优势脱颖而出,备受关注o Zigbee网络的子节点可是是装有RFID的温度、湿度、照明等传感器,也可以是智能窗帘、家居照明、安防门禁等执行设备。1.4相关领域的研究进展及成果目前市场上出现得智能家居控制系统主要有:(1)X-10系统(美国),该系统是利用电力线作为网络平台,采用集中控制方式实现。这套系统的功能较为强大,与其它家居控制系统如ABB、C_BUS等比起来更容易接收,使用也相对简单。因为实现同样的功能,X-10家居控制系统是利用220v电力线将发射器发出的X-10信号传送给接收器从而实现智能化的控制,因此采用这套系统不需要额外的布线,这也是这套系统的最大的一个优势,因为其它系统基本上都需要布低压线,在墙上或地面开槽、钻孔,施工难度大、费用高、工期长。但由于缺乏在国内市场推广的条件且价格昂贵,该系统在国内应用极少。(2)EIB系统(德国),该系统采用预埋总线及中央控制方式实现控制功能。但由于其工程要求复杂严苛,并且价格较高,因此一直无法打开国内市场。(3)8X系统(新加坡),该系统采用预处理总线跟集中控制方式来实现功能。它的优点在于利用的产品对系统进行扩展,系统较为成熟,比较适合中国国情。但是由于系统架构、灵活性及产品价格等方面还难以达到要求,所以目前在国内还较少应用。对于我国的智能家居进展目前,主要采用国外的一些技术产品,但也有一些企业推出了自己的产品,主要有:(1)e家庭(海尔),该系列产品以海尔电脑作为控制中心,各种网络家电作为终端设备,海尔移动电话作为移动数字控制中心。海尔在技术上同微软合作,利用微软的Windows Me技术和海尔的网络家电,使“e家庭”已具雏形,已推出了网络洗衣机、网络冰箱、网络空调、网络微波炉等一系列网络家电。(2)e-home数字家园(清华同方),该智能家居控制系统是专门针对中国家庭设计的,遵循国际技术标准,采用嵌入式软、硬件技术,提供网络、网络节点及末端设备。产品以功能模块开发为主,基于国外成熟的智能家居标准之上。其智能家居控制系统主要有以下三个部分:A系列:遵循EIB协议的家庭控制产品,适用于中高档住宅区。 B系列:遵循X-10协议的家庭控制产品,适用于中档住宅区。易家三代:配电箱集中安装式家庭控制产品。 国内各大软、硬件机构正在积极的研制、开发更为符合市场的智能化家居设备,以解决当前智能化产品实用性差、使用复杂及产品价格昂贵等缺点,而技术创新性也逐步向国际先进水平靠拢,这样的未来值得期待。1.5存在的不足或有待深入研究解决的问题不足之处:由于我国的智能家居相对于国外起步较晚, 还缺乏统一明确的国际标准,许多公司开发出的产品都是基于自己组的网络和信息交换协议,很多产品是针对特定的组网环境开发的,部分核心技术没有对外公布,技术复杂,直接导致了使用范围的局限性。再者,缺乏对应的第三方产品,各个接入设备之间不能兼容,互操作性差,不利于产品的扩充,因而进一步局限了产品的发展。再加上,有的系统成本过高,严重影响了产品的普及。因此设计一个符合国家国情和规范的集远程控制和本地控制为一体的智能家居控制系统是非常具有现实意义的,且势在必行。主要问题:根据前面提到的一些调查结果及数据可以看出,虽然目前智能家居系统有了一定的发展,并且市场上也开始出现相应的产品,但从总体的发展来看,不容乐观,特别是统一标准和权威产品的缺乏严重影响了家居智能化的发展。随着科技的提高,经济的发展,人们的物质生活水平的提高,对家居环境的要求也越来越高,作为家居智能化的核心部分智能家居控制系统也越发显得重要。家居智能化控制的开发和建设是未来国家、经济发展的必然趋势。二、技术方法介绍2.1物联网的技术体系物联网是一种非常复杂、形式多样的系统技术应用。一般将物联网的主要技术体系按照四个层次建立模型,如图2-1所示。在这个技术体系中,物联网的技术构成主要体现在感知层、传输层、支撑层和应用层4个层次上。运营平台 信息中心 内容服务 专家系统应用层智能处理 分布式计算 云计算 大数据存储支撑层移动网络 互联网 卫星 无线网络传输层射频识别 二维码 传感器 无线通信感知层图2.1 物联网技术体系模型1、感知层感知层包括多种发展成熟度差异性很大的技术,如在物流管理方面得到大量应用的射频识别技术和新兴的传感器网络技术。传感器网络感知主要通过各种类型的传感器对物质属性、环境状态、行为态势等静、动态的信息进行大规模、分布式的信息获取与状态辨识。针对具体感知任务,常采用协同处理的方式对多种类、多角度、多尺度的信息进行在线计算,并与网络中的其它单元共享资源进行交互与信息传输。在传感网感知层,主要采用的设备是装备了各种类型传感器(或执行器)的传感网节点和其它短距离组网设备(如路由节点设备、汇聚节点设备等)。2、传输层传输层主要功能是通过现有互联网或移动通信网(全球移动通讯系统、TD-SCDMA、无线接入网、无线局域网、卫星网等)基础网络设施,对来自感知层的信息进行接入和传输。在传输层,主要采用了与各种异构通信网络接入的设备,如接入互联网的网关、接入移动通信网的网关等。因为这些设备具有较强的硬件支撑能力,所以可以采用相对复杂的软件协议设计,其功能包括网络接入、管理和安全等。目前的接入设备多为传感网与公用通信网(如有线互联网、无线互联网、GSM网、TDGCDMA网)、卫星网等。3、支撑层 支撑层在高性能计算技术的支撑下,将网络内大量或海量的信息资源通过计算分析整合成一个可以互联互通的大型智能网络,为上层服务管理和大规模行业应用建立起一个高效、可靠和可信的支撑技术平台。如通过能力超级强大的中心计算及存储机群和智能信息处理技术,对网络内的海量信息进行实时高速处理,对数据进行智能化挖掘、管理、控制与存储。在支撑层,主要的系统支撑设备包括大型计算设备、海量网络存储设备等。4、应用层应用层根据用户的需求,构建面向各类行业实际应用的管理平台和运行平台,并根据各种应用的特点集成相关的内容服务。为了更好地提供准确的信息服务,必须结合不同行业的专业知识和业务模型,以完成更加精细和准确的智能化信息管理。如对自然灾害、环境污染等进行预测预警时,需要相关生态、环保等多学科领域的专门知识和行业专家的经验。在应用层,包括各类用户界面显示设备以及其它管理设备等。物联网各层次间既相对独立又紧密联系。为了实现整体系统的优化功能,服务于某一具体应用,各层间资源需要协同分配与共享。以应用需求为导向的系统设计可以是千差万别的,并不一定所有层次的技术都需要采用。即使在同一个层次上,可以选择的技术方案也可以进行按需配置。但是,优化的协同控制与资源共享首先需要一个合理的顶层系统设计,来为应用系统提供必要的整体性能保障。2.2智能家居中的RFID技术智能家居系统较以往的家庭系统最大区别在于,赋予了家庭里所有物品以“智慧”,使它们能够“自发”、“主动”地与家庭网关、与人沟通并实现信息的传递。因此,智能家居系统的首要重要技术便是感知,也就是RFID技术。RFID在智能家居系统中的重要作用体现在门禁控制、安防报警、远程监控、温湿度智能控制、智能厨卫、自动抄表、智能购物、物品收纳管理等诸多领域。放眼未来,家庭中的物品将充满智慧,能够实现与人类的“对话”和“沟通”。2.3智能家居中的Zigbee技术在执行IEEE802. I 5.4标准的基础上开发的Zigbee技术,具有非常多的优点,是一门新兴的技术,是目前无线传感器网络的首选技术之一。开发这一技术是为了使无线通信在一定区域内的降低成本和功耗,在这一基础上通过软件协议栈开发出容易布建的大容量、不依赖现有通信网络和现有电力网络的无线传感网络。Zigbee自身具备的这些优点,所以可以用在多种领域,例如自动控制以及潜入设备中。2.3.1 Zigbee设备类型及工作频段首先,依据在网络中充当“角色”的不同将Zigbee设备划分为协调器、路由节点和终端节点o。协调器,起到创建Zigbee网络、处理其它节点的入网申请、对网络进行管理和维护等功能:路由节点,用于扩大Zigbee网络的覆盖范围、转发数据等;终端节点,是各种应用对象的最终载体,可以是任何一种设备。在同一Zigbee网络中必须有且只有一个协调器,但路由节点和终端节点则可以有N个(N>=0)。2.3.2 Zigbee的技术参数Zigbee协议共有两个标准物理层:2.4 GHz和868/915 MHz川。这两个物理层使用一模一样的数据包格式,均是在扩频DSSS的基础上的;主要的不同在于频率不同,传输速率也不一样。Zigbee无线信道的组成如表2-1所示:Zigbee的其它技术参数见表2-2所示。表2-1 Zigbee无线信道的组成表2-2 Zigbee技术参数 作为全球统一的无需申请的ISM频段,2.4 GHz波段的推广更容易,而且降低成本的可操作性也更高。其物理层的特质是,调制技术高阶灵活,且有较高的传输速率,正因为此,才能在获得较小的通信时延,使得工作周期更短,从而达到更加省电的目的。2.3.3 Zigbee在智能家居中的应用 Zigbee网络的上述特点使得其无论在军事、科研还是民众民生方面都有巨大的潜力市场可以不断被挖掘。Zigbee作为近几年来新兴的距离近、复杂度低、功耗低、数据速率低、成本低的无线通信技术备受青睐,它在智能家居系统中更是存在巨大的应用价值。在感知层,各类打在了Zigbee无线通信模块的家用电器、照明设施、安防设施等,能够有效地实现对家庭家电设备的全面感知,至关重要。2.4 智能家居系统的组件思路智能家居系统融合了GSM/GPRS/CDMA网络、互联网以及目前己经得到有效发展的智能小区信息网络,来有效地实现各项信息的互联互通。(1)用户即使不在家中,也可以通过电脑终端或者手机终端等设备有效地对家里的电器或者照明装置进行检测和控制;(2)同时,经过程序设定,可以使系统自发定时或非定时地向主人报告家中防盗、防火、防煤气等警报情况。当然,主人可以通过命令的发送,随时随地地查看这些容易发生隐患的各种情况。(3)用户通过该系统可以直接与网络以及小区信息网络相连接,查阅小区最新发布的各类信息,并配合相关信息发送指令,如抄表或者照明控制等;必要时,如果一旦出现某些紧急情况,还可以直接与小区警卫处等发送求救信号,保障家庭各项安全。系统主要由一个家庭网关通过双向控制,即能控制外部网络相连的用户或者各类机构,也能准确控制内部相连的各类设施和设设备。2.5智能家居的系统功能及工作原理 智能家居的出现和发展基于城市中人民对生活各项需求的不断提高。智能家居系统的设计,首先要明确需要完成的功能有哪些,也就是说需要什么样的子系统来分别实现什么功能。 智能家居系统中的家庭网关能够实现双控制,经过2个通信网络:一是互联网,二是有线通信线路,实现与内部设施以及与外部外部设备之间的信息数据的互联互通。智能家居网管内部的Zigbee模块,通过移动通信网络,与双向互联的设备实现双向数据互发互收。远程终端让非同一地点的操作成为现实。用户通过手机拨打电话、发送短消息或者通过个人电脑发送特定指令,可以实现报警、防盗、防火等突发事件的应急操作。Zigbee模块负责组件整个系统的Zigbee网络,目的是第一时间准确有效地接收家庭中心处理计算机发送的各项指令,并以最快速度做出相应地处理。同样重要的任务是将从路由节点(FFD)或终端节点(RFD)接收到的数据信息及时反馈给家庭中心处理计算机。 一般情况下,终端节点的反馈信息按照功能用途有三种分类:第一类为开关与插座的控制。简单的举例就是直接控制家用电器的各项电源开关,如电视、冰箱、家庭影院播放器、电饭锅、空调、洗衣机、电动窗帘等)zy;简单地实现“是或非”的二选一操作;第二类是稍微复杂些的操作,是通过智能开关和插座实现输出功率的可调功能,例如风扇的转速、照明设施的明暗等;或者利用传感器产品,通过红外或磁感应等,实现监控功能,主要用于防盗、烟雾传感、防火防爆、防煤气防泄漏等;此外,还可以通过手动报警装置用于突发事件(例如空巢老人的昏厥、突然发病等)。第三类是手持遥控,指的是用处身处家庭当中,可以实现对家电开关、调速:除此之外,还兼具照明场景设定、背景音乐调控、小区网络平台的互访、门禁可视对讲;尤其可以实现与小区网络的通知信息读取,并在发生意外突发情况时向小区警卫处发送求救信号等。安装双网卡网关的家庭计算机,既有互联网接口连接外部,又可以实现与家中电气设备、照明等设施的内部网络互联,可以实现用户的远程操作和监控。下一代互联网的出现必将为此功能的实现提供大力有效的技术支持。等到那个时候,每一个家电设施将有自己的静态IP地址,从而成为智能家居系统中的一份子。为了实现上述的各项功能,Zigbee传感器节点能够组成簇状网络,它的最大的优点在于综合了星型网络和网状结构的特点,有很好的扩展性。未来家庭的发展,大户型家居和别墅家居是主流发展趋势f221,簇状网络能通过增加路由节点的形式,简单而又直接地扩大网络的覆盖范围23,十分有效;而对于小众的小户型而言,根据实际需求而适时删减网络的路由节点,使之快速变成星型网络24,自然也能够直接快速地达到节省能源、提高数据传输速度的目的。 上述中的远程终端,用户可以通过他们来实现对家居内部设备的控制操作以及监测信息读取。随着目前各类产品的层出不穷,远程终端也发展的越来越多样化,一般包括带有可视界面的计算机、手机、PAD等设备。 智能家居系统中的外部网络,主要的功能是把双向传递,一方面负责将家庭网关手机到的各类相关的数据准确无误、快速地传送到到的数据传输到对这些数据有知晓要求的用户终端;同时进行的另一个传递就是把用户的各种控制操作指令快速准确地传送给家庭网关。目前来说,市面上采用较多的家庭网关硬件设备原理是,在嵌入式网络服务器和相关通信模块上承载某一选定的操作烯烃和应用软件;同时,家庭网关还要肩负家庭内部网络的总体组件,是整个智能家居系统的核心和控制中枢,相当于人类的大脑。三、实验结果或数据分析3.1系统需求分析物联网智能家居要将各成体系、互不相连的子系统协调起来,就必须有一个兼容性强的中央家居处理平台,接受并处理控制设施发出的信息,然后传送信号给你希望控制的家电或者其他家居子系统。3.1.1应用程序功能需求分析本设计采用模块化设计,整个系统由通信模块、视频采集模块、传感器模块、Lcd模块组成。cortexA8通过对传感器模块传送来的信息进行判断,如果信息异常,则利用蜂鸣器以及LED实现报警,并通过GSM模块向用户发送报警信息。同时用户也可以根据需要,发送短信给GSM模块来控制相应的家电。实现对现场图像实时监控及工作位置实时控制。智能温度控制:系统能实时采集室内的温度,并能以图形方式展示给用户,用户可以根据需要自行控制室内温度,也可以根据用户设置把温度控制在一个范围之内。实时视频监控:系统能根据用户需要实时传回视频信息。智能照明控制:用户可以根据需要控制家庭的任意灯光。(1)软启功能:灯光的渐亮渐暗功能,能让眼睛免受灯光骤亮骤暗的刺激,同时还可以延长灯具的使用寿命。(2)调光功能:灯光的调亮调暗功能,能让您和家人分享温馨与浪漫的同时,还能达到节能和环保的功能。(3)亮度记忆:灯光亮度记忆的功能,使灯光更富人情味,让的灯光充满变幻魔力。(4)全开全关:轻松实现灯和电器的一键全关和所有灯的一键紧急全开功能、人性化的控制。触摸集中控制,使用更方便;夜晚,如有突发事件,只要按一下全开紧急按键,所有灯就全部同时亮起;睡觉前,只要按一下全关按键,所有灯就全部关掉.具体功能如下:智能门窗控制:用户可以根据需要控制门窗的开关,无需再为每天开关窗帘而心烦,结合定时控制器,电动窗帘每天自动定时开关,如每到晚上就自动关上,天亮时自动打开;电动窗帘的角度可以通过遥控器、触摸屏控制,遥控器轻松一按,窗帘自在掌控中。智能家电控制:通过用智能电器插痤、定时控制器、语音电话远程控制器等智能产品的随意组合,无需对现有普通家用电器进行改造,就能轻松实现对家用电器的定时控制、无线遥控、集中控制、电话远程控制、场景控制、电脑控制等多种智能控制。智能安防控制:室内防盗、防劫、防火、防燃气泄漏以及紧急救助等功能,全面集成语音电话远程控制、定时控制、场景控制、无线转发等智能灯光和家电控制功能3.1.2开发环境需求分析1.硬件环境(1)硬件配置原则具有可靠性,可用性和安全性,在满足软件需求的条件下,具有完善的技术支持,能够满足个人学习和设计需要。(2)运行本软件所需的硬件资源CPU: 800M及以上;内存容量: 内存达128M以上。本系统采用cortexA8为中央处理平台。2.软件环境(1)系统软件配置规则 能够在指定的运行环境下,满足该软件的可靠性、安全性和可用性的要求。(2)系统软件的配置方案配置有持续工作能力、高稳定性、高度可集成的开放式标准的操作系统,如Windows NT 、Windows2000、UNIX,Linux等。熟悉C+高级程序设计语言。本系统采用Linux为操作系统。3.2硬件模块及其驱动设计实现3.2.1主控模块本系统采用cortexA8为控制核心,cortexA8不断监测有没有异常信息,当发现异常信息时,则进入相应中断,利用cortexA8通过UART串口向GSM模块发送一系列AT指令并启动GSM模块发送报警短信给用户。再根据用户发送回来的指令打开相应的继电器来控制家用电器,完成现场控制和监测任务。3.2.2传感器模块linux2.6内核的设备驱动模型中关心总线、设备和驱动这三个实体,总线将设备和驱动绑定。SOC系统中集成的独立的外设控制器、挂接在soc内存空间的外设不依附于PCI、USB、I2C、SPI等。基于这个背景linux发明了一种虚拟的总线,称为platform总线,相应的设备platform_device,而驱动称为platform_driver。1. led图3.1 led电路采用platform框架 自动获取设备号,生成设备节点。led驱动:struct file_operations fops = .owner = THIS_MODULE,.read = led_read,.ioctl = led_ioctl,.release = led_release,.open = led_open,.write = led_write,;static int led_probe(struct platform_device *devices)struct resource *r;int ret;dev_t dev = MKDEV(led_major, led_minor);if(led_major)ret = register_chrdev_region(dev, count, devname);elseret = alloc_chrdev_region(&dev, led_minor, count, devname);led_major = MAJOR(dev);if(ret)return ret;cdev_init(&cdev, &fops);ret=cdev_add(&cdev, dev, 1);if(ret)goto out_unreg_chrdev;atomic_set(&num, 0);myclass = class_create(THIS_MODULE, devname);if (IS_ERR(myclass)goto out_cdevdel;device_create(myclass, NULL, dev, NULL, "%s""%d", devname, led_minor);r = platform_get_resource(devices, IORESOURCE_MEM, 0);if (r = NULL) goto out_class_destroy;GPG3_CON=r->start;r = platform_get_resource(devices, IORESOURCE_MEM, 1);if (r = NULL) goto out_class_destroy;GPG3_DAT=r->start;return 0;out_class_destroy:device_destroy(myclass, dev);class_destroy(myclass);out_cdevdel:cdev_del(&cdev);out_unreg_chrdev:unregister_chrdev_region(dev, count);return -EINVAL;int led_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg)unsigned int m=0x0;int tmp;if(cmd=CMDINIT)if(atomic_sub_and_test(1,&num)gpg3con = ioremap(GPG3_CON, 4);if(NULL = gpg3con)return -ENOMEM;gpg3dat = ioremap(GPG3_DAT, 4);if(NULL = gpg3dat)return -ENOMEM;tmp=ioread32(gpg3con);tmp=tmp&(0xffff);iowrite32(0x1111|tmp, gpg3con);tmp=ioread32(gpg3dat);tmp=tmp&(0xf);iowrite32(0x0|tmp, gpg3dat);atomic_inc(&num);return 0;else m=cmd & 0xf;tmp=ioread32(gpg3dat);tmp=tmp&(0xf);iowrite32(m, gpg3dat);return 0;led应用程序设计(1)void led_init(void); 函数功能:打开led设备并(2) int led_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) 函数功能:LED报警 输入参数:cmd 参数表示那个灯亮(3)void led_exit(void); 函数功能:关闭led设备2. 蜂鸣器图3.2 pwm电路图采用platform框架 自动获取设备号,生成设备节点。由于这个蜂鸣器是无源的,所以要想使其产生声音必须给他提供一个有一定频率的高低电平。所以这里我们采用S5PC100的PWM定时器来使蜂鸣器发出声音。蜂鸣器应用程序设计:(1)int beep_init(void); 函数功能:打开蜂鸣器设备文件(2)void beep_exit(void); 函数功能:关闭蜂鸣器设备文件(3)void beep_on(int num); 函数功能:在出现火灾时蜂鸣器报警 输入参数:int num 表示报警的次数(4)void beep_off(void); 函数功能:停止蜂鸣器响3. lm75温度传感器图3.3 lm75电路图I2C驱动三种方式:用户层驱动、sysfs接口驱动、字符设备接口驱动(项目采用方案)。3.2.3 lcd模块本论文是基于嵌入式Linux为基础的包括lcd部分。Linux是一款运行速度快、开源、高效而且免费的操作系统。近年来,基于开源组织的嵌入式Linux系统的操作系统不断升级更新。Linux操作系统是不属于微内核型的操作系统,但是Linux操作系统模块化的结构可以让用户对它进行合理的剪裁,剪除我们不需要的功能以缩减系统的大小,甚至可以做到几千几百k大小。所以综合考虑系统的性能、可兼容性以及系统的运行速度,本论文采用嵌入式Linux2.6.35版本。在S5PC100的硬件平台上安装经过剪裁后的Linux操作系统后,为了使LCD能正常显示,还需要在系统中安装相应的LCD的驱动程序。缓存(Framebuffer)技术是Linux内核中的一种常用的驱动程序设计的模式,帧缓存为LCD设备提供了控制器的抽象描述。它就是人们常说的显存,应用程序使用系统实现好的接口可以直接访问LCD底层设备,而不需要知道底层具体是如何实现的。本系统利用帧缓冲技术开发LCD驱动程序。LCD设备使用特殊的设备节点,是一个字符设备,其主设备号是29,次设备号为自己需要的帧缓冲个数。其实,帧缓冲设备和Linux中其它的设备一样。1. 函数接口首先将帧缓冲设备的属性封装成结构体FB,如下:typedef struct fbint fbfd ; /文件描述符long int screensize ;/屏幕大小struct fb_var_screeninfo vinfo;/屏幕信息struct fb_fix_screeninfo finfo;unshort *fbp ;/mmap后的用户操作指针 FB;将屏幕上的点位置信息封装为结构体POINT,如下:typedef struct point unshort location_wide;/此点代表的位置的宽unshort location_hight;/此点代表的位置的高POINT;FB *screen_init(FB *fb); /屏幕初始化函数int show_picture(FB *fb,int wide,int hight,const unchar *Image);/ 图片显示函数int show_temperature(FB *fb,const char *temperature,unshort color);/动态温度显示函数int show_state(FB *fb,int flage,unshort color);/温度状态显示函数int screen_close(FB *fb);/关闭屏幕函数实现函数:static FB *fb_open(const char *PATH,FB *fb);->打开设备函数;static FB *get_fb_msg(FB *fb);->得到屏幕信息;static FB *fb_mmap(FB *fb);->将设备映射到用户空间;static FB *clean_screen(FB *fb,POINT *start,POINT *end,unshort color);->清除start到end之间的块儿装屏幕为color颜色;static int show_word(FB *fb,const unchar *word,POINT *point,unshort color);->在给定的点location显示color颜色的字符;static int drow_horizontal_line(FB *fb,POINT *start,POINT *end,unshort color);->在给定的start到end之间画一条横线 static int drow_vertical_line(FB *fb,POINT *start,POINT *end,unshort color);->在给定的start到end之间画一条竖线static unchar *fin