欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)多CPU系統(tǒng)設(shè)計(jì)

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2007年06月30日   【字體:

摘  要: 針對重要系統(tǒng)可靠性要求,特設(shè)計(jì)了一種雙CPU控制系統(tǒng)。在該系統(tǒng)中,兩個(gè)CPU彼此獨(dú)立運(yùn)行,可以自動或手動實(shí)現(xiàn)雙機(jī)的主輔切換,只有主CPU能正常讀寫外部RAM數(shù)據(jù)和控制輸出。
關(guān)鍵詞  雙CPU 切換 監(jiān)控 控制

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

 

傳統(tǒng)的多CPU系統(tǒng)設(shè)計(jì)方法

傳統(tǒng)的多CPU系統(tǒng)的常用設(shè)計(jì)方法有三種:

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

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

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

該雙CPU系統(tǒng)的結(jié)構(gòu)和工作原理

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

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

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

表1 雙機(jī)仲裁切換邏輯真值表

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為主機(jī),CPU2工作不正常

0    1

´

1    0

CPU2為主機(jī),CPU1工作不正常

 

雙機(jī)仲裁切換邏輯電路

在該雙CPU控制系統(tǒng)中,兩者互為熱備份,同時(shí)運(yùn)行,一臺為主機(jī),另一臺為備份機(jī)。在雙CPU都正常運(yùn)行的情況下,系統(tǒng)默認(rèn)CPU1為主機(jī), CPU2為備份機(jī)。當(dāng)主機(jī)出現(xiàn)故障時(shí),要求系統(tǒng)能自動切換到備份機(jī),使備份機(jī)提升成為主機(jī),從而代替原主機(jī)從故障發(fā)生處連續(xù)運(yùn)行并發(fā)出報(bào)警信號。同時(shí)要求能通過手動開關(guān)人為選定主機(jī)運(yùn)行。設(shè)判別兩個(gè)CPU是否正常工作的信號分別為ST1、ST2,工作正常時(shí)它們的狀態(tài)為1,工作不正常時(shí)狀態(tài)為0。仲裁切換電路輸出為0的控制端控制工作正常的CPU的相應(yīng)三態(tài)門組使能,仲裁切換電路輸出為1的控制端控制另一CPU的相應(yīng)三態(tài)門組禁止輸出。自動或手動選擇主機(jī)的控制開關(guān)為S,當(dāng)兩個(gè)CPU都工作正常時(shí),可通過S開關(guān)自動選擇或指定主機(jī)(當(dāng)S開關(guān)狀態(tài)為1時(shí)為自動默認(rèn)CPU1為主機(jī),當(dāng)S開關(guān)狀態(tài)為0時(shí)則強(qiáng)制CPU2為主機(jī));當(dāng)兩個(gè)CPU中任意一個(gè)工作不正常時(shí),則此時(shí)與S開關(guān)的狀態(tài)無關(guān),仲裁切換電路的輸出能確保只有與工作正常的CPU相連的三態(tài)門組的使能端為0,從而控制該正常CPU正常讀寫數(shù)據(jù)和輸出控制;當(dāng)兩個(gè)CPU都不正常時(shí),仲裁切換電路的兩個(gè)輸出都為1,兩個(gè)CPU都不能正常讀寫數(shù)據(jù)和輸出控制。這樣當(dāng)兩個(gè)CPU中任何一個(gè)或全正常時(shí)就能保證只有一個(gè)CPU能正常讀寫數(shù)據(jù)和輸出控制,當(dāng)兩個(gè)CPU都不正常時(shí),則理所當(dāng)然系統(tǒng)不能正常工作。按要求可得真值表如表1所示。

由真值表可得仲裁切換電路的兩路控制三態(tài)門的控制信號邏輯CTL1、CTL2分別為:

構(gòu)成的仲裁切換電路如圖2所示。

 

4  CPU狀態(tài)監(jiān)控電路

監(jiān)控電路采用了具有電源監(jiān)控電路和看門狗功能的微處理芯片MAX813L,該芯片它具有4個(gè)功能:

①     看門狗計(jì)時(shí)器功能。當(dāng)看門狗輸入信號在1.6s內(nèi)無變化時(shí),產(chǎn)生看門狗輸出;

②     電壓監(jiān)控功能。當(dāng)?shù)綦娀螂娫幢O(jiān)測電壓低于1.25V時(shí),產(chǎn)生掉電輸出;

③     上電復(fù)位功能。當(dāng)上電時(shí)自動產(chǎn)生脈寬200ms的復(fù)位信號;

④     人工復(fù)位功能。當(dāng)人工復(fù)位端輸入低電平時(shí),產(chǎn)生復(fù)位信號輸出。

MAX813L采用DIP-8封裝,如圖3所示,引腳功能說明如下:

①     MR:手工復(fù)位輸入端,可接人工復(fù)位按鈕,該端輸入低電平保持140ms以上,可產(chǎn)生復(fù)位(RST)信號;

②     Vcc:+5v電源;

③     GND:電源地;

④     PFI:電源檢測輸入端;

⑤     PFO:電源檢測輸出端,電源正常時(shí),保持高電平;

⑥     WDI:看門狗輸入端。俗稱“喂狗”信號,必須在1.6s內(nèi)使該端輸入反向信號;

⑦     RST:復(fù)位輸出端。高電平有效,可輸出200ms的正脈沖,當(dāng)電源Vcc低于4.65v時(shí),RST保持高電平;

⑧     WDO:看門狗輸出端。正常工作時(shí)輸出高電平,當(dāng)WDI信號在1.6s內(nèi)不能及時(shí)送入并反向時(shí),該端輸出低電平信號。

因AT89C51無看門狗功能,為了監(jiān)測系統(tǒng)狀態(tài),在本系統(tǒng)中主要利用的是MAX813L的看門狗計(jì)時(shí)器功能。其中看門狗輸入端WDI由CPU的P3.4提供,CPU在規(guī)定的時(shí)間內(nèi)定時(shí)改變P3.4

的狀態(tài),由看門狗輸出端WDO提供當(dāng)前CPU的狀態(tài)信號至仲裁切換電路的STii =1或2)端,從而由仲裁切換電路自動或手動確定主機(jī)。圖4為用MAX813L為CPU1接的看門狗電路,當(dāng)CPU1工作正常時(shí)能正常提供P3.4信號則WDO端ST1輸出高電平,D1亮D2滅;當(dāng)CPU1工作不正常時(shí)不能正常提供P3.4信號則WDO端ST1輸出低電平,D2亮D1滅。

系統(tǒng)硬件電路

圖5為利用本文介紹的雙CPU的切換及控制系統(tǒng)組成的一種硬件電路。從圖中可知,系統(tǒng)每個(gè)CPU都可以通過RS232串行口與上位機(jī)通信,兩片CPU彼此獨(dú)立運(yùn)行,通過雙機(jī)仲裁切換邏輯電路共享外部16KB RAM和控制8路I/O口輸出。利用這種方法還可以通過增加三態(tài)門組成更大容量(最大64KB)的外部RAM和更多的輸出控制I/O口或擴(kuò)展I/O口。

圖5 一種雙CPU的切換及控制系統(tǒng)的硬件電路

結(jié)束語

該雙CPU控制系統(tǒng)構(gòu)思獨(dú)特,兩個(gè)CPU彼此獨(dú)立運(yùn)行,但讀寫的都是同一塊外部RAM的數(shù)據(jù),只是只有主CPU能實(shí)際讀寫數(shù)據(jù),故不存在內(nèi)存數(shù)據(jù)交換和共享問題,同時(shí)也只有主CPU能輸出控制外部設(shè)備,可廣泛應(yīng)用于要求高可靠性控制的場合,作者將該項(xiàng)技術(shù)應(yīng)用到自行研制的電腦樣板切割機(jī)上取得了較滿意的結(jié)果。

關(guān)閉窗口

相關(guān)文章