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