实验4:Zigbee使用非易失性存储器来存储自定义数据 - 新兵训练营(6)

本文档介绍了Zigbee快速入门实验中的第四部分,主要探讨了非易失性存储器(NVM3)在EmberZNet PRO中的应用。通过实验,展示了如何创建和访问Dynamic Tokens,以及如何使用NVM3对象存储和检索数据。内容涵盖了非易失性存储的基础知识,Token API的使用方法,以及如何在系统断电或复位后保存和恢复LED的状态。此外,还讲解了如何访问Manufacturing Tokens以读取生产过程中烧录的制造字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

English | 中文

The article is released under license CC BY-NC-ND 4.0

IoT Boot Camp系列课程是由TorchIoTBootCamp团队发起,广大IoT领域的爱好者共同参与的项目。旨在高效率、高质量地传播IoT领域的相关知识,以促进物与物,人与人,人与信息的连接。
点击这里,观看博主更多有趣视频教程
点击这里,学习更多知识


1. 简介

1.1. 实验内容

Zigbee快速入门——新兵训练营培训的实验环节将涵盖以下四个部分。我们通过这四个部分来向大家逐步展示,如何从零开始构建一个Zigbee应用。

本文档中的实验是“Zigbee快速入门——新兵训练营”系列中的第四部分。

  • 第一部分,由Light构建网络,并使用install code将Switch加入到这个网络。
  • 第二部分,在设备上使用API发送,接收和处理On-Off命令。
  • 第三部分,在Switch端用一个周期事件来执行自定义代码,在我们的实验中是控制LED闪烁。
  • 第四部分,在Switch端使用非易失性存储器来存储自定义数据。

1.2. 目的

本实验演示了EmberZNet Stack上非易失性数据存储的基本用法。此外,本文档中还包含了一些有关NVM, Token的基本知识,以帮助所有人更好地理解该实验。

你将学习

  • 通过本实验课程,您将学习非易失性数据存储的基础知识,Silicon Labs提供的数据存储方案,以及如何使用Tokens来访问非易失性数据存储对象。

你需要做

  • 在本实验中,我们需要解决的一个问题是,在没有EEPROM的EFR32MG12平台上,如何在系统掉电或复位时来保存当前灯的开/关状态。在本实验中,我们提供了使用Tokens来实现此目的的解决方案。
  • 而且,您还需要检索制造商在生产过程中所烧录的制造字符串。

下图说明了该实验的基本流程。
在这里插入图片描述


2. 非易失性存储器的基础知识

2.1. 什么是非易失性存储?

非易失性存储器(NVM)是指当设备掉电后,所存储的数据不会消失的存储器。它通常是指半导体存储芯片中的存储器,包括NAND闪存和固态硬盘(SSD)之类的闪存存储,以及EPROM(可擦除可编程ROM)和EEPROM(电可擦除可编程ROM)之类的ROM芯片。
在Silicon Labs的微处理器和无线射频芯片上,其内部都没有包含EEPROM,NVM的功能是通过闪存来实现的。

2.2. 为什么在EmberZNet PRO中需要非易失性存储?

通常,EmberZNet协议栈和应用程序需要存储一些数据对象,这些对象在电源掉电之后仍需要保留。其中一部分数据是制造数据,只能写入一次,它由生产商在生产过程中写入。另一部分数据,在产品的整个生命周期内都会被频繁地写入和读取,这被称为动态数据。

2.3. Silicon Labs如何实现非易失性数据存储?

总体而言,Silicon Labs为闪存中的非易失性数据存储提供3种不同的实现方案。并且还提供Tokens机制,用于从非易失性数据存储中存储和检索数据。

Persistent Store (PS Store)
PS Store仅可用于除EFR32 2系列以外的所有的蓝牙设备。PS Store的大小为2048字节,并使用两个闪存页进行存储。蓝牙协议栈和应用程序都可以在该区域中存储数据。
由于本文档重点介绍EmberZNet PRO,因此在本文档中我们不会过多介绍PS Store。

SimEEv1和SimEEv2
SimEEv1(模拟EEPROM版本1)或SimEEv2(模拟EEPROM版本2)与EmberZNet PRO,Silicon Labs Thread,Silicon Labs Connect在EM35x和EFR32系列1平台上配合使用。SimEEv1使用两个虚拟页,每个虚拟页包含两个闪存页,而SimEEv2使用三个虚拟页,其中每个虚拟页包含6个闪存页。

NVM3
第三代非易失性存储器(NVM3)数据存储是SimEEv1 / v2和PS Store的替代产品,旨在与EFR32上运行的EmberZNet,Silicon Labs Thread,Connect和Bluetooth应用程序,以及EFM32上运行的MCU应用程序一起使用。
由于NVM3具有更高的可配置性,可以更好地平衡Tokens容量与所需的闪存,并且与DMP(动态多协议)应用程序兼容,因此推荐在EFR32上进行开发时,使用该方案。
在本实验中,我们将使用NVM3进行数据存储。

Token
Token的机制使应用程序可以将定义的数据类型存储在非易失性存储中,并且SimEEv1 / v2和NVM3都可以在Token机制下运行。
Token有两个部分:Token标识和Token数据。Token标识是用于存储和检索Token数据的唯一标识符。通过使用Token标识,应用程序无需知道数据在非易失性存储中的确切位置即可进行检索。
下图说明了Token与非易失性数据存储机制之间的关系。Silicon Labs提供了三种不同的Dynamic Tokens实现:SimEEv1(模拟EEPROM版本1),SimEEv2(模拟EEPROM版本2)和NVM3(第三代非易失性存储)。
在这里插入图片描述

图2-1 非易失性存储和Token

3. 使用Token API访问NVM3对象

在EFR32上进行开发时,我们推荐使用NVM3进行数据存储,因此以下部分将介绍如何使用Token API访问NVM3对象。

3.1. Token类型:Dynamic Tokens和Manufacturing Tokens

根据Token的使用方式,可以将其区分为Dynamic Tokens或Manufacturing Tokens。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值