雙CPU在多I/O口系統(tǒng)中的硬件設(shè)計(jì)
1 引言
常規(guī)的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì),往往都用一個(gè)CPU,再擴(kuò)展一系列外圍輔助電路以達(dá)到相應(yīng)設(shè)計(jì)目標(biāo)。這種方法,尤其在輸入輸出接口較多的系統(tǒng)中,必須進(jìn)行繁瑣的譯碼、邏輯變換,使得系統(tǒng)硬件復(fù)雜,調(diào)試?yán)щy。而用雙CPU設(shè)計(jì),可大大減少硬件電路,軟件資源分配及設(shè)計(jì)均相對(duì)獨(dú)立,易于修改程序而適合很多應(yīng)用系統(tǒng)。
下面結(jié)合一個(gè)實(shí)際應(yīng)用系統(tǒng)介紹雙CPU的應(yīng)用。
2 系統(tǒng)組成
本系統(tǒng)要求8路開(kāi)關(guān)量輸入,8路模擬信號(hào)采集,8路繼電器控制輸出,8位數(shù)碼顯示,8路按鍵輸入。其中開(kāi)關(guān)量輸入、模擬信號(hào)采集、繼電器控制輸出配置在主板上,數(shù)碼顯示和按鍵輸入在面板上。
基于上述設(shè)計(jì)要求,考慮用一只97C51設(shè)計(jì)主板,完成8路開(kāi)關(guān)量、8路模擬信號(hào)采集以及8路繼電器控制;可用另外一只97C51控制面板上的8位數(shù)碼顯示和8路按鍵采集;兩只97C51通過(guò)標(biāo)準(zhǔn)串口連接交換信息,這樣主板和面板上只需6根線連接即可。其硬件組成框圖分別如圖1、圖2所示。
圖1 主板硬件原理框圖
圖2 面板硬件原理框圖
3 主板設(shè)計(jì)
3.1 主板硬件設(shè)計(jì)
見(jiàn)圖1,8路開(kāi)關(guān)量直接通過(guò)P1口輸入到CPU,通過(guò)P2口的輸出經(jīng)光耦隔離后驅(qū)動(dòng)8路繼電器,8路模擬量利用美國(guó)德州公司的11通道串行A/D芯片TLC542采集后串行送入P0口。當(dāng)需要顯示數(shù)據(jù)時(shí),按一定協(xié)議將數(shù)據(jù)通過(guò)串口傳輸到面板上CPU控制顯示。
為了保證系統(tǒng)可靠,采用MAX690做為看門(mén)狗監(jiān)控兩只CPU的運(yùn)行。一個(gè)看門(mén)狗監(jiān)控兩只CPU,其中任意一只CPU死機(jī)時(shí)均自動(dòng)復(fù)位,實(shí)現(xiàn)方法是:由面板上CPU的COM端發(fā)出一路連續(xù)的周期小于1s的方波信號(hào)到主板上CPU的COM端,主板上CPU接收到這一方波信號(hào)后,嚴(yán)格將其按相近頻率,在主程序中唯一地方發(fā)出清除看門(mén)狗計(jì)時(shí)器的信號(hào)。
3.2 主板控制軟件
主板控制軟件流程如圖3所示。
圖3 主板軟件流程圖
4 面板設(shè)計(jì)
4.1 面板硬件設(shè)計(jì)
見(jiàn)圖2,CPU P1口直接采樣8路按鍵狀態(tài),并送到主板CPU。同時(shí)用串口接收主板上CPU送來(lái)的顯示數(shù)據(jù)內(nèi)容,經(jīng)轉(zhuǎn)換后,以P0口做段驅(qū)動(dòng),P2口做位驅(qū)動(dòng)直接顯示出來(lái)。
為保證系統(tǒng)可靠,該CPU的P3.2腳發(fā)出一周期小于1s的標(biāo)準(zhǔn)方波信號(hào)供主板上CPU采集,再驅(qū)動(dòng)清除看門(mén)狗,以實(shí)現(xiàn) 一只看門(mén)狗同時(shí)監(jiān)控兩只CPU的目的。
4.2 面板CPU的軟件流程
面板CPU的流程如圖4所示。
圖4 面板CPU軟件流程圖
4.3 顯示方式的改變
當(dāng)顯示數(shù)據(jù)的方式需要改變時(shí),主板上的程序?qū)⒉蛔?,而只需改變面板上CPU的程序即可,這樣可極其靈活地適合于各種應(yīng)用場(chǎng)合。
5 結(jié)論
綜上所述,以較簡(jiǎn)單的硬件電路,較少的連線,獨(dú)立的程序?qū)崿F(xiàn)了雙CPU系統(tǒng),達(dá)到了所提出的要求,提高了系統(tǒng)的可靠性及工作效率。
因?yàn)镃PU的智能化及豐富的片內(nèi)資源,其靈活性和兼容性遠(yuǎn)遠(yuǎn)勝過(guò)邏輯電路組合設(shè)計(jì)模式,又因CPU的價(jià)格現(xiàn)在已很低廉,所以,雙CPU系統(tǒng)在一定的應(yīng)用環(huán)境中是非常適合的。