【经验】基于EFM32GG11 32位MCU的单向加密实时无线语音通信

2018-09-13 Silicon Labs
32位MCU,EFM32GG11,Silicon Labs 32位MCU,EFM32GG11,Silicon Labs 32位MCU,EFM32GG11,Silicon Labs 32位MCU,EFM32GG11,Silicon Labs

该项目的目标是执行从嵌入式系统到任意客户端(如膝上型计算机或平板电脑)的单向加密实时无线语音通信。这是使用用于音频输入/处理的EFM32GG11驱动器工具包和用于无线传输的Wizard Gecko Wi-Fi扩展工具包来实现的。音频数据从驱动工具包的板载麦克风中采样,并使用EFM32GG11 32位MCU通过AES进行加密;然后,音频数据流到连接到Wizard Gecko的Wi-Fi接入点的任何客户端,在那里,只能用正确的密码对其进行解密和回放。


图1 EFM32GG11 实物图

 

背景与动机:

我的项目主要目的是演示EFM32GG11 32位MCU驱动器工具包和Wizard Gecko Wi-Fi扩展工具包的有用特性,以及这两个工具包通过EXP头平滑地协同工作。

 

它演示的第一个主要特性是EFM32GG11的CRYPTO模块,它存在于所有EFM32系列1设备上,并提供快速硬件加速的加密。该项目利用配置为使用加密模块的MBOD TLS库,从而显著提高了它的速度。它通过大量开销实时加密未压缩的音频来演示CRYPTO模块的高吞吐量(高达~123Mbps)。加密的类型是CBC模式中的256位AES,它目前被认为是普遍安全的。

 

项目背后的另一个动机是演示EFM32GG11驱动器工具包本身的两个特性:板载麦克风,以及Wi-Fi扩展工具包通过EXP报头易于连接到,并被进行控制的能力。麦克风没有例子,而且在外部托管模式下Wizard Gecko的固件实例很少。我的项目通过允许用户收听音频演示了内置麦克风的质量,并且展示了如何使用BGLib C库与外部主机的Wizard Gecko通信。此外,它演示了Wizard Gecko上的透明/流端点的吞吐量。

 

项目描述:



图2 通过发射机设备的数据流框图


麦克风输入:

EFM32GG11驱动器工具包提供板载音频编解码器,该编解码器自动将来自板载MEMS麦克风的PDM(脉冲密度调制)数据转换为PCM(脉冲代码调制)数据,并以I2S格式在串行接口上输出。编解码器的串行接口连接到EFM32GG11 USART3位置0引脚,因此读取音频数据只是用正确的设置将USART3初始化为I2S、启用autoTx和触发附加麦克风启用引脚的问题。

 

音频数据为32位字,因此通过将I2S波特率设置为所需采样率的64倍(每个通道32位)来控制采样率。每个字都包含单个20位音频样本,但是很少有系统支持20位音频,因此对于我的项目,我忽略每个样本的最低有效4位,并且只从每个字读取16位。我还忽略了来自右麦克风的样本,这意味着我获得的用于处理的最终音频数据是16位单PCM格式。采样率很容易配置,但最后,我选择了20kHz,因为这似乎是Wizard Gecko能够处理的上限,同时又足够高来覆盖人类听觉范围,并提供清晰易懂的音频。

 

为了节省CPU周期,使用LDMA将音频输入数据传送到存储器。为了丢弃右通道数据,重复地将右通道数据写入单个字节,而将左通道数据交替地传输到两个16字节的缓冲区中;当一个缓冲区被填充时,另一个缓冲区被CPU处理。

 

加密与传输:

当左通道传输完成时,它触发一个中断,该中断切换当前进程缓冲区,并发出下一个分组准备被处理的信号。然后,EFM32GG11使用配置为使用CRYPTO模块的mbed TLS库对当前16字节缓冲区(16字节是AES块大小)进行加密。在CBC(密码块链接)模式中,库在加密之前自动地将明文与先前密文一起XOR。

 

用于加密的256位密钥是从使用SHA256的密码导出的。只有密码相同的客户可以通过散列密码来获得正确的密钥。

 

在我的项目中,我决定将初始化向量固定为全零。通常,初始化向量重用被认为是不好的实践和弱安全性;但是,它只有可能从前缀相同的数据流的前几个块泄漏数据,并且由于大量的块和在有意义的音频段中的噪声量存在,因此对我的项目构成不了显著的威胁。。

 

一旦一个块被加密,它就被放入一个先进先出的队列中,通过UART通过EXP报头传输到Wizard Gecko。流量控制是使用连接到Wizard Gecko的附加CTS管脚实现的;当不能跟上传输速率时,模块可以驱动CTS高,在这种情况下,传输停止,队列填充。传输是由中断驱动的,它允许在下一个缓冲区被加密时“在后台”运行,并且在Wizard Gecko引发CTS时不阻塞主线程。

 

UART传输的波特率是可配置的,只要EFM32GG11和Wizard Gecko都配置成相同的值。然而,有趣的是,Wizard Gecko在更高的波特率下似乎表现得更好(提高CTS时间更短)——也许是因为这增加了分组之间的差距——所以我选择了3MHz。

 

WiFi:

Wizard Gecko Wi-Fi模块在托管模式下连接到外部MCU时,以命令响应格式运行。EFM32GG11通过SPI使用EXP报头发送命令,规定为一种二进制协议,称为BGAPI。当Wizard Gecko准备向MCU发送响应(或事件)时,它将触发通知引脚(也连接到EXP报头),通知EFM32GG11读取和处理消息。所有的BGAPI命令和响应都在一个名为BGLib的C库中定义。

 

初始化后,我的项目将向导GECKO配置为一个隐藏的无线接入点和一个TCP服务器。当连接到接入点的客户端打开到TCP服务器的IP地址和端口的连接时,它触发一个转发回EFM32GG11的事件。EFM32GG11然后启用麦克风,并且开始通过UART加密和传输音频到Wizard Gecko的第二个USART接口(未用于BGAPI命令的那个)。该接口以透明/流模式配置,这意味着它将所有未修改的接收数据转发到单个端点。在加密开始之前,EFM32GG11将这个端点配置为所连接的客户端的端点。

 

成就、缺陷和下一步:

最终,该项目成功并达到了构建单向加密语音通信设备的最终目标。语音清晰易懂,距离板载麦克风多达几英寸,并且实时加密是安全的。

 

最终实现中的主要缺陷是,Wizard Gecko本身在没有中断的情况下持续地传输大量数据时有困难。该模块偶尔会“阻塞”1-2秒,在此期间它将停止传输,并通过提高CTS拒绝接受数据。性能不一致,在“扼流圈”之间,设备将从10秒到60秒以上。这导致了令人沮丧的音频空隙,就像手机连接正在“中断”;尽管平均来说,这个项目仍然非常适合与某人交谈。我添加了一个蓝色LED,每当CTS升高时就打开,因此用户至少可以通过观察LED点亮纯蓝色来判断设备何时没有发射。

 

在将来,这种行为可能通过改变设备用来传输的协议而被消除。蓝牙将具有更大的带宽,或者如果Wizard Gecko仍然被使用,Wi-Fi Direct或者通过第三方局域网(而不是使用Wizard Gecko作为接入点)的TCP连接。最后两个选项将使演示更加难以使用,因此蓝牙将是理想的解决方案;这解释了为什么蓝牙对于具有相似功能的现实产品如此受欢迎。

 

使用此项目:

按照加密语音发送器文件夹的自述文件中的说明,配置Wizard Gecko和EFM32GG11作为项目的发送器部分。

 

若要使用接收器,请下载下面的可执行Java小程序,并在其中运行.exe文件(不需要安装JVM)。除非在固件中更改IP地址和端口,否则将保留这些字段。输入固件中定义的密码(默认“GECKO123”)。

 

启动发射机后,等待LCD输出到达“等待客户端”,然后连接到设备创建的隐藏接入点(默认SSID是“加密语音演示”)。



一旦LCD显示“客户端加入”,单击Java小应用程序对话框上的“连接”。当连接按钮下面的状态消息以绿色显示“Connected”时,麦克风的音频应该开始在PC上播放。


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

本文由史辰雷翻译自Silicon Labs,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(3

  • 我是一名菜鸟 Lv4. 资深工程师 2018-11-08
    学习
  • tn619 Lv8. 研究员 2018-10-17
    学习
  • RyanHsiung Lv6. 高级专家 2018-09-13
    学习一下
没有更多评论了

相关推荐

【经验】如何提高雅特力32位MCU AT32F403RCT7在ADC采集信号的精度

雅特力32位MCU AT32F403RCT7采用高性能ARM Cortex-M4F内核,工作频率240MHz主频,本文主要介绍雅特力32位MCU AT32F403RCT7的ADC如何通过硬件设计电路来提高测量精度。

2022-09-26 -  设计经验 代理服务 技术支持 批量订货

【经验】你还在用蛮力操作MCU位反转吗?试试RBIT吧,巧远胜于拙

以Silicon Labs EFM32GG11为例,在ARM Cortex M系列CPU上的(32位)字中的位首先排序为最高有效位(MSB),其中MSB是最左边的位。软件通常以这种方式格式化数据,例如,当MSB为1时,有符号数字为负数。但是在某些特殊的场景下可能需要高低位反转,例如LCD的像素操作。EFM32GG11上有一个及其简单的办法,其内部函数为__RBIT(),专门用来做位反转。

2019-12-24 -  设计经验 代理服务 技术支持 批量订货

【经验】如何基于J-FLASH对32位MCU EFM32 进行批量烧写?

Silicon Labs 32位MCU EFM32,以低功耗、高性能等著称,被广泛应用在电池供电等需要低功耗的领域。因应用广泛,在批量烧写上,也得到多家软件支持。本文将详细描述名基于SEGGER的J-Flash软件对EFM32烧写FLASH的方法及步骤。

2018-09-17 -  设计经验 代理服务 技术支持 批量订货

【IC】32位MCU HK32C030家族,业界创新,12寸迭代超高性价比

航顺芯片新推出的32位MCU HK32C030,12寸迭代具有超高性价比。适用于工业应用,物联网,PC外设,智能家居,医疗设备,大小家电,手持设备等领域

2024-06-13 -  产品 代理服务 技术支持 批量订货

【经验】32位MCU EFM32系列中断分组及优先级设置方式

Silicon Labs的32位MCU EFM32系列广泛应用于物联网、智能家居、无线抄表、智能照明、可穿戴设备等领域。中断是一个MCU中比较核心的部分,在实时性要求比较高、功耗低的场合经常需要中断的配合,中断优先级是根据中断事件的重要性和紧迫程度做出的一个设置,系统先响应优先级高的中断请求,再响应优先级低的中断请求。

2019-12-24 -  设计经验 代理服务 技术支持 批量订货

为物联网开发选择最佳的MCU架构

微控制器(MCU)如何在物联网设备中使用?开发人员又该如何为产品选择最合适的MCU解决方案?Silicon Labs产品营销高级经理Gopinath Krishniah先生将通过本篇博文说明MCU的应用知识和开发技巧,并介绍评估选用8位和32位MCU的关键考量。

2024-05-15 -  设计经验 代理服务 技术支持 批量订货

【经验】Silicon Labs 32位MCU EFM32在静电测试时的故障排查

本文介绍Silicon Labs 32位MCU EFM32在做静电测试时,出现复位、死机情况时如何去查找原因

2019-06-11 -  设计经验 代理服务 技术支持 批量订货

【IC】芯科科技新品PG26 32位MCU系列,大容量存储 + 快速AI/ML推理满足未来的物联网需求

SILICON LABS最新发布的EFM32PG26(PG26)32位微控制器系列通过提升两倍的闪存和RAM容量,以及GPIO的数量来满足各种低功耗和高性能嵌入式物联网应用需求。面向无线连接功能的需求,PG26可作为EFR32xG26多协议无线SoC平台的软件兼容MCU版本,有助于开发人员基于同一平台设计快速且无缝地升级低功耗蓝牙、Matter、Thread、Zigbee或专有无线连接设计。

2024-04-17 -  产品 代理服务 技术支持 批量订货

【经验】Silicon Labs 32位MCU EFM32PG12复位引脚在SWD接口中的重要性

在使用​Silicon Labs 32位MCU EFM32PG12时,通常要在PCBA上保留SWD接口以方便程序的下载、调试功能,但为了节省空间,有些用用户不接RESET引脚,这会有潜在的风险。借测试说明复位引脚在SWD接口中的重要性。

2022-06-24 -  设计经验 代理服务 技术支持 批量订货

【经验】32位MCU EFM32系列在Keil中接收SWO信息的配置步骤

Silicon Labs的32位MCU EFM32系列广泛应用于物联网、智能家居、无线抄表、智能照明、可穿戴设备等领域。在研发过程中会有很多繁杂的调试过程,本文主要介绍如何将Jlink的SWO接口上输出的调试信息在Keil中显示出来。

2019-10-16 -  设计经验 代理服务 技术支持 批量订货

【IC】芯科科技EFM32PG28 32位低功耗微控制器,1.71-3.8V宽工作电压范围,嵌入式物联网的理想选择

随着AIoT和可穿戴技术的爆炸式增长,低功耗微控制器(MCU)已经无处不在,因为许多应用都有最小化功耗的需求。本文整理了当今市场上可用的低功耗MCU及其功能特性。以下内容摘要介绍Silicon Labs(亦称“芯科科技”)的EFM32PG28(PG28)32位MCU产品。

2024-03-11 -  产品 代理服务 技术支持 批量订货

【技术】8位MCU与32位MCU的区别

对某类应用做产品定义和规划时,首要任务之一就是选择理想的处理器/控制器,但开发人员往往难以选择合适的MCU。本文是关于微控制器的技术文章,该文从基本差异、基准性能、应用适用性等角度详细地对8位和32位MCU进行了分析。

2016-07-01 -  技术探讨 代理服务 技术支持 批量订货

【经验】国民技术32位MCU N32G455的ADC外设如何使用内部基准来提高测量精度?

国民技术32位MCU N32G455系列采用32-bit ARM Cortex-M4F内核,最高主频144MHz,支持浮点运算和DSP指令。本文主要介绍国民技术N32G455系列的ADC外设如何使用内部基准来提高测量精度。

2022-09-29 -  设计经验 代理服务 技术支持 批量订货

BB5x 8位MCU用于嵌入式的三大优势——小尺寸、经济高效、设计简化

芯科科技的8位MCU产品组合,在芯科科技提供Simplicity Studio软件开发平台上同步支持8位和32位产品,还可支持EFR32系列无线SoC。这种单一平台解决方案有助于消除设计过程中不必要的复杂性,使设计人员能够将时间和精力集中在产品研发方面,而不是适应新的开发环境,从而缩短了开发周期并加快了上市时间。

2023-12-27 -  应用方案 代理服务 技术支持 批量订货
展开更多

电子商城

查看更多

品牌:SILICON LABS

品类:32位MCU

价格:¥83.3416

现货: 328

品牌:SILICON LABS

品类:32位MCU

价格:¥9.8488

现货: 21,867

品牌:SILICON LABS

品类:32 BIT MCU

价格:¥10.4057

现货: 17,600

品牌:SILICON LABS

品类:32位MCU

价格:¥19.1398

现货: 10,450

品牌:SILICON LABS

品类:32位MCU

价格:¥24.8076

现货: 10,000

品牌:SILICON LABS

品类:32位MCU

价格:¥12.9143

现货: 8,950

品牌:SILICON LABS

品类:32位MCU

价格:¥19.2326

现货: 8,740

品牌:SILICON LABS

品类:32 BIT MCU

价格:¥11.9853

现货: 7,500

品牌:SILICON LABS

品类:32 BIT MCU

价格:¥13.3792

现货: 6,169

品牌:SILICON LABS

品类:32位MCU

价格:¥21.0907

现货: 5,950

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:兆易创新

品类:MCU

价格:¥7.0000

现货:25,380

品牌:MindMotion

品类:32位MCU

价格:¥5.9400

现货:19,996

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥61.8336

现货:17,200

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥16.7100

现货:15,887

品牌:NXP

品类:单片机

价格:¥90.8686

现货:10,811

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥69.9064

现货:7,680

品牌:MindMotion

品类:32位MCU

价格:¥2.3800

现货:6,427

品牌:RENESAS

品类:32BIT MCU

价格:¥135.5187

现货:4,320

品牌:航顺芯片

品类:32位MCU

价格:¥4.1500

现货:2,900

品牌:航顺芯片

品类:32位MCU

价格:¥4.1500

现货:2,900

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

TFT LCD液晶显示屏/模组定制

可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。

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

高频微波射频PCB打样定制

可定制PCB最高层数:32层;板材类型:罗杰斯高频板/泰康尼高频板/ZYF中英天线板/F4B高频板/高频电路板/高频混压板/高频纯压板等;最大加工尺寸:609*889mm。

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

查看更多

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

查看更多

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

查看更多

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

查看更多

授权代理品牌:电子材料

查看更多

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

查看更多

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

查看更多

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

查看更多

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

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

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

收藏
收藏当前页面