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

評論