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