【導讀】恒溫器在在物聯網的驅動下,已經逐漸走向智能化和聯網方向。尤其是微控制器(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)功能可檢測出較低的電壓,并自動關閉系統,以防出現故障。
相關閱讀:
芯片級尺寸的MCU如何適應可穿戴設計中的尺寸限制?
如何快速掌握一款新的MCU?
網友熱議話題:MCU同步boost電路移動電源方案