單片機多CPU系統設計
單片微機具有小巧靈活、易擴展成為功能強大的控制系統。目前,一些監控終端以及許多獨立的控制系統(如:發(fā)電機的微機勵磁裝置)多以單片微機為核心構成。但由于諸如工作環(huán)境惡劣、電磁干擾等原因,即使使用按工業(yè)測控環(huán)境要求設計的單片微機也難以保證控制系統能長(cháng)期可靠的運行,從而導致控制系統癱瘓。這樣,如何提高控制系統的可靠性,保證測控系統能正確穩定的運行就尤為重要。顯然,采用雙CPU冗余設計是非常有效的一種解決辦法。由于單片微機的功能強大,價(jià)格低廉,為設計雙機冗余系統提供了很好的條件。為此,我們設計了一種由兩片單片微機組成的雙機容錯系統,以比較簡(jiǎn)單和與傳統的多CPU系統完全不同思路的設計方法實(shí)現了雙機的互為備用及相互切換。在該雙機冗余系統設計中,其關(guān)鍵問(wèn)題是雙機系統的重構策略和雙機系統的仲裁邏輯切換。
1 傳統的多CPU系統設計方法
傳統的多CPU系統的常用設計方法有三種:
① 利用雙口RAM實(shí)現CPU之間的通信。雙口RAM是一種高速的并行傳輸芯片,具有兩套I/O口和競爭裁決電路,可以同時(shí)聯(lián)接兩個(gè)CPU,這樣通過(guò)雙口RAM可以實(shí)現多CPU之間通信。
② 利用共享內存的方法實(shí)現CPU之間的通信。這種方法與上一種方法類(lèi)似,所不同的是,上一種方法是利用雙口RAM的競爭裁決電路實(shí)現對RAM的訪(fǎng)問(wèn),而這種方法是利用不同的時(shí)序實(shí)現內存共享的。
③ 利用總線(xiàn)方法實(shí)現CPU之間的通信。通過(guò)接口芯片或CPU本身具備的SPI、I2C以及SMBus等接口實(shí)現CPU之間的通信。
2 該雙CPU系統的結構和工作原理
該雙CPU控制系統與傳統的多CPU系統的設計方法完全不同,它由兩片Atmel公司生產(chǎn)的AT89C51 CPU構成,雙機互為備用,彼此獨立并行運行,硬邏輯切換。其雙CPU控制系統原理框圖如圖1所示。
這是一種非表決式的雙機冗余系統,一個(gè)CPU 作為另一CPU的熱備份 ,雙機在任務(wù)上同步運行。所有輸入信號通過(guò)輸入接口同時(shí)送給兩個(gè)CPU,但CPU 運算、處理后的輸出量受到仲裁切換電路的控制,只有主CPU允許讀寫(xiě)外部數據存貯器及輸出至外部設備,當主CPU發(fā)生故障時(shí),系統的自我檢測切換邏輯將發(fā)出信號,自動(dòng)切斷其輸出通道,并通過(guò)CPU的工作指示系統報警。此時(shí),系統或自動(dòng)或人工切換到另一個(gè)備用的CPU,并同時(shí)打開(kāi)其輸出通道,備用機變?yōu)橹鳈C運行狀態(tài),控制系統這時(shí)降級為單機運行。人們可以將原主機拔離系統以便進(jìn)行維修。從圖中可知,兩個(gè)CPU的地址、數據及控制總線(xiàn)都通過(guò)一組三態(tài)門(mén)(三態(tài)門(mén)1、2)輸出與外部數據存貯器相接,兩個(gè)CPU的某些輸出控制I/O口都通過(guò)另一組三態(tài)門(mén)(三態(tài)門(mén)3、4)輸出與外部輸出控制設備相接,兩組三態(tài)門(mén)的控制端都同時(shí)受仲裁切換電路控制,而仲裁切換電路的兩路輸出互為反邏輯,即只有一路輸出能使所控制的對應三態(tài)門(mén)(如三態(tài)門(mén)1、3)正常輸出,另一路輸出使所控制的對應三態(tài)門(mén)(如三態(tài)門(mén)2、4)處于高阻狀態(tài),從而不影響主CPU正常讀寫(xiě)數據和向控制I/O口輸出數據。
圖1雙CPU控制系統原理框圖
表1 雙機仲裁切換邏輯真值表
相關(guān)推薦技術(shù)專(zhuān)區
|
評論