Day1 : zigbee简介+开发环境搭建

Zigbee 简介

  • 什么是 Zigbee
    • 无线传感网络的无线通信技术可以采用zigbee,蓝牙,wifi和红外等。
    • Zigbee技术是一种 短距离低复杂度低功耗低成本低数据速率 的双向无线通信技术,是一组基于IEEE802.15.4无线标准研制开发的有组网,安全和应用软件方面的通信技术。
  • Zigbee 的产生
    • Zigbee2007协议(紫蜂协议) —— 蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来传递信息。

Zigbee 无线传感网络的特点

与其他无线通信协议相比,Zigbee 无线通信网络具有协议复杂度程度低资源要求少等特点,具体如下。

  1. 低功耗
    • 低功耗是 ZigBee 的一个显著特点。由于工作周期较短、收发信息功耗低且采用了睡眠的工作模式们可以确保2节5号电池支持长达6个月到2年的使用时间。由于不同的应用具有不同的功耗,因此具体的使用时间还受到具体应用场合的影响。
    • 同一块电池,ZigBee的待机时间更长。
  2. 低成本
    • 协议简单且所需的存储空间小,这极大地降低了 ZigBee 的成本。每块芯片价格仅 2~5美元,而且 ZigBee 协议是免专利费。
    • 实际开发中经常要考虑到的一个问题,就是低成本问题。至关重要的优点。
  3. 延迟短
        ZigBee 无线传感网络的通信延迟和从睡眠状态激活的延迟都非常短。设备搜索延迟为30ms,休眠延迟为15ms,活动设备信道接入延迟为15ms。这样,一方面节省了能量消耗,另一方方面更适用于对延迟敏感的场合。
  4. 数据传输速率低
    • ZigBee 无线传感网络的数据传输速率为10~250kbit/s,专注低传输应用,数据传输可靠性高;采用碰撞避免机制,
    • 数据吞吐量小。
  5. 网络容量大
        一个 ZigBee 设备可以与254个设备相连接,一个ZigBee网络可以容纳 65 536 个从设备和一个主设备,一个区域内可以同时存在100个 ZigBee 网络。网络有星状、树状和网状网络结构。在有节点加入和撤出时,网络具有自动修复功能。
  6. 有效范围小(短距离)
    • ZigBee 无线传感网络的有效覆盖范围在 10~200m,具体根据实际发射功率的大小和应用模式而定。
    • 功率只要开到足够大几公里也是没问题的。例如:亿百特的 Zigbee解决方案 E18-2G4Z27SI,27dBm,2.4G,2500m。
  7. 工作频段灵活
        ZigBee 无线传感网络的工作频段为2.4GHz(全球)、868MHz(欧洲)和 915MHz(美国),均为免执照频段。
  8. 兼容性好
        ZigBee 无线传感网络与现有的控制网络标准无缝集成;通过网络协调器(Coordinator)自动建立网络,采用CSMA-CA方式进行信道的存取;为了传递的可靠性,提供全握手协议。
  9. 安全性高
        ZigBee 提供了数据完整性检查和鉴权功能,加密算法采用 AES-128,同时各个应用可以灵活确定其安全属性。
  10. 协议套件紧凑而简单
    • ZigBee 具体实现的要求很低。Zigbee 套件需要8位微处理器,如80C51;全协议栈套件需要32KB的ROM;最小协议栈套件大约4KB的ROM。
    • 低复杂度,便于学习开发。

ZigBee 无线传感网络的应用范围

  • 智能家居 - 对家用电器的控制和家庭娱乐系统的管理。
  • 楼宇自动化 - 整合并集中管理照明,采暖,制冷和安全和采集周围环境。
  • 工业自动化 - 利用传感器采集工业生产过程中的数据并进行分析和处理,提高工业生产的安全性。
  • 医学领域 - 将借助于各种传感器和ZigBee网络,准确而且实时的检测每隔病人的血压,体温和心跳速度等信息。养老院……
  • 环境监测 - 水污染检测、空气质量检测、精细农业操作等
  • 安全防卫 - 目标跟踪与定位

ZigBee 协议体系结构

  • 我们在学习网络的时候了解到网络的软件架构是按照分层的思想设计的,每一层负责不同的功能,如典型的有OSI协议参考模型以及TCP/IP协议模型。
      低耦合高内聚
OSI 协议模型
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
TCP/IP 协议模型
应用层
传输层
网络层
网络接口层
  • ZigBee协议也是在OSI参考模型上,结合无线网络的特点,采用分层想想实现的。
ZigBee 协议模型定义
应用层
应用支持子层Zigbee 联盟
网络层
--------------
介质访问层IEEE802.15.4
物理层规范定义的

Zigbee 的信道 Channel

  • 在2.4GHz频段,同有16个信道,信道通信速率为250kbit/s,,11~26
  • 在915MHz频段,同有10个信道,信道通信速率为40kbit/s,1~10
  • 在896MHz频段,同有1个信道,信道通信速率为20kbit/s,0
Mon 06 Mon 13 信道0 信道1~10 信道11~26 信道分布
  • Zigbee 无线传感器网络信道分布
  • 信道分布表格(新手不用看)
  • 2.4GHz频段日益受到重视。

Zigbee 的网络号 PANID

  • Zigbee协议使用一个16位的个域网络标识符(Personal Area Network ID, PADNID)来标识一个网络。
  • Z-Stack 允许用两种方式配置PANID。范围从 0x0000~0xFFFF
    • 当 ZDAPP_CONFIG_PAN_ID值不设置为0XFFFF时设备建立或加入网络的 PAN ID 由 ZDAPP_CONFIG_PAN_ID 指定;
    • 如果设置ZDAPP_CONFIG_PAN_ID 为0xFFFF,那么设备就将建立或加入一个“最优”的网络。
  • PANID的出现一般是在确定信道之后。
  • PANID 针对一个或多个应用的网络,用于区分不同的Zigbee网络,一般是Mesh或者Cluster Tree 两种拓扑结构之一。
  • 所有节点的PANID唯一,即一个网络只有一个PANID,它是由PAN协调器生成的,PANID是可选配置项用来控制Zigbee路由器和终端节点要加入那个网络。
  • 文件f8wConfig.cfg可以设置为0x0000~0x3FFF之间的一个值。协调器使用这个值,作为它要启动的网络的PANID。而对于路由器节点和终端节点来说,只要加入一个已经用这个参数配置了PANID的网络。如果要关闭这个功能,只要将这个参数设置为0xFFFF。

Zigbee 的地址

  • 在Zigbee无线传感网络中,节点有两个地址。
    • 一个是物理(IEEE或扩展)地址,每个CC2530单片机的IEEE在出厂时就已经定义好了(当然,在用户学习阶段可能通过编程软件 SmartRF Flash Programmer 修改设备的IEEE地址)。
      • 当一个Zigbee节点需要加入网络时,其物理地址必须不能与现有网络节点的物理地址有冲突,并且不为0XFFFF。
    • 另一个是网络地址(16位)。该地址是在设备加入网络时,按照一定的算法计算得到并分配给加入网络的设备。网络地址在某个网络中是唯一的, 16位短地址主要有两个功能:
      1. 在网路中标识不同的涉笔;
      2. 在网络数据传输时指定目的地址;

ZigBee 的设备类型

  • zigbee 标准将网络节点按照功能划分为协调器(Coordinatior),路由器(Router)和终端设备(EndDevice)。

  • 协调器:

    • 启动和配置网络,一个ZigBee网络只能有一个协调器。
    • 为每个设备分配一个唯一的网络地址。
    • 为整个网络选择一个唯一的16的 PAN ID(个人局域网标识符 ) ,通过这个ID,网络中的设备就可以通过网络地址来互相通信了。
    • 初始化,终止,转发网络中的消息,协调器可以与此网络中的所有路由节点或者终端节点通信。
  • 路由器(Router):

    • 保持间接寻址用的绑定表格,支持关联,同时还能设计信任中心和执行其他活动。(新手看不懂)
    • 允许设备加入网络,扩展网络覆盖的物理范围和数据包路由的功能。
    • 负责数据的转发功能,一个路由节点可以与若干个路由节点或终端节点通信。
  • 终端设备(End Device):

    • 主要负责无线网络数据的采集,一般数量比较多。

Zigbee 路由器是一种支持关联的设备,能够将消息转发到其他设备。 Zigbee网格或树型网络可以有多个Zigbee路由器。Zigbee星型网络不支持Zigbee路由器。

  Zigbee 终端设备可以执行它的相关功能,并使用Zigbee网络到达其他需要与其通信的设备,它的存储容量要求最小,其可以实现ZigBee低功耗设计。

  拿班级举个例子,PAN ID 就是班级号,每个设备的网络短地址就是班级里学生的学号,协调器就是班长。
 路由器可以允许其他设备加入班级,可以使班级变得更宽。小组长?
 终端设备经常挂一些传感器,可执行器。

 上述 3 种设备根据功能完整性可分为全功能设备(Full Funtional Device,FFD)和精简功能设备(Reduce Function Device,RFD)。其中FFD可作为协调器、路由器和终端设备,而RFD只能用于终端设备。一个FFD可以与多个RFD或多个其他FFD通信,而一个RFD只能与一个FFD通信。

Zigbee 协议与协议栈

  • 基于zigbee2007无线网络开发,需要对应的硬件和软件支持。在硬件方面,以TI公司推出的CC2530片上系统为代表;软件方面,与CC2530对应的是TI推出的 Z-Stack协议栈。
  • 协议栈是协议的具体实现

zigbee 开发套件

  • 806实验室中的黑色板。
      • TODO(tonghua):硬件介绍。

Zigbee 开发环境搭建

IAR、SmartRF及Z-stack安装

  • 略,国赛培训的时候已安装。

新建一个工程

  1. 新建.ewp.eww文件,一个工作空间可以有多个工程文件。加入.c.h、文件。
  2. empty project

工程设置

  1. AltF7参数配置。
    • 将“General Options” -> “Target” 选项中的“Device”,选择为TI公司的CC2530.
    • “Data model”选择“Large”,“Calling cinvention”选择“XDATA”
  2. Linker设置(配置输出.hex文件)
    • “Output”选项卡,在“Fromat”里选择“Allow C-SPY-specific extra outpue file”复选框
    • “Extra output”选项卡、
      • 选择“Generate extra output file”
      • 选择“Override default”
      • 将后缀改为.hex
      • “format”设置为"intel-extended"
      • i,i,Enter
  3. C/C++ Compiler配置
    • “Preprocessor”预编译
      • “include paths”
      • “Defined symbols”
      • “Ignore Standard include directories” 不勾选
      • $ TOOLKIT_DIR $ :IAR安装路径的8051文件夹下
      • $ PROJ_DIR $:包含文件的路径在工程文件中,也就是和eww文件和ewp文件同目录。
      • “…”表示返回上一级文件夹。
      • "\文件夹"表示进入文件夹。

流水灯实验

#include "ioCC2530.h"

#define LED1 (P1_1)	// D4
#define LED2 (P1_0)	// D3
#define LED3 (P1_4)	// D6
#define LED4 (P1_3)	// D5
#define LEDS 4

void delay(unsigned int ms);

void delay(unsigned int ms)
{
	// """
	// 延迟函数
	// 参数1 延迟时间(ms)
	// """
	unsigned int i;
	unsigned char j;
	for( i=0; i<ms; i++ )
	{
		for ( j=0; j<240; j++ )
		{
			asm("NOP");
			asm("NOP");
			asm("NOP");
		}
	}
}

void ledInit()
{
	// """
	// 初始化led
	// """
	// 默认为普通输入
	P1DIR |= (1<<0)|(1<<1)|(1<<3)|(1<<4);
	LED1 = LED2 = LED3 = LED4 = 0;
}

void main()
{
	unsigned char flow[4] = {(1<<1), (1<<0), (1<<4), (1<<3)};
	signed char i;
	ledInit();
	while(1)
	{
		for(i=0; i<LEDS; i++){
			P1 = flow[i];
			delay(1000);
		}
		
		for(i=i-1; i>=0; i--){
			P1 = flow[i];
			delay(1000);
		}
	}
}

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单片机课程设计-zigbee+ds18b20的无线单片机温度计: 摘 要 本次单片机课程设计本人设计了智能数字温度计,其功能主要有,可以测试温度,精确到小数点后三位;其次还附加了时钟功能,其可以显示秒到年的具体时间;并且本人还利用了zigbee无线传输模块,将采集到的温度值无线发送到电脑上。。。。具体设计在下面详细分析。 关键词:温度计;ds18b20,zigbee模块,ds1302 ,89c52 1 课题背景 1.1 系统设计 本课程设计的任务是设计一个数字温度计。由于在生产生活中都有很多领域需要测量温度,所以温度计的好坏即测量灵敏度,测温范围,稳定度以及实用性和适用性就显得尤为重要。传统温度计通常利用固体、液体、气体受温度的影响而热胀冷缩等的现象为设计的依据,因此这种方法无论从设计原理还是视觉读数都有很大的误差。本次课程设计以DS18B20作为数字温度传感器,其具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,可以大大提高测量温度的精度,并且该设计还具备了无线传输功能,采集到的温度可实时地传送到电脑,有利于对温度设备的远程监控,和远程控制,这是未来智能设备(包括智能家居)的发展方向。。。 1.2 总体方框图 现将系统模块总体设计框图列于下图1中: 图1 总体设计方框图 2 设计方案简述 2.1数字温度计设计方案论证 2.1.1方案一 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温 度变化的电压或电流采集过来,进行A/D 转换后,就可以用单片机进行数据的处理,在显示 电路上,就可以将被测温度显示出来,这种设计需要用到A/D 转换电路,其中还涉及到电阻 与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的 影响出现较大的偏差。 2.1.2 方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常 容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测 温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统 的再扩展,满足设计要求。 从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设 计也比较简单,故采用了方案二。 2.2 DS18B20数字温度传感

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值