《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 利用FPGA新特性實現(xiàn)高可靠性汽車系統(tǒng)設計

利用FPGA新特性實現(xiàn)高可靠性汽車系統(tǒng)設計

2011-01-16
作者:Kerry Howell 萊迪思半導體公司

      目前,汽車中使用的復雜電子系統(tǒng)越來越多,而汽車系統(tǒng)" title="汽車系統(tǒng)">汽車系統(tǒng)的任何故障都會置乘客于險境,,這就要求設計出具有“高度可靠性”的系統(tǒng),。同時,由于FPGA" title="FPGA">FPGA能夠集成和實現(xiàn)復雜的功能,,因而系統(tǒng)設計人員往往傾向于在這些系統(tǒng)中采用 FPGA。不過,將FPGA用于汽車系統(tǒng)時需要關注兩個主要問題:確保用于FPGA初始化的配置代碼正確無誤,;防止器件工作時SRAM的內容遭到損壞。只有這些問題得到徹底解決,,F(xiàn)PGA才能成為高度可靠汽車系統(tǒng)的組成部分,。幸運的是,目前通過AEC-Q100認證的FPGA已加入先進的特性,,能夠有效解決上述問題,。本文介紹的幾個方案可用于解決保護初始化配置和防止?jié)撛诘腟RAM內容損壞的問題。

保護FPGA的配置

       隨著系統(tǒng)上電,,基于SRAM的FPGA將從外部源加載其配置,。引導源可以是存儲器件,,如串行EEPROM或Flash ,也可以是智能器件,,如微控制器,。針對初始化位流,所有的FPGA都具有某種類型的循環(huán)冗余校驗(CRC),,在啟動結束時進行測試,,檢驗傳送是否完整。如果在位流中檢測到一個差錯,,F(xiàn)PGA將無法初始化,。這可以防止系統(tǒng)產(chǎn)生錯誤的(也可能是危險的)操作。大多數(shù)的FPGA將通過對一個外部引腳置位,,來告知系統(tǒng)控制器初始化失敗,,請求另一個初始化序列,以期取得配置成功,。在遇到以下幾種情況時,,會發(fā)生初始化位流的損壞情況:

* 引導存儲器的硬件故障

* 存儲器內容保存的問題

* 蓄意篡改

* 存儲器內容被擦除

* 電氣噪聲

利用FPGA設計高可靠性的汽車系統(tǒng)時,為了正確處理這些情況,,必須遵循以下四個基本步驟:

第一步是使用具有片上閃存的非易失性SRAM FPGA,。這改變了從外部存儲器引導配置載入FPGA內部的方式。采用將引導源移入同一塊芯片的方法消除了許多常見的初始化失敗模式,。這種類型的集成設計還提升了初始化速度,,可在即時啟動系統(tǒng)中使用這種FPGA。

第二步是添加一個可靠的外部自行引導器件(圖1) ,。FPGA的一個主要特點是能夠現(xiàn)場重復編程,。對汽車系統(tǒng)而言,這一特性允許下載新的程序,,用于授權的現(xiàn)場更新,,修復設計錯誤或添加額外的功能。不過,,在傳輸和對存儲器編程期間,,數(shù)據(jù)流可能被損壞,而且損壞的數(shù)據(jù)流會阻止正確的FPGA初始化,。為了應對更新過程中的損壞,,在外部存儲器件中已復制了初始化代碼,稱為“golden”的廠家備份,。即便有任何問題,,存儲在內部存儲器的配置代碼都可以使該系統(tǒng)得到恢復。通過添加第二個引導器件,,就能夠保證廠家備份,,或至少可以具有“間接恢復”系統(tǒng)的功能,。
 

圖1 FPGA雙引導系統(tǒng)


第三步是保護存儲在外部存儲器件中的位流備份,采用位流加密來保護引導配置代碼(圖2),。許多車用FPGA系列支持128位AES位流加密,,以防止逆向工程和未經(jīng)授權地對設計進行更改。在外部引導器件中存儲著加密的配置代碼,,可以在初始化時譯碼,,然后再移入SRAM單元。同樣的加密機制也可以用來將一個新的配置代碼載入內部閃存,。

圖2 外部引導的AEC譯碼或Flash編程位流


第四個也是最后一個步驟是“鎖定”FPGA,,以防止未經(jīng)許可進入存儲配置。用非易失性FPGA內部的可編程寄存器控制對內部配置存儲器的訪問,??赡艿慕M合情況如下:1)解鎖。 2)可解密鎖定-通過編程接口提供的128位密鑰能夠使器件解鎖,。3)永久鎖定-器件被永久鎖定。

為了進一步加強器件的安全性,,可用一次性可編程(OTP)模式,。一旦器件設置成這個模式,就不可能擦除閃存的內容或對器件再次編程,。

選擇車用級的通過AEC - Q100認證的非易失性FPGA時,,審查制造商的非易失閃存的耐久性和數(shù)據(jù)保存指標是很重要的,這將確保車輛運行時和處于貯藏溫度時FPGA都能正確保存其存儲器內容,。例如,,LatticeXP2" title="LatticeXP2">LatticeXP2是唯一非易失性的通過AEC - Q100認證的SRAM /Flash FPGA,它能滿足所有這些系統(tǒng)的要求,。LatticeXP2的片上閃存允許大范圍地對整個器件進行存儲器測試,,確保即使器件在最高溫度下連續(xù)工作,至少10年內存儲器的內容都不會丟失,。

SRAM軟錯誤損壞檢測(SED)

來自宇宙射線的中子和封裝材料中的帶電α粒子的輻射會造成軟錯誤,,它會改變存儲單元的存儲內容。這種現(xiàn)象首先成為DRAM中的一個問題,,要求能對高可靠性應用中的大容量存儲系統(tǒng)進行錯誤檢測和糾錯,。由于器件的尺寸不斷縮小,對某些系統(tǒng)而言,,SRAM中的軟錯誤概率已相當大,。

用于汽車應用的高性能FPGA將邏輯配置數(shù)據(jù)存儲在SRAM單元。由于FPGA中SRAM單元數(shù)量和密度的增加,,軟錯誤改變系統(tǒng)可編程邏輯行為的概率也隨之增加,。設計者已經(jīng)采取了各種辦法來解決該問題,,其中大部分涉及用戶用于設計的知識產(chǎn)權(IP)核。雖然這種方法提供了一個解決方案,,但它也占用了寶貴的可編程資源,,并可能會影響性能。然而,,這些缺陷是可以避免的,。例如,LatticeXP2 FPGA內有用硬件實現(xiàn)的軟錯誤檢測器,,它不會影響系統(tǒng)性能或器件的熱耗散,。

在這些非易失性FPGA中的SED硬件有一個訪問FPGA SRAM配置存儲器的接口,還有SED控制器電路和一個存儲當前位流CRC的32位寄存器(圖3),。SED功能需要使用幾個I/O引腳,,要占用4個專用的輸入引腳和4個專用的輸出引腳。這些引腳用于使能和啟動SED檢測,,還能指明SED的工作狀態(tài),。

SED工作期間,控制電路從FPGA的SRAM配置存儲器讀取串行數(shù)據(jù)流數(shù)據(jù),,并計算CRC,。然后,計算出的CRC與預期的存儲在32位寄存器中的CRC進行比較,。如果這兩個CRC值不匹配,,說明配置存儲器中有差錯,并設置一個外部信號為高電平,,指明有差錯,。對應出錯信號,用戶可以有幾種選擇:忽略這個差錯,;使用外部處理器記錄這個差錯,;或從原來的引導器件重新載入SRAM配置。

LatticeXP2 FPGA能夠滿足所有這些系統(tǒng)的要求,。其片上閃存允許統(tǒng)一的系統(tǒng)測試,,保證器件即使在最高溫度下連續(xù)工作,最少10年不會引起存儲內容的丟失或產(chǎn)生系統(tǒng)故障,。此外,,雙引導功能和硬件實現(xiàn)的SED檢測功能對SRAM內容損壞提供了安全保證,不會影響器件性能或用戶邏輯的運行,。

應用上述四種配置保護技術的FPGA設計具有高度可靠的啟動和初始化功能,,可以保護更新,阻止下載、刪除或修改初始化配置的企圖,。此外,,整合SED管理邏輯的設計還增加了保護措施,防止由帶電粒子導致的改變運行配置的情況,。將啟動和SED保護進行整合的方法使汽車系統(tǒng)設計人員能夠構建完整可靠的FPGA設計,,同時不必擔心配置被蓄意篡改或環(huán)境對器件造成的損壞。

作者:Kerry Howell

萊迪思半導體公司
 

本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉載的所有的文章,、圖片,、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者,。如涉及作品內容,、版權和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。