確保基于微控制器的物聯網應用的安全性可能會很棘手。安全性始于硬件層次,然后擴展到嵌入式軟件。為了成功保障軟件安全,開發人員要求底層硬件支持以下等關鍵特性:
安全啟動
存儲器保護
加密引擎加速器
真隨機數發生器 (TRG)
安全引腳復用
軟件隔離
雖然 Arm? Cortex?-M 處理器(如 M0+、M3/4/7 系列)支持其中一些特性,但要打造成功的解決方案可能既困難又耗時。
開發人員可以在硬件層次上運用一種新解決方案,即使用基于 Armv8-M 架構的新型 Cortex-M23/33 系列微控制器。這些處理器在設計時就考慮了安全性,包含許多安全特性,例如前面列出的那些特性,包括用于微控制器的 Arm TrustZone?。通過本文,我們將更加熟悉 Armv8-M 架構,并探索如何利用 TrustZone 來提高嵌入式系統安全性。
Armv8-M 架構簡介
關于 Armv8-M 架構,首先要知道的是它是 Arm 的最新微控制器架構,面向低成本、深度嵌入的實時嵌入式系統而推出。該系列中加入了三款新型處理器:M23 是低功耗版本,M33 是高性能版本,最近推出的 M35P 是一款高性能、物理安全(防篡改)處理器(圖 1)。
相對于以前的幾代架構,Armv8-M 架構改善了性能,值得注意的幾項重要改進包括:
指令集增強功能
靈活的斷點配置
動態重設中斷優先級
增強的跟蹤支持
更簡單的存儲器保護單元 (MPU) 設置
該架構最大和最有意義的改進是能夠使用 Arm TrustZone。TrustZone 是該架構的安全擴展,允許開發人員從物理上隔離執行代碼與存儲區域,如 RAM、代碼空間和硬件中的外設。TrustZone 支持將軟件分拆到安全和不安全的區域中,然后在安全或非安全的處理器狀態下執行。安全狀態允許全面訪問處理器的存儲器和外設,而非安全狀態只能訪問非安全區域和故意暴露給非安全代碼的安全功能(圖 2)。
開發人員可以選擇哪些閃存和 RAM 位置屬于安全狀態,哪些屬于非安全狀態。當非安全代碼調用安全功能時,非安全和安全狀態之間的切換完全是在硬件中以確定的方式處理,在最壞的情況下,切換時間開銷為三個時鐘周期。CPU 中有幾個寄存器為安全狀態和非安全狀態所共享,但每個狀態還有自己的堆棧指針、故障和控制寄存器。M33 甚至還有一個堆棧限值寄存器,可用于檢測堆棧溢出。
值得注意的是,TrustZone 是一個處理器擴展,這意味著由器件是否包含 TrustZone 支持要由處理器制造商決定。既然 TrustZone 是可選的,下面我們就來了解目前可用的幾款 Armv8-M 處理器以及它們如何處理 TrustZone。
選擇支持 TrustZone 的 Armv8-M 處理器
目前有幾款處理器支持 Armv8-M 處理器。有意思的是,這些器件是如此新穎,以至于到 2018 年夏末,只有 Microchip Technology 一家制造商在生產。
其他處理器制造商(如 Nuvoton)已宣布即將推出此類器件。我們預計在未來 12 個月內,Armv8-M 器件數量將大幅增加,包括那些支持 TrustZone 的器件。
Microchip 主要生產兩個版本的 Armv8-M 架構,即 SAML10 和 SAML11 系列器件。SAML10 版本不包含 TrustZone,而 SAML11 版本則包含。圖 3 顯示了目前正在生產并供貨的 SAML10 和 SAML11 器件的所有型號。這些型號之間的主要區別在于 RAM、閃存、引腳和外設的有無及多少,這些是我們在選擇微控制器時會考慮的因素。
配置總結
SAM L10/L11 器件特定特性
對于希望開始使用 Armv8-M 的開發人員,有兩種開發套件可供選擇。Microchip SAML10 Xplained 評估板包括 SAM L10E14A 微控制器,后者含有 16 KB 閃存、2 KB 數據閃存、4 KB SRAM,并采用 32 引腳封裝。Microchip SAML11 Xplained 評估板包括 SAM L11E16A 微控制器,后者含有 64 KB 閃存、2 KB 數據閃存、16 KB SRAM,同樣采用 32 引腳封裝。除了處理器不同之外,開發板是相同的。圖 4 所示為 Xplained 板的圖片。
-
電路設計
+關注
關注
6677文章
2465瀏覽量
205349 -
物聯網
+關注
關注
2914文章
44939瀏覽量
377088
原文標題:架構在左,安全在右,物聯網電路設計該如何選擇?
文章出處:【微信號:cirmall,微信公眾號:電路設計技能】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論