電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 2551|回復: 1
收起左側

深圳沙井嵌入式培訓_FPGA的嵌入式系統(tǒng)

[復制鏈接]

2607

主題

2607

帖子

7472

積分

高級會員

Rank: 5Rank: 5

積分
7472
跳轉到指定樓層
樓主
發(fā)表于 2020-8-14 16:52:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
深圳沙井嵌入式培訓_FPGA的嵌入式系統(tǒng),   

如何防止器件“磚頭化”,只發(fā)出警告就夠了嗎?

“系統(tǒng)正在更新,請勿關閉電源。”我們都看到過這個警告,它通常在電子器件要在閃存安裝代碼更新時出現(xiàn)。如果更新被中斷,閃存將無法正確更新,代碼將會損壞,而器件無法運行,即“磚頭化” (bricked)。這種大家熟悉的警告存在的原因,是因為使用閃存的大多數(shù)半導體器件在編程或擦除操作期間需要一直供電。顯然,防止器件“磚頭化”是非常重要的。但是,只發(fā)出警告就夠了嗎?有些嵌入式器件甚至都沒有用戶顯示器,因此無法產(chǎn)生警告。在設計中如何才能確?煽壳野踩倪h程系統(tǒng)更新呢?

嵌入式系統(tǒng)遠程升級的重要性

遠程升級對連接的嵌入式系統(tǒng)日益重要。通過互聯(lián)網(wǎng)遠程修復漏洞或增加新特性,可以節(jié)省大量的維護費用;當部署數(shù)千個嵌入式系統(tǒng)時,維護便是一個大問題了。隨著嵌入式系統(tǒng)安全問題的不斷增加,通過遠程安全定向代碼升級來修復潛在安全漏洞變得愈發(fā)重要。顯然,升級必須安全地完成,否則,攻擊算法便很容易利用不安全的更新來破壞系統(tǒng)。下面是一個典型系統(tǒng)的示例,有助于更好地了解安全可靠的遠程升級設施的要求。

系統(tǒng)示例——控制平面橋

通信或網(wǎng)絡機箱內(nèi)的控制平面橋(Control Plane Bridge),是需要遠程更新的常見系統(tǒng)示例。這種子系統(tǒng)匯集了許多低速外設,比如模擬傳感器、電源管理模塊、風扇、故障記錄存儲器和利用I2C、 SPI和GPIO接口的狀態(tài)輸出。然后,可以采用速度更快的總線——可能是通信和連網(wǎng)機箱內(nèi)很常見的子系統(tǒng)接口PCIe,與低速外設直接通信。這種機箱控制子系統(tǒng)能夠?qū)嵤┲悄軈R聚功能,當規(guī)定啟動點被激活,例如到達最高溫度或最低電壓水平時,便會“推進”通信。圖1所示就是這樣一個系統(tǒng),它是用配備片上微控制器的FPGA (通常稱為SoC FPGA) 實現(xiàn)的。

  
  




圖1 經(jīng)PCIe遠程升級的機箱控制平面橋

FPGA和閃存

在上面的例子中,遠程更新經(jīng)由PCIe總線實現(xiàn),但并未對編程期間可能出現(xiàn)的斷電進行保護。讓我們看看常見的FPGA實施類型,從而更好地防范閃存遠程更新過程中突然斷電時可能出現(xiàn)的重大故障。

幾乎每個基于FPGA的系統(tǒng)都需要采用某種形式的非易失性存儲器來儲存配置存儲。一般說來,配置存儲器位于芯片外或芯片上;赟RAM的FPGA需要外部閃存,用于上電時的配置;陂W存的FPGA可以使用嵌在FPGA結構(結構嵌入閃存FPGA)內(nèi)的配置存儲器,或使用基于SRAM的結構,但將一個閃存塊放在芯片上(側面閃存FPGA)。

基于SRAM的FPGA通常使用NOR SPI閃存,因為它消耗的引腳數(shù)最少,幾家供應商有同樣的引腳輸出,而且密度高達1 Gb。目前的NOR SPI閃存器件擁有32位地址選擇,可擴展成為4GB器件,而且不需要改變指令和控制協(xié)議。當這種SPI閃存處于程序或擦除模式 (電荷泵啟動) 且電力消失時,會發(fā)生什么事情呢?電荷在哪里消失?是否有電路檢測到這些閃存的電力故障并將電荷安全地引導到地面?一般說來,正被寫入的頁面將出現(xiàn)數(shù)據(jù)損壞。

  
  




圖2 三種FPGA配置圖:帶外部配置閃存的基于SRAM的FPGA、側面閃存FPGA和嵌入閃存FPGA

側面閃存FPGA系統(tǒng)采用較寬的片上數(shù)據(jù)總線在上電時載入基于SRAM的配置存儲。通常,這種方法載入配置比基于SRAM的FPGA要快,因為后者是采用外部閃存來配置器件的。但是,這種方法存在程序或擦除周期期間功率損失的問題。電荷去了哪里?閃存是否被破壞?是否僅寫入頁面被破壞?整個閃存都存在風險?FPGA是否能夠檢測被破壞的片上存儲器,或者,在上電期間,被破壞的數(shù)據(jù)是否被載入到配置存儲器內(nèi)?嵌入式小區(qū)工作小結, 嵌入式培訓去哪, 嵌入式在二三線城市, 嵌入式掃描儀模塊, 嵌入式c防御性編程, 嵌入式硬件基本知識, 嵌入式培養(yǎng)能考研嗎, 工控行業(yè)轉行嵌入式, 什么叫嵌入式教學, 嵌入式安防系統(tǒng)設計, 基于qt嵌入式論文, 嵌入式需要什么語言, 嵌入式軟件要怎么學, 嵌入式鋁扣板怎么拆, 軟考中級嵌入式題型, 嵌入式數(shù)據(jù)庫的特點, 歐式嵌入式床墊, 嵌入式海關鎖怎么用, 嵌入式開發(fā)板哪個好, 無硬件學嵌入式, 嵌入式gui技術,

閃存的破壞是個問題,如何確保遠程數(shù)據(jù)的安全也非常重要。當嵌入式產(chǎn)品可由終端用戶訪問時,就存在被篡改的可能。為了防止攻擊,必須同時采用軟件和硬件的安全功能。僅對遠程配置數(shù)據(jù)文件進行加密遠遠不夠。雖然這種軟件加密安全有用,但是還必須將解密數(shù)據(jù)的硬件 (FPGA) 置于安全保護內(nèi)。當用戶訪問嵌入式器件時,加密數(shù)據(jù)文件很容易被提取。利用價格便宜的電磁探針和進行差分功耗分析 (DPA) 即可實現(xiàn)這一點。采用這種方法提取FPGA安全密匙的例子很多。如果FPGA并未內(nèi)置DPA對抗措施,則任何遠程更新都存在安全風險。當用戶能夠訪問嵌入式產(chǎn)品時,如果沒有DPA對抗措施,便如同中門大開,沒有安全可言。

在嵌入閃存的FPGA中,配置儲存在芯片上,并緊密集成在FPGA結構內(nèi)。例如,在美高森美SmartFusion2和IGLOO2 flash FPGA上,可經(jīng)由外部通信端口如USB、PCIe或JTAG等進行編程,整個編程過程由片上專用編程接口管理。此外,SmartFusion2和 IGLOO2 FPGA使用了一種稱為“在應用中編程”(IAP)的高級編程機制,即便在編程期間有功率損耗的情況下,仍可提供可靠且安全的編程。讓我們看看如何采用 IAP機制來實現(xiàn)目前嵌入式系統(tǒng)需要的可靠遠程升級的能力。

在基于FPGA的嵌入式系統(tǒng)中實現(xiàn)可靠且安全的遠程更新

嵌入閃存的FPGA可以提供更容易支持安全可靠的遠程更新所需的關鍵功能。例如,SmartFusion2擁有實施關鍵橋接功能及安全和IAP功能需要的所有主流FPGA特點。如圖3所示,低速接口可以采用I2C和GPIO連接。高速主機接口PCIe則作為不需要FPGA結構的專用端口。

  
  




圖3 SmartFusion2“在應用中編程”(IAP)支持機箱控制平面橋,以實現(xiàn)安全可靠的遠程更新

片上處理器可以利用高速存儲子系統(tǒng)(HSMS)訪問大型內(nèi)部閃存來進行代碼儲存,訪問大型內(nèi)部SRAM來進行數(shù)據(jù)緩沖,而專用DDR控制器則在有需要時訪問其它外部存儲器。專用系統(tǒng)控制器提供編程期間使用的安全功能,以及遠程更新期間使用的IAP功能。圖4詳細描述了SmartFusion2 FPGA上可以提供的關鍵功能。[!--empirenews.page--]

  
  




圖4 美高森美SmartFusion2 SoC FPGA擁有主流特點及可靠的安全和遠程更新能力

利用“在應用中編程”來實現(xiàn)安全可靠的升級

SmartFusion2和IGLOO2提供的IAP機制是一種安全可靠地遠程更新配置比特流的方法。IAP在FPGA內(nèi)由專用系統(tǒng)控制器執(zhí)行,因此并不需要使用任何FPGA結構或其它用戶可配置邏輯。IAP功能采用一個外部SPI閃存器件,是一個兩步過程。在第一步中,外部SPI閃存器件通過任何可用的接口,比如PCIe、USB、JTAG甚至以太網(wǎng),用需要的比特流編程。用于SmartFusion2器件編程的所有比特流都進行了加密,以確保它們不會被篡改。

在第二步中,系統(tǒng)控制器通過系統(tǒng)服務請求執(zhí)行IAP服務。用戶向系統(tǒng)控制器提供指針,指向外部SPI閃存內(nèi)比特流位置的初始地址。IAP系統(tǒng)服務請求也有三個用戶選項:認證、編程或驗證。認證通常是在FPGA配置存儲器編程之前執(zhí)行的,以驗證SPI閃存內(nèi)的比特流適用于正在編程的器件。在認證期間,器件正常運行。

包含新比特流的外部SPI閃存還包含一個額外的鏡像,即用作恢復目的的一個好版本。用戶可以在任何時間點使用恢復鏡像將FPGA配置為良好狀態(tài);謴顽R像可以 “原樣”保存,也可在需要時進行更新以便用于關鍵漏洞的修復。

IAP功能實施期間可以使用程序恢復功能。若編程期間斷電,啟動編程恢復,系統(tǒng)控制器會以可控的方式將編程FPGA的內(nèi)部電荷泵禁動。在接下來的供電周期中,在啟動FPGA結構之前,系統(tǒng)控制器將檢測到器件編程操作已經(jīng)被中斷,它將從外部SPI閃存中的比特流啟動編程周期。用戶可選擇從好的鏡像進行更新或從剛剛推送到SPI閃存的遠程更新鏡像進行更新。當外部比特流被載入到SmartFusion2 FPGA內(nèi)時,它采用內(nèi)置的DPA對抗邏輯,以確保沒有電磁探針能夠?qū)⒓用艹捉饷,從而為嵌入式系統(tǒng)提供可信任的安全器件。

與安全加密比特流和比特流驗證一起使用,程序恢復可提供目前連接的嵌入式系統(tǒng)需要的安全可靠的遠程編程更新機制,即使FPGA配置存儲器在編程的過程中斷電也一樣。
回復

使用道具 舉報

發(fā)表回復

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關閉

站長推薦上一條 /1 下一條


聯(lián)系客服 關注微信 下載APP 返回頂部 返回列表