新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機多CPU系統(tǒng)設計

        單片機多CPU系統(tǒng)設計

        作者: 時間:2013-02-21 來源:網(wǎng)絡 收藏

        單片微機具有小巧靈活、易擴展成為功能強大的控制系統(tǒng)。目前,一些監(jiān)控終端以及許多獨立的控制系統(tǒng)(如:發(fā)電機的微機勵磁裝置)多以單片微機為核心構成。但由于諸如工作環(huán)境惡劣、電磁干擾等原因,即使使用按工業(yè)測控環(huán)境要求設計的單片微機也難以保證控制系統(tǒng)能長期可靠的運行,從而導致控制系統(tǒng)癱瘓。這樣,如何提高控制系統(tǒng)的可靠性,保證測控系統(tǒng)能正確穩(wěn)定的運行就尤為重要。顯然,采用雙CPU冗余設計是非常有效的一種解決辦法。由于單片微機的功能強大,價格低廉,為設計雙機冗余系統(tǒng)提供了很好的條件。為此,我們設計了一種由兩片單片微機組成的雙機容錯系統(tǒng),以比較簡單和與傳統(tǒng)的完全不同思路的設計方法實現(xiàn)了雙機的互為備用及相互切換。在該雙機冗余系統(tǒng)設計中,其關鍵問題是雙機系統(tǒng)的重構策略和雙機系統(tǒng)的仲裁邏輯切換。

        1 傳統(tǒng)的設計方法

        傳統(tǒng)的的常用設計方法有三種:

        ① 利用雙口RAM實現(xiàn)CPU之間的通信。雙口RAM是一種高速的并行傳輸芯片,具有兩套I/O口和競爭裁決電路,可以同時聯(lián)接兩個CPU,這樣通過雙口RAM可以實現(xiàn)多CPU之間通信。

        ② 利用共享內(nèi)存的方法實現(xiàn)CPU之間的通信。這種方法與上一種方法類似,所不同的是,上一種方法是利用雙口RAM的競爭裁決電路實現(xiàn)對RAM的訪問,而這種方法是利用不同的時序實現(xiàn)內(nèi)存共享的。

        ③ 利用總線方法實現(xiàn)CPU之間的通信。通過接口芯片或CPU本身具備的SPI、I2C以及SMBus等接口實現(xiàn)CPU之間的通信。

        2 該雙CPU系統(tǒng)的結構和工作原理

        該雙CPU控制系統(tǒng)與傳統(tǒng)的多CPU系統(tǒng)的設計方法完全不同,它由兩片Atmel公司生產(chǎn)的 CPU構成,雙機互為備用,彼此獨立并行運行,硬邏輯切換。其雙CPU控制系統(tǒng)原理框圖如圖1所示。

        這是一種非表決式的雙機冗余系統(tǒng),一個CPU 作為另一CPU的熱備份 ,雙機在任務上同步運行。所有輸入信號通過輸入接口同時送給兩個CPU,但CPU 運算、處理后的輸出量受到仲裁切換電路的控制,只有主CPU允許讀寫外部數(shù)據(jù)存貯器及輸出至外部設備,當主CPU發(fā)生故障時,系統(tǒng)的自我檢測切換邏輯將發(fā)出信號,自動切斷其輸出通道,并通過CPU的工作指示系統(tǒng)報警。此時,系統(tǒng)或自動或人工切換到另一個備用的CPU,并同時打開其輸出通道,備用機變?yōu)橹鳈C運行狀態(tài),控制系統(tǒng)這時降級為單機運行。人們可以將原主機拔離系統(tǒng)以便進行維修。從圖中可知,兩個CPU的地址、數(shù)據(jù)及控制總線都通過一組三態(tài)門(三態(tài)門1、2)輸出與外部數(shù)據(jù)存貯器相接,兩個CPU的某些輸出控制I/O口都通過另一組三態(tài)門(三態(tài)門3、4)輸出與外部輸出控制設備相接,兩組三態(tài)門的控制端都同時受仲裁切換電路控制,而仲裁切換電路的兩路輸出互為反邏輯,即只有一路輸出能使所控制的對應三態(tài)門(如三態(tài)門1、3)正常輸出,另一路輸出使所控制的對應三態(tài)門(如三態(tài)門2、4)處于高阻狀態(tài),從而不影響主CPU正常讀寫數(shù)據(jù)和向控制I/O口輸出數(shù)據(jù)。

        點擊瀏覽下一頁

        圖1雙CPU控制系統(tǒng)原理框圖

        表1 雙機仲裁切換邏輯真值表

        ST1 ST2

        S

        CTL1 CTL2

        CPU1 CPU2

        1 1

        1

        0

        0 1

        1 0

        主 輔

        輔 主

        0 0

        1 1

        兩CPU均工作不正常

        1 0

        0 1

        CPU1為主機,CPU2工作不正常

        0 1

        1 0

        CPU2為主機,CPU1工作不正常


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區(qū)

        主站蜘蛛池模板: 新民市| 灵台县| 溆浦县| 来宾市| 临漳县| 台中市| 高要市| 黄石市| 沁水县| 邢台市| 丰县| 融水| 友谊县| 仙桃市| 泸定县| 家居| 河间市| 光泽县| 汝城县| 揭东县| 阳东县| 平阳县| 孝义市| 伊宁县| 贺兰县| 金塔县| 弥渡县| 尼木县| 芜湖县| 长岭县| 务川| 吉安市| 柯坪县| 南宁市| 偏关县| 福鼎市| 贵港市| 晴隆县| 翼城县| 同江市| 观塘区|
              • <strike id="ieyc0"></strike>