暑期学什么?——关于ZigBee技术

前言

        近年来,由于无线接入技术的需求日益增大,无线通信和无线网络均呈现出指数增加的趋势。 这有力的推动力无线通信向高速通信方向的发展。工业、农业、车载电子系统、家用网络、 医疗传感器和伺服执行机构等都是无线通信应用的领域。中国大力推广的物联网也是 zigbee 应用的主战场,物联网通过智能感知、识别技术与普适计算、泛在网络的融合应用, 被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。如果你想在物联网上有所作 为,那现在就开启Zigbee学习的大门吧。

        ZigBee 学习笔记系列是基于笔者需要使用 ZigBee 模组进行项目开发而写的学习笔记。本人从网上购买了 ZigBee 模组来学习,有相的学习视频以及资料,跟着教程边学边做记录。主要目的如下:
1.方便自己以后回顾学习
2.方便刚接触 ZigBee 的开发者学习参考
本人在所使用的开发板是“安联德”公司开发的 ZigBee 开发板


一、ZigBee技术——基本介绍

1. Zigbee通信概述
Zigbee是一种基于IEEE 802.15.4标准的无线通信技术,它主要用于低功耗、低数据速率和短距离的无线通信。Zigbee通信适用于物联网设备、家庭自动化、智能能源管理等领域。

2. Zigbee通信原理
Zigbee通信采用低功耗的星型或网状拓扑结构,具有以下特点:

调制方式:Zigbee使用2.4 GHz、868 MHz或915 MHz频段的无线电波进行通信。
网络拓扑:Zigbee网络可以采用星型、网状或混合型拓扑结构。
通信模式:Zigbee采用低功耗的睡眠和唤醒模式,以延长设备的电池寿命。


3. 常用的Zigbee芯片
在Zigbee通信中,常见的芯片制造商和型号包括:

Texas Instruments CC2530/CC2531:广泛用于物联网设备和家庭自动化。
Silicon Labs EM35x系列:适用于各种应用场景,如智能能源管理和工业自动化。
NXP JN516x系列:用于物联网设备和智能家居等领域。


4. Zigbee开发流程
在进行Zigbee开发时,通常遵循以下流程:

硬件准备:选择合适的Zigbee开发板或模块,并连接所需的外围设备。
Zigbee协议栈选择:选择适合项目需求的Zigbee协议栈,如Z-Stack、EmberZNet等。
芯片配置:通过编程方式配置Zigbee芯片的参数,如信道、功率、网络设置等。

应用开发:基于选择的Zigbee协议栈开发应用层代码,实现Zigbee功能和应用逻辑。
调试和测试:对开发的代码进行调试和测试,确保Zigbee功能正常运行。


5. Zigbee整体架构
Zigbee通信采用分层架构,包括物理层、MAC层、网络层和应用层。每个层级具有不同的功能和责任。

物理层:负责无线通信的物理特性,如调制解调、频率选择等。
MAC层:提供数据帧的封装和解封装,负责数据传输的可靠性和安全性。
网络层:处理节点之间的路由和网络拓扑结构,确保数据的传输和可达性。
应用层:实现具体的应用功能,如传感器数据的采集和控制命令的发送等。

Zigbee协议模型,Zigbee协议栈自上而下由应用层、应用会聚层、网络层、数据链路层和物理层组成。

1.应用层,应用层定义了各种类型的应用业务,是协议栈的最上层用户。

2.应用会聚层,主要负责把不同的应用映射到Zigbee网络上,主要包括安全属性设置、多个业务数据流的会聚、设备发现和业务发现等功能。

3.网络层,网络层的功能包括拓扑管理、MAC管理、路由管理和安全管理。

4.数据链路层,IEEE082系列标准将数据链路层分成逻辑链路控制和媒体接入控制两个子层。

5.物理层,IEEE802.15.4定义了2.4GHz和868MHZ/915MHz这两个物理层,它们都是基于直接序列扩频数据包格式,两者的主要区别在于工作频率、调制技术、扩频码长度和传输速率。

(一)简介

1.ZigBee简介

数据传输速率低:10KB/秒~250KB/秒,专注于低传输应用。
功耗低:在低功耗待机模式下,两节普通5号电池可使用 6~24 个月。
成本低:ZigBee 数据传输速率低,协议简单,所以大大降低了成本。
网络容量大:网络可容纳 65.000 个设备,
时延短:通常时延都在 15ms~30ms。
安全:ZigBee 提供了数据完整性检査和鉴权功能,采用 AES-128 加密算法(美国新加密算法,是目前最好的文本加密算法之一)
有效范围小:有效爱盖范围 10~75 米,具体依据实际发射功率大小和各种不同的应用模式而定 工作频段灵活:使用频段为 2.4GHZ.868MHZ(欧洲)和 915MHZ(美国),均为免执照(免费)的频段。
传输可靠:采用碰撞避免策略,同时为需要固定带宽的业务预留专用时隙。

名称/标准GPRS/GSM/1XRTT/CDMA

                      WiFi

                   802.11b

         BIuetooth

          802.15.1

         ZigBee

        802.15.4

应用重点

                  声音&数据

Web、Email、图像近场通信检测&控制
系统资源16MB+1MB+250KB+4KB-32KB
电池寿命(天)1-70.5-51-7100-1000
网络大小1327255/6500
带宽(KB/s)34-128+11000+72020-250
传输距离(米)1000+1-1001-10+1-100+
优点覆盖面大,传输质量高传输速度快,使用灵活价格便宜,使用方便可靠,低功耗,价格便宜

2.ZigBee和IEEE 802.15.4 的关系


IEEE 802.15.4 标准的优点
A:低功耗
B:低价格
C:低数据传输率


IEEE 802.15.4 标准制定小组的任务
A:物理层(DSSS):数据的调制发送和接收解调,介质选择,信道选择。
B:MAC 层(CSMAVCA):产生网络信标,支持设备的安全性等。


        ZigBee 是建立在 IEEE802.15.4标准之上,由于IEEE 802.15.4标准 只定义了物理层协议和MAC层协议,于是成立了zigbee联盟.
        ZiqBee联盟对其网络层协议和API 进行了标准化,还开发了安全层。经过ZiqBee联盟对IEEE 802.15.4的改进。这才真正形成了真正Zigbee协议栈(Zstack)。

3.详细的介绍

(1)CC2530单片机简介

        CC2530是用于2.4-GHz IEEE 802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案,它能够以非常低的总材料成本建立功能强大的网络节点。

        SoC与单片机 SoC是System on Chip的缩写,可翻译为“芯片级系统”或“片上系统”。我们可以这样来理解SoC与单片机的区别:一个应用系统除了包括单片机还包括其他外围电子器件,例如要实现无线通信功能,电路板上需要有单片机芯片和无线收发芯片才能构成无线通信系统,若将整个电路板集成到一个芯片中,那么这个高度集成的芯片就可以称为SoC。 SoC为了专门的应用而将单片机和其他特定功能器件集成在一个芯片上,但其仍旧是以单片机为这个片上系统的控制核心,从使用的角度来说我们基本还是在操作一款单片机。

        CC2530内部使用业界标准的增强型8051CPU,结合了领先的RF收发器,具有8KB容量的RAM,具备32/64/128/256KB四种不同容量的系统内可编程闪存和其他许多强大的功能。CC2530根据内部闪存容量的不同分为4种不同型号:CC2530F32/64/128/256,F后面的数值即表示该型号芯片具有的闪存容量级别。


(二)设备功能—介绍

ZigBee 技术是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。
在 ZigBee 网络中存在三种逻辑设备类型:Coordinator(协调器),Router(路由器)和 End-Device(终端设备)。ZigBee 网络由一个Coordinator以及多个 Router和多个 End Device 组成。
各类型设备功能如下:

1.协调器(英文名:ZigBee Coordinate ,通常简写为:ZC)

        协调器在ZigBee 网络中,有且只能有一个协调器,它在网络中起了网络搭建和网络维护的功能。是整个网络的中心枢纽。是等级最高的父节点。

        协调器负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络ID(也称之为 PANID,即 Personal Area Network ID),随后启动整个网络。协调器也可以用来协助建立网络中安全层和应用层的绑定(bindings)。注意,协调器的角色主要涉及网络的启动和配置。一旦这些都完成后,协调器的工作就像一个路由器(或者消失 go away)。由于 ZigBee 网络本身的分布特性,因此接下来整个网络的操作就不在依赖协调器是否存在。

2.路由器(英文名:ZigBee Router,通常简写为:ZR)

        路由器在ZigBee 网络中既可以充当父节点,也可以充当子节点,有信息转发和辅助协调器维护网络的功能。

        路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的儿子终端设备的通讯。通常,路由器希望是一直处于活动状态,因此它必须使用主电源供电。但是当使用树群这种网络模式时,允许路由间隔一定的周期操作一次,这样就可以使用电池给其供电。

3.终端(英文名:ZigBee End-Device,通常简写为:ZED)

        终端设备没有特定的维持网络结构的责任,它可以睡眠或者唤醒,因此它可以可以是一个电池供电设备。

        终端在ZigBee 网络中,其功能最为简单,只能加入网络,为最末端的子节点设备。只能与其父节点进行通信,如果两个终端之间需要通信,必须经过父节点进行多跳或者单跳通信。是ZigBee 网络中可允许存在的数量最多的节点,也是唯一允许低功耗的网络设备。

(三)ZigBee的网络拓扑模型

ZiaBee 网络拓扑结构主要有星形网络和网型网络。不同的网络拓扑对应于不同的应用领域,在 ZiaBee 无线网络中,不同的网络拓扑结构对网络节点的配置也不同,网络节点的类型:协调 器、路由器和终端节点,具体配置根据需要决定,具体内容会在后面章节中进行讲
解,在此,读者只需要对网络拓扑结构有个概念性的认识即可。

MESH 网状网络拓扑结构的网络具有强大的功能,网络可以通过多级跳的方式来通信;该拓 扑结构还可以组成极为复杂的网络;网络还具备自组织、自愈功能。

1.星形

        ZigBee星状网络:在ZigBee 网络中属于一种最为简单的网络拓扑结构。包含一个协调器(中心节点)和若干个路由器和终端(附属节点)组成。该结构如下图所示,该结构网络中每个附属节点只能与中心节点通信,如果需要两个附属节点之间通信,必须经过中心节点进行数据转发。

2.树状型

树状网络:  ZigBee树状网络包含一个协调器,若干个路由器和终端组成。其网络拓扑结构如下图所示。ZigBee 树状网络可以看做多个星状网络组成,每个树杈分支处(带节点的路由器)可看做组成星状网络的“中心节点”,每个字设备只能与其父节点通信,最高级的父节点为协调器。

在树状网络中,协调器将整个网络搭建起来,路由器作为承接点,将网络以树状向外扩散。节点与节点之间通过中间的路由器形成“多跳通信”。与星状网络相比,树状网络在容量以及健壮性上有了大幅度提高

3.网状型

网状网络: ZigBee网状网络是建立在ZigBee 树状网络结构上,其拓扑结构如下图所示。ZigBee 网状网络中,除了满足ZigBee 树状网络的所有功能之外,其相邻路由器之间也存在通信关系,使得网络的动态分布更为灵活,路由能力更加稳定,可靠。可充分发挥出ZigBee 网络的自组织优势


(四)ZigBee的应用范围

Zigbee协议作为一种低功耗、短距离无线通信技术,其应用范围非常广泛。Zigbee技术主要应用于以下几个领域:

1.工业

Zigbee技术在工业自动化领域提高生产效率和设备控制的详细机制主要体现在以下几个方面:

  1.   构建无线传感器网络:Zigbee芯片用于构建工厂自动化系统和无线传感器网络,这些网络可以监测和控制各种参数,如温度、湿度、压力等,从而提高生产效率和减少能源消耗。
  2.   设备联网和监控:通过ZigBee技术,可以实现工厂车间内各种设备的联网和监控,包括远程控制、数据采集和故障诊断。这有助于提高生产效率、降低成本,并实现智能化的生产管理。
  3.   低成本的无线收发模块:ZigBee系统的低成本无线收发模块可以建立起一个局部自动化控制网,再通过互联网或移动网与远端的计算机相连,实现低成本、高效率的工业自动化遥测遥控。
  4.   实时监控和数据分析:通过ZigBee无线技术,可以在生产线上的各个角落部署传感器,实现生产过程的实时监控和数据分析,从而提高生产效率和产品质量。
  5.   自动化控制监控系统设计:利用ZigBee无线通信技术设计的新型自动化控制监控系统,通过对ZigBee无线通信技术的深入研究和总结,完成了系统数据通信方案的设计,包括硬件结构和软件结构的设计,以及使用ZigBee的无线监控系统的建立。
  6.   远程监控和控制:Zigbee技术可以实现设备的远程监控和控制,提高生产效率和安全性。这种技术作为一种低功耗、短距离的无线通信技术,在工业自动化中的应用越来越广泛。
  7.   广泛应用案例:ZigBee无线通信模块在工业自动化控制中的应用案例广泛,从远程监测粉尘到智能照明控制,再到环境监测和控制,以及更广泛的工业环境监控和资源管理等领域都有应用。

2.农业

Zigbee技术支持智能农业的应用,如作物生长监测和智能灌溉系统。

 在农业物联网中,Zigbee技术通过结合无线传感器网络和现代化技术,实现了智能灌溉和作物生长监测。具体来说,Zigbee技术利用其无线通信的特点,与各种传感器(如温湿度传感器、土壤湿度传感器、土壤温度传感器和光照度传感器)相结合,来采集农田环境的关键数据。这些数据包括空气温湿度、土壤湿度、土壤温度和光照度等,对于智能灌溉系统至关重要。

  通过中心站的数据分析处理,这些收集到的信息可以用来控制灌溉系统,如电磁给水阀,进行有效的定量滴灌、微喷灌等灌溉方式。这种基于ZigBee无线感测器网络的智能灌溉系统不仅提高了农业灌溉的效率和智能化程度,还有助于促进作物的生长。

  此外,Zigbee技术还被应用于作物生长监测中。通过实时采集空气温湿度、光照强度、二氧化碳浓度、土壤水分、土壤湿度、土壤PH值等环境数据,并结合大数据模型进行自动分析,Zigbee技术能够智能调控风口、卷帘、水阀等,以满足作物生长的最佳环境条件。这不仅有助于提高农作物的产量和质量,还推动了农业生产的现代化进程。

  Zigbee技术在农业物联网中的应用,通过其无线通信能力和与各种传感器的结合,实现了对农田环境的实时监测和智能控制,从而有效支持了智能灌溉和作物生长监测的需求。

3.交通

Zigbee技术在交通领域详细机制主要体现在以下几个方面:

  1. 车辆监控:Zigbee技术可以用于车辆的实时监控,包括车辆的位置、速度、方向等信息。通过在车辆上安装Zigbee设备,可以实时收集这些信息并传输到交通管理中心,从而实现对车辆的实时监控。

  2. 交通信号控制:Zigbee技术可以用于交通信号的控制。通过在交通信号灯上安装Zigbee设备,可以实现对交通信号的远程控制,从而优化交通流量,减少交通拥堵。

  3. 电子收费:Zigbee技术可以用于电子收费系统。通过在收费站和车辆上安装Zigbee设备,可以实现自动收费,避免了人工收费的繁琐和错误。

  4. 车辆诊断:Zigbee技术可以用于车辆的远程诊断。通过在车辆上安装Zigbee设备,可以实时收集车辆的运行数据,并通过无线网络传输到维修中心,从而实现对车辆的远程诊断。

  5. 智能停车:Zigbee技术可以用于智能停车系统。通过在停车场和车辆上安装Zigbee设备,可以实现对停车位的实时监控和管理,从而提高停车效率,减少停车难的问题。

  6. 公共交通管理:Zigbee技术可以用于公共交通的管理。通过在公交车、地铁等公共交通工具上安装Zigbee设备,可以实现对公共交通的实时监控和管理,从而提高公共交通的效率和服务质量。

4.商业

Zigbee技术在商业领域详细机制主要体现在以下几个方面:

监视
传感器
自动化
控制

5.健康医疗领域

Zigbee协议在健康医疗领域的应用最新进展主要包括以下几个方面:

  1.   无线医疗监护网络的构建:基于ZigBee技术,研究者提出了混合网络的无线医疗监护方案,设计了心电和脉搏两个生理参数采集模块,能够准确采集生理信号,并建立了一个ZigBee星型网络。此外,还有研究提出了一种用于医院医疗监护的无线网络方案,通过分析ZigBee网络拓扑结构,选用树型拓扑来组建网络。
  2.   远程监控与控制:ZigBee技术被广泛应用于医疗健康领域,实现医疗设备的远程监测和控制,如血压计、心电图仪、血糖仪等。这些设备可以通过ZigBee网络进行数据的传输和控制。
  3.   智慧医疗中的应用:ZigBee无线模块在智慧医疗中的应用,通过打造健康档案区域医疗信息平台,利用物联网技术,实现患者与医务人员、医疗机构、医疗设备之间的互动,逐步达到信息化。
  4.   新冠和癌症防治:2020年新冠疫情期间,ZigBee模块在核酸检测、重大疾病的快速准确检测中发挥了重要作用,为新冠和癌症防治提供了技术支持。
  5.   人体基本健康参数的远程监护:基于ZigBee技术的人体基本健康参数远程监护系统,使得人们不必住院便可得到医生的在线诊断和指导,及早发现人体生理状况的异常变化。

6.玩具和游戏

玩具
游戏器具

7.家庭自动化

 Zigbee协议在智能家居系统中的具体应用案例包括但不限于以下几个方面:

  1.   环境监测与数据传输:通过Zigbee传感器监测节点采集家居环境数据,如温度、湿度等,并通过Zigbee网络无线传输至PC上位机进行显示和管理。
  2.   远程语音控制:利用ZigBee模块实现智能家居的远程语音控制,通过语音识别技术控制智能家居设备,输出ZigBee3.0协议,方便与ZigBee协调器对接,实现语音直接控制硬件。
  3.   多功能设备实现:使用CC2530开发的ZigUP设备,可以作为继电器、开关、传感器和路由器等多种功能,实现智能家居的多场景应用。
  4.   智能安防、照明、家电、窗帘和影音控制:基于ZigBee技术的智能家居解决方案,涵盖了智能安防、智能照明、智能家电、智能窗帘以及影音控制等多个方面。
  5.   远程控制、智能联动和场景设置:Zigbee智能家居控制系统能够实现家庭电器的远程控制、智能联动和场景设置等功能,具有低功耗的特点,能够延长设备的电池寿命。
  6.   接入多种品牌智能家居设备:通过ThingsCloud平台,Zigbee智能家居设备可以灵活接入米家、飞利浦、宜家等多种品牌的智能家居设备,适用于楼宇办公、温室大棚、小型工厂等多种应用场景。

  这些案例展示了Zigbee协议在智能家居系统中的广泛应用,从环境监测到远程控制,再到多功能设备实现和跨品牌设备接入,Zigbee技术为智能家居提供了强大的支持和灵活性。

8.PC 机的外围设备

Zigbee模块广泛应用于物联网智能传感器领域,提供低功耗、自组网的解决方案。

鼠标

键盘

操纵杆

9.环境监测

Zigbee技术在环境监测方面的应用展现了多种创新方法,主要包括以下几个方面:

  1.   构建基于ZigBee的无线环境监测系统:通过使用ZigBee无线传感器网络技术,结合消防报警监测系统,提出了一种新的环境监测系统设计方法。这种方法不仅包括系统的组成和网络结构的设计,还详细描述了路由的实现过程,实现了基于ZigBee的无线环境监测系统的构建。
  2.   高性价比芯片的应用:在环境监测系统的设计与实现中,采用了当前高性价比的CC2530芯片,设计出整套环境监测方案。这种方案利用各种传感器采集数据,并通过ZigBee节点传输数据,最后通过Web服务器对数据进行处理。
  3.   自组织、低功耗的特点:ZigBee作为一种新兴的无线传感网络技术,具有自组织、低功耗、低复杂度、低成本和近距离传输等特点。这些特点使得ZigBee技术在环境监测系统中的应用变得简单,并且能够实现新传感器节点的自动入网,无需人工配置。
  4.   边缘计算网关的应用:环境信息采集设备和边缘计算网关整合了ZigBee3.0云模组,能够将采集到的环境信息通过ZigBee的无线通信方式发送到边缘计算网关。边缘计算网关一方面接收来自各个子设备的环境信息数据,另一方面通过WiFi、NB-IoT或CAT1等无线网络将数据上传到云端,从而提高了数据处理的效率和准确性。
  5.   特定应用场景的设计:针对特定的应用场景,如山区农田环境监测和石油化工企业环境监测,基于ZigBee无线传感器网络技术设计并实现了相应的环境监测系统。这些系统能够全天候监测特定环境的实时数据,并通过手机端App等方式进行查看,满足了不同领域对环境监测的需求。

  Zigbee技术在环境监测方面的应用展现了其在构建高效、低成本、易于扩展的监测系统方面的创新能力,特别是在自组织网络、边缘计算以及特定应用场景的设计方面表现突出。


(五)开发板的硬件资料


1.开发板硬件资源介绍


板上资源接口丰富,通用传感器插上就能用,摆脱短路帽拔插的烦恼
采用底板加核心模块组合设计。便于更换带 PA 的模块或板载天线模块
板载 US8 转串口电路,方便笔记本以及没有串口的电脑用户
引出所有 10 口,方便调试,外接自己的模块
开发板丝印清楚,便于研究电路,并配有原来图
支持 OLED 显示,并可在线调试 LCD 输出显示(独创)
增加串口收发指示灯,监控通讯状态一目了然
元件采购大厂原装件,开发板采用进口贴片机生产,板上零人工焊点,品质更有保障


2.功能特点:

底板尺寸:5 * 5.1 cm

串口通讯:自带USB转串口功能(CH340G),方便笔记本用户

供电方式:minUSB、DC2.1电源座(5V)内正外负。接口更通用

功能接口:Debug接口,兼容TI标准仿真工具,引出所有IO口。并支持多种 传感器即插即用,以及常用的串口引脚、5V、3.3V

功能按键:1个复位,2个普通按键,组网时可手动入网和退网

LED 指示灯:电源指示灯、组网指示灯、普通LED、串口收发指示灯

模块支持:支持2530CS核心板、带PA的2530CA、2530CB核心板

LCD:支持OLED和TFT彩屏显示,显示更清晰,调试所见即所得

3.ZigBee模块(TI CC2530F256)

1. 尺寸: 2.5*2.6 cm

2. 体积小,引出全部IO口,标准2.54排针接口

3. 开放频段,工作频段为2.4GHz

4. 16个传输信道,根据环境进行切换可靠通信信道

5. 无线传输速率达250kbp/s

6. 功耗:接收和发射电流约27.6mA

7. 使用2.4G全向天线,空旷直视传输距离达300米左右


(六)快速掌握ZigBee 的学习方法


1.先掌握与 ZigBee 相关的理论知识


2. 安装开发环境 IAR for 8051,主要是用于 CC2530 程序的编写、编译、调试、仿真以及下载


3.针对 CC2530 芯片做基础实验,明白 CC2530 相关内部外设寄存器的配置,明白 CC2530 的基本使用


4.做"zigbee 协议栈应用与组网” 实验,前面几个实验暂时不研究 ZigBee 2007 协议栈,我们在做实验中穿插相关内容。避免刚接触ZigBee 2007 协议栈理论枯燥乏味,不易理解,学习效率低。


5.看协议栈视频、文档,加深对协议栈的理解


6.最后研究“实践项目"就欧了


二、ZigBee技术——基本功能实现

(一)安装开发环境 

1.安装IAR

要让单片机完成特定的工作,需要对其进行程序设计,开发人员利用编程工具将编写好的控制代码编译生成二进制文件(常见的有hex文件和bin文件)并下载到单片机中。

IAR Embedded Workbench是著名的C编译器,支持众多知名半导体公司的微处理器,许多全球著名的公司都在使用该开发工具来开发他们的前沿产品,从消费电子、工业控制、汽车应用、医疗、航空航天到手机应用系统。 IAR根据支持的微处理器种类不同分许多不同的版本,由于CC2530使用的是8051内核,我们需要选用的版本是IAR Embedded Workbench for 8051。IAR的工作界面如图1-11所示。

1.创建IAR工作区 :IAR使用工作区(Workspace)来管理工程项目,一个工作区中可以包含多个为不同应用创建的工程项目。IAR启动的时候已自动新建了一个工作区,也可以使用菜单中的【File】|【New】|【Workspace】或【File】|【Open】|【Workspace…】来新建工作区或打开已存在的工作区。

2.创建IAR工程: IAR使用工程来管理一个具体的应用开发项目,工程主要包括了开发项目所需的各种代码文件。使用菜单【Project】|【Create New Project…】来创建一个新的工程,此时弹出如图1-12所示的对话框。

                                                                                        建立新工程

3.选择“Empty project”来建立空白工程,点击“OK”按钮后弹出如图1-13的对话框,用来选择工程要保存的位置。在“文件名”后的文本框中为工程起名后保存工程,之后会在IAR的“Workspace”中看到建立好的工程.

                                                                                                        保存工程

2.IAR的操作与使用

(1)配置工程选项 工程创建好后,为使工程支持CC2530单片机和生成hex文件等,还需要对工程的选项进行一些配置。在“Workspace”中列出的项目上点击鼠标右键弹出如图1-16所示对话框,选择其中的【Options…】弹出如图1-17所示的“选项配置窗口”。

(1.1)配置单片机型号 我们使用的是CC2530单片机,需要在工程中将单片机型号做相应设置。在工程选项窗体中选择“General Options”下的“Target”选项卡,在“Device information”里点击“Device”最右侧按钮,然后从“Texas Instruments”文件夹中选择“CC2530F256.i51”文件并打开,最终在“Device”后面的文本框中显示“CC2530F256”。

(1.2)配置输出.hex文件 在工程选项窗体中选择“Linker”下的“Output”选项卡,在“Format”里勾选“Allow C-SPY-specific extra output file”复选框,如图1-18所示。

在工程选项窗体中选择“Linker”下的“Extra Output”选项卡,勾选“Generate extra output file”复选框,再勾选“Output file”中的“Override default”复选框并在下面的文本框中输入要生成的.hex文件的全名。最后在“Format”中将“Output format”设置为“intel-extended”,整体设置如图1-19所示。 所有内容配置完毕后,点击“OK”按钮关闭配置窗口。

(2)添加程序文件

(1)创建代码文件 找到工程的存储目录,在目录中新建一个名为“source”的文件夹,以方便管理我们自己写的代码。使用【File】|【New】|【File】菜单命令可在IAR中创建一个空白文件,接着将该文件通过【File】|【Save】菜单命令进行保存,将该文件起名为“code.c”并将其保存到我们刚刚创建的“source”文件夹下。

(2)将代码文件添加到工程中 在“Workspace”中的工程上点击鼠标右键弹出快捷菜单,选择其中的【Add】|【Add File…】命令,找到刚刚创建的“code.c”文档并打开,此时可以看到“Workspace”中的工程下出现了代码文件,如图1-20所示。

工程名字右上角的黑色“*”表示工程发生改变还未保存,代码文件右侧的红色“*”表示该代码文件还未编译。

(3)向代码文件中添加代码 可直接将“资源\任务2\”目录下“控制代码.txt”文件中的内容复制到代码文件中。

(3)编译和下载

代码添加完毕后,在“Workspace”中的工程上点击鼠标右键弹出快捷菜单,选择其中的【Add】|【Rebuild All】命令使IAR编译代码并生成.hex文件。可以看到在IAR下方的“Build”窗口中显示“Total number of errors: 0”和“Total number of warning: 0”,表示没有出现错误和警告。

编译完毕后,在工程存放目录下会出现名为“Debug”的文件夹,其中存放了编译过程的中间文件和最终生成的镜像文件。最终生成的.hex文件位于工程目录下的“\Debug\Exe”文件夹下。

(4)在IAR工程中设置硬件仿真

进入工程选项配置窗口,选择“Debugger”下的“Setup”选项卡,将其中的“Driver”内容选择为“Texas Instruments”,如图1-21所示,然后点击“OK”关闭配置窗口。

开始仿真 使用【Project】|【Download and Debug】菜单命令,IAR首先会直接通过CC Debugger将程序代码下载到CC2530中去,然后启动调试窗体界面,如图1-22所示。

可以看到,有一个绿色箭头指向代码中主函数中的第一条指令,同时该部分代码以绿色背景显示。这表示CC2530单片机准备要执行绿色部分的指令,但是还没有执行。 按下计算机键盘上的F10键,CC2530就会执行绿色箭头当前指向的代码,然后绿色箭头会移动到下一条待执行的代码位置。使用F10键单步运行本程序,同时观察实验板上所有发光二极管的亮灭状态。

在调试状态下,可以通过工具栏上如图1-23的几个按钮控制程序的执行。从左到右这些按钮的功能依次是:复位、停止执行、单步执行(会跳过函数体)、跳入到函数体中、从函数体中跳出、下一个状态、运行到光标所在行、正常运行和退出调试。

使用在线调试功能,除了能起到下载代码的作用,还能帮助我们分析代码执行过程等,有利于我们进行代码的设计和分析等工作。有关在线调试的更深层次功能,可自行查找IAR在线仿真调试的相关资料进行学习。

本章小结

IAR除了可以编辑、编译单片机应用程序外,还能起到给单片机下载程序的作用。同时,通过运用IAR的在线调试功能,可方便程序开发人员了解程序在单片机中的运行过程,方便和强化了整个程序的设计和调试工作。

3.安装烧写软件

SmartRF Flash Programmer(SmartRF闪存编程器)可以对德州仪器公司低功率射频片上系统的闪存进行编程,还可以用来读取和写入芯片IEEE/MAC地址。软件的安装过程十分简单,安装完毕后SmartRF Flash Programmer的运行界面如图1-5所示。

                                                                                SmartRF Flash Programmer运行界面

4.烧写软件操作与使用

要进行烧写程序的工作,必须将CC2530与计算机连接起来,这里需要使用CC Debugger设备。该设备除了可为CC2530烧写程序,还可以进行程序的在线调试。 CC Debugger使用USB数据线与计算机相连,使用10线的排线与目标设备(CC2530实验板)的调试接口相连。在与目标设备连接时,一定注意要让排线的1脚对应实验板上调试接口的1脚,即排线上的三角箭头要与实验板上的白色三角箭头对齐。实验板的调试接口与CC2530芯片的连接关系如图1-6所示,当需要自行设计应用系统时可参照此设计方式。

在将实验板通过CC Debugger连接到计算机后,便可按以下步骤将程序烧写到CC2530单片机中。 (1)运行SmartRF Flash Programmer,选择“System-on-Chip”选项卡。 (2)为实验板供电后,按下CC Debugger上面的复位按钮,此时可看到在SmartRF Flash Programmer的设备列表区显示出了当前所连接的单片机的信息,如图1-7所示。如果计算机连接了多片单片机系统,我们可以在设备列表区选择要操作的单片机。

                                                                                        设备列表显示的单片机信息

点击Flash image(闪存镜像)的选择按钮“ ”,选择要烧写的下位机程序文件,如图1-8所示,选择“下位机测试程序.hex”文件。

在Actions(动作)区域选择“Erase,program and verify”,如图1-9所示。动作区域的5种不同动作含义分别是:

Erase and program:擦除和编程,将擦除所选单片机的闪存,然后将.hex文件中的内容写入到单片机的闪存中。

Erase,program and verify:擦除、编程和验证,与“擦除和编程”一样,但编程后会将单片机闪存中的内容重新读出来并与.hex文件进行比较。使用这种动作可检测编程中的错误或因闪存损坏导致的错误,所以建议使用这种动作来对单片机进行编程。

Append and verify:追加和验证,不擦除单片机的闪存,从已有数据的最后位置开始将.hex文件中的内容写入进去,完成后进行验证。 Verify against hex-file:验证hex文件,从单片机闪存中读取内容与.hex文件中的内容进行对比。

Read flash into hex-file:读闪存到hex文件,从单片机闪存中读出内容并写入到.hex文件中。

                                                                                                    Actions选项

点击下方“Perform actions”按钮,开始对CC2530进行编程,动作执行过程中会有执行进度条显示,并在执行完毕后给出如图的提示。

                                                                                                完成动作的执行

5.安装仿真软件

6.仿真软件的操作与使用


(二)基本操作

1.硬件设计基本知识

1.CC2530的引脚 CC2530单片机采用QFN40封装,外观上是一个边长为6mm的正方形芯片,每个边上有10个引脚,总共40个引脚。CC2530的引脚布局如图2-1所示。

                                                                                                引脚类型划分

引脚类型

包含引脚

功能简介

电源类引脚

AVDD1~6、DVDD1~2、GND、DCOUPL

为芯片内部供电

数字I/O引脚

P0_0~P0_7、P1_0~P1_7、P2_0~P2_4

数字信号输入/输出

时钟引脚

XOSC_Q1、XOSC_Q2

时钟信号输入

复位引脚

RESET_N

让芯片复位

RF引脚

RF_N、RF_P

外接无线收发天线

其他引脚

RBIAS

外接偏置电阻

2.CC2530的I/O引脚 CC2530总共具有21个数字I/O引脚,这些引脚可以组成3个8位端口,分别为端口0、端口1和端口2,通常表示为P0、P1和P2。其中,P0和P1是完全的8位端口,而P2仅有5位可以使用。21个I/O引脚具有以下特性,可以通过编程进行配置。 (1)可配置为通用I/O端口 通用I/O端口是指可以对外输出逻辑值0(低电平)或1(高电平),也可读取从I/O引脚输入的逻辑值(低电平为0,高电平为1)。可以通过编程来将I/O端口设置成输出方式或输入方式。

(2)可配置为外部设备I/O端口 CC2530内部除了含有8051CPU核心外,还具有其他功能模块,如ADC、定时器和串行通信模块,我们也称这些功能模块为外设。可通过编程将I/O口与这些外设建立起连接关系,以便这些外设与CC2530芯片外界电路进行信息交换。需要注意的是,不能随意指定某个I/O口连接到某个外设,它们之间有一定的对应关系,可参考附录B,具体知识将在后续任务中学习。

(3)输入口具备3种输入模式 当CC2530的I/O口被配置成通用输入端口时,端口的输入模式有上拉、下拉和三态三种选择,可通过编程进行选择,能够适应多种不同的输入应用。 (4)具有外部中断能力 当使用外部中断时,I/O口引脚可以作为外部中断源的输入口,这使得电路设计变得更加灵活。

3.I/O端口的相关寄存器 在单片机内部,有一些具有特殊功能的存储单元,这些存储单元用来存放控制单片机内部器件的命令、数据或是运行过程中的一些状态信息。这些寄存器统称“特殊功能寄存器(SFR)”,操作单片机本质上就是对这些特殊功能寄存器进行读写操作,并且某些特殊功能寄存器可以位寻址。例如通过已配置好的P1_1口向外输出高电平可用以下代码实现: P1 = 0x02; 或者 P1_1 = 1;

P1是特殊功能寄存器的名字,P1_1是P1中一个位的名字,为了便于使用,每个特殊功能寄存器都会起一个名字。与CC2530的I/O口有关的主要特殊功能寄存器如表2-2所列,其中x取值为0~2,分别对应P0、P1和P2口。

                                                                                CC2530中I/O口相关主要特殊功能寄存器

名称

功能描述

Px

端口数据,用来控制端口的输出或获取端口的输入。

PERCFG

外设控制,用来选择外设功能在I/O口上的位置。

APCFG

模拟外设I/O配置,用来配置P0都作为模拟I/O口使用。

PxSEL

端口功能选择,用来设置端口是通用I/O还是外设I/O。

PxDIR

端口方向,当端口为通用I/O时,用来设置数据传输方向。

PxINP

端口输入模式,当端口为通用输入口时,用来选择输入模式。

PxIFG

端口中断状态标志,使用外部中断时,用来表示是否有中断。

PICTL

端口中断控制,使用外部中断时,用来配置端口中断触发类型。

PxIEN

端口中断屏蔽,用来选择是否使用外部中断功能。

PMUX

掉电信号,用来输出32KHz时钟信号或内部数字稳压状态。

(2)驱动电流 LED工作时的电流不能过大,否则会将其烧坏,同时CC2530的I/O口输入和输出电流的能力是有限的,因此这里需要使用限流电阻R10和R11来限制流电流的大小。红色LED和绿色LED工作时的电压压降约为1.8V,I/O端口的输出电压为3.3V,当LED点亮时其工作电流的大小也就是流过电阻的电流大小。当前电路中电流的大小为: CC2530的I/O端口除P1_0和P1_1端口有20mA的驱动能力外,其他I/O端口只有4mA的驱动能力,在应用中从I/O口流入或流出的电流不能超过这些限定值。


2.按键控制LED应用

3.外部中断应用

4.定时器/计时器应用

5.串口通信应用

6.AD转换应用

7.看门狗应用

8.电源管理应用

9.

10.


(三)试题操作

1.以Basic RF无线点对点传输协议为基础,采用两块ZigBee模块作为无线发射模块和无线接收模块,按发射模块上的SW1键,可以控制接收模块上的LED1灯的亮和灭,实现无线开关LED灯的功能。

要求:

  1. 解压CC2530 BasicRF.rar,打开“light_switch.eww”工程。
  2. 修改硬件抽象层相关代码(如:LED、KEY)。
  3. 修改通信参数:将通信信道RF_CHANNEL设置为26,网络PAN_ID 设置为22。
  4. 使用发射模块上的SW1键控制接收模块上的LED1灯的亮和灭。
  5. 设置appMode = SWITCH或appMode =LIGHT编译工程,分别下载程序到两个ZigBee模块
  6. 测试程序功能

提交材料:

  1. 代码修改结果截图
  2. 工程编译结果截图
  3. 工程中light_switch.c文件

2.以Basic RF无线点对点传输协议为基础,采用2个ZigBee模块(当做节点1和节点2),用一根串口线把节点1与PC机连接起来。再用一根串口线把节点2与PC机相连。实现无线串口通信。

要求:

  1. 使用CC2530_lib库文件创建工程。
  2. 修改通信参数:将通信信道RF_CHANNEL设置为26,网络PAN_ID 设置为22。
  3. 分别给节点1和节点2编译工程,分别下载程序到节点1和节点2。
  4. 打开节点1和节点2对应电脑上的的串口调试软件,设置波特率38400bps、数据位8等参数。
  5. 在节点1的串口调试软件上输入“Hello!你的名字和学号?”,点击发送;
  6. 在节点2的串口调试软件上真实回复本人的姓名和学号。回复的信息要求在节点1上能显示。

提交材料:

  1. 代码修改结果截图
  2. 工程编译结果截图
  3. 节点1和节点2的串口调试软件上的调试结果截图

3.

单播,单播表示网络中两个节点之间进行数据发送与接收的过程,类似于任意两位与会者之间的交流。采用2个ZigBee模块,分别作为协调器和终端,终端采用单播的方式周期性向协调器发送数据,实现单播通信。

要求:

  1. 解压ZStack-CC2530-2.5.1a.rar,打开“SampleApp.eww”工程。
  2. 修改通信参数:将通信信道RF_CHANNEL设置为26,网络PAN_ID 设置为22。
  3. 定义单播地址变量并初始化。
  4. 编写单播发送函数SampleApp_SendPointToPointMessage,发送数据“IOT”。并声明该函数。
  5. 自定义周期性定时事件(周期为3S),实现终端发送数据“IOT”。
  6. 协调器接收到单播数据后,则控制ZigBee模块LED1闪烁3次,闪烁一次周期200ms。
  7. 编译工程,分别给协调器和终端下载程序。

提交材料:

  1. 代码修改结果截图
  2. 工程编译结果截图
  3. 工程中SampleApp.c和SampleApp.h文件

4.

组播,又称多播,表示网络中一个节点发送的数据包,只有与该节点属于同一组的节点,才能收到该数据包。采用2个ZigBee模块,分别作为协调器和路由器,其协调器和路由器的组号设置为1,实现组播通信。

要求:

  1. 解压ZStack-CC2530-2.5.1a.rar,打开“SampleApp.eww”工程。
  2. 修改通信参数:将通信信道RF_CHANNEL设置为26,网络PAN_ID 设置为22。
  3. 定义组播地址变量并初始化。
  4. 编写组播发送函数SampleApp_SendGroupMessage,发送数据“IOT”。并声明该函数。
  5. 自定义周期性定时事件(周期为3S),实现向组号相同的节点周期性发送数据“IOT”。
  6. 节点接收到组播数据后,则控制ZigBee模块LED1闪烁4次,闪烁一次周期200ms。
  7. 编译工程,分别给协调器、路由器(或终端)下载程序。

提交材料:

  1. 代码修改结果截图
  2. 工程编译结果截图
  3. 工程中SampleApp.c和SampleApp.h文件

5.

广播表示网络中一个节点发送的数据包,网络中所有节点都可以收到。采用2个ZigBee模块,分别作为协调器和路由器(或终端),协调器向外周期性地发送数据,路由器(或终端)接收数据,实现广播通信。

要求:

  1. 解压ZStack-CC2530-2.5.1a.rar,打开“SampleApp.eww”工程。
  2. 修改通信参数:将通信信道RF_CHANNEL设置为26,网络PAN_ID 设置为22。
  3. 定义广播地址变量并初始化。
  4. 编写广播发送函数SampleApp_SendPerodicMessage,发送数据“IOT”。
  5. 自定义周期性定时事件(周期为3S),周期调用函数SampleApp_SendPerodicMessage。
  6. 协调器周期发送数据,禁止路由器或终端向外发数据。
  7. 路由器或终端接收到“IOT”, 则控制ZigBee模块LED1闪烁5次,闪烁一次周期200ms。
  8. 编译工程,分别给协调器、路由器(或终端)下载程序。

提交材料:

  1. 代码修改结果截图
  2. 工程编译结果截图
  3. 工程中SampleApp.c和SampleApp.h文件

(四)进阶操作

1.

2.

三、ZigBee技术——实操实例

本章节预计十章,不是基本功能的介绍学习而是以具体项目为基本推动。

(一)智能照明系统设计

1.植物补光灯

2.遮阳帘

(二)温湿度控制系统设计 

1.温湿度传感器

2.加湿器

3. 排风扇

(三)水肥自动喂养系统设计

1.水肥罐体

2.给排水设计

(四)CO2 浓度控制系统设计

1. 二氧化碳传感器

2. 排风扇

(五)智能监控系统设计

1. 监控摄像头

2.红外传感器

(六)人员管理系统设计

1.指纹识别

2.键盘输入

3.人脸识别

4.大门闸机

(七)电力系统设计

1.太阳能板

2.风力发电

3.电力储能组

(八)



四、

(一)

1.

2.

3.

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值