MCU打造智能恒温器,轻松拿下功耗/通讯/人机介面
恒温器在在物联网的驱动下,已经逐渐走向智能化和联网方向。尤其是微控制器(MCU)开发商推出的新方案,兼备低功耗,段式LCD显示控制与Wi-Fi/蓝牙/ZigBee无线连结支援能力,以及256位元AES先进加密功能,对智慧型恒温器的发展做出创举。
目前,市场上涌现出越来越多的物联网(IoT)恒温器产品。本文阐述如何使用微控制器(MCU)打造IoT恒温器,并以爱特梅尔(Atmel)SMARTSAML22MCU为例,同时也介绍此MCU作为段式液晶显示器(LCD)控制器平台实现恒温器应用的功能。该MCU内置一个主频32MHz的ARMCortex-M0+处理器,拓展该公司现有的低功耗MCU系列。它专为本文描述的恒温器等人机介面(HMI)应用而设计,内置一个支持上至三百二十段的段式显示控制器、一个用于实现按键、滑块和滚轮的外接周边设备触摸控制器(PTC)以及USB、Timer、SERCOM等可配置为USART、SPI和I2C介面的其他众多外接的周边设备。
低功耗/通讯/安全性IoT恒温器必备功能
IoT应用强调万物联网,因此IoT恒温器也须具备联网通讯功能,此外为因应设备功能与资料传输增多,其亦须符合低功耗、安全性和简易使用的人机介面等特性。
低功耗
与其他很多IoT应用一样,功耗是IoT恒温器的重要考虑因素。IoT应用通常是电池供电型,或者用户希望它们比之前型号在提供更多功能的同时,减少电量消耗。SAML22MCU专为低功耗应用而设计。使用快闪记忆体进行EEMBCCoremark测试时,其工作模式下的功耗低于39μA/MHz,待机模式下的功耗仅为1.87μA(RTC处于工作状态时)。此MCU之所以能实现上述低功耗,凭藉的是其独特设计和众多特性。例如功率级特性让其能为具体任务选择正确的性能。控制器能将内核电压从1.2伏特(V)迅速切换到0.9V。降低内核电压可大幅降低总功耗,因为中央处理器(CPU)的功耗随着频率和电压的升高而增加。当内核电压为0.9V时,CPU的最大频率为12MHz;而当内核电压为1.2V时,CPU的最大频率为32MHz。例如当内核电压为0.9V,频率为12MHz时,该MCU计算一次斐波那契数列须消耗28μA/MHz;当内核电压为1.2V,频率为32MHz时,同样计算却须消耗37μA/MHz。除了一个低压差稳压器(LDO)之外,该款MCU还内置一个降压转换器。此前的功耗是采用降压转换器和3.3V电压测量。在此电压下,降压转换器的工作效率最高。这比LDO的效率高出很多,能实现低功耗。
此MCU的另一个优势是直接记忆体存取(DMA)和事件系统(EventSystem),它们能在无需CPU参与的情况下,实现资料通讯和控制外接的周边设备。各个外接的周边设备在独立执行任务或相互控制时,Cortex-M0+处理器可进入睡眠状态。
这款MCU的模拟功能也是专为此类低功耗应用而设计的。12位1MSPS类比数位转换器(ADC)可在10Ksps和单端模式下测量温度感测器,仅需60μA用于模数转换。
通讯
其次,IoT应用须通过射频(RF)与互联网、智慧手机、感测器、致动器或其他IoT设备通讯。此MCU提供多个输入/输出(I/O)介面,用于连接各种RF模组和其他外接的周边设备。它最多可配备六个片上SERCOM外接的周边设备,足够用于将更多元件连接至恒温器。每个SERCOM外接的周边设备可被配置为USART、UART、SPI或I2C。AtmelSmartConnectWINC3400Wi-Fi/蓝牙组合解决方案或面向ZigBee设备的SAMR21都可以通过I2C或SPI连接该款MCU。内置USB可用于实现其他有线通讯。该USB是一个无石英的全速USB设备,这意味着无需精准的外部振荡器,从而降低应用的物料成本(BOM)。安全性
所有IoT应用都必须有重要元件:安全性。为了实现安全的通讯,该款MCU配有一个256位元的先进加密标准(AES)外接的周边设备。它可以在不增加软体开支的情况下进行加密和解密。此外,它还支援多种模式,如密码段连结模式(CipherBlockChaining)、伽罗瓦计数器模式(GaloisCounterMode)等等。AES外接的周边设备内置抗差分功耗分析攻击(DifferentialPowerAnalysisAttacks)措施。通过差分功耗分析,攻击者能得知控制器的功耗,并利用这些资料探测出加解密金钥。
通过采用这种方法,AES外接的周边设备能随机增加加解密运算的周期,加大攻击者探测出金钥的难度。此MCU还内置一个真乱数产生器(TRNG)外接的周边设备,它能生成真乱数的所有八十四个周期。这个数对于加密至关重要,因为真乱数不能被预测,因此也不能通过数学方法被计算出来。乱数可用于通过IP网路进行身份验证。
加密金钥可保存在备份区暂存器、快闪记忆体或静态随机存取记忆体(SRAM)中。为了提高安全性,此MCU内置一个防篡改单元,它能检测出是否有人试图打开恒温器。防篡改引脚与恒温器的外壳相连。当攻击者通过机械方式打开恒温器的外壳时,防篡改线将断裂,从而检测到篡改攻击。
在这种情况下,防篡改单元将发起“事件”,内核则执行相应的软体功能,删除SRAM、串列电子抹除式可复写唯读记忆体(EEPROM)、快闪记忆体或其他外部记忆体中的加密金钥或其他资料。
为进一步增强安全性,该MCU还内置活动层防护(ActiveLayerProtection)功能。
讯号通过印刷电路板(PCB)/外壳发送到防篡改输入埠。程式将对该输入讯号与输出讯号进行对比,如果不匹配,则检测到篡改。如果攻击者在PCB上钻孔,并剪断PCB上的防篡改线,该功能也将检测到篡改,并发起“事件”。
人机介面
同样重要的是,IoT应用需有人机介面(HMI)或使用者介面。该IoT恒温器功能由最终用户通过智慧手机控制。但它须提供一个手动更改和监测温度的选项,因为智慧手机有可能发生故障或者丢失。在这种情况下,内置的段式LCD显示器可向使用者显示温度和其他资讯。段式LCD控制器最多可控制三百二十个段,而且能从五十二个LCDI/O引脚中选择四十八个LCD引脚。设计人员还可选择未使用的LCD引脚,用于实现SERCOM等协助工具或模拟功能。
此外,SLCD控制器还支持各种用于降低功耗的功能。例如可通过DMA将资料从SRAM/快闪记忆体发送到显示器缓冲区。
硬体特征映射、自动位元映射(ABM)和闪烁(Blinking)功能能以极低的功耗改变段式LCD上显示的内容。这种改变无需大功率内核。很多恒温器在它们的显示器上显示当前时间。闪烁功能用于显示秒,同时也是段式LCD控制器的一个硬体功能。
除了能通过无线区域网路(WLAN)或蓝牙远端更改设置或温度之外,使用者还能在恒温器上执行这些任务。此MCU支援AtmelQTouch技术,其中包括采用互电容触控技术和自电容触控技术的按键、滑块和滚轮。该款MCU可为此类应用提供足够多的触控通道。借助Atmel技术,触控按键直接整合到段式LCD的铟锡氧化物(ITO)层上。触控输入可用于升降温度,或选择其他房间中的加热器或感测器。
智慧/触控控制恒温器更聪明
该款恒温器藉由RF监测不同房间中的无线温度感测器,并控制其中的加热器。使用者可通过WLAN或低功耗蓝牙协议、家用网路或互联网,并使用智慧手机对其进行控制,或直接使用触控按键进行控制。
此MCU内置的ADC能测量恒温器周围的温度,其对来自温度感测器的外部数值进行数位化处理。内部温度感测器可用于控制外部数值,以便进行交叉核对。而MCU的内部温度感测器提供两点测量功能,精度为±1℃(0~60℃)。
另一条ADC通道也可用于测量电池电压。欠压检测(BOD)功能可检测出较低的电压,并自动关闭系统,以防出现故障。