计算机与信息技术学院
课程教案
专 业 物联网工程 课 程 Zigbee网络原理与应用 讲 授 人 姚建峰
2015 年 9月10日
(一) 课程名称: Zigbee网络原理与应用 (二) 学时学分:周4学时,3学分
(三) 预修课程:电子线路、数字逻辑、计算机组成原理、高级语言程序设计
(四) 使用教材
ZigBee技术与实训教程――基于CC2530的无线传感网技术,清华大学出版社,2014年5月第1版
(五) 教学参考书(3本以上)
1、李文仲编著:《Zigbee2006无线网络与无线定位实战》,北京航空航天大学出 版社,2008年1月第1版;
2、王小强编著:《Zigbee无线传感器网络设计与实现》,化学工业出版社,2012年6月第1版;
3、郭渊博编著:《Zigbee技术与应用》,国防工业出版社,2010年6月第1版。
(六)教学方法:课堂讲授,课堂演示,师生互动,理论与实验结合教学。 (七) 教学手段:多媒体教学. (八) 考核方式:闭卷考试。
(九) 学生创新精神与实践能力的培养方法:结合实验、具体应用、小组讨论等方式使学生掌握Zigbee技术开发的基本方法,提高学生分析问题和解决问题的能力,培养学生的动手能力和创新能力。
(十) 其它要求:严格考勤,学生课堂表现和实验完成情况占学生成绩的30%,期末成绩占70%.
1
第一章无线传感器网络
教学时数:2学时
教学目的与要求:主要让学生理解无线传感网络的主要概念,了解无线传感网络的发展历程、研究现状与研究前景、应用领域,掌握无线传感网络的特点、网络体系结构、关键技术。
教学重点:无线传感器网络体系结构。 教学难点:无线传感器网络的关键技术.
第一节 无线传感器网络概述(了解)
1。无线传感器网络的概念:
无线传感器网络就是由部署在监测区域内大量的廉价微型传感器节点组成,通过无线通信方式形成的一个多跳的自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中被感知对象的信息,并发送给观察者.传感器、感知对象和观察者构成了无线传感器网络的三个要素。
2.无线传感器网络的发展历程:
第一阶段:最早可以追溯至越战时期使用的传统的传感器系统。当年美越双方在密林覆盖的“胡志明小道\"进行了一场血腥较量,“胡志明小道”是胡志明部队向南方游击队输送物资的秘密通道,美军对其进行了狂轰滥炸,但效果不大.后来,美军投放了2万多个“热带树”传感器。“热带树”实际上是由震动和声响传感器组成的系统,它由飞机投放,落地后插入泥土中,只露出伪装成树枝的无线电天线,因而被称为“热带树”。只要对方车队经过,传感器探测出目标产生的震动和声响信息,自动发送到指挥中心,美机立即展开追杀,总共炸毁或炸坏4.6万辆卡车。
第二阶段:二十世纪80年代至90年代之间。主要是美军研制的分布式传感器网络系统、海军协同交战能力系统、远程战场传感器系统等.这种现代微型化的传感器具备感知能力、计算能力和通信能力. 因此在1999年,商业周刊将传感器网络列为21世纪最具影响的21项技术之一 .
第三阶段:21世纪开始至今,也就是9·11事件之后。这个阶段的传感器网络技术特点在于网络传输自组织、节点设计低功耗.除了应用于反恐活动以外,在其它领域更是获得了很好的应用,所以2002年美国国家重点实验室--橡树岭实验室提出了“网络就是传感器”的论断。
3。无线传感器网络研究现状:
(1)国外无线传感器网络的研究现状
1998年,美国国防部提出了“智能尘埃”的概念,最先开始无线传感器网络技术的研究,目的是为监控敌方的活动情况而不被察觉。2001年,美国陆军提出“灵巧传感器网络通信\"计划,将无人值守式弹药、传感器和未来战斗系统所
- 2 -
用的机器人系统连成网络,以便成倍提高单一传感器的能力,从而提高未来战斗系统的生存能力。2002年,英特尔公司发布了“基于微型传感器网络的新型计算发展规划”。美国科学基金委员会2003年制定了无线传感器网络研究计划,研究领域涉及能感知有毒化学物、生物攻击等的传感器节点、分布环境下传感器网络的特性等问题.2005年,对网络技术和系统的研究计划中,主要研究下一代可靠性高、安全的可扩展的网络、可编程的无线网络及传感器系统的网络特性,资助金额达4000万美元。此外,美国交通部、能源部、美国国家航空航天局也相继启动了相关的研究项目。美国著名院校几乎都有研究小组在从事无线传感器网络相关技术的研究.
(2)国内无线传感器网络的研究现状
我国无线传感器网络及其应用研究几乎与发达国家同步启动,首次正式出现于1999年中国科学院《知识创新工程试点领域方向研究》的“信息与自动化领域研究报告”中。国内的一些科研单位和大学,如中国科学院自动化所、软件及清华大学、哈尔滨工业大学从2002年开始在时间同步与定位、传感器数据管理系统方面开展了研究工作。重庆大学也在同一时间开始研究嵌入式无线传感器网络节点、可重构技术、无线传感器中的定位等技术。2004年,中国国家自然科学基金委员会将一项无线传感器网络项目(面上传感器网络的分布自治系统关键技术及协调控制理论)列为重点研究项目;2005年,将无线传感器网络基础理论和关键技术列入计划;2006年初发布的《国家中长期科学与技术发展规划纲要》为信息技术定义了3个前沿方向,其中2个与无线传感器网络的研究直接相关,即智能感知技术和自组织网络技术。
4.无线传感器网络的特点: (1)硬件资源有限; (2)电源容量有限; (3)通信能量有限; (4)计算能力有限;
(5)节点数量众多,分布密集; (6)自组织、动态性网络; (7)以数据为中心的网络; (8)多跳路由;
(9)应用相关的网络;
(10)传感器节点出现故障的可能性较大。 5。无线传感网络的应用 (1)智能交通; (2)智能农业; (3)医疗健康; (4)工业监控; (5)军事应用;
- 3 -
(6)灾难救援;
(7)智能家居;
(8)其它:在许多新兴领域中也能体现其较好的优越性,如:空间探索、智能物流、灾害防范和环境监测等领域。
第二节 无线传感器网络体系结构和关键技术 (重点)
1.传感器节点的组成
传感器节点是无线传感器网络的基本功能单元。传感器节点基本组成模块有:传感单元、处理单元、通信单元以及电源部分.处理器模块是传感器节点的核心,负责整个节点的设备控制、任务分配与调度、数据整合与传输等。
2。无线传感器网络体系结构
一个典型的无线传感器网络的系统架构包括分布式无线传感器节点、汇聚节点和管理节点。这些节点群随机部署在监测区域内部或附近,能够通过自组织方式构成网络.
(1)传感器节点
传感器节点通常是一个微型的嵌入式系统,它们的处理能力、存储能力和通信能力相对较弱,通过携带有限能量的电池供电。从功能上看这些节点,它们不仅要对本地收集的信息进行收集及处理,而且要对其他节点转发来的数据进行存储、管理和融合等处理,同时与其他节点协作完成一些特定的任务。
(2)汇聚节点
汇聚节点的各方面能力相对于传感器节点而言相对比较强,它连接传感器网络、Internet等外部网络,实现两种协议栈之间的通信协议转换,同时发布管理节点的监测任务,并把收集的数据转发到外部网络上.
(3)管理节点
管理节点对传感器网络进行管理,发布监测任务以及收集监测数据. 3.无线传感器网络协议体系结构
无线传感器网络体系由分层的网络通信协议、网络管理平台以及应用支撑平台这3部分组成。
(1)分层的网络通信协议:
由物理层、数据链路层、网络层、传输层和应用层组成。
物理层:负责信号的调制和数据的收发,所采用的传输介质主要有无线电、红外线、光波等。WSN推荐使用免许可证频段(ISM)。物理层的设计既有不利因素,例如传播损耗因子较大,也有有利的方面,例如高密度部署的无线传感器网络具有分集特性,可以用来克服阴影效应和路径损耗。
数据链路层:负责数据成帧、帧监测、媒体接入和差错控制。其中,媒体接入协议保证可靠的点对点和点对多点通信;差错控制则保证源节点发出的信息可以完整无误地到达目标节点。
网络层:负责路由的发现和维护,由于大多数节点无法直接与网关通信,因此需要通过中间节点以多跳路由的方式将数据传送至汇聚节点。而这就需要在WSN节点与接收器节点之间多跳的无线路由协议。
传输层:负责数据流的传输控制,主要通过汇聚节点采集传感器网络内的数据,并使用卫星、移动通信网络、Internet或者其他的链路与外部网络通信,是保证通信服务质量的重要部分。
- 4 -
应用层:由各种面向应用的软件系统构成。主要研究的是各种传感器网络应用的具体系统的开发,例如:作战环境侦查与监控系统,情报获取系统,灾难预防系统等等.
(2)网络管理平台
网络管理平台主要是对传感器节点自身的管理以及用户对传感器网络的管理,主要包括网络故障管理、计费管理、配置管理和性能管理等。
(3)应用支撑平台
应用支撑平台为用户提供各种应用支撑,包括时间定位、节点定位以及向用户提供协调应用服务的接口。
4.无线传感器网络关键技术 (1)时间同步技术
时间同步技术是完成实时信息采集的基本要求,也是提高定位精度的关键手段.常用方法是通过时间同步协议完成节点间的对时,通过滤波技术抑制时钟噪声和漂移.
(2)定位技术
定位跟踪技术包括节点自定位和网络区域内的目标定位跟踪。节点自定位是指确定网络中节点自身位置,这是随机部署组网的基本要求。GPS技术是室外惯常采用的自定位手段,但一方面成本较高,另一方面在有遮挡的地区会失效.传感器网络更多采用混合定位方法:手动部署少量的锚节点(携带GPS模块),其他节点根据拓扑和距离关系进行间接位置估计.目标定位跟踪通过网络中节点之间的配合完成对网络区域中特定目标的定位和跟踪,一般建立在节点自定位的基础上.
(3)分布式数据管理和信息融合
分布式动态实时数据管理是以数据中心为特征的WSN网络的重要技术之一。该技术通过部署或者指定一些节点为代理节点,代理节点根据监测任务收集兴趣数据。监测任务通过分布式数据库的查询语言下达给目标区域的节点.在整个体系中,WSN网络被当作分布式数据库独立存在,实现对客观物理世界的实时和动态的监测。信息融合技术是指节点根据类型、采集时间、地点、重要程度等信息标度,通过聚类技术将收集到的数据进行本地的融合和压缩,一方面排除信息冗余,减小网络通信开销,节省能量;另一方面可以通过贝叶斯推理技术实现本地的智能决策。
(4)安全技术
安全通信和认证技术在军事和金融等敏感信息传递应用中有直接需求。传感器网络由于部署环境和传播介质的开放性,很容易受到各种攻击。但受无线传感器网络资源限制,直接应用安全通信、完整性认证、数据新鲜性、广播认证等现有算法存在实现的困难。鉴于此,研究人员一方面探讨在不同组网形式、网络协议设计中可能遭到的各种攻击形式;另一方面设计安全强度可控的简化算法和精巧协议,满足传感器网络的现实需求。
(5)精细控制、深度嵌入的操作系统技术
作为深度嵌入的网络系统,WSN网络对操作系统也有特别的要求,既要能够完成基本体系结构支持的各项功能,又不能过于复杂.从目前发展状况来看,TinyOS是最成功的WSN专用操作系统。但随着芯片低功耗设计技术和能量工程技术水平的提高,更复杂的嵌入式操作系统,如Vxworks、Uclinux和Ucos等,也可能被WSN网络所采用。
- 5 -
(6) 能量工程
能量工程包括能量的获取和存储两方面。能量获取主要指将自然环境的能量转换成节点可以利用的电能,如太阳能,振动能量、地热、风能等。2007年在无线能量传递方面有了新的研究成果:通过磁场的共振传递技术将使远程能量传递。这项技术将对WSN技术的成熟和发展带来革命性的影响.在能量存储技术方面,高容量电池技术是延长节点寿命,全面提高节点能力的关键性技术.纳米电池技术是目前最有希望的技术之一.
本章思考题
1。 什么是无线传感器网络?
2。 简述无线传感器网络的发展历程。 3. 简述无线传感器网络的特点。
4。 简述无线传感器网络的协议体系结构。
5。 简述无线传感器网络的关键技术。
- 6 -
第二章 IEEE 802.15。4无线传感器网络通信标准
教学时数:2学时
教学目的与要求:本章主要让学生理解IEEE 802.15。4无线传感网络的主要概念,掌握IEEE 802.15.4无线传感网络的组成、拓扑结构、协议栈架构、物理层和MAC层规范。
教学重点:IEEE 802。15。4无线传感器网络组成和体系结构、物理层和MAC层规范。
第一节 IEEE802。15.4标准
1. IEEE802。15.4标准概述
(1) IEEE802.15。4通信协议是短距离无线通信的IEEE标准,它是无线传感器网络通信协议中物理层与MAC层的一个具体实现。
(2) IEEE 802.15.4标准,即IEEE用于低速无线个人域网(LR—WPAN)的物理层和媒体接入控制层规范。该协议支持两种网络拓扑,即单跳星状或当通信线路超过10m时的多跳对等拓扑。LR-WPAN中的器件既可以使用在关联过程中指配的16位短地址,也可以使用64位IEEE地址。一个802。15.4网可以容纳最多216个器件。
2。 IEEE 802.15。4标准具有的特点: (1)支持简单器件。 (2)工作频段和数据速率。 (3)数据传输和低功耗。 (4)信标方式和超帧结构。 (5)自配置。 (6)安全性。
3。 IEEE 802.15.4网络组成
在IEEE 802。15.4网络中,根据设备所具有的通信能力,可以分为全功能设备(Full Function Device , FFD)和精简功能设备(Reduced Function Device , RFD).FFD设备之间以及FFD设备与RFD设备之间都可以通信。RFD设备之间不能直接通信,只能与FFD设备通信,或者通过一个FFD设备向外转发数据.这个与RFD相关联的FFD设备称为该RFD的协调器(coordinator).RFD设备主要用于简单的控制应用,如灯的开关、被动式红外线传感器等,传输的数据量较少,对传输资源和通信资源占用不多,这样RFD设备可以采用非常廉价的实现方案。
IEEE 802.15.4网络中,有一个称为PAN网络协调器(PAN coordinator)的FFD设备,是LR—WPAN网络中的主控制器.PAN网络协调器(以后简称网络协调器)
- 7 -
除了直接参与应用以外,还要完成成员身份管理、链路状态信息管理以及分组转发等任务.
4。 IEEE 802.15。4网络的拓扑结构 (1)IEEE 802。15.4网络的拓扑结构的种类
IEEE 802。15.4网络根据应用的需要可以组织成两种拓扑结构:星型网络拓扑结构和点对点网络拓扑结构。
(2)星型网络拓扑结构
在星型结构中,整个网络的形成以及数据的传输由中心的网络协调者集中控制,所有设备都与中心设备PAN网络协调器通信。各个终端设备(FFD或RFD)直接与网络协调者进行关联和数据传输。
(3)点对点网络拓扑结构
点对点网络中也需要网络协调器,负责实现管理链路状态信息,认证设备身份等功能。但与星型网络不同,点对点网络只要彼此都在对方的无线辐射范围之内,任何两个设备之都可以直接通信.
第二节 IEEE 802.15.4网络协议栈架构
1. IEEE 802。15.4网络协议栈简介
(1)IEEE 802。15。4网络协议栈基于开放系统互连模型(OSI),每一层都实现一部分通信功能,并向高层提供服务。
(2)IEEE 802.15。4标准只定义了PHY层和数据链路层的MAC子层.PHY层由射频收发器以及底层的控制模块构成。MAC子层为高层访问物理信道提供点到点通信的服务接口.
(3)MAC子层以上的几个层次,包括特定服务的聚合子层(Service Specific Convergence Sublayer, SSCS),链路控制子层(logical link control,LLC)等,只是IEEE 802.15.4标准可能的上层协议,并不在IEEE 802。15。4标准的定义范围之内。
(4)SSCS为IEEE 802。15.4的MAC层接入IEEE 802。2标准中定义的LLC子层提供聚合服务。LLC子层可以使用SSCS的服务接口访问IEEE 802.15。4网络,为应用层提供链路层服务.
2.物理层PHY规范 (1)物理层PHY的功能
在OSI参考模型中,物理层处于最底层,是保障信号传输的功能层,因此物理层涉及与信号传输有关的各个方面,包括信号发生、发送与接收电路,数据信号的传输编码、同步与异步传输等。物理层的主要功能是在一条物理传输媒体上,实现数据链路实体之间透明地传输各种数据的比特流。它为链路层提供服务
- 8 -
包括:物理连接的建立、维持与释放、物理服务数据单元的传输、物理层管理、数据编码。
物理层的主要功能分为物理层数据服务和物理层管理服务。
物理层数据服务从无线物理信道上收发数据,具体包括以下五方面的功能: 激活和休眠射频收发器。 信道能量检测(energy detect)。
检测接收数据包的链路质量指示(link quality indication,LQI)。 空闲信道评估(clear channel assessment,CCA)。 收发数据。
物理层管理服务维护一个与物理层相关数据组成的数据库. (2)信道分配
PHY层定义了三个载波频段用于收发数据。三个频段总共提供了27个信道(channel):868MHz频段1个信道,915MHz频段10个信道,2450MHz频段16个信道.
fc=868.3MHz k=0
fc=906+2(k—1) MHz k=1,2,…,10 fc=2405+5(k-11) MHz k=11,12,…,26 (3)物理层的帧结构
物理层协议数据单元帧结构由同步头、物理帧头和物理帧负载组成.物理帧第一个字段是四个字节的前导码,收发器在接收前导码期间,会根据前导码序列的特征完成片同步和符号同步。帧起始分隔符(start—of—frame delimiter, SFD)字段长度为一个字节,其值固定为0xA7,标识一个物理帧的开始。收发器接收完前导码后只能做到数据的位同步,通过搜索SFD字段的值0xA7才能同步到字节上。帧长度(frame length)由一个字节的低7位表示,其值就是物理帧负载的长度,因此物理帧负载的长度不会超过127个字节。物理帧的负载长度可变,称之为物理服务数据单元(PHY service data unit, PSDU),一般用来承载MAC帧.
3。MAC规范 (1)MAC的功能
MAC子层提供两种服务:MAC层数据服务和MAC层管理服务。前者保证MAC协议数据单元在物理层数据服务中的正确收发,后者维护一个存储MAC子层协议状态相关信息的数据库。
MAC子层主要功能包括下面八个方面: 如果设备是协调器,那么就需要产生网络信标; 信标的同步;
- 9 -
支持个域网络(PAN)的关联(association)和取消关联(disassociation)操
作;
支持无线信道通信安全;
使用CSMA—CA机制访问物理信道;
支持时槽保障(guaranteed time slot, GTS)机制; 支持不同设备的MAC层间可靠传输。
协调器产生并发送信标帧,普通设备根据协调器的信标帧与协议器同步; (2)IEEE 802。15.4中的时间同步技术
在IEEE 802.15.4中,时间同步通过 “超帧”机制实现的。
在IEEE 802.15。4中,以超帧为周期组织LR—WPAN网络内设备间的通信。每个超帧都以网络协调器发出信标帧(beacon)为始,在这个信标帧中包含了超帧将持续的时间以及对这段时间的分配等信息。网络中普通设备接收到超帧开始时的信标帧后,就可以根据其中的内容安排自己的任务,例如进入休眠状态直到这个超帧结束.超帧将通信时间划分为活跃和不活跃两个部分。在不活跃期间,PAN网络中的设备不会相互通信,从而可以进入休眠状态以节省能量。超帧有活跃期间划分为三个阶段:信标帧发送时段、竞争访问时段(contention access period, CAP)和非竞争访问时段(contention-free period, CEP).超帧的活跃部分被划分为16个等长的时槽,每个时槽的长度、竞争访问时段包含的时槽数等参数,都由协调器设定,并通过超帧开始时发出的信标帧广播到整个网络。在超帧的竞争访问时段,IEEE 802。15.4网络设备使用带时槽的CSMA-CA访问机制,并且任何通信都必须在竞争访问时段结束前完成。在非竞争时段,协调器根据上一个超帧PAN网络中设备申请GTS的情况,将非竞争时段划分成若干个GTS.每个GTS由若干个时槽组成,时槽数目在设备申请GTS时指定。如果申请成功,申请设备就拥有了它指定的时槽数目。每个GTS中的时槽都指定分配给了时槽申请设备,因而不需要竞争信道.IEEE 802。15.4标准要求任何通信都必须在自己分配的GTS内完成。超帧中规定非竞争时段必须跟在竞争时段后面。竞争时段的功能包括网络设备可以自由收发数据,域内设备向协调者申请GTS时段,新设备加入当前PAN网络等。非竞争阶段由协调者指定的设备发送或者接收数据包.如果某个设备在非竞争时段一直处在接收状态,那么拥有GTS使用权的设备就可以在GTS阶段直接向该设备发送信息.
(3)LR—WPAN数据传输模型
LR-WPAN网络中存在着三种数据传输方式:设备发送数据给协调器、协调器发送数据给设备、对等设备之间的数据传输.星型拓扑网络中只存在前两种数据传输方式,因为数据只在协调器和设备之间交换;而在点对点拓扑网络中,三种
- 10 -
数据传输方式都存在。LR—WPAN网络中,有两种通信模式可供选择:信标使能通信和信标不使能通信.
在信标使能的网络中,PAN网络协调器定时广播标帧。信标帧表示超帧的开始。设备之间通信使用基于时槽的CSMA-CA信道访问机制,PAN网络中的设备都通过协调器发送的信标帧进行同步。在时槽CSMA—CA机制下,每当设备需要发送数据帧或命令帧时,它首先定位下一个时槽的边界,然后等待随机数目个时槽。等待完毕后,设备开始检测信道状态:如果信道忙,设备需要重新等待随机数目个时槽,再检查信道状态,重复这个过程直到有空闲信道出现。在这种机制下,确认帧的发送不需要使用CSMA-CA机制,而是紧跟着接收帧发送回源设备。 在信标不使能的通信网络中,PAN网络协调器不发送信标帧,各个设备使用非分时槽的CSMA—CA机制访问信道。该机制的通信过程如下:每当设备需要发送数据或者发送MAC命令时,它首先等候一段随机长的时间,然后开始检测信道状态:如果信道空闲,该设备立即开始发送数据;如果信道忙,设备需要重复上面的等待一段随机时间和检测信道状态的过程,直到能够发送数据。在设备接收到数据帧或命令帧而需要回应确认帧的时候,确认帧应紧跟着接收帧发送,而不使用CSMA-CA机制竞争信道.
(4)MAC层帧结构
MAC层帧结构的设计目标是用最低复杂度实现在多噪声无线信道环境下的可靠数据传输。每个MAC子层的帧都由帧头、负载和帧尾三部分组成。帧头由帧控制信息、帧序列号和地址信息组成.MAC子层负载具有可变长度,具体内容由帧类型决定。帧尾是帧头和负载数据的16位CRC校验序列。
在MAC子层中设备地址有两种格式:16位(两个字节)的短地址和64位(8个字节)的扩展地址。16位短地址是设备与PAN网络协调器关联时,由协调器分配的网内局部地址;64位扩展地址是全球惟一地址,在设备进入网络之前就分配好了。16位短地址只能保证在PAN网络内部是惟一的,所以在使用16位短地址通信时需要结合16位的PAN网络标识符才有意义。两种地址类型的地址信息的长度是不同的,从而导致MAC帧头的长度也是可变的.一个数据帧使用哪种地址类型由帧控制字段的内容指示。在帧结构中没有表示帧长度的字段,这是因为在物理层的帧里面有表示MAC帧长度的字段,MAC负载长度可以通过物理层帧长和MAC帧头的长度计算出来。
(5)MAC层帧的分类
IEEE 802。15。4网络共定义了四种类型的帧:信标帧,数据帧,确认帧和MAC命令帧。
- 11 -
信标帧:信标帧的负载数据单元由四部分组成:超帧描述字段、GTS分配字段、待转发数据目标地址字段和信标帧负载数据.信标帧中超帧描述字段规定了这个超帧的持续时间,活跃部分持续时间以及竞争访问时段持续时间等信息。 GTS分配字段交无竞争时段划分为若干个GTS,并把每个GTS具体分配给了某个设备.转发数据目标地址列出了与协调者保存的数据相对应的设备地址。一个设备如果发现自己的地址出现在待转发数据目标地址字段里,则意味着协调器存有属于它的数据,所以它就会向协调器发出请求传送数据的MAC命令帧。信标帧负载数据为上层协议提供数据传输接口.例如在使用安全机制的时候,这个负载域将根据被通信设备设定的安全通信协议填入相应的信息。通常情况下,这个字段可以忽略.在信标不使能网络里,协调器在其他设备的请求下也会发送信标帧。此时信标帧的功能是辅助协调器向设备传输数据,整个帧只有待转发数据目标地址字段有意义。
数据帧:数据帧用来传输上层发到MAC子层的数据,它的负载字段包含了上层需要传送的数据。数据负载传送至MAC子层时,被称为MAC服务数据单元.它的首尾被分别附加了MHR头信息和MFR尾信息后,就构成了MAC帧。 MAC帧传送至物理层后,就成为了物理帧的负载PSDU。PSDU在物理层被“包装”,其首部增加了同步信息SHR和帧长度字段PHR字段.同步信息SHR包括用于同步的前导码和SFD字段,它们都是固定值。帧长度字段的PHR标识了MAC帧的长度,为一个字节长而且只有其中的低7位有效位,所以MAC帧的长度不会超过127个字节。
确认帧:如果设备收到目的地址为其自身的数据帧或MAC命令帧,并且帧的控制信息字段的确认请求。位被置1,设备需要回应一个确认帧。确认帧的序列号应该与被确认帧的序列号相同,并且负载长度应该为零.确认帧紧接着被确认帧发送,不需要使用CSMA-CA机制竞争信道。
命令帧:MAC命令帧用于组建PAN网络,传输同步数据等。目前定义好的命令帧有力种类型,主要完成三方面的功能:把设备关联到PAN网络,与协调器交换数据,分配GTS。命令帧在格式上和其他类型的帧没有太多的区别,只是帧控制字段的帧类型位有所不同。帧头的帧控制字段的帧类型为011B(B表示二进制数据)表示这是一个命令帧。命令帧的具体功能由帧的负载数据表示.负载数据是一个变长结构,所有命令帧负载的第一个字节是命令类型字节,后面的数据针对不同的命令类型有不同的含义。
本章思考题
1. IEEE 802.15.4协议物理层具有哪些功能? 2。 IEEE 802.15.4协议MAC层具有哪些功能?
- 12 -
3。 IEEE 802。15.4协议物理层数据桢有哪几部分组成? 4。 IEEE 802.15.4协议MAC层数据桢有哪几部分组成? 5. MAC层数据桢有哪几种类型?
- 13 -
第三章 ZigBee无线传感器网络通信标准
教学时数:4学时
教学目的与要求:本章要求学生理解ZigBee无线传感网络的主要概念,掌握ZigBee无线传感网络的组成、特点、协议栈架构、网络层和应用层规范。
教学重点:ZigBee无线传感器网络的体系结构、网络层和应用层规范。
第一节 ZigBee标准概述
1. ZigBee技术简介
ZigBee标准是一种新兴的短距离无线网络通信技术,它是基于IEEE 802。15。4协议栈,主要针对低速率的通信网络设计的.它功耗低,是最具有可能应用在工控场合的无线方式。它和2。4GHz频带提供的数据传输速率为250 kbps,915MHz频带提供的数据传输速率为40 kbps,而868 MHz频带提供的数据传输速率为20 kbps。
2.ZigBee体系结构
3. ZigBee技术的特点 (1)功耗低.
ZigBee网络节点设备工作周期较短、收发数据信息功耗低,且使用了休眠模式(当不需接收数据时处于休眠状态,当需要接收数据时由“协调器\"唤醒它们),因此,ZigBee技术特别省电,据估算,ZigBee设备仅靠两节5号电池就可以维持长达6个月到2年左右的使用时间,这是其他无线设备望尘莫及的避免了频繁更换电池或充电,从而减轻了网络维护负担。
(2)成本低。
由于ZigBee协议栈设计非常简练,所以其研发和生产成本较低。普通网络节点硬件只需8位微处理器,4-32KB的ROM,且软件实现也很简单。随着产品产业化,ZigBee通信模块价格预计能降到10元RMB,并且ZigBee协议是免专利费的.低成本对于ZigBee也是一个关键的因素。
- 14 -
(3)可靠高。
由于采用了碰撞避免机制并且为需要固定带宽的通信业务预留了专用时隙,避免了收发数据时的竞争和冲突,且MAC层采用完全确认的数据传输机制,每个发送的数据包都必须等待接收方的确认信息,所以从根本上保证了数据传输的可靠性。如果传输过程中出现问题可以进行重发。
(4)容量大。
1个ZigBee网络最多可以容纳254个从设备和1个主设备,1个区域内最多可以同时存在100个ZigBee网络,而且网络组成灵活。
(5)时延小.
ZigBee技术与蓝牙技术的时延相比,其各项指标值都非常小.通信时延和从休眠状态激活的时延都非常短,典型的搜索设备时延30ms,而蓝牙为3—10s。休眠激活的时延是15ms, 活动设备信道接入的时延为15ms。因此ZigBee技术适用于对时延要求苛刻的无线控制(如工业控制场合等)应用。
(6)安全性好。
ZigBee技术提高了数据完整性检查和鉴权功能,加密算法使用AES-128,且各应用可以灵活地确定安全属性,从而使网络安全能够得到有效的保障。
(7)有效范围小。
有效覆盖范围10 m~75 m之间,具体依据实际发射功率的大小和各种不同的应用模式而定,基本上能够覆盖普通的家庭或办公室环境。
(8)兼容性。
ZigBee技术与现有的控制网络标准无缝集成。通过网络协调器自动建立网络,采用载波侦听/冲突检测(CSMA.CA)方式进行信道接入。为了可靠传递,还提供全握手协议.
第二节 ZigBee协议框架
1. ZigBee协议框架简介
ZigBee堆栈是在IEEE 802.15。4标准基础上建立的,定义了协议的MAC和PHY层。ZigBee设备应该包括IEEE802。15。4(该标准定义了RF射频以及与相邻设备之间的通信)的PHY和MAC层,以及ZigBee堆栈层:网络层(NWK)、应用层和安全服务提供层。
每个ZigBee设备都与一个特定模板有关,可能是公共模板或私有模板。这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇。公共模板可以确保不同供应商的设备在相同应用领域中的互操作性。
设备是由模板定义的,并以应用对象(ApplicationObjects)的形式实现。每个应用对象通过一个端点连接到ZigBee堆栈的余下部分,它们都是器件中可寻
- 15 -
址的组件从应用角度看,通信的本质就是端点到端点的连接(例如,一个带开关组件的设备与带一个或多个灯组件的远端设备进行通信,目的是将这些灯点亮)。
端点之间的通信是通过称之为簇的数据结构实现的。这些簇是应用对象之间共享信息所需的全部属性的容器,在特殊应用中使用的簇在模板中有定义.
每个接口都能接收(用于输入)或发送(用于输出)簇格式的数据。一共有二个特殊的端点,即端点0和端点255。端点0用于整个ZigBee设备的配置和管理。应用程序可以通过端点0与ZigBee堆栈的其它层通信,从而实现对这些层的初始化和配置.附属在端点0的对象被称为ZigBee设备对象(ZD0)。端点255用于向所有端点的广播.端点241到254是保留端点。所有端点都使用应用支持子层(APS)提供的服务。APS通过网络层和安全服务提供层与端点相接,并为数据传送、安全和绑定提供服务,因此能够适配不同但兼容的设备,比如带灯的开关。
APS使用网络层(NWK)提供的服务.NWK负责设备到设备的通信,并负责网络中设备初始化所包含的活动、消息路由和网络发现。应用层可以通过ZigBee设备对象(ZDO)网络层参数进行配置和访问。
2.服务接入点
ZigBee协议栈体系包含一系列的层元件,其中有IEEE802。15.42003标准中的MAC层和PHY层,当然也包括ZigBee组织设计的NWK层和应用层。每个层的元件有其特定的服务功能。
ZigBee的体系结构由称为层的各模块组成.每一层为其上层提供特定的服务:即由数据服务实体提供数据传输服务;管理实体提供所有的其他管理服务。ZigBee堆栈的大多数层有两个接口:数据实体接口和管理实体接口。数据实体接口的目标是向上层提供所需的常规数据服务。管理实体接口的目标是向上层提供访问内部层参数、配置和管理数据的机制。
每个服务实体通过相应的服务接入点(SAP)为其上层提供一个接口,每个服务接入点通过服务原语来完成所对应的功能.
3。zigbee中原语的概念
原语是层与层之间信息交互的接口,交互的信息就是原语的参数。原语只有四种类型:请求原语:Request,确认原语:Confirm,指示原语:Indication,响应原语:Response,其中Request和Response是从上层到下层的,Confirm和Indication是从下层到上层的.
举例:假如上层请求下层打开接收机,给下层一个request,下层完成请求的功能后,给上层一个Confirm,告诉上层正确完成了,或者出什么错了;
假如上层请求下层发送数据到Remote端,给下层一个数据发送的request,
- 16 -
下层完成数据发送任备后,给上层一个Confirm告诉上层结果;在对端,对应的下层收到数据后,需要通过indication把收到的数据传给上层.
假如节点A要请求节点B的对等层的一个服务,给自己下层一个请求,下层将信息发送到节点B的对等层之后,节点B的下层用indication告诉上层,上层做出影响后,用Response给到下层,节点B再发送到节点A的对等层,节点A的下层再用confirm原语要得到的信息返回给上层。
第三节 ZigBee网络层规范
1。ZigBee网络设备的类型
ZigBee网络设备的类型有三种:协调器、路由器和终端设备。 (1)协调器
是启动或建立ZigBee网络的设备,它是网络上的第一个设备,协调器首先选择一个信道和网络标识(PAN ID),然后开始这个网络.这个协调器也可以辅助建立安全和应用等级绑定在网络中。协调器的主要角色是建立和配置网络,一旦建立完成,协调器的作用就与同路由器。
(2)路由器的功能:
i)允许其它设备加入这个网络; ii)跳跃路由
iii)辅助它的子树电池供电终端的通信。 (3)终端设备
一个终端设备对于维护这个网络设备没有具体的责任,只能传送数据给FFD或者从FFD接收数据。
2。 ZigBee网络拓扑结构
ZigBee支持包含主从设备的星状、树簇状和网状网络拓扑,每个网络中都会存在一个唯一的协调器,它相当于有线局域网中的服务器,对本网络进行管理。ZigBee以独立的节点为依托,通过无线通信组成星状、树状或网状网络,因此不同的节点功能可能不同。为了降低成本就出现了全功能设备(FFD)和半功能设备(RFD)之分,FFD支持所有的网络拓扑在网络中可以充当任何设备(协调器、路由器及终端节点)而且可以与所有设备进行通信,而RFD则在网络中只能作为子节点不能有自己的子节点(即只能作为终端节点)而且其只能与自己的父节点通信,RFD功能是FFD功能的子集。
ZigBee设备有两种地址,一个是唯一的64位的IEEE地址(绝对地址),可以使用这个64位地址在PAN中进行通信,一个是16位的短地址(相对地址),它是在设备与网络协调器建立连接后协调器为设备分配的16位的短地址,此短
- 17 -
地址可用来在PAN内进行通信.
(1)星状拓扑结构
在一个星状拓扑结构网络中存在一个网络协调器以及若干个从设备。协调器的作用是建立和维护网络,他必须是FFD,而且一般都会有稳定的电源供电,因此不用考虑能耗的问题。从设备可以是FFD也可以是RFD,大部分情况下从设备都是用电池供电的RFD,它只能与协调器直接通信,如果要与其他设备进行通信则需要协调器进行转发。
星状网络的建立:当一个FFD设备上电或复位开始工作时,它会检测周围的通信环境,选择合适的信道并确定该网络唯一的PAN标识符,建立一个网络。PAN标识符用来区分本网络与其他网络,网络内的从设备也是通过PAN标识符确定自己与协调器的从属关系的。网络建立后,协调器就允许其他设备与其建立连接、加入网络。这样,ZigBee星状网络就建立起来了.
星状网络拓扑结构简单、容易实现而且管理方便,但不适合大规模的复杂网络,而且如果网络中某个节点断开就会影响其他节点的通信,这限制了无线网络的部署范围。
(2)树簇状拓扑结构
树簇状网络拓扑其实是对星状网络的扩充,树簇状拓扑结构适合于分布范围较大的网络中,如图2—2所示。图中,在网络最末端的节点成为“叶”节点,即终端设备。若干个“叶”节点与一个FFD设备节点相连接从而形成一个“簇”,而若干个“簇”连接就形成了“树”,所以称这种拓扑结构为树簇状拓扑结构。树簇状拓扑结构中的大部分设备是FFD,RFD只能作为“叶”节点(“叶”节点也可以是FFD)。在树簇状网络中存在一个主协调器,主协调器拥有更多的资源、稳定而且可靠的供电等。
树簇状网络的建立:主协调器启动并建立PAN后,先选择一个PAN标识符,并把自己的短地址设置成0,然后广播自己的信息,接受其他设备加入网络,建立第一级树,协调器与这些加入网络中的设备是父子关系。主协调器会给每个与其建立连接的设备分配一个16位的短地址。如果设备是作为终端设备接入网络的,协调器会分配给它一个唯一的16位短地址;而如果设备是作为路由器加入网络的,协调器则会分配给它一个包括若干短地址的地址块。路由器会把自己的信息广播出去,并允许其他设备与其建立连接,成为它的子设备.同样的,这些子设备中也可也存在路由器,这些路由器也可以拥有自己的子设备,这样下去就可以形成复杂的树簇状结构网络.从树状网络的形成过程中我们可以看出,树状网络中任何一个节点的故障都会影响到与其相连的子节点.
(3) 网状拓扑结构
- 18 -
网状拓扑结构中也存在着一个协调器,通常是第一个启动并进行通信的节点。但网状网络中的所有节点都是FFD,所以网络中的任何设备都可以与其通信范围内的其他设备进行通信.在网状拓扑结构网络中传输数据时,可以通过路由器进行转发,即多条传输,这样可以很大程度的提高网络的覆盖范围。
3.网络层的功能
ZigBee联盟定义了ZigBee的网络层.ZigBee网络层要具备的功能包括加入和离开一个网络所要用到的机制、应用帧安全机制以及它们的目的地路由帧机制.另外,两个设备中路由的发现和维护也被一觉到网络层。一条邻居的发现及存储相关信息也是在网络层里完成的。
网络层的主要目的是确保正确地操作IEEE 802.15。4MAC子层并为应用层提供服务接口.网络层内部在逻辑上由两部分组成:网络层数据实体(NLDE)和网络层管理实体(NLME)。网络层数据实体通过连接的SAP(即NLDE-SAP,网络层数据实体服务接口)为数据传输服务,网络层管理实体通过相连的SAP(即NLME—SAP,网络层管理实体服务接口)提供管理服务,另外还负责维护网络层信息库(NIB).
(1)网络层数据实体
网络层数据实体会提供一个允许一个应用进程在两个以上的设备间传输应用协议数据单元(APDU)的数据服务,而这些设备必须在同一个网络中。
网络层数据实体提供的服务:
产生网络层PDU:通过为应用子层协议数据单元PDU增加相应的协议
信息,构造网络层协议数据单元NPDU。
拓扑制定路由:把NPDU传输到一个设备,这个设备可以使通信的最终
目的,也可以是最终目的设备的前一个设备. (2)网络层管理实体
网络层管理实体用该提供允许一个应用进程与堆栈互相作用的管理服务. 网络层管理实体提供的服务如下:
配置和初始化设备,保证该设备有能力完成它在网络中的功能. 建立网络:如果设备是协调器,那么它必须能初始化并建立一个新的网
络。
写地址:若是协调器或者是路由器,则需能够为设备分配网络地址. 发现设备:有能力发现.记录和报告有关设备的一跳邻居信息。 接收控制:能控制设备在何时接收以及接收事件的长短,使MAC层实
现同步或直接接收。
发现路由:具备发现、记录通过网络有效传递信息的路由的能力。
- 19 -
加入和离开网络:能加入和离开网络,也能让协调器或路由器请求设备离
开网络.
4. 网络层帧格式及类型
网络层的帧是由网络层帧头和网络层负载组成。网络层帧头,它包括帧控制域、地址域以及序列信息域。 网络层负载,其长度是可变的还包含了指定帧类型的信息。 帧控制域长度2字节,包含了信息定义帧类型、协议版本、发现路由、安全子域以及其他控制标记;目的地址域总是存在的,其长度为2字节,其内容为目的设备的16位网络地址或者是广播地址(0xFFFF);源地址域也是不可缺少的,其长度也是2字节,其内容为此帧的源设备网络地址;半径域也总是存在,其长度为1字节表示帧传输的半径。网络中的设备接收到该帧后,半径域的直接会被减1;序列号域长1字节,它存在于任意一个帧中。传输时,每一个新的传输帧序列值将加1。帧静载荷域的长度是可变的,它包含有单个帧的帧类型信息.
网络层定义了两种帧类型:数据帧和网络层命令帧.
第四节 ZigBee应用层规范
ZigBee 应用层有三个组成部分,包括应用支持子层APS、应用框架AF、ZigBee 设备对象ZDO。它们共同为各应用开发者提供统一的接口,规定了与应用相关的功能,如端点( Endpoint) 的规定,绑定( Binding) 、服务发现和设备发现等等。
1.应用支持子层APS
APS 层主要作用包括: 协议数据单元APDU 的处理,APSDE 提供在同一个网络中的应用实体之间的数据传输机制,APSME 提供多种服务给应用对象,并维护管理对象的数据库。
2。应用框架AF
在ZigBee应用中,应用框架AF( Application Framework)提供了两种标准服务类型.一种是键值对(key value pair,KVP)服务类型,一种是报文(message,MSG)服务类型。KVP服务用于传输规范所定义的特殊数据.
3.ZigBee 设备对象ZDO
ZDO 实际上是介于应用层端点和应用支持子层中间的端点,其主要功能集中在网络管理和维护上.应用层的端点可以通过ZDO 提供的功能来获取网络或者是其他节点的信息,包括网络的拓扑结构、其他节点的网络地址和状态以及其他节点的类型和提供的服务等信息.
- 20 -
本章思考题
1. ZigBee技术具有哪些特点? 2. 协调器具有哪些功能? 3。 路由器具有哪些功能? 4. 网络层具有哪些功能?
5. ZigBee网络有哪几种拓扑结构?各结构具有哪些特点? 6. ZigBee应用层可分为哪几个部分?
- 21 -
第四章 ZigBee开发平台
教学时数:2学时
教学目的与要求:主要让学生理解ZigBee无线通信技术的硬件开发平台、软件开学环境,掌握Zigbee硬件开发平台的组成,学会开发环境IAR安装、配置和使用。
教学重点:Zigbee硬件开发平台的组成,开发环境IAR安装、配置和使用。
第一节 ZigBee硬件开发平台
1. CC2530射频模块 (1)概述
本教案所用ZigBee模块,基于ZigBee2007标准和TI第二代ZigBee SOC CC2530F256芯片,模块采用SMT工艺批量生产,一致性好,可靠性高;模块工作在免费的2。4G频段,数字IO接口全部引出,用处广泛;模块免除了客户射频开发的困难;软件方面支持TI-MAC,SimpliciTI,Z-Stack,RemoTI等软件包,方便客户开发符合IEEE 802.15.4、ZigBee 2007、ZigBee Pro和ZigBee RF4CE等标准或其他非标准的产品。模块体积小巧,采用外置SMA天线设计,增益大,接收灵敏度高,通信距离远,实测可视距离可达400米.
(2)CC2530射频模块的优点
1) CC2530集成单片机、ADC、无线通信模块于一体,大大提高了单片机与无线通信模块组合时的可靠性,同时也减小了节点的体积与质量.
2) CC2530支持最新的ZigBee协议——ZigBee 2007/PRO,而TI之前的SOC射频芯片CC2430/CC2431等不支持ZigBee 2007/PRO协议栈。 ZigBee 2007/PRO相对于以前的协议栈具有更好的互操作性、节点密度管理、数据负荷管理、频率捷变等方面有重大进步,且具有支持网状网络和低功耗特点. 这就使得运用CC2530设计出来的节点通信距离更远,组网性能更稳定可靠.
3) CC2530相对于CC2430/CC2431来说性能更优、价格更低。 (3)调试接口
SmartRF04EB是TI公司发布的第四版CC系列芯片调试器,可用于CC11xx、CC243x、CC251x、CC253x等多个系列芯片,支持仿真、调试、单步、烧录、加密等操作,可与IAR编译环境和Ti发布的相关软件进行无缝连接.
2. 物联网创新实验系统OURS-IOTV2—2530简介
物联网创新实验系统OURS-IOTV—2530采用系列传感器模块和无线节点组成无线传感网,扩展嵌入式关实现广域访问,可多种物联构架,完成物联网相关的传感器信息采集、 无线号收发信息采集、 无线号收发信息采集、 无线号
- 22 -
收发信息采集、 Zigbee 网络通讯、组件控制全过程多种教学实验和技术,适合各大高校及专院的业教学、创新和竞赛。
物联网创新实验系统OURS-IOTV2-2530的功能特点如下:
1)具有 USB高速下载,支持IAR 集成开发环境; 2)具有在线下载、调试、仿真功能; 3)提供ZigBee协议栈源代码; 4)所有例子程序以源代码方式提供;
5)配置灵活,可根据需求选配多种扩展模块; 6)采用C51编程,入手快; 7)具有液晶显示,直观明了;
第二节 ZigBee软件开发平台
1。 IAR简介
IAR Embedded Workbench是一套高度精密且使用方便的嵌入式应用编程开发工具.该集成开发环境中包含了IAR的C/C++编译器,汇编工具,链接器,库管理器,文本编辑器,工程管理器和C-SPY®调试器.通过其内置的针对不同芯片的代码优化器,IAR Embedded Workbench可以为8051系列芯片生成非常高效和可靠的FLASH/PROMable代码.嵌入式 IAR Embedded Workbench IDE提供一个框架,任何可用的工具都可以完整地嵌入其中.嵌入式IAR Embedded Workbench适用于大量8位、16位以及32位的微处理器和微控制器,使用户在开发新的项目时也能在所熟悉的开发环境中进行.它为用户提供一个易学和具有最大量代码继承能力的开发环境,以及对大多数和特殊目标的支持.
2.IAR基本操作 1)IAR的安装 2)IAR工程的建立 3)新建一个C文件 4)将C文件加入到工程中 5)工程配置 6)工程保存 7)调试程序 本章思考题
1。 CC2530的优点有哪些? 2. IAR开发环境有哪些功能?
- 23 -
第五章 CC2530基础实验
教学时数:12学时
教学目的与要求:主要让学生了解CC2530单片机的主要特性、应用领域,理解CC2530的主要功能模块,掌握CC2530芯片的引脚功能、通用I/O端口及相关寄存器、中断、定时器、睡眠定时器、时钟和电源管理、看门狗、USART、ADC和DMA的使用。
教学重点:CC2530芯片的引脚功能、通用I/O端口及相关寄存器的使用。 教学难点:中断、定时器、USART、ADC和DMA的使用。
第一节 CC2530概述
(1)CC2530简介
CC2530 (无线片上系统单片机)是用于 IEEE 802。15.4、ZigBee 和 RF4CE 应用的一个真正的片上系统(SoC)解决方案。 它能够以非常低的总的材料成本建立强大的网络节点。CC2530 结合了领先的2.4GHz的 RF 收发器的优良性能, 业界标准的增强型8051 单片机, 系统内可编程闪存,8—KB RAM 和许多其他强大的功能.
根据芯片内置闪存的不同容量,CC2530 有四种不同的型
号:CC2530F32/64/128/256, 编号后缀分别代表具有32/64/128/256KB 的闪存。CC2530 具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短进一步确保了低能源消耗。
(2)CC2530芯片主要特征
高性能、低功耗且具有代码预取功能的 8051 微控制器内核
符合 2.4-GHz IEEE 802.15。4标准 的优良的无线接收灵敏度和抗干扰
性能2。4G RF 收发器 低功耗
宽电源电压范围(2 V–3。6 V) 支持硬件调试
支持精确的数字化 RSSI/LQI和强大的 5 通道 DMA IEEE 802.5.4 MAC 定时器,通用定时器 (一个 16 位定时器,一个 8 位定时器) 具有IR 发生电路
具有捕获功能的 32-kHz 睡眠定时器 硬件支持 CSMA/CA功能 具有电池监测功能和温度传感功能
具有 8 路输入和可配置分辨率的 12 位ADC
- 24 -
集成AES 安全协处理器
2 个支持多种串行通信协议的强大USART 21 个通用 I/O 引脚 (19× 4 mA,2×20 mA) 看门狗定时器 强大灵活的开发工具 (3)CC2530的应用领域
2.4—GHz IEEE 802.15。4 系统
RF4CE 远程控制系统(需要大于 64-KB闪存) ZigBee 系统(需要256—KB 闪存) 家庭/楼宇自动化 照明系统 工业控制和监控 低功耗无线传感网络 消费型电子 医疗保健
(4)CC2530的组成模块
CC2530大致可以分为四个部分:CPU 和内存相关的模块、外设、时钟和电源管理相关的模块,以及无线电相关的模块。
第二节 CC2530芯片引脚的功能
CC2530芯片采用6mm*6mmQFN40封装,共有40个引脚,可分为I/O引脚、电源引脚和控制引脚。
- 25 -
1. I/O端口引脚功能
CC2530芯片有21个可编程I/O引脚,P0和P1是完整的8位I/O端口,P2只有5个可以使用的位。其中P1_0和P1_1具有20mA的输出驱动能力,其它I/O端口引脚具有4mA的输出驱动能力.在程序中可以设置特殊功能寄存器(SFR)来将这些引脚设为普通I/O口还是作为外设I/O口使用.
CC2530芯片所有I/O口具有以下特性: 在输入时有上拉和下拉的能力
全部I/O口具有响应外部中断的能力,同时这些外部中断可以唤醒休眠
模式。 2.电源引脚功能
AVDD1—AVDD6 :为模拟电路提供2.0-3.6V工作电压 DCOUPL:提供1.8V的去耦电压,此电压不为外电路使用。 DVDD1,DVDD2:为I/O口提供2.0—3。6V电压 GND:接地 3.控制引脚功能
RESET_n:复位引脚,低电平有效 RBIAS:为参考电流提供精确的偏置电阻 RF_N:RX期间负RF输入信号到LNA RF_P: RX期间正RF输入信号到LNA XOSC_01:32MHz晶振引脚1 XOSC_02:32MHz晶振引脚2
第三节通用I/O端口
1. 通用I/O端口简介
CC 2530有 21个数字I/O引脚, 可以配置为通用数字I/O引脚或外设I/O引脚(即配置为用于CC 2530内部ADC、定时器或USART的I/O引脚)。这些 I/O引脚的用途可以通过一系列寄存器配置,由用户软件加以实现。当用作通用 I/O端口时,引脚可以组成3个8位口,定义为P0、P1和P2。P0和P1为八位,P2为5位,共21个I/O口,所有端口可以实现位寻址。所有的端口均可以通过 SFR 寄存器 P0、P1 和 P2 位寻址和字节寻址。每个端口引脚都可以单独设置为通用I/O端口 或外部设备 I/O端口。
2. I/O引脚具备如下重要特性: 21 个数字 I/O 引脚
可以配置为通用I/O引脚或外部设备 I/O引脚 输入口具备上拉或下拉能力
- 26 -
具有外部中断能力,21 个 I/O 引脚都可以用作于外部中断源输入口,外部中断可以将CC 2530从睡眠模式中唤醒
3. 通用 I/O端口相关寄存器
(1)寄存器 PxSEL,其中 x 为端口的标号 0~2,用来设置端口的每个引脚为通用I/O 或者是外部设备 I/O 。作为缺省的情况,每当复位之后,所有的数字输入/输出引脚都设置为通用输入引脚。
(2)寄存器PxDIR 来设置每个端口引脚为输入或输出。只要设置 PxDIR中的指定位为 1,其对应的引脚就被设置为输出;只要设置 PxDIR中的指定位为 0,其对应的引脚就被设置为输入。
(3)寄存器PxINP用来在通用 I/O 端口用作输入时将其设置为上拉、下拉或三态操作模式。作为缺省的情况,复位之后,所有的端口均设置为带上拉的输入。 要取消输入的上拉或下拉功能, 就要将PxINP 中的对应位设置为 1。I/O 端口引脚 P1_0 和 P1_1即使外设功能是输入,也没有上拉/下拉功能。
第四节 外部中断
1。 CC2530中断概述
CC2530 有 18 个中断源.每个中断源都有它自己的、位于一系列 寄存器中的中断请求标志.每个中断可以分别使能或禁用.
2. 中断屏蔽
每个中断请求可以通过设置中断使能 寄存器IEN0,IEN1 或者 IEN2的中断使能位使能或禁止。某些外部设备会因为若干中断事件产生中断请求.这些中断请求可以作用于P0端口、P1端口、P2端口、DMA、计数器或者RF上。对于每个内部中断源对应的特殊功能寄存器,这些外部设备都有中断屏蔽位。
3。 中断使能的步骤
(1)使用IEN0中IEN0。EA位为1,开中断
(2)设置寄存器IEN0、IEN1和IEN2中相应中断使能位为1 (3)如果需要,则设置P0 、P1、P2各引脚对应的各中断使能位为1 (4)最后在寄存器 PICTL中设置中断是上升沿还是下降沿触发 4。中断处理
中断发生时,无论该中断使能或禁止,CPU都会在中断标志寄存器中设置中断标志位,在程序中可以通过中断标志位来判断是否发生了相应的中断。如果当设置中断标志时中断使能,那么在下一个指令周期,由硬件强行产生一个长调用指令LCALL到对应的向量地址,运行中断服务程序。中断的响应需要不同的时间, 取决于该中断发生时CPU的状态. 当CPU正在运行的中断服务程序, 其
- 27 -
优先级大于或等于新的中断时,新的中断暂不运行,直至新的中断的优先级高于正在运行的中断服务程序。
第五节 定时器
1. 定时器简介
CC 2530共有四个定时器T1、T2、T3、T4,定时器用于范围广泛的控制和测量应用,可用的五个通道的正计数/倒计数模式可以实现诸如电机控制之类的应用。
T1为16位定时/计数器,支持输入采样、输出比较和PWM功能。T1有五个独立的输入采样/输出比较通道,每一个通道对应一个I/O口。T2为MAC定时器,T3、T4为8位定时/计数器,支持输出比较和PWM功能.
2。 定时器T1 (1)定时器 1 的功能 五个捕获/比较通道
上升沿、下降沿或任何边沿的输入捕获 设置、清除或切换输出比较 自由运行、模或正计数/倒计数操作 可被 1,8,32 或 128 整除的时钟分频器 在每个捕获/比较和最终计数上生成中断请求 DMA 触发功能 (2)定时器 1 寄存器
T1CNTH – 定时器 1 计数高位 T1CNTL T1STAT
– 定时器 1 计数低位 –定时器 1 状态
T1CTL – 定时器 1 控制 (3)定时器1的操作 1)自由运行模式
在自由运行操作模式下, 计数器从0x0000 开始, 每个活动时钟边沿增加1。 当计数器达到0xFFFF (溢出),计数器载入 0x0000,继续递增它的值,如图 5-8所示。当达到最终计数值 0xFFFF,设置标志 IRCON.T1IF 和T1STAT。OVFIF.如果设置了相应的中断屏蔽位 一个中断请求.
2)模模式
当定时器运行在模模式,16 位计数器从 0x0000 开始, 每个活动时钟边沿
- 28 -
TIMIF.OVFIM 以及 IEN1.T1IE,将产生
增加1。 当计数器达到寄存器T1CC0 (溢出)时,寄存器T1CC0H:T1CC0L 保存的最终计数值,计数器将复位到0x0000,并继续递增。如果定时器开始于T1CC0 以上的一个值,当达到最终计数值( 0xFFFF)时,设置标志 IRCON.T1IF 和 T1CTL。OVFIF.如果设置了相应的中断屏蔽位 TIMIF.OVFIM 以及 IEN1。T1IE,将产生一个中断请求. 模模式被大量用于周期不是0xFFFF的应用程序。
3)正计数/倒计数模式
在正计数/倒计数模式,计数器反复从 0x0000 开始,正计数直到达到 T1CC0H:T1CC0L 保存的值。然后计数器将倒计数直到 0x0000,如图 5.10 所示。这个定时器用于周期必须是对称输出脉冲而不是0xFFFF 的应用程序,因为这种模式允许中心对齐的
PWM 输出应用的实现。在正计数 /倒计数模式,当
达到最终计数值时,设置标志IRCON.T1IF 和 T1CTL。OVFIF。如果设置了相应的中断屏蔽位 TIMIF.OVFIM 以及 IEN1.T1EN,将产生一个中断请求.
(4)16 位计数器
定时器1包括一个 16 位计数器,在每个活动时钟边沿递增或递减.活动时钟边沿周期由寄存器位CLKCON.TICKSPD 定义,它设置全球系统时钟的划分,提供了从 0。25MHz 到 32MHz 的不同的时钟标记频率(可以使用 32 MHz XOSC 作为时钟源).这在定时器1 中由 T1CTL。DIV 设置的分频器值进一步划分。这个分频器值可以从 1、8、32 或 128。因此当 32 MHz 晶振用作系统时钟源时,定时器1 可以使用的最低时钟频率是1953。125Hz,最高是 32 MHz。当 16MHz RC 振荡器用作系统时钟源时,定时器1 可以使用的最高时钟频率是16MHz。
3.定时器 3和定时器4
定时器 3 和定时器 4 的所有定时器功能都是基于8位计数器建立的,所以定时器 3 和定时器 4最大计数值要远远小于定时器1,常用于较短时间间隔的定时。定时器 3 和定时器 4各有0、1两个通道,功能较定时器 1要弱.计数器在每个时钟边沿递增或递减.活动时钟边沿的周期由寄存器位CLKCONCMD.TICKSPD[2:0]定义,由 TxCTL。DIV[2:0](其中 x 指的是定时器号码,3 或 4)设置的分频器值进一步划分。计数器可以作为一个自由运行计数器,倒计数器,模计数器或正/倒计数器运行.
可以通过 寄存器 TxCNT 读取 8 位计数器的值,其中 x 指的是定时器号码:3 或 4。计数器开始和停止是通过设置 TxCTL 控制寄存器的值实现的。当 TxCTL.START 写入 1 时,计数器开始。当 TxCTL.START 写入 0 时,计数器停留在它的当前值。
第六节 1602型 LCD
- 29 -
1.1602型 LCD简介
字符型液晶模块是目前单片机应用设计中最常用的信息显示器件。1602型LCD是一种工业字符型液晶,能够同时显示16x2即32个字符(16列2行)。LCD1602显示模块具有体积小,功耗低,显示内容丰富等特点,被广泛应用于各种单片机应用中。 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形. 1602型LCD有8位数据总线D0~D7和RS,R/W,E三个控制端口,工作电压为5V或3。3V,并且具有字符对比度调节和背光功能。微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。
2。 1602型LCD管脚功能 第1脚:VSS为电源地 第2脚:VCC接电源正极
第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器.
第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作.
第6脚:E(或EN)端为使能(enable)端。 第7~14脚:D0~D7为8位双向数据端。
第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 3。 1602型LCD字符集
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。
4. 1602型LCD基本操作程序
读状态:输入:RS=L,RW=H,E=H 输出:DB0~DB7=状态字 读数据:输入:RS=H,RW=H,E=H 输出:无
写指令:输入:RS=L,RW=L,DB0~DB7=指令码,E=H 输出:DB0~
D7=数据
写数据:输入:RS=H,RW=L,DB0~DB7=数据,E=H 输出:无
- 30 -
4.1602型LCD 指令集
1602通过D0~D7的8位数据端传输数据和指令。 (1)显示模式设置: (初始化)
0010 01000 [0x28] 设置16×2显示,5×7点阵,4位数据接口; (2)显示开关及光标设置: (初始化)
0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效) 0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1), N=0(读或写一个字符后地址指针减1 &光标减1), S=1 且 N=1 (当写一个字符后,整屏显示左移) s=0 当写一个字符后,整屏显示不移动 (3)数据指针设置:
数据首地址为80H,所以数据地址为80H+地址码(0—27H,40—67H) (4)其他设置:
01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0).
第七节 USART
1.USART简介
USART0和USART1是串行通信接口,它们能够分别运行于异步UART模式或者同步SPI 模式.两个USART具有同样的功能,可以设置在单独的I/O 引脚.
2. UART 模式
UART 模式提供异步串行接口。在UART 模式中,接口使用2 线或者含有引脚RXD、TXD、可选RTS 和CTS 的4 线.UART 模式的操作具有下列特点:
8 位或者9 位负载数据 奇校验、偶校验或者无奇偶校验 配置起始位和停止位电平 配置LSB 或者MSB 首先传送 独立收发中断 独立收发DMA 触发 奇偶校验和帧校验出错状态 3. 数据帧格式
UART 模式提供全双工传送,接收器中的位同步不影响发送功能.传送一个UART 字节包含1 个起始位、8个数据位、1 个作为可选项的第9 位数据或者奇偶校验位再加上1 个或2 个停止位.
4。 寄存器
对于每个USART,有5个如下的寄存器(x是USART 的编号,为0或者1):
- 31 -
UxCSR:USARTx 控制和状态; UxUCR:USARTx UART 控制; UxGCR:USARTx 通用控制
UxBUF:USART x 接收/发送数据缓冲 UxBAUD:USART x 波特率控制 5。 UART 发送
当USART 收/发数据缓冲器、寄存器UxBUF 写入数据时,该字节发送到输出引脚TXDx。UxBUF 寄存器是双缓冲的。
当字节传送开始时, UxCSR。ACTIVE 位变为高电平,而当字节传送结束时为低。当传送结束时,UxCSR.TX_BYTE 位设置为1。当USART 收/发数据缓冲寄存器就绪,准备接收新的发送数据时,就产生了一个中断请求.
6。 UART 接收
当1 写入UxCSR。RE 位时,在UART 上数据接收就开始了.然后UART 会在输入引脚RXDx 中寻找有效起始位,并且设置UxCSR.ACTIVE 位为1.当检测出有效起始位时,收到的字节就传入到接收寄存器,UxCSR.RX_BYTE 位设置为1。该操作完成时,产生接收中断。同时UxCSR.ACTIVE 变为低电平。
通过寄存器UxBUF 提供收到的数据字节。
第八节 ADC
1. ADC 简介
所谓A/D转换器就是模拟/数字转换器(Analog to Digital Converter 简称ADC)是将输入的模拟信号转换成为数字信号。
CC2530 的ADC(模拟/数字转换器) 支持多达 14 位的模拟数字转换,具有多达12 位的有效数字位,比一般的单片机的8位ADC精度要高。它包括一个模拟多路转换器,具有多达 8 个各自可配置的通道;以及一个参考电压发生器。转换结果可以通过DMA 写入存储器,从而减轻CPU的负担.
2。 ADC 输入
端口 0 引脚的信号可以用作 ADC 输入(这时一般用AIN0—AIN7 引脚来称呼这些引脚).可以把 AIN0—AIN7配置为单端或差分输入。 在选择差分输入的情况下, 差分输入包括输入对AIN0-1、AIN2-3、AIN4—5 和 AIN6—7。差分模式下的转换取自输入对之间的电压差,例如AIN0和 AIN01这两个引脚的差。除了输入引脚AIN0-AIN7,片上温度传感器的输出也可以选择作为 ADC 的输入,用于片上温度测量。还可以输入一个对应AVDD5/3 的电压作为一个 ADC 输入。这个输入允许在应用中实现一个电池监测器的功能。注意在这种情况下参考电压不能取决于电源电压,比如AVDD5 电压不能用作一个参考电压。八位模
- 32 -
拟输入来自 I/O 引脚,不必经过编程变为模拟输入。但是相应的模拟输入在APCFG 中禁用,那么通道将被跳过。当使用差分输入,处于差分对的两个引脚都必须在APCFG 寄存器中设置为模拟输入引脚。
ADC的输入用16个通道来描述,单端电压输入AIN0到AIN7以通道号码0到7表示。差分输入对AIN0–AIN1、AIN2–AIN3、AIN4–AIN5 和 AIN6–AIN7用通道8到11表示。GND ADCCON3(单个转换)决定。
3. ADC 转换结果
数字转换结果以 2 的补码形式表示.对于单端配置,结果总是为正.这是因为结果是输入信号和地面之间的差值,它总是一个正符号数输入幅度等于所选的电压参考VREF时,达到最大值。 对于差分配置,两个引脚对之间的差分被转换, 这个差分可以是负符号数. 对于抽取率是512的一个数字转换结果的 12 位 MSB, 当模拟输入Vconv 等于 VREF 时, 数字转换结果是2047。 当模拟输入等于—VREF 时,数字转换结果是-2048.
当 ADCCON1.EOC 设置为 1 时,数字转换结果是可以获得的,且结果放在ADCH 和 ADCL 中。
4。 单个 ADC 转换
除了转换序列,ADC 可以编程为从任何通道单独执行一个转换。这样一个转换通过写 ADCCON1 寄存器触发.除非一个转换序列已经正在进行,转换立即开始。
第九节 睡眠定时器
1。睡眠定时器简介
睡眠定时器用于设置系统进入和退出低功耗睡眠模式之间的周期。睡眠定时器还用于当进入低功耗睡眠模式时,维持定时器 2 的定时。
睡眠定时器的主要功能如下:
24 位的定时器正计数器,运行在32kHz 的时钟频率 24 位的比较器,具有中断和 DMA 触发功能 24 位捕获
2.睡眠定时器的工作原理
睡眠定时器是一个 24 位的定时器,运行在一个32kHz 的时钟频率(可以是RC振荡器 或晶体振荡器)上。睡眠定时器在复位之后立即启动,如果没有中断就继续运行。定时器的当前值可以从寄存器 ST2:ST1:ST0 中读取.
当定时器的值等于 24 位比较器的值,就发生一次定时器比较。通过写入寄
- 33 -
通道号12,温度传感器通道号14, AVDD5/3
通道号15。ADC使用哪个通道作为输入由寄存器 ADCCON2(序列转换)或
存器 ST2:ST1:ST0 来设置比较值。当 STLOAD.LDRDY 是 1 写入 ST0 开始加载新的比较值,即写入 ST2、ST1 和 ST0 寄存器的最新的值。加载期间 STLOAD.LDRDY 是 0,软件不能开始一个新的加载,直到STLOAD。LDRDY 回到 1。读 ST0 将捕获 24 位计数器的当前值.因此,ST0 寄存器必须在 ST1 和 ST2 之前读,以捕获一个正确的睡眠定时器计数值。 当发生一个定时器比较, 中断标志STIF 被设置。 每次系统时钟, 当前定时器值就被更新。ST 中断的中断使能位是 IEN0。STIE,中断标志是 IRCON.STIF。
3。睡眠定时器寄存器 ST0:睡眠定时器0 ST1:睡眠定时器1 ST2:睡眠定时器2
STLOAD:睡眠定时器加载状态
第十节 时钟和电源管理
1.电源管理简介
CC2530不同的运行模式或供电模式用于低功耗运行。超低功耗运行的实现通过关闭电源模块以避免损耗功耗,还通过使用特殊的门控时钟和关闭振荡器来降低动态功耗。
CC2530有五种不同的运行模式(供电模式),分别被称作主动模式、空闲模式、PM1、PM2 和 PM3。主动模式是一般模式,而 PM3 具有最低的功耗.
主动模式:完全功能模式.稳压器的数字内核开启,16 MHz RC 振荡器和
32 MHz 晶体振荡器运行至少一个运行.32 kHz RC振荡器或 32kHz 晶体振荡器也有一个在运行。
空闲模式:除了 CPU 内核停止运行,其他和主动模式一样。 PM1:稳压器的数字部分开启。32 MHz 晶体振荡器 和 16 MHz RC振
荡器 都不运行。32 kHz RC振荡器 或 32 kHz 晶体振荡器运行。复位、外部中断或睡眠定时器过期时系统将转到主动模式.
PM2:稳压器的数字内核关闭。 32 MHz 晶体振荡器 和 16 MHz RC振
荡器都不运行。32kHz RC振荡器或 32 kHz 晶体振荡器运行。复位、外部中断或睡眠定时器到期时系统将转到主动模式。
PM3:稳压器的数字内核关闭。所有的振荡器都不运行。复位或外部中断
时系统将转到主动模式。 2。 电源管理控制
所需的供电模式通过使用寄存器 SLEEPCMD的MODE 位和 PCON。IDLE 位来选择。 设置寄存器PCON。IDLE 位,进入 SLEEPCMD.MODE 所选的模
- 34 -
式。
来自端口引脚或睡眠定时器的使能的中断,或上电复位将从其他供电模式唤醒设备,使它回到主动模式。当进入 PM1、PM2 或 PM3,就运行一个掉电序列.当设备从
PM1、PM2 或 PM3 中出来,它在 16 MHz开始,如果当进入供电模
式(设置 PCON。IDLE)且 CLKCONCMD。OSC = 0 时,自动变为 32 MHz。如果当进入供电模式设置了 PCON.IDLE 且 CLKCONCMD。OSC = 1,它继续运行在 16 MHz。
3。 CC2530振荡器和时钟
设备有一个内部系统时钟或主时钟。该系统时钟的源既可以用16 MHz RC 振荡器,也可以采用 32 MHz 晶体振荡器。时钟的控制可以使用寄存器CLKCONCMD来完成。
设备还有一个 32KHz 时钟源,可以是 RC 振荡器或晶振,也由 CLKCONCMD 寄存器控制。CLKCONSTA 寄存器是一个只读的寄存器,用于获得当前时钟状态。振荡器可以选择高精度的晶体振荡器,也可以选择低功耗的高频RC振荡器。
第十一节 看门狗
1.看门狗简介
当单片机程序可能进入死循环情况下,看门狗定时器(WDT)用作一个恢复的方法。当软件在选定时间间隔内不能清除 WDT 时,WDT 必须复位系统。看门狗可用于容易受到电气噪音、电源故障、静电放电等影响的应用, 或需要高可靠性的环境。 如果一个应用不需要看门狗功能, 可以配置看门狗定时器为一个定时器,这样可以用于在选定的时间间隔产生中断.
看门狗定时器的特性如下: 4个可选的定时器间隔; 看门狗模式 定时器模式
在定时器模式下产生中断请求 2。 看门狗模式
在系统复位之后,看门狗定时器就被禁用.要设置 WDT 在看门狗模式,必须设置 WDCTL。MODE[1:0]位为 10 。然后看门狗定时器的计数器从0 开始递增。在看门狗模式下,一旦定时器使能,就不可以禁用定时器,
因此,如果 WDT 位已经运行在看门狗模式下 ,再往 WDCTL。MODE[1:0]写入 00 或 10 就不起作用了.WDT 运行在一个频率为 32。768 kHz(当使用 32 kHz XOSC)的看门狗定时器时钟上。这个时钟频率的超时期限等于 1。9ms,
- 35 -
15。625 ms,0.25 s 和 1s,分别对应 64,512,8192 和 32768 的计数值设置。
如果计数器达到选定定时器的间隔值,看门狗定时器就为系统产生一个复位信号.如果在计数器达到选定定时器的间隔值之前,执行了一个看门狗清除序列,计数器就复位到 0,并继续递增。看门狗清除的序列包括在一个看门狗时钟周期内,写入0xA 到 WDCTL。CLR[3:0],然后写入 0x5 到同一个寄存器位。如果这个序列没有在看门狗周期结束之前执行完毕,看门狗定时器就为系统产生一个复位信号。
在看门狗模式下,WDT 使能,就不能通过写入 WDCTL.MODE[1:0]位改变这个模式,且定时器间隔值也不能改变。在看门狗模式下,WDT 不会产生一个中断请求。
3。 定时器模式
如果不需要看门狗功能,可以将看门狗定时器设置成普通定时器, 必须把WDCTL。MODE[1:0]位设置为 11。 定时器就开始, 且计数器从0开始递增。当计数器达到选定间隔值,定时器将产生一个中断请求.
在定时器模式下,可以通过写入1 到 WDCTL。CLR[0]来清除定时器内容.当定时器被清除,计数器的内容就置为 0。写入 00 或 01 到 WDCTL。MODE[1:0]来停止定时器,并清除它为 0.
定时器间隔由 WDCTL.INT[1:0]位设置。在定时器操作期间,定时器间隔不能改变,且当定时器开始时必须设置。在定时器模式下,当达到定时器间隔时,不会产生复位.
注意如果选择了看门狗模式,定时器模式就不能在芯片复位之前选择。
第十二节 DMA
1。DMA简介
DMA是direct memory access的缩写,即“直接内存存取\".这是一种高速的数据传输模式,ADC/UART/RF收发器等外设单元和存储器之间可以直接在“DMA控制器”的控制下交换数据而几乎不需要CPU的干预。除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作.这样,在大部分时间里,CPU和这些数据交互处于并行工作状态。因此,系统的整体效率可以得到很大的提高.
2。DMA操作
DMA 控制器有 5 个通道,即 DMA 通道 0 到通道 4。每个 DMA 通道能够从 DMA 存储器空间的一个位置传送数据到另一个位置,比如 XDATA 位置之间。
当 DMA 通道配置完毕后,在允许任何传输发起之前,必须进入工作状态。
- 36 -
DMA 通道通过将 DMA 通道工作状态寄存器 DMAARM 中指定位置 1,就可以进入工作状态。
一旦 DMA 通道进入工作状态,当配置的 DMA 触发事件发生时,DMA传送就开始了。可能的DMA 触发事件有 32 个,例如UART 传输、定时器溢出等。DMA 通道要使用的触发事件由 DMA 通道配置设置,因此直到配置被读取之后,才能知道。
3. DMA 配置参数 (1)源地址
DMA 通道开始读数据的地址, 在XDATA 存储器中。 这可以是任何XDATA 地址——在 RAM 中,在映射的闪存区(cf MEMCTR.XBANK)中,XREG 或 XDATA 寻址的。
(2)目标地址
DMA 通道从源地址读出的要写数据的首地址。用户必须确认该目标地址可写。这可以是任何 XDATA 地址--在 RAM、XREG 或 XDATA 寻址的 SFR 中.
(3)传送数量
DMA 传输完成之前必须传送的字节/字的个数. 当达到传送数量,DMA 通道重新进入工作状态或者解除工作状态, 并警告CPU 即将有中断请求到来。 传送数量可以在配置中定义, 或可以采用可变长度。
(4)VLEN 设置
(5)DMA 通道可以利用源数据中的第一个字节或字(对于字,使用位12:0)作为传送长度。这允许可变长度的传输。当使用可变长度传送时,要给出关于如何计算要传输的字节数的各种选项。在任何情况下,都是设置传送长度(LEN)为传送的最大长度。如果首字节或字指明的传输长度大于LEN,那么 LEN 个字节/字将被传输。
当使用可变长度传输,那么 LEN 应设置位允许传输的最大长度加一。 (6)源和目标增量
当 DMA 通道进入工作状态或者重新进入工作状态时,源地址和目标地址传送到内部地址指针.其地址增量可能有下列 4 种:
增量为 0。每次传送之后,地址指针将保持不变。 增量为 l。每次传送之后,地址指针将加上 1 个数。 增量为 2.每次传送之后,地址指针将加上2 个数。 下等于 1 个字节,在字模式下等于 2 个字节。
(7)DMA 传输模式
- 37 -
减量为 1。每次传送之后,地址指针将减去1 个数。其中一个数在字节模式
传输模式确定当 DMA 通道开始传输数据时是如何工作的。以下描述了四种传输模式:
单一模式:每当触发时,发生一个 DMA传送,DMA 通道等待下一个触发。完成指定的传送长度后,传送结束,通报 CPU,解除 DMA 通道的工作状态。
块模式:每当触发时,按照传送长度指定的若干DMA 传送被尽快传送,此后,通报 CPU,解除 DMA 通道的工作状态。
重复的单一模式: 每当触发时, 发生一个DMA 传送, DMA 通道等待下一个触发。完成指定的传送长度后,传送结束,通报 CPU,且 DMA 通道重新进入工作状态。
重复的块模式:每当触发时,按照传送长度指定的若干 DMA 传送被尽快传送,此后通报 CPU,DMA 通道重新进入工作状态。
(8)DMA 优先级
DMA 优先级别对每个 DMA 通道是可以配置的。DMA 优先级别用于判定同时发生的多个内部存储器请求
中的哪一个优先级最高,以及 DMA 存储器存取的优先级别是否超过同时发生的 CPU 存储器存取的优先级别.
在同属内部关系的情况下,采用轮转调度方案应对,确保所有的存取请求。有三种级别的DMA 优先级:
高级:最高内部优先级别。DMA 存取总是优先于 CPU 存取。
一般级:中等内部优先级别。保证 DMA 存取至少在每秒一次的尝试中优先于CPU 存取。
低级:最低内部优先级别。DMA 存取总是劣于 CPU 存取. (9)字节或字传输
判定已经完成的传送究竟是 8 位(字节)还是 16 位(字)。 (10)中断屏蔽
在完成 DMA 传送的基础上,该 DMA 通道能够产生一个中断到处理器。这个位可以屏蔽该中断。
(11)模式 8 设置
这个域的值,决定是采用 7 位还是 8 位长的字节来传送数据.此模式仅仅适用于字节传送。
4。DMA 配置安装 (1)停止 DMA 传输
使用 DMAARM 寄存器来解除 DMA 通道工作状态,停止正在运行的DMA 传送或进入工作状态的 DMA。将 1 写入 DMAARM.ABORT 寄存器位,就会
- 38 -
停止一个或多个进入工作状态的 DMA 通道,同时通过设置相应的 DMAARM。DMAARMx 为 1 选择停止哪个 DMA 通道.当设置 DMAARM.ABORT 为 1,非停止通道的DMAARM。DMAARMx 位必须写入 0。
(2)DMA 中断
每个 DMA 通道可以配置为一旦完成 DMA 传送,就产生中断到 CPU。该功能由 IRQMASK 位在通道配置时实现。当中断产生时, 寄存器 DMAIRQ 中所对应的中断标志位置 1。当然要处理DMA 中断需要设置DMAIE = 1和EA = 1;一旦 DMA 通道完成传送,不管在通道配置中 IRQMASK 位是何值,中断标志都会置 1。这样,当通道重新进入工作状态且 IRQMASK 的设置改变时,软件必须总是清除这个寄存器相应位.
本章思考题
1。 CC2530通用I/O硬件有哪些特性? 2. 简述CC2530中断处理的过程。 3. 简述CC2530中断使能的步骤。
4。 简述CC2530UART发送和接收数据的过程。 5. 简述CC2530ADC的主要特性。 6.简述睡眠定时器的作用和工作原理。 7。CC2530有哪几种供电模式? 8.简述看门狗的作用.
9.CC2530DMA操作需要配置哪些参数?
- 39 -
第六章 常用传感器
教学时数:4学时
教学目的与要求:主要理解温湿度传感器、结露传感器、烟雾传感器和光照传感器的原理,掌握这些传感器的使用方法,以及如何使用CC2530控制各种常见的传感器。
教学重点:温湿度传感器和光照传感器的使用。
第一节 数字温湿度传感器DHT11
1. DHT11简介
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器.它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
2。 DHT11串行接口
DATA 引脚用于单片机与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零。操作流程如下:
一次完整的数据传输为40bit,高位先出 数据格式:8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据 +8bit校验和
数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据
+8bi温度整数数据+8bit温度小数数据”所得结果的末8位
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,
等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。采集数据后转换到低速模式。
3. DHT11串行接口通讯过程
总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高,总线为
- 40 -
低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据。如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。
第二节红外人体感应模块
1。 红外人体感应模块简介
1. 红外人体感应模块是基于红外线技术的自动控制产品,灵敏度高,可靠性强,超低电压工作模式,广泛用于各类自动感应电器设备,尤其是干电池供电的自动控制产品.
2。 红外人体感应模块功能特点
(1)全自动感应:人进入其感应范围则输出高电平, 人离开感应范围则自动延时关闭高电平,输出低电平。
(2)工作电压范围宽:默认工作电压DC4。5V—20V。
(3)微功耗:静态电流〈50 微安,特别适合干电池供电的自动控制产品。 (4)感应模块通电后有一分钟左右的初始化时间,在此期间模块会间隔地输出0—3 次,一分钟后进入待机状态。
(5)感应距离7 米以内,感应角度<100 度锥角,工作温度—15-+70 度。
第三节 结露传感器和烟雾传感器
1. 结露传感器HDS05 (1)结露传感器HDS05简介
结露传感器HDS05是正特性开关型元件,对低湿度不敏感而仅对高湿度敏感,可在直流电压下工作。
(2)HDS05结露传感器特性曲线
- 41 -
2。烟雾传感器 (1)烟雾传感器简介
烟雾传感器就是通过监测烟雾的浓度来实现火灾防范的,烟雾报警器内部采用离子式烟雾传感,离子式烟雾传感器是一种先进技术,工作稳定可靠的传感器,被广泛运用到各种消防报警系统中,性能远优于气敏电阻类的火灾报警器.
(2)烟雾传感器模块功能特点 具有信号输出指示.
双路信号输出(模拟量输出及TTL电平输出)
TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单
片机)
模拟量输出0~5V电压,浓度越高电压越高。 对液化气,天然气,城市煤气有较好的灵敏度。 具有长期的使用寿命和可靠的稳定性 快速的响应恢复特性
第四节 光强度传感器模块
1. GY-30 数字光模块的特点 (1)I2C 总线接口 (2)光谱的范围是人眼相近 (3)照度数字转换器
(4)宽范围和高分辨率。 (1 — 65535 勒克斯) (5)低电流关机功能
(6)50Hz / 60Hz 光噪声reject—function (7)1.8V 逻辑输入接口 (8)无需任何外部零件
(9)光源的依赖性不大. (例如白炽灯.荧光灯.卤素灯.白LED) (10)可能的选择2 类型的I C slave—address。 (11)红外线的影响很小 2。 I2C总线 (1)I2C总线概述
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线
式串行总线,用于连接微控制器及其外围设备(特别是外部存储器件)。 I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收
数据.
I2C总线在传送数据过程中共有三种特殊类型信号, 它们分别是:开始
- 42 -
信号、结束信号和应答信号。
I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,
因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。I2C总线的另一个优点是,它支持多主机,其中任何能够进行发送和接收的设备都可以成为主机.一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主机。 I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收
数据。各种I2C均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址。 (2)I2C总线的起始和停止
SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。
(3)I2C的数据传输
SCL为高电平期间,数据线上的数据必须保持稳定,只有SCL信号为低电平期间,SDA状态才允许变化。
(4)I2C的数据读写和应答
I2C与UART不同的地方首先在于先传高位,后传送低位.
主机写数据时,每发送一个字节,接收机需要回复一个应答位“0”,通
过应答位来判断从机是否接收成功。
主机读数据时,接收一个字节结束后,主机也需要发送一应答位“0”,但
是当接收最后一个字节结束后,则需发送一个非应答位“1\发完了1后,再发一个停止信号,最终结束通信。
本章思考题
1。 简述数字温湿度传感器DH11数据传输的格式和通信过程. 2。 简述红外人体感应模块的特点。 3。 简述结露传感器的工作原理.
4. 简述I2C总线数据读写喝应答的过程。
- 43 -
第七章 CC2530实现红外通信
教学时数:2学时
教学目的与要求:主要让学生了解红外线通信的特点、理解红外线发射和接收的原理和电路,掌握NEC协议。
教学重点:红外线发射和接收的原理和电路。 教学难点:NEC协议。。
第一节 红外通信原理
1。红外通信简介
红外遥控方式是以红外线作为载体来传送控制信息的,同时随着电子技术的发展,单片机的出现,催生了数字编码方式的红外遥控系统的快速发展.
2。红外通信的优点
红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低
廉;
采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加
遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低; 红外线不会向室外泄露,不会产生信号串扰; 反应速度快、传输效率高、工作稳定可靠。 3。红外线的发射和接收 (1)发射
发射部分的发射元件为红外发光二极管,它发出的是红外线而不是可见光。红外遥控是以调制的方式发射数据,就是把数据和一定频率的载波进行“与”操作,这样既可以提高发射效率又可以降低电源功耗。调制载波频率一般在30khz到60khz之间,大多数使用的是38kHz,占空比1/3的方波。
(2)接收
接收电路的红外接收管是一种光敏二极管,使用时要给红外二极管加反向偏压,才能正常工作而获得高的灵敏度。
第二节 NEC协议
1. NEC协议简介
生产厂家对红外遥控的编码做了严格的规范,目前国内外主流的红外遥控编码传输协议有十多种,如NEC、Philips RC—5、Philips RC—6、Philips RC—MM、Philips RECS80、 RCA、X-Sat、ITT、JVC、Sharp、Nokia NRC17和Sony SIRC等.国内最常用的规范有两种:NEC和Sony SIRC。
2。NEC协议帧的组成
NEC编码的一帧又引导码、用户码和数据码组成.
- 44 -
3。 NEC协议特点
8位地址和8位命令,为提高可靠性,地址和命令都分别传输2次,第2
次为反码传输 脉冲间隔调制:38kHz载波频率 每一位时间为1.12ms(0)或2.25ms(1) 调制采用脉冲间隔时间调制每一位.
每一个脉冲都是560uS长度的38kHz载波脉冲,占空比为1/4或1/3(约
21个周期)
逻辑1:2。25ms 逻辑0:1.12ms
本章思考题
1。 红外通信具有哪些优点? 2。 简述红外线发射和接收的原理. 3。 简述NEC协议的特点.
- 45 -
第八章 Z-Stack协议栈
教学时数:8学时
教学目的与要求:主要让学生理解Z—Stack协议栈中的设备类型、信道、PANID、地址类型、数据传送方式、端点、拓扑结构、簇、路由和协议栈规范,学会Z—Stack协议栈的下载和安装,了解Z-Stack目录结构,掌握Z-Stack协议栈的事件的产生和处理过程、Z—Stack主函数的执行过程、任务的初始化和调度过程、数据的发送和接收过程、Z-Stack协议栈串口的实现机制、Z—Stack协议栈的启动分析、Z—Stack绑定机制等,结合无线通信实验、点到点通信实验、星状网、树状网和网状网通信实验,提高学生分析问题和解决问题能力。
教学重点: Z—Stack协议栈的事件的产生和处理过程、Z-Stack主函数的执行过程、数据的发送和接收过程.
教学难点:任务的初始化和调度过程.
第一节 Z—Stack协议栈基础
1. Z—Stack协议栈简介
Z-Stack是TI公司开发的ZigBee协议栈,TI公司在推出其CC2530射频芯片同时,也向用户提供了自己的ZigBee协议栈软件-Z-Stack.这是一款业界领先的商业级协议栈,经过了ZigBee联盟的认可而为全球众多开发商所广泛采用,使用CC2530射频芯片,可以使用户很容易的开发出具体的应用程序来,Z—Stack实际上是帮助程序员方便开发ZigBee的一套系统。Z—Stack使用瑞典公司IAR开发的IAR Embedded Workbench for 8051作为它的集成开发环境。TI公司为自己设计的Z—Stack协议栈中提供了一个名为操作系统抽象层OSAL的协议栈调度程序。对于用户来说,除了能够看到这个调度程序外,其它任何协议栈操作的具体实现细节都被封装在库代码中。用户在进行具体的应用开发时只能够通过调用API接口来进行,而无法知道ZigBee协议栈实现的具体细节。
2. Z-Stack协议栈基本概念 (1)设备类型 1)协调器
协调器负责启动整个网络。它也是网络的第一个设备.协调器选择一个信道和一个网络ID(也称之为PAN ID,即Personal Area Network ID),随后启动整个网络。协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。协调器的角色主要涉及网络的启动和配置.一旦这些都完成后,协调器的工作就和一个路由器相同。由于ZigBee网络本身的分布特性,因此接下来整个网络的操作就不再依赖协调器是否存在.
2)路由器
- 46 -
路由器的功能主要是:允许其他设备加入网络,多跳路由协助由电池供电的子终端设备的通讯.通常,路由器需要一直处于活动状态,因此它必须使用主电源供电。但是当使用树这种网络拓扑结构时,允许路由器间隔一定的周期操作一次,这样就可以使用电池给其供电.
3)终端设备
终端设备没有维持网络结构的职责,它可以睡眠或者唤醒,因此它可以是一个由电池供电的设备。通常,终端设备对存储空间(特别是RAM的需要)比较小。
(2)信道
1) ZigBee采用直接序列扩频(DSSS)在工业科学医疗(ISM)频段,2.4GHz(全球)、915MHz(美国)和868MHz(欧洲)。在2。4G频段上IEEE802。15。4/ZigBee规定了16个信道,每个信道频带宽度为5MHz。
2)ZigBee与其他通信协议的信道冲突: 15,20,25,26信道与Wi—Fi信道冲突较小 蓝牙基本不会冲突
无绳电话尽量不与ZigBee同时使用 (3)PANID
16位的ID值来标识唯一一个ZigBee网络,主要是用于区分网络,使得同一地区可以同时存在多个ZigBee网络。其取值范围是0x0000~0x3FFF.当设置为0xFFFF时,协调器可以随机获取一个16位的PANID建立一个网络。路由器或者终端设备可以加入任意一个已设定信道上的网络而不去关心PANID。PANID用于在逻辑上区分同一地区或者同一信道上的ZigBee节点,在不同地区或者同一地区不同的信道可以使用同一PANID。
(4)地址
ZigBee设备有两种类型的地址.一种是64位IEEE地址,即MAC地址,另一种是16位网络地址.64位地址使全球唯一的地址,设备将在它的生命周期中一直拥有它.它通常由制造商或者被安装时设置.这些地址由IEEE来维护和分配。16位地址为网络地址是当设备加入网络后分配的。协调器按照一定的算法进行分配,16位网络地址是当设备加入网络后分配的.它在网络中是唯一的,用来在网络中鉴别设备和发送数据。
(5)数据传送方式 1)单点传送(Unicast)
将数据包发送给一个已经知道网络地址的网络设备。 2)间接传送(Indirect)
当应用程序不知道数据包的目标设备在哪里的时候使用的模式。从发送设备
- 47 -
的栈的绑定表中查找目标设备.这种特点称之为源绑定.当数据向下发送到达栈中,从绑定表中查找并且使用该目标地址。这样,数据包将被处理成为一个标准的单点传送数据包。如果在绑定表中找到多个设备,则向每个设备都发送一个数据包的拷贝.
3)广播传送(broadcast)
当应用程序需要将数据包发送给网络的每一个设备时,使用这种数据传送方式。目标地址可以设置为下面广播地址的一种:
①(0xFFFF)——数据包将被传送到网络上的所有设备,包括睡眠中的设备。对于睡眠中的设备,数据包将被保留在其父亲节点直到查询到它,或者消息超时。
②(0xFFFD)—-数据包将被传送到网络上的所有在空闲时打开接收的设备,也就是说,除了睡眠中的所有设备。
③(0xFFFC)—-数据包发送给所有的路由器,包括协调器。 (6)端点
端点EndPoint是为实现一个设备描述而定义的一组群集,定义了一个设备内的一个通信实体,一个特定应用通过它被执行.ZDO的Endpoint为0,其他应用程序Endpoint从1-240,241-255保留未用。
(7)拓扑结构
ZigBee技术具有强大的组网能力,可以形成星型、树型和MESH网状网,可以根据实际项目需要来选择合适的网络结构。默认的拓扑结构是MESH网状拓扑结构。
(8)簇
簇(cluster):(一种约定)一个应用规范内的所有设备,通过簇的方式彼此进行通信。簇可被输入给一个设备,也可从一个设备被输出。簇的作用主要在于发送方和接收方关于通信的一种约定,接收方接收到的信息的簇ID来判定要对接收到的信息进行怎样的处理。
(9)路由
路由能够自愈ZigBee网络,如果某个无线连接断开了,路由功能又能自动寻找一条新的路径避开那个断开的网络连接.这就极大的提高了网络的可靠性,同时也是ZigBee网络的一个关键特性。
(10)协议栈规范
ZigBee联盟定义指定。在同一个网络中的设备必须符合同一个协议栈规范(同一个网络中所有设备的协议栈规范必须一致).
ZigBee联盟为ZigBee协议栈2007定义了2个规范:ZigBee和ZigBee PRO。
- 48 -
所有的设备只要遵循该规范,即使在不同厂商买的不同设备同样可以形成网络。
ZigBee和ZigBee PRO之间最主要的特性差异就是对高级别安全性的支持。高级别安全性提供了一个在点对点连接之间建立链路密匙的机制,并且当网络设备在应用层无法得到信任时增加了更多的安全性。像许多PRO特性那样,高级安全特性对于某些应用而言非常有用,但在有效利用宝贵节点空间方面却付出很大代价.
第二节Z—Stack的下载与安装
默认会在C盘的根目录下建立Texas Instruments目录,该目录下面的子目录就是安装Z-Stack的文件根目录下有四个文件夹分别是Documents、Components 、tools和Project。
(1)Documents
Documents文件夹包含了对整个协议栈进行说明的所有文档信息,下面有很多的PDF格式的文档,可以把它们当做参考手册,根据需要来阅读。
(2) Projects
该目录下包含了用于Z-Stack功能演示的各个项目的例子.可供开发者们参考.
(3)Tools
该目录下包含了TI公司提供的一些工具。 (4) Components
Components文件夹是Z-Stack协议栈的各个功能部件的实现。Components文件夹,本文件夹下包含的子目录如下:
1)hal文件夹为硬件平台的抽象层
2)mac文件夹包含了802。15。4物理协议的实现需要的代码文件的头文件,由于TI公司处于某种考虑,这部分并没有给出具体的源代码,而是以库文件的形式存.\\Projects\\Z-Stack\\Libraries文件夹。
3)mt 文件夹包含了为系统添加在电脑上有Z—tools调试功能所需要的源文件
4)osal包含了操作系统抽象层所需要的文件
5)service文件夹保护了Z—Stack提供的两种服务:寻址服务和数据服务所需要的文件
6)stack文件夹是components文件夹最核心的部分,是ZigBee协议栈具体实现部分,在在其下有分为了af(应用框架),nwk(网络层),sapi(简单应用接口)、sec(安全)、sys(系统头文件),zcl(ZigBee簇库),zdo(ZigBee设备对象)等7个文件夹。
- 49 -
7)zmac文件夹包含了Z-Stack MAC 导出层文件。
第三节 Sample Application工程
1。 Sample Application工程简介
Sample Application是Z—Stack协议栈提供的一个非常简单的演示实例,对了解Z-Stack协议栈工作机制很有帮助。工程中的每个设备都可以发送和接收两种信息:周期信息和闪烁信息.
周期信息—-——----—当设备加入该网络后,所有设备每隔 5S(加上一个随机数,毫秒mS为单位)发送一个周期信息,该信息的数据载荷为发送信息的次数.
闪烁信息———------通过按下按键 SW1发送一个控制LED灯闪烁的广播信息,该广播信息只针对组 1 内的所有设备.所有设备初始化都被加入组 1,所以网络一旦建立完成便可执行LED灯闪烁实验。可以通过按下设备的 SW2 退出组 1,如果设备退出组1则不再接收来自组1的消息,其按键SW1发送的消息也不再控制组1LED灯的闪烁。通过再次按下 SW2 便可让设备再次加入到组1,从而又可以接受来自组1的消息,其SW1也可以控制组1内设备的LED灯闪烁了。
当设备接收到闪烁信息会闪烁LED灯,而当接收到周期信息时协议栈没有提供具体的实验现象,留给了用户自行处理,可以根据实际需要自行更改实验代码.
在该工程中使用了两个按键SW1和SW2。即Z-Stack协议栈中的HAL_KEY_SW_1和HAL_KEY_SW_2。(由于学习板没有定义SW1和SW2,所以这个功能在学习板上无法实现)同时工程中也定义了一个事件用来处理周期信息事件,即SAMPLEAPP_SEND_PERIODIC_MSG_EVT[SampleApp.h]。
2。 Sample Application的打开
IAR 主界面上选择File|Open|Workspace打开文件C:\\Texas Instruments\\Z—
Stack-CC2530-2
3。 Z-Stack目录结构
APP(Application Programming):应用层目录,这是用户创建各种不同工程的区域,在这个目录中包含了应用层的内容和这个项目的主要内容。
HAL(Hardware (H/W) Abstraction Layer):硬件层目录,包含有与硬件相关的配置和驱动及操作函数.
MAC:MAC 层目录,包含了MAC 层的参数配置文件及其MAC 的LIB 库的函数接口文件。
- 50 -
。5.0\\Projects\\Z—
Stack\\Samples\\SampleApp\\CC2530DB\\SampleApp。ewp
MT(Monitor Test):实现通过串口可控各层,于各层进行直接交互。 NWK(ZigBee Network Layer):网络层目录,含网络层配置参数文件及网络层库的函数接口文件
OSAL(Operating System (OS) Abstraction Layer):协议栈的操作系统. Profile:AF 层目录,包含AF 层处理函数文件.
Security:安全层目录,安全层处理函数,比如加密函数等。
Services:地址处理函数目录,包括着地址模式的定义及地址处理函数。 Tools:工程配置目录,包括空间划分及Z—Stack 相关配置信息. ZDO(ZigBee Device Objects):ZDO 目录.
ZMac: MAC 层目录,包括MAC 层参数配置及MAC 层LIB 库函数回调处理函数。
ZMain:主函数目录,包括入口函数及硬件配置文件。 Output:输出文件目录,这个IAR 自动生成的。 4。Sample Application工程执行流程简介
用户自己添加的应用任务程序在Zstack中的调用过程是:
main() -——> osal_init_system()---〉 osalInitTasks()——-〉SampleApp_Init()
在osalInitTasks()中实现了多个任务初始化的设置,而用户自己实现的SampleApp_Init()在最后,这里taskID随着任务的增加也随之递增.所以用户自己实现的任务的初始化操作应该在osalInitTasks()中增加。任务事件处理函数在tasksArr[]中添加.
第三节 OSAL循环
1。 Z-Stack的任务调度
ZigBee协议栈中的每一层都有很多原语操作要执行,因此对于整个协议栈来说,就会有很多并发操作要执行。协议栈中的每一层都设计了一个事件处理函数,用来处理与这一层操作相关的各种事件.将这些事件处理函数看成是与协议栈每一层相对应的任务,由ZigBee协议栈中调度程序OSAL来进行管理。这样,对于协议栈来说,无论何时发生了何种事件,都可以通过调度协议栈相应层的任务,即事件处理函数来进行处理。这样,整个协议栈便会按照时间顺序有条不紊的运行。
在协议栈中的每一层都会有很多不同的事件发生,这些事件发生的时间顺序各不相同.很多时候,事件并不要求立即得到处理,而是要求过一定的时间后再进行处理。因此,往往会遇到下面情况:假设A事件发生后要求l0秒之后执行,B事
- 51 -
件在A事件发生1秒后产生,且B事件要求5秒后执行。为了按照合理的时间顺序来处理不同事件的执行,这就需要对各种不同的事件进行时间管理.OSAL调度程序设计了与时间管理相关的函数,用来管理各种不同的要被处理的事件。
对事件进行时间管理,OSAL也采用了链表的方式进行,每当发生一个要被处理的事件后,就启动一个逻辑上的定时器,并将此定时器添加到链表之中.利用硬件定时器作为时间操作的基本单元。任务调度程序便可以根据事件标志进行相应的事件处理。根据这种思路,来自协议栈中的任何事件都可以按照时间顺序得到处理.从而提高了协议栈设计的灵活性,从而使Z—Stack能够完成对实时性要求不高的多任务。
2. TI Z—Stack流程
3. 主函数main()
int main( void ) //主函数的功能就是完成初始化任务,然后进入OSAL {
osal_int_disable( INTS_ALL ); /*关闭中断*/ HAL_BOARD_INIT(); /*初始化硬件* /
zmain_vdd_check(); /*电压检测,确保芯片能正常工作的电压*/ zmain_ram_init(); /*初始化stack存储区*/ InitBoard( OB_COLD ); /*初始化板载IO*/ HalDriverInit(); /*初始化硬件驱动*/ osal_nv_init( NULL ); /*初始化NV系统*/
zmain_ext_addr(); /*确定扩展地址(64位IEEE/物理地址)*/ zgInit(); /*初始化基本NV条目*/ ZMacInit(); /*初始化MAC* #ifndef NONWK
afInit(); // Since the AF isn't a task, call it's initialization routine #endif
#ifdef LCD_SUPPORTED
HalLcdInit();
- 52 -
开始 系统初始化 执行操作系统 #endif
osal_init_system(); /*初始化操作系统*/ osal_int_enable( INTS_ALL ); /*开启中断*/ InitBoard( OB_READY ); /*最终板载初始化*/ zmain_dev_info(); /*显示设备信息*/
#ifdef LCD_SUPPORTED /* Display the device info on the LCD */
zmain_lcd_init(); #endif
osal_start_system(); // No Return from here没有返回,即进入操作系统!!! }
4。 osal_init_system()系统初始化 Uint8 osal_init_system( void ) {
osal_mem_init(); /*初始化内存分配系统*/ osal_qHead = NULL; /*初始化系统消息队列*/ #if defined( OSAL_TOTAL_MEM )
osal_msg_cnt = 0;
#endif
osalTimerInit(); /*初始化定时器*/
osal_pwrmgr_init(); /*初始化电源管理系统*/ osalInitTasks(); //初始化系统任务
// Setup efficient search for the first free block of heap。 osal_mem_kick(); return ( ZSUCCESS ); }
第四节 指令流水
指令流水线是为了让计算机和其它数字电子设备能够加速指令的通过速度(单位时间内被运行的指令数量)而设计的技术。
流水线是假设程序运行时有一连串的指令要被运行(垂直座标i 是指令集,水平座 标表时间t).绝大多数当代的CPU 都是利用时钟频率驱动。CPU是由内部的逻辑门与触发器组成.当受到时钟频率触发时,触发器得到新的数值,并且逻辑门需要一段时间来解析出新的数值,而当受到下一个时钟频率触发时 触发器又得到新的数值,以此类推。而借由逻辑门分散成很多小区块,再让触发器链
- 53 -
接 这些小区块组,使逻辑门输出正确数值的时间延迟得以减少,这样一来就可以减少指令 运行所需要的周期.
1. 写回暂存器危害:当一名程序员(或者组合者/编译者)编写组合代码(或者汇编码)时,他 们会假定每个指令是循序运行的.而这个假设会使流水线无效.当此现象发生后程序会 表现的不正常,而此现象就是危害。不过目前有提供几种技术来解决这些危害像是转发与延迟等。
2。 未流水线的架构产生的效率低,因为有些CPU 的模块在其他模块运行时是闲置的.
流水线虽并不会完全消除 CPU 的闲置时间,但是能够让这些模块并发运作而大幅提升 程序运行的效率。
管线在处理器的内部被组织成层级,各个层级的管线能半独立地单独运作。每一个 层级都被管理并且链接到一条“链”,因而每个层级的输出被送到其它层级直至任务完成。处理器的这种组织方式能使总体的处理时间显著缩短。但并不是所有的指令都是独立的。
3. 优缺点:并非在所有情况下流水线技术都起作用。可能有一些缺点。如果一条指令流水线能够在 每一个时钟频率周期(clock cycle)接纳一条新的指令,被称为完整流水线(fully pipelined).
第四节 中断系统
(1) 硬件中断和软中断
硬件中断:由某个硬件中断请求信号引发的中断 软中断:由执行软件中断指令所引发的中断
通常硬件中断通过中断请求信号形成向量地址,而软中断由指令提供中断号,再转为向量地址。
(2) 强迫中断和自愿中断
强迫中断:是由于故障(如硬件故障、程序故障)、外部请求等所引起的强迫性中断.
自愿中断:由程序安排的中断,即软中断。 (3) 内中断和外中断
内中断:来自主机内部的中断请求。
外中断:来自主机外部(外设)的中断请求。 (4) 可屏蔽中断和不可屏蔽中断。
外中断分可屏蔽和不可屏蔽中断,内中断都是不可屏蔽的 (5) 向量中断和非向量中断
向量中断:中断程序入口地址由硬件提供
- 54 -
非向量中断:中断程序入口地址不由硬件提供。 4) 相关概念 中断源:
中断向量:采用向量化的响应中断方式,将中断服务程序的入口地址及其程序状态字存放在特定的存储区中,这所有的中断服务程序入口地址和状态字在一起,称为中断向量。
中断向量表:存放中断向量的表。通常是把所有的中断服务程序入口地址(或包括服务程序的状态字)组织成一个一维的表格,存放在一段连续的存储区中.
向量地址:访问中断向量表的地址码,即读取中断向量所需的地址(也可以称为中断指针)
5) 中断优先级判断: (1) 软件查询
(2) 并行优先队列逻辑:优先级固定,通过硬件电路实现,优先级高的中断请求信号同时屏蔽优先级低的信号。
(3) 链式优先队列逻辑:
错误!多重查询:设备发出中断申请的时候,同时发送设备编码,优先级高的
设备编码被批准
错误!链式排队:设备发出中断申请后,CPU发应答信号由优先级高的设备向
优先级低的设备传送。
中断隐指令: 5) 中断响应 (1) 响应条件:
错误! 有中断请求信号发生
○,2 该中断请求未被屏蔽 ○,3 CPU处于开中断状态
错误! 没有更重要的事要处理(没有优先级更高的中断请求或工作) 错误! CPU刚刚执行的指令不是停机指令 错误! 在一条指令结束时响应
(2) 响应过程
错误! 在现行指令将结束时响应中断请求. 错误! 关中断
错误! 保存断点:低档机把PC入栈;高档机把PC、PSW及相关寄存器入栈。 错误! 取中断程序入口地址 错误! 转向执行
- 55 -
以上过程是在中断周期中直接由硬件实现,并非执行程序指令,自然不要编程实现,所以称此过程为中断隐指令.
6) 中断处理
中断响应后经过中断隐指令,进入中断处理程序
错误! 保护现场(对低档机) 错误! 送新屏蔽字
错误! 开中断(允许中断嵌套)
4执行中断程序 ○
错误! 关中断
错误! 恢复现场及原屏蔽字 错误! 开中断
8 返回
PC机中断处理程序
错误! 保护现场(对低档机)
○,2 开中断(允许中断嵌套,送新屏蔽字工作由主程序实现)
错误! 执行中断程序 错误! 关中断
错误! 送中断结束命令(恢复原屏蔽字,开中断) 错误! 恢复现场 错误! 返回(IRET)
本章思考题
1. CPU有哪些功能?画出结构框图。 2。 什么是指令周期,其是否是一个固定值? 3。 说明系统的并行性和流水线的必要性。
4。 什么是中断,设计中断系统需要考虑哪些主要问题? 5. 什么是中断隐指令,有哪些作用?
- 56 -
第九章 控制单元的功能
教学时数:4学时
教学目的与要求:理解控制器的功能、组成原理;掌握多级时序系统的基本概念和原理。
教学重点:微操作命令的分析、多级时序系统。 教学难点:微操作命令的分析。
第一节 微操作命令的分析
具体分析几个典型命令,参见书中376-378页。
第二节 控制单元的功能
1。 控制器的功能与组成 1) 控制器功能:
(1) 控制指令执行的顺序。指令通常是顺序执行的,但是也有非顺序执行的时候,如遇到转移类指令和中断程序。
(2) 控制指令的执行。指令执行分为两个阶段:从存储器取出指令,分析执行指令.
2) 控制器的组成
(1) 指令部件.指令部件的功能是实现取指操作并分析指令.指令部件包括指令译码器(ID,对指令的操作码进行译码分析),程序计数器(PC,保存下一条指令的地址),指令寄存器(IR,保存当前正在执行的指令)。
(2) 时序部件。时序部件又称为周期节拍发生部件,用来产生一定的时序信号,以便实现机器指令执行过程中的时序控制。时序部件包括脉冲源(产生脉冲信号,为整个机器提供时钟,它是机器周期、节拍和工作脉冲的基准信号),启停控制电路(根据机器需要控制时序信号的发生和停止),时序信号产生及其控制部件(以工作脉冲为基准,产生不同的时序信号)。
(3) 控制信号形成部件。产生微操作控制信号,是控制器的核心.
微命令:构成控制信号序列的最小单位称为微命令。控制器发出的每个控制信号就是一个微命令。
微操作:由微命令控制实现的基本的操作称为微操作。例如:打开三态门信号是一个微命令,打开三态门的动作是一个微操作.
微操作是计算机不可再分的操作,他是计算机中最小的操作信号.
控制信号形成部件有两种实现方式,分为组合逻辑电路实现和微程序实现。 组合逻辑:每个微命令由一个组合逻辑电路产生,同时产生多个微命令,形成一个微操作。微程序:将每个微操作看成一个二进制数,将所有的微操作以二进制数的形式保存在一个存储器(控制存储器)中。
- 57 -
计算机时序的划分
指令周期:执行一条指令所需要的时间。
机器周期(CPU工作周期):一条指令的执行可以分成两个阶段:取指、分析执行指令.如果进一步划分,一条指令的执行可以分为:取指令、取源操作数、取目的操作数和执行几部分,所以一个指令周期可以分为若干个机器周期,每个机器周期完成一个具体工作,机器周期有取指周期,源周期,目的周期,执行周期和中断周期。
节拍(时钟周期):事实上机器周期的时间常常是不固定的,为了便于控制,我们把机器周期划分成若干个相等的时间段,我们称之为节拍。通常,单总线结构的计算机以内总线上的一次数据流动时间为一个节拍(时钟周期)。
工作脉冲(定时脉冲):节拍提供了一项操作所需的时间分段,但有的操作还需要严格的工作脉冲来控制.如一个数据从寄存器A打入寄存器B,此操作是一个节拍内实现,但是对于A、B寄存器来说是有先后次序的,即数据先从A发出,后进入B;这个先后次序由工作脉冲来实现。
由于执行一条指令的时间是长短不一的(无操作数的指令执行时间短,两操作数的指令执行时间长),所以一般不把指令周期作为一级时序关系,通常所说的三级时序关系指的是:机器周期、节拍和工作脉冲。
控制器的控制方式
(1) 同步控制方式:指一条指令的执行和指令中每个微操作都由CPU的基准时标的时序信号所控制.
同步控制方式有三种:
①采取完全统一的机器周期。要求采用固定时间长度的机器周期,每个机器周期的节拍数都相同,使得机器周期规整,便于控制器电路设计。缺点:事实上机器周期长短不一,必须以最长的机器周期为基准,必然造成时间上的浪费。
①采用不统一的机器周期。把一条指令划分成若干个机器周期(允许不同指令的机器周期不同),不同的机器周期使用的时间不同。
①采用中央控制和局部控制相结合的办法。将大部分指令安排在一个统一的较短的机器周期内,称中央控制,将复杂的指令另行安排,成为局部控制.
(2) 异步控制:不采用统一的机器周期和节拍,各个部件之间的信息交换采用“应答”式.
(3) 联合控制(同步异步结合)
本章思考题
1. 什么微操作,与指令有什么关系?
- 58 -
2. 控制单元的功能是什么?
3。 说明指令周期、机器周期和时钟周期的区别及联系。 4. 解析JMP指令的微操作.
5. 试比较同步控制、异步控制和联合控制的区别.
- 59 -
第十章 控制单元的设计
教学时数:2学时
教学目的与要求:理解微程序控制器部件的组成原理,掌握微程序控制器的设计方法.
教学重点:微操作的节拍安排、微指令、微程序控制计算机的设计方法。 教学难点:组合逻辑设计.
第一节 组合逻辑设计
1. 微程序控制器 基本原理
(1) 将控制器所需的微命令以代码(微码)形式编成微指令,存入一个用ROM构成的控制存储器中。在CPU执行程序时,从控制存储器中取出微指令,其所包含的微命令控制有关操作。与组合逻辑控制方式不同,他由存储逻辑事先存储并提供微命令.
(2) 将各种机器指令的操作分解为若干微操作序列.每条微指令包含的微命令控制,实现一步操作。若干条微指令组成一小段微程序,解释执行一条机器指令。针对整个指令系统的需要,编制出一条完整的微程序,事先存入控制存储器中。
基本概念
(1) 微命令:构成控制信号序列的最小单位称为微命令.控制器发出的每个控制信号就是一个微命令。
(2) 微操作:由微命令控制实现的最基本的操作称为微操作。
(3) 微指令:同一时间(一个节拍内)发出的控制信号所实现的一组微操作称为微指令.
(4) 微周期:从控制存储器中读取一条微指令并执行相应的一步操作所需的时间称为微周期(或微指令周期)。
(5) 微程序:一系列微指令的有序集合称为微程序。一段微程序可以实现相应的一条机器指令的功能,即一条机器指令可以分成若干条微指令。
(6) 控制存储器:存放微程序的存储器称为微指令存储器,由于它主要存储内容是控制机器操作的微命令和下一条要执行的微指令的地址(下地址),因此又称之为控制存储器。
第二节 微程序设计
微程序控制器由微(指令)地址寄存器、微指令地址译码器及驱动部件、控制存储器、微指令寄存器、微指令地址形成电路、状态条件等部分组成。其中,
- 60 -
微地址寄存器,微指令寄存器,微地址形成电路和控制存储器是微程序控制器的关键部分.
1. 微指令寄存器:
从控制存储器中读取的微指令存放于微指令寄存器中。微指令分为微操作控制字段和顺序控制字段。微程序控制字段可能直接就是微命令或是微命令的相关代码(通过译码器形成微命令),而顺序控制字段指明后继微指令地址的形成方式,用以控制微程序连续执行。
2。 微地址寄存器:
在从控制存储器中读取微指令时,微地址寄存器中保存着控制存储器的地址(微地址),指向相应的控制存储器单元。当读出微指令后或完成一个微指令周期操作后,微地址形成电路将后继微地址打入微地址寄存器中,作好读取下一条微指令的准备。
3. 微地址形成电路:
根据微程序执行顺序的需要,应当有多种后继微指令地址的形成方式。一般依据以下几种信息中的一部分去形成后继微地址:现行微指令中顺序控制字段(决定形成方式),现行微指令地址(顺序执行时的基准),微程序转移时的微地址(由微指令给出其全部或部分高位),机器指令有关代码(作为微程序分支的依据),机器运行状态(可作为微程序转移的依据)等。显然在逻辑实现时采用PLA电路是比较理想的。
4。 指令工作如下:
(1) 一般情况下,在微程序存储器的0号微地址单元一定是取指周期的第一步微指令,所以,微地址寄存器初始条件应该为0.将微指令读入微指令寄存器,形成微命令,以致CPU工作(取指令)
(2) 根据指令操作码、状态标志、上一条微指令寄存器中的顺序控制字段及条件代码(通过微地址形成电路)形成下一条微地址,送入微地址寄存器.
(3) 重复①工作,直到指令周期的最后一条微指令,令其结尾使下地址为0。 5. 微指令的编码方法 (1) 直接控制法
直接控制编码又称不译法,即微指令中控制字段的每一位就是一个微命令,直接对应一种微操作。
优点:每个微命令独立,可以并行执行,每个微命令不需译码就可以产生,从而提高了机器的执行速度。
缺点:微命令多时,微指令过长,占存储空间太大。 (2) 最短字长编码
- 61 -
对于N个微命令,编成log2(N+1)位编码。(其中一种编码表示无操作) 优点:存储空间少。 缺点:译码电路多,速度慢。
例:一台计算机有127个微命令,平均每条微指令中有5个微操作 采用不译法每条微指令127位,采用最短字长法只需5*7=35位。 (3) 分段直接编码法
它是前两种方法的折中,他将微指令分成若干小段,段内采用最短编码,段间采用直接控制.此方法关键在于找出各微命令之间的互斥关系。(互斥信号为一组)。一般的寄存器的out和in信号各自独立成一段,读写信号一段,ALU操作一段,
(4) 分段间接编码
它的形式与①相同,但是①中的各段之间是直接译码,彼此不相关,而①各段译码时,还与其他段相关,所以很复杂。
6。 微指令地址的形成 (1) 初始微地址的形成
取指:把取指的首条微指令放入存储器的0单元. 功能转移: 一级功能转移
当操作码固定,可采用操作码实现功能转移 多级功能转移
如果指令的寻址方式多样,还要采用多级转移 PLA电路实现转移。 (2) 后继微地址形成 增量方式:
微指令逐条工作,基本采用顺序执行方式;但是微指令寄存器中的顺序控制字段分为转移方式和转移地址。转移方式指明判别条件,转移地址指明转移成功后微程序的去向,不成功则顺序执行。
断定方式:
形成后继微地址的断定方式是指后继微地址可由程序设计者指定,或者根据微指令所测试的结果直接决定后继地址全部或部分地址值。这种微地址结构打破了顺序地址物理分配方式,也打破了顺序执行微指令的控制方式。因为每条微指令的地址必须由上一条微指令给出,所以每条机器指令的微程序序列也不一定要求安排在控制存储器的连续单元之中,从而使得微程序中各微指令的安排十分灵活,给微程序在ROM中的物理分配提供了方便,并可使ROM中的各单元得到
- 62 -
充分利用。
采用断定方式的微指令都有一个地址区,这种微指令又叫做具有下地址域的微指令。该地区一般分为两部分:一部分为非测试地址,由程序设计者直接指定,占高位部分;另一部分为测试地址,由测试结果确定其地址值,占低位部分。测试地址相当于在指定的区域内断定具体的分支。所依据的测试状态可能是指定的开关状态、按键状态、指令的某些位、状态字、运算结果等。
7.微指令格式的分类 (1) 垂直型微指令
如果每条微指令只定义并执行一种基本操作,(如一次数据传输)则是一种典型的垂直型微指令。
优点是微指令短(位数少),简单规整,容易编制调试。缺点是执行效率低,不能充分利用CPU的并行性.对于单总线结构CPU只能采取垂直型微指令.
(2) 水平型微指令
如果每条微指令可以定义并执行几种并行的基本操作,(如两组以上的输出传输)则是典型的水平型微指令.这种微指令包含的微命令较多,相应的位数较多,为实现同等功能所需要的微程序段(所需要的微指令少)。
优点:执行效率高(几项工作同时进行),灵活性强,微程序短. 缺点:微指令长,复杂程度高,设计自动化比较困难。 但是对于多总线结构的计算机采用水平型微指令较好. (3) 混合型微指令
在垂直型的基础上,增加一些不太复杂的并行操作,就成了一种偏于垂直型的混合型微指令
本章思考题
1. 画出组合逻辑控制单元的框图。
2. 试比较组合逻辑设计和微程序设计步骤及硬件组成. 3. 什么是垂直型微指令?什么是水平型微指令? 4. 微指令地址有几种形成方式? 5. 试比较静态和动态微程序设计。
- 63 -
因篇幅问题不能全部显示,请点此查看更多更全内容