摘要:汽車正在不斷加強(qiáng)安全措施,關(guān)鍵汽車操作所使用的安全MCU 都需要遵循 ISO26262 (ASIL-D) 或 IEC61508 (SIL3) 標(biāo)準(zhǔn)。本文討論了MPC574x等飛思卡爾公司 32 位 Qorivva 微控制器(MCU)提供的主要設(shè)計(jì)功能。這些功能可幫助最終客戶滿足汽車 (ISO26262)/工業(yè) (IEC61508) 標(biāo)準(zhǔn)提出的安全要求。稍后我們將討論飛思卡爾SafeAssure功能安全項(xiàng)目,飛思卡爾將為尋求實(shí)現(xiàn)產(chǎn)品功能安全合規(guī)的客戶提供綜合支持。
關(guān)鍵詞:微控制器;汽車;安全;SafeAssure
DOI: 10.3969/j.issn.1005-5517.2013.3.004
功能安全要求
功能安全與最大限度地減少系統(tǒng)故障引起的危險有關(guān)。系統(tǒng)故障可能由于硬件/軟件錯誤引起,可能是永久性的,也可能是瞬時性的。下面描述了發(fā)生錯誤時可能出現(xiàn)的反應(yīng):
故障-危險:發(fā)生故障時可能造成危險;
故障-不一致:發(fā)生故障時提供的結(jié)果可能明顯不一致;
故障-停止運(yùn)行:發(fā)生故障時完全停止運(yùn)行;
故障-安全:發(fā)生故障時返回或保持安全狀態(tài);
故障-可以運(yùn)行:發(fā)生故障時繼續(xù)正常工作;
故障-靜音:發(fā)生故障時不打擾任何人;
故障-指示:向環(huán)境指示發(fā)生了故障。
在系統(tǒng)中實(shí)施功能安全通常意味著將故障映射到能被整個系統(tǒng)或伺機(jī)處理的預(yù)期反應(yīng),從而確保最大限度地減少系統(tǒng)故障引起的危險。
下一節(jié)討論了飛思卡爾片上系統(tǒng)實(shí)現(xiàn)的各種功能安全,在發(fā)生系統(tǒng)故障時,執(zhí)行此類映射。

飛思卡爾MCU設(shè)計(jì)提供的主要功能安全
現(xiàn)在深入討論針對汽車安全應(yīng)用的飛思卡爾設(shè)備的主要安全特性。
核心鎖步
確保 SoC 中的內(nèi)核能夠安全運(yùn)行是功能安全的主要要求之一,這是因?yàn)閹缀跛械牟僮鞫家云錇橹行摹T赒orivva微控制器MPC574x中,通過采用一個與主內(nèi)核鎖步運(yùn)行的檢查內(nèi)核來實(shí)現(xiàn)安全運(yùn)行。這意味著,檢查內(nèi)核執(zhí)行與主內(nèi)核相同的指令,內(nèi)核的地址和數(shù)據(jù)總線在檢查單元進(jìn)行對比,以檢測運(yùn)行偏差。將檢測到的錯誤報告給錯誤收集和應(yīng)對模塊(見下文)。由于鎖步,從軟件的角度來看,兩個內(nèi)核作為一個單獨(dú)的內(nèi)核運(yùn)行,減少軟件實(shí)施。查看下面的圖 1所示的框圖。
除了內(nèi)核,eDMA、中斷控制器、緩存等其他安全相關(guān)模塊可在系統(tǒng)中進(jìn)行復(fù)制。所有此類復(fù)制必須在芯片上保持物理隔離,這樣,常見故障(CCF) 便不會影響兩個實(shí)例的運(yùn)行。
存儲器中提供的端到端 ECC(E2EECC) 保護(hù)
在海明間距為 4 的情況下實(shí)現(xiàn)ECC(糾錯碼)和 SECDED(單糾錯和雙糾錯),可保護(hù)所有的存儲器存儲操作。ECC 在數(shù)據(jù)、地址信號上實(shí)現(xiàn),并通過寫操作與數(shù)據(jù)一起存儲在存儲器中。發(fā)起讀操作時,ECC 在檢索到的數(shù)據(jù)和請求的地址上重新進(jìn)行計(jì)算,并通過已存儲的 ECC 進(jìn)行驗(yàn)證。
在Qorivva MPC574x器件中,沒有僅用于存儲器的ECC,但它提供了E2EECC,可檢測總線主設(shè)備和總線客戶端之間的所有數(shù)據(jù)路徑上的數(shù)據(jù)損壞,提供至少99%的覆蓋率。該機(jī)制如下所示。
1)來自主設(shè)備的數(shù)據(jù)通過 ECC- SECDED 代碼進(jìn)行編碼。該數(shù)據(jù)編碼包括尋址信息覆蓋。
2)路徑的各個模塊包括本地機(jī)制,如確保控制數(shù)據(jù)的正確發(fā)送和正確地址解碼。
上述方法可確保數(shù)據(jù)路徑上沒有數(shù)據(jù)損壞。然后主設(shè)備提供的ECC被用于RAM和閃存,因此存儲器不需要額外的ECC計(jì)算,ECC從一端(總線主設(shè)備)傳到另一端(存儲器)。
系統(tǒng)中有一個中央存儲器錯誤管理單元,負(fù)責(zé)采集和報告與在SRAM、外設(shè)系統(tǒng)RAM及閃存上所使用的ECC 邏輯相關(guān)的錯誤事件。 每當(dāng)發(fā)生可糾正(單位)或不可糾正(多位)的錯誤時,MEMU 都會收到一個錯誤信號,然后記錄錯誤地址,設(shè)置相應(yīng)的錯誤標(biāo)記并報告給FCCU。在需要特殊更正數(shù)時或進(jìn)一步分析軟件中這樣的錯誤時,可以使用。
故障收集和控制單元(FCCU)
FCCU是一個可編程的單元,監(jiān)控MCU的完整性狀態(tài),提供靈活的安全狀態(tài)控制,在設(shè)備發(fā)生故障時通過可控的方式使設(shè)備處于安全狀態(tài)。 收集和控制操作不需要 CPU 的干預(yù)。FCCU簡易框圖如圖 2 所示。
FCCU提供一個有限狀態(tài)機(jī),根據(jù)系統(tǒng)中發(fā)生的錯誤以及對這些錯誤采取的行動/無為,從一個狀態(tài)遷移到另一個狀態(tài)。根據(jù)故障配置,F(xiàn)CCU可能會觸發(fā)復(fù)位、屏蔽/非屏蔽中斷、外部故障指示、或不反應(yīng)。該SoC 還提供兩個外部指示引腳(EOUT0/1),可以就系統(tǒng)中發(fā)生的故障與外部環(huán)境進(jìn)行通信,并遵循各類靜態(tài)或切換協(xié)議。
自我測試控制單元
這是針對在啟動/關(guān)機(jī)時運(yùn)行的設(shè)備的自我診斷措施,以確保在應(yīng)用運(yùn)行過程中設(shè)備不會出現(xiàn)延時/休眠故障而破壞其運(yùn)行。通常來說,自我檢測根據(jù)數(shù)字邏輯(稱為 LBIST)在嵌入式存儲器( 稱為 MBIST)上執(zhí)行,有足夠的覆蓋率,可滿足所要求的系統(tǒng)安全完整性等級(SIL)。
1. 在 STCU 重置事件后,SSCM檢測到設(shè)備自我檢測尚未運(yùn)行。
2. SSCM 從非易失性閃存存儲器(NVM) 讀取自我檢測參數(shù)。
3. SSCM 將自我檢測參數(shù)加載到STCU 中,并將控制傳送到 STCU。
4. STCU 管理 MBIST 并更新其內(nèi)部狀態(tài)。
5. STCU 管理 LBIST 并更新其內(nèi)部狀態(tài)(可能有其他LBIST和MBIST的順序或并行執(zhí)行)。
6. 如果檢測到故障,STCU 便將測試故障報告給 FCCU 或重置設(shè)備。

7. 在完成自我測試后,STCU 便示意重置模塊,引導(dǎo)順序推進(jìn)到下一階段。
時鐘監(jiān)控和輔助時鐘
為了檢測安全運(yùn)行中內(nèi)外部時鐘電路故障,基于輔助時鐘監(jiān)控(見下文)其主時鐘。該輔助時鐘由內(nèi)部 RC振蕩器提供,只要器件重置便可使用。有了輔助時鐘,即使內(nèi)部 PLL 由于某些原因而發(fā)生故障,也能保證系統(tǒng)有時鐘可以運(yùn)行許多安全機(jī)制,確保繼續(xù)運(yùn)行。該 IRC 振蕩器可進(jìn)行微調(diào),使時鐘在不同的 PVT(流程、電壓和溫度)下保持一致。
時鐘監(jiān)控單元
CMU 是監(jiān)控系統(tǒng) PLL 輸出頻率的模塊,如果發(fā)生時鐘丟失或被監(jiān)控的時鐘超出低頻或高頻邊界時,便會顯示故障、重置或中斷。CMU將輔助時鐘(見上文)作為參考來對時鐘進(jìn)行監(jiān)控,同時根據(jù)外部晶體振蕩器監(jiān)控輔助時鐘。 CMU 簡易框圖如圖 4 所示。
如圖4所示,如果發(fā)生振蕩器時鐘丟失事件或被監(jiān)控時鐘發(fā)生低頻/高頻事件,CMU 會向重置和FCCU模塊提供信號。 只有當(dāng)一段時間內(nèi)FCCU未反應(yīng)的情況下,才激活重置模塊路徑。因此,重置和FCCU的信號路徑在MCU內(nèi)組成了冗余故障指示路徑,以確保FCCU的故障無法阻止所有的故障報告。FCCU 模塊的配置決定事件是否會造成中斷或重置。
電源管理控制器
Qorivva MCU 提供的 PMC 采用電壓監(jiān)控電路和 BIST。有兩種電壓監(jiān)控器,即低壓檢測 (LVD) 和高壓檢測(HVD) 監(jiān)控器。所有與安全相關(guān)的電壓都受到內(nèi)部監(jiān)控,防止電壓超出這些范圍。
PMC 中實(shí)施的 BIST 在啟動時或通過軟件檢測 PMC 中關(guān)鍵的帶隙電壓/其他功能。
由于安全相關(guān)電壓故障可能導(dǎo)致MCU故障指示機(jī)制(例如 FCCU和錯誤輸出板)在反應(yīng)前關(guān)閉,其電壓錯誤指示將直接導(dǎo)致設(shè)備跳變到故障安全狀態(tài)(執(zhí)行重置),而無需FCCU干預(yù)。

飛思卡爾 SafeAssure 計(jì)劃
飛思卡爾SafeAssure功能安全計(jì)劃旨在幫助系統(tǒng)制造商更輕松符合國際標(biāo)準(zhǔn)組織(ISO)26262和國際電工委員會(IEC)61508功能安全標(biāo)準(zhǔn)。 該計(jì)劃強(qiáng)調(diào)飛思卡爾解決方案(硬件和軟件),優(yōu)化了設(shè)計(jì),支持功能安全實(shí)施,同時集成了豐富的支持。飛思卡爾方案包含四個支持領(lǐng)域,可使客戶大大減少產(chǎn)品上市周期。這四個領(lǐng)域如下所示。
1)安全硬件:上述各節(jié)所討論的在硬件中部署的各種主要功能安全特性是 SafeAssure 計(jì)劃的一大要素。
2)安全支持:該部分確保提供完整的文檔支持,包括產(chǎn)品的安全應(yīng)用說明、安全手冊和 FMEA/FMEDA 分析。除了提供支持以外,飛思卡爾還為系統(tǒng)開發(fā)人員提供了一個選項(xiàng),可與區(qū)域安全專家密切合作以加快其開發(fā)工作。
3)安全軟件:對安全產(chǎn)品的軟件支持包括驅(qū)動程序開發(fā)、移植操作系統(tǒng)和自檢軟件,確保器件在其整個生命周期內(nèi)都正常運(yùn)行。
4)安全流程:飛思卡爾內(nèi)部隨后的流程確保從要求管理到設(shè)計(jì)實(shí)施的安全遵從,以及在驗(yàn)證/確認(rèn)/生產(chǎn)階段的功能覆蓋。通過保持全面的可追溯性矩陣來實(shí)現(xiàn),并構(gòu)成“SafeAssure”計(jì)劃的第四個要素。
這四個方面對于系統(tǒng)開發(fā)人員保證順利進(jìn)行產(chǎn)品功能安全合規(guī)認(rèn)證來說至關(guān)重要。
總結(jié)
設(shè)備實(shí)施功能安全特性需要MCU 提供冗余,可能增加功耗和芯片尺寸。但是,如果與強(qiáng)大的硬件系統(tǒng)連接(MCU能夠提供故障安全、故障靜音或故障指示狀態(tài)),帶來的好處非常多,尤其在減少軟件復(fù)雜性方面。本文討論了飛思卡爾 Qorivva MCU 所實(shí)施的各種安全設(shè)計(jì)。 在器件中實(shí)施這些安全特性是飛思卡爾 SafeAssure 計(jì)劃的四大要素之一,使客戶的應(yīng)用能夠符合 ASIL/SILx 。
參考文獻(xiàn):
[1]Chalupa L.新一代汽車電機(jī)控制:趨勢與解決方案
[2]Freescale.MPC574x 參考手冊
[3]飛思卡爾SafeAssure計(jì)劃[R/OL].www.freescale.com/ safeassure