




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计论文本科毕业设计论文题 目 基于ARM Cortex-A8与 Android平台的智能家居系统设计专业名称 电子科学与技术 _学生姓名_ _ _ _指导教师_ _毕业时间_ 2015年7月_ _摘 要随着物质生活水平的逐步提高,科学技术的不断发展,人们对生活质量的要求也越来越高。物联网技术的飞速发展,智能家居应运而生。智能家居通过物联网技术将家中的各种设备连接到一起,提供家电控制、照明控制、窗帘控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。本文针对智能家居国内发展现状,提出了基于市面上流行的高端处理器ARM CORTEX-A8内核的OMAP3530和Android平台的智能家居系统设计方案。该系统由Android用户控制模块、智能网关模块以及zigbee节点控制模块组成。本系统采用ARM搭建嵌入式网关平台、并带有良好用户操作界面,同时采用 zigbee技术组建家庭无线网络,用户可以远程与家居设备交互。系统硬件部分介绍了各个外设,软件部分由智能网关程序设计、Android 用户控制程序设计以及zigbee节点控制程序设计三部分组成。经试验测试表明,本文设计的系统能很好地满足需求,能够实现对家居设备的系统化、网络化、智能化控制,对智能家居发展具有积极的影响。关键词:智能家居系统,Cortex-A8,ZigBee,Android ABSTRACTWith the gradual improvement of living standards,and the development of science and technology, peoples quality of life are increasingly high requirements. The rapid development of Internet of Things technology, intelligent home came into being. Smart home through home networking technology to connect various devices together, provide appliance control, lighting control, curtain control, telephone remote control, indoor and outdoor remote control, anti-theft alarm, environmental monitoring, HVAC control, infrared repeater and a programmable timer control and other functions and tools.This paper,aiming the current development of domestic smart home, proposed smart home system design based on the popularity of high-end processor core ARM CORTEX-A8 OMAP3530 and Android platforms. The system consists of Android user control module, intelligent gateway module and zigbee node control module. The system uses the ARM embedded gateway platform to build, and with a good user interface, while using zigbee technology to build a home wireless network, users can remotely interact with the home device. System Hardware section describes each peripherals, software part of the design by an intelligent gateway program, Android users to control programming and Zigbee node control programming of three parts. The test tests show that this design system can satisfy the demands of home devices to achieve systematic, network, intelligent control, with a positive impact on the development of the smart home.KEY WORDS:Smart Home System,Cortex-A8,ZigBee,Android目 录第一章 绪论61.1选题背景及意义61.2智能家居研究现状61.2.1智能家居的起源61.2.2智能家居在国外的发展61.2.3智能家居在国内的发展61.3智能家居发展趋势71.4论文主要研究内容及章节安排8第二章 相关基础知识92.1 Android操作系统92.1.1Android的由来92.1.2 Android的系统架构892.1.3系统移植主要工作8102.2 ZIGBEE技术112.2.1 Zigbee网络配置112.2.2ZigBee网络的拓扑结构122.2.3 ZigBee组网技术122.3 ZStack协议栈介绍132.3.1 ZStack的安装132.3.2 ZStack的结构132.3.3 设备的选择142.3.4 定位编译选项142.3.5 IAR 工程文件中的编译选项142.3.6 ZStack 中的寻址152.3.7 ZStack 中的路由162.3.8 ZStack 中的串口通信设置162.3.9配置信道162.4 CC2530芯片简介18第三章 系统硬件设计203.1嵌入式终端设备203.2 Cortex处理器213.2.1 Cortex系列213.2.2 ARM Cortex-A8213.3 传感器节点23第四章 系统软件设计254.1系统总体框架设计254.2 智能网关程序设计15-16254.3 Android 用户控制程序设计264.3.1 Android 用户控制程序框架17264.3.2 Android 用户控制程序编译与安装18-19294.4 Zigbee 节点控制程序设计324.5平台控制操作334.5.1启动程序334.5.2 搜索网络344.5.3 传感器节点操作34第五章 总结与展望365.1 总结365.2展望36参考文献37致 谢38毕业设计小结39附 录40v第一章 绪论1.1选题背景及意义 随着科学技术的不断发展,人们对生活质量有了更高的要求。人们希望有一个高效、舒适、安全、便利、环保的居住环境。实现对家居设备的系统化、网络化、智能化控制,已经成为家居环境未来的发展方向,智能家居应运而生。 智能家居是在物联网的影响之下物联化的体现。智能家居通过物联网技术将家中的各种设备(如音频设备、照明设备、窗帘设备、空调设备、安防系统、数字影院系统、网络家电以及三表抄送等)连接到一起,提供家电控制、照明控制、窗帘控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段1-2。与普通家居相比,智能家居不仅具有传统的居住功能,兼并建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境,提供全方位的信息交互功能,帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用节约资金。1.2智能家居研究现状1.2.1智能家居的起源 智能家居概念的起源比较早,1984年美国联合科技公司(United Techno1ogies Building System)将建筑设备信息化、整合化概念应用于美国康乃迪克州(Conneticut)哈特佛市(Hartford)的City Place Building时,第一栋“智能型建筑”出现了,从此揭开了全世界争相建造智能家居的序幕。1.2.2智能家居在国外的发展 智能家居在国外的发展一直处于领先地位,先后在美国、韩国、新加坡、日本、欧洲等国家和地区都有广泛的应用。如微软公司开发的“梦幻之家”、IBM开发的“家庭主任、Motorola开发的“居所之门”,韩国三星公司推出的“Smart Home”软件控制平台,新加坡推出的“智慧国2015”规划,日本的“i-Japan”战略。据统计,在2000年,国际智能家居市场销售总额达到24亿美元。2004年已经达到200亿美元3-4。显然,智能家居在国外巳经发展为一个非常普及的行业。1.2.3智能家居在国内的发展 智能家居在国内的起步较晚,现阶段还是一个新兴行业,但发展迅猛。我国的智能小区在20世纪90年代末逐渐兴起,最早出现于东南沿海城市,如上海、广州和深圳等地,其它二三线城市也在逐步建立。在2001年深圳高交会上,海尔、海信、科龙、清华同方等一些国内企业推出智能家居概念产品。在2014美国国际电子消费展(CES)上,国内家电巨头纷纷推出自家新品,四川长虹、青岛海尔、创维、TCL等厂商的产品均在向智能家居紧贴。四川长虹展出了基于家庭互联网战略的智能电视、智能空调、智能冰箱,以及手机、小家电、厨卫等产品,实现智能化互联互通互控,形成一个整体家庭互联网生活解决方案5。海尔在CES展上亦推出成套智能家庭系统,其可通过红外线连接各种传统电器的Smart Center,用户可根据自己实际需要DIY智能家居系统6。 智能家居在发展过程中还存在不少问题,主要包括有线和无线的选择、操作系统选择方面、功耗方面。首先,传统的智能家居系统多需要各种综合布线,不但成本高,还影响美观,且可维护性差。其次,传统的智能家居系统在用户体验上很差,有些用户操作都是各厂家自己定义的QT界面,用户不熟悉,有些模式启动还得一个一个的设定,没有实现一键式的方便用户的操作,尤其对于老人和小孩不容易马上学会操作。最后,现代社会都是提倡节能环保,智能家居方面,还需重点考虑如何使得该系统节能环保的问题。 智能家居系统是为了让人们获得一个高效、舒适、安全、便利、环保的居住环境,也奠定了智能家居系统在实际生活中的应用优势,使其成为一个有潜力、有意义的研究领域。1.3智能家居发展趋势 随着物联网技术的发展,智能家居也将具有蓬勃的生机,未来的智能家居产品将有以下发展: (1)无线通信 无线技术的应用,将有效克服传统智能家居复杂的布线难题,减少成本,缩短制造时间,便于对智能家居系统的升级。未来的智能家居系统将广泛应用无线通信技术。 (2)协议标准化、接口模块化 标准的协议以及接口模块化将有利于各个企业之间的技术交流,又能提高各种产品的兼容性。 (3)智能微型化 更加微型化、智能化也将是智能家居系统的发展方向。便携式的系统以及更加智能使得系统便于控制,将给用户带来更加方便快捷的体验。 (4)云计算、云服务 智能家居系统将更多地运用云计算、云服务等技术。云计算提供了最可靠、最安全的数据存储中心,用户数据将更加安全,不用再担心数据丢失、病毒入侵等麻烦。而且它对用户端的设备要求最低,使用起来很方便。 (5)低碳环保化 随着可持续发展、低碳、环保等观念的深入人心,智能家居系统也将更多考虑低能量、低功耗的因素,设计资源节约型、环境友好型的智能家居系统将是未来的发展方向。1.4论文主要研究内容及章节安排 本文针对智能家居国内发展现状,提出了基于市面上流行的高端处理器ARM CORTEX-A8内核的OMAP3530和Android平台的智能家居系统设计方案。该系统由Android用户控制模块、智能网关模块以及zigbee节点控制模块组成。本系统采用ARM搭建嵌入式网关平台、并带有良好用户操作界面,同时采用 zigbee技术组建家庭无线网络,用户可以远程与家居设备交互。 本文研究内容如下: 第一章:绪论。概述智能家居的发展,揭示本课题的研究意义,了解智能家居在国内外的研究现状以及未来的发展趋势。 第二章:相关基础知识。详细介绍Android、zigbee及ZStack协议栈等知识,对CC2530芯片做详尽介绍。 第三章:系统硬件设计。介绍系统的硬件组成,Cortex-A8处理器的特点以及传感器节点。 第四章:系统软件设计。详细介绍系统软件部分,对智能网关程序设计、Android 用户控制程序设计以及Zigbee节点控制程序设计三部分的原理,程序等做详细介绍。 第五章:总结与展望第二章 相关基础知识2.1 Android操作系统2.1.1Android的由来 Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。早期由原名为Android的公司开发,谷歌在2005年收购Android.Inc后,继续进行对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的手机G1由HTC生产代工)美国摩托罗拉、SE等,另外还有中国大陆厂商如:华为、中兴、联想等 7 。2.1.2 Android的系统架构(1) 应用程序 Android以Java为编程语言,从接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MID let,一个Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由Service Connection和AIDL连结,达到复数程序同时运行的效果。如果运行中的Activity 全部画面被其他Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。View等同于J2ME的Displayable,程序人员可以通过View 类与“XML layout”将UI放置在视窗上,Android 1.5的版本可以利用View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用XML来设计layout,HTC的Android Hero手机即含有大量的widget。至于View Group是各种layout 的基础抽象类(abstract class),View Group之内还可以有View Group。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity中,要通过find View By Id()来从XML中取得View,Android的View类的显示很大程度上是从XML中读取的。View与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View. On Click Listener。(2)中介软件操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。Bionic是Android改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。 Android采用Open CORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。 Android使用skia为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo,skia功能还只是雏形的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia也是Google Chrome 的图形引擎。 Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。 Android的中间层多以Java实现,并且采用特殊的Dalvik虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。 (3)硬件抽像层 Android 的HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把Android framework与Linux kernel隔开,让Android不至过度依赖Linux kernel,以达成kernel independent的概念,也让Android framework 的开发能在不考量驱动程序实现的前提下进行发展。 HAL stub是一种代理人(proxy)的概念,stub是以*.so档的形式存在。Stub 向 HAL“提供”操作函数(operations),并由Android runtime向 HAL 取得 stub 的operations,再callback这些操作函数。HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即module ID,就可以取得操作函数。 2.1.3系统移植主要工作 Android系统的移植工作的目的是为了在特定的硬件上运行Android系统。在移植的过程中,把握关键要点,减少工作量是一个重要的方面。从工作的角度,通常的方法为,首先要熟悉硬件抽象层的接口,其次要集成和复用已有的驱动程序,主要的工作量在硬件抽象层的实现中。为了更好地理解和调试系统,也应该适当地了解上层对硬件抽象层的调用情况。 图2.1:Android系统架构移植方面主要的工作有两个部分: l Linux驱动 l Android系统硬件抽象层 Linux中的驱动工作在内核空间,Android系统硬件抽象层工作在用户空间,有了这两个部分的结合,就可以让庞大的Android系统运行在特定的硬件平台上。 2.2 ZIGBEE技术2.2.1 Zigbee网络配置 低数据速率的WPAN中包括两种无线设备:全功能设备(FFD)和精简功能设备(RFD)。其中,FFD可以和FFD、RFD通信,而RFD只能和FFD通信,RFD之间是无法通信的。RFD的应用相对简单,例如在传感器网络中,它们只负责将采集的数据信息发送给它的协调点,并不具备数据转发、路由发现和路由维护等功能。RFD占用资源少,需要的存储容量也小,成本比较低。 在一个ZigBee网络中,至少存在一个FFD充当整个网络的协调器,即PAN协调器,ZigBee中也称作ZigBee协调器。一个ZigBee网络只有一个PAN协调器。通常,PAN协调器是一个特殊的FFD,它具有较强大的功能,是整个网络的主要控制者,它负责建立新的网络、发送网络信标、管理网络中的节点以及存储网络信息等。FFD和RFD都可以作为终端节点加入ZigBee网络。此外,普通FFD也可以在它的个人操作空间(POS)中充当协调器(路由),但它仍然受PAN协调点的控制。ZigBee中每个协调点最多可连接255个节点,一个ZigBee网络最多可容纳65535个节点。2.2.2ZigBee网络的拓扑结构ZigBee网络的拓扑结构主要有三种,星型网、网状(mesh)网和混合网。(1) 星型网 星型网是由一个PAN协调点和一个或多个终端节点组成的。PAN协调点必须是FFD,它负责发起建立和管理整个网络,其它的节点(终端节点)一般为RFD,分布在PAN协调点的覆盖范围内,直接与PAN协调进行通信。星型网通常用于节点数量较少的场合。(2)Mesh网 Mesh网一般是由若干个FFD连接在一起形成,它们之间是完全的对等通信,每个节点都可以与它的无线通信范围内的其它节点通信。Mesh网中,一般将发起建立网络的FFD节点作为PAN协调点。Mesh网是一种高可靠性网络,具有“自恢复”能力,它可为传输的数据包提供多条路径,一旦一条路径出现故障,则存在另一条或多条路径可供选择。Mesh网可以通过FFD扩展网络,组成Mesh网与星型网构成的混合网。(3)混合网 混合网中,终端节点采集的信息首先传到同一子网内的协调点,再通过网关节点上传到上一层网络的PAN协调点。混合网都适用于范围较大的网络。2.2.3 ZigBee组网技术 ZigBee中,只有PAN协调点可以建立一个新的ZigBee网络。当ZigBee PAN协调点希望建立一个新网络时,首先扫描信道,寻找网络中的一个空闲信道来建立新的网络。如果找到了合适的信道,ZigBee协调点会为新网络选择一个PAN标识符(PAN标识符是用来标识整个网络的,因此所选的PAN标识符必须在信道中是唯一的)。一旦选定了PAN标识符,就说明已经建立了网络,此后,如果另一个ZigBee协调点扫描该信道,这个网络的协调点就会响应并声明它的存在。另外,这个ZigBee协调点还会为自己选择一个16bit网络地址。ZigBee网络中的所有节点都有一个64bit IEEE扩展地址和一个16bit网络地址,其中,16bit的网络地址在整个网络中是唯一的,也就是802.15.4中的MAC短地址。 ZigBee协调点选定了网络地址后,就开始接受新的节点加入其网络。当一个节点希望加入该网络时,它首先会通过信道扫描来搜索它周围存在的网络,如果找到了一个网络,它就会进行关联过程加入网络,只有具备路由功能的节点可以允许别的节点通过它关联网络。如果网络中的一个节点与网络失去联系后想要重新加入网络,它可以进行孤立通知过程重新加入网络。网络中每个具备路由器功能的节点都维护一个路由表和一个路由发现表,它可以参与数据包的转发、路由发现和路由维护,以及关联其它节点来扩展网络8-11。2.3 ZStack协议栈介绍2.3.1 ZStack 的安装 Z-Stack 协议栈由TI 公司出品,符合最新的Zigbee2007 规范。它支持多平台,其中就包括CC2530芯片,ZStack 的安装包为ZStack-CC2530-2.4.0-1.4.0.exe,双击之后直接安装,安装完后生成C:Texas InstrumentsZStack-CC2530-2.4.0-1.4.0 文件夹,文件夹内包括协议栈中各层部分源程序,Documents 文件夹内包含一些与协议栈相关的帮助和学习文档,Projects 包含与工程相关的库文件、配置文件等,其中基于ZStack的工程应放在 Texas InstrumentsZStack-CC2530-2.4.0-1.4.0ProjectszstackSamples 文件夹下。2.3.2 ZStack 的结构 ZStack 的层次结构如下图2.2所示图2.2 ZStack 层次结构 从层次的名字就能知道代表的含义,比如NWK层就是网络层。一般应用中较多关注的 是HAL层(硬件抽象层)和App 层(用户应用),前者要针对具体的硬件进行修改,后者 要添加具体的应用程序。而OSAL 层是ZStack 特有的系统层,相当于一个简单的操作系统, 便于对各层次任务的管理,理解它的工作原理对开发是很重要的,下面对各层进行简要介绍APP (Application Programming):应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的 任务实现的。 HAL(Hardware (H/W) Abstraction Layer):硬件层目录,包含有与硬件相关的配置和驱动及操作函数。 MAC:MAC 层目录,包含了MAC层的参数配置文件及其MAC的LIB库的函数接口文件。 MT(Monitor Test):实现通过串口可控各层,与各层进行直接交互。 NWK(ZigBee Network Layer):网络层目录,含网络层配置参数文件及网络层库的函数接口文件。 OSAL(Operating System (OS) Abstraction Layer):协议栈的操作系统。 Profile:AF(Application work)层目录,包含AF层处理函数文件。 Security:安全层目录,安全层处理函数,比如加密函数等。 Services:地址处理函数目录,包括着地址模式的定义及地址处理函数。 Tools:工程配置目录,包括空间划分及ZStack 相关配置信息。 ZDO(ZigBee Device Objects):ZDO 目录。 ZMac:MAC 层目录,包括MAC层参数配置及MAC层LIB 库函数回调处理函数。 ZMain:主函数目录,包括入口函数及硬件配置文件。 Output:输出文件目录,这EW8051 IDE自动生成的。2.3.3 设备的选择 双击一个工程的work space可以打开一个工程,打开工程后,从work space 下面的下拉列表中选择设备类型,可以选择设备类型为协调器,路由器或终端节点。当选择设备类型为协调器或路由节点时,编译连接命令文件应选择 TexasInstrumentsZStack-1.4.3-1.2.1 ProjectszstackToolsCC2430DB 目录下的f8w2430.xcl文件,若选择设备类型为终端节点,编译连接命 令文件应选择f8w2430pm.xcl文件。2.3.4 定位编译选项 对于一个特定的工程,编译选项存在于两个地方,一些很少需要改动的编译选项存在于连接控制文件中,每一种设备类型对应一种连接控制文件,当选择了相应的设备类型后,会自动选择相应的配置文件,如选择了设备类型为协调器,则工程会自动选择f8wCoord.cfg配置文件,选择了设备类型为路由器后f8wRouter.cfg配置文件被自动选择,选择了设备类型为终端节点后f8wEndev.cfg配置文件被自动选择。通常情况下,这些文件很少需要改动。用户定义的选项和一些用来使能/禁用某些功能的选项存在于IAR 的工程文件中。2.3.5 IAR 工程文件中的编译选项 在IAR 工程中选择Project/Options/C/C+ Complier中的Processor 标签,如下图2.3所示:图2.3 IAR 编译选项 若想在这个配置中增加一个编译选项,只需将相应的编译选项添加到列表框中,若禁用一个编译选项,只需在相应编译选项的前面增加一个x。很多编译选项都作为开关量使用,来选择源程序中的特定程序段,也可定义数字量,也可添加DEFAULT_CHANLIST,即相应数值来覆盖默认设置(DEFAULT_CHANLIST在 Tools目录下的f8wConfig.cfg 文件中配置,默认选择信道11。ZStack协议栈支持大量的编译选项。2.3.6 ZStack 中的寻址 ZStack中定义了两种地址,64 位的扩展地址(IEEE 地址)和16 位网络短地址。扩展地址是全球唯一的,就像网卡地址,可由厂家设置或者用户写进芯片。网络短地址是加入Zigbee网时,由协调器分配,在特定的网络中是唯一的,但是不一定每次都是一样,只是和其他同网设备相区别。ZStack符合ZigBee 的分布式寻址方案来分配网络地址。这个方案保证在整个网络中所有分配的地址是唯一的。这一点是必须的,因为这样才能保证一个特定的数据包能够发给它指定的设备,而不出现混乱。同时,这个寻址算法本身的分布特性可保证设备只能与他的父辈设备通讯,并接受一个网络地址,不需要整个网络范围内通讯的地址分配。这有助于由三个参数MAX_DEPTH、MAX_ROUTERS和MAX_CHILDREN决定网络的地址分配,这也是profile的一部分。MAX_DEPTH代表网络最大深度,协调器为0 级深度,它决定了物理上网络的长度;MAX_CHILDREN决定了一个协调器或路由器能拥有几个子节点;MAX_ROUTERS决定了一个协调器或路由器能拥有几个路由功能的节点,它是MAX_CHILDREN的子集。虽然不同的profile 有规定的参数值,但用户针对自己的应用可以修改这些参数,但要保证这些参数新的赋值要合法。即,整个地址空间不能超过216,这就限制了参数能够设置的最大值。当选择了合法的数据后,开发人员还要保证不再使用标准的栈配置,取而代之的是网络自定义栈配置。2.3.7 ZStack 中的路由 路由对应用层是透明的,应用层只需要知道地址而不在乎路由的过程。Z-Stack 的路由实现了Zigbee网络的自愈机制,一条路由损坏了,可以自动寻找新的路由。 无线自组织网络(Ad-hoc)中有很多著名的路由技术,其中AODV是很常用的一种,AODV是按需路由协议。Z-Stack简化了AODV,使之适应于无线传感器网络的特点,能在有移动节点、链路失效和丢包的环境下工作。当路由器从应用层或其他设备收到单播的包时,网络层根据下列步骤转发:如果目的地是自己的邻居,就直接传送过去。否则,该路由器检查路由表寻找目的地,如果找到了就发给下一跳,没找到就开始启动路由发现过程,确定了路由之后才发过去。路由发现基本按照AODV的算法进行,请求地址的源设备向邻居广播路由请求包(RREQ),收到RREQ的节点更新链路花费域,继续广播路由请求。这样,直到目的节点收到RREQ,此时的链路花费域可能有几个值,对应不同的路由,选择一条最好的作为路由路径,然后目的设备发送路由应答包(RREP ),反向到源设备,路径上其他设备由此更新自己的路由表。这样一条新的路由就建成了。2.3.8 ZStack 中的串口通信设置 串口通信的目的是协调器把整个网络的信息发给上位机进行可视化和数据存储等处理。同时在开发阶段非常需要有串口功能的支持,以了解调试信息。Z-Stack已经把串口部分的配置简单化了,设置的位置是mt_uart.c的MT_UartInit ()函数。配置方法是给uartConfig这一结构体赋值,它包括了波特率、缓冲区大小,回调函数等参数。需要注意的有几个参数: 波 特 率:赋值为宏MT_UART_DEFAULT_BAUDRATE,进一步跟踪查询可知就是38400 Baud;这决定了和上位机通信的速率。 流 控:默认是打开的,本项目没有使用,改为关闭。 回调函数:在主动控制模块中会用到。2.3.9配置信道 每一个设备都必须有一个DEFAULT_CHANLIST来控制信道集合。对于一个ZigBee 协调起来说,这个表格用来扫描噪音最小的信道。对于终端节点和路由器节点来说,这个列表用来扫描并加入一个存在的网络。(1)配置PAN ID 和要加入的网络 这个可选配置项用来控制ZigBee路由器和终端节点要加入那个网络。文件f8wConfg.cfg 中的ZDO_CONFIG_PAN_ID参数可以设置为一个00x3FFF 之间的一个值。协调器使用这个值,作为它要启动的网络的PANID。而对于路由器节点和终端节点来说只要加入一个已经用这个参数配置了PAN ID的网络。如果要关闭这个功能,只要将这个参数设置为0xFFFF 。要更进一步控制加入过程, 需要修改ZDApp.c 文件中的ZDO_NetworkDiscovery ConfirmCB函数。(2)最大有效载荷大小 对于一个应用程序最大有效载荷的大小基于几个因素。MAC层提供了一个有效载荷长度常数102。NWK层需要一个固定头大小,一个有安全的大小和一个没有安全的大小。APS层必须有一个可变的基于变量设置的头大小,包括ZigBee协议版本,KVP的使用和APS帧控制设置等等。最后,用户不必根据前面的要素来计算最大有效载荷大小。AF模块提供一个API,允许用户查询栈的最大有效载荷或者最大传送单元(MTU) 。用户调用函数afDataReqMTU,该函数将返回MTU 或者最大有效载荷大小。 typedef struct uint8 kvp; APSDE_DataReqMTU_t aps; afDataReqMTU_t; uint8 afDataReqMTU( afDataReqMTU_t* fields ) 通常afDataReqMTU_t结构只需要设置KVP的值,这个值表明KVP是否被使用。(3)非易失性存储器 ZigBee 设备有许多状态信息需要被存储到非易失性存储空间中,这样能够让设备在意外复位或者断电的情况下复原。否则它将无法重新加入网络或者起到有效作用。为了启用这个功能,需要包含NV_RESTORE编译选项。注意,在一个真正的ZigBee网络中,这个选项必须始终启用。关闭这个选项的功能也仅仅是在开发阶段使用。ZDO层负责保存和恢复网络层最重要的信息,包括最基本的网络信息(Network Information Base NIB,管理网络所需要的最基本属性);子节点和父亲节点的列表;包含应用程序绑定表。此外,如果使用了安全功能,还要保存类似于帧个数这样的信息。当一个设备复位后重新启动,这类信息恢复到设备当中。如果设备重新启动,这些信息可以使设备重新恢复到网络当中。在ZDAPP_ Init中,函数NLME_RestoreFromNV() 的调用指示网络层通过保存在NV中的数据重新恢复网络。如果网络所需的NV空间没有建立,这个函数的调用将同时初始化这部分NV空间。NV同样可以用来保存应用程序的特定信息,用户描述符就是一个很好的例子。NV中用户描述符ID项是ZDO_NV_USERDESC(在ZComDef.h中定义)。ZDApp_Init()函数中,调用函数osal_nv_item_init()来初始化用户描述符所需要的NV空间。如果对于NV项,这个函数是第一次调用,这个初始化函数将为用户描述符保留空间,并且将它设置为默认值ZDO_DefaultUserDescriptor。当需要使用保存在NV中的用户描述符时,就像ZDO_ProcessUserDescReq()( 在ZDObject.c中)函数一样,调用osal_nv_read()函数从NV中获取用户描述符。如果要更新NV 中的用户描述符,就像ZDO_ProcessUserDescSet()(在ZDObject.c中)函 数一样,调用osal_nv_write()函数更新NV中的用户描述符。需要注意的是,NV 中的项都是独一无二的。如果应用程序要创建自己的NV项,那么必须从应用值范围0x02010x0FFF中选择ID。2.4 CC2530芯片简介 ZigBee新一代SOC芯片CC2530是真正的片上系统解决方案之一,支持IEEE 802.15.4标准/ZigBee/ZigBee RF4CE和能源的应用。拥有庞大的快闪记忆体多达256个字节,CC2530是理想ZigBee专业应用。支持新Remo TI的ZigBee RF4CE,这是业界首款符合ZigBee RF4CE兼容的协议栈,和更大内存大小将允许芯片无线下载,支持系统编程。此外,CC2530结合了一个完全集成的,高性能的RF收发器与一个8051 微处理器,8 kB的RAM ,32/64/128/256 KB闪存,以及其他强大的支持功能和外设。 CC2530提供了101dB的链路质量,优秀的接收器灵敏度和健壮的抗干扰性,四种供电模式,多种闪存尺寸,以及一套广泛的外设集包括2个USART、12 位ADC和21个通用GPIO,以及更多。除了通过优秀的RF性能、选择性和业界标准增强8051MCU 内核,支持一般的低功耗无线通信,CC2530还可以配备TI一个标准兼容或专有的网络协议栈(RemoTI、Z-Stack或SimpliciTI)来简化开发,使你更快的获得市场。CC2530可以用于的应用包括远程控制、消费型电子、家庭控制、计量和智能能源、楼宇自动化、医疗以及更多领域。其主要特点如下:(1)强大无线前端l 2.4 GHz IEEE 802.15.4 标准射频收发器 。l 出色的接收器灵敏度和抗干扰能力。l 可编程输出功率为4.5 dBm,总体无线连接102dbm。l 极少量的外部元件。l 支持运行网状网系统,只需要一个晶体。l 6 毫米 6 毫米的QFN40 封装 。l 适合系统配置符合世界范围的无线电频率法规:欧洲电信标准协会ETSI EN300 328和EN 300 440 (欧洲),FCC 的CFR47 第15 部分(美国)和ARIB STD-T-66 (日本)。(2)低功耗l 接收模式:24 毫安 。l 发送模式1dBm:29 毫安 。l 功耗模式1(4 微秒唤醒):0.2 毫安 。l 功率模式2(睡眠计时器运行):1 微安 。l 功耗模式3(外部中断):0.4 微安 。l 宽电源电压范围( 2 V3.6V)。(3)微控制器l 高性能和低功耗8051 微控制器内核。l 32 /64 / 128 /或256 /kB 系统可编程闪存。l 8 KB 的内存保持在所有功率模式。l 硬件调试支持。第3章 系统硬件设计 本部分包括嵌入式移动终端设备和无线传感器节点。3.1嵌入式终端设备 本系统嵌入式终端设备部分由核心板和底板两部分组成,其核心板上集成了TI推出的新一代移动应用处理器OMAP3530,是专门为智能手机和笔记本电脑等低功耗便携式应用而设计。OMAP3530在单一的芯片上集成了ARM Cortex-A8内核、TMS320C64x+TMDSP内核、图像引擎、视频加速器以及丰富的多媒体外设,其中Cortex-A8内核拥有超过当今300MHz ARM9器件4倍的处理性能。该处理器有256MB的DDR内存和256MB的NANDFLASH,可广泛用于流媒体、视频会议、高清静态图像、3G多媒体手机、高性能PDA等项目。 所选用系统组成实物如图3.1所示,底板上则由以下外设组成: 一个调试串口、一个扩展串口、一个LCD模块、两个USBHOST接口、一个 USB CLIENT 接口、一个自适应以太网接口、一个触摸屏接口、一个Zigbee协调器接口、一个SD卡插槽、一个RTC和看门狗、一个键盘、摄像头模块、GPS模块、WIFI蓝牙模块、WCDMA模块。扩展区WIFI蓝牙模块接口GPS模块摄像头模块接口系统按键扩展串口电源接口网口SD卡插槽调试串口WCDMA模块3G扩展接口Zigbee协调器接口 方向键及数字键USB接口图3.1 底板实物图3.2 Cortex处理器3.2.1 Cortex系列Cortex系列处理器是基于ARM最新架构ARMv7架构的处理器,按照资源多少分为Cortex-M、Cortex-R和Cortex-A三类。这些新的ARM Cortex处理器系列都是基于最新的ARMv7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CRRA 2301-2024国有企业废旧物资交易平台服务流程管理规范
- 高中孙子吴起列传课件
- 高一课件教学课件
- 电力行业2025年投资策略分析报告:火电、绿电储能
- 高一化学必修二课件
- 《婚姻解除财产分割协议书:婚前婚后财产清晰划分》
- 猪场租赁与养殖废弃物处理技术支持合同
- 夫妻财产分割离婚后子女抚养及赡养费支付合同
- 广告投放效果优化代理合同
- 骨髓穿刺课件
- 乡镇综合行政执法队队长试用期满转正工作总结
- 2025天津医科大学眼科医院第三批招聘1人备考考试试题及答案解析
- 2025年法院书记员招聘考试笔试试题含答案
- 教科版四年级上册科学全册教案
- 水稻螟虫绿色防控
- 2024版2025秋新版小学道德与法治三年级上册全册教案教学设计含反思
- 家电合伙合同(标准版)
- CPK、PPK和SPC(X-R控制图)模板
- 2025年二级建造师考试施工管理真题及答案
- 光伏发电运行维护定期巡视检查项目和周期
- 特种设备(锅炉、压力容器)培训考试试题及答案
评论
0/150
提交评论