【经验】多协议无线SoC EFR32MG的ZigBee开发之Token使用教程

2019-02-13 世强
无线SoC,多协议无线SoC,EFR32MG,Silicon Labs 无线SoC,多协议无线SoC,EFR32MG,Silicon Labs 无线SoC,多协议无线SoC,EFR32MG,Silicon Labs 无线SoC,多协议无线SoC,EFR32MG,Silicon Labs

EFR32MG系列是SILICON LABS公司针对多协议推出的无线SoC,单芯片可以支持Sub-G、蓝牙、Thread和Zigbee多种协议。Token是用来存储非易失性数据的即掉电后也能保存,由于在EFR32MG芯片中没有eeprom,所以实际上它们是直接存储在flash上,用flash作为虚拟eeprom(simulated eeprom)的用法。本文档指导大家如何在EmberZNet PRO应用程序中自定义Token来存储非易失性数据。关于Token的概念,请参考“EFR32MG的ZigBee开发之Token概念解析”。本文是针对使用SimEEv1/v2的模拟EEPROM,而不是NVM3。

 

1,使用自定义token需要创建一个自定义的token头文件(xxx.h)名字可以随意取,头文件需要包含下面的内容,这样系统才能知道你是在定义自己的token,这个头文件将包含到工程中,而且对所有工程文件都是可见的。

 

/**

* Custom Application Tokens

*/

// (第一部分)定义token的名字

#ifdef DEFINETYPES

//(第二部分)这里定义所有token用到的类型

#endif //DEFINETYPES

#ifdef DEFINETOKENS

//(第三部分)这里用来定义token的储存信息

#endif //DEFINETOKENS

注意:在头文件中顶部不需要:

#ifndef HEADER_FILE

#define HEADER_FILE

这很重要,因为此头文件会被包含多次以用于不同目的

 

2,先定义token的名字,也就是在上一步建的头文件中的第一部分定义token的名字,如下:

//定义token的名字

#define CREATOR_DEVICE_INSTALL_DATA (0x000A)

#define CREATOR_HOURLY_TEMPERATURES (0x000B)

#define CREATOR_LIFETIME_HEAT_CYCLES (0x000C)

定义名字时都必须以CREATOR_开头后面接自定义token的名字,如上面INSTALL_DATA就是token的名字。后面的16位字节就是这个token的唯一表示码(token key),最高位(第16bit)为系统token(stack token与manufacturing token)保留,所以我们定义的的token key一定要小于0x8000,也就是说这个token key我们可以自己定,只要不大于0x8000并且没有重复就可以了,上面的例子使用了0x000A-0x000C来作为token key。

 

3,定义token使用的类型,如果token是一个特殊的类型如结构体(假如DEVICE_INSTALL_DATA是结构体),那么你就要在这里定义它(在第二部分#ifdef DEFINETYPES与#endif //DEFINETYPES之间)如下:

#ifdef DEFINETYPES

// Include or define any typedef for tokens here

typedef struct {

int8u install_date[11] /** YYYY-mm-dd + NULL */

int8u room_number; /** The room where this device is installed */

} InstallationData_t;

#endif //DEFINETYPES

定义了一个InstallationData_t的结构体,这个将作为token DEVICE_INSTALL_DATA的类型。

 

4,定义token的存储信息,上面已经定义3个token,这里就要定义这三个token要存储的内容(第三部分#ifdef DEFINETOKENS与#endif //DEFINETOKENS之间),如下:

 

#ifdef DEFINETOKENS

// Define the actual token storage information here

DEFINE_BASIC_TOKEN(DEVICE_INSTALL_DATA,

InstallationData_t,

{0, {0}})

DEFINE_INDEXED_TOKEN(HOURLY_TEMPERATURES, int16u, 24, {0})

DEFINE_COUNTER_TOKEN(LIFETIME_HEAT_CYCLES, int32u, 0)

#endif //DEFINETOKENS

定义了DEVICE_INSTALL_DATA为普通类型的token,它的数据类型为InstallationData_t,初始值全为0;定义了HOURLY_TEMPERATURES为indexed token,它是一个16位无符号数数组,长度为24,初始值全为0;定义了LIFETIME_HEAT_CYCLES为一个counter token为32位无符号数据类型,初始值为0。

 

5,将头文件包含的工程里,

在EmberZnet Version: 6.4.1.0版本中,有直接包含用户token头文件的选框,在include的选项里如下图:

 

如果是之前的版本可能没有custom token header的选项卡,也可以直接从上面的code,header file,include paths and libraries选项卡包含进来:

经过以上步骤,就可以使用自定义的token了,如下:

 

basic  token DEVICE_INSTALL_DATA的读写:

InstallationData_t data;

// Read the stored token data

halCommonGetToken(&data, TOKEN_DEVICE_INSTALL_DATA);

// Set the local copy of the data to new values

data.room_number = < user input data >;

MEMCOPY(data.install_date, < user input data>, 0, sizeof(data.install_date));

// Update the stored token data with the new values

halCommonSetToken(TOKEN_DEVICE_INSTALL_DATA, &data);

 

indexed token HOURLY_TEMPERATURES的读写:

int16s getCurrentTargetTemperature(int8u hour) {

int16s temperatureThisHour = 0; /** Stores the temperature for return */

if (hour < 24) {

halCommonGetIndexedToken(&temperatureThisHour,

TOKEN_HOURLY_TEMPERATURES, hour);

}

return temperatureThisHour;

}

void setTargetTemperature(int8u hour, int16s targetTemperature) {

int16s temperatureThisHour = 0; /** Stores the temperature for return */

if (hour < 24) {

halCommonSetIndexedToken(TOKEN_HOURLY_TEMPERATURE, hour,&temperatureThisHour);

}

}

 

counter token LIFETIME_HEAT_CYCLES的用法:

void requestHeatCycle(void) {

/// < application logic to initiate heat cycle >

halCommonIncrementCounterToken(TOKEN_LIFETIME_HEAT_CYCLES);

}

int32u totalHeatCycles(void) {

int32u heatCycles;

halCommonGetToken(&heatCycles, TOKEN_LIFETIME_HEAT_CYCLES);

return heatCycles;

}

上面对各类型的token用法都举了例,注意的是在使用token时,token名都使用了TOKEN_加token名,而不是直接用token名。最后需要注意的是token是基于flash的sim-eeprom来保存数据的,因为flash的擦写次数有限(相比于真正的eeprom),因此尽量避免频繁地去写token。

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 5

本文由Carol提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(5

  • 用户89757 Lv4 资深工程师 2019-09-26
    世强文章《【经验】多协议无线SoC EFR32MG的ZigBee开发之Token使用教程》 我按连接中教程操作,但是我还要定义一个CREATOR_DEVICE_INSTALL_DATA_SIZE而且我的token掉电无法保存,请问这是为什么?文章链接 https://www.sekorm.com/news/17697304.html
    • carol_世强回复: 请问你的工程中哪里会用到CREATOR_DEVICE_INSTALL_DATA_SIZE,是什么提示需要定义这个宏定义呢?另外,你工程是使用模拟EEPROM的插件还是NVM3的插件,上述文章是针对模拟EEPROM的。

      查看全部2条回复

  • billgor Lv4. 资深工程师 2019-07-23
    请问下单个token的数据长度有限制吗?
  • 鹏鹏 Lv7. 资深专家 2019-02-13
    学知识,下载,学习,关注,收藏
  • 沉浮 Lv7. 资深专家 2019-02-13
    收藏,学习一下
  • 好运常伴吾 Lv8. 研究员 2019-02-13
    很好
没有更多评论了

相关推荐

【经验】多协议无线 SOC EFR32MG实现ZigBee的OTA操作指南

EFR32MG系列是Silicon Labs公司推出支持多协议无线 SOC,可以单芯片支持私有协议、BLE5.0、BLE MESH、ZigBee和Thread协议,并且可以单芯片支持Sub-GHz和2.4GHz的频段。由于其超低功耗、高射频性能以及高集成度等特点被广泛应用于智能家居、安防、智能工业等市场。在ZigBee的实际应用中,OTA是必不可少的功能,由于选择的型号不同,配置OT

2018-09-24 -  设计经验 代理服务 技术支持 采购服务

【经验】芯科科技EFR32MG21A020F512IM32无线SOC固件烧录方法及步骤

笔者设计了一款Zigbee无线通信模块,采用Silicon Labs(芯科科技)EFR32MG21A020F512IM32无线SOC作为主芯片,包含512KB Flash、64KB RAM和丰富硬件外设,最大发射功率20dBm,支持Zigbee 3.0协议,主要用于智能家居中的网关、智能开关等产品的无线连接。本文介绍EFR32MG21A020F512IM32无线SOC固件烧录方法及步骤。

2020-03-16 -  设计经验 代理服务 技术支持 采购服务

【经验】EFR32MG21多协议无线SoC的SWO PA03如何复用为普通GPIO口呢?

EFR32MG21 系列是 Silicon Labs 推出的高性价比的多协议无线SoC,用户在进行产品开发时会遇到 GPIO 不够用的情况,此时我们可以通过复用 JTAG 管脚中的 SWO log 输出脚,作为普通 GPIO 使用。本文介绍把 PA03 配置成普通按键的方法。

2020-06-29 -  设计经验 代理服务 技术支持 采购服务

EFR32MG14 Mighty Gecko多协议无线SoC系列产品介绍

描述- 该资料详细介绍了EFR32MG14 Mighty Gecko多协议无线SoC系列产品的特性、应用领域和订购信息。该系列SoC适用于物联网设备,具有低功耗、高性能、多协议支持等特点,适用于智能家居、照明、健康与健身、计量、家庭和楼宇自动化及安全等领域。

型号- EFR32MG14P732F256IM32-B,EFR32MG14P733F256IM48-B,EFR32MG14,EFR32MG14P632F256GM48-B,EFR32MG14P632F256GM32-B,EFR32MG14P733F256GM48-B,EFR32MG,EFR32MG14P732F256IM48-B,EFR32XG14P733F256GM48-AR,EFR32MG14P732F256GM32-B,EFR32MG14P732F256GM48-B

September, 2024  - SILICON LABS  - 数据手册  - Revision 1.6 代理服务 技术支持 采购服务 查看更多版本

研讨会2024年Silicon Labs(芯科科技)无线SoC新产品研讨会

12月26日Silicon Labs(芯科科技)无线SoC新产品研讨会上将重磅推出的SiWx917以及MG2X系列无线SoC。两款产品均集成了先进的无线技术、强大的处理能力和高效的能耗管理,同时还具备了两项关键功能:超低功耗运行以及单芯片Matter over Wi-Fi功能支持。

2024-11-26 -  活动

【选型】Silicon Labs BG22、xG24、BG27无线SoC比较及信驰达无线模块选型指南

作为安全、智能无线技术领域的前沿品牌,Silicon Labs在最近几年陆续推出了EFR32BG22、EFR32xG24、EFR32BG27等系列无线SoC。RF-star作为物联网行业领先的无线通信模组厂商,基于Silicon Labs的无线SoC推出了RF-BM-BG22x系列串口转蓝牙透传模块、RF-BM-BG24x旗舰系列低功耗蓝牙模块和RF-BM-MG24x旗舰系列并发多协议无线模块。

2023-09-07 -  器件选型

2.4GHz无线SoC MG21助力开发SONOFF微型Zigbee USB智能适配器支持路由和快充

SILICON LABS近日宣布,其EFR32MG21(MG21)2.4GHz无线SoC获SONOFF公司选用于开发新型“ZBMicro”智能开关。该产品是SONOFF最新的微型Zigbee USB智能适配器,也是智能家居技术领域的开创性产品。从作为USB设备的智能开关到作为Zigbee路由器和支持快速充电的功能,ZBMicro提供了无与伦比的用户体验,提升了现代智能家居的连接性和便利性。

2024-08-17 -  原厂动态 代理服务 技术支持 采购服务

【经验】创建ZigBee的无线SOC网关工程操作步骤

Silicon Labs公司的EFR32MG系列是针对智能家居市场应用的多协议无线SOC,单芯片支持蓝牙、ZigBee和Thread等协议,尤其是高性价比的系列2产品MG21、MG22,在ZigBee应用方面受到广大工程师的青睐。对于新手来说,使用SOC模式网关是最简单不过,本文就指导大家创建ZigBee的SOC网关工程操作步骤。

2020-04-09 -  设计经验 代理服务 技术支持 采购服务

【经验】芯科多协议无线SoC EFR32MG21在使用PA端口时的注意事项

最近有用户在使用PA口时发现会出现一些异常,而且主要集中在PA01/PA02/PA03/PA04几个低端口,它们在使用时会出现一些异常的波形或无法控制。本文世强来介绍芯科多协议无线SoC EFR32MG21在使用PA端口时的注意事项。

2022-09-26 -  设计经验 代理服务 技术支持 采购服务

【IC】芯科科技MG26多协议SoC功能全面提升,迎合Matter over Thread开发代码增长需求

SILICON LABS近期针对Matter开发的扩展需求发布了MG26多协议SoC新品,通过提升了两倍的闪存和RAM容量以及GPIO,同时添加了人工智能和机器学习(AI/ML)硬件加速器来帮助开发人员满足未来更严苛的Matter物联网应用需求,包括增加对新的设备类型和安全功能增强等的支持。

2024-04-25 -  产品 代理服务 技术支持 采购服务

芯科科技提供Matter一站式开发平台及适用于互联健康与可穿戴设备的超低功耗、多协议无线SoC和模块

Silicon Labs(亦称“芯科科技”)作为Matter和互联健康解决方案的领先供应商,正全力支持及推广健康与保健工作组的项目,通过为开发人员提供完善的Matter一站式开发平台,以及适用于互联健康与可穿戴设备的超低功耗、多协议无线SoC和模块,来加速实现此一愿景。

2024-03-01 -  原厂动态 代理服务 技术支持 采购服务

【经验】如何配置多协议无线SoC EFR32的SPI外设驱动端口映射?

Silicon Labs公司针对物联网应用推出的多协议无线SoC,客户在开发时通常会通过基于开发板的例程代码来修改成自己的产品功能,本文基于开发板的SPI例程指导如何修改客户自定义的SPI的引脚,从而实现客户自己产品的SPI功能。

2020-09-25 -  设计经验 代理服务 技术支持 采购服务

层峰观点:边缘AIoT时代已来,无线SoC生逢其时

芯科科技作为一家全球领先的拥有安全和智能无线技术、先进外围设备和先进计算内核的无线SoC供应商,推出集成AI/ML 加速器的BG24 和MG24 无线SoC,支持Sub-GHz和2.4 GHz低功耗蓝牙射频的FG28 双频SoC应用于边缘AIoT时代的到来。

2023-12-30 -  原厂动态 代理服务 技术支持 采购服务
展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:Mighty Gecko Multi-Protocol Wireless SoC

价格:¥27.0929

现货: 90,767

品牌:SILICON LABS

品类:Wireless SoC

价格:¥31.7756

现货: 88,140

品牌:SILICON LABS

品类:Wireless SoC

价格:¥19.9760

现货: 84,417

品牌:SILICON LABS

品类:Wireless SoC

价格:¥35.3989

现货: 77,347

品牌:SILICON LABS

品类:Wireless SoC

价格:¥25.6438

现货: 44,668

品牌:SILICON LABS

品类:Wireless SoC

价格:¥25.9222

现货: 24,393

品牌:SILICON LABS

品类:Wireless SoC

价格:¥14.7732

现货: 21,248

品牌:SILICON LABS

品类:Wireless SoC

价格:¥18.5821

现货: 16,728

品牌:SILICON LABS

品类:Wireless SoC

价格:¥16.8169

现货: 16,220

品牌:SILICON LABS

品类:Wireless SoC

价格:¥15.0516

现货: 14,032

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:SILICON LABS

品类:Wireless SoC

价格:¥15.1400

现货:1,455

品牌:SILICON LABS

品类:Switch Hall Effect Magnetic Position Sensor

价格:¥2.2924

现货:126,000

品牌:SILICON LABS

品类:Light Sensor

价格:¥20.3400

现货:28,003

品牌:SILICON LABS

品类:8位MCU

价格:¥4.9000

现货:12,000

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥10.1700

现货:10,000

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥3.7900

现货:3,451

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥11.1200

现货:1,201

品牌:SILICON LABS

品类:8 BIT MCU

价格:¥16.8500

现货:550

品牌:SILICON LABS

品类:8位MCU

价格:¥56.0000

现货:550

品牌:SILICON LABS

品类:8位MCU

价格:¥5.1900

现货:396

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

物联网天线方案设计/虚拟天线芯片方案设计

Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。

最小起订量: 2500 提交需求>

卫星定位天线定制

可定制卫星定位天线协议:GPS、北斗、伽利略 (Galileo) 、格洛纳斯(GLONASS)卫星定位;增益:5~25dBi;驻波比:≤1.5;接口连接器:IPEX:1~5代IPE、SMA接口/公头等。

最小起订量: 1000 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面