軟件在控制車輛和設備方面繼續(xù)發(fā)揮著越來越重要的作用。同時,軟件錯誤的必然性威脅到軟件控制的機器與人類交互的應用中的安全操作。例如,在協(xié)作機器人中,機器人和人類緊密相連,軟件錯誤可能直接導致對人類的身體傷害。
對于這些應用程序和其他機器操作中的計算機系統(tǒng)錯誤可能危及人類的應用程序,設計師需要在基礎層面上對其系統(tǒng)進行安全控制。智能使用已內置于微控制器(MCU)和數(shù)字信號處理器(DSP)中的硬件功能可以幫助減輕硬件或軟件中的錯誤影響。
自動化和手工勞動繼續(xù)相互補充廣泛的產(chǎn)品成本和功能窗口。雖然自動化可以有效地提供大批量,低成本的產(chǎn)品,但手動組裝對于生產(chǎn)高成本,低產(chǎn)量的產(chǎn)品最為有效。協(xié)作機器人提供了一種混合方法,旨在合并每種方法的優(yōu)點(圖1)。
圖1:協(xié)作機器人系統(tǒng)提供了一種混合方法,融合了手動生產(chǎn)和自動化系統(tǒng)的優(yōu)勢。 (來源:ABB/歐洲機器人論壇)
協(xié)作機器人系統(tǒng)旨在與特定工作區(qū)內的人員直接合作。這種混合方法將機器人的寶貴力量和耐力與人類的解決問題的能力相結合。與此同時,這種方法給人類工作者帶來了巨大的風險。
機器人系統(tǒng)能夠以很大的力度擺動機械臂,并以極大的力量抓住物體。放置在工作單元中,典型的機器人被限制在與人類工作人員協(xié)作的同時在明確定義的操作窗口內移動,但在維護工作人員照料系統(tǒng)時移動到更大的限制范圍內(圖2)。很少有機器人系統(tǒng)允許在人類存在的情況下穿過其完整的最大包絡。
圖2:工業(yè)機器人需要深度嵌入式安全機制,能夠確保在與正常生產(chǎn)和維護相關的特定區(qū)域內安全運行。 (來源:美國勞工職業(yè)安全與健康管理局)
傳統(tǒng)的機器人裝配系統(tǒng)設計有物理限制或圍欄工作區(qū)域,以保護附近的人(圖3)。當在一個或多個人附近工作時,協(xié)作機器人系統(tǒng)幾乎沒有設計到工作單元中的物理保護。相反,這些系統(tǒng)依賴于內置機制來確保安全操作。在這樣的系統(tǒng)中,由軟件缺陷或硬件故障引起的系統(tǒng)級錯誤可以容易地允許可移動機器人臂加速進入人體或執(zhí)行一些物理運動,這可能對人類協(xié)作工作帶來直接風險。
圖3:在工廠車間,制造商在工業(yè)機器人周圍設置物理屏障,以防止與附近的人類工人意外接觸。 (來源:DNC)
安全策略
對于設計人員來說,確保機器人系統(tǒng)的安全運行始于確認其基礎控制系統(tǒng)按預期運行。專為實時控制應用而設計的DSP和MCU提供了多種專門用于此目的的內置安全功能。例如,ADI公司的ADSP-BF707 DSP和德州儀器的Hercules?系列MCU均集成了多種存儲器檢查功能,包括用于片上存儲器的錯誤校驗和校正(ECC),用于片外的奇偶校驗位檢查用于直接內存訪問(DMA)傳輸?shù)膬却婧脱h(huán)冗余校驗(CRC)。
雖然這些內存功能可以在內存操作期間糾正或至少識別錯誤,但確保處理器本身的正確操作是更復雜的問題。處理器核心本身中出現(xiàn)的硬件故障可能導致不可預測的錯誤,包括機械臂或機械手的危險運動。為了識別核心故障,模擬ADSP-BF707 DSP和TI Hercules系列MCU均包含集成在處理器內核中的內置自測(BIST)機制。雖然BIST在執(zhí)行應用程序代碼本身時無法運行,但系統(tǒng)設計人員可以將完整或部分自檢運行與應用程序代碼執(zhí)行交錯 - 如果不連續(xù)監(jiān)視處理器功能,則提供持續(xù)的。
使用TI Hercules系列MCU例如,設計人員可以通過幾個簡單的步驟啟動BIST掃描:
配置時鐘域頻率
選擇要運行的測試間隔數(shù)
配置自檢運行的超時時間
保存寄存器狀態(tài),包括CPU內核寄存器和協(xié)處理器寄存器以及硬件斷點和監(jiān)視點寄存器
通過將相應的位寫入CPU自檢控制器寄存器來啟用自檢(圖4)
等待CPU重置
在重置處理程序中,讀取CPU自檢狀態(tài)以識別任何故障
檢索CPU狀態(tài)
圖4:工程師可以輕松實現(xiàn)完整或部分BIST掃描,在應用程序執(zhí)行之間交錯。對于TI Hercules系列MCU,工程師可以實現(xiàn)代碼以快速執(zhí)行各種內務處理步驟,最后通過此處所示的自檢控制器寄存器中的坐位進行自檢。 (來源:德州儀器)
攔截軟件錯誤
與大多數(shù)領先的應用程序一樣,協(xié)作機器人系統(tǒng)依靠軟件來實現(xiàn)其功能的主要部分,特別是對于高度差異化的能力。在操作期間,任何數(shù)量的軟件錯誤(包括錯誤設置的指針變量,堆棧溢出或逃脫測試覆蓋的代碼錯誤)都可能導致系統(tǒng)掛起或以其他方式分離到非預期的操作中。為了防止這種類型的系統(tǒng)行為,設計人員可以在軟件本身中實現(xiàn)運行時檢查。
使用看門狗定時器提供了一種特別有效的機制來捕獲掛起處理器的錯誤。在這種傳統(tǒng)方法中,軟件以比看門狗定時器的超時設置短的周期重置看門狗定時器。如果看門狗定時器確實超時,則意味著從未發(fā)生預期的定時器復位 - 表示應用程序代碼掛起且系統(tǒng)處于某種不確定狀態(tài)。面向安全的處理器,如ADI公司的ADSP-BF707 DSP和德州儀器的Hercules系列MCU,集成了看門狗定時器功能。另一方面,使用獨立的外部看門狗定時器可進一步降低錯誤情況影響內置看門狗的可能性。
德州儀器(TI)的TPS3823-33監(jiān)控IC等器件提供DSP和基于MCU的系統(tǒng),具有電路初始化和時序監(jiān)控以及電源電壓監(jiān)控功能。該器件集成了一個看門狗定時器,必須通過WDI輸入的正或負轉換周期性觸發(fā),以避免發(fā)出復位信號(圖5)。當監(jiān)控系統(tǒng)未能在超時間隔ttout內重新觸發(fā)看門狗電路時,RESET在時間段td內變?yōu)橛行В瑢е绿幚砥鬟M入其硬件復位周期。就像筆記本電腦用戶在他們的系統(tǒng)掛起時循環(huán)一樣,這種方法可能是從深層軟件錯誤中恢復的唯一有效方法。
圖5:除了其他監(jiān)控功能外,德州儀器(TI)TPS3823-33 IC還提供硬件看門狗定時器,可進一步防止可能出現(xiàn)的錯誤片上看門狗定時器。 (來源:德州儀器)
系統(tǒng)級安全
除了低級機制外,經(jīng)驗豐富的設計人員還使用各種方法確保基于處理器的控制系統(tǒng)繼續(xù)產(chǎn)生預期輸出。更高級別的“安全”架構依賴于冗余執(zhí)行關鍵功能的設計,通過在同一數(shù)據(jù)上獨立執(zhí)行相同功能的多個并行路徑產(chǎn)生應該相同的結果。在關鍵任務應用中,例如依賴于來自發(fā)動機和控制表面的精確傳感器讀數(shù)的航空電子設備,硬件設計人員可以構建多個獨立的傳感器路徑,以便即使在飛行操作期間一個(或多個)傳感器發(fā)生故障也能繼續(xù)運行。
轉換到機器人移動算法的軟件級別,例如,軟件工程師可能使用兩種(或更多種)不同的算法或相同算法的不同實現(xiàn)來幫助驗證持續(xù)的系統(tǒng)功能。在這里,工程師將創(chuàng)建設置為與原始數(shù)據(jù)對象相同的值的不同對象,以使用不同的代碼模式計算相同的算法。監(jiān)督代碼將比較結果并在不同時生成異常。例如,對于原始函數(shù):
函數(shù)工作(VariableA,VariableB):
if(VariableA> VariableB):
//執(zhí)行必需的函數(shù)
//基于VariableA和VariableB
...
返回結果
工程師會創(chuàng)建一個替代實現(xiàn),使用設置為相同值的不同變量對象來計算某些結果:
//將新對象實例設置為原始變量中的值
function workNew(VariableA,VariableB):
VariableNewA = deepcopy (VariableA)
VariableNewB = deepcopy(VariableB)
if(VariableA> VariableB):
if(VariableNewA <= VariableNewB):
//生成異常 - 可能的內存錯誤
< code> else:
//執(zhí)行必需的函數(shù)
//使用新變量和
//備用編碼模式
...
返回ResultNew
<代碼>
//supervisor
X = work(A,B)
XNew = workNew(A ,B)
if(X <> XNew):
//生成系統(tǒng)故障異常
//否則繼續(xù)使用X
專門的多核MCU在概念上使用相同的方法來確保底層處理器本身正常運行。這里,同一處理器內核的多個副本以鎖步方式執(zhí)行相同的軟件 - 同時或以小的時鐘偏移執(zhí)行。以鎖步方式運行的這些內核的輸出的任何差異都表明MCU具有低級故障 - 可能是由于某種軟錯誤導致的瞬態(tài)故障,例如由于某些內部功能故障導致的輻射或硬故障。
ARM提供雙核鎖步(DCLS)冗余核心配置,允許MCU制造商為安全應用實施鎖步核心。德州儀器(TI)已在其Hercules系列MCU中實現(xiàn)此功能。在這里,一對ARM?Cortex?-R5F內核以鎖步方式運行 - 執(zhí)行間隔兩個時鐘周期 - 以減少alpha粒子的軟錯誤導致內核執(zhí)行完全相同(錯誤)結果的可能性相同的代碼同時。注意:Alpha粒子是IC封裝不可避免的副作用,因為它在低衰減率下含有低水平的放射性物質,并且可能導致軟錯誤。
在TMS570LS0714中,一個特殊的單元,CPU比較模塊(CCM),比較兩個核心的輸出信號(圖6)。對于程序員來說,這個過程是透明的。不需要特殊編碼,鎖定核心之間的比較會自動進行。
圖6:集成在Hercules系列MCU中的CPU比較模塊(CCM)監(jiān)視MCU雙核心的輸出,以兩個周期的延遲同步運行。此延遲有助于防止瞬態(tài)錯誤影響兩個內核并通過未檢測到的情況。 (來源:德州儀器)
雖然這些硬件功能有助于確保正常運行,但構建功能安全應用程序對軟件開發(fā)和認證提出了嚴格的要求。 TI的SafeTI設計包支持各種領域的功能安全應用開發(fā),包括工業(yè)機械,工業(yè)過程,醫(yī)療,汽車,鐵路和航空。除了SafeTI軟件庫提供的功能外,設計包還支持與符合ISO 26262,IEC 61508和IEC 60730等安全標準相關的要求。
結論
協(xié)作機器人技術為人類經(jīng)驗與機器精度相結合提供了重要機遇。在人類的近距離工作中,協(xié)作機器人系統(tǒng)在確保安全操作方面提出了重大挑戰(zhàn)。專門設計用于支持功能安全應用的專用DSP和MCU提供集成功能,可幫助識別錯誤并減輕其在應用程序級別的影響。使用這些設備,設計人員可以為協(xié)作機器人系統(tǒng)建立安全基礎。
-
mcu
+關注
關注
146文章
17143瀏覽量
351129 -
機器人
+關注
關注
211文章
28414瀏覽量
207041 -
信號處理器
+關注
關注
1文章
254瀏覽量
25274
發(fā)布評論請先 登錄
相關推薦
評論