[Ember zigbee] prologue: protocol stack related documentation study notes

Original address: https://blog.csdn.net/tainjau/article/details/90648114

Write in front

  • After thinking about it, I have been engaged in zigbee-related work for nearly a year. During the period, I always wanted to write something, but I didn’t know how to start. It happened to be the zigbee platform I was using. There are some documents on it. Thinking about it, or just take it as the starting point, just take a look at these documents seriously.
  • The zigbee chip (Silicon Lab Ember Zigbee) I use here is currently updated to version 6.5 of its protocol stack. Although our company has not used the version 6.5 protocol stack yet, it is still provided by the version 6.5 protocol stack. Let's explain it in the document.
  • The study notes index is as follows :
name link
[Ember zigbee] Chapter 1: ug103-01-fundamentals-wireless-network study notes Click to jump
[Ember zigbee] Chapter 2: ug103-02-fundamentals-zigbee study notes (on) Click to jump
[Ember zigbee] Chapter 3: ug103-02-fundamentals-zigbee study notes (middle) Click to jump
[Ember zigbee] Chapter 4: ug103-02-fundamentals-zigbee study notes (below) Click to jump
[Ember zigbee] Chapter 5: ug103-03-Application Development Fundamentals: Design Choices Study Notes (Part 1) Click to jump

1. Source of materials

Second, document analysis

  • The documents starting with UG shown in the figure above are all User Guides type documents, so we start from here and see if we can learn more about zigbee related knowledge.
  • This post is mainly a brief description of related documents. In the follow-up, I will take time to conduct in-depth study on some articles that I think I need to know at present. At the moment, it should be mainly based on translation, with some understanding of my own.

2.1、EZSP Protocol Reference Guide – UG100

Describes the EmberZNet Serial Protocol (EZSP), used by a host application processor to interact with the EmberZNet PRO stack running on an NCP over either a SPI or a UART interface.
Describes the frame formats for different EZSP-bound stack activities such as network management, messaging, bootloading, and token access.

  • This document mainly describes the EmberZNet serial protocol (EZSP), which is used by the Host side application processor (such as the gateway) (ezsp) to interact with the EmberZNet PRO stack running on the NCP through the SPI or UART interface. It also describes the frame format of different EZSP binding stack activities, such as network management, messaging, bootloading, and token access.
  • ps:ezsp is a set of protocols implemented by ember. This allows developers to use a more powerful CPU to process application logic, instead of paying too much attention to the underlying protocol processing of zigbee, that is, calling the interface to complete the corresponding operation.

2.2、UART Protocol Reference Guide – UG101

Describes the protocol used by EZSP-UART to reliably carry commands and responses between a host processor and a network co-processor. The topics discussed include a brief overview of Ember-designed ASH (Asynchronus Serial Host) protocol, general ASH frame format, different ASH frames, and their oprations.

  • This document describes the protocol used by EZSP-UART to reliably transmit commands and responses between the host processor and the network coprocessor. Topics discussed include the ASH (Asynchronous Serial Host) protocol designed by Ember, the general ASH frame format, and a brief overview of the different ASH frames and their operations.
  • ps: The main content is to design the serial port protocol of the bottom host and ncp.

2.3、Wireless Networking Fundamentals – UG103-01

Introduces some fundamental concepts of wireless networking. These concepts are referred to in other Fundamentals documents. If you are new to wireless networking, read this document first.

  • This document introduces some basic concepts of wireless networks. These concepts are mentioned in other basic documents. If you are not familiar with wireless networks, please read this document first.
  • Reference article: ug103-01-fundamentals-wireless-network study notes

2.4、Zigbee Fundamentals – UG103-02

Describes the key features and characteristics of a Zigbee solution. It also includes a section on Zigbee 3.0.

  • This document introduces the main features and characteristics of the Zigbee solution. It also includes a section about Zigbee 3.0.
  • ps: The above two documents, UG103-01 AND 02, are still very useful for beginners. Similar to the zigbee-related documents I compiled before, I should use these two documents to explain zigbee later.

2.5、Design Choices Fundamentals – UG103-03

Discusses the major decisions that must be made about which wireless protocol you should use, as well as additional decisions to be made if you are designing a Zigbee solution.

  • This document mainly introduces how to choose which wireless protocol to use during the development process, and other decisions that need to be made when designing a Zigbee solution.

2.6、HAL Fundamentals – UG103-04

Silicon Labs HAL (Hardware Abstraction Layer) is program code between a system’s hardware and its software that provides a consistent interface for applications that can run on several different hardware platforms.
The HAL is designed for developers using EmberZNet PRO and Silicon Labs Thread on the Wireless Gecko (EFR32) portfolio and the EM3x-Based MCU family of products.

  • This document mainly introduces the program code between Silicon Labs HAL (Hardware Abstraction Layer) system hardware and its software, and provides a consistent interface for applications that can run on multiple different hardware platforms. HAL is designed for developers who use EmberZNet PRO and Silicon Labs Thread on the Wireless Gecko (EFR32) product portfolio and EM3x-based MCU series.
  • ps: This document mainly tells us about the naming conventions of hal-related hardware operation interfaces and the calling of some interfaces, such as halInit(), halSleep(), halReboot() and other functions.

2.7、Security Fundamentals – UG103-05

Introduces some basic security concepts, including network layer security, trust centers, and application support layer security features. Discusses the types of standard protocols available in EmberZNet PRO. Coding requirements for implementing security are reviewed in summary. Finally, information on implementing Zigbee Smart Energy security is provided.

  • This document introduces some basic security concepts, including network layer security, trust center and application support layer security functions. Discuss the types of standard protocols available in EmberZNet PRO. Summarizes the coding requirements for implementing security. Finally, it provides information on the implementation of Zigbee Smart Energy security.
  • ps: If you need to know about zigbee encryption, you can read this document, and I will take this document out for study later.

2.8、Bootloading Fundamentals – UG103-06

Introduces bootloading for Silicon Labs networking devices. Discusses the Gecko Bootloader as well as legacy Ember and Bluetooth bootloaders, and describes the file formats used by each.

  • This document describes bootloading of Silicon Labs network devices. Discuss Gecko Bootloader and traditional Ember and Bluetooth bootloaders, and describe the file format used by each bootloader.
  • ps: This document focuses on the zigbee bootloader-related equipment, which loads the bootloader, which can be used to support remote upgrade (OTA) and other functions.

2.9、Non-Volatile Data Storage Fundamentals – UG103-07

Introduces non-volatile data storage using flash and the three different storage implementations offered for Silicon Labs microcontrollers and SoCs: Simulated EEPROM, PS Store, and NVM3.

  • This document introduces non-volatile data storage using flash memory and three different storage implementations for Silicon Labs microcontrollers and SoCs: emulated EEPROM, PS storage and NVM3.
  • ps: If you need to understand the storage options on the soc, you can take a closer look.

2.10、Tools Fundamentals – UG103-08

Provides an overview of the toolchain used to develop, build, and deploy EmberZNet and Silicon Labs Thread applications, and discusses some addition tools and utilities.

  • This document introduces the tool chain used to develop, build and deploy EmberZNet and Silicon Labs Thread applications, and discusses some additional tools and utilities.

2.11、ZLL Fundamentals – UG103-09

Compares the ZLL stack and network with the EmberZNet PRO stack and network, with notes about considerations when implementing a ZLL solution. Includes a basic description of ZLL configuration and commissioning, and notes about the interoperability of ZLL and non-ZLL devices.

  • Compare the ZLL stack and network with the EmberZNet PRO stack and network, and provide instructions on considerations when implementing ZLL solutions. It includes a basic description of ZLL configuration and debugging, as well as instructions on the interoperability of ZLL and non-ZLL devices.
  • ps: The ZigBee protocol is usually divided into two parts, one is the ZigBee core protocol stack Core Stack, which is now called ZigBee Pro. The other piece is the ZigBee Profile protocol stack, usually HA, ZLL, and SE are located on the Core stack.

2.12、Green Power Fundamentals – UG103-15

Describes the main features and functions of Zigbee Green Power (ZGP) and a basic ZGP network, including its device types and commissioning process, and how EmberZNet supports the ZGP device types.

  • Introduce the main features and functions of Zigbee Green Power (ZGP) and basic ZGP network, including its device types and debugging process, and how EmberZNet supports ZGP device types.
  • ps: don't know about it at the moment

2.13、Multiprotocol Fundamentals – UG103-16

Describes the four multiprotocol modes, discusses considerations when selecting protocols for multiprotocol implementations, and reviews the Radio Scheduler, a required component of a dynamic multiprotocol solution.

  • Describes four multi-protocol modes, discusses considerations when choosing a protocol for multi-protocol implementation, and reviews the wireless scheduler, which is a necessary component of a dynamic multi-protocol solution.
  • ps: Introduce how to support multiple protocols on a single chip.

2.14、Testing and Debugging Applications for the Silicon Labs EM35x and Mighty Gecko (EFR32MG) Platforms – UG104

Describes strategies for testing and debugging applications, including: hardware and application considerations, initial development testing, and lab testing. For additional information about later stages of programming and testing see application notes AN700, Manufacturing Test Guidelines, and AN718, Manufacturing Test Overview.

  • This document describes the strategy for testing and debugging applications, including: hardware and application considerations, initial development testing and laboratory testing. For additional information on the later stages of programming and testing, please refer to Application Note AN700, Manufacturing Test Guide and AN718, Manufacturing Test Overview.

2.15、Advanced Application Programming with the Stack and HAL APIs – UG105

A companion to the EmberZNet API references, for developers whose applications require functionality not available through AppBuilder and the application framework, or who prefer working with an API. Includes an introduction to the stack API, a discussion of advanced design issues to consider when developing an application using the API, and provides an example application.

  • This document describes the supporting documents of the EmberZNet API reference, which is suitable for developers who cannot use functions through AppBuilder and application frameworks, or developers who prefer to use APIs. It includes an introduction to the stack API, discusses high-level design issues to be considered when developing applications using the API, and provides sample applications.
  • ps: Call related api interfaces for upper-level applications to implement application-level processing.

2.16、ISA3 Utilities Guide – UG107

Describes how to use the standalone ISA3 utilities supplied with EmberZNet PRO and Silicon Labs Thread software. It also gives a brief overview of the various file types that may be used.

  • Introduce how to use the standalone ISA3 utility provided by EmberZNet PRO and Silicon Labs Thread software. It also gives a brief overview of the various file types that may be used.

2.17、EM35x Development Kit User Guide – UG110

Explains how to set up EM35x Development kit hardware and use the Debug Adapter (ISA3). Describes some of the software tools available, along with examples of their use.

  • Explain how to set up the EM35x development kit hardware and use the debug adapter (ISA3). Introduce some available software tools and their usage examples.

2.18、Simplicity Commander Reference Guide – UG162

Describes how and when to use Simplicity Commander’s Command-Line Interface. Only EFR32 is currently supported. EM3xx is not supported at this time.

  • Describe how and when to use Simplicity Commander's command line interface. Currently only EFR32 is supported. EM3xx is currently not supported.

2.19、Silicon Labs Gecko Bootloader User’s Guide – UG266

Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks.

  • This document mainly introduces the advanced implementation of Silicon Labs Gecko Bootloader for EFR32 SoC and NCP, and provides information on how to start using Gecko Bootloader with Silicon Labs wireless protocol stack.

2.20、Switched Multiprotocol User’s Guide – UG267

Provides details about the Silicon Labs switched multiprotocol implementation, including details on the Multiprotocol Stack Interface (MPSI) and data storage issues. Also provides a detailed procedure for using the switched multiprotocol feature.

  • This document mainly provides detailed information about Silicon Labs' switched multi-protocol implementation, including detailed information about Multi-Protocol Stack Interface (MPSI) and data storage issues. It also provides a detailed procedure for using the switched multi-protocol function.

2.21、Dynamic Multiprotocol User’s Guide – UG305

Describes how to implement a dynamic multiprotocol solution.

  • This document mainly describes how to implement dynamic multi-protocol solutions. Roughly speaking, it is to provide a way to make different wireless protocols work reliably and stably in the same system.
  • ps: Such as Bluetooth, zigbee, wireless.

Write in front

  • After thinking about it, I have been engaged in zigbee-related work for nearly a year. During the period, I always wanted to write something, but I didn’t know how to start. It happened to be the zigbee platform I was using. There are some documents on it. Thinking about it, or just take it as the starting point, just take a look at these documents seriously.
  • The zigbee chip (Silicon Lab Ember Zigbee) I use here is currently updated to version 6.5 of its protocol stack. Although our company has not used the version 6.5 protocol stack yet, it is still provided by the version 6.5 protocol stack. Let's explain it in the document.
  • The study notes index is as follows :
name link
[Ember zigbee] Chapter 1: ug103-01-fundamentals-wireless-network study notes Click to jump
[Ember zigbee] Chapter 2: ug103-02-fundamentals-zigbee study notes (on) Click to jump
[Ember zigbee] Chapter 3: ug103-02-fundamentals-zigbee study notes (middle) Click to jump
[Ember zigbee] Chapter 4: ug103-02-fundamentals-zigbee study notes (below) Click to jump
[Ember zigbee] Chapter 5: ug103-03-Application Development Fundamentals: Design Choices Study Notes (Part 1) Click to jump

1. Source of materials

二、文档解析

  • 上图显示的以UG开头的文档,都是Users Guides类型的文档,因此我们从这入手,看能不能再深入的学习一下zigbee相关的知识吧。
  • 本贴主要是对相关文档的一个简要讲述,后续我抽时间对一些我觉得目前需要了解的文章进行深入的学习。然后目前应该是以翻译为主,同时加上自己的一些理解吧。

2.1、EZSP Protocol Reference Guide – UG100

Describes the EmberZNet Serial Protocol (EZSP), used by a host application processor to interact with the EmberZNet PRO stack running on an NCP over either a SPI or a UART interface.
Describes the frame formats for different EZSP-bound stack activities such as network management, messaging, bootloading, and token access.

  • 该文档主要描述了EmberZNet串行协议(EZSP),Host端应用程序处理器(比如网关)使用它(ezsp)通过SPI或UART接口与在NCP上运行的EmberZNet PRO堆栈进行交互。 同时描述不同EZSP绑定堆栈活动的帧格式,例如网络管理,消息传递,引导加载和令牌访问。
  • ps:ezsp是ember实现的一套协议。使得开发者可以使用性能更强的CPU来处理应用逻辑,而不用过分关注zigbee的底层协议处理,即调用接口完成相应的操作。

2.2、UART Protocol Reference Guide – UG101

Describes the protocol used by EZSP-UART to reliably carry commands and responses between a host processor and a network co-processor. The topics discussed include a brief overview of Ember-designed ASH (Asynchronus Serial Host) protocol, general ASH frame format, different ASH frames, and their oprations.

  • 该文档讲述了关于EZSP-UART用于在主处理器和网络协处理器之间可靠地传送命令和响应的协议。 讨论的主题包括Ember设计的ASH(异步串行主机)协议,一般ASH帧格式,不同ASH帧及其操作的简要概述。
  • ps:内容主要还是设计底层host端和ncp端的串口协议。

2.3、Wireless Networking Fundamentals – UG103-01

Introduces some fundamental concepts of wireless networking. These concepts are referred to in other Fundamentals documents. If you are new to wireless networking, read this document first.

2.4、Zigbee Fundamentals – UG103-02

Describes the key features and characteristics of a Zigbee solution. It also includes a section on Zigbee 3.0.

  • 本文档介绍Zigbee解决方案的主要特性和特性。 它还包括一个关于Zigbee 3.0的部分。
  • ps:上述UG103-01 AND 02 这两篇文档对初学者来说还是十分有用的,类似于之前我整理的zigbee相关文档,后期我应该会以这两份文档展开对zigbee的讲解吧。

2.5、Design Choices Fundamentals – UG103-03

Discusses the major decisions that must be made about which wireless protocol you should use, as well as additional decisions to be made if you are designing a Zigbee solution.

  • 本文档主要介绍了在开发过程中,应该怎么选择使用哪种无线协议,以及在设计Zigbee解决方案时需要做出的其他决策。

2.6、HAL Fundamentals – UG103-04

Silicon Labs HAL (Hardware Abstraction Layer) is program code between a system’s hardware and its software that provides a consistent interface for applications that can run on several different hardware platforms.
The HAL is designed for developers using EmberZNet PRO and Silicon Labs Thread on the Wireless Gecko (EFR32) portfolio and the EM3x-Based MCU family of products.

  • 本文档主要介绍了 Silicon Labs HAL(硬件抽象层)系统硬件及其软件之间的程序代码,为可在多个不同硬件平台上运行的应用程序提供一致的接口。 HAL专为在Wireless Gecko(EFR32)产品组合和基于EM3x的MCU系列产品上使用EmberZNet PRO和Silicon Labs Thread的开发人员而设计。
  • ps:这份文档主要告诉我们,hal相关的硬件操作接口的命名规范,和一些接口的调用,比如halInit(), halSleep(), halReboot()之类的函数。

2.7、Security Fundamentals – UG103-05

Introduces some basic security concepts, including network layer security, trust centers, and application support layer security features. Discusses the types of standard protocols available in EmberZNet PRO. Coding requirements for implementing security are reviewed in summary. Finally, information on implementing Zigbee Smart Energy security is provided.

  • 这份文档介绍一些基本的安全概念,包括网络层安全性,信任中心和应用程序支持层安全性功能。 讨论EmberZNet PRO中可用的标准协议类型。 总结了对实施安全性的编码要求。 最后,提供了有关实施Zigbee Smart Energy安全性的信息。
  • ps:如果需要了解zigbee加密相关的,可以看这份文档,后期我也会把这份文档拿出来学习。

2.8、Bootloading Fundamentals – UG103-06

Introduces bootloading for Silicon Labs networking devices. Discusses the Gecko Bootloader as well as legacy Ember and Bluetooth bootloaders, and describes the file formats used by each.

  • 这份文档介绍Silicon Labs网络设备的引导加载。 讨论Gecko Bootloader以及传统的Ember和蓝牙引导加载程序,并描述每种引导加载程序使用的文件格式。
  • ps:这份文档侧重于zigbee bootloader相关的,加载bootloader的设备,可以用于支持远程升级(OTA)等功能。

2.9、Non-Volatile Data Storage Fundamentals – UG103-07

Introduces non-volatile data storage using flash and the three different storage implementations offered for Silicon Labs microcontrollers and SoCs: Simulated EEPROM, PS Store, and NVM3.

  • 这文档介绍使用闪存的非易失性数据存储以及为Silicon Labs微控制器和SoC提供的三种不同存储实现:模拟EEPROM,PS存储和NVM3。
  • ps:如果有需要了解soc上的存储方式的选择,可以认真看一下。

2.10、Tools Fundamentals – UG103-08

Provides an overview of the toolchain used to develop, build, and deploy EmberZNet and Silicon Labs Thread applications, and discusses some addition tools and utilities.

  • 这文档介绍了用于开发,构建和部署EmberZNet和Silicon Labs Thread应用程序的工具链,并讨论了一些附加工具和实用程序。

2.11、ZLL Fundamentals – UG103-09

Compares the ZLL stack and network with the EmberZNet PRO stack and network, with notes about considerations when implementing a ZLL solution. Includes a basic description of ZLL configuration and commissioning, and notes about the interoperability of ZLL and non-ZLL devices.

  • 将ZLL堆栈和网络与EmberZNet PRO堆栈和网络进行比较,并提供有关实施ZLL解决方案时的注意事项的说明。 包括ZLL配置和调试的基本描述,以及有关ZLL和非ZLL设备的互操作性的说明。
  • ps:ZigBee协议通常分为两块,一块是ZigBee核心协议栈Core Stack,现在用的叫ZigBee Pro。另外一块是ZigBee Profile协议栈,通常有HA,ZLL,SE位于Core stack上面。

2.12、Green Power Fundamentals – UG103-15

Describes the main features and functions of Zigbee Green Power (ZGP) and a basic ZGP network, including its device types and commissioning process, and how EmberZNet supports the ZGP device types.

  • 介绍Zigbee Green Power(ZGP)和基本ZGP网络的主要特性和功能,包括其设备类型和调试过程,以及EmberZNet如何支持ZGP设备类型。
  • ps:目前暂不做了解

2.13、Multiprotocol Fundamentals – UG103-16

Describes the four multiprotocol modes, discusses considerations when selecting protocols for multiprotocol implementations, and reviews the Radio Scheduler, a required component of a dynamic multiprotocol solution.

  • 描述了四种多协议模式,讨论了为多协议实现选择协议时的注意事项,并回顾了无线调度器,它是动态多协议解决方案的必需组件。
  • ps:介绍如何在单个芯片上支持多种协议。

2.14、Testing and Debugging Applications for the Silicon Labs EM35x and Mighty Gecko (EFR32MG) Platforms – UG104

Describes strategies for testing and debugging applications, including: hardware and application considerations, initial development testing, and lab testing. For additional information about later stages of programming and testing see application notes AN700, Manufacturing Test Guidelines, and AN718, Manufacturing Test Overview.

  • 本文档描述了测试和调试应用程序的策略,包括:硬件和应用程序注意事项,初始开发测试和实验室测试。 有关编程和测试后期阶段的其他信息,请参阅应用笔记AN700,制造测试指南和AN718,制造测试概述。

2.15、Advanced Application Programming with the Stack and HAL APIs – UG105

A companion to the EmberZNet API references, for developers whose applications require functionality not available through AppBuilder and the application framework, or who prefer working with an API. Includes an introduction to the stack API, a discussion of advanced design issues to consider when developing an application using the API, and provides an example application.

  • 这份文档描述了EmberZNet API参考的配套文件,适用于通过AppBuilder和应用程序框架无法使用的功能的开发人员,或者更喜欢使用API的开发人员。这里面包括对堆栈API的介绍,讨论在使用API开发应用程序时要考虑的高级设计问题,并提供示例应用程序。
  • ps:对于上层应用的人调用相关api接口实现应用层的处理。

2.16、ISA3 Utilities Guide – UG107

Describes how to use the standalone ISA3 utilities supplied with EmberZNet PRO and Silicon Labs Thread software. It also gives a brief overview of the various file types that may be used.

  • 介绍如何使用EmberZNet PRO和Silicon Labs Thread软件提供的独立ISA3实用程序。 它还简要概述了可能使用的各种文件类型。

2.17、EM35x Development Kit User Guide – UG110

Explains how to set up EM35x Development kit hardware and use the Debug Adapter (ISA3). Describes some of the software tools available, along with examples of their use.

  • 说明如何设置EM35x开发套件硬件并使用调试适配器(ISA3)。 介绍一些可用的软件工具及其使用示例。

2.18、Simplicity Commander Reference Guide – UG162

Describes how and when to use Simplicity Commander’s Command-Line Interface. Only EFR32 is currently supported. EM3xx is not supported at this time.

  • 描述如何以及何时使用Simplicity Commander的命令行界面。 目前仅支持EFR32。 目前不支持EM3xx。

2.19、Silicon Labs Gecko Bootloader User’s Guide – UG266

Describes the high-level implementation of the Silicon Labs Gecko Bootloader for EFR32 SoCs and NCPs, and provides information on how to get started using the Gecko Bootloader with Silicon Labs wireless protocol stacks.

  • 这篇文档主要介绍用于EFR32 SoC和NCP的Silicon Labs Gecko Bootloader的高级实现,并提供有关如何开始使用带有Silicon Labs无线协议栈的Gecko Bootloader的信息。

2.20、Switched Multiprotocol User’s Guide – UG267

Provides details about the Silicon Labs switched multiprotocol implementation, including details on the Multiprotocol Stack Interface (MPSI) and data storage issues. Also provides a detailed procedure for using the switched multiprotocol feature.

  • 这篇文档主要提供有关Silicon Labs交换式多协议实现的详细信息,包括有关多协议栈接口(MPSI)和数据存储问题的详细信息。 还提供了使用交换式多协议功能的详细过程。

2.21、Dynamic Multiprotocol User’s Guide – UG305

Describes how to implement a dynamic multiprotocol solution.

  • This document mainly describes how to implement dynamic multi-protocol solutions. Roughly speaking, it is to provide a way to make different wireless protocols work reliably and stably in the same system.
  • ps: Such as Bluetooth, zigbee, wireless.

Guess you like

Origin blog.csdn.net/qq_27575841/article/details/115275069