對于系統(tǒng)較大,實時性強,功能多,存儲量大,擴展能力要求強的工業(yè)控制系統(tǒng),可采用多個單片機,組成一個多微處理器系統(tǒng),使之具有并行處理功能。并行工作的各微處理器之間的信息交換,可采用串行通信方式,亦可用并行通信方式。但對于實時性強,并且信息交換量大的系統(tǒng),只有采用并行通信方式,才能滿足系統(tǒng)功能的要求。本節(jié)就實際應用的一些體會,著重介紹模塊式結構的多單片機通信。
一、通用并行接口8255A簡介
Intel 8255A是一種通用并行接口電路,可用編程的方法選擇其邏輯功能。該芯片可以和51系列單片機直接接口。8255A有3個8位的并行口:口A、口B和口C。有3種工作方式可供選擇:方式0為基本輸入/輸出方式;方式1為選通輸入/輸出方式;方式2為雙向選通輸入/輸出方式(僅適用于口A)。
51系列單片機8031組成的多單片機處理系統(tǒng)之間的并行通信,就是采用8255A的口A的工作方式2實現(xiàn)的。
1. 8255A工作方式2的主要功能
?、倏贏為一個8位的雙向總線端口,且具有I/O功能。
?、诳贐為一個8位的輸入/輸出口,口B0~2為一個3位的輸入/輸出口,可工作于方式O或方式1。
?、劭贑為一個5位的控制端口。
控制口功能如下:
●INTR( PC3) 中斷請求信號線,高電平有效。
●OBF的反相(PC7)輸出緩沖器滿/空狀態(tài)標志線。OBF=O,表示CPU已將數(shù)據寫入端口,
輸出口數(shù)據有效;當數(shù)據被外設取走后,OBF=1。
●IBF(PCs)輸入寄存器滿/空狀態(tài)標志線。IBF=1,表示外設已將數(shù)據打人端口鎖存
器,但CPU尚未讀??;當CPU讀取端口數(shù)據時,IBF=O。
●ACK的反相(PC6) 外設響應輸入信號線。當ACK上出現(xiàn)由外設送來的負脈沖時,表示外設
已將端口數(shù)據取走。
●STB的反相( PC4) 外設選通輸入信號線。在STB信號的下降沿計時,外設將端口數(shù)據線上
的信息打入端口寄存器。
2. 8255A工作方式2方式控制字的設定
8255A方式控制字格式如圖1- 51所示。
若允許方式2并行通信中斷,則可置位PC6(允許輸出中斷)和置位PC4(允許輸入中斷),即對8255A的PCO執(zhí)行位操作置位。
二、多單片機處理系統(tǒng)并行通信的硬件接口
多單片機處理系統(tǒng)并行通信的硬件接口邏輯原理圖如圖1- 52所示。圖中8031(I)子系統(tǒng)與8031(Ⅱ)子系統(tǒng)間的直接并行通信,是由8255A( I)來完成的;同理8031(Ⅱ)與8031(Ⅲ)又可通過8255(Ⅱ)實現(xiàn)直接并行通信。這樣就構成了一個并行通信系統(tǒng)。
8255A(I)PC口的5條控制線完成雙向并行通信的邏輯控制。8031(I)通過判別P17端口狀態(tài),判定8031(I)CPU輸出緩沖器有無有效數(shù)據送入端口(8031(Ⅱ)輸入數(shù)據時);通過判定Pl16端口狀態(tài),判定8031(I)CPU輸入緩沖器空否(8031(I)輸出數(shù)據時)。8031(Ⅱ)的讀/寫控制邏輯與地址譯碼線組合,作為其響應輸入線( ACK)和選通輸入線(STB),由8031(Ⅱ)控制選通。
三、多單片機處理系統(tǒng)并行通信的軟件設計
這種模塊式多微處理器系統(tǒng),軟件設計是相互獨立、互不干擾的,并且只需要一套通信軟件,即“中斷驅動軟件”和“狀態(tài)驅動軟件”,便可實現(xiàn)整個系統(tǒng)的并行通信,使用起來很方便。
在圖1- 52所示系統(tǒng)中,8031(I)與8031(Ⅱ)構成一對直接并行通信子系統(tǒng)。在這樣接口的一對子系統(tǒng)中,須有一對通信軟件,即在8031(I)子系統(tǒng)中應設計一個“中斷驅動軟件”,實現(xiàn)數(shù)據傳輸,包括輸入和輸出;而對8031(Ⅱ)子系統(tǒng),應設計一個“狀態(tài)驅動軟件”,實現(xiàn)數(shù)據傳輸。
1.中斷驅動軟件的設計
該軟件是駐留在與8255A直接接口的子系統(tǒng)中的通信軟件,由通信主程序、通信附服務程序以及數(shù)據輸入子程序和數(shù)據輸出子程序組成。流程圖分別示于圖1- 53~圖1- 56。
2.狀態(tài)驅動輸入/輸出軟件的設計
狀態(tài)驅動輸入/輸出軟件是駐留在需要從8255A的端口接收輸出狀態(tài),并根據接收狀態(tài)進行輸入/輸出信息的子系統(tǒng)中的(如8031(工)與8031(Ⅱ)這對直接并行通信的子系統(tǒng)中的8031(Ⅱ))。它是一種簡單的狀態(tài)驅動軟件。狀態(tài)驅動輸入程序流程如圖1- 57所示;狀態(tài)驅動輸出程序流程如圖1- 58所示。
同理,8031(Ⅱ)與8031(Ⅲ)這一對直接并行通信的子系統(tǒng)也可采用這套通信軟件。只要將“中斷驅動軟件”裝入8031(Ⅱ),再將“狀態(tài)驅動軟件”裝入8031(Ⅲ)即可。對于不同的信息,在各子系統(tǒng)中有其相應的數(shù)據緩沖區(qū),互相獨立,這樣3個子系統(tǒng)間便可實現(xiàn)并行通信。對于有更多子系統(tǒng)的并行處理系統(tǒng),亦是如此。
這種多單片機系統(tǒng)并行通信的接口方法,簡便易行,接口及編程均易實現(xiàn),特別適用于工業(yè)控制系統(tǒng)。實驗表明,這種方法可以提高系統(tǒng)的處理效率,提高實時性,為各子系統(tǒng)的編程及調試帶來了很大的方便,進一步提高了系統(tǒng)的可靠性、靈活性及可擴展性,開發(fā)潛力很大。隨著單片機工業(yè)控制系統(tǒng)在各方面的應用不斷深入,具有并行處理功能的模塊式多微處理器系統(tǒng)將日益得到發(fā)展,這也是由單片機本身所具有的特點所決定的。