用MCU打造智能恒溫器,功耗/通訊/人機介面逐個擊破
在風(fēng)潮的驅(qū)動下,恒溫器已朝向聯(lián)網(wǎng)與智慧化發(fā)展。微控制器開發(fā)商遂推出低功耗,且具備段式LCD顯示控制與Wi-Fi/藍(lán)牙/ZigBee無線連結(jié)支援能力,以及256位元AES先進加密功能的新方案,助力智慧型恒溫器應(yīng)用發(fā)展。
目前,市場上涌現(xiàn)出越來越多的物聯(lián)網(wǎng)(IoT)恒溫器產(chǎn)品。本文闡述如何使用微控制器(MCU)打造IoT恒溫器,并以愛特梅爾(Atmel)SMART SAM L22 MCU為例,同時也介紹此MCU作為段式液晶顯示器(LCD)控制器平臺實現(xiàn)恒溫器應(yīng)用的功能。該MCU內(nèi)置一個主頻32MHz的ARM Cortex-M0+處理器,拓展該公司現(xiàn)有的低功耗MCU系列。它專為本文描述的恒溫器等人機介面(HMI)應(yīng)用而設(shè)計,內(nèi)置一個支持上至三百二十段的段式顯示控制器、一個用于實現(xiàn)按鍵、滑塊和滾輪的外接周邊設(shè)備觸摸控制器(PTC)以及USB、Timer、SERCOM等可配置為USART、SPI和I2C介面的其他眾多外接的周邊設(shè)備。 低功耗/通訊/安全性 IoT恒溫器必備功能
IoT應(yīng)用強調(diào)萬物聯(lián)網(wǎng),因此IoT恒溫器也須具備聯(lián)網(wǎng)通訊功能,此外為因應(yīng)設(shè)備功能與資料傳輸增多,其亦須符合低功耗、安全性和簡易使用的人機介面等特性。
低功耗
與其他很多IoT應(yīng)用一樣,功耗是IoT恒溫器的重要考慮因素。IoT應(yīng)用通常是供電型,或者用戶希望它們比之前型號在提供更多功能的同時,減少電量消耗。 SAM L22 MCU專為低功耗應(yīng)用而設(shè)計。使用快閃記憶體進行EEMBC Coremark測試時,其工作模式下的功耗低于39μA/MHz,待機模式下的功耗僅為1.87μA(RTC處于工作狀態(tài)時)。 此MCU之所以能實現(xiàn)上述低功耗,憑藉的是其獨特設(shè)計和眾多特性。例如功率級特性讓其能為具體任務(wù)選擇正確的性能??刂破髂軐?nèi)核電壓從1.2伏特(V)迅速切換到0.9V。降低內(nèi)核電壓可大幅降低總功耗,因為中央處理器(CPU)的功耗隨著頻率和電壓的升高而增加。當(dāng)內(nèi)核電壓為0.9V時,CPU的最大頻率為12MHz;而當(dāng)內(nèi)核電壓為1.2V時,CPU的最大頻率為32MHz。例如當(dāng)內(nèi)核電壓為0.9V,頻率為12MHz時,該MCU計算一次斐波那契數(shù)列須消耗28μA/MHz;當(dāng)內(nèi)核電壓為1.2V,頻率為32MHz時,同樣計算卻須消耗37μA/MHz。
除了一個低壓差穩(wěn)壓器(LDO)之外,該款MCU還內(nèi)置一個降壓轉(zhuǎn)換器。此前的功耗是采用降壓轉(zhuǎn)換器和3.3V電壓測量。在此電壓下,降壓轉(zhuǎn)換器的工作效率最高。這比LDO的效率高出很多,能實現(xiàn)低功耗。
此MCU的另一個優(yōu)勢是直接記憶體存取(DMA)和事件系統(tǒng)(Event System),它們能在無需CPU參與的情況下,實現(xiàn)資料通訊和控制外接的周邊設(shè)備。各個外接的周邊設(shè)備在獨立執(zhí)行任務(wù)或相互控制時,Cortex-M0+處理器可進入睡眠狀態(tài)。
這款MCU的模擬功能也是專為此類低功耗應(yīng)用而設(shè)計的。12位1MSPS類比數(shù)位轉(zhuǎn)換器(ADC)可在10Ksps和單端模式下測量溫度,僅需60μA用于模數(shù)轉(zhuǎn)換。
通訊
其次,IoT應(yīng)用須通過射頻(RF)與互聯(lián)網(wǎng)、智慧手機、感測器、或其他IoT設(shè)備通訊。此MCU提供多個輸入/輸出(I/O)介面,用于連接各種RF模組和其他外接的周邊設(shè)備。它最多可配備六個片上SERCOM外接的周邊設(shè)備,足夠用于將更多元件連接至恒溫器。每個SERCOM外接的周邊設(shè)備可被配置為USART、UART、SPI或I2C。Atmel SmartConnect WINC3400 Wi-Fi/藍(lán)牙組合解決方案或面向ZigBee設(shè)備的SAM R21都可以通過I2C或SPI連接該款MCU。內(nèi)置USB可用于實現(xiàn)其他有線通訊。該USB是一個無石英的全速USB設(shè)備,這意味著無需精準(zhǔn)的外部振蕩器,從而降低應(yīng)用的物料成本(BOM)。
安全性
所有IoT應(yīng)用都必須有重要元件:安全性。為了實現(xiàn)安全的通訊,該款MCU配有一個256位元的先進加密標(biāo)準(zhǔn)(AES)外接的周邊設(shè)備。它可以在不增加軟體開支的情況下進行加密和解密。此外,它還支援多種模式,如密碼段連結(jié)模式(Cipher Block Chaining)、伽羅瓦計數(shù)器模式(Galois Counter Mode)等等。
AES外接的周邊設(shè)備內(nèi)置抗差分功耗分析攻擊(Differential Power Analysis Attacks)措施。通過差分功耗分析,攻擊者能得知控制器的功耗,并利用這些資料探測出加解密金鑰。
通過采用這種方法,AES外接的周邊設(shè)備能隨機增加加解密運算的周期,加大攻擊者探測出金鑰的難度。此MCU還內(nèi)置一個真亂數(shù)產(chǎn)生器(TRNG)外接的周邊設(shè)備,它能生成真亂數(shù)的所有八十四個周期。這個數(shù)對于加密至關(guān)重要,因為真亂數(shù)不能被預(yù)測,因此也不能通過數(shù)學(xué)方法被計算出來。亂數(shù)可用于通過IP網(wǎng)路進行身份驗證。
加密金鑰可保存在備份區(qū)暫存器、快閃記憶體或靜態(tài)隨機存取記憶體(SRAM)中。為了提高安全性,此MCU內(nèi)置一個防篡改單元,它能檢測出是否有人試圖打開恒溫器。防篡改引腳與恒溫器的外殼相連。當(dāng)攻擊者通過機械方式打開恒溫器的外殼時,防篡改線將斷裂,從而檢測到篡改攻擊。
在這種情況下,防篡改單元將發(fā)起“事件”,內(nèi)核則執(zhí)行相應(yīng)的軟體功能,刪除SRAM、串列電子抹除式可復(fù)寫唯讀記憶體(EEPROM)、快閃記憶體或其他外部記憶體中的加密金鑰或其他資料。
為進一步增強安全性,該MCU還內(nèi)置活動層防護(Active Layer Protection)功能。
訊號通過印刷電路板(PCB)/外殼發(fā)送到防篡改輸入埠。程式將對該輸入訊號與輸出訊號進行對比,如果不匹配,則檢測到篡改。如果攻擊者在PCB上鉆孔,并剪斷PCB上的防篡改線,該功能也將檢測到篡改,并發(fā)起“事件”。
人機介面
同樣重要的是,IoT應(yīng)用需有人機介面(HMI)或使用者介面。該IoT恒溫器功能由最終用戶通過智慧手機控制。但它須提供一個手動更改和監(jiān)測溫度的選項,因為智慧手機有可能發(fā)生故障或者丟失。
在這種情況下,內(nèi)置的段式LCD顯示器可向使用者顯示溫度和其他資訊。段式LCD控制器最多可控制三百二十個段,而且能從五十二個LCD I/O引腳中選擇四十八個LCD引腳。設(shè)計人員還可選擇未使用的LCD引腳,用于實現(xiàn)SERCOM等協(xié)助工具或模擬功能。
此外,SLCD控制器還支持各種用于降低功耗的功能。例如可通過DMA將資料從SRAM/快閃記憶體發(fā)送到顯示器緩沖區(qū)。
硬體特征映射、自動位元映射(ABM)和閃爍(Blinking)功能能以極低的功耗改變段式LCD上顯示的內(nèi)容。這種改變無需大功率內(nèi)核。很多恒溫器在它們的顯示器上顯示當(dāng)前時間。閃爍功能用于顯示秒,同時也是段式LCD控制器的一個硬體功能。
除了能通過無線區(qū)域網(wǎng)路(WLAN)或藍(lán)牙遠(yuǎn)端更改設(shè)置或溫度之外,使用者還能在恒溫器上執(zhí)行這些任務(wù)。此MCU支援Atmel QTouch技術(shù),其中包括采用互電容觸控技術(shù)和自電容觸控技術(shù)的按鍵、滑塊和滾輪。該款MCU可為此類應(yīng)用提供足夠多的觸控通道。借助Atmel技術(shù),觸控按鍵直接整合到段式LCD的銦錫氧化物(ITO)層上。觸控輸入可用于升降溫度,或選擇其他房間中的加熱器或感測器。
智慧/觸控控制 恒溫器更聰明
該款恒溫器藉由RF監(jiān)測不同房間中的無線溫度感測器,并控制其中的加熱器。使用者可通過WLAN或低功耗藍(lán)牙協(xié)議、家用網(wǎng)路或互聯(lián)網(wǎng),并使用智慧手機對其進行控制,或直接使用觸控按鍵進行控制。
此MCU內(nèi)置的ADC能測量恒溫器周圍的溫度,其對來自溫度感測器的外部數(shù)值進行數(shù)位化處理。內(nèi)部溫度感測器可用于控制外部數(shù)值,以便進行交叉核對。而MCU的內(nèi)部溫度感測器提供兩點測量功能,精度為±1℃(0~60℃)。
另一條ADC通道也可用于測量電池電壓。欠壓檢測(BOD)功能可檢測出較低的電壓,并自動關(guān)閉系統(tǒng),以防出現(xiàn)故障。