zigbee协议及开发(3)- 基础知识

2024-06-06 02:58

本文主要是介绍zigbee协议及开发(3)- 基础知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

接下来,看一下Zigbee网络包的基本结构,这个与TCP/IP包结构比较类似,如下:

其中缩写意义(从下层往上):

  • SHR:Synchronization Header 同步头标志
  • PHR:Physical Header(物理层的头)
  • PHY Payload:包负载,即实际内容,后来在TI Packet Sniffer中经常见到这个单词。
  • 综上所示,HR表示Header,因此有MHR(MAC Header),NHR(NWK HEADER)
  • MFR:MAC footer,主要包括一个16位的FCS(Frame Check Sequence,CRC算法的一种),用于数据校验。
  • 应用层复杂一点,AHR即APS Header应用支持子层,包括应用层地址及控制消息;
  • Auxiliary HDR包括相关的安全机制;
  • MIC:Message Integrity Code消息完整性代码 也是用于安全机制的。

总的来说,只有mac层校验和的。APS层有安全机制???这和我捕到的包不一样!!!,需要去测试一下

下面具体描述一下各层的任务:

  1. 物理层:激活硬件发送和接收数据;选择Channel Frequency(11-26共16个信道);
  2. MAC层:负责生成Beacon(信标)及同步相应设备;提供Association 及Dissociation服务;MAC Frame定义了四种结构如下:
    • Beacon frame(缩写DU:Data Unit),其中Beacon Payload对于NWK层是可选域。
    • Data frame(与Beacon不同的是没有了SuperFrame,GTS和Pending Address。同时有了Data Payload,由NWK层产生,也称为MSDU, MAC Service Data Unit)

    • Ack frame(最简单的MAC帧,不包含任何Payload,用于提示成功接收到数据包。)

    • MAC Command Frame(MAC Commands包括Association Request或者Data Request )

以TI Sniffer抓到的数据包为例,显示的包格式如下(其中不同的颜色显示了不同的帔类型):

其中,左边是MAC层(包括时间、长度及Frame Control字段,比如上面类型是Data,因此是Data Frame;还有系列号及源目的地址),中间黄色显示MAC Payload,右边蓝色显示NWK数据信息。

3. 网络层:负责形成网络及路由信息的建立。其中路由信息由协调器及路由节点建立,而终端节点不负责这个。此外,协调器的NWK层还负责建立新的网络及选择网络拓扑(星形,树形及网状结构)、分配节点地址等功能。(NWK层我们先要想一想如何在透传的情况下去实现出来)

4. 应用层:主要是提供Application Objects,即应用实体,每个设备可以提供多达240个AO(端点和端口,HTTP是80端口,FTP是20端口的,最上层的数据我有了分析,而不仅仅是发给他而已。绑定的话分为端点与端点的绑定,地址与地址(设备与设备)的绑定),感觉有点类似TCP/IP中的端口概念。Zigbee标准提供用Application Profile(AP)来开发一个应用。一个AP是关于特定应用消息格式和处理行为的一组规范,这样做的好处是提供不同应用间的互操作性(Interoperability),相关应用程序间的标准化。

 

最后,要提到的一点是上述Frame最后的16Bits的CRC校验码是用的ITU方法,以两个多项式系数相除的余数作为校验码。

这篇关于zigbee协议及开发(3)- 基础知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1034908

相关文章

VSCode开发中有哪些好用的插件和快捷键

《VSCode开发中有哪些好用的插件和快捷键》作为全球最受欢迎的编程工具,VSCode的快捷键体系是提升开发效率的核心密码,:本文主要介绍VSCode开发中有哪些好用的插件和快捷键的相关资料,文中... 目录前言1、vscode插件1.1 Live-server1.2 Auto Rename Tag1.3

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

Python的pandas库基础知识超详细教程

《Python的pandas库基础知识超详细教程》Pandas是Python数据处理核心库,提供Series和DataFrame结构,支持CSV/Excel/SQL等数据源导入及清洗、合并、统计等功能... 目录一、配置环境二、序列和数据表2.1 初始化2.2  获取数值2.3 获取索引2.4 索引取内容2

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建