基于Zigbee技术的智能家居控制系统设计—课程设计论文 下载本文

上海第二工业大学 本科课程机器人3(论文)

机器人3课程设计(论文)

题 目:基于Zigbee技术的智

能家居控制系统设计

上海第二工业大学 本科课程机器人3(论文)

基于Zigbee技术的智能家居控制系统设计

摘要

随着生活质量的日益改善和生活节奏的不断加快,人们的工作、生活日益信息化。信息化社会改变了人们的生活方式与工作习惯,使得家居系统的智能化成为一种消费需求,智能家居系统越来越被重视。因此,将家庭中各种通信设备、家用电器和家庭安保装置通过家居控制系统进行整合,并进行远程控制和管理,已经成为近年来一个热门研究课题。

关键词: Zigbee ;Z-Stack;CC2530芯片;智能家居

上海第二工业大学 本科课程机器人3(论文)

The Design of Smart Home Control System Based on ZigBee Technology Technology

ABSTRACT

With the development of the science and economy,people’s living standard improves enormously.People may pay more and more attention to their living environment.

Information society has changed people’S lifestyle and work habits to make

intelligent home system a consumer demand.Intelligent home system catches more

and more people’S attention.Therefore the topic about the integration and

management of various communication equipments in home,household appliances

and home security devices combined by the intelligent home control system remotel,

has become a hot research point in recent years. Key words: Zigbee; Z-stack;CC2530;Smart Home

上海第二工业大学 本科课程机器人3(论文)

目录

1绪论....................................................1

1.1无线传感器网络..................................................1 1.1.1无线传感器网络概况............................................1 1.1.2无线传感器的应用现状..........................................1 1.1.3无线传感器的未来前景..........................................2 1.2基于Zigbee技术的无线传感器网络.................................2 1.3论文结构........................................................3

2 Z-Stack协议栈..........................................4

2.1 Zigbee协议介绍.................................................4 2.1.1 Zigbee协议栈的结构...........................................4 2.2 Zigbee网络结构.................................................5 2.3 Z-Stack协议栈介绍..............................................6 2.3.1寻址..........................................................6 2.3.2绑定..........................................................9 2.3.3路由协议......................................................9 2.3.4数据发送函数.................................................10 2.3.5网络组建过程.................................................10 2.3.6数据接收函数.................................................10

3智能家居系统的实现......................................13

3.1系统的整体介绍.................................................13 3.2系统硬件介绍...................................................13 3.2.1各类传感器模块...............................................13 3.2.2终端节点和数据汇聚模块.......................................15 3.3系统软件介绍...................................................16 3.3.1终端节点和数据汇聚模块软件设计...............................16 3.3.2上位机(PC机)的监控界面.....................................18

上海第二工业大学 本科课程机器人3(论文)

4结论....................................................21 参考文献.................................................22 附录.....................................................23

上海第二工业大学 本科课程机器人3(论文)

1 绪论

1.1无线传感器网络

1.1.1无线传感器网络概况

无线传感器网络是指大量的移动的或静止的传感器以自组织和多跳的方式构成的无线网络。其目的是协作地感知、采集和处理传输网络覆盖地理区域内感知对象的监测信息,并报告给用户。

无线传感器网络起源于20世纪70年代,是一种特殊的无线网络,最早应用于美国军方,例如空中预警控制系统。这种原始的传感器网络只能捕获单一信号,传感器节点只能进行淡淡的点对点通信。

1980年美国国防部高级研究计划局提出了分布式传感器网络项目,开启了现代无线传感器网络研究的先例。此项目旨在建立一个由空间分布的低功耗传感器节点构成的网络。这些节点之间相互协作并自主运行,将信息送达处理的节点。2003年8月,美国《商业周刊》将无线传感器网络定位成21世纪高技术领域的四大支柱型产业之一,其潜在市场需求十分巨大,传感器网络系统已引起世界各国学术界、军事部门和工业界的极大关注。 1.1.2无线传感器的应用现状

近几年来,由于成本的降低,技术的愈发成熟,无线传感器网络已经大规模应用在如下几个领域中:

(1)环境监测

由于环境污染问题日益突出,人们对与环境的保护越来越关注,对于环境的监测需求相应增加。无线传感器网络为环境监测时采集数据提供了便利,并且还可以减少对环境的破坏。无线传感器网络还可以跟踪候鸟和昆虫的迁移,研究环境变化对农作物的影响,监测海洋、大气和土壤的成分等。此外,它也可以应用在精细农业中,来监测农作物中的害虫、土壤的酸碱度和施肥状况等。

(2)医疗护理

无线传感器网络也可以应用在医疗研究和护理领域。英特尔公司推出了无线传感器网络的家庭护理技术。该系统通过在鞋、家具以家用电器等家用设备中嵌入半导体传感器,帮助老龄人士、阿尔茨海默氏病患者以及残障人士的家庭生活。

(3)军事领域

1

上海第二工业大学 本科课程机器人3(论文)

由于无线传感器网络节点造价低廉,可以密集随机的分布在各种恶劣的战场环境中,包括侦察敌情、监控兵力、装备和物资,判断生物化学攻击等多方面用途。

目前无线传感器网络还存在着如下问题:

(1) 网络内通信问题。无线传感器网络内正常通信联系中,信号可能被一些障碍物或其他电子信号干扰而受到影响,怎么安全有效的进行通信是个有待研究的问题。

(2) 成本问题。在一个无线传感器网络里面,需要使用数量庞大的微型传感器,这样的话成本会制约其发展。

(3)系统能量供应问题。目前主要的解决方案有:使用高能电池;降低传感功率;此外还有传感器网络的自我能量收集技术和电池无线充电技术。其中后两者备受关注。

1.1.3无线传感器网络的未来前景

无线传感器网络有着十分广泛的应用前景,它不仅在工业、农业、军事、环境、医疗等传统领域有具有巨大的运用价值,在未来还将在许多新兴领域体现其优越性,如智能家居、智能小区、汽车管理控制等领域。我们可以大胆的预见,将来无线传感器网络将无处不在,将完全融入我们的生活。

1.2基于Zigbee技术的无线传感器网络

Zigbee可工作在2.4GHz(全球流行)、868MHz(欧洲流行)和915MHz(美国流行)三个频段上,分别具有最高250kb/s、20kb/s和40kb/s的传输速率,它的传输距离在10~75m的范围内。根据Zigbee的技术本质,Zigbee具有下列的几个特性。

(1)低功耗。低功耗是Zigbee重要的特点之一。一般的Zigbee芯片有多种电源管理模式,这些管理模式可以有效的对节点的工作和休眠进行配置,从而使得系统在不工作时可以关闭射频部分,极大地降低了功耗,节约了电池的能量。 (2)低成本。Zigbee网络协议简单,可以在计算能力和存储能力都有限的MCU上运行,非常适合于对成本要求苛刻的场合。而且Zigbee芯片的体积较小,随着半导体集成技术发展,Zigbee芯片的体积将会变得更小,成本也会降得更低。

2

上海第二工业大学 本科课程机器人3(论文)

(3)高度扩充性。Zigbee设备既可以使用64位IEEE网络地址,又可以使用支配的16位网络地址。在一个单独的Zigbee网络内,理论上可以容纳最多65536个设备。

(4)安全性高。Zigbee加密算法采用了AES-128,同时各个应用程序可以灵活确定其安全属性。Zigbee联盟还开发了安全层,以保证这种设备不会意外泄露其标识,而且这种利用网络的远距离传输不会被其他节点获得。

(5)时延短。针对时延敏感做了优化,通信时延和从休眠状态激活的时延都非常短。

(6)灵活的网络拓扑结构。Zigbee支持星型、树型和网状型拓扑结构,既可以单跳,又可以通过路由实现多条的数据传输。

1.3论文结构

第一章:绪论。该章介绍了无线传感器网络的概况、应用现状和未来前景,然后对Zigbee技术做了简短的介绍,讲述了Zigbee技术的相关特性。

第二章:Z-Stack协议栈。该章从Zigbee协议介绍到Z-Stack协议栈的构架,并对Zigbee技术的应用范围作了具体的分析。主要内容包括网络寻址、绑定、路由协议、数据发送函数、网络组建过程和数据接收函数。

第三章:智能家居系统的实现。该章分别从系统硬件和软件两个方面作了具体的阐述。主要包括传感器模块、数据采集模块和数据汇聚模块以及上位机监控界面等内容。并对各个模块进行了功能测试,包括组网测试、点对点通信测试和网络整体测试。

第四章:结论。该章对本文所完成的任务做了总结,指出本文设计的智能家居系统的创新点,并对下一步工作做出明确的方向。

3

上海第二工业大学 本科课程机器人3(论文)

2 Z-Stack协议栈

2.1 Zigbee协议介绍

2.1.1 Zigbee协议栈的结构

Zigbee协议栈定义了四层。物理层和媒体访问控制层由IEEE802.15.4-2003定义,上层的网络层和应用层由Zigbee联盟定义。应用层分别包括ZDO(Zigbee设备对象),APS(应用支持子层)和AF(应用框架)组成。Zigbee协议栈每一层负责完成所规定的任务,并且向上层提供服务,各层之间的接口通过所定义的逻辑链路来提供服务。

[3]

图2.1 Zigbee协议栈结构图

(1)物理层:物理层定义了物理无线信道和MAC子层之间的接口,提供物理数据服务单元(PD-SAP)和物理层管理服务(MLME-SAP)。

4

上海第二工业大学 本科课程机器人3(论文)

(2)MAC(介质接入控制子层):MAC层负责处理所有物理无线信道的访问,并产生网络信号、同步信号;支持PAN连接和分离,提供两个对等的MAC实体之间的可靠链路。

(3)NWK(网络层):网络层是Zigbee协议栈的核心部分,网络层主要实现节点加入或者离开网络、接受或者抛弃节点、路由查找及维护等功能。

(4)APL(应用层):应用层包括三部分:应用支持子层(APS)、Zigbee设备对象(ZDO)和应用框架(AF)。

APS应用支持子层的任务是提取网络层的信息并将信息发送到运行在节点上的不同应用端点。

Zigbee设备对象负责设备的所有管理工作,包括设定该设备在网络中的角色(协调器、路由器或终端设备),发现网络中的设备,确定这些设备能提供的功能,发起或响应绑定请求,完成设备之间建立安全的关联等。ZDO是一个特殊的应用对象,它驻留在每一个Zigbee节点上,其端点编号固定为0。 AF应用框架是应用层与APS层的接口。它负责发送和接收数据,并为接收到的数据寻找相应的目的端点。

2.2 Zigbee网络结构

在ZigBee网络中存在三种逻辑设备类型:Coordinator(协调器),Router(路由器)和End-Device(终端设备)。ZigBee网络由一个Coordinator以及多个Router和多个End_Device组成。

图2.2 Zigbee网络结构图

5

上海第二工业大学 本科课程机器人3(论文)

上图是一个简单的ZigBee网络示意图。其中黑色节点为Coordinator,红色节点为Router,白色节点为End-Device。

协调器负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络ID(也称之为PAN ID,即Personal Area Network ID),随后启动整个网络。协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。 注意,协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器(或者消失go away)。由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。

路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的儿子终端设备的通讯。通常,路由器希望是一直处于活动状态,因此它必须使用主电源供电。但是当使用树群这种网络模式时,允许路由间隔一定的周期操作一次,这样就可以使用电池给其供电。

终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此它可以可以是一个电池供电设备。通常,终端设备对存储空间(特别是RAM的需要)比较小。

Zigbee网络支持三种拓扑结构:星型、树型和网状型结构。在星型拓扑结构中,所有的终端设备只和协调器之间进行通信。树型网络由一个协调器和多个星型结构连接而成,设备除了能与自己的父节点或子节点相互通信外,其他只能通过网络中的树型路由完成通信。网状型网络是在树型网络的基础上实现的。与树型网络不同的是,它允许网络中所有具有路由功能的节点相互通信,由路由器中的路由表完成路由查询过程。

2.3 Z-Stack协议栈介绍

TI公司的协议栈Z-Stack符合ZigBee2006规范,功能强大,协议栈底层已实现,对于简单的应用,开发者只需要在应用层开发即可。Z-Stack还可通过ZigBee网络无线下载节点更新程序,具备定位感知功能等等。下面对Z-Stack的功能进行介绍。 2.3.1寻址 (1)地址类型

ZigBee设备有两种类型的地址。一种是64位IEEE地址,即MAC地址,另

6

上海第二工业大学 本科课程机器人3(论文)

一种是16位网络地址。

64位IEEE地址是一个全球唯一的地址,并且一经分配就将跟随设备一生。它通常由制造商或者被安装时设置。这些地址由IEEE组织来维护和分配。 16位网络地址是当设备加入网络后分配的。它在网络中是唯一的,用来在网络中鉴别设备和发送数据。 (2)网络地址分配

ZigBee使用分布式寻址方案来分配网络地址。这个方案保证在整个网络中所有分配出去的网络地址是唯一的。这一点是必须的,因为这样才能保证一个具体的数据包能够发送到它指定的设备,而不出现混乱。同时,这个寻址算法本身的分布特性保证设备只能与他的父辈设备通讯来接收一个唯一的网络地址。不需要整个网络范围内通讯的地址分配,这有助于网络的可测量性。

在每个路由加入网络之前,寻址方案需要知道和配置一些参数。这些参数是

MAX_DEPTH,MAX_ROUTERS和MAX_CHILDREN。这些参数是栈配置的一部分,ZigBee2007协议栈已经规定了这些参数的值:MAX_DEPTH = 5,MAX_ROUTERS = 6和MAX_CHILDREN = 20。

MAX_DEPTH决定了网络的最大深度。协调器(Coordinator)位于深度0,它的

儿子位于深度1,他的儿子的的儿子位于深度2,以此类推。MAX_DEPTH参数限制了网络在物理上的长度。

MAX_CHILDREN决定了一个路由(Router)或者一个协调器节点可以处理的儿

子节点的最大个数。

MAX_ROUTER决定了一个路由(Router)或者一个协调器(Coordinator)节点可以处理的具有路由功能的儿子节点的最大个数。这个参数是MAX_CHILDREN的一个子集,终端节点使用(MAX_CHILDREN – MAX_ROUTER)剩下的地址空间。在Z-Stack中网络结构和网络深度可在nwk_globals.c文件中设置,默认设置为HOME_CONTROLS。

7

上海第二工业大学 本科课程机器人3(论文)

图2.3 网络深度设置程序图

(3)Z-Stack寻址

应用程序通常使用AF_DataRequest()函数向一个ZigBee网络中的设备发送数据。数据包要发送给一个zAddrType_t(在ZComDef.h中定义)类型的目标设备。

图2.4 zAddrType_t结构图

注意,除了网路地址之外,还要指定地址模式参数。目的地址模式可以设置为以下几个值:

图2.5 afAddrMode_t结构图

8

上海第二工业大学 本科课程机器人3(论文)

因为在Zigbee中,数据包可以点对点传送(Point To Point),组播传送(Flash)或者广播传送,所以必须有地址模式参数。 Point To Point传送数据包只发送给一个设备,

图2.6 点播程序图

Flash传送数据包则要传送给一组设备,

图2.7 组播程序图

Periodic广播数据包则要发送给整个网络的所有节点,

图2.8 广播程序图

2.3.2绑定

绑定是指一个节点与另外一个或几个节点间建立地址映射的一种寻址方式。在节点建立绑定之后,发送数据的时候并不需要知道目的地址是什么,应用支持子层会根据绑定ID查询它的绑定表来决定目的地址,然后把信息发送给目的节点。

在Z-Stack中,绑定是通过如下函数实现的:

dstAddr.addrMode=Addr16Bit;//首先设置寻址模式为网络地址寻址 dstAddr.addr.shortAddr=0x0000;//目的地址为协调器的网络地址 ZDP_EndDeviceBindReq();//发起绑定请求 2.3.3路由协议

ZigBee执行基于用于AODV专用网络的路由协议。简化后用于传感器网络。ZigBee路由协议有助于网络环境有能力支持移动节点,连接失败和数据包丢失。

当路由器从他自身的应用程序或者别的设备那里收到一个单点发送的数据包,则网络层(NWK Layer)根据一下程序将它继续传递下去。如果目标节点是它

9

上海第二工业大学 本科课程机器人3(论文)

相邻路由器中的一个,则数据包直接被传送给目标设备。否则,路由器将要检索它的路由表中与所要传送的数据包的目标地址相符合的记录。如果存在与目标地址相符合的活动路由记录,则数据包将被发送到存储在记录中的下一级地址中去。如果没有发现任何相关的路由记录,则路由器发起路径寻找,数据包存储在缓冲区中知道路径寻找结束。

ZigBee终端节点不执行任何路由功能。终端节点要向任何一个设备传送数据包,它只需简单的将数据向上发送给它的父亲设备,由它的父亲设备以它自己的名义执行路由。同样的,任何一个设备要给终端节点发送数据,发起路由寻找,终端节的的父亲节点都已它的名义来回应。

注意ZigBee地址分配方案使得对于任何一个目标设备,根据它的地址都可以得到一条路径。在Z-Stack中,如果万一正常的路径寻找过程不能启动的话(通常由于缺少路由表空间),那么Z-Stack拥有自动回退机制。

此外,在Z-Stack中,执行的路由已经优化了路由表记录。通常,每一个目标设备都需要一条路由表记录。但是,通过把一定父亲节点记录与其子所有子结点的记录合并,这样既可以优化路径也可以不丧失任何功能。 2.3.4数据发送函数

在Z-Stack中,如果给一个节点发送消息,可以用AF_DataRequest( )函数:

图2.9 AF_DataRequest()函数

2.3.5网络组建过程

协调器首先从DEFAULT_CHANLIST列表中选择使用的信道,如果ZDAPP_CONFIG_PAN_ID的值不等于0xFFFF则选取ZDAPP_CONFIG_PAN_ID为

10

上海第二工业大学 本科课程机器人3(论文)

PANID,否则选取IEEE地址的最后两个字节作为PANID。如果启动模式是Auto Start,路由器或者终端设备上电之后就开始搜寻网络,如果有合适的网络并且该网络允许加入,那么就会直接加入该网络。如果启动模式是HOLD_AUTO_START,路由器或者终端设备上电之后必须等待某一特定时间的发生来启动加入网络的过程,这时协议栈会调用ZDAPP_StartUpFromApp()这个函数。如果需要路由器或者终端设备在电池没电或者重启之后仍然记住以前的网络状态可以在预编译选项添加编译选项NV_RESTORE。 2.3.6数据接收函数

在Z-Stack中,如果一个节点接收消息,可以用SampleApp_ProcessEvent( )函数:

图2.10 数据处理函数

当采集节点接收到数据后,触发SYS_EVENT_MSG事件,并对

11

上海第二工业大学 本科课程机器人3(论文)

AF_INCOMING_MSG_CMD 信息做处理:

图2.11 数据消息接受函数

节点接收到信息后会存储在pkt指针指向的结构体中,在应用层的函数 SampleApp_MessageMSGCB(afIncomingMSGPacket_t*pkt)可以用pkt->cmd.Data取出接收到的数据,pkt->cmd.DataLength表示的就是该数据信息的长度,以下是收到消息的格式的结构体定义:

图2.12 afIncomingMSGPacket_t络结构图

12

上海第二工业大学 本科课程机器人3(论文)

图2.13 afMSGCommandFormat_t结构图

13

上海第二工业大学 本科课程机器人3(论文)

3智能家居系统的实现

3.1系统的整体介绍

本文设计旨在创建一个自主控制的智能家居数据采集与监控系统。

上位机 监控 RS232 数据汇聚点 Zigbee协调器 DHT11

图3.1智能家居系统框图 人体传感器 继电器 LED MQ-2 排气系统 Zigbee RF Zigbee终端 3.2系统硬件介绍

3.2.1各类传感器模块

图3.2 DHT11温湿度传感器模块

14

上海第二工业大学 本科课程机器人3(论文)

图3.3 人体感应传感器模块

图3.4继电器和LED灯模块

图3.5 MQ-2气体传感器模块

15

上海第二工业大学 本科课程机器人3(论文)

图3.6排气系统模块

3.2.2终端节点和数据汇聚模块

图3.7 终端节点和协调器

16

上海第二工业大学 本科课程机器人3(论文)

图3.8 CC2530发送模块原理图

本设计选择 TI 公司的CC2530芯片,它集成了符合IEEE802.15.4标准的 2.4GHz的RF无线电收发机,是支持ZigBee协议的一个真正的片上系统(SoC)解决方案。它能够以非常低的总材料成本建立强大的网络节点。CC2530 集微处理模块和无线收发模块于一体, 集成了业界标准的增强型8051CPU,具有优良的性能和代码预取功能。

该芯片具有8KB的RAM,可选32/64/128/256KB flash 闪存单元,8路输入和可配置分辨率的12位A/D 转换器,AES 安全协处理器,2 个支持多种串行通信协议的强大USART,21个通用I/O引脚, 看门狗定时器,可用的IAR嵌入式工作平台。由于该芯片具有较高的集成度和丰富的硬件资源,从而简化了外围电路。

数据汇聚模块主要由CC2530和OLED显示屏组成。CC2530协调器主要负责收发数据。对于上位机和传感器模块来说,数据汇聚模块是透明的,它只负责将上位机发送的命令通过无线的方式转发给传感器模块;还有将传感器模块上传的数据及时间信息按照一定的格式转发给上位机。

3.3系统软件介绍

本系统所用的开发环境是IAR8.1,采用的协议栈为TI的

ZStack-2.3.0-1.4.0。系统将协调器通过串口RS232和上位机(PC)相连,传感器模块加入由数据汇聚模块组成的网络后,开始采集数据并传给数据汇聚模块,通过串口上传到上位机。上位机监控界面上可以监控室内的环境,并能无线控制台灯的亮灭。

3.3.1终端节点和数据汇聚模块软件设计 (1)传感器I/O口的定义及初始化

图3.9 传感器I/O口定义程序图

17

上海第二工业大学 本科课程机器人3(论文)

图3.10 传感器I/O口初始化

(2)任务功能码定义及终端的数据结构

图3.11 任务功能码定义和终端数据结构图

(3)关键函数

18

上海第二工业大学 本科课程机器人3(论文)

图3.12 SerialApp_ProcessMSGCmd()函数

3.3.2上位机(PC机)的监控界面

监控界面如图所示,用VC软件制作,它接收串口传来的数据,可以进行串口端口号和波特率的设置。串口的配置:波特率115200,数据位8位,无奇偶校验,1位停止位。设置好波特率后,就能接收网络中工作的传感器模块的数据和控制相应的模块。

19

上海第二工业大学 本科课程机器人3(论文)

图3.13 PC上位机监控界面

20

上海第二工业大学 本科课程机器人3(论文)

4结论

本文设计了一种基于ZigBee 技术的智能家居系统,采用CC2530 芯片设计主从节点,硬件结构精简、体积小、能耗低, 所组成的无线传感网络具有自组织,自适应的特点。通过实验调试,该系统基本达到了设计要求,效果良好。鉴于无线传感网络技术具有功耗低、数据传输可靠、网络容量大、兼容性好、实现成本低等诸多优点, 可广泛应用于生产生活的各个领域, 尤其适用于数字家庭、智能大厦控制、小区安防监测等, 具有较好的通用性和应用前景。

21

上海第二工业大学 本科课程机器人3(论文)

参考文献

[1]青岛东合信息技术有限公司.《Zigbee开发技术与实践》. 西安电子科技大学出版社 [2]飞比论坛官网.www.feibi.com

[3]孙利民.《无线传感器网络》.清华大学出版社.2005. [4]《Zigbee协议栈中文说明》

[5]《Zigbee技术实用手册》.西安达泰电子

[6]Z-Stack Applications User's Guide_F8W-2007-0022_.pdf.www.ti.com

22

上海第二工业大学 本科课程机器人3(论文)

附录

23