基于物联网的智能家居系统设计.docx
- 文档编号:8755244
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:19
- 大小:458.25KB
基于物联网的智能家居系统设计.docx
《基于物联网的智能家居系统设计.docx》由会员分享,可在线阅读,更多相关《基于物联网的智能家居系统设计.docx(19页珍藏版)》请在冰豆网上搜索。
基于物联网的智能家居系统设计
前言2
摘要3
1需求分析4
2系统设计5
3实现原理6
3.1zigbee协议介绍6
3.2ZigBee技术的应用领域7
3.3zigbee协议栈结构7
4硬件设计11
4.1传感器节点模块化设计11
4.2CC2530芯片概述11
4.2.1CC2530芯片基本介绍11
4.2.2CC2530芯片引脚介绍12
4.3温度传感器调理电路设计13
4.4网络协调器外围电路设计14
5软件设计16
5.1IAR开发环境16
5.2协调器节点程序16
5.2.1网络组建17
5.2.2节点之间的数据传输20
5.3嵌入式网关程序21
5.4传感器节点程序23
总结24
参考文献25
致谢26
前言
智能家居通过物联网技术将家中的各种设备(如音视频设备、照明系统、窗帘控制、空调控制、安防系统、数字影院系统、影音服务器、影柜系统、网络家电等)连接到一起,提供家电控制、照明控制、电话远程控制、室内外遥控、防盗报警、环境监测、暖通控制、红外转发以及可编程定时控制等多种功能和手段。
在很多应用场合,温度是一个很重要的一个参数。
温度的自动监测已经成为各行业进行安全生产和减少损失的重要措施之一。
传统的温度测量方式测量周期长,施工复杂,不便于管理,并且在有些特定场合如封闭,高压等环境下根本无法测量。
但是往往这些场合容易引起很大的事故。
因而温度的无线传输显的越来越重要。
摘要
随着社会经济的发展,人民生活水平的提高,人们对生活的品质提出了更高的要求。
在设计中,为了实现智能家居系统的远程管理和无线传输的功能,利用Zigbee无线网络技术,以CC2530芯片和相关的一些外围器件组建成整个系统的家庭网关控制平台,而家居内部控制网络则利用Zigbee无线网络技术来实现。
本设计主要从无线传感方向进行改进,主要设计一种基于CC2530和数字温湿度传感器的温湿度采集系统。
该系统采用无线通信技术结合传感器,通过运用协议架构组建无线传感网络,实现主从节点的数据采集和传输,以及一点对多点,两点之间的通信。
并详细阐述了基于Zigbee协议栈的中心节点和终端节点的协议传输,主要是从协议栈网络层里AODV路由协议着手,阐述在网络层如何通过AODV路由协议进行节点间的连接以及数据的收发。
关键字:
智能家居;温湿度数据采集;CC2530;Zigbee协议栈;
一需求分析
随着社会经济结构、家庭人口结构以及信息技术的发展变化,人们对家居环境的安全性、舒适性、效率性、透明性提出了更高的要求。
同时越来越多的家庭要求家居产品不仅要具备简单的智能,更要求整个系统在功能扩展、外延以及服务方面能够做到简单、方便、轻松、安全。
很显然我们的家居生活需要改变,智能家居系统提供广泛的信息交互功能,优化居住环境,帮助人们有效地利用网络的便捷性各种实现了对家居环境的控制。
智能家居产品为家居环境、家电设备提供一个共享的接入中心,实现对家庭环境及其设备的智能管理、远程管理、集中管理和资源共享。
随着网络科技的高速发展,在可以预见的未来,在智能化住宅中,以宽带网络将家里的电脑、电视机、家电、安防系统等连成一体的自主控制、扩展、享用的工作、学习、娱乐家庭综合信息服务平
系统设计
3实现原理
3.1zigbee协议介绍
ZigBee协议标准采用分层结构,每一层为上层提供一系列特殊的服务:
数据实体提供数据传输服务;管理实体则提供所有其他的服务。
所有的服务实体都通过服务接人点SAP为上层提供接口,每个SAP都支持一定数量的服务原语来实现所需的功能。
ZigBee标准的分层架构是在OSI七层模型的基础上根据市场和应用的实际需要定义的。
其中IEEE802.15.4—2003标准定义了底层协议:
物理层(physicallayer,PHY)和媒体访问控制层(mediumaccesscontrolsub—layer,MAC。
)ZigBee联盟在此基础上定义了网络层(networklayer,NWK),应用层(applicationlayer,APL)架构。
在应用层内提供了应用支持子层(applicationsupportsub—layer,APS)和ZigBee设备对象(ZigBeedevice
object,ZDO)。
应用框架中则加入了用户自定义的应用对象。
ZigBee的网络层采用基于AdHoc的路由协议,除了具有通用的网络层功能外,还应该与底层的IEEE802.15.4标准一样功耗小,同时要实现网络的自组织和自维护,以最大限度方便消费者使用,降低网络的维护成本。
应用支持子层把不同的应用映射到ZigBee网络上,主要包括安全属性设置、业务发现、设备发现和多个业务数据流的汇聚等功能。
ZigBee无线测温系统的组成及原理基于ZigBee技术的无线测温系统主要由基于ZigBee技术的底层无线传感器网络、远程数据传输网络以及功能完善的上位监控系统3部分组成,,该系统是由大量的传感器点、汇节点以及远程传输模块组成的分布式系统。
基于簇的分层结构具有天然的分布式处理能力,簇头就是分布式处理中心,即无线传感器网络的一个汇节点。
每个簇成员(传感器节点)都把数据传给簇头,数据融合后直接传给远程传输网络,中央控制中心通过远程传输网络与多个汇节点连接,汇节点和传感器节点之间通过ZigBee技术实现无线的信息交换。
带有射频收发器的无线传感器节点负责对数据的感知和处理并传送给汇节点;通过远程传输网络获取采集到的相关信息,实现对现场的有效控制和管理。
3.2ZigBee技术的应用领域
ZigBee技术的目标就是针对工业、家庭自动化、遥测遥控、汽车自动化、农业自动化和医疗护理等,例如灯光自动化控制、传感器的无线数据采集和监控、油田、电力、矿山和物流管理等应用领域。
另外它还可以对局部区域内移动目标例如城市中的车辆进行定位。
通常,符合如下条件之一的应用,就可以考虑采用ZigBee技术做无线传输:
数据采集或监控的网点多;传输的数据量不大,但要设备成本低;要求数据传输可性高,安全性高;设备体积很小,不便放置较大的充电电池或者电源模块;电池供电;地形复杂,监测点多,需要较大的网络覆盖;现有移动网络的覆盖盲区;使用现存移动网络进行低数据量传输的遥测遥控系统;使用GPS效果差,或成本太高的局部区域移动目标的定位应用。
3.3zigbee协议栈结构
ZigBee协议栈定义了四层,分别是物理层、媒体访问控制层、网络层、应用层。
物理层和媒体访问控制层由IEEE802.15.4-2003定义,上层的网络层和应用层由Zigbee联盟定义。
应用层分别包括ZDO(Zigbee设备对象),APS(应用支持子层)和AF(应用框架)组成。
Zigbee协议栈每一层负责完成所规定的任务,并且向上层提供服务,各层之间的接口通过所定义的逻辑链路来提供服务。
ZigBee协议栈结构如图2ZigBee协议栈结构图所示。
图2ZigBee协议栈结构图
1.物理层
物理层由半双工的无线收发器及其接口组成,主要作用是激活和关闭射频收发器;检测信道的能量;显示收到数据包的链路质量;空闲信道评估;选择信道频率;数据的接受和发送。
2.媒体访问控制层
媒体访问控制(MAC)层建立了一条节点和与其相邻的节点之间可靠的数据传输链路,共享传输媒体,提高通信效率。
在协调器的MAC层,可以产生网络信标,同步网络信标;支持ZigBee设备的关联和取消关联;支持设备加密;在信道访问方面,采用CSMA/CA信道退避算法,减少了碰撞概率;确保时隙分配(GTS);支持信标使能和非信标使能两种数据传输模式,为两个对等的MAC实体提供可靠连接。
3.网络层
网络层负责拓扑结构的建立和维护网络连接,主要功能包括设备连接和断开网络时所采用的机制,以及在帧信息传输过程中所采用的安全性机制。
此外,还包括设备的路由发现和路由维护和转交。
并且,网络层完成对一跳(one—hop)邻居设备的发现和相关结点信息的存储。
一个ZigBee协调器创建一个新网络,为新加入的设备分配短地址等。
并且,网络层还提供一些必要的函数,确保ZigBee的MAC层正常工作,并且为应用层提供合适的服务接口。
网络层要求能够很好地完成在IEEE802.15.4标准中MAC子层所定义的功能,同时,又要为应用层提供适当的服务接口。
为了与应用层进行更好的通信,网络层中定义了两种服务实体来实现必要的功能。
这两个服务实体是数据服务实体(NLDE)和管理服务实体(NLME)。
网络层的NLDE通过数据服务实体服务访问点(NLDE—SAP)来提供数据传输服务,NLME通过管理服务实体服务访问点(NLME—SAP)来提供管理服务。
NLME可以利用NLDE来激活它的管理工作,它还具有对网络层信息数据库(NIB)进行维护的功能。
在这个图中直观地给出了网络层所提供的实体和服务接口等。
NLDE提供的数据服务允许在处于同一应用网络中的两个或多个设备之间传输应用协议数据单元(APDU)。
NLDE提供的服务有:
产生网络协议数据单元(NPDU)和选择通信路由。
选择通信路由,在通信中,NLDE要发送一个NPDU到一个合适的设备,这个设备可能是通信的终点也可能只是通信链路中的一个点。
NLME需
提供一个管理服务以允许一个应用来与协议栈操作进行交互。
NLME需要提供以
下服务:
①配置一个新的设备(configuringanewdevice)。
具有充分配置所需操作栈的能力。
配置选项包括:
ZigBee协调器的开始操作,加入一个现有的网络等。
4.应用层
应用层包括三部分:
应用支持子层(APS)、ZigBee设备对象(ZDO)和应用框架(AF)。
应用支持子层的任务是提取网络层的信息并将信息发送到运行在节点上的不同应用端点。
应用支持子层维护了一个绑定表,可以定义、增加或移除组信息;完成64位长地址(IEEE地址)与16位短地址(网络地址)一对一映射;实现传输数据的分割与重组;应用支持子层连接网络层和应用层,是它们之间的接口。
这个接口由两个服务实体提供:
APS数据实体(APSD)E和APS管理实体(APSM)E。
APS数据实体为网络中的节点提供数据传输服务,它会拆分和重组大于最大荷载量的数据包。
APS管理实体提供安全服务,节点绑定,建立和移除组地址,负责64位IEEE地址与16位网络地址的地址映射[4]。
ZigBee设备对象负责设备的所有管理工作,包括设定该设备在网络中的角色(协调器、路由器或终端设备),发现网络中的设备,确定这些设备能提供的功能,发起或响应绑定请求,完成设备之间建立安全的关联等。
用户在开发ZigBee产品时,需要在ZigBee协议栈的AF上附加应用端点,调用ZDO功能以发现网络上的其他设备和服务,管理绑定、安全和其他网络设置。
ZDO是一个特殊的应用对象,它驻留在每一个ZigBee节点上,其端点编号固定为0。
AF应用框架是应用层与APS层的接口。
它负责发送和接收数据,并为接收到的数据寻找相应的目的端点。
4硬件设计
4.1传感器节点模块化设计
传感器节点一般由数据采集单元、数据处理单元,通信单元(即射频模块)和电源单元组成,其结构如图5.1所示。
电源模块
图5.1无线传感器节点结构图
由于无线传感网络在通信上消耗较大能量,故处理器选用功耗较小的
CC2530为通信器件,设计无线网络节点。
数据采集模块利用传感器监测外部环境,本作品中负责采集水的温度、PH值、浊度等水质信息,通过信号的调理输出,并传送给处理器进行处理。
4.2CC2530芯片概述
4.2.1CC2530芯片基本介绍
ZigBee新一代SOC芯片CC2530是真正的片上系统解决方案,支持IEEE802.15.4标准/ZigBee/ZigBeeRF4CE和能源的应用。
拥有庞大的快闪记忆体多达256个字节,CC2530是理想ZigBee专业应用。
支持新RemoTI的ZigBeeRF4CE,这是业界首款符合ZigBeeRF4CE兼容的协议栈,和更大内存大小将允许芯片无线下载,支持系统编程。
此外,CC2530结合了一个完全集成的,高性能的RF收发器与一个8051微处理器,8kB的RAM,32/64/128/256KB闪存,以及其他强大的支持功能和外设。
CC2530芯片具有如下主要性能:
(1)高性能和低功耗的8051微控制器核;
(2)32-KB、64-KB、128-KB或256KB的系统内可编程闪存;
(3)8-KBRAM,具备在各种供电方式下的数据保持能力;
(4)集成符合IEEE802.15.4标准的2.4GHz的RF无线电收发机;
(5)极高的接收灵敏度和抗干扰性能;
(6)可编程的输出功率高达4.5dBm;
(7)只需一个晶振,即可满足网状网络系统的需要;
(8)硬件支持CSMA/CA功能;
(9)较宽的电压范围(2.0~3.6V)。
4.2.2CC2530芯片引脚介绍
CC2530芯片如图5.2所示。
它采用6mm×6mm的QFN封装,共有40个引脚。
全部引脚可以分为I/O端口线引脚、电源线引脚和控制线引脚三类。
2-2P
1-2P
0-2P
7-1P
6-1P1DDVLPUOC
6DDV
1Q-K23CSOX/4-2P
2Q-K23CSOX/3-2P
N-TESE
0-0P1-0P
2-0P
3-0P
4-0P
5-0P
6-0P
7-0P0-1P
图5.2CC2530芯片引脚
1.I/O端口线引脚功能CC2530有21个可编程的I/O口引脚,P0、P1口是完全的8位口,P2口只
有5个可使用的位。
通过软件设定一组SFR寄存器的位和字节,可使这些引脚作为通常的I/O口或作为连接ADC、计时器或USART部件的外围设备I/O口使用。
2电源引脚功能
DCOUP(L40脚):
提供1.8V的数字电源去耦电压,不使用外部电路供应
DVDD(139脚):
提供2.0V~3.6V的数字电源连接电压。
DVDD(210脚):
提供2.0V~3.6V的数字电源连接电压。
3.控制线引脚
RBIAS(30脚):
为参考电流提供精确的偏置电阻。
RESET_(N20脚):
复位引脚,低电平有效。
RF_N(26脚):
在RX期间向LNA输入负向射频信号。
RF_P(25脚):
在RX期间向LNA输入正向射频信号。
XOSC_Q(122脚):
32MHz的晶振引脚1,或外部时钟输入引脚。
XOSC_Q(223脚):
32MHz的晶振引脚2。
4.3温度传感器调理电路设计
温度传感器采用Dallas公司推出的DS18B20数字式温度传感器,磨耐碰,体积小,使用方便,封装形式多样,适用于空间狭小的应用场合。
只需单线接口,电路简单不需要AD转换器件和其它外围电路,缩小了系统的体积,提高了系统的可靠性。
DS18B20的封装有3脚、6脚和8脚三种方式。
本次设计中选用的是3引脚方式(TO-92封装),如图5.6所示。
其中DQ为数字信号输入/输出端,GND为电源地,VCC为外接供电电源输入端(以寄生供电方式时接地)。
系统把DQ端连接到CC530的P0.0口,通过对DS18B20的初始化,温度转换和读取等指令来测量室内质温度。
图5.6温度传感器测量电路
4.4网络协调器外围电路设计
网络协调器的外围电路都放在扩展板上,主要包括电源、串口等外围电路,用于支持ZigBee模块工作以及和PC机的通信。
网络协调器是整个网络中功耗最大的模块,因此网络协调器用的电源是通过220V交流电源转换而来,而不是ZigBee网络中的常用的电池。
在设计时为了简化电路、降低功耗,网络协调器上所有芯片都选用工作电压为3.3V的,该模块只需要3.3V电源供电,如图5.7所示。
图5.8传感器电源处理模块
图5.8中D1、D2的作用是防止输出电压大于输入电压导致烧坏7812或者7805。
得到5V电源后再通过一个低压差线性稳压器(LDO:
LowDropout
Regulator)将5V电源转换为工作电压3.3V给整个模块供电,LDO选用TI公司REG1117-3.3稳压器,该芯片电路简单,质量可靠,价格低。
5软件设计
5.1IAR开发环境
IAREmbeddedWorkbench简称为EW,它具备的调试器和C/C++交叉编译环境,是当今最易使用、最完整的嵌入式应用开发工具。
针对不同的微处理器提供一样直观的用户界面,当前支持35种以上的32位、16位、8位ARM微处理器。
EW的组成部分为C-SPY调试器、嵌入式C/C++编译器、汇编器、库管理员、编译器、项目管理器和连接定位器。
使用IAR的编译器不仅能节省硬件资源,最大限度降低产品成本,提高产品竞争力还能最大程度优化和紧凑代码。
IAREmbeddedWorkbench集成编译环境主要有以下特征:
支持高效浮点运算、完全兼容C标准、高效的PROMable代码、目标特性扩充、内建对应芯片的程序速度和大小的优化器、版本控制和扩展工具支持良好、便捷的中断处理和模拟、内存模式选择、瓶颈性能分析、工程中相对路径支持。
IAREW8051集成开发环境如图6.1所示。
图6.1IAREW8051集成开发环境
5.2协调器节点程序
协调器的主要功能是建立网络,还有扫描网络信标、管理网络中节点的加入
/退出和存储节点信息,同时还提供关联节点之间的路由信息。
组建网络分为网络初始化和节点加入网络两个过程。
ZigBee网络的建立是由协调器发起的,要组建网络的节点必须满足两个基本要求:
一是节点必须是FFD节点,具备协调器的能力;二是节点还没有加入到其他网络中,网络初始化的流程如图6.2所示。
5.2.1网络组建
确定网络协调器、信道扫描过程、设置网络ID至此网络初始化就完成,相关代码如下
第一步:
Z-Stack由main()函数开始执行,main()函数共做了2件事:
一是系统初始化,另外一件是开始执行轮转查询式操作系统
intmain(void)
{
初始化完系统任务事件后,正式开始执行操作
osal_start_system();//
系统
}
第二步,进入osal_init_system()函数,执行操作系统初始化
uint8osal_init_system(void)
{
osal_mem_init();osal_qHead=NULL;osalTimerInit();
osal_pwrmgr_init();osalInitTasks();//第三步,执行操作系统任务初始化函数osal_mem_kick();
return(SUCCESS);
}
第三步,进入osalInitTasks()函数,执行操作系统任务初始化
voidosalInitTasks(void)//第三步,初始化操作系统任务
{
uint8taskID=0;
tasksEvents=(uint16*)osal_mem_alloc(sizeof(uint16)tasksCnt);
osal_memset(tasksEvents,0,(sizeof(uint16)*tasksCnt));
//任务优先级由高向低依次排列,高优先级对应taskID的值反而小macTaskInit(taskID++);//不需要用户考虑nwk_init(taskID++);//不需要用户考虑
Hal_Init(taskID++);//硬件抽象层初始化,需要我们考虑
#ifdefined(MT_TASK)
MT_TaskInit(taskID++);
#endif
APS_Init(taskID++);//不需要用户考虑
#ifdefined(ZIGBEE_FRAGMENTATION)
APSF_Init(taskID++);
#endif
ZDApp_Init(taskID++);//第四步,ZDApp层,初始化,执行ZDApp_init
函数后,如果是协调器将建立网络,如果是终端设备将加入网络。
#ifdefined(ZIGBEE_FREQ_AGILITY)||defined(ZIGBEE_PANID_CONFLICT)
ZDNwkMgr_Init(taskID++);
#endif
SerialApp_Init(taskID);//应用层SerialApp层初始化,需要用户
考虑在此处设置了一个按键触发事件,
//当有按键按下的时候,产生一个系统消息
}
第四步,进入ZDApp_init()函数,执行ZDApp层初始化第五步,正式执行操作系统
voidosal_start_system(void)//第五步,正式执行操作系统
{
#if!
defined(ZBIT)&&!
defined(UBIT)
for(;;)//死循环
#endif
{
uint8idx=0;
osalTimeUpdate();
Hal_ProcessPoll();
do{
if(tasksEvents){
break;//得到待处理的最高优先级任务索引号idx
}
}while(++idx { uint16events; halIntState_tintState; HAL_ENTER_CRITICAL_SECTION(intState);//进入临界区 events=tasksEvents;//提取需要处理的任务中的事件tasksEvents=0;//清除本次任务的事件HAL_EXIT_CRITICAL_SECTION(intState);//退出临界区events=(tasksArr)(idx,events);//通过指针调用任务处理 函数,紧接着跳到相应的函数去处理,此为第五步 HAL_ENTER_CRITICAL_SECTION(intState);//进入临界区tasksEvents|=events;//Addbackunprocesse
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 联网 智能家居 系统 设计