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