Atmel智能插头参考设计的无线物联网设计要求介绍-设计应用_第1页
Atmel智能插头参考设计的无线物联网设计要求介绍-设计应用_第2页
Atmel智能插头参考设计的无线物联网设计要求介绍-设计应用_第3页
Atmel智能插头参考设计的无线物联网设计要求介绍-设计应用_第4页
Atmel智能插头参考设计的无线物联网设计要求介绍-设计应用_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑Atmel智能插头参考设计的无线物联网设计要求介绍-设计应用适用于物联网(IoT))应用的器件具有一些共通但非常关键的要求:连接简单、安全水平高并且易于使用。因此,设计师应仔细研究Atmel)的智能插头参考设计,将其作为无线物联网设计的综合工作指南。

虽然面向苛刻环境的应用通常需要有线连接,但如今消费者完全可以指望可靠且易于设置的无线连接。在安全性方面,如今的要求已不局限于基本的数据加密,还包括要求更复杂的政策用于将新设备安全地添加到受信任的网络,以及确保正常操作期间的安全通信。,任何物联网器件终都应满足应用特定的传感器)或致动器功能要求。

以下是将Atmel的智能插头参考设计用作无线物联网设计综合工作指南的原因。对设计师而言,它整合了安全的互联网连接型产品所需的所有软硬件。同时,该设计是一个启用了Wi-Fi)功能的电源插头,其中展示了三个主要的用例模型:使用其电容)式触摸按钮进行本地控制;通过带Wi-Fi连接(带或不带云连接)的移动应用进行控制;或通过使用相关应用计划开/关定时进行基于定时器)的控制。

与许多新兴物联网入门套件不同,Atmel智能插头参考设计以无云版本提供。实际上,Atmel提供了专为云集成而设计的固件版本,但开发人员还需要密切关注“雾计算”的趋势。

在雾计算中,提高数据处理、存储和应用的控制水平是以本地方式在“边缘”位置执行的,而不是仅仅依靠云。除了实现“始终可用”的服务外,此方法还能降低服务延迟,提高安全性,节省能源,并提升整体用户体验。

器件设计

智能插头设计本身由三块印刷电路)板(PCB))组成,分别用于供电、MCU)和触摸控制。MCU板垂直安装在电源板上,触摸板通过引脚连接器连接到MCU板(图1)。Atmel提供三种版本的智能插头,分别符合美国、欧洲和中国标准。三种版本分别提供每个地区的标准插头和插座,但使用相同的印刷电路板。

图1:Atmel智能插头参考设计将数字电路和电源电路分为单独的板,其中三分之一的板用于LED和QTouch接口。(图片:AtmelCorp.)

触摸板包含Wi-Fi和电源LED以及基于QTouch技术的触摸传感器。QTouch采用Atmel的电容式触摸感应技术,该技术具有在不太理想的环境中获得可靠性能所需的抗噪能力和环境耐受力。

电源板包含一个AC/DC转换器、一个DC/DC)转换器、功率测量电路、继电器)以及插头和插座。AC/DC转换器专用于将100V/240VAC输入电压转换为12V/120mA(典型)DC输出,以向继电器和DC/DC转换器供电。AC/DC转换器将定制变压器)与MonolithicPowerSyste)ms的MP020-5开关稳压器)结合使用。

MP020-5是一种离线式、初级侧稳压器,不需要光耦合)器或次级反馈电路便可提供准确的恒定电压和恒定电流)调节。DC/DC转换器为MCU板上的SAMW25无线模块将DC电压电平从12V转换为3.3V。

MCU板包含ATSAMW25无线模块和32KHz晶体。此外,它还在印刷电路板上为此设计不需要的外部闪存设备提供可用的封装。

安全连接模块

Atmel设计的部分是结合了数字控制、连接和安全功能的ATSAMW25模块。此模块设计为Wi-Fi连接的直接替代型解决方案,结合了其全面的硬件功能与集成软件,包括传输层安全(TLS)等应用和安全协议,以及包括TCP/IP堆栈在内的集成网络服务。在智能插头设计中,此模块不仅提供Wi-Fi连接和安全,还管理智能插头触摸按钮、继电器控制、温度感应以及保护、LED指示灯和定时功能(图2)。

图2:Atmel智能插头参考设计提供围绕AtmelATSAMW25模块构建的完整物联网解决方案,可提供数字控制、连接和安全功能。(图片:AtmelCorp.)

此模块在内部利用了以下三个关键SoC中集成的全面功能:AtmelATSAMD)21G18AMCU、AtmelATWINC1500B-MU-T收发器)以及AtmelATECC508A加密验证器件。

ATSAMD21G18A基于低功耗ARM)Cortex-M0+,集成了256KB闪存及32KBSRAM)与全套外设,包括串行、USB)、14通道12位模数转换器)(ADC))以及10位数模转换器)(DAC))。AtmelATWINC1500B-MU-T是一种低功耗、单芯片IEEE802.11b/g/n、2.4GHz网络控制器。ATWINC1500专为简化在基于MCU的设计中集成Wi-Fi连接而设计,集成了全部收发器信号链并提供多个外设接口,包括用于与主机MCU连接的UART)、SPI)和I2C)。ATECC508A加密器件将在下文中介绍。

对于无线通信),这些器件只需要在SAMD21GMCU和ATWINC1500网络控制器SoC之间进行几处连接(图3)。虽然SPI连接能提供双向数据交换,但此设计有助于降低平静期的功耗。对于传入数据,ATWINC1500可使用中断线(IRQn)唤醒MCU,以通知MCU处理收到的数据。对于输出数据,MCU可使用唤醒线来唤醒ATWINC1500处理传输。

图3:AtmelATSAMW25模块将MCU与SoC集成,以实现Wi-Fi连接与安全,为许多物联网应用提供了直接替代型解决方案。(图片:AtmelCorp.)

ATSAMW25模块只需很少的额外组件来控制智能插头功率继电器并与功率测量电路接口(图4)。如图中所示,52引脚ATSAMW25模块为在模块外部处理的各项关键功能提供了简单的接口。例如,引脚24为随附的AtmelATSAMD21G18AMCU引出了复位引脚,引脚40和41则用于跟功率测量子系统连接。此外,此模块还提供了9个通用输入/输出(GPIO)引脚,开发人员可对其编程以引出特定于应用的功能。

图4:AtmelATSAMW25模块专为简化在设计中集成Wi-Fi功能而设计,只需要较少的外部组件,并能提供实现设计所需的少外部连接。(图片:AtmelCorp.)

不同于蓝牙)的一对一配对连接,Wi-Fi连接支持器件共用,因此多个用户可以共享访问权限并控制设备。不过设计师仍可通过使用专门的蓝牙器件(例如AtmelATSAMB11蓝牙SoC)和相关软件增强基本的智能插头参考设计,来构建自定义的Wi-Fi/蓝牙设计。ATWINC1500支持符合IEEE802.15.2-2022标准的2线和3线Wi-Fi/蓝牙共存信号。

,电源板上实现的功率管理电路使用了AtmelATM90E26。ATM90E26专为能量计量而设计,集成了完整的模拟前端(AFE))信号链与数字信号处理器(DSP))。通过使用AFE执行电压和电流测量,DSP可计算即时功率、RMS电流、RMS电压以及累积的电能。结果将通过UART端口传输至ATSAMW25。为了隔离线路电压和内部电源域,此设计包含两个光耦)合器用于保护ATM90E26和ATSAMW25之间的连接(ATSAMW25模块上的引脚40和41)。

软件设计

在智能插头参考设计中,主程序在ATSAMW25模块中嵌入的ATSAMD21G18MCU上运行。此软件设计不使用实时操作系统(RTOS))。相反,所有软件功能块在初始化后以无限循环运行。关键的MCU软件功能包括通过ATWINC1500驱动程序提供的Wi-Fi连接;通过ATECC508A驱动程序和软件AES库提供的安全性;通过ATM90E26驱动程序提供的能源测量;以及通过AtmelQTouch库提供的触摸按钮控制。

在智能插头参考设计中,应用固件区分为两个分区—应用1和应用2(图5)。除了这些应用分区外,内部闪存包括用于存储用户信息、Wi-Fi网络信息和使用数据的仿真EEPROM)。

图5:由于智能插头固件的存储器封装相对较小,因此两个应用副本可在ATSAMD21G18MCU的256KB闪存内共存,从而在不需外部存储器的情况下实现无线升级。(图片:AtmelCorp.)

复位后,使用简单的引导程序确定要运行的应用固件分区。在此,引导程序代码会查看引导程序头文件boot.h(列表1)中定义的变量。

#defineAPPLICATI)ON_SIZE(FLASH_SIZE/2UL)//Mai)ntaintwocopiesinflash

#defineAPP_PAGE_SIZEFLASH_PAGE_SIZE

#defineAPP1_START_ADDRESS0x00004000

#defineAPP2_START_ADDRESS0x00020000

/**NVMpagetosaveapplicationareainfo*/

#defineNVM_APP_AREA_INFO_PAGE2

typedefenum_valid_app{

APP1_VALID=1,

APP2_VALID,

NOT_FOUND=0xFF,

}valid_app_enum;

列表1:引导程序头文件定义了简单的引导加载过程所需的几个常量和变量。(代码:AtmelCorp.)

引导程序代码自身检查APPx_VALID标记(列表2)

if(app_info.valid_app==APP1_VALID){

app_check_address=APP1_START_ADDRESS;

app_check_address_ptr=(uint32_t*)app_check_address;

}elseif(app_info.valid_app==APP2_VALID){

app_check_address=APP2_START_ADDRESS;

app_check_address_ptr=(uint32_t*)app_check_address;

}else{

/*

*FactorynewdevicehasnovalidappflaginEEPROM.

*Applicationcodeisinsector2forfactorynewdevice.

*/

app_check_address=APP2_START_ADDRESS;

app_check_address_ptr=(uint32_t*)app_check_address;

}

列表2:引导程序代码只检查哪个应用区域(APP1或APP2)有效,并在活动的应用区域调用此代码以开始执行智能插头设备软件。(代码:AtmelCorp.)

,引导程序设置为在相应的应用空间运行此代码,并跳至该应用。

得益于设计的SoC所具有的高集成度,参考设计的存储器封装极小。程序存储器使用量为83244字节(容量的31.8%),数据存储器使用量仅为15632字节(容量的47.7%)。由于此存储器外形极小,该设计能支持典型IoT边缘节点所需的无线(OTA)升级。ATSAMD21G18AMCU的256KB内部闪存预留了足够的空间来存储的固件映像,同时将原始固件保留不变。因此,此参考设计不需要外部存储进行OTA升级。

Atmel为设备以及整个安卓应用提供了完整的代码包。开发人员可以通过公司的在线工具AtmelSTART访问软件配置,该工具适用于配置软件组件以及时钟)和引脚布局等器件设置。智能插头配置附带预建的Wi-Fi堆栈、加密服务和IO管理等中间件以及一整套软件驱动程序(图6)。

图6:Atmel提供了一整套软件开发和调试工具,包括在设计的硬件器件组中用于配置软件组件及器件设置的在线工具。(图片:AtmelCorp.)

完成配置后,开发人员将导出项目并在IDE中打开它,进行进一步的软件开发。针对应用开发,Atmel提供了围绕AtmelStudio7构建的全面工具链,其中通过Atmel调试器、编程器和仿真器)结合了代码开发工具与集成调试功能。针对智能插头设计,Atmel软件框架(ASF)提供了API以用于Wi-Fi连接、安全、通信协议、传感器读数和UI。开发人员可以使用Atmel的ASFExplorer将驱动程序、通信堆栈和服务从ASF导入到其项目中。ASFExplorer会自动管理库的依赖关系,确保代码包中包含需要的驱动程序。

与大多数新兴的物联网器件一样,Atmel智能插头依赖于移动应用实现用于监控和控制的用户界面。实际上,Atmel提供的安卓应用是此参考设计不可或缺的一项功能。通过此应用,用户可以在设置期间管理Wi-Fi部署、与多个用户共享设备、执行无线升级、打开和关闭设备、计划开/关定时甚至包括查看使用历史记录。

物联网安全机制

Atmel安卓应用在确保安全操作方面发挥重要作用。Atmel智能插头参考设计实施了稳健安全策略,要求在设置和正常操作期间,设备与应用之间使用通信。由于智能插头设计在功能上代表了大多数物联网边缘节点的设计,因此该参考设计为实施物联网安全措施提供了详细指南。

此设计依赖AtmelATECC508A硬件加密引擎和软件加密库实施安全功能,包括:

FIPS186-3椭圆曲线数字签名算法(ECDSA),用于安卓应用和智能插头验证;

FIPSSP800-56A椭圆曲线Diffie-Hellman算法(ECDH),用于生成会话密钥,而决不会在安全密钥存储之外传输私钥;

加密标准(AES)-128加密块链接(CBC)模式,用于对网络通信进行数据加密和解密;

基于SHA-256的MAC(信息验证代码),用于数据完整性检查。

安卓应用侧的软件中也实施了相同的安全功能,以便在智能插头设备与应用之间进行安全通信。

基于密钥的加密对任何物联网设计中的密钥安全提出了苛刻的要求。在智能插头设计中,ATECC508A加密器件通过其基于硬件的安全加密密钥存储和加密对策满足了这一需求。当设计进入量产后,将会在安全的工厂环境中配置密钥存储(例如ATECC508A中的密钥存储),然后再上市销售,以确保私钥安全。

在现场,该设计使用先进的验证方案将新的智能插头设备加入现有网络,并在经验证的智能插头设备与应用之间交换数据。在智能插头与应用相互完成验证后的数据交换期间,智能插头使用其MAC地址和一个随机数质询进行应答。由于智能插头在(安全)加入网络后会收到安卓应用公钥,因此ATECC508A可生成一个ECDH预先主(Pre-master)密钥,并使用MAC算法随机生成密钥,以输出仅在会话期间有效的临时密钥。反过来,ATECC508A将此会话密钥用作AES密钥,对在应答中传输至安卓应用的信息进行加密。尽管添加新智能插头设备的安全流程更为复杂,但它遵循相似的安全理念,即随机密钥交换、质询和验证。

但对开发人员而言,Atmel驱动程序和API会处理具体细节。例如,只需在ecc508a驱动程序中调用cademo_aes_crypt()即可使用第三方库LibTomCrypt返回AES-128CBC模式的加密或解密数据(列表3)。

staticuint8_tcademo_aes_crypt(uint8_tenc_mode,uint8_t*aes_key,uint8_t*plain_txt,uint16_t*plain_txt_size,uint8_t*cypher_txt,uint8_t*iv)

{

uint8_tret=ATCA_SUCCESS;

uint16_tkeysize=AES_KEY_SIZE;

//LibTomCrypt

register_cipher(aes_desc);

int32_tcypher_idx=find_cipher("aes");

symmetric_CBCcbc;

ret=cbc_start(cypher_idx,iv,aes_key,keysize,0,cbc);

if(enc_mode==

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论