基于物联网的灯光控制系统——组网设计_第1页
基于物联网的灯光控制系统——组网设计_第2页
基于物联网的灯光控制系统——组网设计_第3页
基于物联网的灯光控制系统——组网设计_第4页
基于物联网的灯光控制系统——组网设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计说明书 设计题目: 基于物联网的灯光控制系统 组网设计 专 业: 物联网应用技术 班 级: 物联网XX 学 号: 姓 名: 指导教师: 二O一四年十二月二十日设计内容:课题简介:以道惟尔公司CC2430无线传感器节点和光照传感器模块为载体,基于IAR和VS2010开发环境,设计一个灯光控制系统,实现对道路灯光亮灭进行控制,并接受上位机监控命令。主要任务:(1)传输层WSN组网程序与透明传输层程序开发;(2)撰写设计报告。主要技术要求如下:(1)采用模块化设计思想规划各子程序功能;(2)无线传感器网络通讯的基本数据帧格式为:帧头、父节点地址、源节点地址、数据长度、数据、帧尾。(3)CC2

2、430协调器与PC串口通讯的基本数据帧格式为:帧头、功能码、数据长度、数据、帧尾;(4)传输层应实现透明传输。进度安排:1. 任务分解,收集有关资料并消化吸收-2周;2. 制定设计方案-1周;3. 软件设计-6周;4. 撰写设计报告-2周;5. 准备毕业答辩。主要参考文献、资料(写清楚参考文献名称、作者、出版单位):1陈林是.无线传感器网络技术与应用.电子工业出版社,20092高守玮,吴灿阳.ZigBee技术实践教程.北京航空航天大学出版社,20093李文件,段如玉.ZigBee无线网络技术入门与实战.北京航空航天大学出版社,20074金纯,罗祖秋,罗氏,陈前试.ZigBee技术基础及案例分析

3、.国防工业出版社,20085黄嘉辉.C#.NET网络程序设计.科学出版社,20046厉小军.信息技术基础.浙江大学出版社,20057郭渊博,杨魁武,赵俭.ZigBee技术与应用CC2430设计、开发与实践.国防工业出版社,2010审批意见教研室负责人:年 月 日目录摘要1第1章概 述2第2章系统组成与功能32.1 系统组成32.2本系统涉及的主要功能4第3章系统通讯协议规划63.1系统运行流程63.1.1注册网络63.1.2获取网络参数63.1.3下发控制指令73.2通信协议规划73.2.1规划原则83.2.2WSN网络结构83.2.3通信协议9第4章WSN无线网络软件开发与测试134.1无线

4、传感器网络(WSN)简介134.1.1无线传感器网络概念134.1.2数据结构设计134.2基于Z-Stack协议栈应用程序的开发144.2.1网络拓扑选择144.2.2Z-Stack无线网络运行的基本流程144.3基于ZigBee2006的无线传感网组网编程164.3.1ZigBee无线网络的工作过程流程图164.3.2函数调用类任务164.3.3WSN点对点发送数据函数194.3.4协调器把从串口接受的PC数据转发给下级节点函数21第5章Server服务端软件开发与测试235.1三层架构程序设计简介235.2CC2430终端节点对灯组的控制I/O口的分配关系24总结25致谢26参考文献27

5、附录一28II摘要目前现有的城市路灯控制系统大多采用有线连接的方式,系统成本高、功耗大、施工复杂,而且存在能源浪费、后期维护困难等问题。针对以上缺点以道惟尔公司CC2430无线传感器节点和光照传感器模块为载体,基于IAR和VS2010开发环境,设计一个模拟道路灯光控制系统,实现对道路灯光亮灭进行控制,并接受上位机监控命令。该系统采用了无线传感器网络和ZigBee技术,无线传感器网络是一种集无线通信、数据采集和信息处理功能于一体的新兴网络。ZigBee技术是无线传感器网络中最具代表性的一种新兴技术,具有低成本、低功耗等特点。将ZigBee技术应用于城市路灯控制系统,将有利于实现路灯控制系统的智能

6、化和节能化。关键词CC2430 无线传感器网络 ZigBee第2页第1章概 述在道路灯光控制中,为了实时地控制不同道路灯光的亮灭,需要一个分布式多点道路灯光控制系统。传统的多点分布式道路灯光控制系统多采用有线传输方式,然而随着分布式节点的不断增加,系统的布线复杂度和成本也就极具增加,这给系统的设计、维护和升级带了许多不便。如何解决有线网络带来的诸多不便已成为当下研究的热点。无线传感器网络(WSN)具有自组织、可快速部署、屏蔽性强、无人值守等优点。随着射频技术、集成电路技术的发展,无线通信功能的实现越来越容易,数据传输速率也越来越快,并且逐渐达到可以与有线网络相媲美的水平。本设计旨在设计一种基于

7、物联网的模拟道路灯光控制系统,用以实现对多个分散节点的灯光亮灭控制。采用模块化设计,无论是硬件还是软件,各个分层间结构清楚。在技术架构上,将感知、传输、应用分离,采用感知控制层、传输通信层、应用服务层三层架构设计。第2章系统组成与功能2.1 系统组成本系统以模拟智能交通为载体,它由感知层子系统、传输层子系统、应用层子系统三个部分组成,如图2-1所示。图2-1灯光系统组成图2-1中,感知层子系统由开关量控制节点和模拟量控制节点等两类节点组成。其中,灯光控制节点、电源控制节点三类是开关量控制节点。传输层子系统是基于CC2430的ZigBee无线传输网。所有感知层节点的控制指令均由应用层子系统通过通

8、过串口下发给CC2430协调器,再由后者通过ZigBee无线网络下发给CC2430终端节点。第34页2.2本系统涉及的主要功能1.功能描述智能灯光控制:用户可以根据需要控制沙盘里的任意灯光。WSN软件开发智能灯光控制系统:系统能根据用户需要控制实时传回数据信息。1)软启功能:灯光的渐亮渐暗功能,能让眼睛免受灯光骤亮骤暗的刺激,同时还可以延长灯具的使用寿命。2)按节点控制灯光:控制某一节点灯光的亮灭状态,达到节能和便于管理的功效。3)按区域控制灯光:控制某一区域灯光的亮灭状态,使灯光更富人情味、成本低且便于管理。4)开关联合:轻松实现某节点或某区域所有灯光的一键的全关和全闭功能,触摸集中控制,使

9、用更加方便。2.控制功能如下:本系统(基于物联网的灯光控制系统)是一个模拟城市道路灯光控制的系统,模拟该系统的沙盘有6条道路,如图2-2所示,每条道路上的路灯由若干组灯组组成,每组灯组通过控制单元与CC2430节点板相应端口连接。本模拟系统的道路灯光分别由0803和0804两块节点板的P1端口控制,这样不仅可以控制单组灯组,还可以控制指定的范围内所有灯组。例如现需要对太阳路偶数灯控制,只需要对该组灯组对应的0803节点板P1.3端口输出高低电平来进行控制。若要对太阳路整条路进行同时控制,就需要对0803节点板的P1.3端口和P1.6端口同时输出高低电平来进行同时控制。以此类推,通过端口分配来实

10、现对整条道路或者道路某一部分灯组的控制,端口分配见表2-1。图2-2道路分布图表2-1端口分配星光大道0803P1.5星光大道南侧奇数灯0xFB0804P1.0星光大道北侧偶数灯0x6DP1.3星光大道北侧奇数灯P1.6星光大道南侧奇数灯太阳路0803P1.3太阳路偶数灯0xEDP1.6太阳路奇数灯滨河路0803P1.4滨河路奇数灯0xF70804P1.2滨河路偶数灯0xDF月亮路0804P1.5月亮路0xFB水星路0803P1.1水星路奇数灯0xBEP1.7水星路偶数灯银河大道0803P1.0银河大道南侧偶数灯0x5FP1.2银河大道北侧偶数灯0804P1.1银河大道南侧奇数灯0xB7P1.

11、4银河大道北侧奇数灯第3章系统通讯协议规划3.1系统运行流程道路灯光控制系统的运行主要包括注册网络、获取网络参数、下发控制指令等三方面的操作。在道路灯光控制系统中服务器与CC2430协调器之间是通过串口进行通信,两者之间是需要使用统一的波特率、并按指定帧格式收发数据。CC2430协调器与CC2430终端节点之间是通过ZigBee无线网络通信的,需要物理地址和网络地址。CC2430终端节点是通过普通I/O口将控制命令转化为控制模块(执行机构)的驱动信号的。3.1.1注册网络系统启动后,CC2430协调器首先建立无线网络,终端节点在发现网络后,会主动加入网络,并上传网络参数(物理地址、网络地址、节

12、点类型等)。注册网络的流程如图3-1所示。图3-1注册网络运行流程3.1.2获取网络参数系统运行中,为及时发现掉线节点,系统会周期性去询问节点,要求返回网络参数。获取网络参数的流程如图3-2所示。图3-2获取网络参数运行流程3.1.3下发控制指令当需要改变各被控对象的运行状态时,系统就需要下发各类控制指令,其流程如图3-3所示。图3-3下发控制指令运行流程3.2通信协议规划通讯协议是指连接不同操作系统和不同硬件体系结构的互联网络提供通信支持,是一种网络通用语言。在本设计系统中,小灯的亮灭存在三方面的通讯。为了满足协调器与CC2430终端节点的通讯因此制定了"协调器与CC2430终端节

13、点的串口通讯协议",为满足各小灯的CC2430终端节点与CC2430协调器的WSN通讯从而制定了“各小灯的CC2430终端节点与CC2430协调器的WSN通讯协议”,为了使PC机与无线传感器网络协调器之间能够通讯因此制定了“PC机与CC2430协调器的通讯协议”。3.2.1规划原则1)透明传输,将控制与传输分离。2)ZigBee无线网支持广播、点对点通信。3.2.2WSN网络结构1.WSN类型节点 1)协调器(Coordinator) 在无线传感网络中,有且只有一个协调器节点,它负责选择网络所使用的频率通道、建立网络并将其他节点加入网络、提供信息路由、安全管理和其他服务。 3)传感器

14、节点(Sensor) 传感器节点的主要任务就是发送和接收信息,通常一个终端节点处在数据收发状态时可进入休眠状态以降低能耗。 2. 网络拓扑选择本系统的无线网络基于Z-Stack协议栈完成,由于控制点不多、分布范围较窄,故采用星形网络拓扑结构,如图3-4所示。图3-4星形网络拓扑3.2.3通信协议协议的规划应采用分层方式实施,以便明确边界。对于本系统而言,整个协议从下自上为分三层,如图3-5所示。图3-5自定义协议的层次结构1)网络间传输数据流的特点。表3-1数据流特点序号链路方向数据流功能数据流大小数据流内容1上行注册网络(1-1)>=24B源节点物理地址(8B)源节点网络地址(2B)源

15、节点的节点类型(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)

16、控制参数(1B)2)协议帧格式。表3-2无线网通信协议基本帧格式内容字节数备注帧头&WSN4帧类型3帧长度241物理地址8功能复用: (1)注册网络和获取网络参数时:承载源节点物理地址(8B)、网络地址(2B); (2)下发控制指令时:承载目标节点物理地址(8B)、网络地址(2B);(3)上传执行结果时:承载源节点物理地址(8B)、网络地址(2B)。网络地址2数据包5功能复用: (1)注册网络和获取网络参数时:18-19字节承载父节点网络地址(2B),20-22承载节点类型(3B); (2)下发控制指令时:承载控制参数(1B),没有用完的字节填充0; (3)上传执行结果时:承载执行结果

17、(1B),没有用完的字节填充0。连接质量1帧尾END33)表3-3,各字段含义。表3-3各字段含义帧头用于表明一帧数据的开始。帧类型用于指明传输的这一帧的数据的用途。帧长度用于指明接下来要传输的物理地址、网络地址、数据包等三字段的长度。物理地址功能复用。网络地址功能复用。数据包用于指明通信中具有实质意义的数据。连接质量用于指明 WSN 中节点与节点通信的链路的通信质量。帧尾用于表明一帧数据的结束。4)帧类型简表。表3-4帧类型简表帧类型功能命令备注下行链路下发获取网络参数指令 (2-3)RNPRead Node Network Parameters读取节点网络参数下发控制指令 (3-3)CPA

18、Control by Physical Address 根据物理地址下发控制指令CNAControl by Network Address 根据网络地址下发控制指令5)帧类型详表。表3-5JNS帧类型详表功能类型详细解释JNS注册网络(1)用途:终端节点新加入网络后,向协调器发送节点入网信息。(2)终端节点上传到协调器的数据项目字节数内容帧头4B&WSN帧类型3BJNS帧长度1B0x18物理地址8B源节点物理地址网络地址2B源节点网络地址数据包7B0-1字节父节点网络地址2-4字节节点类型(终端节点:RFD)连接质量1B协调器收到节点数据后的连接质量数据帧尾3BEND(3)使用步骤1)

19、协调器建立网络 2)启动终端节点 3)终端节点主动上传入网信息。字符串示例:&WSNJNS123456780100RFD5END表3-6CPA帧类型详表功能类型详细解释CPA下发控制指令(1)用途:根据网络地址下发控制指令。(2)协调器下发到终端的数据项目字节数内容帧头4B&WSN帧类型3BCPA帧长度1B0x12物理地址8B目标节点物理地址网络地址2B目标节点网络地址数据包7B1字节灯组号2-3字节控制状态4-7字节0000连接质量1B协调器收到节点数据后的连接质量数据帧尾3BEND(3)使用步骤及示例1)启动协调器和终端节点2)向终端下发控制指令3)终端节点接收下发的指令字

20、符串示例:&WSNCPA123456780100RFD5END表3-7RNP帧类型详表功能类型详细解释RNP下发获取网络参数指令(1)用途:协调器向终端下发获取网络(2)由协调器下发到路由器或终端的数据项目字节数内容帧头4B&WSN帧类型3BRNP帧长度1B0x12物理地址8B源节点物理地址网络地址2B源节点网络地址数据包7B00000000连接质量1B协调器收到节点数据后的连接质量数据帧尾3BEND(3)使用步骤及示例1)下发获取网络参数指令2)启动协调器3)协调器下发信息给终端,并判断是否接收?字符串示例:&WSNRNP123456780100RFD5END第4章W

21、SN无线网络软件开发与测试本设计中,应实现路灯协调器与PC之间的无线通讯。ZigBee无线传感器网络软件主要功能是将协调器上传的数据进行处理并上传到PC,再将PC下发的数据传到路灯。 本任务将依据任务二中所分析出来的通信协议,进行无线传感网的软件开发,通过本任务的学习,可以达到以下目标:1.能结合实际,描述ZigBee协议栈的任务调度流程。2.能根据规划的通讯协议,编程实现所需功能。4.1无线传感器网络(WSN)简介4.1.1无线传感器网络概念WSN是wireless sensor network的简称,即无线传感器网络。 无线传感器网络(Wireless Sensor Network, WS

22、N)就是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是实时监测、感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者。传感器、感知对象和观察者构成了无线传感器网络的三个要素。4.1.2数据结构设计(1)串口发送数据结构设计根据所制定的串口通讯协议,首先定义串口发送数据结构体如下:typedef struct uint8 Head4/帧头uint8 func3; /帧类型uint8 len1/帧长度uint8 phyaddr8; /物理地址uint16 netaddr 2 ; /网络地址uint8 dat7; /数据int8

23、Tail3; /帧尾 UartSendBuf;同时,为了操作方便,定义了一个数组,指向结构体typedef struct,二者构成一个串口发送数据缓冲区共用体。其代码如下:Typedef uniontpedef unionuint8 RfSendBuf.DatArr 27;UartRfStruct uartRfStructBuff; RfUartDataUnion收发数据缓冲区变量定义extern RfUartDataUnion UartReceBuf; /串口接收缓冲区(用于MT层)RfUartDataUnion UartSendBuf; /串口发送缓冲区RfUartDataUnion Rf

24、SendBuf; /射频发送缓冲区RfUartDataUnion RfReceBuf; /射频接收缓冲区4.2基于Z-Stack协议栈应用程序的开发4.2.1网络拓扑选择本系统的无线网络基于Z-Stack协议栈完成,由于监测点不多、分布范围较窄,故采用星形网络拓扑结构。4.2.2Z-Stack无线网络运行的基本流程为了方便任务管理,ZigBee 2006 协议栈协议栈定义了OSAL 层(Operation SstemAbstraction Laer,操作系统抽象层。OSAL完全构建在应用层上,主要是采用了轮询的概念,并且引入了优先级。它的主要作用是隔离 Z-Stack 协议栈和特定硬件系统,用

25、户无须过多了解具体平台的底层,就可以利用操作系统抽象层提供的丰富工具实现各种功能,包括任务注册、初始化和启动,同步任务,多任务间的消息传递,中断处理,定时器控制,内存定位等。图 3.1 表示的是 Z-Stack 的启动流程和 OSAL 所处的位置。OSAL 中判断事件发生是通过 tasksEventsidx任务事件数组来进行的2829。 在 OSAL初始化的时候,tasksEvents数组被初始化为零,一旦系统中有事件发生,就用osal_set_event 函数把 tasksEventstaskID赋值为对应的事件。不同的任务有不同的taskID,这样任务事件数组 tasksEvents 中就

26、表示了系统中哪些任务存在没有处理的事件Z-Stack的启动流程和OSAL所处位置流程图如图4-1所示:图4-1ZigBee 2007Pro协议栈OSAL流程图然后就会调用各任务处理对应的事件,任务是 OSAL 中很重要的概念。任务通过函数指针来调用,参数有两个:任务标识符(taskID)和对应的事件(event)。Z-Stack 中就已经有 7种默认的任务了,它们存储在 taskArr 这个函数指针数组中。定义如下:const pTaskEventHandlerFn tasksArr = macEventLoop, nwk_event_loop,Hal_ProcessEvent,#if def

27、ined( MT_TASK )MT_ProcessEvent, #endifAPS_event_loop,ZDApp_event_loop,Water_Monitor_ProcessEvent;从 7 个事件的名字就可以看出,每个默认的任务对应着的是协议的层次。从上到下则反映出了任务的优先级,如 MAC 事件处理 macEventLoop 的优先级高于网路层事件处理nwk_event_loop。系统是按照死循环形式工作的,模拟了通常的多任务操作系统,把 CPU 分成 N 个时间片,在高速的频率下感觉就是同时运行多个任务了。4.3基于ZigBee2006的无线传感网组网编程ZigBee 无线网络

28、的工作过程如图 3.2 所示。首先由协调器建立网络,然后路由器和终端节点发现网络,并在加入网络后主动向协调器上报网络参数,然后转入等候命令状态。协调器在收到路由器和终端节点的入网信息后,通过 ZigBee-ARM 网关上报到应用层子系统的服务器中,然后转入等候命令状态。若网关收到来自通信服务器的 socket 命令,经解析后通过串口送往 ZigBee 协调器,再下发到终端节点4.3.1ZigBee无线网络的工作过程流程图ZigBee无线网络的工作过程流程图如图4-2所示: 图4-2ZigBee无线网络的工作过程流程图协调器在收到路由器和终端节点的入网信息后,通过ZigBee_AMR网关上报到应

29、用层子系统的服务器中,然后转入等候命令状态。若网关收到来自服务器的socket命令,经解析后通过串口送往ZigBee协调器,在下发到终端节点。4.3.2函数调用类任务1.射频发送数据封装函数的(RfSendDataFrame)使用方法。(1)函数功能及参数声明如下/函数功能:射频发送数据封装函数/参数说明:uint8 *func /帧类型,3B/ uint8 *phyaddr /源节点物理地址,8B/ uint16 netaddr /源节点网络地址,2B/ uuint8 *dat /数据包,7Bvoid RfSendDataFrame( uint8 *func, uint8 *phyaddr,

30、 uint16 netaddr, uint8 *dat);(形参列表:定义形式)(2)如果已经有了功能码(func)、物理地址(phyaddr)、网络地址(netaddr)、数据(dat),定义如下: uint8 func3; /帧类型 uint8 phyaddr; /物理地址 uint16 netaddr; /网络地址 uint8 dat7; /数据(3)首先将帧类型设置为”JNS”(注册网络), 物理地址和网络地址为自动提取源节点的物理地址和网络地址,按协议装数据包,然后再封装为射频发送数据,实现代码如下。uint8 func3; /帧类型uint8 *phyaddr; /物理地址uint

31、16 netaddr; /网络地址uint8 dat7; /数据/装帧头func0=J;func1=N;func2=S;/装物理地址uint8 *ieeeAddr;ieeeAddr = NLME_GetExtAddr();uint8 i;for(i=0;i<7;i+) phyaddr i= *(uint8 *)(ieeeAddr+i);/装网络地址netaddr = NLME_GetShortAddr();/装数据包:节点类型(3B)、父节点网络地址(2B)、参数(2B)dat0=R;dat1=F;dat2=D;fatheraddr = NLME_GetCoordShortAddr();

32、dat 3 = HI_UINT16(fatheraddr); dat 4 = LO_UINT16(fatheraddr);dat 5 =0;dat 6 =0;RfSendDataFrame(func, phyaddr, netaddr, dat);(1)再将帧类型设置为 “CPA ”(下发控制指令),物理地址和网络地址为自动提取源节点的物理地址和网络地址按协议装数据包,然后再封装为射频发送数据,实现代码如下。uint8 func3; /帧类型uint8 phyaddr; /物理地址uint16 netaddr; /网络地址uint8 dat7; /数据/装帧头func0=C;func1=P;f

33、unc2=A;/装物理地址uint8 *ieeeAddr;ieeeAddr = NLME_GetExtAddr();uint8 i;for(i=0;i<7;i+) phyaddr i= *(uint8 *)(ieeeAddr+i);/装网络地址netaddr = NLME_GetShortAddr();/装数据包dat0=11001111;/别墅灯dat1=O;dat2=N;dat 3 = 0; dat 4 = 0;dat 5 =0;dat 6 =0;RfSendDataFrame(func, phyaddr, netaddr, dat);(2)将帧类型设置为“RNP”(下发获取网络参数

34、指令),物理地址和网络地址为自动提取源节点的物理地址和网络地址按协议装数据包,然后再封装为射频发送数据实现代码如下。uint8 func3; /帧类型uint8 *phyaddr; /物理地址uint16 netaddr; /网络地址uint8 dat7; /数据/装帧头func0=R;func1=N;func2=P;/装物理地址uint8 *ieeeAddr;ieeeAddr = NLME_GetExtAddr();uint8 i;for(i=0;i<7;i+) phyaddr i= *(uint8 *)(ieeeAddr+i);/装网络地址netaddr = NLME_GetShor

35、tAddr();/装数据包dat0=0;dat1=0;dat2=0;dat 3 = 0; dat 4 = 0;dat 5 =0;dat 6 =0;RfSendDataFrame(func, phyaddr, netaddr, dat);4.3.3WSN点对点发送数据函数WSN点对点发送数据函数的(RfSendDataFuncP2P )使用方法。 /(1)帧类型 func0 = 'S' func1 = 'P' func2 = 'S' /(2)封装物理地址:8字节 phyaddr = NLME_GetExtAddr(); /(3)封装网络地址:2字节

36、 netaddr = NLME_GetShortAddr(); /(4)数据包 fatheraddr = NLME_GetCoordShortAddr(); dat0 = LO_UINT16(fatheraddr); dat1 = HI_UINT16(fatheraddr); if(SampleApp_NwkState = DEV_ROUTER) /路由器节点 dat2 = 'R' dat3 = 'O' dat4 = 'U' else if(SampleApp_NwkState = DEV_END_DEVICE)/终端节点 dat2 = '

37、;R' dat3 = 'F' dat4 = 'D' /(5)调用函数,封装数据 RfSendDataFrame(func,phyaddr,netaddr,dat); /第二步:上传数据:将RfSendBuf的数据发送到协调器 RfSendDataFuncP2P( 0x0000, SAMPLEAPP_ONLINE_CLUSTERID, RfSendBuf.DatArr, 29); /第三步:重启SAMPLEAPP_OnLine_MSG_EVT事 osal_start_timerEx( SampleApp_TaskID,SAMPLEAPP_OnLine_MS

38、G_EVT, SampleApp_OnLine_MSG_TIMEOUT ); #endif /第四步:从消息队列中删除 return (events SAMPLEAPP_OnLine_MSG_EVT); return 0;4.3.4协调器把从串口接受的PC数据转发给下级节点函数协调器收到PC的串口数据后,将数据转发到WSN的函数(UartRxComCallBack)使用方法。#ifdef SCITC_Coordinator memset(UartSendBuf.DatArr,0,27); if(pkt->cmd.DataLength <= 27) /复制数据到串口发送变量 memc

39、py(UartSendBuf.DatArr,pkt->cmd.Data,pkt->cmd.DataLength); /修改帧头 UartSendBuf.DatStr.Head0 = '&' UartSendBuf.DatStr.Head1 = 'W' UartSendBuf.DatStr.Head2 = 'T' UartSendBuf.DatStr.Head3 = 'N' switch ( pkt->clusterId ) case SAMPLEAPP_JOIN_NWK_CLUSTERID: HalUAR

40、TWrite (HAL_UART_PORT_0UartSendBuf.DatArr, 27); break; case SAMPLEAPP_ONLINE_CLUSTERID: /周期性上传的入网消息簇 HalUARTWrite ( HAL_UART_PORT_0, UartSendBuf.DatArr,; break; case SAMPLEAPP_DATAMSG_CLUSTERID: /如果上传的实时数据 HalUARTWrite ( HAL_UART_PORT_0, UartSendBuf.DatArr,; break; default:break; #endif串口业务逻辑设计程序流程图

41、如图4-3所示。图4-3串口业务逻辑设计程序流程图第5章Server服务端软件开发与测试PC展示层软件用于实时接收ZigBee无限传感器网络上报的各交通路灯的亮灭状态,在本展示层软件中,主要分为窗体表示层、业务逻辑层、数据访问层。5.1三层架构程序设计简介1.数据访问层在三层架构设计中,数据访问层一般用于对数据库进行各项操作,即实现对数据表的Select、Insert、Update、Delete操作。本项目不涉及数据库的操作,因此数据访问层的功能主要是完成串口的操作,包括获取可用串口、打开串口、关闭串口、通过串口收发数据等。2.业务逻辑层业务逻辑层是三层架构设计中体现核心价值的部分,主要负责业

42、务规划的制定、业务流程的实现。3.窗体表示层 表示层位于离用户最近的最上层,用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。三层架构设计方框图如图5-1所示:图5-1三层架构设计方5.2CC2430终端节点对灯组的控制I/O口的分配关系各区域灯光控制分配端口如下表5-1所示:表5-1区域灯光控制星光大道0803P1.5星光大道南侧奇数灯0xFB0804P1.0星光大道北侧偶数灯0x6DP1.3星光大道北侧奇数灯P1.6星光大道南侧奇数灯太阳路0803P1.3太阳路偶数灯0xEDP1.6太阳路奇数灯滨河路0803P1.4滨河路奇数灯0xF70804P1.2滨河路偶数灯0xDF月

43、亮路0804P1.5月亮路0xFB水星路0803P1.1水星路奇数灯0xBEP1.7水星路偶数灯银河大道0803P1.0银河大道南侧偶数灯0x5FP1.2银河大道北侧偶数灯0804P1.1银河大道南侧奇数灯0xB7P1.4银河大道北侧奇数灯总结这次毕业设计我们做的是基于物联网灯光控制系统的项目。我们项目组共有3位成员,大家各自负责项目的一部分,我主要做的是项目中的CC2430无线传感器网络层软件设计。由于这一块在本次设计中有承上启下的作用,如果处理不当就会在实际调试中造成系统无法运行。通过与指导老师的交流和小组的共同努力我们一一解决了相应的问题。通过这次毕业设计我也发现自己专业基础知识的不足之

44、处。比如缺乏综合应用专业知识的能力,对具体规范要求的不熟悉和对知识点的模糊,需要在做的过程中不断的去总结和查阅相关资料,在这个过程是对自己知识的不足之处的一个补充和巩固。这次毕业设计是对自己大学三年所学的一次大检阅,虽然马上要毕业了,但是自己的求学之路还很长,以后更应该在工作中学习,不断锻炼和提高自己的能力。在毕业设计期间,如果没有老师细心的指导,组员的帮助,而是自己一个人独自做设计,不与任何人交流,这是完全不行的,设计就是一个团队的工作,如果不能与他人进行良好的沟通与交流,那将会使自己困难重重。所以在本次毕业设计过程中,我懂得了一个道理,团结得力量,只有更好得与他人进行沟通与交流,吸取他人的

45、建议,工作才会更加的顺利。致谢在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,这些日子里,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!参考文献1陈林是.无线传感器网络技术与应用.电子工业出版社,20092高守玮,吴灿阳.ZigBee技术实践教程.北京航空航天大学出版社,20093李文件,段如玉.ZigBee无线网络技术入门与实战.北京航空航天大20074金纯,罗祖秋,罗氏,陈前试.ZigBee技术基础及案例分析.国防工业出版20085郭渊博,杨魁武,赵俭.ZigBee技术与应用CC2430设计、开发与实践.国防工业出版社,20106黄嘉辉.C#

46、.NET网络程序设计.科学出版社,20047厉小军.信息技术基础.浙江大学出版社,20058孙利民,李建中,李偷朱,红松.无线传感器网络.清华大学出版社,20059戴佳,戴卫.51单片机C语言应用程序设计实例精讲.电子工业出版社,200610宗小翀,袁启昌.C语言程序设计案例教程.清华大学出版社,200911吴金戌.8051单片机实践与应用.清华大学出版社,2003附录一#include "OSAL.h"#include "ZGlobals.h"#include "AF.h"#include "aps_groups.h&qu

47、ot;#include "ZDApp.h"#include "SampleApp.h"#include "SampleAppHw.h"#include "OnBoard.h"#include "string.h"#include "MT_UART.h"#include "HAL_ADC.h"/包含自定义头文件#include "RfUartDataStruct.h"/定义消息簇const cId_t SampleApp_ClusterL

48、istSAMPLEAPP_MAX_CLUSTERS = SAMPLEAPP_FLASH_CLUSTERID, SAMPLEAPP_JOIN_NWK_CLUSTERID, SAMPLEAPP_ONLINE_CLUSTERID, SAMPLEAPP_DATAMSG_CLUSTERID ;/定义终节点描述const SimpleDescriptionFormat_t SampleApp_SimpleDesc = SAMPLEAPP_ENDPOINT, SAMPLEAPP_PROFID, SAMPLEAPP_DEVICEID, SAMPLEAPP_DEVICE_VERSION, SAMPLEAPP_F

49、LAGS, SAMPLEAPP_MAX_CLUSTERS, (cId_t *)SampleApp_ClusterList, SAMPLEAPP_MAX_CLUSTERS, (cId_t *)SampleApp_ClusterList ;endPointDesc_t SampleApp_epDesc;/定义有关变量uint8 SampleApp_TaskID; devStates_t SampleApp_NwkState;uint8 SampleApp_TransID;uint16 SAMPLEAPP_MSG_TIMEOUT_Count = 0; /周期性上传网络参数信息uint8 *ieeeAddr;/物理地址extern RfUartDataUnion UartReceBuf; /串口接收缓冲区(用于MT层)RfUartDataUnion UartSendBuf; /串口发送缓冲区RfUartDataUnion RfSendBuf; /射频发送缓冲区RfUartDataUnion RfReceBuf; /射频接收缓冲区/函数声明extern void RfSendDataFrame( uint8 *func, uint8 *phyaddr, uint16 netaddr, uint8 *dat);extern uint8 CharCmp(uint8 *ptr1,uint8

温馨提示

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

评论

0/150

提交评论