(一)Zigbee简介和开发环境快速建立(IAR)

1.我不是很清楚控制链条,对于Zigbee不是太清楚

答案:CC2530 芯片上集成了 8051 内核(增强型)

2.性能特点:低速率远距离,这造就了 Zigbee 低功耗信息传输的优势,网上经常谈到两节普通

的 5 号干电池可以使用6 个月到 2 年的时间,免去充电和更换电池的麻烦。

3. 节点所属类别:

①:协调器(Coodinator)②:路由器(Router)③:终端(End Device)

同一网络中至少需要一个协调器,也只能有 1 个协调器,负责
各个节点 16 位地址分配(自动分配)。理论上可以连上 65536 个节点

4.开发环境:IAR

还有个TI协议栈,(ZStack-CC2530-2.5.1a)后面再说什么用

5.仿真器:SRF04EB(驱动自动识别)

6.串口驱动

7.IAR工程文件的快速建立

(二)基础实验(CC2530)

1.基本端口设置

P1SEL (0:普通 IO 口 1:第二功能)
P1DIR (0:输入 1:输出 )
P1INP (0:上拉/下拉 1:三态 )

按照表格寄存器内容,我们对 LED1,也就是 P1_0 口进行配置,当 P1_0 输
出低电平时 LED1 被点亮。所以配置如下:
P1SEL &=~0x01; //作为普通 IO 口
P1DIR |= 0x01; //P1_0 定义为输出
P1INP &=~0X01; //打开上拉

由于 CC2530 寄存器初始化时默认是:
P1SEL =0x00;
P1DIR =0x00;
P1INP =0X00;

2.外部中断

3.

定时器T1(查询方式)

定时器T3(中断方式)

4.串口通信

UART0 对应的外部设备 IO 引脚关系为:

P0_2------RX
P0_3------TX
UART1 对应的外部设备 IO 引脚关系为:

P0_5------RX
P0_4------TX

5.AD控制

6.睡眠唤醒

7.看门狗

8.LCD12864液晶显示

(三)组网演练(zigbee)

什么是 ZigBee协议栈呢?它和 ZigBee 协议有什么关系呢?

通俗点来理解就是协议栈是协议和用户之间的一个接口,开发人员通过使用协议栈来使用这个协议的,进而实现无

线数据收发。

ZigBee无线网络协议层的架构图:

ZigBee的协议分为两部分
IEEE 802.15.4 定义了PHY(物理层)和 MAC(介质访问层)技术规范;

ZigBee联盟定义了 NWK(网络层)、APS(应用程序支持子层)、APL(应用层)技术规范。

ZigBee 协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并
给用户提供 API(应用层),用户可以直接调用。

来个小总结:ZigBee 协议栈已经实现了 ZigBee 协议,用户可以使用协议
栈提供的 API 进行应用程序的开发,在开发过程中完全不必关心 ZigBee 协议的
具体实现细节,要关心的问题是:应用层的数据是使用哪些函数通过什么方式把
数据发送出去或者把数据接收过来的。所以最重要的是我们要学会使用 ZigBee
协议栈。

1、组网:调用协议栈的组网函数、加入网络函数,实现网络的建立与节点
的加入。
2、发送:发送节点调用协议栈的无线数据发送函数,实现无线数据发送。
3、接收:接收节点调用协议栈的无线数据接收函数,实现无线数据接收。

大家可以了解一下下面的关键字:
CCM - Counter with CBC-MAC (mode of operation)
HAL - Hardware Abstraction Layer (硬件抽象层)
PAN - Personal Area Network (个人局域网)
RF - Radio Frequency (射频)
RSSI - Received Signal Strength Indicator (接收信号强度指示)

.

.

.

(四)协议栈工作原理介绍

简图:

Zigbee学习的更多相关文章

  1. zigbee学习:示例程序SampleApp中按键工作流程

    zigbee学习:示例程序SampleApp中按键工作流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:IAR8. ...

  2. zigbee学习:示例程序SampleApp中通讯流程

    zigbee学习:示例程序SampleApp中通讯流程 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 参考链接: http://wjf88223.bl ...

  3. ZigBee学习五 无线温度检测

    ZigBee学习五 无线温度检测 1)修改公用头文件GenericApp.h typedef union h{ uint8 TEMP[4]; struct RFRXBUF { unsigned cha ...

  4. ZigBee学习四 无线+UART通信

    ZigBee学习四 无线+UART通信 1) 协调器编程 修改coordinator.c文件 byte GenericApp_TransID; // This is the unique messag ...

  5. ZigBee学习三 UART通信

    ZigBee学习三 UART通信 在使用串口时,只需掌握ZigBee协议栈提供的串口操作相关的三个函数即可. uint8 HalUARTOpen(uint8 port,halUARTCfg_t *co ...

  6. ZigBee学习二 LED点对点通信

    ZigBee学习二 LED点对点通信 终端上电后,自动连接协调器进行组网,成功后,开始发送LED字符数据.当协调器接收到数据后,终端和协调器的LED1都开始闪烁. 工程搭建和文件添加 步骤这里就省了. ...

  7. ZigBee学习一 任务处理函数_ProcessEvent

    ZigBee学习一 任务处理函数_ProcessEvent //任务处理函数UINT16 GenericApp_ProcessEvent( byte task_id, UINT16 events ){ ...

  8. zigbee学习之路(十五):基于协议栈的按键实验

    一.前言 经过上次的学习,相信大家已经初步学会使用zigbee协议进行发送和接受数据了.今天,我们要进行的实验是按键的实验,学会如何在协议栈里实现按键中断. 二.实验功能 在协议栈上实现按键中断,BU ...

  9. zigbee学习之路(十三):基于协议栈的Usart 实验

    一.前言 这次实验我们来学习基于zigbee的串口通信实验,揭开zigbee神秘的面纱,让大家可以用zigbee协议编制属于自己的程序,这次实验只是串口发送数据,并没有进行无线的数据传输,为的是使大家 ...

  10. zigbee学习之路(十二):zigbee协议原理介绍

    一.前言 从今天开始,我们要正式开始进行zigbee相关的通信实验了,我所使用的协议栈是ZStack 是TI ZStack-CC2530-2.3.0-1.4.0版本,大家也可以从TI的官网上直接下载T ...

随机推荐

  1. Oracle备份恢复之rman备份oracle数据库

    备份需求和rman备份 oracle数据库的备份相关问答: 1)备份时数据库处于何种状态? 备份时数据库处于OPEN状态,这样数据库可以正常工作. 2)备份的数据备份在什么地方? 备份在本地磁盘. 3 ...

  2. Mybatis插入数据后返回主键id

    有时候使用mybatis插入数据后,需要用到记录在数据库中的自增id,可以利用keyProperty来返回,赋值给实体类中的指定字段. 单条记录插入并返回 First, if your databas ...

  3. Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 (需要在运行时生成core dump文件,QMAKE_CC += -g)

    记录一下 Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 需要在运行时生成core dump文件 首先在pro结尾里加入 QMAKE_CC += -g QMAKE_CXX += - ...

  4. Roadblocks--poj3255(次短路)

    题目链接 求次短路的问题: dist[i][0]和dist[i][1]表示从起点1到i的距离和从起点n到i的距离: 次短路要比最短路大但小于其他路: 每条路1--n的距离都可以用dist[i][0] ...

  5. AMD 和 CMD 的区别有哪些

    在说AMD 和 CMD 的区别之前,先说明commonjs,它的回调和amd.cmd的不同于:commomjs加载完了所有模块,才执行回调amd和cmd是加载对应的模块,就可以执行回调中对应的代码 1 ...

  6. Idempotent --------幂等

    1.在某二元运算下,幂等元素是指被自己重复运算的结果等于它自己的元素.例如,乘法下唯一两个幂等实数为0和1.

  7. 第五课 JAVA反射获取对象属性和方法(通过配置文件)

    Service1.java package reflection; public class Service1 { public void doService1(){ System.out.print ...

  8. 前端 html input标签 disable 属性

    该属性只要出现在标签中,表示禁用该控件 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  9. vue.js常用的

    <input v-model.number="age" type="number"> //自动将用户的输入值转为数值类型 <input v-m ...

  10. Ubuntu单用户模式(安全模式)

           说下我遇到的情况,ubuntu服务器,防火墙关闭,连的外网.服务器中毒,病毒自动生成用户,然后病毒进程开启启动,进程启动后,cpu立马占满,服务器立马卡死,本想着服务器启动后通过top命 ...