通過FPGA設(shè)計(jì)安全的高級輔助駕駛系統(tǒng)
最好在這一處理級實(shí)現(xiàn)一些存儲(chǔ)器緩沖,以便臨時(shí)存儲(chǔ)數(shù)據(jù)??梢栽俅吾槍@些存儲(chǔ)器例化奇偶校驗(yàn)或SECDED ECC,實(shí)現(xiàn)相對較高的診斷覆蓋。
探測邏輯本身的故障跡可以把兩個(gè)相同的邏輯模塊放到一起,鎖定它們。為能夠?qū)ΤR姷墓收线M(jìn)行探測,可以針對它們使用不同的時(shí)鐘網(wǎng)絡(luò),或者運(yùn)行一個(gè)具有兩周期時(shí)鐘延時(shí)的邏輯模塊。對兩個(gè)模塊的輸出進(jìn)行連續(xù)對比,能夠探測到一個(gè)模塊中出現(xiàn)的故障。
在這一中間處理級產(chǎn)生了新數(shù)據(jù)后,需要再次寫入外部DDR存儲(chǔ)器。與前面的步驟相同,可以對新數(shù)據(jù)計(jì)算校驗(yàn)和,將這一校驗(yàn)和寫入到存儲(chǔ)器中。DDR存儲(chǔ)器控制器中的存儲(chǔ)器保護(hù)功能會(huì)探測地址故障,避免覆寫其他關(guān)鍵的應(yīng)用數(shù)據(jù)。
高級圖像處理
高級圖像處理階段包括目標(biāo)探測和目標(biāo)分類。從軟件術(shù)語的角度來講,這一級主要是控制代碼,因此,非常適合在CPU上運(yùn)行。在我們的應(yīng)用實(shí)例中,可以在HPS中開發(fā)這類功能。圖9顯示了高級圖像處理涉及到的模塊。

雖然實(shí)現(xiàn)了兩個(gè)CPU,但是并沒有運(yùn)行在鎖定模式下,即在程序執(zhí)行過程中,一個(gè)CPU進(jìn)行檢查,另一個(gè)自動(dòng)探測故障。如果一個(gè)執(zhí)行安全關(guān)鍵代碼或者數(shù)據(jù)的CPU出現(xiàn)了故障,那么,應(yīng)用程序應(yīng)保證對計(jì)算結(jié)果進(jìn)行檢查。這可以通過在相同的CPU或者另一個(gè)CPU上冗余執(zhí)行代碼來完成。如果一個(gè)CPU出現(xiàn)了永久故障,在一個(gè)CPU上相同的代碼執(zhí)行了兩遍,那么,CPU中的故障可能會(huì)產(chǎn)生兩次錯(cuò)誤的結(jié)果,從而不會(huì)被探測到??梢酝ㄟ^實(shí)現(xiàn)兩種不同的程序來避免這一問題,但是,其缺點(diǎn)是增加了開發(fā)工作量,針對同一程序開發(fā)兩種不同的版本。另一種選擇是在第二個(gè)CPU上運(yùn)行冗余計(jì)算。一個(gè)CPU中的永久故障不會(huì)影響另一個(gè)CPU,因此,只要故障不是在共享資源中,那么,不需要運(yùn)行不同的軟件就能夠探測到錯(cuò)誤執(zhí)行。運(yùn)行算法兩次,然后對比結(jié)果,也可以探測到瞬時(shí)故障。對于軟件在兩個(gè)CPU上執(zhí)行的情況,很有可能相同的代碼并沒有在兩個(gè)CPU的同一周期中執(zhí)行,因此,進(jìn)行計(jì)算然后對比冗余執(zhí)行的輸出即可發(fā)現(xiàn)故障。在不同的時(shí)間執(zhí)行代碼的優(yōu)點(diǎn)是能夠有效地測出常見的故障。
正如前面所提到的,由SECDED ECC或者奇偶校驗(yàn)功能來保護(hù)處理過程所涉及到的存儲(chǔ)器。
而在L3互聯(lián)、DDR存儲(chǔ)器控制器、片內(nèi)RAM控制器的其他邏輯中還可能會(huì)出現(xiàn)故障。對于較大的數(shù)據(jù),可以采用CRC校驗(yàn)和來保護(hù)數(shù)據(jù)不會(huì)被修改。為中間級處理模塊生成的數(shù)據(jù)建立了校驗(yàn)和后,可以在用于后面的操作之前對其進(jìn)行檢查。對于較小的數(shù)據(jù),存儲(chǔ)這些數(shù)據(jù),讀回就可以確定傳輸是否正確。對于讀取用于處理的數(shù)據(jù),可以讀兩遍,在使用之前進(jìn)行對比。當(dāng)數(shù)據(jù)規(guī)模有限時(shí)這不會(huì)產(chǎn)生太大的處理開銷,但是能夠很好地測出故障。
用于探測故障的其他特性包括每一Cortex-A9處理器中的存儲(chǔ)器管理單元(MMU)、DDR存儲(chǔ)器控制器中的存儲(chǔ)器保護(hù)特性,以及看門狗定時(shí)器。
結(jié)論
ADAS是確保越來越擁擠的道路更加安全的下一波創(chuàng)新。這些系統(tǒng)的性能需求給現(xiàn)有以及未來的標(biāo)準(zhǔn)商用貨架(COTS)產(chǎn)品帶來了挑戰(zhàn),而可編程FPGA在這方面有很大的優(yōu)勢。實(shí)現(xiàn)定制碼型發(fā)生器或者定制看門狗定時(shí)器等專用診斷功能,能夠提高對系統(tǒng)的診斷覆蓋范圍,而這些功能很難在標(biāo)準(zhǔn)產(chǎn)品上實(shí)現(xiàn)。流處理是圖像處理的第一步,減少了存儲(chǔ)器讀寫操作,因此,能夠減少故障的發(fā)生,降低功耗,提高應(yīng)用性能。很多COTS產(chǎn)品在設(shè)計(jì)時(shí)并沒有體現(xiàn)功能安全,使用具有功能安全的平臺(tái)和開發(fā)環(huán)境,與擅長功能安全的合作伙伴合作,都有利于系統(tǒng)的整體實(shí)現(xiàn)。
評論