善用市面上首款 Arm® Cortex®-M33 架構 MCU – 第 1 篇:管理功率與性能

作者:Stephen Evanczuk

資料提供者:DigiKey 北美編輯群

編輯說明:此系列文章分為兩個部分,本文是第 1 篇內容,將說明開發人員如何使用單一系列一般用途微控制器來滿足性能和低功耗的廣泛需求。第 2 篇則針對 NXP Semiconductors 的 LPC55S6x 微控制器,探討其內建的多種安全功能如何支援整個生命週期的安全性,從佈建和調試涵蓋到通訊、安全啟動和安全韌體更新作業。

開發人員不斷發現,為了在低功耗下獲得更高的應用性能,他們需要在眾多功能與應用當中,針對那些常常相互衝突的需求找到平衡點。這些應用包括物聯網 (IoT)、工業自動化、醫療系統和消費性裝置。此類應用對更高安全性的需求迅速增長,導致開發人員難以找到單一系列的微控制器,即可滿足廣泛多樣、不斷增加且相互衝突的設計需求。

為了解決這些問題,NXP Semiconductors 推出 LPC55S6x 系列微控制器。這些裝置將功能強大的一般用途核心,與高效的專用硬體和處理引擎加以結合,幫助開發人員解決問題。

識別並滿足不同的需求

連線型產品是從相對簡單的系統迅速演進而來,其中最具挑戰的設計需求通常都涉及一些通訊層面。現在,設計人員面對的是更具挑戰性的環境,每個應用區隔市場的需求不斷擴大,幾乎沒有任何妥協餘地。每個應用都要求開發人員根據需求轉移開發重點,以因應該應用特有的難題。然而,對更高性能和更低功耗的需求,是大多數主流應用領域共同的話題。

以智慧型工廠為例,不僅依賴低延遲的高性能裝置以進行訊號處理,而且工廠工程師會將更多此類裝置裝在狹小的空間內,因此也需要降低功耗。消費性穿戴式裝置不僅需要降低功耗的設計,以確保延長電池續航力,而且更面臨越來越多的訊號處理能力需求,以便處理更複雜的工作負載。在每個應用區隔市場中,設計人員都有日益升高的壓力,必須更有效地處理有關這些裝置、其網路以及企業資產的實際弱點問題,以免遭受來自個別網路黑盜、犯罪組織,甚至國家資助團體的即時攻擊或進階持續性威脅。

為了滿足這些不同的需求,開發人員通常必須選擇在在某些設計方面做出妥協。他們可能會犧牲應用性能換取較低的功耗,方法包括使用性能較低的處理器、降低時脈速率,或降低處理器的工作週期以支援低功耗狀態。為了滿足嚴格的性能要求,開發人員可能會採取相反的做法,使用更強大的處理器、更快的時脈速率,以及更高的工作週期,卻付出更大功耗的代價。對於運算更複雜的應用,可能會添加專用的數位訊號處理器 (DSP) 元件來加速演算法的執行,但這樣會提高設計複雜度、成本和系統功耗。即使在功耗和性能之間達到可接受的平衡,通常也必須接受設計成本和複雜度會跟著提高,以滿足安全要求。

即便設計人員面對這些需求而痛苦掙扎,但使用者對關鍵應用 (如醫療設備、工業自動化系統、零售支付裝置等) 的要求,卻越來越不願意妥協,甚至完全不讓步。NXP Semiconductors 的 LPC55S6x 微控制器系列透過一種架構,將一般用途處理器的靈活性與新興應用所需的特殊處理能力和安全性加以結合,協助設計人員擺脫妥協的困擾。

專用處理核心帶來的廣泛功能

NXP Semiconductors 的單核心 LPC55S66 和雙核心 LPC55S69 微控制器,是市場中首款採用 Arm® Cortex®-M33 架構的一般用途 MCU,充分運用內建於 Arm M 系列架構的低延遲、確定性效能。就架構增強功能而言,NXP 的 LPC55S6x 裝置含有該公司的高性能 PowerQuad DSP 加速器、CASPER 加密引擎 (帶 RAM 的加密加速器和訊號處理引擎),以及全方位的安全子系統。除了高達 640 KB 的快閃記憶體、高達 320 KB 的 SRAM 和 128 KB 的 ROM,LPC55S6x 裝置還整合大量功能要件,可滿足所有深度嵌入式系統設計通常的需求 (圖 1)。

NXP 的 LPC55S6x 微控制器架構圖圖 1:LPC55S6x 微控制器架構可擴充 Arm Cortex-M33 核心的一般用途處理能力,並搭配可用於訊號處理、加密、安全儲存和金鑰管理的專用硬體區塊,同時也提供典型嵌入式設計使用的全套周邊裝置。(圖片來源:NXP Semiconductors)

在這些要件中,LPC55S6x 裝置含有完善的計時器子系統、多個序列介面、安全的直接記憶體存取 (DMA) 控制器,以及多達 64 個一般用途 I/O (GPIO) 引腳。除了這些數位子系統,LPC55S6x 裝置還整合多通道 16 位元連續漸近暫存器 (SAR) 類比數位轉換器 (ADC)、類比比較器和溫度感測器。此外更具有晶片上可編程邏輯單元 (PLU),能讓開發人員利用此單元內的 26 個五輸入查找表 (LUT) 要件陣容,構建自訂組合式或順序邏輯 (包括狀態機)。開發人員可以存取 PLU 暫存器,直接對 PLU 進行編程以建構小型邏輯網路,或使用 NXP 工具,以 Verilog 暫存器傳輸語言 (RTL) 實作更大的網路。

為了避免在存取多個子系統時遭遇瓶頸,LPC55S6x 裝置納入多層匯流排矩陣,其中採用 Arm 先進微控制器匯流排架構 (AMBA) 的高性能匯流排 (AHB) 架構。AHB 匯流排矩陣可在匯流排主控和周邊裝置 (或記憶體) 之間,提供直接的連接。使用此方法就可達到 DMA 傳輸,例如在不影響處理器存取記憶體的性能下,以全速進行傳輸。事實上,在不同的設計需求下發揮處理器的最大效率正是 LPC55S6x 架構的根基。

在 LPC55S6x 架構中,Cortex-M33 核心提供多種功能,有助於設計人員更輕鬆因應不同的設計要求。與同類的其他裝置一樣,LPC55S6x 處理器也可支援數種低功耗模式。若長時間沒活動,開發人員可讓裝置進入關機模式,即可完全保留 SRAM,同時僅消耗 15.4 μA 電流;或是進入深度省電模式,維持供電給 4 KB SRAM,並消耗大約 0.59 μA 的電流。睡眠模式和深度睡眠模式皆會關閉處理器,同時針對周邊裝置和記憶體提供不同的運作等級:睡眠模式可提供完整運作並消耗大約 2.7 mA,而深度睡眠模式則會調控周邊裝置的時脈,將功耗降至大約 110 μA。

擴充功能

除了低功耗模式之外,LPC55S6x 架構還藉由整合式功能來擴充對多種設計需求的支援,藉此增強性能和安全性。這些整合功能內建在 Cortex-M33 主核心中,包括 Arm TrustZone 安全擴充元件 (SECEXT)、記憶體保護單元 (MPU)、IEEE 754 標準浮點單元 (FPU) 和嵌入式追蹤巨集單元 (ETM)。此外,主核心還包括 CASPER 加密引擎和 PowerQuad 加速器,可支援 DSP 和單指令多資料 (SIMD) 運算。

注意:這些額外功能不包含在雙核心 LPC55S69 微控制器所提供的第二個 Cortex-M33 核心中。

每個整合子系統和架構功能都提供豐富的功能組合,若要詳細說明,將會遠遠超出本文的範圍。舉例來說,PowerQuad DSP 加速器本身就是複雜的輔助處理器,能夠獨立運算訊號處理功能,同時作為匯流排主控來存取記憶體。

在 PowerQuad 加速器內部,結合了多個暫存器和介面並搭配一系列硬體引擎,可用於執行關鍵訊號處理功能,包括快速傅立葉轉換 (FFT)、離散餘弦轉換 (DCT)、無限脈衝回應 (IIR)、有限脈衝回應 (FIR),以及用來有效計算三角函數的坐標旋轉數位電腦 (CORDIC) 演算法 (圖 2)。

NXP Semiconductors 的 LPC55S6x 微控制器系列示意圖圖 2:NXP Semiconductors 的 LPC55S6x 微控制器系列整合了該公司的 PowerQuad 輔助處理器,以其專用引擎加速執行訊號處理應用通常所需的演算法。(圖片來源:NXP Semiconductors)

開發人員可運用 PowerQuad 加速器執行複雜的訊號處理操作,也不會影響主機處理器回應即時事件或完成一系列更多操作的能力。主機處理器只需使用必要的訊號處理功能來設定 PowerQuad 暫存器,並指定來源、目的地,以及運作記憶體區域的記憶體位址。一旦調用後,PowerQuad 加速器即可當作真正的輔助處理器進行操作,使用 AHB 矩陣並以匯流排主控的角色,執行 128 位元記憶體傳輸。同時,主機處理器可以立即返回至主要處理任務,定期輪詢 PowerQuad 的忙碌位元,或只要回應 PowerQuad 的完成中斷,以便存取結果。

但是,對於開發人員而言,PowerQuad 的操作絕大多數都是透明的。開發人員使用標準應用程式開發介面 (API) 處理 Arm Cortex 微控制器軟體介面標準 (CMSIS) 的 DSP 函式庫。NXP Semiconductors 的 MCUXpresso 軟體開發套件 (SDK) 包含支援 PowerQuad 的 NXP 版函式庫,此版本可透過 PowerQuad API 的調用來取代軟體中執行的低階數學函數。

例如,為了運算複數 FFT,開發人員使用標準 CMSIS-DSP 函數 arm_cfft_q31() 且資料為 Q 格式,這是 32 位元定點數,使用 1 個符號位元和 31 個指數位元。在單純的軟體實作中,調用 arm_cfft_q31() 函數會相應調用 CMSIS DSP FFT 蝶形軟體函數 arm_radix4_butterfly_q31() 和結束函數 arm_cfft_radix4by2_q31(),或處理複倒數 FFT 時則調用其反向版本。

但是,在使用 NXP 的 DSP 函式庫和 PowerQuad 時,正常調用 arm_cfft_q31() 反而會調用 PQ_TransformCFFT(),此函數會以硬體處理相同的計算。最終的結果不僅可降低 Cortex-M33 核心的處理負載,還可加快 DSP 函數的執行速度 (圖 3)。

MCUXpresso 軟體開發套件圖圖 3:MCUXpresso 軟體開發套件可大幅加速常見 DSP 演算法的執行速度,同時以對 PowerQuad 加速器的調用,直接取代低階 CMSIS-DSP 函數,藉此保持與標準 Arm CMSIS DSP 函式庫高階調用的相容性。(圖片來源:NXP Semiconductors)

另一個輔助處理器是 CASPER 加密引擎,也同樣可減輕主要處理器進行非對稱加密演算法時的繁重運算負載。CASPER 引擎的加密功能可執行 Rivest-Shamir-Adleman (RSA)、Diffie-Hellman、橢圓曲線加密 (ECC) 和橢圓曲線數位簽章演算法 (ECDSA),比起在 Cortex-M33 核心上執行的同等加密軟體,速度加快最多 8 倍。

為了加速對稱演算法的執行,LPC55S6x 還整合硬體區塊,以進行 256 位元先進加密標準 (AES-256) 和安全雜湊演算法 2 (SHA-2)。

這些硬體區塊和 CASPER 引擎的結合,可為開發人員提供硬體式支援,以執行常用於驗證和資料加密的加密演算法,藉此保護連線產品的資料交換作業。

正如本系列文章的第 2 篇所述,LPC55S6x 系列對安全性的支援遠超出基本的加密演算法,可在完整生命週期內提供所需的硬體式安全功能。

系統開發

開發人員可以使用 NXP 的 LPC55S69 EVK,迅速探索 LPC55S6x 微控制器的加密引擎、DSP 和一般用途處理功能。LPC55S69 EVK 是為了加速這些裝置的開發作業而設計,內含雙核心 LPC55S69 微控制器、NXP 的 MMA8652FCR1 加速計、LED、按鈕、除錯介面,並可支援多種擴充選項,包括 Arduino UNO、MikroElektronica Click 及 Digilent PMod 附加硬體。

開發人員可以使用多種跳接器和排針座,輕鬆設定不同的硬體配置,並仔細檢查性能細節 (圖 4)。例如,注重功耗的開發人員只需使用伏特計來測量排針座 P12 處的壓降,即可測量 LPC55S69 的電源電流。

NXP Semiconductors 的 LPC55S69 EVK 圖片 (按此放大)圖 4:NXP Semiconductors 的 LPC55S69 EVK 以該公司的雙核心 LPC55S69 微控制器為基礎建構,提供多種跳接器和排針座,能讓開發人員輕鬆進行配置,同時檢查微控制器的電流消耗量等性能細節。(圖片來源:NXP Semiconductors)

在開發工作中,設計人員可將板件搭配 MCUXpresso 整合開發環境 (IDE) 和 SDK 一起使用,後者則使用 LPC55S6x 專用的硬體,如上述的 PowerQuad 功能。此外,LPC55S69-EVK 也具有 IAR 和 Keil IDE 的支援。NXP 更提供免費軟體套件,內有範例程式碼,可示範主要的軟體設計樣版,以發揮 LPC55S6x 的功能。

結論

針對物聯網、工業自動化、醫療系統和消費性裝置等各種應用,開發人員皆希望在性能、低功耗和安全性之間取得平衡。如本文所述,LPC55S6x 系列微控制器具備功能強大的一般用途核心,以及專用的硬體和處理引擎,能讓開發人員以更輕鬆的方式滿足高性能專用功能的需求,同時限制功耗。

本系列文章的第 2 篇將說明如何使用 LPC55S6x 系列,在裝置的整個生命週期內管理其安全性。

DigiKey logo

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。

關於作者

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk 撰寫電子產業的相關資訊已有超過二十年的經驗,涉及的主題多元,涵蓋硬體、軟體、系統以及包含 IoT 在內的應用。他以神經元網路為研究主題,取得神經科學博士學位,並且在航太產業,針對廣泛運用的安全系統和演算法加速方法進行研究。目前,在撰寫科技和工程文章之餘,他投入辨識和推薦系統的深度學習應用。

關於出版者

DigiKey 北美編輯群