基于物联网的灯光控制系统组网设计.docx
- 文档编号:27214522
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:49
- 大小:286.16KB
基于物联网的灯光控制系统组网设计.docx
《基于物联网的灯光控制系统组网设计.docx》由会员分享,可在线阅读,更多相关《基于物联网的灯光控制系统组网设计.docx(49页珍藏版)》请在冰豆网上搜索。
基于物联网的灯光控制系统组网设计
毕业设计说明书
设计题目:
基于物联网的灯光控制系统
——组网设计
专业:
物联网应用技术
班级:
物联网XX
学号:
姓名:
指导教师:
二O一四年十二月二十日
设计内容:
课题简介:
以道惟尔公司CC2430无线传感器节点和光照传感器模块为载体,基于IAR和VS2010开发环境,设计一个灯光控制系统,实现对道路灯光亮灭进行控制,并接受上位机监控命令。
主要任务:
(1)传输层WSN组网程序与透明传输层程序开发;
(2)撰写设计报告。
主要技术要求如下:
(1)采用模块化设计思想规划各子程序功能;
(2)无线传感器网络通讯的基本数据帧格式为:
帧头、父节点地址、源节点地址、数据长度、数据、帧尾。
(3)CC2430协调器与PC串口通讯的基本数据帧格式为:
帧头、功能码、数据长度、数据、帧尾;(4)传输层应实现透明传输。
进度安排:
1.任务分解,收集有关资料并消化吸收---2周;
2.制定设计方案-----------------------------------1周;
3.软件设计-----------------------------------------6周;
4.撰写设计报告-----------------------------------2周;
5.准备毕业答辩。
主要参考文献、资料(写清楚参考文献名称、作者、出版单位):
[1] 陈林是.无线传感器网络技术与应用.电子工业出版社,2009
[2] 高守玮,吴灿阳.ZigBee技术实践教程.北京航空航天大学出版社,2009
[3] 李文件,段如玉.ZigBee无线网络技术入门与实战.北京航空航天大学出版社,2007
[4] 金纯,罗祖秋,罗氏,陈前试.ZigBee技术基础及案例分析.国防工业出版社,2008
[5] 黄嘉辉.C#.NET网络程序设计.科学出版社,2004
[6] 厉小军.信息技术基础.浙江大学出版社,2005
[7——CC2430设计、开发与实践.国防工业出版社,2010
审
批
意
见
教研室负责人:
年月日
目 录
摘 要
目前现有的城市路灯控制系统大多采用有线连接的方式,系统成本高、功耗大、施工复杂,而且存在能源浪费、后期维护困难等问题。
针对以上缺点以道惟尔公司CC2430无线传感器节点和光照传感器模块为载体,基于IAR和VS2010开发环境,设计一个模拟道路灯光控制系统,实现对道路灯光亮灭进行控制,并接受上位机监控命令。
该系统采用了无线传感器网络和ZigBee技术,无线传感器网络是一种集无线通信、数据采集和信息处理功能于一体的新兴网络。
ZigBee技术是无线传感器网络中最具代表性的一种新兴技术,具有低成本、低功耗等特点。
将ZigBee技术应用于城市路灯控制系统,将有利于实现路灯控制系统的智能化和节能化。
关键词 CC2430无线传感器网络ZigBee
第1章 概述
在道路灯光控制中,为了实时地控制不同道路灯光的亮灭,需要一个分布式多点道路灯光控制系统。
传统的多点分布式道路灯光控制系统多采用有线传输方式,然而随着分布式节点的不断增加,系统的布线复杂度和成本也就极具增加,这给系统的设计、维护和升级带了许多不便。
如何解决有线网络带来的诸多不便已成为当下研究的热点。
无线传感器网络(WSN)具有自组织、可快速部署、屏蔽性强、无人值守等优点。
随着射频技术、集成电路技术的发展,无线通信功能的实现越来越容易,数据传输速率也越来越快,并且逐渐达到可以与有线网络相媲美的水平。
本设计旨在设计一种基于物联网的模拟道路灯光控制系统,用以实现对多个分散节点的灯光亮灭控制。
采用模块化设计,无论是硬件还是软件,各个分层间结构清楚。
在技术架构上,将感知、传输、应用分离,采用感知控制层、传输通信层、应用服务层三层架构设计。
第2章 系统组成与功能
2.1系统组成
本系统以模拟智能交通为载体,它由感知层子系统、传输层子系统、应用层子系统三个部分组成,如图2-1所示。
图2-1灯光系统组成
图2-1中,感知层子系统由开关量控制节点和模拟量控制节点等两类节点组成。
其中,灯光控制节点、电源控制节点三类是开关量控制节点。
传输层子系统是基于CC2430的ZigBee无线传输网。
所有感知层节点的控制指令均由应用层子系统通过通过串口下发给CC2430协调器,再由后者通过ZigBee无线网络下发给CC2430终端节点。
2.2 本系统涉及的主要功能
1.功能描述
智能灯光控制:
用户可以根据需要控制沙盘里的任意灯光。
WSN软件开发智能灯光控制系统:
系统能根据用户需要控制实时传回数据信息。
1)软启功能:
灯光的渐亮渐暗功能,能让眼睛免受灯光骤亮骤暗的刺激,同时还可以延长灯具的使用寿命。
2)按节点控制灯光:
控制某一节点灯光的亮灭状态,达到节能和便于管理的功效。
3)按区域控制灯光:
控制某一区域灯光的亮灭状态,使灯光更富人情味、成本低且便于管理。
4)开关联合:
轻松实现某节点或某区域所有灯光的一键的全关和全闭功能,触摸集中控制,使用更加方便。
2.控制功能如下:
本系统(基于物联网的灯光控制系统)是一个模拟城市道路灯光控制的系统,模拟该系统的沙盘有6条道路,如图2-2所示,每条道路上的路灯由若干组灯组组成,每组灯组通过控制单元与CC2430节点板相应端口连接。
本模拟系统的道路灯光分别由0803和0804两块节点板的P1端口控制,这样不仅可以控制单组灯组,还可以控制指定的范围内所有灯组。
例如现需要对太阳路偶数灯控制,只需要对该组灯组对应的0803节点板端口输出高低电平来进行控制。
若要对太阳路整条路进行同时控制,就需要对0803节点板的P端口和端口同时输出高低电平来进行同时控制。
以此类推,通过端口分配来实现对整条道路或者道路某一部分灯组的控制,端口分配见表2-1。
图2-2 道路分布图
表2-1 端口分配
星光大道
0803
星光大道南侧奇数灯
0xFB
0804
星光大道北侧偶数灯
0x6D
星光大道北侧奇数灯
星光大道南侧奇数灯
太阳路
0803
太阳路偶数灯
0xED
太阳路奇数灯
滨河路
0803
滨河路奇数灯
0xF7
0804
滨河路偶数灯
0xDF
月亮路
0804
月亮路
0xFB
水星路
0803
水星路奇数灯
0xBE
水星路偶数灯
银河大道
0803
银河大道南侧偶数灯
0x5F
银河大道北侧偶数灯
0804
银河大道南侧奇数灯
0xB7
银河大道北侧奇数灯
第3章 系统通讯协议规划
3.1 系统运行流程
道路灯光控制系统的运行主要包括注册网络、获取网络参数、下发控制指令等三方面的操作。
在道路灯光控制系统中服务器与CC2430协调器之间是通过串口进行通信,两者之间是需要使用统一的波特率、并按指定帧格式收发数据。
CC2430协调器与CC2430终端节点之间是通过ZigBee无线网络通信的,需要物理地址和网络地址。
CC2430终端节点是通过普通I/O口将控制命令转化为控制模块(执行机构)的驱动信号的。
3.1.1 注册网络
系统启动后,CC2430协调器首先建立无线网络,终端节点在发现网络后,会主动加入网络,并上传网络参数(物理地址、网络地址、节点类型等)。
注册网络的流程如图3-1所示。
图3-1 注册网络运行流程
3 获取网络参数
系统运行中,为及时发现掉线节点,系统会周期性去询问节点,要求返回网络参数。
获取网络参数的流程如图3-2所示。
图3-2 获取网络参数运行流程
3 下发控制指令
当需要改变各被控对象的运行状态时,系统就需要下发各类控制指令,其流程如图3-3所示。
图3-3 下发控制指令运行流程
3.2 通信协议规划
通讯协议是指连接不同操作系统和不同硬件体系结构的互联网络提供通信支持,是一种网络通用语言。
在本设计系统中,小灯的亮灭存在三方面的通讯。
为了满足协调器与CC2430终端节点的通讯因此制定了"协调器与CC2430终端节点的串口通讯协议",为满足各小灯的CC2430终端节点与CC2430协调器的WSN通讯从而制定了“各小灯的CC2430终端节点与CC2430协调器的WSN通讯协议”,为了使PC机与无线传感器网络协调器之间能够通讯因此制定了“PC机与CC2430协调器的通讯协议”。
3 规划原则
1)透明传输,将控制与传输分离。
2)ZigBee无线网支持广播、点对点通信。
3 WSN网络结构
1.WSN类型节点
1)协调器(Coordinator)
在无线传感网络中,有且只有一个协调器节点,它负责选择网络所使用的频率通道、建立网络并将其他节点加入网络、提供信息路由、安全管理和其他服务。
3)传感器节点(Sensor)
传感器节点的主要任务就是发送和接收信息,通常一个终端节点处在数据收发状态时可进入休眠状态以降低能耗。
2.网络拓扑选择本系统的无线网络基于Z-Stack协议栈完成,由于控制点不多、分布范围较窄,故采用星形网络拓扑结构,如图3-4所示。
图3-4 星形网络拓扑
3.2.3 通信协议
协议的规划应采用分层方式实施,以便明确边界。
对于本系统而言,整个协议从下自上为分三层,如图3-5所示。
图3-5 自定义协议的层次结构
1)网络间传输数据流的特点。
表3-1 数据流特点
序号
链路
方向
数据流功能
数据流大小
数据流内容
1
上行
注册网络(1-1)
>=24B
源节点物理地址(8B)
源节点网络地址(2B)
源节点的节点类型(3B)
父节点物理地址(8B)
父节点网络地址(2B)
目标节点提取的链路质量(1B)
上传网络参数
(2-4)
>=24B
源节点物理地址(8B)
源节点网络地址(2B)
源节点的节点类型(3B)
父节点物理地址(8B)
父节点网络地址(2B)
目标节点提取的链路质量(1B)
上传执行结果
(3-5)
>=11B
源节点物理地址(8B)
源节点网络地址(2B)
执行结果(1B)
2
下行
下发获取网络参数指令(2-3)
>=13B
目标节点物理地址(8B)
目标节点网络地址(2B)
帧功能标识(3B)
下发控制指令
(3-3)
>=14B
目标节点物理地址(8B)
目标节点网络地址(2B)
帧功能标识(3B)
控制参数(≥1B)
2)协议帧格式。
表3-2 无线网通信协议基本帧格式
内容
字节数
备注
帧头
&WSN
4
帧类型
3
帧长度
24
1
物理地址
8
功能复用:
(1)注册网络和获取网络参数时:
承载源节点物理地址(8B)、网络地址(2B);
(2)下发控制指令时:
承载目标节点物理地址(8B)、网络地址(2B);
(3)上传执行结果时:
承载源节点物理地址(8B)、网络地址(2B)。
网络地址
2
数据包
5
功能复用:
(1)注册网络和获取网络参数时:
18-19字节承载父节点网络地址(2B),20-22承载节点类型(3B);
(2)下发控制指令时:
承载控制参数(≥1B),没有用完的字节填充0;
(3)上传执行结果时:
承载执行结果(1B),没有用完的字节填充0。
连接质量
1
帧尾
END
3
3)表3-3,各字段含义。
表3-3 各字段含义
帧头
用于表明一帧数据的开始。
帧类型
用于指明传输的这一帧的数据的用途。
帧长度
用于指明接下来要传输的物理地址、网络地址、数据包等三字段的长度。
物理地址
功能复用。
网络地址
功能复用。
数据包
用于指明通信中具有实质意义的数据。
连接质量
用于指明WSN中节点与节点通信的链路的通信质量。
帧尾
用于表明一帧数据的结束。
4)帧类型简表。
表3-4 帧类型简表
帧类型功能
命令
备注
下行链路
下发获取网络参数指令(2-3)
RNP
ReadNodeNetworkParameters
读取节点网络参数
下发控制指令(3-3)
CPA
ControlbyPhysicalAddress
根据物理地址下发控制指令
CNA
ControlbyNetworkAddress
根据网络地址下发控制指令
5)帧类型详表。
表3-5 JNS帧类型详表
功能
类型
详细解释
JNS
注册网络
(1)用途:
终端节点新加入网络后,向协调器发送节点入网信息。
(2)终端节点上传到协调器的数据
项目
字节数
内容
帧头
4B
&WSN
帧类型
3B
JNS
帧长度
1B
0x18
物理地址
8B
源节点物理地址
网络地址
2B
源节点网络地址
数据包
7B
[0-1字节]父节点网络地址
[2-4字节]节点类型(终端节点:
RFD)
连接质量
1B
协调器收到节点数据后的连接质量数据
帧尾
3B
END
(3)使用步骤
1)协调器建立网络
2)启动终端节点
3)终端节点主动上传入网信息。
字符串示例
表3-6 CPA帧类型详表
功能
类型
详细解释
CPA
下发控制指令
(1)用途:
根据网络地址下发控制指令。
(2)协调器下发到终端的数据
项目
字节数
内容
帧头
4B
&WSN
帧类型
3B
CPA
帧长度
1B
0x12
物理地址
8B
目标节点物理地址
网络地址
2B
目标节点网络地址
数据包
7B
[1字节]灯组号
[2-3字节]控制状态
[4-7字节]0000
连接质量
1B
协调器收到节点数据后的连接质量数据
帧尾
3B
END
(3)使用步骤及示例
1)启动协调器和终端节点
2)向终端下发控制指令
3)终端节点接收下发的指令
字符串示例:
表3-7 RNP帧类型详表
功能
类型
详细解释
RNP
下发获取网络参数指令
(1)用途:
协调器向终端下发获取网络
(2)由协调器下发到路由器或终端的数据
项目
字节数
内容
帧头
4B
&WSN
帧类型
3B
RNP
帧长度
1B
0x12
物理地址
8B
源节点物理地址
网络地址
2B
源节点网络地址
数据包
7B
00000000
连接质量
1B
协调器收到节点数据后的连接质量数据
帧尾
3B
END
(3)使用步骤及示例
1)下发获取网络参数指令
2)启动协调器
3)协调器下发信息给终端,并判断是否接收?
字符串示例:
第4章 WSN无线网络软件开发与测试
本设计中,应实现路灯协调器与PC之间的无线通讯。
ZigBee无线传感器网络软件主要功能是将协调器上传的数据进行处理并上传到PC,再将PC下发的数据传到路灯。
本任务将依据任务二中所分析出来的通信协议,进行无线传感网的软件开发,通过本任务的学习,可以达到以下目标:
1.能结合实际,描述ZigBee协议栈的任务调度流程。
2.能根据规划的通讯协议,编程实现所需功能。
4.1 无线传感器网络(WSN)简介
4.1.1 无线传感器网络概念
WSN是wirelesssensornetwork的简称,即无线传感器网络。
无线传感器网络(WirelessSensorNetwork,WSN)就是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是实时监测、感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者。
传感器、感知对象和观察者构成了无线传感器网络的三个要素。
4 数据结构设计
(1)串口发送数据结构设计
根据所制定的串口通讯协议,首先定义串口发送数据结构体如下:
typedefstruct
{uint8Head[4]//帧头
uint8func[3];//帧类型
uint8len[1]//帧长度
uint8phyaddr[8];//物理地址
uint16netaddr[2];//网络地址
uint8dat[7];//数据
int8Tail[3];//帧尾
}UartSendBuf;
同时,为了操作方便,定义了一个数组,指向结构体typedefstruct,二者构成一个串口发送数据缓冲区共用体。
其代码如下:
Typedefunion
tpedefunion
{
uint8RfSendBuf.DatArr[27];
UartRfStructuartRfStructBuff;
}RfUartDataUnion
收发数据缓冲区变量定义
externRfUartDataUnionUartReceBuf;//串口接收缓冲区(用于MT层)
RfUartDataUnionUartSendBuf;//串口发送缓冲区
RfUartDataUnionRfSendBuf;//射频发送缓冲区
RfUartDataUnionRfReceBuf;//射频接收缓冲区
4.2 基于Z-Stack协议栈应用程序的开发
4.2.1 网络拓扑选择
本系统的无线网络基于Z-Stack协议栈完成,由于监测点不多、分布范围较窄,故采用星形网络拓扑结构。
4.2.2 Z-Stack无线网络运行的基本流程
为了方便任务管理,ZigBee2006协议栈协议栈定义了OSAL层(OperationSstem
AbstractionLaer,操作系统抽象层。
OSAL完全构建在应用层上,主要是采用了轮询的概念,并且引入了优先级。
它的主要作用是隔离Z-Stack协议栈和特定硬件系统,用户无须过多了解具体平台的底层,就可以利用操作系统抽象层提供的丰富工具实现各种功能,包括任务注册、初始化和启动,同步任务,多任务间的消息传递,中断处理,定时器控制,内存定位等。
图3.1表示的是Z-Stack的启动流程和OSAL所处的位置。
OSAL中判断事件发生是通过tasksEvents[idx]任务事件数组来进行的[28][29]。
在OSAL初始化的时候,tasksEvents[]数组被初始化为零,一旦系统中有事件发生,就用osal_set_event函数把tasksEvents[taskID]赋值为对应的事件。
不同的任务有不同的taskID,这样任务事件数组tasksEvents中就表示了系统中哪些任务存在没有处理的事件Z-Stack的启动流程和OSAL所处位置流程图如图4-1所示:
图4-1 ZigBee2007Pro协议栈OSAL流程图
然后就会调用各任务处理对应的事件,任务是OSAL中很重要的概念。
任务通过函数指针来调用,参数有两个:
任务标识符(taskID)和对应的事件(event)。
Z-Stack中就已经有7种默认的任务了,它们存储在taskArr这个函数指针数组中。
定义如下:
constpTaskEventHandlerFntasksArr[]={macEventLoop,nwk_event_loop,
Hal_ProcessEvent,
#ifdefined(MT_TASK)
MT_ProcessEvent,#endif
APS_event_loop,
ZDApp_event_loop,
Water_Monitor_ProcessEvent};
从7个事件的名字就可以看出,每个默认的任务对应着的是协议的层次。
从上到下则反映出了任务的优先级,如MAC事件处理macEventLoop的优先级高于网路层事件处理nwk_event_loop。
系统是按照死循环形式工作的,模拟了通常的多任务操作系统,把CPU分成N个时间片,在高速的频率下感觉就是同时运行多个任务了。
4.3 基于ZigBee2006的无线传感网组网编程
ZigBee无线网络的工作过程如图3.2所示。
首先由协调器建立网络,然后路由器和终端节点发现网络,并在加入网络后主动向协调器上报网络参数,然后转入等候命令状态。
协调器在收到路由器和终端节点的入网信息后,通过ZigBee-ARM网关上报到应用层子系统的服务器中,然后转入等候命令状态。
若网关收到来自通信服务器的socket命令,经解析后通过串口送往ZigBee协调器,再下发到终端节点
4 ZigBee无线网络的工作过程流程图
ZigBee无线网络的工作过程流程图如图4-2所示:
图4-2 ZigBee无线网络的工作过程流程图
协调器在收到路由器和终端节点的入网信息后,通过ZigBee_AMR网关上报到应用层子系统的服务器中,然后转入等候命令状态。
若网关收到来自服务器的socket命令,经解析后通过串口送往ZigBee协调器,在下发到终端节点。
4 函数调用类任务
1.射频发送数据封装函数的(RfSendDataFrame)使用方法。
(1)函数功能及参数声明如下
//函数功能:
射频发送数据封装函数
//参数说明:
uint8*func//帧类型,3B
//uint8*phyaddr//源节点物理地址,8B
//uint16netaddr//源节点网络地址,2B
//uuint8*dat//数据包,7B
voidRfSendDataFrame(uint8*func,uint8*phyaddr,uint16netaddr,uint8*dat);
(形参列表:
定义形式)
(2)如果已经有了功能码(func)、物理地址(phyaddr)、网络地址(netaddr)、数据(dat),定义如下:
uint8func[3];//帧类型
uint8phyaddr;//物理地址
uint16netaddr;//网络地址
uint8dat[7];//数据
(3)首先将帧类型设置为”JNS”(注册网络),物理地址和网络地址为自动提取源节点的物理地址和网络地址,按协议装数据包,然后再封装为射频发送数据,实现代码如下。
uint8func[3];//帧类型
uint8*phyaddr;//物理地址
uint16netaddr;//网络地址
uint8dat[7];//数据
//装帧头
func[0]=‘J’;
func[1]=‘N’;
func[2]=‘S’;
//装物理地址
uint8*ieeeAddr;
ieeeAddr=NLME_GetExtAddr();
uint8i;
for(i=0;i<7;i++)
{
phyaddr[i]=*(uint8*)(ieeeAddr+i);
}
//装网络地址
netaddr=NLME_GetShortAddr();
//装数据包:
节点类型(3B)、父节点网络地址(2B)、参数(2B)
dat[0]=‘R’;
dat[1]=‘F’;
dat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 联网 灯光 控制系统 组网 设计