zigbee介绍

  晚上安装IAR for 51,一直提示not for this host,后来才发现在win7下破解机和安装包均需要用管理员身份运行。之前一直只是运行了安装包。

--------------------------------------------------------------------------------------------------------------------------------------------------------

  

一、zigbee简介:

0zigbee的由来

在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷。对工业,家庭自动化控制和遥测遥控领域而言,蓝牙技术显得太复杂,功耗大,距离近,组网规模太小等,而工业自动化对无线通信的需求越来越强烈。正因此,经过人们长期努力,Zigbee协议在2003年中通过后,于2004正式问世了。

1、 什么是zigbee:

zigbee是一个由可多到65000个无线数传模块组成的一个无线数传网络平台,十分类似现有的移动通信的CDMA网或GSM网,每一个zigbee网络数传模块类似移动网络的一个基站,在整个网络范围内,它们之间可以进行相互通信;每个网络节点间的距离可以从标准的75米,到扩展后的几百米,甚至几公里;另外整个zigbee网络还可以与现有的其它的各种网络连接。

每个Zigbee网络节点(FFD和RFD)可以可支持多到31个的传感器和受控设备,每一个传感器和受控设备终可以有8种不同的接口方式。可以采集和传输数字量和模拟量。

简单的说,zigbee就是一种通讯方式,作用就是构建无线局域网。若此局域网用于传感器数据收集、监控,此局域网叫无线传感器网络。

2、 什么时候使用zigbee:

(1).需要数据采集或监控的网点多;

(2).要求传输的数据量不大,而要求设备成本低;

(3).要求数据传输可性高,安全性高;

(4).设备体积很小,不便放置较大的充电电池或者电源模块;

(5).电池供电;

(6).地形复杂,监测点多,需要较大的网络覆盖;

(7).现有移动网络的覆盖盲区;

(8).使用现存移动网络进行低数据量传输的遥测遥控系统。

(9).使用GPS效果差,或成本太高的局部区域移动目标的定位应用。

3、zigbee 技术的特点

省电:两节五号电池支持长达6个月到2年左右的使用时间。

可靠:采用了碰撞避免机制,同时为需要固定带宽的通信业务预留了专用时隙,避免了发送数据时的竞争和冲突;节点模块之间具有自动动态组网的功能,信息在整个Zigbee网络中通过自动路由的方式进行传输,从而保证了信息传输的可靠性。

时延短:针对时延敏感的应用做了优化,通信时延和从休眠状态激活的时延都非常短。

网络容量大:可支持达65000个节点。

安全:ZigBee提供了数据完整性检查和鉴权功能,加密算法采用通用的AES-128。

高保密性:64位出厂编号和支持AES-128加密。

二、zigbee硬件支持:

   1、实现方案:

目前ZigBee的实现方案主要有三种:

(1)、MCU和RF收发器分离的双芯片方案:

如: TI CC2420+MSP430 、FREESCLAE MC13XX+GT60

(2)、集成RF和MCU的单芯片SOC方案:

如:TI CC2530 、ST STM32W108、FREESCALE MC1321X 、EM250。

(3)、ZigBee协处理器和MCU的双芯片方案

如: JENNIC SOC+EEPROM、EMBER 260+MCU

2、 cc2530芯片介绍:

(1)、IO口介绍:QFN40封装,工作电压为2v-3.6v(3.3v为推荐电压)。其中有21个IO口(P0 8脚,P1 5脚,P2 8脚),这21个IO口即可作为普通IO口,也可作为片上外设,由对应的寄存器控制。

(2)、寄存器介绍:P0SEL、P1SEL、P2SEL,均为8位,每一位控制对应的IO口是片上外设还是普通的IO口;P0DIR、P1DIR、P2DIR,均为8位,每一位控制对应的IO口是输入还是输出;P0INP、P1INP、P2INP,都为8位,控制对应的IO口是上拉\下拉或者三态,其中P1NIP的多余三位控制P0,P1,P2为上拉还是下拉。

(3)、例子:用cc2530使LED灯闪烁

#include <ioCC2530.h>

#define uint unsigned int

#define uchar unsigned char

//定义控制LED灯的端口

#define LED1 P1_0   //定义LED1为P10口控制

#define LED2 P1_1   //定义LED2为P11口控制

//函数声明

void Delay(uint);              //延时函数

void Initial(void);             //初始化P1口

/****************************

//延时函数

*****************************/

void Delay(uint n)

{

uint i,t;

for(i = 0;i<5;i++)

for(t = 0;t<n;t++);

}

/****************************

//初始化程序

*****************************/

void Initial(void)

{

P1DIR |= 0x03; //P1_0、P1_1定义为输出

LED1 = 1;       //LED1灯熄灭

LED2 = 1;    //LED2灯熄灭

}

/***************************

//主函数

***************************/

void main(void)

{

Initial();              //调用初始化函数

LED1 = 0;           //LED1点亮

LED2 = 0;           //LED2点亮

while(1)

{

LED1 = !LED1;  //LED1闪烁

Delay(50000);

}

}

3、 zigbee通讯基本概念

(1)、信道:2.4 GHz的射频频段被分为16个独立的信道(2405--2480)。每一个设备都有一个DEFAULT_CHANLIST的默认信道集。协调器扫描自己的默认信道集并选择一个信道上噪声最小的信道作为自己所建网络的信道。终端节点和路由节点也要扫描默认信道集并选择一个信道上已经存在的网络加入。

(2)、IEEE物理地址:每个ZigBee设备都有一个64位的IEEE长地址,即MAC地址。物理地址是在出厂时候初始化的。它是全球唯一的。当一个zigbee节点加入网络时候,它的IEEE地址不能与网络中现有节点的IEEE地址冲突且不能为0xFFFFFFFFFFFFFFFF。

(3)、网络地址:网络地址也称短地址,通常用16位的短地址来标识自身和识别对方,对于协调器来说,短地址始终为0x0000,对于路由器和节点来说,短地址由其所在网络中的协调器分配。

(4)、PAN ID:PANID指网络编号,用来区分不同的ZigBee网络。协调器是通过选择网络信道及PANID来启动一个无线网络的。PANID的有效范围为0--0x3FFF。

(5)、设备类型:

Coordinator(协调器):

协调器负责启动整个网络。它也是网络的第一个设备。协调器选择一个信道和一个网络 ID(也称之为 PAN ID,即 Personal Area Network ID),随后启动整个网络。

Router(路由器):

路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的儿子终端设备的通讯。

End-Device(终端设备):

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

三、zigbee软件支持:

   1、zigbee软件协议栈:

(1)、freakz协议栈和contiki操作系统

(2)、msstatePAN协议栈(精简版ZigBee协议栈)

(3)、EmberZNet协议栈(ST)

(4)、BeeStack(Freescale )

(5)、SimpliciTI协议栈(TI)

(6)、Z-Stack协议栈和OSAL操作系统(TI)

(7)、TinyOS操作系统

 

2、Z-stack协议栈的介绍:

协议栈就是符合某一些格式进行数据打包、解开数据包以及一些其他功能的程序,我们在协议栈中加入自己的程序。协议栈中包括OSAL,OSAL的作用是可以将面向过程的程序进行封装成任务,方便我们的调用和程序的编写。

 

 

3、任务的介绍:

(1)每个任务有一个全局变量,也就是taskID,用以任务间的区分。

(2)每个任务间用全局变量tasksEvents来通讯

(3)每个任务有一个任务处理函数,用taskArr[id]的十六位地址标志

 

4、 任务的初始化:

Mainàosal_init_system()àosalInitTask()

|àosal_start_system()

OSAL_GenericApp

--|tasksArr[]àGenericApp_ProcessEvent

--|osalInitTasks(void)à GenericApp_Init( taskID )

|àtasksEvents

GenericApp

--|GenericApp_Init( byte task_id )

--|GenericApp_ProcessEvent( byte task_id, UINT16 events )

任务的初始化就是给每个任务分配taskID,tasksEvents,taskArr[id]

5、 任务的执行:

void osal_start_system(void)

{

for(;;) // Forever Loop

{

uint8 idx = 0;

Hal_ProcessPoll();//这里是轮训任务队列,并检查是否有某个任务的事件发生

do{

if (tasksEvents[idx]) // Task is highest priority that is ready.

{

break;

}

} while (++idx < tasksCnt);

if (idx < tasksCnt)

{

uint16 events;

halIntState_t intState;

HAL_ENTER_CRITICAL_SECTION(intState);

events = tasksEvents[idx];   //处理该idx的任务事件, 是第idx个任务的事件发生了

tasksEvents[idx] = 0; // Clear the Events for this task.

HAL_EXIT_CRITICAL_SECTION(intState);

//对应调用第idx个任务的事件处理函数,用events说明是什么事件

events = (tasksArr[idx])( idx, events );

//当没有处理完,把返回的events继续放到tasksEvents[idx]当中

HAL_ENTER_CRITICAL_SECTION(intState);

tasksEvents[idx] |= events; // Add back unprocessed events to the current task.

HAL_EXIT_CRITICAL_SECTION(intState);

}

else // Complete pass through all task events with no activity?

{

osal_pwrmgr_powerconserve(); // Put the processor/system into sleep

}

}

}

------------------------------未完,zigbee组网通讯---------------------------------------------------------------------------------------

时间: 2024-09-29 17:33:43

zigbee介绍的相关文章

zigbee学习之路(一):zigbee介绍

一.前言 大家好,我是一名在校的大学生,最近对zigbee非常感兴趣,于是自己从网上买了一款秉火cc2530的zigbee开发板,想通过这个平台来和大家分享自己学习和研究的经历,下面就来简单的介绍下zigbee 二.zigbee定义 ZigBee是基于IEEE802.15.4标准的低功耗局域网协议.根据国际标准规定,ZigBee技术是一种短距离.低功耗的无线通信技术.这一名称(又称紫蜂协议)来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和"嗡嗡"(zig)地抖动翅膀的"舞蹈&

[ZigBee] 15、Zigbee协议栈应用(一)——Zigbee协议栈介绍及简单例子(长文,OSAL及Zigbee入门知识)

1.Zigbee协议栈简介 协议是一系列的通信标准,通信双方需要按照这一标准进行正常的数据发射和接收.协议栈是协议的具体实现形式,通俗讲协议栈就是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议,进而实现无线数据收发. 如图1所示:Zigbee协议分为两部分,IEEE 802.15.4定义了PHY(物理层)和MAC(介质访问层)技术规范:Zigbee联盟定义了NWK(网络层).APS(应用程序支持层).APL(应用层)技术规范.Zigbee协议栈就是将各个层定义的协议都集合在一起,

ZigBee协议基本介绍

ZigBee是一种短距离(10~100米).低速率(20~250Kbps).底成本.低功耗的无线网络技术,主要用于近离无线通讯.能够做到在数千个微小的传感器之间相互协调实现通讯,这些传感器只需要很少的能力,以接力的方式通过无线电波将数据从一个传感器传送到另一个传感器,节点的发射功率和通讯范围都是有限的. ZigBee协议栈版本: ZigBee 2004 ZigBee 2006 ZigBee 2007 ZigBee 2007-pro Technorati 标签: ZigBee   ZigBee协议

[ZigBee] 12、ZigBee之看门狗定时器——饿了就咬人的GOOD DOG

引言:硬件中的看门狗,不是门卫的意思,而是一只很凶的狗!如果你不按时喂它,它就会让系统重启!这反而是我们想要的功能~ 1.看门狗概述 看门狗定时器(WDT,Watch Dog Timer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始倒计数.如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始倒计数.如果看门狗减到0就认为程序没有正常工作,强制整个系统复位.因此可以用看门狗防止程序在跑飞的时候回不到正常模式. 看门狗可用于受到电气噪音.

基于ZigBee与GPRS的农业大棚环境监测系统

近年来随着大棚农业的蓬勃发展,对农业生产的信息化管理成为了一个重要的研究领域.大棚温室内的土壤湿度.环境温湿度.叶面湿度等环境因素对农作物的质量以及稳产.高产有很大的影响.如何实时.有效地获取内部各种环境参数,为种植过程的科学灌溉提供数据支持,进而提高作物产量,增加经济收益,具有重大的意义. 针对上述问题,目前常用的方法是人工巡查和有线数据采集两种.人工巡查方式消耗人力.工作量大,且难以保证数据的实时性与有效性.另一种是采用有线通讯的数据采集方式监测系统,其布线复杂,且受物理线路和环境因素影响大

ZigBee无线应变采集装置

1 水工结构健康监测的应变采集方式 随着大型水利水电工程的陆续建设,对水工建筑物及相关土木工程结构的健康监测也变得越来越重要.特别是近些年来,一些重大事故的警示以及材料技术.计算机技术.通信技术.智能控制技术的发展,都促进了结构健康监测技术的发展和应用. 结构健康监测分为整体监测和局部监测.而无论局部监测还是整体监测,都是以传感器准确采集传输数据为前提和基础,各种结构健康监测的数据采集主要采用的是传统"有线"传感器来实现,尽管这种采集方式具有采集信号准确.抗干扰性好.产品系列化等特点,

ZigBee红外远程监控系统设计

现代安防监控越来越受到重视.它一般由图像采集.传输和存储系统组成.采用高精度的摄像头配合先进的图像处理技术和传输技术.其安防监控性能虽然很好,但也存在投资成本大,实时报警性能差.数据量大,隐蔽性差等缺点.鉴于这些不足,某些应用场合也可以用红外监控作为监控手段. 红外探测器自1800年被首次制作出来以后,经过两百多年的发展,技术已经十分成熟.它是指将不可见的红外辐射光探测出来,并且转化为可测量的信号的技术,具有适应性好,隐蔽性好,保密性强,性能稳定等优点.通过对特定波段的红外射线的探测,就可以实现

[ZigBee] 11、ZigBee之睡眠定时器二

1.前言 上一节讲了Zigbee的睡眠定时器利用外部按键使系统从休眠态唤醒到工作态,其核心在于: 61 void SysPowerMode(uchar mode) 62 { 63 if(mode > 0 && mode < 4) 64 { 65 SLEEPCMD |= mode; //设置系统睡眠模式 66 PCON = 0x01; //进入睡眠模式 ,通过中断唤醒 67 } 68 else 69 PCON = 0x00; //主动/空闲模 通过中断唤醒系统 70 } 其中参数

[ZigBee] 3、ZigBee基础实验——GPIO输出控制实验-控制Led亮灭

1.CC2530的IO口概述 CC2530芯片有21 个数字输入/输出引脚,可以配置为通用数字I/O 或外设I/O 信号,配置为连接到ADC.定时器或USART外设.这些I/O 口的用途可以通过一系列寄存器配置,由用户软件加以实现. I/O 端口具备如下重要特性:    ?? 21 个数字I/O 引脚 ?? 可以配置为通用I/O 或外部设备I/O ?? 输入口具备上拉或下拉能力 ?? 具有外部中断能力. 21 个I/O 引脚都可以用作于外部中断源输入口.因此如果需要外部设备可以产生中断.外部中断