利用FPGA新特性實現(xiàn)高可靠性汽車系統(tǒng)設計
目前,汽車中使用的復雜電子系統(tǒng)越來越多,而汽車系統(tǒng)的任何故障都會置乘客于險境,這就要求設計出具有“高度可靠性”的系統(tǒng)。同時,由于FPGA能夠集成和實現(xiàn)復雜的功能,因而系統(tǒng)設計人員往往傾向于在這些系統(tǒng)中采用 FPGA。不過,將FPGA用于汽車系統(tǒng)時需要關注兩個主要問題:確保用于FPGA初始化的配置代碼正確無誤;防止器件工作時SRAM的內容遭到損壞。只有這些問題得到徹底解決,F(xiàn)PGA才能成為高度可靠汽車系統(tǒng)的組成部分。幸運的是,目前通過AEC-Q100認證的FPGA已加入先進的特性,能夠有效解決上述問題。本文介紹的幾個方案可用于解決保護初始化配置和防止?jié)撛诘腟RAM內容損壞的問題。
本文引用地址:http://m.butianyuan.cn/article/192163.htm保護FPGA的配置
隨著系統(tǒng)上電,基于SRAM的FPGA將從外部源加載其配置。引導源可以是存儲器件,如串行EEPROM或Flash ,也可以是智能器件,如微控制器。針對初始化位流,所有的FPGA都具有某種類型的循環(huán)冗余校驗(CRC),在啟動結束時進行測試,檢驗傳送是否完整。如果在位流中檢測到一個差錯,F(xiàn)PGA將無法初始化。這可以防止系統(tǒng)產生錯誤的(也可能是危險的)操作。大多數的FPGA將通過對一個外部引腳置位,來告知系統(tǒng)控制器初始化失敗,請求另一個初始化序列,以期取得配置成功。在遇到以下幾種情況時,會發(fā)生初始化位流的損壞情況:
* 引導存儲器的硬件故障
* 存儲器內容保存的問題
* 蓄意篡改
* 存儲器內容被擦除
* 電氣噪聲
利用FPGA設計高可靠性的汽車系統(tǒng)時,為了正確處理這些情況,必須遵循以下四個基本步驟:
第一步是使用具有片上閃存的非易失性SRAM FPGA。這改變了從外部存儲器引導配置載入FPGA內部的方式。采用將引導源移入同一塊芯片的方法消除了許多常見的初始化失敗模式。這種類型的集成設計還提升了初始化速度,可在即時啟動系統(tǒng)中使用這種FPGA。
第二步是添加一個可靠的外部自行引導器件(圖1) 。FPGA的一個主要特點是能夠現(xiàn)場重復編程。對汽車系統(tǒng)而言,這一特性允許下載新的程序,用于授權的現(xiàn)場更新,修復設計錯誤或添加額外的功能。不過,在傳輸和對存儲器編程期間,數據流可能被損壞,而且損壞的數據流會阻止正確的FPGA初始化。為了應對更新過程中的損壞,在外部存儲器件中已復制了初始化代碼,稱為“golden”的廠家備份。即便有任何問題,存儲在內部存儲器的配置代碼都可以使該系統(tǒng)得到恢復。通過添加第二個引導器件,就能夠保證廠家備份,或至少可以具有“間接恢復”系統(tǒng)的功能。
圖1 FPGA雙引導系統(tǒng)
第三步是保護存儲在外部存儲器件中的位流備份,采用位流加密來保護引導配置代碼(圖2)。許多車用FPGA系列支持128位AES位流加密,以防止逆向工程和未經授權地對設計進行更改。在外部引導器件中存儲著加密的配置代碼,可以在初始化時譯碼,然后再移入SRAM單元。同樣的加密機制也可以用來將一個新的配置代碼載入內部閃存。
圖2 外部引導的AEC譯碼或Flash編程位流。
第四個也是最后一個步驟是“鎖定”FPGA,以防止未經許可進入存儲配置。用非易失性FPGA內部的可編程寄存器控制對內部配置存儲器的訪問。可能的組合情況如下:1)解鎖。 2)可解密鎖定-通過編程接口提供的128位密鑰能夠使器件解鎖。3)永久鎖定-器件被永久鎖定。
為了進一步加強器件的安全性,可用一次性可編程(OTP)模式。一旦器件設置成這個模式,就不可能擦除閃存的內容或對器件再次編程。
選擇車用級的通過AEC - Q100認證的非易失性FPGA時,審查制造商的非易失閃存的耐久性和數據保存指標是很重要的,這將確保車輛運行時和處于貯藏溫度時FPGA都能正確保存其存儲器內容。例如,LatticeXP2是唯一非易失性的通過AEC - Q100認證的SRAM /Flash FPGA,它能滿足所有這些系統(tǒng)的要求。LatticeXP2的片上閃存允許大范圍地對整個器件進行存儲器測試,確保即使器件在最高溫度下連續(xù)工作,至少10年內存儲器的內容都不會丟失。
評論