基于嵌入式Linux和ZigBee技术的智能家居系统设计报告_第1页
基于嵌入式Linux和ZigBee技术的智能家居系统设计报告_第2页
基于嵌入式Linux和ZigBee技术的智能家居系统设计报告_第3页
基于嵌入式Linux和ZigBee技术的智能家居系统设计报告_第4页
基于嵌入式Linux和ZigBee技术的智能家居系统设计报告_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

山东省应用物联网设计大赛山东省应用物联网设计大赛山东省应用物联网设计大赛应用物联网设计大赛作品设计报告基于嵌入式Linux和ZigBee技术的智能家居系统ThesmarthomesystembasedonembeddedLinuxandZigBee 设计报告摘要随着科学技术的发展,智能家居生活也渐渐成为趋势。本文设计了一个智能家居系统,采用ZigBee组网、Wi-Fi无线通信技术及嵌入式的网关服务器,实现了家居安防和家居远程控制。系统以Android智能设备作为主控制器终端,以三星公司的S5PV210芯片和相关的一些外围器件组建成整个系统的家庭网关控制平台,基于嵌入式Linux操作系统通过Qt设计开发了智能管家软件,而家居内部控制网络则利用ZigBee无线网络技术来实现。智能家居系统通过物联网技术将家中的各种设备(如照明系统、窗帘控制、安防系统、烟雾报警系统、智能厨房、智能洗浴等)连接到一起,提供家电控制、照明控制、窗帘控制、电话远程控制、室内外遥控、防盗报警、红外转发以及可编程定时控制等多种功能和手段。帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金。关键词:智能家居系统、Wi-Fi、ZigBee、嵌入式Linux、Android平台AbstractWiththedevelopmentofscienceandtechnology,intelligenthouseholdlifeisbecomingatrend.Thispaperdesignedasmarthomesystem,USEStheZigBeenetwork,wi-fiwirelesscommunicationtechnologyandembeddedgatewayserver,homesecurityandhomeremotecontrolisrealized.SystemtoAndroidintelligentterminalequipmentasthemaincontroller,wsamsungS5PV210somechipsandrelatedperipheraldevicestoformintothefamilygatewaycontrolplatformofthewholesystem,basedonembeddedLinuxoperatingsystembyQtintelligenthousekeepingsoftwareisdesignedanddeveloped,whilehomeinternalcontrolnetworkusingZigBeewirelessnetworktechnologytorealize.SmarthomesysteminthehomethroughtheInternetofthingstechnologywiththeequipment(suchaslighting,curtaincontrol,securitysysmokealarmsystem,intelligentkitchen,intelligentbath,etc.)together,provideelectricalappliances,lighting,curtaincontrol,indoorandoutdoor,telephoneremotecontrolremotecontranti-theftalarm,infraredforwardandprogrammabletimingcontrolandotherfunctionsandmeansTohelpfamilieskeepsmoothcommunicationwithexternal,optimizepeople'slifestyle,helppeopletoarrangetimeeffectively,enhancethesecurityofhomelife,evenforavarietyofencostsavings.Keywords:Smarthomesystem、Wi-Fi、ZigBee、EmbeddedLinux、Androidplatform目录摘要Abstract第1章快速说明1第2章背景及需求分析82.1智能家居系统的现状及发展趋势82.2需求分析9第3章系统方案103.1系统总体方案103.2系统总体结构10第4章系统硬件设计12第5章ZigBee无线传感网络的设计155.1ZigBee协议栈155.2Z-stack165.3ZigBee无线传感网络的设计175.3.2协调器节点设计185.3.3终端节点设计20第6章嵌入式网关设计216.1智能家居网关分析226.1.1工作原理226.1.2功能要求226.1.3智能家居网关总体设计226.2网关软件开发平台的搭建246.3网关应用程序设计256.3.1网关工作流程256.3.2应用程序界面设计266.3.3应用程序设计与实现第7章基于Android控制的智能家居终端设计287.1Android系统体系结构287.2Android软件平台的搭建297.2.1Linux内核层297.2.2Android运行时库和其他库层297.2.3应用框架层提供307.2.4应用程序层307.3Android应用程序的开发307.3.1界面设计307.3.2基于Android的应用软件设计31第8章系统测试328.1手机APP测试328.2网关测试328.4家庭安防系统的测试348.5家庭环境控制系统34第9章系统特色34山东省应用物联网设计大赛结论35参考文献:36

第1章快速说明我们设计的总体框架如下:图1智能家居物理架构图图2智能家居功能架构图图3智能家居技术架构图成果展示:图4用户主界面::图5自动洗浴注水控制系统测试::图6自动房间照明控制系统测试:图7防火自动监控与报警系统测试:图图8自动窗帘控制系统测试图9APP生成图图10程序图图11图11MS-i208-BOX实验箱图12MS-i208-BOX实验箱屏幕图图13手机控制实物图第2章背景及需求分析随着社会经济的发展、生活质量的日益改善和生活节奏的不断加快,人们的工作、生活日益信息化。信息化社会在改变人们生活方式与工作习惯的同时,也对传统的家庭住宅系统提出了挑战。人们对于家居的要求已经不仅仅是物理意义上的生存空间,更为关注的是个高度安全性、方便、舒适的生活环境、先进的通讯设备、完备的信息终端、自动化和智能化的家用电器、信息资源使用的网络化的需求等等,现代的家居设计理念越来越追求便捷化、高效化与智能化,家居设备的高度智能化已经成为一种强烈的消费需求。同时在科学技术的快速发展的推动下,实现这种需求已经不再是天方夜谭。由于电子技术的进步,家居产品已与计算机、网络通信技术紧密地结合在一起,智能化的家用电子电器产品应运而生,智能家居系统越来越得到人们的重视,使得家居智能化势在必然。2.1智能家居系统的现状及发展趋势迄今为止,智能家居还没有一个普遍认同的统一的定义。通常智能家居系统利用先进的计算机和网络通讯技术将与家居生活有关的各种各样的子系统,通过特定的网络有机地结合在一起,通过科学管理,让家居生活更加舒适、有效、安全和节能。与传统的家居相比,智能家居不仅仅具有传统的居住和实用功能,还提供了舒适安全、高品位的宜人的家庭生活空间,并且提供全方位的信息交换功能,确保家庭内部与外界之间保持良好的交流与沟通,增强家居生活的安全性,节约能耗,帮助人们有效安排时间,优化人们的生活和工作方式。世界上第一幢智能建筑1984年在美国出现,美国联合科技公司在美国康乃迪克州哈特佛市的一座旧式大楼的改造中将智能建筑的概念应用于大楼的供电、安保、照明等设备,使用计算机对大厦进行监测和控制,并提供了先进的语音、数据通信和资讯等方面的信息服务,该栋智能型建筑的诞生,揭开了智能家居发展的序幕。此后,一些经济、技术比较发达的国家先后提出了各种各样的智能家居解决方案。智能家居系统在法国、加拿大、日本等国都有广泛应用。1998年5月,在新加坡举办的“家庭电器与电子消费品国际展览会"上,“未来之家”进行了现场演示,该系统是一套完善的家庭智能化系统。它的系统功能主要包括三表远程抄送功能、安保报警功能、家电控制功能、高速数据传输功能、家庭智能控制面板等。在展会上参与演示的家庭智能化系统距离真正的市场应用还尚需时日,但是科学技术的发展使得人们更加坚定了追求高品质生活方式的信心,智能家居作为高品质信息生活的代表得到越来越多的瞩引引。智能家居网络技术在国内的发展始于20世纪90年代末,到2000年左右智能家居概念开始得到大范围的宣传,使我国的普通居民开始了解并接受了智能家居的概念。如今各小区的开发商在住宅小区和住宅的设计阶段也已经较多地考虑了智能化基础设施的建设,少数高档的住宅小区己经配套了相当完善的智能家庭网络,很多开发商已经将住宅“智能化”作为一个“亮点"在房地产销售的广告中大量宣传。从消费者的角度来看,智能家居的需求就是以实用为核心,力求家具设备的实用化、易用化和人性化,这就决定了家居智能控制系统的发展方向:无线化、网络化。对普通用户来说,最为使用方便的应用就是在家庭之外的任何地方通过手机等移动终端在手中可远程控制家庭中的一切电器设备,这正是远程移动通信技术在智能家居领域大受青睐。2.2需求分析智能家居网络通常能够分为家庭数据网络和家庭控制网络两种:家庭数据网络,提供高速率的数据传输服务,如家用计算机和数字电视、视频和音频播放器、资源共享及高速上网等;家庭控制网络,提供便捷的和低速率的控制和互连网络,用于灯光照明控制、家居安防、家居环境监测以及家庭应急求助等功能。智能家庭控制网络是智能住宅系统的重要组成部分,家庭控制网络子网和远程管理是该系统的重点和难点。与家居数据通信网络的应用目的不一样,数据通信网络中音、视频等大数据传输需要高速的数据通信接口,而家居控制系统需要的是经济、低功耗的控制网络,该控制网络的主要功能在于设备的连接与控制,基本上无需高速的通信方式来支撑。在家居网络中,我们要考虑以下特点:(1)低成本:大量的家电和传感器终端节点是家庭控制网络中控制的主要对象,这种较大规模的网络需要一个低成本的节点组网技术。(2)跨平台:智能家居系统的使用环境是一个家居环境,整个系统中有着错综复杂的平台,不能强制要求用户能够对系统进行复杂的配置和管理,网络环境下各种资源的自组织和协同工作显得非常重要。(3)可扩展性:能够在系统主架构不做改动的情况下进行维护和扩展,加入新的家居设备。(4)远程控制:移动终端设备能够接入Internet并登录到智能家居控制系统中,进行信息交互,实现远程监控和控制。传统的家居智能控制系统一般采用有线方式来组建,如同轴电缆、USB、CAN总线等但有线网络具有布线麻烦,可扩展性差等固有的缺点,限制了有线网络技术在智能家居系统中的发展。因此,将无线网络技术应用于家庭网络己成为大势所趋。这不仅仅因为无线网络具有更大的灵活性、流动性,省去了布线的麻烦,更重要的是它符合家居控制网络的通讯特点。无线家居网络将人们生活与工作的广袤空间浓缩于人类的双手可以掌控的距离。红外、蓝牙、ZigBee、WiFi等一系列无线网络技术的进一步发展,必将大大促进家居设备无线化、智能化的进程。根据智能家居系统的特点,智能家居系统应具有如下几种功能:(1)远程控制:通过WiFi网络,使用电脑、智能手机等终端设备,可在本地直接控制家中的灯光、电器等设备,或通过远程访问完成控制并查看家中情况。(2)远程监控:监测住宅内火灾、煤气泄漏、人员非法闻入等状况并及时发出警报。(3)环境监测及设备联动对于各种季节的环境,传感器自动监测周围温度,通过自动调节空调来让家中一直处于一个舒适、温馨的环境。通过光照等环境监测传感器感知室内及室外的环境状况,当光照值超出一定范围时,窗帘自动关闭。第3章系统方案3.1系统总体方案基于无线传感器网络的智能家居网络主要是由若干执行机构、若干无线传感器节点、无线协调机构,辅助机构,家居控制中心组成。其中,节点分布于客厅、卧室、厨房、洗手间等需要监测的区域内,执行数据采集、处理和通信工作。无线控制模块负责发送控制信号,实现窗帘自动开关闭合、模拟灯光自动打开、模拟自动开启太阳能电磁阀门、模拟开启电磁锁等控制功能。无线控制模块由三套系统组成,一套是由在家中近距离使用的遥控器控制系统,第二套是出门在外时使用的手机控制系统,第三套是在家中控制智能管家。3.2系统总体结构根据总体方案画出了系统的总体设计图,如图3-1所示。按照结构层次系统划分为三层:数据感知层(协调器和终端节点)、网络层和应用层(智能终端)。图3-1智能家居系统的结构图数据感知层的终端是系统的前线,它起着数据供给的作用。它在系统的边缘,是数据采集终端,算是拥有独立系统的单元,它有独立的微控制器(嵌入的8051内核),所以响应控制中心发来的命令,经过分析之后命令执行机构作出相应操作。设计结合智能家庭网络系统的特点,如家庭内部无线网络连接距离较短,分布的节点并不是太多,并且数据的传输量也不是太大。基于家庭网络的这些特点,以协调器为中心节点组建一个星形家庭网络。网络层由网关做为家居系统的控制心,是整个系统的大脑,它支配整个系统的活动,不仅负责实现系统的内部网络和外部网络之间的相互通信,并且还需要通过ZigBee无线网络对智能终端设备进行实时的监控和管理。通过智能管家或者手机发送命令,将命令接入网关,由网关将命令转发给协调器,由协调器通过传输转达给终端。终端获得信息后控制外设传感器等器件,这些外设就属于执行机构,他们时刻等待命令,一旦接受立即执行相应操作。应用层是实现系统向用户远程传达信息,可以通过Wi-Fi网络与手机相互连接,实现远程无线通信功能。第4章系统硬件设计智能家居系统中,控制终端(如手机)和受控终端(家居设备)为日常家居中的现成产品,它们只需通过适当的接口纳入系统架构中即可。系统硬件设计主要包括网关设计、ZigBee节点设计和家居控制模块设计。本次设计以微分电子公司的物联网体验箱为平台,平台提供一个A8网关、一个协调器节点和6个终端节点,因此系统硬件设计的重点在智能家居控制模块上。实验箱内终端节点包含了光照度检测节点、温湿度检测节点、烟雾浓度探测节点、红外反射传感节点、步进电机节点和继电器节点,可实现基本的家居环境检测、家居控制和家居安防功能,如:光照强度的采集、温度和湿度的采集、智慧灯光控制、电动窗帘控制、红外探测和烟雾探测。在此基础上,又添加了太阳能洗浴、报警系统、自动门禁、与智能管家系统可以实时发现家居隐患以及家居的安防。自动门禁控制系统——忠实守卫,我们的家当房子主人走到门口时,只要拿出手机轻轻一点,手机发出相关命令就可以实现房门自动打开与关闭。当客人到访而家中无人或遇到火情需要救援人员进入家中时,主人可以通过手机远程遥控打开房门。本部分通过手机软件的加密措施实现安全的防盗功能。本子系统由电磁锁、驱动模块、防盗门模型、手机和CC2530终端节点等组成,如图4-1所示。CC2530CC2530模块路由电磁驱动模协调GPRS手机图4-1门禁控制硬件框图智慧灯光控制——解放双手,智能感应本子系统由灯光控制电路、光敏、红外探头、灯泡、遥控器和CC2530终端节点等组成,如图3-2所示。当房主进入房间时,灯光自动打开,房主离开房间时灯光自动关闭。本模块还可以检测进入房间、离开房间的人数。只有当进入本房间的所有人离开时灯光才会自动关闭。主人也可以按照自己的需求随时控制灯的亮灭,如图4-2所示。CC2CC2530模块光敏控制电路红外探头灯泡图4-2灯光控制硬件框图(3)太阳能洗浴——轻轻一点,温暖你的身心!本子系统由电磁阀门、太阳能模型、水位检测探头、驱动模块、手机和CC2530终端节点等相互配合组成。当主人下班时,可以通过手机自动打开太阳能电磁阀门,在浴盆中提前注入合适水量的热水。当主人回家时就可以马上舒舒服服的洗澡,如图4-3所示。图4-3太阳能洗浴硬件框图电动窗帘控制——自动开关,随意遥控!本子系统由窗帘、窗户模型、步进电机、单簧管、光敏、驱动模块、遥控器和CC2530终端节点等组成。早晨,当您还在熟睡,卧室的窗帘自动打开,温暖的阳光洒进房间,呼唤您开始新一天的生活。当夜幕降临,光敏感应,窗帘自动闭合。主人也可以按照自己的需求随时使用遥控器发送指令控制窗帘的打开与关闭,如图4-4所示。图4-4窗帘控制硬件框图厨房自动控制系统——与家电的对话!本子系统由电饭煲、驱动模块、继电器、协调器、手机和CC2530的终端节点等组成。当房主下班时,可以通过手机远程控制电饭煲开关,实现自动煮饭的功能,如图4-5所示。图4-5电饭煲控制硬件框图防火自动监控与报警系统——智能安防,时刻守护!本子系统由烟雾传感器、扬声器、GPRS模块和CC2530终端节点等组成。当房间内发生火情时,烟雾传感器会检测到火情并启动扬声器同时通过GPRS模块发送相关指令至主人手机,及时遏制火势蔓延,如图4-6所示。图4-6防火系统硬件框图远程监控与报警——轻松监控,智能实现!本子系统由摄像头、扬声器、A8网关、协调器、手机和cc2530终端节点等组成。当系统处于防盗模式时,盗贼潜入家中,扬声器自动开启鸣笛震慑,同时会有短信或电话发送至主人手机,主人可通过互联网,利用视屏实时监控,通过摄像头实时监测并处理家中境况,如图4-7所示。图4-7远程监控系统硬件框图无线遥控——随时随地,全屋掌控!本系统将所有子系统连接在一起,只需要利用遥控器,就可以在家里任何地方遥控家里楼上楼下、各个房间的灯和电器;利用手机,更可以实现对家内家外对所有控制系统实施全面遥控。第5章ZigBee无线传感网络的设计5.1ZigBee协议栈ZigBee协议体系结构如图5-1所示。它的物理层和MAC层都是由IEEE802.15.4所定义,其中物理层支持868/915MHz和2.4GHz三种频段。MAC层之上是网络层,主要提供网络层数据收发和路由功能。网络层之上是应用层,应用层又分为几个模块,其中网络层之上的是应用支持子层,简称“APS”,主要提供应用层数据处理和绑定功能。ZigBee设备对象提供设备管理的各项功能,包括设备发现、服务发现、绑定管理和网络管理等。另外ZigBee还提供了安全的功能,成为安全服务提供者,简称“SSP”为网络层和应用层提供安全服务。完整的ZigBee体系结构由物理层、MAC层、网络层和应用层组成。不同层之间通过服务接入点进行通信,每一层为其上层提供服务。其中物理层和MAC层之间是物理层数据服务接入点和物理层管理实体服务接入点,MAC层与网络层之间是MAC层数据实体服务接入点和MAC层管理实体服务接入点,网络层与APS之间是网络层数据实体服务接入点和网络层管理实体服务接入点,APS与各应用对象之间是APS数据实体服务接入点和APS管理实体服务接入点。图5-1ZigBee协议体系架构5.2Z-stackZigBee联盟规范了协议,具体的协议编程语言表述则由IC厂商指定。Z-stack是TI公司开发的一款ZigBee协议栈,是对ZigBee标准的具体实现。Z-stack是半开源的协议栈,其核心部分的代码都是编译好的,以库文件的形式给出的,比如安全模块,路由模块和Mesh自组网模块。与ZigBee协议像对应,Z-stack协议栈采用分层的结构,如图5-2所示。图5-2图5-2Z-stack软件结构好,结构简单,操作方便等特点。当主程序执行到启动操作系统后,系统的指挥权就交给了OS,由操作系统控制各个任务的调度切换及数据传送等功能。Z-stack协议栈已经做了很多的工作,用户只需要在APL(应用层)上实现自己的应用就可以了。Z-Stack几乎都是C语言写的,用户对于ZigBee无线网络的开发就简化为应用层的C语言程序开发。此外,Z-stack提供了很多的例程,在根据节点电路移植协议栈后,通过修改例程可以很快地完成无线传感网络的设计。使用协议栈进行开发的好处,不需要过多关注协议的细节,只需要掌握数据的流动过程,以及如何使用协议栈提供的函数来完成自身项目的需求即可。因此,本文选择基于Z-stack协议栈进行ZigBee无线传感网络的应用程序开发。5.3ZigBee无线传感网络的设计本系统的ZigBee无线网络是由协调器和若干终端节点组成。其软件设计主要包括ZigBee协调器软件设计和ZigBee终端节点软件设计。5.3.1通信协议ZigBee网络的物理层和MAC层的通信协议遵循IEEE802.15.4标准,由于本智能家居系统中ZigBee网络采用简单的星形拓扑结构,网络层也不涉及路由寻址等问题,因此,本文通信协议的设计主要考虑应用层。数据帧格式如表5-1所示。表5-1协议协议头保留字段传感器的唯一传感器类型操作类型保留字段数据域CRC协议尾设备设备Byte[0]Byte[1-6]Byte[7-12]Byte[13]Byte[14]Byte[15-16]Byte[17-24]Byte[25]Byte[26]0xFF默认填充为0识别号21或3默认填充为,0][8传感器返回的信息校验和0xFF5.3.2协调器节点设计协调器的工作流程协调器是全功能设备,是网络的核心,它不仅建立了网络,而且还给其它传感器节点分配网络地址。如果没有协调器整个网络就无法运行,协调器的硬件结构比较的简单,其软件设计相对比较复杂。协调器初始化后就开始组建网络,组建网络成功后就处于等待数据查询状态,若触发数据查询事件,查找与该事件对应的传感器节点,查询到网络节点后发送查询命令,然后接收传感器节点的信息,主控制器若想获得某传感节点的信息,就通过此协调器获得对应节点的信息并在显示屏上显示该信息。协调器的软件流程如图5-3所示。

图5-3协调器节点的流程图串口接收/发送数据帧串口通信的目的就是收集到的节点数据传输到上位机(智能家居系统),系统将这些数据通过手机短信或者Internet的方式反馈给用户,用户根据这些数据做出决策,然后再发送指令给智能家居系统,系统再根据串口的数据通信协议规范用户发送的指令并将这些指令发送给ZigBee网络协调器,协调器根据ZigBee数据通信协议规范接收到的指令并再次将这些指令发送给控制节点。①发送一帧数据的过程发送数据帧主要在节点反馈数据和上位机发送查询/控制命令,此过程比较简单,没有校验过程,具体步骤如下:设定起始字节和结束字节为0xFF,在中间插入数据和数据的校验码。除了起始字节和结束字节外,将一帧数据中的0xFF和0xFE(包括校验码)字节进行编码:0xFF0xFE0x01、0xFE0xFE0x00。将编码后的数据通过串口发送。②接收一帧数据的过程接收数据帧主要在ZigBee协调器节点接收上位机的查询/控制命令以及上位机接收ZigBee网络的反馈数据。此过程存在恢复被编码的数据(即0xFE0x010xFF、0xFE0x000xFE)和校验过程,因此比发送数据帧要复杂。具体步骤如下:首先接收一帧起始字节为0xFF,结束字节为0xFF的数据。由于在一帧数据中除了起始字节和接受字节为0xFF,其余的数据均不会出现0xFF,若起始字节有两个0xFF,则抛弃第一个0xFF,从第二个0xFF开始。恢复被编码的数据(译码),即对起始和结束字节之间为0xFE0x00和0xFE0x01的数据译码为0xFE和0xFF,即0xFE0x010xFF、0xFE0x000xFE。判断译码后的帧长度,如果符合既定长度,则进行校验验证,校验码验证也通过,则说明该帧数据正确,进行处理。如果在第三步中判断数据有错,则抛弃该数据,继续处理后面接收到的数据。通常在抛弃错误数据的时候,为保证没有抛弃下一帧数据的起始字节,在收到两个连续的0xFF时,只抛弃一个0xFF,另一个作为下一帧的起始字节继续使用。提取数据帧中有效载荷,并对这些载荷进行处理。5.3.3终端节点设计ZigBee终端节点程序按照各个节点实现的功能进行设计,分为两类:一类是环境信息采集节点,一类是受控节点。环境信息采集比如温度传感器终端节点,当收到家居网关的命令后,接下来就要对接收到的信息进行分析与判断,若为温度采集信息则调用相应的温度采集程序进行温度采集,然后将温度传感器采集来的信息进行数据打包后发送给协调器,然后由协调器发送给家居网关,程序流程图见图5-4。受控节点比如灯光,当收到家居网关的命令后,控制设备开关,并将状态反馈到家庭网关,程序流程图如图5-5所示。图5-4采集终端节点流程图图5-5受控终端节点流程图第6章嵌入式网关设计6.1智能家居网关分析6.1.1工作原理智能家居网关作为一种传输网关,它的作用在于在智能家居内部网络与外部Internet网络之间建立通信桥梁,完成不同网络的数据跨异构网络的传输。其基本工作原理可以描述如下:网关通过无线路由器连接到手机或外部Internet网络,接收控制端发送来的控制和查询命令,解析命令并将命令按照指定的格式发送给与网关可以直接通信的智能家居内部网络中的各前端设备节点,实现对各设备的控制;同时作为智能家居内部网络的信息汇聚节点,它接收来自各前端设备节点的数据信息,并对数据进行处理后发送到可以通信的外部网络,从而完成智能家居系统网络数据的异构网传输。6.1.2功能要求智能家居系统中,智能家居网关一方面是家庭内部网络中信息数据的汇聚点,另一方面它联系着远程控制端,因此其性能直接影响着整个智能家居系统的最终性能。构建智能家居网关时应当在充分考虑实用性、易操作性、高兼容性和可扩展性等基本要求的基础上,满足网关还需具备较强的处理能力、通信能力和存储能力的性能要求。通过分析目前市场上主流的智能家居网关基本功能,并结合未来发展趋势和论文的实际应用需求,确定了本论文的智能家居网关的功能需求如下:家庭内部网络建立功能:网关负责智能家居内部网络的建立、管理和维护。家庭内部网络数据发送及汇聚功能:向家庭内部网络设备节点转发控制命令,并接收来自内部网络中各设备节点的数据信息。设备信息存储功能:存储智能家居内部网络中各设备节点的编号、名称、类型、状态、位置等信息。Internet数据传输功能:完成与Internet网络中的客户端和服务器的数据通信,包括经Internet接收控制命令、返回查询和控制结果等。内外网访问功能:既可以通过家庭无线局域网(WLAN)Wi-Fi访问网关,又可以通过公共Wi-Fi、3G或GPRS等经Internet公网服务器访问网关,实现对家庭内部网络中各种设备的控制。状态显示功能:网关实时显示当前的工作状态,包括内部网络数据发送和汇聚状态、Internet网络数据发送和接收状态、与服务器连接状态等。6.1.3智能家居网关总体设计智能家居网关既要连接智能家居内部网络,又要连接外部网络,同时需要提供足够的信息存储空间,基本的人工输入功能,状态输出功能。网关的总体框架如图6-1所示。图6-1智能家居网关总体框架图智能家居网关作为一种典型的嵌入式系统,应该具备较强的实时任务处理能力、一定的信息存储功能、较强的可扩展性、低功耗等特点。智能家居内部网络的数据汇聚功能是智能家居网关的核心功能之一,作为智能家居内部网络的汇聚节点,网关需要完成内部网络的构建、维护、数据收发的任务。智能家居网关选择ZigBee技术构建家庭内部网络,需要为网关配置符合ZigBee技术标准的网络协调器,并与主处理器硬件接口实现无缝连接,解决智能家居内部网络的数据通信问题。实验箱内A8网关硬件电路以ARM系列的Cortex-A8处理器为控制核心,主要包括电源模块、按键模块、触摸屏模块、存储电路模块、通信接口模块等,完全能够满足本设计的要求,如图6-2所示。因此,以下只介绍网关软件设计过程。图6-2网关硬件结构图6.2网关软件开发平台的搭建网关软件开发平台如图6-3所示,包括U-Boot、文件系统、Linux内核以及嵌入式Qt库。U-Boot用作引导加载程序,负责加载内核;文件系统存储系统应用以及用户数据等;内核是整个操作系统的核心,负责对上层的抽象化;Qt库提供应用软件图形API。软件平台搭建完成后,可以通过Qt进行网关应用程序的开发。图6-3软件平台框图6.3网关应用程序设计本设计采用Qt进行网关应用程序开发。Qt是一个跨平台的C++图形用户界面库。Qt是完全面向对象的,提供了丰富的窗口部件集,给应用程序开发者建立艺术级的图形用户界面所需的应用功能。而且很容易扩展,允许真正地组件编程。最为重要的是Qt使用“一次编写,随处编译”的方式来构建多平台图形用户程序。6.3.1网关工作流程本设计的网关工作流程图如图6-4所示。本设计中的传感器的数据监控、设备的定时控制均由设备监控进程来进行维护,用户退出时会自动保存用户的配置,在启动时自动导入配置,并将该配置同步给设备监控进程。在此之后设备的监控全部由设备监控进程来负责,在设备状态更新或者由短消息控制设备定时状态得到更新时,由设备监控进程通知该用户界面进程来进行更新,以保证设备状态信息的同步。在系统启动开始需要用户输入密码,进行授权验证。如果密码验证错误次数超过阈值,则直接退出系统。如果验证成功,则进行系统启动,向设备监控进程请求设备的开关状态以及传感器的数据,初始化系统界面,之后进入循环判断流程:如果有从设备监控进程发来的设备状态信息同步数据,则进行数据的更新;如果用户点击设置按钮,进行系统参数设置,如果选择保存设置,则根据改变的参数类别,将其保存至文件或者通知相应的进程。图6-4网关工作流程图6.3.2应用程序界面设计网关应用程序的功能可分为后台服务和功能控制。后台服务主要会检查如下这些情况:温湿度的实时数值,以反映在主界面之上;检查当前的灯光强度以自动控制窗帘的开或关;检查当前的温度以自动控制空调的开或关;检查是否发生火灾或入侵作出相应的动作。功能控制包括六大部分分别是门禁控制、厨房控制、窗帘控制、灯光控制、警报消除以及短信控制。各级功能控制会负责自己所控制的区域,不会互相交叉影响。1.主界面设计根据网关应用程序的功能,主用户界面如图6-5所示。该界面提供给用户当前各个传感器的实时数据,设备定时信息的总览,并在状态栏中实时显示各个传感器的连线状态信息等,当和某个传感器失去连线时,会显示在主界面上,并有警告对话框提示用户进行检查。该界面中下端的设置按钮以及上端工具栏中按钮以及菜单栏设置栏中的选项均可调出系统对应的配置对话框供用户进行配置,该部分对话框设计的部件在系统初始化时已经创建,仅是隐藏未显示,在调用时显示即可,以此来加速对话框的显示,给用户提供流畅的显示。图6-5主界面2.传感器设置界面设计本设计中传感器设置界面如图6-6所示,该界面提供给用户如下设置选项:蜂鸣器使能、门禁报警使能、温度报警阈值设定、天然气报警设置,该保存命令框的功能同上述设置GSM短消息配置大体相同,但本界面的设置保存除保存在系统配置中外,还需要将这些信息同步给设备监控进程,使各个进程间的配置保持相同。该界面的在系统配置中保存界面配置信息的代码如下所示:图6-6传感器设置界面6.3.3应用程序设计与实现 网关的主要功能是通过串口与ZigBee无线传感网络实现信息交互和通过Internet网络与控制终端(手机)实现远程控制。1.串口通信Linux系统对串口的读取仅能采用查询模式。此外,Qt中并没有特定的串口控制类,实际开发过程中多采用qextserialport类实现串口通信。2.网络通信网关网线连接无线路由器,通过Wi-Fi网络与智能交互终端等产品进行数据交互。在控制终端(手机)Wi-Fi功能的基础上,应用程序通过套接字通信的方法来实现网关和控制终端的TCP连接。套接字通信的基本思想比较简单,客户端建立一个到服务器的连接,一旦建立了,客户端就可以往套接字里面写数据,并向服务器发送数据;反过来,服务端读取客户端写入套接字的数据。因此,在Qt中建立一个TCP的服务器,在手机应用程序中建立一个TCP客户端,基于手机的Wi-Fi功能便可实现网关和手机的TCP连接。Qt提供了QTcpSocket类实现TCP传输协议,若是创建服务器应用程序,还需要QTcpServer类处理引入的TCP连接。第7章基于Android控制的智能家居终端设计7.1Android系统体系结构Android主要是为移动平台而设计的软件包,其体系结构被分为四层,分别是Linux内核层、Android运行时和组件库、应用框架层和应用层,如图7-1所示。使用linux内核实现任务调度,内存管理等核心功能。同时实现了一个java虚拟机以支持java程序的运行,提供了各种C库支持并把这些功能重新用jar包封装,使得Android程序的开发变成了纯java的开发。Google公司提供了整套开发环境和工具。图7-1图7-1Android体系结构7.2Android软件平台的搭建7.2.1Linux内核层Android是基于LinuxVersion216123内核开发的,主要是添加了一个名为Goldfish的虚拟CPU以及Android运行所需的特定驱动代码。该层用来提供系统的底层服务,包括安全机制、内存管理、进程管理、网络堆栈及一系列的驱动模块。作为虚拟的中间层,该层位于硬件与其他的软件层之间。7.2.2Android运行时库和其他库层运行时库和其他库层Android运行时库包含一组核心库(Java语言核心库内的大部分功能)和Dalvik虚拟机。同时Android提供了丰富的库类支持且大部分为开源代码,如采用的数据库为SQLite。Android选择它作为移动终端的嵌入式数据库有以下优点:它无需安装和管理配置,它是一个存储在单一磁盘文件中的完整的数据库,体积只有250KB但支持数据库大小至2TB,提供了对事务功能和并发处理的支持,而且比目前流行的大多数数据库运行速度快。7.2.3应用框架层提供在应用框架,Android开发人员可以跟那些核心应用一样拥有访问框架APIs的全部权限。应用的结构化设计简化了各组件之间的重用,任何应用都可以分发自己的组件,任何应用也可以使用这些分发的组件(应用的使用方法需遵循框架的安全性约束)。7.2.4应用程序层Android本身会附带一些核心的应用程序,包括E-mail客户端、短信程序、日历、地图、浏览器、通信录等,目前所有的应用程序都是由Java语言开发的。7.3Android应用程序的开发智能家居智能终端应用程序主要功能模块框架如下图所示:图7-2应用程序功能框架图 手持终端要与网关进行通信,如果附近有热点,可以使用Wi-Fi或者直接通过移动蜂窝网接入网关,终端和网关间的通信是基于TCP协议。基于Android开发的程序主要包括用户界面开发和网络功能开发两个部分。界面的开发使用Android提供的各种API,可以得到精致的界面。而网络方面的开发则要用到Java支持Sochet通信功能的API和文件读写的API。7.3.1界面设计当用户拥有智能家居远程控制系统中的相关硬件,如环境模块、房间控制器、设备模块等,各模块上标示有唯一的ID,用户可以根据ID进行注册,注册成功后便可以登录此系统对相关设备进行控制。若用户已经注册,则可以直接登录认证,登录系统认证的大致流程图7-3所示。图7-3登陆系统认证流程若用户登录成功,则系统直接跳转到系统主界面;系统的主界面如图7-4所示。若用户名或密码错误,则弹出错误提示框。图7-4系统主界面7.3.2基于Android的应用软件设计在网络编程方面,Android提供了非常好的支持。针对TCP传输,Android提供Socket类和ServerSocket类。手机侧建立只需建立Socket客户端,套接字Socket类的基本结构如图7-5所示。 SocketSocketbind()close()connect()getInputStream()getInetAddress()getOutputStream()图7-5Socket类的结构第8章系统测试8.1手机APP测试图8-1主用户界面测试结果:点触以上功能均通过。8.2网关测试测试结果:点击以上按钮测试均通过。8.3智能家居环境的测试系统中的软硬件资1.Zigbee系统中的软硬件资1.Zigbee节点2.温度传感器、感器等多种传感器3.测试用手机,庭网关中的软件/基服务器端的Web程及其功能底板光敏传感器、烟感及有害气体传设备,警报器等执行设备。平板电脑系统中的软件包括:家于Android的移动终端上的软件,序中的硬件展示,包括有ZigBee无线节点、无线智能报警系统、短信发送模块、烟雾传感器和摄像头等。图8-3智能家居环境8.4家庭安防系统的测试家庭安防系统包括无线报警系统、短信发送模块、摄像头及远程终端测试程序。当用户外出后,家庭安防系统开始工作。如果遇到门窗被打开,或者发现烟雾浓度过高,当这些信息被传给网关后,网关会触发一系列的活动,如短信通知、发出鸣叫等。展示了这样一个当主人外出,家居安防系统启动,遇到大门被打开时的情形。这时网关收到这一信号,判断有人闯入。此时,一方面网关通过打电话通知主人。8.5家庭环境控制系统系统中家居环境控制实现了传统家居设备操作,系统屏敝了不同操作设备之间的差异,使用同一种操作方式控制各种各样的家居。在实现这一功能的基础上,系统还实现了一定程序的自主控制。自主控制的含义是家居网关可以设置用户习惯,即一系列动作执行列表。网关会根据时间,环境参数等因素,自主的执行这些行为。另一方面会在远程终端打开监视程序。家居系统操作繁多的设备每一种设备都有独立的操作方法,每一种操作都有一种操作器。然而通过ZigBee技术把这些所有的操作都归并为统一的操作模式,方便家居用户的操作。第9章系统特色智能家居系统的主要功能包括通信,设备自动控制,安全防范等方面。采用的器件前提都是以低成本,低功耗,稳定性好的特性。以下分别介绍我们此次设计的特色。9.1语音识别声音控制特色我们所设计的系统的特点之一是语音控制,我们可以通过声音控制实现照明开关、窗帘开关、智能洗浴注水开关、厨房炊具开关、门禁解除、烟雾报警解除、盗警报警解除功能。语音声控功能为我们提供了极大的便利,让我们在家中随时通过语音指令控制家用电器。9.2手机远程控制特色手机远程控制也是本设计的一大特点实现了当主人在外面时可以手机发指令控制家里的节点,即使出门在外也可以控制家里的家用电器,手机登录Internet网,通过简单易懂的安卓手机界面,轻轻一点既可以实现智能洗浴注水开关、厨房炊具开关、门禁解除、烟雾报警解除、盗警报警解除等功能,让世界的距离缩短,使家里的一切无时无刻不在我们的掌控之中。9.3遥控器近程控制特色本设计采用微型无线遥控发射、接收器件制作的无线遥控器,具有电路简单、容易制作、调试方便等特点,可用于脉冲触发电路或控制短时间工作的电器设备,遥控的特色是简单易操作,在家中短距离控制可以直接用遥控控制。9.4手机远程视频监测特色远程视频智能监测系统很好的利用了将摄像头连接至路由器,同时摄像头是安装在35步进电机上的,通过手机控制电机转动的角度就可以全方位的观察家里发生的情况。9.5紧急呼叫主人手机报警特色手机呼叫报警也是此次设计的一大特色,此次设计用了一个GPRS模块作为家居系统重要的一部分,当家里发生盗警、火警等紧急事件时,可以及时向主人发出报警信号。结论经过两个多月的努力,我们终于完成了此次作品—基于嵌入式Linux和ZigBee技术的智能家居系统的设计。该作品完成了。在整个设计阶段,我们也遇到了很多问题,例如:在Android系统方面,我们以前并没有接触过Android系统的开发,因此在代码方面存在一定问题;在Linux嵌入式方面,我们存在对代码的编写不熟练等问题但是在老师的帮助下,经过我们不断的改进,最终我们一一克服了这些问题,到大赛前一个星期基本完成了整个设计过程。在整个设计阶段令我感触最深的莫过于我们小组的凝聚力,我们三位同学相互之间交流自己的想法,互相指正错误,互相学习,我自豪的认为我们小组是最团结的一个团队。在剩下的几天时间里我们还会继续努力,继续改进我们的设计,使我们的设计更加完美。最后感谢指导老师的悉心指导,还要感谢这次大赛的主办方微分电子公司,感谢你们给了我们年轻的大学生发挥才能的平台!参考文献:[1]微分电子MS-i208-BOX实验箱使用手册微分电子有限公司[2]微分电子系列培训资料微分电子有限公司[3]无线通信开发技术与实践青岛东合信息技术有限公司[4]模拟电子线路童诗白、华成英主编[5]51单片机原理及应用陈海宴主编[6]Zigbee开发技术与设计青岛东合信息技术有限公司[7]百度百科.ZigBee技术./view/3085090.htm附部分程序清单://P0.7为光照度采样(板子已自动接好)//--报警检测开启遥控器接的1、2接头接P1.6P1.7(遥控器3、4接头接P0.0P0.1)//遥控器A、B键为报警检测开启与关闭,C键为由手动转自动,D键为手动控制灯的亮、灭//P0.345接红外感应探头//P0.6接零点检测电路信号//P0.0P0.1接遥控器3、4头//P1.3接灯泡控制电路的输入端//P1.6P1.7接遥控器1、2头#include"ioCC2530.h"//定义控制LED灯的端口#defineLED1P1_0//LED1为P1.0口#defineLED2P1_1#defineLED3P1_2#defineLED4P1_3charmenjb=0;//门禁标志charbaojb=0;//报警标志charzidong=0;//手动自动标志0为自动,1为手动staticunsignedcharbuf[128];staticunsignedcharlen=0;unsignedcharerr=0,ok=0,zc=0;//zc主从标志unsignedcharzhiling=0;//是否有指令unsignedcharmac[6]={0,0x12,0x81};unsignedcharbenji[]={10,1,2,4,0x13,0x07,0x08,0x0e,0x0f,98,99};//本机指令集,此机为照明,第一个为本机的指令个数//0x01门禁开启由下面的ma[]表述遥控器同时控制门禁模块及照明模块手机指令门禁与照明都响应但只由门禁应答//0x02门禁解除//0x03盗警报警启动由照明模块通知门禁模块 //0x13盗警报警解除遥控器直接解除门禁与照明两模块的警情(门禁与照明不需要通讯);手机解除门禁与照明时,只由门禁应答//0x11烟雾报警启动由烟雾模块通知门禁模块 //0x12烟雾报警解除经遥控器或手机解除,由门禁模块通知烟雾模块 //0x04解除报警,关闭报警器手机操作,功能类似门禁解除,但不解除“门锁”//0x05电饭煲开启手机控制开启 \关闭//0x06电饭煲关闭//0x07照明手动开、闭,开、关两种状态转换;并进入手动模式//0x08照明自动//0x0e照明模块启动报警检测门禁开启时(相当于门禁) 由遥控器直接控制(不经门禁模块转发)或手机控制//0x0f照明模块取消报警检测门禁关闭时 //0x09浴缸洗浴开启手机控制开启 \关闭//0x0a浴缸洗浴关闭//0x0b窗帘手动打开,进入手动状态遥控器直接控制 //0x0c窗帘手动关闭,进入手动状态//0x0d窗帘自动//0x10窗帘停止(停转)停在中间某地,为手动状态//99所有节点工作开启//98所有节点工作禁止(停止)unsignedcharma[]={0,1,2,3,4,5,6,7,8,9,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,98,99};voidtx();voidfasong();voidchu_init();//串口用到的unsignedcharRecdata[16]="000";charRTflag=0;unsignedchartemp=0;chardatanumber=0;//以下为室内自动照明用到的#defineuintunsignedint#defineucharunsignedchar#defineled1P1_0#defineled2P1_1#defineled3P1_2#defineled4P1_3intinout=0;intcount=0;intnum=2750;intru=0,chu=0,churu=0;//进入室内、出去;intyx=0;//有效,出入计数有效(防止手臂摆动等多次计数)intii=0;intjs=0;unsignedcharsend_buf[2];unsignedcharlight=17;voidgetGuangM(void){P0DIR&=0x7f;ADCIF=0;//清EOC标志ADCH&=0X00;//P0.7做ad口APCFG|=0X80;//单次转换,参考电压为电源电压,对P07进行采样ADCCON3=0xb7;//等待转化是否完成while(!(ADCCON1&0x80));//送数据的第5个字节AD转换的高位send_buf[0]=ADCH;//送数据的第6个字节AD转换的低位send_buf[1]=ADCL;}//io--P0及外部中断初始化voidio_init(void){//P0中断标志清0//P0IFG|=0x00;P0IFG=0x00;P0DIR&=~0x30;//将P0.4P0.5设置为输入//P0.4有上拉、下拉能力P0INP&=~0x30;//P0.4和P0.5中断使能P0IEN|=0x30;//P0.4和P0.5,改为上升沿触发下降沿触发PICTL&=~0x01;//开中断EA=1;//端口P0中断使能IEN1|=0X20;P0DIR&=~0x40;//将P0.6设置为输入PICTL&=~0x01;//P0.6设置为上升沿触发P0IEN|=0x40;//P0.6中断使能P0DIR&=~0x08;//将P0.3设置为输入PICTL&=~0x01;//P0.3设置为上升沿触发(实际是整个P0口都设置为上升触发)P0IEN|=0x08;//P0.3中断使能P0DIR&=~0x01;//将P0.0设置为输入PICTL&=~0x01;//P0.0设置为上升沿触发(实际是整个P0口都设置为上升触发)P0IEN|=0x01;//P0.0中断使能P0DIR&=~0x02;//将P0.1设置为输入PICTL&=~0x01;//P0.1设置为上升沿触发(实际是整个P0口都设置为上升触发)P0IEN|=0x02;//P0.1中断使能}//io--P1及外部中断初始化P1.4-7设置为外部中断voidio_P1_init(void){P1SEL&=~0Xf0;//设置P1.4-7为普通IO口P1DIR&=~0Xf0;//在P1.4-7口,设置为输入模式P1INP&=~0xf0;//打开P1.4-7上拉电阻,不影响//设为输入//P1DIR|=0x0f;//P1口低4位设置为输出//P1DIR&=0x0f;//在上面的基础上,高4位设置为输入//P1中断标志清0P1IFG&=0x00;//P1.4--P1.7中断使能P1IEN|=0xf0;//上升沿触发下降沿触发PICTL&=~0x04;//开中断EA=1;//端口P1中断使能IEN2|=0X10;}/****************************延时函数*****************************/voidDelayms(unsignedintxms)//i=xms即延时i毫秒{unsignedinti,j;for(i=xms;i>0;i--)for(j=587;j>0;j--);}voidDelay(unsignedintm)//unsignedcharm{inti=0,j=0;for(i=0;i<1000;i++){for(j=0;j<m;j++);}}//LED灯初始化voidled_init(void){//P1为普通I/O口//P1SEL&=~0x0f;P1SEL=0;//P1.0P1.1P1.2P1.3设置为输出P1DIR|=0x0F;//关闭LED1LED1=1;//关闭LED2LED2=1;//关闭LED3LED3=1;//关闭LED4LED4=1;}/************************串口初始化*返回参数无***********************/voidinitUARTtest(void){//晶振CLKCONCMD&=~0x40;//等待晶振稳定while(!(SLEEPSTA&0x40));//TICHSPD128分频,CLKSPD不分频CLKCONCMD&=~0x47;//关闭不用的RC振荡器SLEEPCMD|=0x04;//位置1P0口PERCFG=0x00;//P0用作串口P0SEL=0x3c;//UART方式U0CSR|=0x80;//baud_eU0GCR|=10;//波特率设为57600U0BAUD|=216;//UTX0IF=1;UTX0IF=0;//UART0TX中断标志初始置位0//允许接收U0CSR|=0X40;//开总中断,接收中断IEN0|=0x84;}/*****************************************************************函数功能:串口接收一个字符*入口参数:无*返回值:无*说明:接收完成后打开接收****************************************************************///串口中断,串口接收一个字符#pragmavector=URX0_VECTOR__interruptvoidUART0_ISR(void){//清中断标志URX1IF=0;temp=U0DBUF;Recdata[0]=temp;}/*************************************************///向串口发送数据voidUartTX_Send_String(unsignedchar*Data,intlen){intj;for(j=0;j<len;j++){U0DBUF=*Data++;while(UTX0IF==0);UTX0IF=0;}}voidrf_init(){//硬件CRC以及AUTO_ACK使能FRMCTRL0|=(0x20|0x40);/*AUTO_ACK|AUTO_CRC*///设置TX抗混叠过滤器以获得合适的带宽TXFILTCFG=0x09;//调整AGC目标值AGCCTRL1=0x15;//获得最佳的EVMFSCAL1=0x00;//RXPKTDONE中断位使能RFIRQM0|=(1<<6);//RF中断使能IEN2|=(1<<0);//开中断EA=1;//信道选择,选择11信道FREQCTRL=0x0d;//目标地址过滤期间使用的短地址SHORT_ADDR0=0x05;SHORT_ADDR1=0x00;//目标地址过滤期间使用的PANIDPAN_ID0=0x22;PAN_ID1=0x00;//清除RXFIFO缓冲区并复位解调器RFST=0xed;//为RX使能并校准频率合成器RFST=0xe3;//禁止帧过滤FRMFILT0&=~(1<<0);}#pragmavector=RF_VECTOR__interruptvoidrf_isr(void){unsignedchari;//关中断EA=0;//接收帧结束if(RFIRQF0&(1<<6)){//接收帧长度len=RFD;len&=0x7f;//将接收的数据写入buf中for(i=0;i<len;i++){buf[i]=RFD;Delay(200);}//清RF中断S1CON=0;//清RXPKTDONE中断RFIRQF0&=~(1<<6);//LED2等状态改变LED2=~LED2;//UartTX_Send_String(buf,len-3);//Uart0SendString(buf);}//Delay(200);EA=1;if((buf[0]+buf[1]+buf[2]==buf[3])&&(buf[1]==mac[1]&&buf[2]==mac[2]))//如果校验正确且密钥对{if(zc==1)//主从,若自己为主叫if(buf[0]==0)ok=1;if(zc==0)//从机{for(i=1;i<=benji[0];i++)if(buf[0]==benji[i])//如果是属于本机的指令{zhiling=buf[0];//指令置为相应的指令,并发送ok应答0代表OK//if(zhiling==0x0e)LED3=0;mac[0]=0;mac[3]=mac[0]+mac[1]+mac[2];//if(buf[0]!=98&&buf[0]!=99)tx();//本机模块各指令都不需要应答}}}}voidtx(){unsignedchari;//unsignedcharmac[]="dh";//unsignedcharmac[]="DH";//为RX使能并校准频率合成器RFST=0xe3;//waitforSFDnotactiveandTX_Activenotactive//TX_ACTIVE|SFDwhile(FSMSTAT1&((1<<1)|(1<<5)));//禁止RXPKTDONE中断RFIRQM0&=~(1<<6);//禁止RF中断IEN2&=~(1<<0);//ISFLUSHTXRFST=0xee;//清除TXDONE中断RFIRQF1=~(1<<1);//传输的帧长度RFD=7;//将mac的内容写到RFD中for(i=0;i<5;i++){RFD=mac[i];}//打开RX中断RFIRQM0|=(1<<6);//打开RF中断IEN2|=(1<<0);//ISTXONRFST=0xe9;//等待传输结束while(!(RFIRQF1&(1<<1)));//清除TXDONE状态RFIRQF1=~(1<<1

温馨提示

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

评论

0/150

提交评论