專利名稱:多單片機(jī)協(xié)同工作方法及多單片機(jī)協(xié)同工作系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于單片機(jī)技術(shù)領(lǐng)域,涉及一種多單片機(jī)協(xié)同工作方法及多單片機(jī)協(xié)同工作系統(tǒng)。
背景技術(shù):
由于單片機(jī)價(jià)格低廉,應(yīng)用方便可靠的優(yōu)點(diǎn),其應(yīng)用十分廣泛和普及,但單片機(jī)作 為一個(gè)單機(jī)來說,由于其IO端口線有限,也使其應(yīng)用受到了限制,隨著應(yīng)用領(lǐng)域的不斷擴(kuò) 大,有時(shí)單個(gè)單片機(jī)的控制就顯得力不從心了,因此在一些較大的系統(tǒng)中要應(yīng)用單片機(jī)的 話,需要用到多個(gè)單片機(jī)構(gòu)成單片機(jī)陣列來參與控制,并且往往要求這些單片機(jī)協(xié)同工作。 例如,在LED大屏幕顯示裝置中就需要使用多個(gè)單片機(jī),為確保LED大屏幕顯示裝置畫面的 統(tǒng)一完整,各單片機(jī)必須能夠協(xié)同工作。目前,實(shí)現(xiàn)單片機(jī)協(xié)同工作方式可以借助于使用單片機(jī)的串行口進(jìn)行通信組成一 個(gè)單片機(jī)網(wǎng)絡(luò)系統(tǒng)工作,這種方式存在以下缺陷1)不能靈活地選用單片機(jī)的IO 口線,只 能固定使用單片機(jī)的串行端口線;2)主客單片機(jī)的串行口都要被占用,系統(tǒng)不能通過串行 口與上位機(jī)(PC機(jī))或者其它裝置進(jìn)行通信;2)軟件設(shè)計(jì)復(fù)雜度較高。另一種方式是將單片機(jī)通過2根IO端口線直接相聯(lián),這種方式的主要問題是單片 機(jī)擴(kuò)大的數(shù)量受到限制,仍然只適合于需要單片機(jī)的IO端口控制線還不太多的應(yīng)用,而且 還要以失去主單片機(jī)的IO端口線和控制功能為代價(jià)。要解決上述問題,需要尋找一種僅占用單片機(jī)的IO端口線資源很少、能夠避開單 片機(jī)特定的IO端口線、即IO端口線可以是任選的、外圍芯片十分廉價(jià)、客機(jī)數(shù)量又不受限 制的方案。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種多單片機(jī)協(xié)同工作方法及多單片機(jī)協(xié)同 工作系統(tǒng),該多單片機(jī)協(xié)同工作方法及多單片機(jī)協(xié)同工作系統(tǒng)易于實(shí)施、成本低、完成任務(wù) 效率高。本發(fā)明的技術(shù)解決方案如下一種多單片機(jī)協(xié)同工作系統(tǒng),其特征在于,由一個(gè)單片機(jī)主機(jī)、多個(gè)單片機(jī)客機(jī)、 一個(gè)計(jì)數(shù)器、一個(gè)譯碼器和一個(gè)數(shù)據(jù)選擇器組成;單片機(jī)主機(jī)上的4個(gè)IO端口作為控制端 口,該4個(gè)IO端口分別是計(jì)數(shù)器復(fù)位端口(10X0)、計(jì)數(shù)脈沖輸出端口(10X1)、響應(yīng)信號(hào)反 饋端口 (10X2)和使能端口 (10X3);計(jì)數(shù)器復(fù)位端口(10X0)與計(jì)數(shù)器的復(fù)位端(RST)相接,計(jì)數(shù)脈沖輸出端口(IOXl) 與計(jì)數(shù)器的時(shí)鐘信號(hào)輸入端(CLK)相接;計(jì)數(shù)器的數(shù)據(jù)輸出端(QO-Qm)與譯碼器的數(shù)據(jù)輸 入端以及數(shù)據(jù)選擇權(quán)的通道選擇數(shù)據(jù)輸對應(yīng)選通IO端口 一一連接;使能端口(10X3)接譯碼器的使能端(EN)和數(shù)據(jù)選擇器的選通端(G);數(shù)據(jù)選擇 器的多個(gè)輸入通道(Dl-Dn)分別與多個(gè)單片機(jī)客機(jī)的響應(yīng)IO端口一一連接,數(shù)據(jù)選擇器的輸出端(Z)與響應(yīng)信號(hào)反饋端口(10X2)相接;每一個(gè)單片機(jī)客機(jī)都有一個(gè)功能執(zhí)行單元,該功能執(zhí)行單元用于由譯碼器輸出的 輸出選通信號(hào)觸發(fā)而執(zhí)行本單片機(jī)從機(jī)中的預(yù)設(shè)程序以實(shí)現(xiàn)預(yù)設(shè)的功能。
所述的譯碼器為74LS138D芯片,計(jì)數(shù)器采用4024BP芯片,單片機(jī)主機(jī)和從機(jī)均采 用為51系列單片機(jī),數(shù)據(jù)選擇器采用74LS251D芯片。一種多單片機(jī)協(xié)同工作方法,采用前述的多單片機(jī)協(xié)同工作系統(tǒng)的硬件,單片機(jī) 主機(jī)的工作步驟為步驟1 二進(jìn)制計(jì)數(shù)器清零,置數(shù)據(jù)選擇器使能端有效,置譯碼器使能端無效;步驟2 發(fā)送要呼叫的單片機(jī)客機(jī)的編號(hào)到計(jì)數(shù)器;步驟3 根據(jù)響應(yīng)信號(hào)反饋端口(10X2)的狀態(tài)判斷被呼叫的單片機(jī)客機(jī)是否空 閑,如果空閑,則進(jìn)入下一步,否則返回步驟3 ;步驟4:置數(shù)據(jù)選擇器使能端無效,置譯碼器使能有效,使得譯碼器輸出單片機(jī)客 機(jī)選通信號(hào);步驟5 延時(shí),然后計(jì)數(shù)器清零;步驟6 置數(shù)據(jù)選擇器使能端有效,置譯碼器使能端無效,呼叫操作結(jié)束;單片機(jī)從客機(jī)的工作步驟為步驟A 復(fù)位響應(yīng)端口狀態(tài),表示空閑可響應(yīng)呼叫;步驟B 查詢選通IO端口的狀態(tài),判斷是否有呼叫,如果有呼叫則進(jìn)入下一步,否 則返回步驟B;步驟C 置相應(yīng)端口狀態(tài)為有效,表示響應(yīng)呼叫;步驟D 啟動(dòng)功能執(zhí)行單元,完成呼叫所規(guī)定的操作;步驟E 復(fù)位響應(yīng)端口狀態(tài),表示空閑可響應(yīng)呼叫,并返回步驟B。本發(fā)明包含有多個(gè)單片機(jī)、一個(gè)二進(jìn)制計(jì)數(shù)器、一個(gè)譯碼器、一個(gè)數(shù)據(jù)選擇器及其 連接線路(見附圖)、編程流程圖,并有列有應(yīng)用示例。本發(fā)明中多個(gè)單片機(jī)協(xié)同工作方 法體現(xiàn)為在需要使用多個(gè)單片機(jī)協(xié)同工作時(shí),可以設(shè)定一個(gè)單片機(jī)為呼叫單片機(jī)(簡稱主 機(jī)),其他單片機(jī)為被呼叫單片機(jī)(簡稱客機(jī)),它們之間的關(guān)系為主_客關(guān)系,當(dāng)主機(jī)發(fā)現(xiàn) 系統(tǒng)中需要客機(jī)協(xié)助完成某項(xiàng)的工作時(shí),呼叫客機(jī),使客機(jī)及時(shí)完成該工作。它們各自有相 對的獨(dú)立性,有單獨(dú)的任務(wù)要完成,但又需要協(xié)同工作,它們的空間位置比較近,傳輸?shù)男?息量并不大,只傳送命令及執(zhí)行命令的情況,不傳送數(shù)據(jù),這一點(diǎn)不同于主_從式通信,因 而它類似于人類社會(huì)領(lǐng)導(dǎo)與成員之間的關(guān)系。有益效果本發(fā)明采用較少且廉價(jià)的外圍芯片,使用很少的單片機(jī)IO端口線就解決了多單 片機(jī)陣列的協(xié)同工作的應(yīng)用技術(shù)障礙,充分發(fā)揮了單片機(jī)價(jià)格低廉,應(yīng)用方便可靠的特點(diǎn), 而且編程容易,易于實(shí)施,能取得良好的應(yīng)用效果,因此,實(shí)施本發(fā)明的性價(jià)比極高,具有很 廣的應(yīng)用前景。
圖1為本發(fā)明電路示意圖。圖2為軟件設(shè)計(jì)流程圖,a為單片機(jī)主機(jī)工作流程圖,b為單片機(jī)客機(jī)工作流程圖。
具體實(shí)施例方式下面結(jié)合附圖以具體實(shí)施例對本發(fā)明的技術(shù)方案及工作過程作進(jìn)一步的說明,但本發(fā)明的保護(hù)范圍不限于此實(shí)施例1參見圖1,一種多單片機(jī)協(xié)同工作系統(tǒng),其特征在于,由一個(gè)單片機(jī)主機(jī)、多個(gè)單片 機(jī)客機(jī)、一個(gè)計(jì)數(shù)器、一個(gè)譯碼器和一個(gè)數(shù)據(jù)選擇器組成;單片機(jī)主機(jī)上的4個(gè)IO端口作為 控制端口,該4個(gè)IO端口分別是計(jì)數(shù)器復(fù)位端口 10X0、計(jì)數(shù)脈沖輸出端口 10X1、響應(yīng)信號(hào) 反饋端口 10X2和使能端口 10X3 ;計(jì)數(shù)器復(fù)位端口 10X0與計(jì)數(shù)器的復(fù)位端RST相接,計(jì)數(shù)脈沖輸出端口 IOXl與計(jì) 數(shù)器的時(shí)鐘信號(hào)輸入端CLK相接;計(jì)數(shù)器的數(shù)據(jù)輸出端QO-Qm與譯碼器的數(shù)據(jù)輸入端以及 數(shù)據(jù)選擇權(quán)的通道選擇數(shù)據(jù)輸對應(yīng)選通IO端口 一一連接;使能端口 10X3接譯碼器的使能端EN和數(shù)據(jù)選擇器的選通端G ;數(shù)據(jù)選擇器的多 個(gè)輸入通道Dl-Dn分別與多個(gè)單片機(jī)客機(jī)的響應(yīng)IO端口一一連接,數(shù)據(jù)選擇器的輸出端Z 與響應(yīng)信號(hào)反饋端口 10X2相接;每一個(gè)單片機(jī)客機(jī)都有一個(gè)功能執(zhí)行單元,該功能執(zhí)行單元用于由譯碼器輸出的 輸出選通信號(hào)觸發(fā)而執(zhí)行本單片機(jī)從機(jī)中的預(yù)設(shè)程序以實(shí)現(xiàn)預(yù)設(shè)的功能。單片機(jī)主機(jī)和單片機(jī)客機(jī)協(xié)同工作的時(shí)候,單片機(jī)主機(jī)和單片機(jī)客機(jī)之間的通信 只是起到協(xié)同和同步的作用,并不傳輸復(fù)雜的數(shù)據(jù)和復(fù)雜的控制命令。不同的單片機(jī)客機(jī) 執(zhí)行不同的功能程序,比如1號(hào)單片機(jī)客機(jī)完成功能1,η號(hào)單片機(jī)客機(jī)完成功能η。所述的譯碼器為74LS138D芯片,計(jì)數(shù)器采用4024ΒΡ芯片,單片機(jī)主機(jī)和從機(jī)均采 用為51系列單片機(jī),數(shù)據(jù)選擇器采用74LS251D芯片。參見圖2,一種多單片機(jī)協(xié)同工作方法,采用前述的多單片機(jī)協(xié)同工作系統(tǒng)的硬 件,單片機(jī)主機(jī)的工作步驟為步驟1 二進(jìn)制計(jì)數(shù)器清零,置數(shù)據(jù)選擇器使能端有效,置譯碼器使能端無效;步驟2 發(fā)送要呼叫的單片機(jī)客機(jī)的編號(hào)到計(jì)數(shù)器;步驟3 根據(jù)響應(yīng)信號(hào)反饋端口 10X2的狀態(tài)判斷被呼叫的單片機(jī)客機(jī)是否空閑, 如果空閑,則進(jìn)入下一步,否則返回步驟3 ;步驟4 置數(shù)據(jù)選擇器使能端無效,置譯碼器使能有效,使得譯碼器輸出單片機(jī)客 機(jī)選通信號(hào);步驟5 延時(shí),然后計(jì)數(shù)器清零;步驟6 置數(shù)據(jù)選擇器使能端有效,置譯碼器使能端無效,呼叫操作結(jié)束;單片機(jī)從客機(jī)的工作步驟為步驟A 復(fù)位響應(yīng)端口狀態(tài),表示空閑可響應(yīng)呼叫;步驟B 查詢選通IO端口的狀態(tài),判斷是否有呼叫,如果有呼叫則進(jìn)入下一步,否 則返回步驟B;步驟C 置相應(yīng)端口狀態(tài)為有效,表示響應(yīng)呼叫;步驟D 啟動(dòng)功能執(zhí)行單元,完成呼叫所規(guī)定的操作;
步驟E 復(fù)位響應(yīng)端口狀態(tài),表示空閑可響應(yīng)呼叫,并返回步驟B。硬件由一多個(gè)單片機(jī)構(gòu)成的單片機(jī)陣列、一個(gè)二進(jìn)制計(jì)數(shù)器、一個(gè)譯碼器和一個(gè) 數(shù)據(jù)選擇器連接而成,器件之間的連線如說明書附圖1所示,主機(jī)與各客機(jī)所使用的IO端 口線分別定義如表一所示。表一單片機(jī)陣列各IO端口線定義
單片機(jī)端口線端口線功能10
IOXO一.進(jìn)制計(jì)數(shù)器清零輸出清零 計(jì)數(shù)或保持
IOXl 計(jì)數(shù)脈沖輸出(下降沿有效)
主機(jī)----
IOX2客機(jī)響應(yīng)信號(hào)輸入客機(jī)空閑 客機(jī)正在響應(yīng)
IOX3 譯碼器、數(shù)據(jù)選擇器使能控制輸出 選中譯碼器 選中數(shù)據(jù)選擇器
IOXO主機(jī)呼叫信號(hào)輸入未呼叫正呼叫
客機(jī)----
IOXl客機(jī)呼叫響應(yīng)輸出正響應(yīng)呼叫 空閑或未響應(yīng)一、主機(jī)呼叫當(dāng)主機(jī)在發(fā)現(xiàn)系統(tǒng)有呼叫某一客機(jī)的需要時(shí),就會(huì)起動(dòng)如圖2(a)所示的操作流 程,主機(jī)程序可以子程序的形式編寫。二、客機(jī)響應(yīng)在客機(jī)程序中,查詢主機(jī)的呼叫信號(hào),按如圖2(b)所示的流程進(jìn)行響應(yīng)。如果在 系統(tǒng)中,客機(jī)不需要使用外部中斷,可以選擇10X0 = P3.2(P3. 3),而將客機(jī)響應(yīng)安排為中 斷服務(wù)程序,可避免客機(jī)進(jìn)行查詢,可使響應(yīng)過程更為及時(shí)快速。實(shí)用效果將本技術(shù)應(yīng)用于一個(gè)使用了 10個(gè)單片機(jī)的LED廣告控制系統(tǒng)中,該系統(tǒng)LED屏 為一個(gè)行線數(shù)為96、列線數(shù)為1280的單色屏,由單片機(jī)主機(jī)與單片機(jī)客機(jī)1負(fù)責(zé)行線的控 制,其他8個(gè)單片機(jī)客機(jī)負(fù)責(zé)列線的控制,由于使用了較多的單片機(jī)進(jìn)行協(xié)同工作,有較多 單片機(jī)的資源可以利用,較容易地實(shí)現(xiàn)了文字和圖片畫面的左移、右移、上移、上移、逐行消 失、逐列消失、閃爍等功能。
權(quán)利要求
一種多單片機(jī)協(xié)同工作系統(tǒng),其特征在于,由一個(gè)單片機(jī)主機(jī)、多個(gè)單片機(jī)客機(jī)、一個(gè)計(jì)數(shù)器、一個(gè)譯碼器和一個(gè)數(shù)據(jù)選擇器組成;單片機(jī)主機(jī)上的4個(gè)IO端口作為控制端口,該4個(gè)IO端口分別是計(jì)數(shù)器復(fù)位端口(IOX0)、計(jì)數(shù)脈沖輸出端口(IOX1)、響應(yīng)信號(hào)反饋端口(IOX2)和使能端口(IOX3);計(jì)數(shù)器復(fù)位端口(IOX0)與計(jì)數(shù)器的復(fù)位端(RST)相接,計(jì)數(shù)脈沖輸出端口(IOX1)與計(jì)數(shù)器的時(shí)鐘信號(hào)輸入端(CLK)相接;計(jì)數(shù)器的數(shù)據(jù)輸出端(Q0-Qm)與譯碼器的數(shù)據(jù)輸入端以及數(shù)據(jù)選擇權(quán)的通道選擇數(shù)據(jù)輸對應(yīng)選通IO端口一一連接;使能端口(IOX3)接譯碼器的使能端(EN)和數(shù)據(jù)選擇器的選通端(G);數(shù)據(jù)選擇器的多個(gè)輸入通道(D1-Dn)分別與多個(gè)單片機(jī)客機(jī)的響應(yīng)IO端口一一連接,數(shù)據(jù)選擇器的輸出端(Z)與響應(yīng)信號(hào)反饋端口(IOX2)相接;每一個(gè)單片機(jī)客機(jī)都有一個(gè)功能執(zhí)行單元,該功能執(zhí)行單元用于由譯碼器輸出的輸出選通信號(hào)觸發(fā)而執(zhí)行本單片機(jī)從機(jī)中的預(yù)設(shè)程序以實(shí)現(xiàn)預(yù)設(shè)的功能。
2.根據(jù)權(quán)利要求1所述的多單片機(jī)協(xié)同工作系統(tǒng),其特征在于,所述的譯碼器為 74LS138D芯片,計(jì)數(shù)器采用4024BP芯片,單片機(jī)主機(jī)和從機(jī)均采用為51系列單片機(jī),數(shù)據(jù) 選擇器采用74LS251D芯片。
3.—種多單片機(jī)協(xié)同工作方法,其特征在于,采用權(quán)利要求1或2所述的多單片機(jī)協(xié)同 工作系統(tǒng)的硬件,單片機(jī)主機(jī)的工作步驟為步驟1 二進(jìn)制計(jì)數(shù)器清零,置數(shù)據(jù)選擇器使能端有效,置譯碼器使能端無效; 步驟2 發(fā)送要呼叫的單片機(jī)客機(jī)的編號(hào)到計(jì)數(shù)器;步驟3:根據(jù)響應(yīng)信號(hào)反饋端口(10X2)的狀態(tài)判斷被呼叫的單片機(jī)客機(jī)是否空閑,如 果空閑,則進(jìn)入下一步,否則返回步驟3 ;步驟4:置數(shù)據(jù)選擇器使能端無效,置譯碼器使能有效,使得譯碼器輸出單片機(jī)客機(jī)選 通信號(hào);步驟5:延時(shí),然后計(jì)數(shù)器清零;步驟6 置數(shù)據(jù)選擇器使能端有效,置譯碼器使能端無效,呼叫操作結(jié)束;單片機(jī)從客機(jī)的工作步驟為步驟A 復(fù)位響應(yīng)端口狀態(tài),表示空閑可響應(yīng)呼叫;步驟B 查詢選通10端口的狀態(tài),判斷是否有呼叫,如果有呼叫則進(jìn)入下一步,否則返 回步驟B ;步驟C 置相應(yīng)端口狀態(tài)為有效,表示響應(yīng)呼叫;步驟D 啟動(dòng)功能執(zhí)行單元,完成呼叫所規(guī)定的操作;步驟E 復(fù)位響應(yīng)端口狀態(tài),表示空閑可響應(yīng)呼叫,并返回步驟B。
全文摘要
本發(fā)明公開了一種多單片機(jī)協(xié)同工作方法及多單片機(jī)協(xié)同工作系統(tǒng),該工作系統(tǒng)由一個(gè)單片機(jī)主機(jī)、多個(gè)單片機(jī)客機(jī)、一個(gè)計(jì)數(shù)器、一個(gè)譯碼器和一個(gè)數(shù)據(jù)選擇器組成;單片機(jī)主機(jī)上的4個(gè)IO端口作為控制端口,該4個(gè)IO端口分別是計(jì)數(shù)器復(fù)位端口、計(jì)數(shù)脈沖輸出端口、響應(yīng)信號(hào)反饋端口和使能端口;每一個(gè)單片機(jī)客機(jī)都有一個(gè)功能執(zhí)行單元,該功能執(zhí)行單元用于由譯碼器輸出的輸出選通信號(hào)觸發(fā)而執(zhí)行本單片機(jī)從機(jī)中的預(yù)設(shè)程序以實(shí)現(xiàn)預(yù)設(shè)的功能。本發(fā)明采用較少且廉價(jià)的外圍芯片,使用很少的單片機(jī)IO端口線就解決了多單片機(jī)陣列的協(xié)同工作的應(yīng)用技術(shù)障礙,充分發(fā)揮了單片機(jī)價(jià)格低廉,性價(jià)比極高,具有很廣的應(yīng)用前景。
文檔編號(hào)G06F15/17GK101859291SQ201010200548
公開日2010年10月13日 申請日期2010年6月13日 優(yōu)先權(quán)日2010年6月13日
發(fā)明者王新輝, 王梓全, 馬凌云 申請人:王新輝