【经验】无线SOC EFR32BG22带安全功能的OTA怎么实现?

2023-06-29 世强
蓝牙SOC,EFR32BG22,SILICON LABS 蓝牙SOC,EFR32BG22,SILICON LABS 蓝牙SOC,EFR32BG22,SILICON LABS 蓝牙SOC,EFR32BG22,SILICON LABS

材料准备:

Simplicity studio 5; GSDK 4.2.3; EFR32BG22 EVB(可用BG22模块+jlink烧录器代替)

手机APP:EFR connect,安卓安装包在github下载:EFRConnect - v2.7.0.apk

下载链接:https://github.com/SiliconLabs/EFRConnect-android/blob/master/build/EFRConnect%20-%20v2.7.0.apk

备注:本文涉及到的commander命令和详细的解释,参阅UG162: Simplicity Commander Reference Guide 


生成带安全性能的bootloader: 

1、 选择对应的蓝牙SOC芯片型号,生成“Bootloader - SoC Bluetooth AppLoader OTA DFU”工程。打开工程下面的*slcp文件,在“software component”找到Bootloader Core组件。添加安全特性,沟选:Require signed firmware upgrade files,Enable secure boot。沟选完成后,bootloader对升级固件的要求是需要签名。


2、 编译工程,获得带安全功能的bootloader目标文件hex和s37文件。 

 

生成秘钥

1、 使用Simplicity Commander创建安全密钥,为了便于使用,请将Commander路径(例如SSv5安装在D盘情况下:D:\SiliconLabs\SimplicityStudio\v5\developer\adapter_packs\Commander)

添加到操作系统中的path环境变量中。

2、 在命令行中运行Commander,使用以下命令生成ECDSA-P256签名密钥对(私钥app-sign-key.pem和公钥app-sign-pubkey.pem)和公钥对应的token格式文件(app-sign-pubkey.txt)。后面会通过Simplicity Commander把token格式的签名公钥(app-sign-pubkey.txt)写入到芯片main flash最后一页。 

commander util genkey --type ecc-p256 --privkey app-sign-key.pem --pubkey app-sign-pubkey.pem --tokenfile app-sign-pubkey.txt 

3、 运行Simplicity Commander生成为GBL文件解密的密钥,生成token格式文件,后面写入到芯片main flash最后一页。

commander util genkey --type aes-ccm --outfile app-encrypt-key.txt 

注意:生成key文件的时候,请确保这两个文件名完全相同:app-sign-key.pem,app-encrypt-key.txt,这两个文件再接下来的操作,会被create_bl_files.bat文件使用。 


给蓝牙应用固件签名

由于在bootloader程序中启用了安全引导(签名),因此只能引导已(签名)的应用程序镜像。

1、生成“Bluetooth - SoC Empty”工程,编译获得目标文件。默认的蓝牙广播名称是:Empty Example。

2、将前面生成的key文件:app-sign-key.pem,app-encrypt-key.txt拷贝到蓝牙工程目录下,放在和create_bl_files.bat文件在同一级目录下。

3、进入到create_bl_files.bat文件所在的文件夹,双击bat文件运行,生成OTA升级的GBL文件,这些文件会存放在工程目录下的output_gbl文件夹。把整个output_gbl文件夹拷贝单独存放备用。

4、 在output_gbl文件夹中,找到“application-signed.gbl ”,重命名为:BG22empty-signed.gbl

找到“application.gbl ”,重命名为:BG22empty.gbl 。

5、打开“Bluetooth - SoC Empty“工程中*.slcp文件,打开“CONFIGURATION TOOLS”,选择Bluetooth GATT Configurator打开。在“Device Name” 中修改蓝牙名称为“SEOTA Example”,保存后,重新编译。删除工程目录下的output_gbl文件夹,双击bat文件运行,生成新的OTA升级的GBL文件,把整个output_gbl文件夹拷贝单独存放备用。

把找到“application-signed.gbl ”,重命名为:BG22SEOTA-signed.gbl。此步骤主要是获得新蓝牙名称的固件,用于检验OTA升级是否成功。

 

 

获得带签名的蓝牙固件hex或者s37文件

1、 把BG22empty-signed.gbl文件拷贝到Commander路径下。执行以下命令,把gbl文件转换成hex文件或者s37文件。用于首次BG22芯片首次固件烧录使用。 

commander convert BG22empty-signed.gbl --outfile BG22empty-signed.s37 


测试log

D:\>cd SiliconLabs\SimplicityStudio\v5\developer\adapter_packs\Commander

D:\SiliconLabs\SimplicityStudio\v5\developer\adapter_packs\commander>commander convert BG22empty-signed.gbl --outfile BG22empty-signed.s37

Parsing file BG22empty-signed.gbl...

Writing to BG22empty-signed.s37...

DONE 


烧录固件和密钥

1、 为了测试效果,本次测试我们先把BG22芯片整片的flash擦除。后面的测试无需再擦除flash,直接烧录即可。

2、把bootloader和BG22empty-signed.s37烧录到BG22芯片中。使用EFR connect手机APP搜索蓝牙设备。这个时候会发现一个设备名称为OTA的蓝牙设备,是因为还未烧录签名的公钥到BG22中,bootloader不能引导启动应用程序,此时广播的设备是bootloader中的APPloader在做蓝牙广播。

 

3、烧录签名公钥到BG22芯片中。把app-sign-pubkey.txt文件拷贝到Commander目录下,执行以下命令:

commander flash --tokengroup znet --tokenfile app-sign-pubkey.txt --device EFR32BG22C224F512


log记录:

D:\SiliconLabs\SimplicityStudio\v5\developer\adapter_packs\commander>commander flash --tokengroup znet --tokenfile app-sign-pubkey.txt --device EFR32BG22C224F512

Writing 8192 bytes starting at address 0x0007e000

Comparing range 0x0007E000 - 0x0007FFFF (8 KB)

Programming range 0x0007E000 - 0x0007FFFF (8 KB)

Flashing completed successfully!

DONE 

使用EFR connect手机APP搜索蓝牙设备。这个时候会发现一个设备名称为Empty Example的蓝牙设备,说明带签名的固件已经被正确的引导和运行了。 

测试非签名固件:可以找一个不带签名的原始的BG22蓝牙固件,烧录到BG22芯片中,此时搜索到的蓝牙设备名称是OTA,说明带签名验证的bootloader,对这份固件的签名验证不通过,代码不能运行。


使用带签名固件做OTA固件升级

1、把签名操作所生成的GBL文件复制到手机中:BG22empty.gbl ,BG22empty-signed.gbl,BG22SEOTA-signed.gbl

2、 在手机中打开EFR Connect应用程序。

3、 选择“SCANNER ”选项。

搜索蓝牙设备。找到蓝牙广播名称为“Empty Example”。因为你周围可能还有其他同名的设备在做广告,所以把你的智能手机放在你的设备附近,找到RSSI最高的设备。确保找到你想要设计的设备。

单击“Connect”按钮连接到蓝牙设备。

5、打开右上角 “OTA Firmware”。

选择“partial”、“Reliablity”。

选择BG22SEOTA-signed.gbl

单击Upload。

上传完成后设备会自动重启,您应该会看到新的蓝牙广播名称:SEOTA Example

您可以重复步骤5,选择“BG22empty-signed.gbl”固件,升级完成后会看到蓝牙广播名称为:Empty Example

 

选择非签名固件BG22empty.gbl进行OTA升级。会出现如下错误提示,升级终止。

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

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

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】芯科科技EFR32BG22系列蓝牙SOC修改自定义广播包的思路与具体实例

在蓝牙的实际应用中,往往需要自定义的蓝牙广播包来适应不同的应用环境,本文主要介绍基于SILICON LABS的EFR32BG22蓝牙SOC实现自定义广播数据包的方法。

2023-03-16 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】STUDIO V5中蓝牙SoC EFR32BG22添加串口LOG打印的方法

在调试Silicon Labs蓝牙SoC EFR32BG22时,一般需要添加LOG打印信息,通过串口的方式来判断代码运行是否正常。由于使用RTT功能在打印信息时无法再次在线调试和代码下载,所以直接采用串口的方式更加便捷。

2021-06-30 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】Silicon Labs的蓝牙SoC EFR32BG22如何进行在线的OTA升级?

Silicon Labs的蓝牙SOC EFR32BG目前已经能够支持到蓝牙5.2,工艺升级后的EFR32BG22的功耗能够达到接收4.1mA,0dbm发射功耗3.6mA,休眠功耗低至1.4uA,如此低的功耗,能够大幅延长蓝牙设备的电池续航时间。本文介绍蓝牙SoC EFR32BG22如何进行在线的OTA升级。

2020-06-07 -  设计经验 代理服务 技术支持 现货查询 批量订货

BG24蓝牙SoC具备低功耗、小型化等特性,为CoreHW提供蓝牙RTLS的先进解决方案

Silicon Labs(亦称“芯科科技”)的BG24蓝牙SoC具备低功耗、小型化等特性,并支持蓝牙定位技术包括蓝牙到达角(AoA)和蓝牙信道探测(Channel Sounding),为CoreHW公司提供了最先进的实时定位服务(RTLS) 解决方案,以开发出创新的CoreTag和CoreLocator定位应用产品。

2024-06-21 -  应用方案 代理服务 技术支持 现货查询 批量订货

【应用】EFR32BG22蓝牙SoC用做CGM连续血糖仪主控,单芯片集成MCU和蓝牙5.2

CGM连续血糖仪为了用户体验更好,要做到小而轻,续航时间长,可以通过手机蓝牙连接获取血糖测量数据。Silicon Labs的蓝牙SoC EFR32BG22在单芯片中集成了MCU和蓝牙5.2,可以作为CGM的主控芯片并实现蓝牙数据收发,有丰富的外设。

2021-07-20 -  应用方案 代理服务 技术支持 现货查询 批量订货

Silicon Labs EFR32BG21 蓝牙SoC RCP模式测试-扫描设备

本文介绍测试EFR32BG21 蓝牙RCP模式工作在主模式,用于扫描蓝牙从设备,建立蓝牙连接和收发数据。首先需要准备一台电脑并且已经安装好了linux系统。也可以是windows系统下安装的linux虚拟机。并且已经安装好了蓝牙BlueZ协议栈。

2024-03-01 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】Silicon Labs蓝牙Soc芯片EFR32BG22的蓝牙广播功率设置及注意事项

用户在使用Silicon Labs的蓝牙Soc芯片EFR32BG22实现蓝牙广播功能时,在不同的应用场景中要设置广播的发射功率,有的是为了降低产品的功耗,有的是为了增加或缩短通信的距离。那要如何设置广播时的功耗以及在设置时有哪些需要注意的事项?

2021-12-24 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】EFR32BG22系列蓝牙SOC电池电压与VDD供电电压检测ADC的方法

EFR32BG22作为低功耗蓝牙SOC方案,经常应用于电池供电的方案中,一般采用内部的ADC作为采集通道,内部的输入源作为输入接口,来测试VDD供电电压。本文将讲解电池电压与VDD供电电压检测ADC的方法。

2020-11-28 -  设计经验 代理服务 技术支持 现货查询 批量订货

Silicon Labs EFR32BG21 蓝牙SoC RCP模式测试-广播设备

本文介绍测试EFR32BG21 蓝牙RCP模式工作在从模式,BG21 RCP会发出蓝牙广播,被手机的蓝牙扫描,连接。首先需要准备一台电脑并且已经安装好了linux系统。也可以是windows系统下安装的linux虚拟机。并且已经安装好了蓝牙BlueZ协议栈。

2024-02-29 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】EFR32BG系列蓝牙SoC之低功耗测试操作指导

很多的蓝牙设备都是电池供电的,因此对蓝牙SoC功耗水平测试与评估就非常有必要。Silicon Labs公司提供的蓝牙评估板底板,都带有电流功耗测试功能,搭配Simplicity studio v4开发平台的energy profile功耗测试上位机,非常容易测试出EFR32BG系列蓝牙SoC的功耗水平。我们详细介绍功耗测试需要的软件和硬件以及测试操作。本文就将具体进行说明。

2020-02-20 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】芯科科技EFR32BG22系列蓝牙SOC低功耗优化的相关配置

本文主要介绍Silicon Labs(芯科科技)EFR32BG22系列蓝牙SOC目前所有的低功耗优化的相关配置,实现目标: VDD=3V,VSCALE0=0.9V,温度25℃,EM2模式下深度休眠为1.4μA。

2021-09-27 -  设计经验 代理服务 技术支持 现货查询 批量订货

EFR32BG2x系列蓝牙SoC如何配置外接FEM引脚,驱动FEM?

Silicon Labs公司的EFR32BG21或者EFR32BG2x系列的蓝牙SoC最大可以支持20dBm的发射功率,以及非常优秀的接收灵敏度。本文以BG21评估板SLWRB4181A,基于GSDK 4.4.1,介绍如何快速配置BG21实现FEM适配。

2024-02-28 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】蓝牙SoC EFR32BG22增加Button功能并发送Notify数据包的方法

本文以Silicon Labs蓝牙SoC EFR32BG22的Thunderboard模块为例,介绍如何使用Simplicity Studio v5软件在蓝牙soc_empty工程中添加Button功能,并向手机发送Notify数据包的方法。

2021-03-14 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】无线蓝牙SoC EFR32BG22用户自定义数据存取接口NVM使用指导

在使用EFR32BG22开发应用时,大部分应用需要保存一些参数,很多开发者不清楚BG22对数据进行存取的接口是哪个,本文将介绍Silicon Labs无线蓝牙SoC EFR32BG22上对数据进行存取的接口——NVM的使用。

2022-02-23 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】Silicon Labs蓝牙SoC在开启了串口后,如何降低功耗?

在调试Silicon Labs的蓝牙SoC时,我们需要打开串口日志输出以方便调试,但是在添加了Log和IO Stream:USART组件后,可以看到日志可以输出了,但是随之EM2休眠功耗却降不下去了,这是由于添加了串口后,默认串口在EM2下是开启的,导致EM2下功耗会比较高,本文将以EFR32BG27为例,指导如何在添加了串口后降低串口功耗。

2023-09-05 -  设计经验 代理服务 技术支持 现货查询 批量订货
展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:Wireless Gecko SoC

价格:¥8.1764

现货: 103,878

品牌:SILICON LABS

品类:评估工具

价格:¥111.8652

现货: 1

品牌:SILICON LABS

品类:Bluetooth SoCs

价格:

现货: 0

品牌:SILICON LABS

品类:Bluetooth SoCs

价格:

现货: 0

品牌:SILICON LABS

品类:Bluetooth SoCs

价格:

现货: 0

品牌:SILICON LABS

品类:Bluetooth SoCs

价格:

现货: 0

品牌:SILICON LABS

品类:开发工具

价格:¥331.7858

现货: 0

品牌:芯海

品类:蓝牙芯片

价格:¥3.3334

现货: 77,827

品牌:芯海

品类:低功耗蓝牙SOC芯片

价格:¥6.1334

现货: 5,951

品牌:芯海

品类:低功耗蓝牙SOC芯片

价格:¥6.4706

现货: 5,151

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌: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

品类:Wireless SoC

价格:¥15.1400

现货:1,455

品牌: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

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

蓝牙认证BQB测试

支持Bluetooth SIG最新的测试规范,支持2.0(EDR), 2.1(EDR), 3.0(HS), 4.0(LE)规范, 并且能完整覆盖BR/EDR/HS/BLE的所有射频测试项目。测试标准:RF.TS/4.03 ;RF-PHYTS/40.3。

实验室地址: 深圳 提交需求>

内置FPC天线定制

可定制内置FPC天线的频率尺寸等参数,频率范围315MHz、433MHz、470MHz、868MHz、915MHz,2.4GHz、5.8GHz、2G(GSM)、3G、4G、5G、WIFI、蓝牙、LoRa、NB-IoT多频段可选。

最小起订量: 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

收藏
收藏当前页面