




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密级: 公开 NANCHANG UNIVERSITY学 士 学 位 论 文THESIS OF BACHELOR(2011年 2015年)题 目 面向物联的袋式除尘器检测系统设计 学 院: 信息工程学院 系: 自动化系 专业班级: 测控技术与仪器112班 学生姓名: 陈鹏 学号: 5801211098 指导教师: 张宇 职称: 讲师 起讫日期: 2015.3.12015.6.2 I南 昌 大 学学士学位论文原创性申明本人郑重申明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本申明的法律后果由本人承担。作者签名: 日期:学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权南昌大学可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密,在 年解密后适用本授权书。本学位论文属于 不保密。(请在以上相应方框内打“”)作者签名: 日期:导师签名: 日期:摘要面向物联的袋式除尘器监测系统设计专 业:测控技术与仪器 学 号:5801211098学生姓名: 陈鹏 指导教师: 张宇摘要袋式除尘器内部布满了管道与阀门,为了实时了解袋式除尘器的工作状况,以及在出故障时及时发现问题,需要在袋式除尘器内部增加监测系统。以ZigBee为核心的无线传感网络系统具有短延时,低功耗,低成本,高可靠,高安全,网络容量大,网络自组织自愈的特点。本系统采用TI公司基于ZigBee协议研发的芯片CC2530,以及配套的协议栈Z-Stack,结合所需的传感器,实现数据采集,数据无线传输的功能。论文将会简要介绍ZigBee的框架,以及各层功能,将会涉及到一些基本概念。然后介绍TI公司的协议栈Z-Stack,主要包括OSAL(操作系统抽象层)的运行机理,各个文件的作用,最后会以按键为例描述事件的触发流程。接着介绍硬件系统设计,这部分主要参考TI公司官网提供的设计参考库。最后介绍如何利用CC2530和Z-Stack组建一个用户体验好的基础无线传感网络。这个无线传感网可以实现以下功能:数据传输,终端节点休眠,节点入网控制,网络自组织自愈,设置网络地址,配合上位机显示网络结构。关键字:ZigBee;Z-Stack;CC2530;休眠;入网控制;设置网络地址;显示网 络结构IAbstractDesign of Bag filter monitoring system for Internet of thingsAbstractThe bag filter is filled with pipeline and valve, so we should increase the monitoring system in the bag filter to know the working status of it in time and present the problem when it breaks down. The wireless sensor network system, which based on ZigBee, has the features of short delay, low power consumption, low cost, high reliability, high security, network self organization and self-healing of network.The system uses the supporting protocol stack Z-Stack and the chip CC2530, which is researched and developed based on ZigBee protocol, combining with the required sensor for data acquistion and wireless transmission function.The paper will briefly introduce the framework of ZigBee and the function of each layer, it will involve some basic concept.Then it will introduce the Z-Stack protocol stack of TI company, including the working mechanism of OSAL(operating system abstracting layer), the role of each file and take the key as an example to describe the event triggered process.Then it will introduce the hardware system design, which mainly consult the reference library provided by TI companys website.Finally, it will introduce how to build a good user experience base wireless senior network with CC2530 and Z-Stack. The wireless sensor network can achieve following functions: data transmission, end device dormant, access network control,network self-organization self healing,set network address, coordinate with PC display network structure.Keyword : ZigBee;Z-Stack;CC2530;end device dormant;access network control; display network structureII目录目录摘要IAbstractII第一章 绪论11.1引言11.2 ZigBee的发展与现状11.3 ZigBee技术特点21.4 ZigBee的发展趋势2第二章 ZigBee简介12.1 ZigBee协议层结构12.2层与层的通信22.3 ZigBee各层介绍32.3.1物理层(PHY)32.3.2介质访问控制层(MAC)32.3.3 网络层(NWK)42.3.4应用层(APL)52.3.5 安全服务提供层(SSP)52.4各层协作62.5 ZigBee基本概念6第三章ZigBee的实现软件部分:Z-Stack协议栈93.1 OSAL任务轮询93.2任务的产生103.3 Z-Stack框架与工程文件目录113.3.1 Z-Stack框架113.3.2 Z-Stack工程文件目录介绍113.4 任务触发流程实例:按键任务的触发13第四章 ZigBee的实现硬件部分:硬件系统设计154.1 CC2530介绍154.2电路图介绍164.2.1 原理图介绍164.2.2 PCB各层图17第五章 ZigBee的应用:应用程序设计195.1 程序功能分析195.2功能的实现195.2.1数据采集与传输195.2.2终端节点休眠205.2.3 节点入网控制235.2.4 网络地址设置245.2.5 终端节点掉线后间歇性入网255.2.6显示网络结构275.3故障处理29第六章 结束语31参考文献32致谢33目录格式:目录内容:中文宋体,英文和数字Times New Roman,小四页码编号:摘要,Abstract使用页码“I,II,”;正文开始使用页码“1,2,3,”;小节标题左侧缩进1字符;页码数字居中对齐 IV第一章 绪论第一章 绪论1.1引言ZigBee是一种新兴的短距离,低速率无线网络技术。诞生之初主要用于工业自动化控制的数据传输,后来逐步向智能家居,智能楼宇,疾病监控,健康管理,远程控制等领域拓展。1.2 ZigBee的发展与现状ZigBee联盟成立于2001年,于2004年发布了ZigBee协议规范(ZigBee Specification),ZigBee2004,这个版本的协议有许多漏洞。在2006年,ZigBee联盟又推出了ZigBee2006,这个版本的协议比较完善。在2007年,ZigBee联盟又在06版的基础上推出了新的协议规范ZigBee2007/PRO。这个版本的协议具有网络自组织、自愈,低功耗,低成本等优点。ZigBee Specification是目前应用最广的协议。2009年3月,又推出ZigBee RF4CE。它专门为简单,双向,点对点控制的应用而设计。它不要求实现ZigBee协议那样的全功能网状网络结构,对存储空间的要求低,简单的点对点网络结构使得设计和测试都更简单,从而可以快速的应用到项目中。2013年3月,ZigBee联盟推出了第三套规范ZigBee IP Specification。ZigBee IP是第一个基于IPv6全无线网状网络解决方案的开放标准,为控制低功耗、低成本的装置提供无缝衔接的互联网连接。它可以将许多不同的设备接入到同一个网络中。它专门为即将到来的ZigBee Smart Energy version 2提供支持。ZigBee的实现方案主要有三种:ZigBee RF+MCU;ZigBee协议栈芯片+外挂芯片;单SOC。第一种指的是用ZigBee无线收发器配合单片机来实现,优点是超低功耗;第二种是用集成了2.4G无线射频收发和微处理器功能的专用芯片,外加一款起提高系统性能或者降低专用芯片负担作用的芯片来实现,优点是灵活性大,上市快;最后一种是指ZigBee射频和单片机以及Flash存储三部分集成在了一颗IC上的芯片,优点是集成度高。ZigBee的第一款片上系统(SoC)解决方案是CHIPCON于2004年12月推出的CC2430无线单片机,此后各大半导体公司先后推出各种ZigBee芯片。2006年,TI公司收购CHIPCON公司,之后不断改进ZigBee芯片。2008年2月,推出第二代ZigBee收发芯片CC2520,同年6月推出2.4G放大芯片CC2591。1目前市场上ZigBee芯片提供商有:TI(Chipcon);Freescale;Ember;Jennic;Atmel;Integration;NEC;OkI;Renesas;等9家。其中TI;Frescale;Ember;Jennic是市场上主导的供应厂商,这四大厂商基本上垄断了整个90%的市场份额。1.3 ZigBee技术特点ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。它从下到上可以分为物理层,媒介访问控制层,网络层,应用层。其中物理层和媒介访问控制层遵循IEEE802.15.4标准;ZigBee联盟在IEEE802.15.4的标准上定义了网络层和应用层的框架。ZigBee技术具有以下特点:高可靠。物理层和介质访问控制层遵循IEEE802.15.4标准,采用正交相移键控(O-QPSK)调制技术和直接序列扩频(DSSS)技术相结合,提供一个高信噪比环境。采用带有冲突避免的载波监听多路访问(CSMA-CA)技术,可以尽量避免冲突的发生。采用16位循环冗余校验码(CRC)技术,可以检测数据传输的正确性,在通信过程中采用全应答方式,确保数据成功地被接收。另外,在网状网络中,使用动态路由以及路由修复策略,可以保证数据多跳传输的可靠。成本低。芯片价格低,协议栈免费使用;频段免费使用;使用免专利费的AES-128位加密技术。低功耗。由于大部分时间处于休眠状态,两节5号电池可以维持一个终端节点工作624个月。高安全。ZigBee提供三种安全服务:构造安全,网络访问控制,应用数据安全。数据加密使用AES-128安全算法,而且还可以更新密钥。低速率。ZigBee主要应用于数据传输量小的应用场合,为了实现低功耗以及低成本,低速率是可以接受的。ZigBee在2.4G频段可以提供250kbps的原始数据吞吐率,在915MHZ为40kbps,在868MHZ为20kbps。高容量。每个ZigBee网络可以容纳65000个节点。由于可以容纳的节点多,ZigBee网络的覆盖范围自然而然也就大了。网络自组织自愈。ZigBee的节点在与父节点失去联系后能够自动寻找新的父节点,重新加入网络。21.4 ZigBee的发展趋势在协议规范方面,ZigBee已经推出了ZigBee IP Specification,这个协议可以实现物联网与互联网相连。在应用层面,ZigBee联盟目前已经针对不同的领域推出更有针对性的应用层方案标准。在ZigBee诞生之初,所有的应用领域都使用相同的标准,而近年来,ZigBee针对不同领域推出了不同的标准,以便更有针对性地解决问题。在ZigBee联盟官网上已经有各种不同的应用层标准,如ZigBee Building Automation,ZigBee Remote Control,ZigBee Smart Energy,ZigBee Home Automation,ZigBee Health Care等。可以预见,ZigBee将继续拓展应用领域,并提出对应的应用标准,以便更好地满足用户需求。在ZigBee联盟官网上,有一个ZigBee3.0,目前处于测试中。其主要目的是将市场上ZigBee的各个主要的应用层标准统一,这样可以使得各种智能产品在同一个网络中工作,同时简化与互联网的连接。18第二章 ZigBee简介第二章 ZigBee简介ZigBee是一种低速率无线通信协议。它可以工作在868MHZ,915MHZ和2.4G 3个频段,最大传输速率为250kbps。ZigBee主要是针对低速率、低成本、电池供电的应用场合。ZigBee终端节点的绝大部分时间都处于睡眠模式,也正因为这样,它才能够考两节5号电池维持624个月。随着物联网的发展,ZigBee被广泛应用到工业自动化,智能家居,智能楼宇,远程控制,自动抄表,医疗设备等领域。2.1 ZigBee协议层结构建立一种通信协议经常会用到层的概念。每一层实现特定的功能,只有相邻层之间才能够进行数据,指令的传输。分层,有许多方便之处。首先可以将复杂的任务分解,从而降低难度,并且可以使得各个任务同时开发,缩短研发时间;其次,由于各层之间相对独立,当协议更新的时候,只需要修改对应的层即可,无需推倒重来;再次用户可以专注于应用层开发,而需过多关注其他层。3 4 ZigBee协议层结构如图2-1所示:图2-1 ZigBee协议层框架从图中可以看出,ZigBee的物理层(PHY)和媒介接入控制层(MAC)遵循IEEE 802.15.4标准。ZigBee联盟将IEEE 802.15.4标准做了适当的修改后,在其基础上定义了网络层(NWK),应用支持子层,ZigBee设备对象,安全服务提供层。2.2层与层的通信层与层之间的通信使用的原语概念。原语可以理解为基本命令,基本操作,原始语句,原始语句是针对程序语句而言。只有相邻层之间才能通信,具体表现为调用函数和传递数据。虽然各层之间的功能不同,但是层与层之间的通信却是相似的。每一个原语指定了要执行的任务或者指示任务执行的结果。原语也可以携带参数。下图显示了四种类型的原语。不管是IEEE 802.15.4协议还是ZigBee协议,它们描述的服务都使用这些格式来表达。原语类型如下:.request.indication.response.confirm其中request和response由服务使用者(上层)产生,indication和confirm由服务提供者(下层)产生。下面这张图可以形象的表达这种关系。图2-2 原语通信过程请求服务(request)是由上层发出,用于向下层请求服务。比如MAC层向PHY层请求发送MAC数据包。指示事件(indication)是下层向上层报告有对上层很重要的事件发生。比如PHY层收到其它节点发来的数据,并且需要向上传递给MAC层。PHY使用PD-Data.indication将数据传送给MAC层。如果指示事件原语要求应答(response),那么上层将使用应答原语应答下层。值得注意的是PYH层和NWK层没有应答原语,MAC层和APL层(应用支持子层,后文将会介绍)有应答原语。确认结果(confirm)原语是由下层发出,用于告知上层先前请求的任务执行的结果。3 43各层之间的使用原语来通信,而它们接触的地点是在服务接入点(service access points,SAP)。服务接入点是个概念性的地点,层与层在那里进行数据传输。服务接入点分为数据服务接入点和管理服务接入点。2.3 ZigBee各层介绍2.3.1物理层(PHY)物理层是协议栈的最底层,与硬件联系最紧密。它的主要功能有:信道设置。ZigBee共有27个信道。其中信道0处于频段868.0868.6MHZ,信道110处于频段902.0928.0MHZ,相邻信道间隔2MHZ,信道1126处于频段2400.02483.5MHZ之间,相邻信道间隔5MHZ。信道能量侦测。选择一个安静的信道可以减少噪声,提高通信质量,节约能量。载波监听。为了减少碰撞,节点在发送数据之前会先判断信道是否有其它的相同调制方式的载波,如果信道被占用,则会等待一段时间再次侦听。链路质量指示。用于指示接收到数据包的质量,可以用信号强度或者信噪比来指示。链路质量指示可以被网络层作为选择路由路径的一个参数。空闲信道评估。对载波监听的结果进行处理,判段信道是否处于空闲状态。3 472.3.2介质访问控制层(MAC)MAC层主要有以下功能:协调器产生信标和使用超帧结构。如图2-4所示,在使用信标的网络中,图2-3 超帧结构协调器会周期性的发出信标,来开始一个超帧,信标中包含了两个信标的间隔以及保证时隙(GTS)的个数等信息。每个超帧分为16个等长的时槽。超帧可以分为竞争接入期(CAP)、免竞争接入期(保证时隙期,GTS)和休眠期。在竞争接入期,各个设备想要使用信道要通过CSMA-CA机制来竞争;在非竞争接入期,协调器会将保证时隙分给指定的设备使用,用来保证一些实时性高的数据传输;以上两个时期统称活跃期。活跃期过后,如果选择休眠,那么就进入休眠期,在休眠期允许设备进入节电模式。在信标使能网络中同步设备。设备可以请求与协调器同步,这样就可以信标发出之前的那一瞬间打开接收机,而不必一直处于接收状态。信道接入采用CSMA-CA机制。为了尽可能减少碰撞,节点采用带有冲突避免的载波坚挺多路访问机制(CSMA-CA)来接入信道。在发送数据之前,都会监听信道,判断信道是否被占用,如果被占用则随机避让一段时间,再次侦听。并不是每次发送数据都要侦听,有两种情况例外。在超帧中的免竞争接入期,GTS已经被分配好,无需竞争;收到数据请求指令的应答后可以直接发送数据,无须竞争。处理和维护GTS机制。包括分配和收回GTS的使用权在两个不同设备的MAC层间提供可靠的通信链路。提供网络连接与断开服务。提供MAC层的安全服务,但是上层可以决定是否使用。3 792.3.3 网络层(NWK)网络层的功能如下:配置一个新设备,比如配置成协调器,路由器,终端节点。创建一个新的网络,只有协调器有此能力。加入和离开一个网络。提供网络层安全。路由数据,将数据传给目的节点,只有协调器和路由器有此能力。发现和保存路由。发现路由路径,用于传递数据;将路径保存一段时间,以便备用,免得每次都去发现路由路径,当一段时间内没有用到后,则删除这条路径。发现单跳邻居。这些邻居是可以直接传输数据的节点,无须路由。存储单跳邻居的信息。分配网络地址给新加入的设备,只有协调器和路由器有此功能。3 1092.3.4应用层(APL)应用层由应用支持子层(APS)、ZigBee设备对象(ZDO)和应用层框架组成。应用支持子层的功能如下:维护绑定表。绑定指的是两个相关的节点建立逻辑联系。比如一个与开关相连的节点可以与一个或多个与灯泡相连的节点建立逻辑联系,从而控制灯泡的状态。绑定的好处是可以让应用程序在不知道目标地址的情况下也能够将数据发送到正确的地方。在绑定设备间转发数据。管理组地址。ZigBee有三种数据传输方式,单播,广播,组播。组播则只有在同一个组的节点才能收到数据。通过物理地址获取网络地址,反之,通过网络地址获取物理地址。每一个设备都有全球唯一的64位物理地址,在无线通信中,如果使用64为地址辨别节点,则大大增加数据量,故而使用16位的短地址。提供可靠的数据传输。ZigBee设备对象(ZDO)是驻留在每一个ZigBee节点中的应用对象,端点。其功能如下:定义设备类型,协调器,路由器,终端。设备发现和应用发现。发起绑定或者响应绑定请求。执行与安全有关的任务。3 1222.3.5 安全服务提供层(SSP)安全层提供一下功能:数据加密。ZigBee使用AES-128加密技术,密码在2128个数中选一个,而且可以使用动态密钥,更新密码。设备认证和数据认证。设备认证是在新设备入网的时候进行入网认证。数据认证是在接收到数据后判别数据是否被中途修改过。重复帧识别。在每次发新帧之前,都会在帧中添加一个帧序号,接收者可以凭此识别重复帧,而不必进行处理。在一个安全网络中,有5种密钥可以使用:连接密钥,在两个设备单播时使用。网络密钥,在整个网络中使用,进行广播的时候可以使用。母密钥,参与建立连接密钥。密钥传输密钥,用于保护密钥的传输,不包括母密钥,由信任中心向请求设备发送。密钥装载密钥,用于保护母密钥的传输。3 1342.4各层协作协议分层可以分解任务,降低难度。但是要完成通信任务,少不了各层之间的协作。下面来看一下数据收发过程中各层的协作,如图2-4所示,数据在发出的时候在每一层都会在数据上加上相应的帧头和帧尾,在数据接收的时候会被解析出其中的信息。每一层帧以该层的名字命名。图2-4 数据收发流程2.5 ZigBee基本概念1、 ZigBee设备类型有协调器、路由器和终端节点。它们的功能如下:协调器是全功能设备,其功能特点如下:选择一个频道和PAN ID,组建网络允许路由和终端节点加入这个网络对网络中的数据进行路由必须常电供电,不能进入睡眠模式可以为睡眠的终端节点保留数据,至其唤醒后获取。路由器全功能设备,其功能特点如下:在进行数据收发之前,必须首先加入一个ZigBee网络本身加入网络后,允许路由和终端节点加入加入网络后,可以对网络中的数据进行路由必须常电供电,不能进入睡眠模式可以为睡眠的终端节点保留数据,至其唤醒后获取。 终端节点可以是全功能设备也可以是半功能设备,其功能特点如下:在进行数据收发之前,必须首先加入一个ZigBee网络不允许其他设备加入必须通过其父节点收发数据,不能对网络中的数据进行路由可由电池供电,进入睡眠模式协调器在选择频道和PAN ID组建网络后,其功能将相当于一个路由器。协调器或者路由器均允许其他设备加入网络,并为其路由数据。4 2、PAN ID与扩展PAN IDPAN ID是16位的整数,是网络的名字,相同范围内的网络PAN ID不能形同。PAN ID的默认值为0xFFFF,表明用户没有指定网络名称,由协调器自动分配。通过给PAN ID赋值,用户可以指定网络名称。扩展PAN ID 是64位整数,通常用于让设备加入特定的网络。如果扩展PAN ID为默认值全0,则设备可以加入任何允许加入的网络,如果为非零,则只能加入扩展PAN ID相同的网络。3、地址类型设备地址有16位的网络地址与64位的物理地址。在通信中使用网络地址,但是在加入网络的时候,要把物理地址告知父设备。所以通过网络地址可以得到设备的物理地址,也可以通过物理地址得到设备的网络地址。网络地址是在加入的时候由父设备随机分配。在同一个网络中,两类地址都不能有重复。4、数据传播方式数据有三种传播方式,单播、组播和广播。单播时点对点通信,广播是向所有节点发送数据。组播是想部分节点发送数据,在组播前要先建立组,然后加入组,然后才可以收到组播数据。5、网络结构ZigBee支持三种网络结构,星型,树型,网状型。它们的结构示意图如下:图2-5 星型网络结构由图可知,在星型网络中协调器作为唯一的父节点,其余节点直接与其相连。图2-6 网状网络结构在网状型网络结构中,没有父节点的概念,全功能节点与其邻居节点相连,这种网络结构具有高的健壮性,即便某个节点出故障,对整个网络影响不大。图2-7 树型网络结构由图可知,树型网络中,路由器只能与父节点通信。在树型结构中,有个概念有必要解释一下,网络深度。与协调器相连的节点的网络深度为1,深度为1的节点的子节点的网络深度为2,其余深度类推。第三章 ZigBee的实现软件部分:Z-Stack协议栈第三章ZigBee的实现软件部分:Z-Stack协议栈市场上有许多ZigBee协议栈,其中开源的有Freakz,TinyOS等,半开源的有Z-Stack。本系统选择的是Z-Stack,协议版本是ZigBee 2007/PRO。至于选择的理由,稀里糊涂。入手前对这些东西不懂,百度上搜索到的最多的是Z-Stack,入手资料多,但是半开源总是有许多不便之处,建议最好使用开源的协议栈。Z-Stack是TI公司开发的ZigBee协议栈,从1.0版本一直更新到2.6.0版本,此后由于ZigBee联盟推出不同应用领域的协议规范,TI公司也适应这种变化,协议栈的名称不再以Z-Stack 2.5.1a这种方式命名,而是根据应用领域来命名,如Z-Stack-HOME代表智能家居领域的协议栈,不同领域的协议栈核心相同,只是在细节上有差异。本系统使用的是Z-Stack 2.5.1a。3.1 OSAL任务轮询ZigBee协议由多层组成,每一层都有许多任务,为了有效的管理这些任务,Z-Stack使用了OSAL(操作系统抽象层)机制。注意OSAL不是ZigBee协议中的内容,但是在Z-Stack中,整个协议要依赖它运行。先从主函数说起。主函数一开始是各种初始化,包括硬件初始化,OSAL初始化,任务初始化,之后就进入一个死循环不断的更新定时器链表,轮询硬件,查询是否有任务发生。如果有任务,就调用相应的任务处理函数,处理完后再次查询,直到所有的任务处理完,就可以进入休眠,前提是允许休眠。醒来后再次轮询。如果不允许休眠,那么就一直轮询。终端节点可以选择休眠,协调器和路由器不能够休眠。终端节点的流程图3-1如下:图3-1 节点任务轮询3.2任务的产生主循环在不断的轮询任务,那任务是什么时候产生的呢?在回答这个问题之前有必要要说说任务与任务处理函数是如何正确对应起来的。在ZigBee中,有一个任务表,保存各层任务的对应事件。每一层任务都是由一个16位的变量来表示,这个变量的每一位代表一个事件。如果事件发生,则相应位置一,当任务处理完,相应的事件位置零。注意,同一个任务对应多个事件,如何区分不同事件会在任务处理函数中完成。与任务表对应的是任务处理函数表,里面存放的是任务处理函数的首地址。将任务与任务处理函数对应起来很简单,只要在两个表中的位置相同即可。因为任务表中的第N个位置与任务处理函数表中的第N个位置对应。任务的产生主要有三种方式,其一为事件触发,其二为消息触发,其三为定时器期满。事件触发。当有事件发生,比如按键被按下,串口有数据接收,或者空中消息等,就会被捕捉到。然后调用回调函数,将与事件相关的信息打包成一个消息,放到消息队列中,然后再将任务中对应的事件位置一,当主循环检测到该任务不为零,就可以调用任务处理函数了。这里再解释一下捕获事件的方式,一种是轮询检测,每隔一段时间去检测一下,还有一种是产生外部中断。回调函数是通过函数指针调用的函数,如果你把A函数作为另一个函数的参数,那么A就是一个回调函数。这样可以将函数的实现与使用分开。回调函数将事件封装成消息,比如按键被按下,要检测是哪个按键按下,然后再发到消息队列。Z-Stack里面有一个消息队列,里面存放着与任务有关的信息,当有任务处理的时候,任务处理函数会从里面接收消息。消息触发。层与层之间需要协作,比如应用层要发送数据,那么就要将数据封装成消息,并通知下层。定时器期满。比如要在10秒后产生某个任务,那么就可以调用事件延时触发函数设置一个10秒的定时器,10秒后会自动触发任务。不过,Z-Stack使用软件定时器。由于任务众多,有许多事件需要定时器触发,而硬件定时器仅有几个,不能满足需求,即便能,那也会导致资源利用率不高。在Z-Stack中有一个定时器链表,每当需要延时触发任务,就会再链表中加入一项,当期满,就会设置对应的事件,然后删除定时器。那么定时器是如何更新时间的呢?使用一个硬件定时器,每隔一段时间把硬件定时器的增量转换成以微秒为单位的时间,去更新整个定时器链表。3.3 Z-Stack框架与工程文件目录前两节讲解了Z-Stack中任务的产生,任务的检测,任务的处理。对于它们的程序实现,只能通过阅读程序来感知了。至于协议的具体实现,没有必要全部知道,只要专注于应用层的开发即可。为了进一步消除对Z-Stack的陌生感,本节将首先介绍Z-Stack的框架,然后介绍Z-Stack中各文件的作用。当然,消除陌生感的最好方式是实践。3.3.1 Z-Stack框架Z-Stack框架如图3-2所示。相邻层之间有服务接入点(ASP),安全层为网络层和应用层提供安全保障。端点,是应用对象与应用支持子层交互的地方,一个节点可以有255个端点,用户可以使用1240个端点,可以定义240个应用对象。端点241254保留。端点0用于配置和管理ZigBee设备。应用程序可以通过端点0与ZigBee的其他层通信。与端点0对应的应用对象称为ZDO(ZigBee设备对象),应用层可以通过它对网络参数进行配置和访问。端点255用于向所有端点广播。应用程序可以通过端点使用应用支持子层提供的服务。图3-2 Z-Stack框架3.3.2 Z-Stack工程文件目录介绍先看ZigBee工程文件目录,如图3-3所示。下面分别介绍各文件的作用。图3-3 Z-Stack工程目录APP(Application Programming):应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容,在协议栈里面一般是以操作系统的任务实现的。HAL(Hardware (H/W) Abstraction Layer):硬件层目录,包含有与硬件相关的配置和驱动及操作函数。MAC:MAC层目录,包含了MAC层的参数配置文件及其MAC 的LIB 库的函数接口文件。MT(Monitor Test):实现通过串口可控各层,于各层进行直接交互。NWK(ZigBee Network Layer):网络层目录,含网络层配置参数文件及网络层库的函数接口文件,APS层库的函数接口OSAL(Operating System (OS) Abstraction Layer):协议栈的操作系统。Profile:AF(Application Framework)层目录,包含AF层处理函数文件。Security:安全层目录,安全层处理函数,比如加密函数等。Services:地址处理函数目录,包括着地址模式的定义及地址处理函数。Tools:工程配置目录,包括空间划分及ZStack 相关配置信息。ZDO(ZigBee Device Objects):ZDO目录。ZMac:MAC层目录,包括MAC层参数配置及MAC层LIB库函数回调处理函数。ZMain:主函数目录,包括入口函数及硬件配置文件。Output:输出文件目录,这个EW8051 IDE 自动生成的。53.4 任务触发流程实例:按键任务的触发程序太过繁杂,只看流程图,如图3-4所示。按键事件一共有两种触发方式,一种是轮询,一种是中断,其中中断的实时性更好。图3-4 按键任务的产生与处理如上图,在主函数中,一开始各种初始化,最后进入OSAL_start_system(),这是一个死循环。在这个函数里面进行3.1节所讲的任务轮询。在OSAL_init_system() 中,进行了OSAL初始化,包括了内存,消息队列,定时器链表,电源和系统任务初始化,在系统任务初始化中,调用了用户任务初始化。在用户任务初始化中对按键事件进行了注册,只有注册后,系统才能知道当按键按下,要将按键事件发送给用户任务,而不是别的任务。在Init_Board(OB_READY)中调用了HalKeyConfig(),对按键进行配置,可以配置成中断方式,也可以配置成轮询方式。配置完后,进行一些其他的操作,就开始进入轮询死循环。在HalKeyConfig()中,按键事件的触发如果配置成轮询方式,则每隔100毫秒触发一次硬件(不是按键)事件;如果是中断方式,则在中断产生后,延时25毫秒(为了消抖)后触发硬件事件。在硬件事件中调用HalKeyPoll(),在这个函数中会检测所有的硬件状态,包括按键是否被按下,如果是则会调用按键回调函数,另外如果是轮询模式,还会在HalKeyPoll()中再次设置100毫秒后触发硬件事件。接下来便是封装消息,发送消息给注册过按键事件的应用对象,设置按键事件,最终调用按键任务处理函数。第四章 ZigBee的实现硬件部分:硬件系统设计第四章 ZigBee的实现硬件部分:硬件系统设计在绪论中,说到过ZigBee的硬件实现有三种,这里使用的是片上系统解决方案,直接使用TI公司专为ZigBee协议设计的CC2530单片机。本章将首先介绍CC2530单片机,然后介绍电路原理图,最后附上PCB图。4.1 CC2530介绍CC2530芯片结合了RF收发器,增强型8051CPU,系统内可编程闪存,8KB RAM和其他许多模块。支持ZigBee/ZigBee PRO,ZigBee RF4CE,6LoWPAN,WirelessHART及其他所有基于802.15.4标准的解决方案。在掉电模式下,只有睡眠定时器运行时,仅有1uA左右的电流损耗,能够很好满足终端节点对低功耗的要求。CC2530引脚功能如图4-1所示:图4-1 CC2530引脚功能图CC2530可用资源如下:最高可达256KB的闪存,可擦除20000次;8KB的RAM。18个中断源。调试接口。两线调试接口允许对片上闪存进行编程,可以访问存储器和寄存器的内容,以及调试功能,比如断点,单步,修改寄存器等。电源工作模式选择。CC2530之所以能够实现超低功耗,就是因为他可以工作在多种电源模式下。各模式指的是主动模式,空闲模式,PM1,PM2,PM3。其中PM3具有最低功耗。通用IO端口,P0,P1是完全的8位端口,P2有5位可用。P1.0,P1.1具有20毫安的输出驱动能力,其余输出均具备4mA的驱动能力。5通道的DMA控制器4个定时器。定时器1具有输入捕捉,输出比较,和PWM功能的定时器/计数器。定时器2是睡眠定时器,用于芯片在PM2睡眠模式下睡眠时间的计算以及唤醒。IR信号产生和线性化ADC转换。支持14位的模拟数字转换,具有多达12位的有效位。随机数发生器。产生伪随机字节,可以被CPU读取,或有命令选通器直接使用。ASE协处理器,允许以最少的CPU参与进行ASE-128加密/解密。看门狗定时器。可以在软件出现故障的时候重新复位,增加软件的健壮性。2个串行通信接口,可以工作在异步UART模式或者同步SPI模式。USB控制器,可以监控USB的相关活动并处理数据包的传输。无线电模块。由RF内核控制,另外RF内核还未MCU和无线电模块提供接口,以便发出命令,读取状态和自动对无线电事件排序。64.2电路图介绍4.2.1 原理图介绍在上一节中,可以看到,CC2530已经集成的8051CPU和无线电模块。因此硬件电路图比较简洁,分为两部分,CC2530芯片电路和微波发射电路。如图4-2所示:图4-2 CC2530电路上面这个电路图,主要是参考TI公司的参考设计库。主要分为CC2530电路和天线部分。在TI的论坛上,TI公司的员工建议用户尽可能原搬照抄,不要去搞创意。不过TI公司的PCB是四层板,但是本系统只做最小系统,所以PCB不能原搬照抄。4.2.2 PCB各层图双面板底层PCB图图4-3 底层PCB图双面板顶层图4-4 顶层PCB图第五章 ZigBee的应用:应用程序设计第五章 ZigBee的应用:应用程序设计5.1 程序功能分析本系统是个监测系统,基本功能是采集数据,传送数据。但是在实际应用中,为了让用户省心,仅仅只有这两个功能是不够的,还需要实现以下功能:终端节点休眠。由于终端节点迫不得已使用电池供电,那么就一定要让电池的寿命尽可能的长,这可以通过尽可能长得休眠来节约电能。节点入网控制。Z-Stack的默认状态既不能够让节点加入特定的(自己的)网络,也不能够阻止节点加入一个网络。对于使用者来说,肯定希望让自己的节点只加入自己的网络,同时拒绝别人的节点加入自己的网络。网络地址设置。Z-Stack中,节点的网络地址是随机分配的。这样有个不便之处,就是难以知道某个节点采集的数据来自哪个地方。但是如果能够预先设置网络地址,那么可以在程序下载进板子后,把设置好的网络地址标记在板子上,当板子安装的时候,就可以顺便记下这个节点安装的位置,这样就可以知道某个节点采集的数据来自哪个位置。终端节点掉线后间歇性找网。Z-Stack中,终端节点掉线后会一直试图加入网络。如此一来,会大大缩短电池的使用寿命,所以必须加以控制,让其在找网失败后进入睡眠,醒来后再找。显示网络结构。显示网络结构,可以得知网络间各设备的连接关系,同时还可以查看节点是否掉线。上述功能中没有涉及到安全方面的内容,因为在本系统中,即便被人侦听,也不会产生严重后果。5.2功能的实现所有的功能都在Z-Stack的基础上修改而来,本节将会介绍如何对协议栈进行修改来实现所需的功能。论文主要讲的是实现原理,会忽略细节,所以如果照着论文修改,也有可能出现问题。但是如果理解原理,那么再修改,即便出了问题,那么也能够自行解决。程序使用的协议栈是Z-Stack 2.5.1a,开发软件是IAR EW8051 V8.1,下载工具是CC DEBUG。5.2.1数据采集与传输这两个功能相对基本,数据采集可以直接调用ADC转换函数,或者自己对寄存器进行相关的设置。数据传输可以调用AF_DataRequest(),只要设置好相关参数即可。其函数原型如下:afStatus_t AF_DataRequest( afAddrType_t *dstAddr, endPointDesc_t *srcEP, uint16 cID, uint16 len, uint8 *buf, uint8* transID,uint8 options, uint8 radius )5.2.2终端节点休眠首先介绍休眠时间的设置机理。在Z-Stack,休眠时间是由系统根据定时器链表中即将溢出的定时的溢出时间来确定的。比如,在定时器链表中,有一个定时器在1秒后会溢出,其余的溢出时间都大于1秒,那么系统的睡眠时间为(略小于)1秒,这样就不会错过任务了。休眠有几种,这里只介绍两种。PM2模式,可以被睡眠定时器(24位)唤醒;PM3模式,深度睡眠,只能被复位或者外部中断唤醒。下面的睡眠指的是PM2模式下的睡眠。要实现终端节点休眠,需要进行以下操作:编译预编译选项POWER_SAVING,操作如下:Project-Option-C/C+ Compiler-Preprocessor-Define symbols,在里面输入POWER_SAVING即
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 4064-5:2025 EN Water meters for cold potable water and hot water - Part 5: Installation requirements
- 自由搏击活动方案
- 航材考试题及答案
- 广联达钢筋考试题及答案
- 全新劳务用工书面合同
- 心中那份感动抒情文15篇
- 防疫技能考试题及答案
- 法语高考试题及答案
- 企业人力资源优化策略和员工关系协调表
- (正式版)DB15∕T 3383-2024 《呼伦贝尔羊羔羊育肥全混合颗粒日粮配制与饲养技术规程》
- 国家电投2023上半年ESG实践报告:绿色发展助力电力行业转型升级
- 中国华电战略发展研究中心招聘笔试题库2025
- 2025年新形势下新型储能发展趋势分析报告
- 遗体整容师测试考核试卷及答案
- 体育教育专业健美操理论考试试题及答案
- 小学道德与法治五年级上册《烟酒有危害》教学课件
- 2025年登革热防控试题(附答案)
- 霍乱培训课件下载
- 生涯人物访谈表
- K2FastWave中文操作手册
- 创新小白实操指南 教案.docx
评论
0/150
提交评论