助力采用MCU的自主系統(tǒng)實(shí)現(xiàn)自主安全性
人工智能(AI)和機(jī)器學(xué)習(xí)(ML)技術(shù)在自主性日益增強(qiáng)的系統(tǒng)中的應(yīng)用越來越普遍,這將提高各行各業(yè)對(duì)更智能的安全系統(tǒng)的要求。關(guān)注重點(diǎn)已經(jīng)從節(jié)約成本轉(zhuǎn)向給用戶帶來便利性和安全性。這需要一個(gè)完整的功能安全(FuSa)層,其中包括安全協(xié)處理器與可信的輸入/輸出控制器,兩者協(xié)同工作來保護(hù)系統(tǒng)。單片機(jī)(MCU)為實(shí)現(xiàn)這些安全協(xié)處理器提供了低成本的解決方案,是當(dāng)今新一代自主系統(tǒng)的核心。
本文引用地址:http://butianyuan.cn/article/202303/444941.htm自主安全功能和規(guī)范
安全協(xié)處理器可以執(zhí)行部署的ML模型,這種模型用于接收視頻、音頻、環(huán)境和操作員數(shù)據(jù)等外部數(shù)據(jù)流,而在某些情況下,也可以同時(shí)接收所有這些數(shù)據(jù)流。這些數(shù)據(jù)流必須具有固有的可信度。
同樣重要的是,安全協(xié)處理器必須信任它們?yōu)殡姍C(jī)、繼電器、指示器和其他執(zhí)行器產(chǎn)生的輸出狀態(tài)的真實(shí)再現(xiàn)。如果發(fā)生故障,主處理器也應(yīng)該能夠依靠這些輸入/輸出(邊帶)控制器快速做出明智的決策。
使用MCU作為安全協(xié)處理器
在全面的開發(fā)生態(tài)系統(tǒng)的支持下,8位和32位MCU主要用于四大功能安全領(lǐng)域,業(yè)內(nèi)為此制定了下列工業(yè)標(biāo)準(zhǔn)規(guī)范:
● ISO 26262:汽車安全完整性等級(jí)(ASIL),適用于汽車應(yīng)用
● IEC 61508:安全完整性等級(jí)(SIL),適用于工業(yè)應(yīng)用
● IEC 60730:家用電器功能安全標(biāo)準(zhǔn)
● IEC 60730:醫(yī)療設(shè)備功能安全標(biāo)準(zhǔn)
圖1 工業(yè)機(jī)器人正在焊接大型重物
開發(fā)工具生態(tài)系統(tǒng)有兩個(gè)重要的后端要求。第一個(gè)要求是在開發(fā)過程中以及在編譯成機(jī)器碼過程中采用穩(wěn)健的編碼。使用功能安全編譯器可滿足此要求,這些編譯器通過TüV SüD(一家國(guó)際認(rèn)可的測(cè)試機(jī)構(gòu))等組織獲得ISO或IEC功能安全標(biāo)準(zhǔn)認(rèn)證。第二個(gè)后端功能是詳細(xì)分析在一個(gè)典型的測(cè)試周期中,哪些代碼被執(zhí)行,哪些代碼被遺漏。這需要一個(gè)代碼覆蓋率分析插件。
自主安全功能的工作原理
與外界的主要交互是通過硬件層實(shí)現(xiàn)的,首先需要支持FuSa的MCU(位于邊緣)提供的直接傳感器和執(zhí)行器接口。請(qǐng)參見下面的圖2。
圖2 8位單片機(jī)的自主安全功能
主要功能包括:
欠壓檢測(cè)(BOD)
擁有理想電源的工作環(huán)境十分少見。微波爐和激光打印機(jī)會(huì)導(dǎo)致燈光閃爍,大型電動(dòng)工具會(huì)觸發(fā)斷路器。自主系統(tǒng)必須提前預(yù)知其電源要發(fā)生故障,從而可以啟用備用電源,或者設(shè)置關(guān)鍵數(shù)據(jù)和輸出狀態(tài)以確保干凈的掉電。
這些MCU中的BOD電路可以持續(xù)監(jiān)視電源電壓,并以兩種特定方式對(duì)下降的電壓作出反應(yīng)。首先,當(dāng)電壓超過某個(gè)可選閾值時(shí),電壓監(jiān)視(VLM)功能將觸發(fā)中斷,從而在超過實(shí)際BOD電壓閾值之前立即執(zhí)行緊急關(guān)斷任務(wù)。超過BOD電壓后,設(shè)備將保持在復(fù)位狀態(tài),直到消除此條件。同時(shí),也可以確定復(fù)位事件的原因,以確保采取適當(dāng)?shù)幕謴?fù)策略,這可能與第一次的上電周期不同。
窗口化看門狗定時(shí)器
現(xiàn)代MCU使用看門狗定時(shí)器作為故障恢復(fù)機(jī)制,旨在終止無限循環(huán)(又稱“自旋鎖”)條件,這種條件除了采取嚴(yán)厲的措施外沒有任何解決方法。早期版本設(shè)置了以秒或毫秒為單位的超時(shí)閾值,然后需要在達(dá)到此閾值之前對(duì)運(yùn)行代碼進(jìn)行某種類型的“刺激”。確認(rèn)后,超時(shí)閾值重置,倒計(jì)時(shí)重新開始。懶惰的程序員使用周期性中斷服務(wù)程序來更新定時(shí)器,但是即使系統(tǒng)的其他部分卡在某個(gè)無限循環(huán)中,這些程序仍會(huì)自行繼續(xù)執(zhí)行,不會(huì)通過系統(tǒng)復(fù)位來解決這種情況。
窗口看門狗定時(shí)器通過允許指定看門狗服務(wù)窗口解決了部分問題。這樣一來,看門狗定時(shí)器的服務(wù)速度不能太慢,也不能太快。這使得依賴已知執(zhí)行時(shí)間短于最大閾值的代碼變得更加困難。
循環(huán)冗余校驗(yàn)(CRC)代碼掃描
CRC代碼掃描外設(shè)可確保已編程代碼映像的完整性。它比單純的校驗(yàn)和更加強(qiáng)大,因?yàn)樾r?yàn)和很容易被數(shù)學(xué)操作欺騙。可將特定的MCU硬件模塊配置為在程序存儲(chǔ)器的自舉程序部分、應(yīng)用程序部分或整個(gè)閃存陣列上運(yùn)行掃描。然后,外設(shè)會(huì)將其CRC結(jié)果與附加在指定代碼空間末尾的正確校驗(yàn)和進(jìn)行比較。如果這兩個(gè)16位數(shù)字匹配,則證明代碼空間未遭到修改??蓪⑵ヅ涫∨渲脼楫a(chǎn)生不可屏蔽中斷,以進(jìn)一步處理該問題。
實(shí)際輸入路徑通用輸入/輸出(GPIO)外設(shè)
在早期的MCU中,如果將GPIO引腳配置為輸出,驗(yàn)證引腳電壓(即5V)與控制位值(即1)相匹配的惟一方法是使用配置為輸入的單獨(dú)GPIO引腳來讀取電壓。配置為輸出的GPIO引腳不能回讀實(shí)際電壓,而只能回讀寫入的值;因此,“輸入”值始終保持一致。
實(shí)際輸入路徑GPIO單元可以提供到離散的內(nèi)部輸入寄存器的獨(dú)立電氣路徑,從而反映引腳上設(shè)置的實(shí)際電平。雖然該電平只能以邏輯1或邏輯0的方式讀取,但它仍可提供足夠的反饋來驗(yàn)證寫入輸出控制寄存器的內(nèi)容。這兩個(gè)值應(yīng)始終保持一致。如果兩者之間存在差異,則表明該特定GPIO引腳上存在短路或開路情況,需要適當(dāng)?shù)奶幚怼?/p>
具有這些功能的MCU可為完整的FuSa層奠定基礎(chǔ)。隨著基于AI/ML的自動(dòng)化將關(guān)注重點(diǎn)從系統(tǒng)生產(chǎn)和維護(hù)成本節(jié)約轉(zhuǎn)向用戶體驗(yàn)的安全性和便利性,F(xiàn)uSa層的重要性將不斷提高。
評(píng)論