單片機(jī)多CPU系統(tǒng)設(shè)計
3 雙機(jī)仲裁切換邏輯電路
在該雙CPU控制系統(tǒng)中,兩者互為熱備份,同時運(yùn)行,一臺為主機(jī),另一臺為備份機(jī)。在雙CPU都正常運(yùn)行的情況下,系統(tǒng)默認(rèn)CPU1為主機(jī), CPU2為備份機(jī)。當(dāng)主機(jī)出現(xiàn)故障時,要求系統(tǒng)能自動切換到備份機(jī),使備份機(jī)提升成為主機(jī),從而代替原主機(jī)從故障發(fā)生處連續(xù)運(yùn)行并發(fā)出報警信號。同時要求能通過手動開關(guān)人為選定主機(jī)運(yùn)行。設(shè)判別兩個CPU是否正常工作的信號分別為ST1、ST2,工作正常時它們的狀態(tài)為1,工作不正常時狀態(tài)為0。仲裁切換電路輸出為0的控制端控制工作正常的CPU的相應(yīng)三態(tài)門組使能,仲裁切換電路輸出為1的控制端控制另一CPU的相應(yīng)三態(tài)門組禁止輸出。自動或手動選擇主機(jī)的控制開關(guān)為S,當(dāng)兩個CPU都工作正常時,可通過S開關(guān)自動選擇或指定主機(jī)(當(dāng)S開關(guān)狀態(tài)為1時為自動默認(rèn)CPU1為主機(jī),當(dāng)S開關(guān)狀態(tài)為0時則強(qiáng)制CPU2為主機(jī));當(dāng)兩個CPU中任意一個工作不正常時,則此時與S開關(guān)的狀態(tài)無關(guān),仲裁切換電路的輸出能確保只有與工作正常的CPU相連的三態(tài)門組的使能端為0,從而控制該正常CPU正常讀寫數(shù)據(jù)和輸出控制;當(dāng)兩個CPU都不正常時,仲裁切換電路的兩個輸出都為1,兩個CPU都不能正常讀寫數(shù)據(jù)和輸出控制。這樣當(dāng)兩個CPU中任何一個或全正常時就能保證只有一個CPU能正常讀寫數(shù)據(jù)和輸出控制,當(dāng)兩個CPU都不正常時,則理所當(dāng)然系統(tǒng)不能正常工作。按要求可得真值表如表1所示。
由真值表可得仲裁切換電路的兩路控制三態(tài)門的控制信號邏輯CTL1、CTL2分別為:
,
構(gòu)成的仲裁切換電路如圖2所示。
4 CPU狀態(tài)監(jiān)控電路
監(jiān)控電路采用了具有電源監(jiān)控電路和看門狗功能的微處理芯片MAX813L,該芯片它具有4個功能:
① 看門狗計時器功能。當(dāng)看門狗輸入信號在1.6s內(nèi)無變化時,產(chǎn)生看門狗輸出;
② 電壓監(jiān)控功能。當(dāng)?shù)綦娀螂娫幢O(jiān)測電壓低于1.25V時,產(chǎn)生掉電輸出;
③ 上電復(fù)位功能。當(dāng)上電時自動產(chǎn)生脈寬200ms的復(fù)位信號;
④ 人工復(fù)位功能。當(dāng)人工復(fù)位端輸入低電平時,產(chǎn)生復(fù)位信號輸出。
MAX813L采用DIP-8封裝,如圖3所示,引腳功能說明如下:
① MR:手工復(fù)位輸入端,可接人工復(fù)位按鈕,該端輸入低電平保持140ms以上,可產(chǎn)生復(fù)位(RST)信號;
② Vcc:+5v電源;
③ GND:電源地;
④ PFI:電源檢測輸入端;
⑤ PFO:電源檢測輸出端,電源正常時,保持高電平;
⑥ WDI:看門狗輸入端。俗稱“喂狗”信號,必須在1.6s內(nèi)使該端輸入反向信號;
⑦ RST:復(fù)位輸出端。高電平有效,可輸出200ms的正脈沖,當(dāng)電源Vcc低于4.65v時,RST保持高電平;
⑧ WDO:看門狗輸出端。正常工作時輸出高電平,當(dāng)WDI信號在1.6s內(nèi)不能及時送入并反向時,該端輸出低電平信號。
因AT89C51無看門狗功能,為了監(jiān)測系統(tǒng)狀態(tài),在本系統(tǒng)中主要利用的是MAX813L的看門狗計時器功能。其中看門狗輸入端WDI由CPU的P3.4提供,CPU在規(guī)定的時間內(nèi)定時改變P3.4
的狀態(tài),由看門狗輸出端WDO提供當(dāng)前CPU的狀態(tài)信號至仲裁切換電路的STi(i =1或2)端,從而由仲裁切換電路自動或手動確定主機(jī)。圖4為用MAX813L為CPU1接的看門狗電路,當(dāng)CPU1工作正常時能正常提供P3.4信號則WDO端ST1輸出高電平,D1亮D2滅;當(dāng)CPU1工作不正常時不能正常提供P3.4信號則WDO端ST1輸出低電平,D2亮D1滅。
評論