較長的電池續(xù)航時間,,對提高消費(fèi)類設(shè)備的用戶滿意度至關(guān)重要,。對于電池供電的物聯(lián)網(wǎng) (IoT) 端點,,延長電池續(xù)航時間可降低維護(hù)成本,,提高可靠性,。由于這些設(shè)備所使用的微控制器功耗相對較大,,因此設(shè)計人員需要選擇并應(yīng)用合適的架構(gòu)以滿足這些應(yīng)用的需求。事實證明,,多數(shù)情況下16位微控制器正是最佳選擇,。
雖然8位微控制器的功能逐漸強(qiáng)大,但是鑒于處理能力和可尋址存儲器有限,,性能上存在固有限制,,以致于高性能應(yīng)用通常不會選用8位微控制器。另一方面,,基于32位內(nèi)核的系統(tǒng)對于這些應(yīng)用往往又稍顯過火,,尤其是導(dǎo)致不必要的功耗過大時。
解決方案恰恰位于8位和32位內(nèi)核中間的平衡點——16位微控制器,。這類器件既像簡單的單電源8位微控制器一樣功耗較低,,又具有32位內(nèi)核的部分性能和存儲器優(yōu)勢。如果應(yīng)用不要求很多線程同時處理,,存儲器要求也不太高,,那么16位微控制器可以提供適當(dāng)?shù)男阅芩讲⒛茱@著節(jié)能。
本文介紹了16位微控制器的架構(gòu)及其如何成為許多電池供電的消費(fèi)類設(shè)備和物聯(lián)網(wǎng)端點應(yīng)用的最佳選擇,。此外,,還介紹了Microchip Technology和Texas Instruments推出的幾款16位微控制器,并說明如何使用16位內(nèi)核著手設(shè)計,。
微控制器選型
在設(shè)計過程中,,定義項目要求后的第一步就是為應(yīng)用選擇合適的微控制器。三種主流選項分別是8位,、16位和32位微控制器,。
不夸張地說,8位微控制器應(yīng)用極為普遍,,堪稱設(shè)計人員的主力器件,。低成本、低功耗的8位微控制器幾乎適用于任何小功率應(yīng)用:主流微控制器中功耗最低的器件,,某些器件待機(jī)電流低于100nA,。
使用也相對簡單,,8位微控制器大多基于累加器,盡管一些較新的架構(gòu)具有寄存器組,,因而編程模型簡單且有限:累加器或帶單個狀態(tài)寄存器的小寄存器組,、堆棧指針,以及一個或多個變址寄存器,。堆棧往往都是硬件堆棧,,并且固件無法訪問程序計數(shù)器 (PC)。
盡管8位架構(gòu)廣受青睞,,可一旦涉及網(wǎng)絡(luò)和通信就遇到了瓶頸,。幾乎所有通信堆棧和網(wǎng)絡(luò)協(xié)議都采用16位或32位,因此不必考慮8位架構(gòu),。此外,,即便是高端8位微控制器也往往局限于16位尋址,不具備分頁機(jī)制,,限制了固件的大小和復(fù)雜性,。
另一方面,32位微控制器在所有高性能應(yīng)用中廣泛應(yīng)用,?;诩拇嫫鞯募軜?gòu)可輕松支持網(wǎng)絡(luò)和通信;通常使用32位尋址,,支持浮點運(yùn)算和高等代數(shù)運(yùn)算,,并且時鐘速率可達(dá)千兆赫級。32位內(nèi)核具有更復(fù)雜的編程模型,,包括多個狀態(tài)寄存器,、固件可訪問的PC,、復(fù)雜的中斷管理以及兩層或多層固件執(zhí)行權(quán)限,。
16位微控制器雖都基于寄存器,但架構(gòu)同8位內(nèi)核一樣簡單,。因此,,16位內(nèi)核往往都具有良好的低功耗性能,電流消耗明顯低于32位架構(gòu),,功耗則幾乎與8位內(nèi)核一樣低,。如果應(yīng)用需要進(jìn)行高等數(shù)學(xué)運(yùn)算,一些16位微控制器具有數(shù)學(xué)協(xié)處理器,,在相同的內(nèi)部時鐘速度下其數(shù)學(xué)性能可與32位內(nèi)核媲美,。
此外,許多通信協(xié)議棧都支持16位微控制器聯(lián)網(wǎng),。對于以太網(wǎng),、CAN,、USB和Zigbee 等協(xié)議棧,只要應(yīng)用程序代碼的性能足以支持堆棧,,那么使用16位微控制器的運(yùn)行速度可與32位微控制器一樣快,。
支持大型閃存陣列尋址
32位與16位架構(gòu)的一大差異在于存儲器尋址范圍。32位微控制器具有32位地址總線,,可以訪問高達(dá)4GB的存儲器,。傳統(tǒng)16位微控制器使用16位尋址,只能訪問64KB的存儲器,。不過,,如今許多16位架構(gòu)都使用高達(dá)24位的擴(kuò)展尋址,相當(dāng)于擴(kuò)充了16MB的地址空間,。
Microchip Technology的低功耗 PIC24F微控制器系列是擴(kuò)展尋址方式的典型范例,。其中一款微控制器PIC24FJ1024GA,32MHz的16位微控制器具有1MB的板載閃存和32KB的板載SRAM,,使用類似于許多8位微控制器的簡單編程模型(圖1),。
圖1:Microchip的PIC24F編程模型類似于高端8位微控制器,采用基于寄存器的架構(gòu),,具有16個通用16位寄存器,、堆棧指針、PC和5個輔助寄存器,。(圖片來源:Microchip Technology)
PIC24具有23位程序計數(shù)器,,可以訪問高達(dá)8MB的程序閃存。16個16位寄存器,,稱為工作寄存器(WREG),,記作W0至W15:W0至W13寄存器是通用寄存器 (GP),可在固件控制下用于存儲數(shù)據(jù),;W15 是專用堆棧指針 (SP),,除了可以通過函數(shù)和子例程調(diào)用、編程異常處理和調(diào)用返回使其自動遞增和遞減外,,SP也可如W0至W13寄存器一樣通過固件修改,。
使用LINK和UNLINK匯編指令可將W14用作堆棧幀指針 (FP)。堆棧指針限制寄存器 (SPLIM) 是一個獨(dú)立寄存器,,可與SP配合使用以防止堆棧溢出,。
PIC24采用具有獨(dú)立地址和數(shù)據(jù)空間的哈佛架構(gòu)。與特殊指令配合使用,,數(shù)據(jù)表頁地址 (TBLPAG) 寄存器和程序空間可視性頁地址 (PSVPAG) 寄存器可用于訪問并在地址和數(shù)據(jù)空間之間傳輸數(shù)據(jù),。這是32位架構(gòu)的常用功能,但8位內(nèi)核卻鮮少具備,。
16位重復(fù)循環(huán)計數(shù)器 (RCOUNT) 寄存器包含循環(huán)計數(shù)器,,可用于REPEAT匯編指令,。
16位CPU內(nèi)核控制 (CORCON) 寄存器用于配置PIC24內(nèi)核的內(nèi)部操作模式。
最后,,16位狀態(tài)寄存器包含PIC24內(nèi)核狀態(tài)的工作狀態(tài)位,,包括上次執(zhí)行匯編指令所產(chǎn)生的結(jié)果狀態(tài)。
根據(jù)Microchip Technology對PIC24FJ1024GA606T的性能評定,,工作頻率為32MHz時可達(dá)16MIPS,。對于16位內(nèi)核而言,這一指標(biāo)著實令人印象深刻,。該內(nèi)核具有32位微控制器的許多功能,,例如同時支持分?jǐn)?shù)運(yùn)算的17位 × 17位硬件乘法器以及32位/16位硬件除法器。對于需要對傳感器數(shù)據(jù)進(jìn)行計算的物聯(lián)網(wǎng)端點而言,,這些功能相當(dāng)管用,。此外,該架構(gòu)還可以同時讀寫數(shù)據(jù)存儲器,,卻絲毫不影響性能,。
雖然PIC24FJ1024GA606T具有USB OTG等多種標(biāo)準(zhǔn)外設(shè),但在電池供電應(yīng)用中其功耗相當(dāng)?shù)?。所需的供電電壓僅為2.0V至3.6V,,微控制器以32MHz的工作頻率全速運(yùn)行時電流消耗最大值為7.7mA,換作是32位內(nèi)核則極難實現(xiàn)這一指標(biāo),。通過固件可以控制核心和外設(shè)時鐘,。目前有兩種使器件進(jìn)入低功耗模式的匯編指令:IDLE指令使PIC24內(nèi)核停止運(yùn)行,但外設(shè)可以繼續(xù)工作,;SLEEP指令將停止除看門狗(可選)和外部中斷檢測外所有器件的操作,。空閑模式下,,最大電流僅為2.8mA,,而休眠模式下,最大電流范圍為10至45?A,,具體取決于外設(shè)配置,。在最低功耗模式,,即休眠模式下,,仍保存隨機(jī)存取存儲器(RAM) 中的內(nèi)容,PIC24F的消耗電流低至190nA,。
為了獲得更高的性能,,Microchip Technology在dsPIC?系列中推出高端16位微控制器。Microchip的dsPIC33EP512GP506T是其中一款16位70MIPS微處理器,,具有512KB的閃存,。dsPIC的內(nèi)核寄存器與PIC24大致相同,,只是增加了支持?jǐn)?shù)字信號處理 (DSP) 指令的寄存器,包括兩個40位累加器且支持32位乘法,。如需對PIC24進(jìn)行系統(tǒng)內(nèi)升級,,PIC24微控制器大多可以進(jìn)行引腳兼容的dsPIC升級,因而使用同一塊印刷電路板亦可提高性能,。
當(dāng)然,,性能越高,功率也就越大,。這款dsPIC33的供電電壓為3.0至3.6V,,運(yùn)行速度達(dá)70MIPS時,最大電流為60mA,。
降低功耗,,提高性能
Texas Instruments的MSP430FR599x微控制器系列采用該公司的鐵電隨機(jī)存取存儲器 (FRAM) 程序存儲器,實現(xiàn)更高的讀/寫性能,,而功耗較之閃存微控制器更低,。
MSP430FR5994IPNR16位微控制器是該系列產(chǎn)品之一,時鐘頻率達(dá)16MHz,,具有256KB的FRAM,。
MSP430FR微控制器內(nèi)核的性能增強(qiáng)功能包括雙向關(guān)聯(lián)緩存(由四個行寬為64字節(jié)的緩存塊組成),從而實現(xiàn)更高的FRAM性能,;32位硬件乘法器可提高數(shù)學(xué)密集型操作的性能,;以及獨(dú)立于MSP430主內(nèi)核的低能耗加速器 (LEA) 協(xié)處理器。該LEA可執(zhí)行256點復(fù)數(shù)快速傅立葉變換 (FFT),、有限沖激響應(yīng) (FIR) 濾波器和矩陣乘法,。根據(jù)TI的介紹,矩陣乘法的運(yùn)算速度比Arm? Cortex?-M0+最多快40倍,。該LEA可提高傳感器融合操作,、圖像增強(qiáng)和超聲波傳感器數(shù)據(jù)處理的性能。面對這些應(yīng)用時,,開發(fā)人員通常都優(yōu)先考慮32位內(nèi)核,,而非超低功耗的16位微控制器。
MSP430R的編程模型非常簡單(圖2),,共有16個16位寄存器R0至R15:R0是程序計數(shù)器,,R1是堆棧指針,R2是狀態(tài)寄存器,,R3是常數(shù)發(fā)生器(用于立即操作數(shù)),,R4至R15是通用寄存器。其他寄存器配置則采用內(nèi)存映射方式,與多數(shù)32位內(nèi)核類似,。
圖2:MSP430微控制器寄存器組配置與其他基于寄存器的16位內(nèi)核類似,。其他寄存器配置則采用內(nèi)存映射方式。(圖片來源:TexasInstruments)
雖然提高了性能,,卻絲毫沒有增加功耗,。待機(jī)模式下,TI的MSP430FR5994以實時時鐘(RTC) 運(yùn)行,,電流消耗僅為350nA,。關(guān)斷模式下,電流消耗僅為45nA,。這一指標(biāo)低于目前市面上任何一款32位微控制器,,甚至低于多數(shù)8位微控制器。
MSP430FR5994IPNR的工作電壓范圍為1.8至3.6V,。固件以FRAM運(yùn)行而緩存命中率為零時,,MSP430FR的電流消耗僅為3mA。若從緩存運(yùn)行代碼,,則電流消耗僅為790?A,。結(jié)合LEA,這款16位微控制器可提供極高的處理性能和極低的功耗,。
通過TI的MSP-EXP430FR5994 LaunchPad?可輕松開發(fā)MSP430FR5994系列的低功耗應(yīng)用,。該LaunchPad開發(fā)套件包含了開發(fā)人員著手MSP-EXP430FR5994微控制器編碼和固件調(diào)試所需的一切(圖3)。
圖3:TI 的MSP-EXP430FR5994LaunchPad具有開發(fā)人員上手MSP-EXP430FR5994 16 位FRAM微控制器編碼和固件調(diào)試所需的一切,。(圖片來源:Texas Instruments)
該LaunchPad具有兩個按鈕,、兩個LED和一個microSD卡插槽。為了證明MSP430FR5994微控制器的低功耗性能,,該LaunchPad具有0.22F的超大電容為LaunchPad供電,。將LaunchPad接入外部電源并將跳線J8設(shè)置為“充電”,即可為電容充電,。只需2至3分鐘就可將電容完全充滿,。三分鐘后,將跳線J8設(shè)置為“使用”,,移除外部電源,,MSP430即可運(yùn)行數(shù)分鐘,具體視應(yīng)用而定,。
此外,,該LaunchPad還可用于測量MSP430及其應(yīng)用的電流消耗。J101隔離塊具有包括3V電源跳線3V3在內(nèi)的七根跳線,。移除跳線3V3,,即可通過這兩個引腳測量應(yīng)用的電流,。
該LaunchPad還支持TI的EnergyTrace?技術(shù),,可以連接計算機(jī)使用Texas Instruments的EnergyTrace圖形用戶界面 (GUI),,使開發(fā)人員能夠?qū)崟r觀測MSP430微控制器和應(yīng)用的功耗數(shù)據(jù),從而微調(diào)應(yīng)用以實現(xiàn)最低功耗,。
例如,,實時電流監(jiān)控和記錄可以顯示MSP430微控制器的電流消耗偶爾出現(xiàn)激增。電流激增會降低電池質(zhì)量,,縮短電池壽命,。電流激增可能緣于片上外設(shè)的錯誤配置、外部電感或電容負(fù)載,,甚至是由于固件試圖同時啟動所有功能,。通過電流監(jiān)控和記錄,開發(fā)人員可以明確應(yīng)該如何調(diào)整固件,,從而控制尖峰電流,。
總結(jié)
對于許多低功耗、中等性能的電池供電嵌入式應(yīng)用而言,,開發(fā)人員可以選擇合適的16位微控制器,,而非32位內(nèi)核。如上所述,,在許多應(yīng)用中,,16位微控制器的功耗比32位內(nèi)核低得多,卻仍然可以實現(xiàn)所需的性能,。