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