当前位置: 首页 > news >正文

Zigbee学习

(一)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 (接收信号强度指示)

.

.

.

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

简图:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Ph-one/p/4101399.html

相关文章:

  • 模电之运放篇
  • STM32.SPI(25Q16)
  • STM32.定时器
  • CAN通信(STM32)
  • 触摸屏
  • 超频真的不难!G3258超频4.5GHz全攻略
  • 《将博客搬至51CTO》
  • 小K(wifi)插座剖解
  • WIFI模块对比介绍
  • linux学习笔记《一.烧写篇_android》
  • 串口WIF简单I调试
  • CRC32是什么?
  • 指数增长的领域
  • va_start和va_end使用详解
  • STM32组合设备实现USB转双串口
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【css3】浏览器内核及其兼容性
  • Android 架构优化~MVP 架构改造
  • CODING 缺陷管理功能正式开始公测
  • es6(二):字符串的扩展
  • flask接收请求并推入栈
  • jQuery(一)
  • Js基础知识(一) - 变量
  • Linux各目录及每个目录的详细介绍
  • Meteor的表单提交:Form
  • React-Native - 收藏集 - 掘金
  • SpiderData 2019年2月23日 DApp数据排行榜
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 初探 Vue 生命周期和钩子函数
  • 关于List、List?、ListObject的区别
  • 看域名解析域名安全对SEO的影响
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 智能合约Solidity教程-事件和日志(一)
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 说说我为什么看好Spring Cloud Alibaba
  • ​2021半年盘点,不想你错过的重磅新书
  • #include<初见C语言之指针(5)>
  • #pragma once
  • $.ajax()
  • (9)目标检测_SSD的原理
  • (floyd+补集) poj 3275
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net 受管制代码