專利名稱:多單片機(jī)多任務(wù)協(xié)作電路及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種多單片機(jī)多任務(wù)協(xié)作電路及其方法,屬于電子技術(shù)應(yīng)用和計(jì)算機(jī)應(yīng)用研究領(lǐng)域。
背景技術(shù):
單片機(jī)以其低廉的價(jià)格和強(qiáng)大的功能廣泛應(yīng)用于工業(yè)領(lǐng)域。在單片機(jī)應(yīng)用時(shí)我們會(huì)發(fā)現(xiàn)這樣一種情況:以單片機(jī)為核心的幾種工業(yè)控制系統(tǒng),這些系統(tǒng)除單片機(jī)中運(yùn)行的軟件外,其余硬件均相同。但是如果希望在這樣一套硬件上完成幾種不同的控制軟件以實(shí)現(xiàn)不同的功能,使得“一機(jī)多能”,會(huì)受制于單片機(jī)的程序存儲(chǔ)空間、數(shù)據(jù)存儲(chǔ)空間、運(yùn)算速度、控制軟件的復(fù)雜度等條件的限制變得難以實(shí)現(xiàn)。以紡織測(cè)量儀器為例,拉伸強(qiáng)力測(cè)試、撕破強(qiáng)力測(cè)試、頂破強(qiáng)力測(cè)試、剝離強(qiáng)力測(cè)試、單紗強(qiáng)力測(cè)試、彈性回復(fù)測(cè)試、縫口脫開測(cè)試、腋下接縫測(cè)試這些測(cè)試項(xiàng)目均是要給被測(cè)試織物加載負(fù)荷,然后測(cè)試織物承受的強(qiáng)力、弓丨起的伸長和加荷時(shí)間參數(shù),但是其加荷過程和測(cè)試方法各不相同。它們測(cè)試參數(shù)相同,意味著可以采用相同的硬件;加荷過程和方法的不同則意味著要采用不同的軟件。如果我們希望一臺(tái)機(jī)器上能進(jìn)行以上各項(xiàng)目的測(cè)量,傳統(tǒng)的設(shè)計(jì)方法是無法做到的。
另外,在單片機(jī)應(yīng)用系統(tǒng)也會(huì)存在這樣一種情況:雖然沒有“一機(jī)多能”的要求,但是算法特別復(fù)雜,單個(gè)單片機(jī)受片內(nèi)資源限制已無法完成。這時(shí)可以把一個(gè)較大的任務(wù)分解成多個(gè)相對(duì)簡單的子任務(wù),交給多個(gè)單片機(jī)運(yùn)行,以實(shí)現(xiàn)復(fù)雜的算法。
本發(fā)明就是解決以上問題的電路和方法。使用多個(gè)單片機(jī),這些單片機(jī)的輸入和輸出引腳均用三態(tài)門加以隔離后再連接到其他硬件上。本發(fā)明有兩種運(yùn)行模式:一、每個(gè)單片機(jī)分時(shí)工作,輪到自己工作時(shí)才執(zhí)行程序,否則進(jìn)入休眠狀態(tài)。利用此電路和方法,可以在同一硬件電路中存在多個(gè)單片機(jī),每個(gè)單片機(jī)僅執(zhí)行功能相對(duì)單一的程序,多個(gè)單片機(jī)分時(shí)工作,使得僅用一套硬件就可以同時(shí)完成多個(gè)不同的功能,實(shí)現(xiàn)“一機(jī)多能”。二、某時(shí)刻僅有其中一個(gè)單片機(jī)連接到其他硬件,其余單片機(jī)雖然不再使用其他硬件但也不進(jìn)行休目民,而是運(yùn)行各自的子任務(wù),使得多個(gè)單片機(jī)多任務(wù)并行協(xié)同工作。
本發(fā)明和發(fā)明專利《多單片機(jī)協(xié)同工作方法及多單片機(jī)協(xié)同工作系統(tǒng)》(申請(qǐng)?zhí)?201010200548.2,下文稱后者)雖然都涉及到一種多單片機(jī)協(xié)同工作方法,但是二者電路結(jié)構(gòu)、工作方法、擬解決的問題和發(fā)明內(nèi)容都完全不同。本發(fā)明各單片機(jī)地位對(duì)等,各自運(yùn)行的不同任務(wù)。各單片機(jī)都可以調(diào)度其他單片機(jī);后者采用的是一個(gè)主機(jī)多個(gè)從機(jī)的方式,屬主從式調(diào)度通訊,主單片機(jī)運(yùn)行調(diào)度程序,從單片機(jī)運(yùn)行子任務(wù)。本發(fā)明的主要硬件為三態(tài)門;后者的主要硬件是計(jì)數(shù)器、譯碼器和數(shù)據(jù)選擇器。本發(fā)明的電路結(jié)構(gòu)為各單片機(jī)可以分時(shí)使用同一其他硬件,也可以各自使用其他硬件的不同部分,整機(jī)工作方式為“一機(jī)多核”。后者主單片機(jī)和從單片都各自使用部分硬件,分別運(yùn)行不同的任務(wù),方式為“多機(jī)協(xié)作”。發(fā)明內(nèi)容
本發(fā)明提供一種多單片機(jī)多任務(wù)協(xié)作電路及方法。通過此裝置與方法,在同一硬件系統(tǒng)上可以共存多個(gè)單片機(jī),各單片機(jī)分時(shí)運(yùn)行不同的程序,使得同一硬件具有多種功能;或者多單片機(jī)多任務(wù)分時(shí)使用其他硬件,但各自的軟件并行工作。
為了達(dá)到以上目的,本發(fā)明的主要技術(shù)內(nèi)容如下: 一種多單片機(jī)多任務(wù)協(xié)作電路,包括多個(gè)單片機(jī)和三態(tài)門,所述三態(tài)門包括三態(tài)輸出門和三態(tài)輸入門;所述每個(gè)單片機(jī)的三個(gè)IO 口線作為控制口線,所述三個(gè)控制口線分別是通訊口線INT、數(shù)據(jù)口線DAT和三態(tài)門使能口線EN ; 所述每個(gè)單片機(jī)的輸出線與各自的三態(tài)輸出門相連; 所述每個(gè)單片機(jī)的輸入線與各自的三態(tài)輸入門相連; 所述每個(gè)單片機(jī)的三態(tài)門使能口線EN分別與各自的三態(tài)輸出門、三態(tài)輸入門的使能端相連; 所述每個(gè)單片機(jī)的三態(tài)輸出門的輸出線一一對(duì)應(yīng)相連,并連接至其他硬件的輸出線; 所述每個(gè)單片機(jī)的三態(tài)輸入門的輸出線一一對(duì)應(yīng)相連,并連接至其他硬件的輸入線; 所述每個(gè)單片機(jī)的通訊口線INT相連; 所述每個(gè)單片機(jī)的數(shù)據(jù)口線DAT相連。
一種多單片機(jī)多任務(wù)協(xié)作方法,采用上述多單片機(jī)多任務(wù)協(xié)作電路的硬件,其工作步驟是: (1)、禁能三態(tài)門,與其他硬件斷開; (2)、判斷是否熱復(fù)位啟動(dòng),如果是熱復(fù)位啟動(dòng),進(jìn)入休眠狀態(tài)(或者運(yùn)行子任務(wù)),等待其他單片機(jī)喚醒(或調(diào)度),喚醒(或調(diào)度)后轉(zhuǎn)步驟(6);否則轉(zhuǎn)步驟(3); (3)、判斷自己是否是O號(hào)單片機(jī),如是O號(hào)單片機(jī),使能三態(tài)門連接其他硬件電路,轉(zhuǎn)步驟(4);否則進(jìn)入休眠狀態(tài)(或者運(yùn)行子任務(wù)),等待其他單片機(jī)喚醒(或調(diào)度),喚醒(或調(diào)度)后轉(zhuǎn)步驟(6); (4)、運(yùn)行本單片機(jī)的子任務(wù); (5)、判斷是否要喚醒(或調(diào)度)其他單片機(jī)工作,如果需要喚醒(或調(diào)度)其他單片機(jī)工作,首先使能通訊口線INT喚醒(或調(diào)度)其他單片機(jī),其次通過數(shù)據(jù)口線DAT發(fā)送一個(gè)序號(hào),此序號(hào)是需要喚醒(或調(diào)度)并工作的單片機(jī)編號(hào);而后熱復(fù)位,轉(zhuǎn)入步驟(I);否則轉(zhuǎn)步驟⑷; (6)、被其他單片機(jī)喚醒(或調(diào)度),接收序號(hào); (7)、判斷此序號(hào)是否是自己的編號(hào),如果是自己的編號(hào),轉(zhuǎn)步驟(4);否則進(jìn)入休眠狀態(tài)(或者保持原狀態(tài)),等待其他單片機(jī)喚醒(或調(diào)度),喚醒(或調(diào)度)后轉(zhuǎn)步驟(6 )。
上述步驟(5)中發(fā)送序號(hào)的方法是通過DAT引腳在規(guī)定時(shí)間內(nèi)連續(xù)發(fā)送若干個(gè)低電平脈沖。
上述規(guī)定的時(shí)間為10ms。
上述低電平脈沖的周期是20us。
借由上述技術(shù)方案,本發(fā)明至少具有下列優(yōu)點(diǎn): 本發(fā)明可以消耗很少的單片機(jī)資源(僅三根口線)就可以在同一硬件系統(tǒng)上可以共存多個(gè)單片機(jī),各單片機(jī)分時(shí)運(yùn)行不同的程序,使得同一硬件具有多種功能;或者多單片機(jī)分時(shí)使用其他硬件(或各自使用部分其他硬件),但各自的軟件并行工作,使得多單片機(jī)協(xié)作完成復(fù)雜的任務(wù)。這樣即可以節(jié)約硬件資源,又可以提高儀器或控制系統(tǒng)的功能和技術(shù)附加值,獲得較好地社會(huì)影響。
本發(fā)明的具體實(shí)施方式
由以下實(shí)施例及其附圖詳細(xì)給出。
圖1為本發(fā)明的電路圖; 圖2為本發(fā)明的程序流程圖。
具體實(shí)施方式
為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實(shí)施例,對(duì)依據(jù)本發(fā)明提出的其具體實(shí)施方式
、結(jié)構(gòu)、特征及其功效,詳細(xì)說明如后。
如圖1所示,一種多單片機(jī)多任務(wù)協(xié)作電路,包括多個(gè)單片機(jī)和三態(tài)門,三態(tài)門包括三態(tài)輸出門和三態(tài)輸入門;每個(gè)單片機(jī)主機(jī)上的三個(gè)IO 口線作為控制口線,所述三個(gè)控制口線分別是通訊口線INT、數(shù)據(jù)口線DAT和三態(tài)門使能口線EN ; 每個(gè)單片機(jī)的輸出線與各自的三態(tài)輸出門相連; 每個(gè)單片機(jī)的輸入線與各自的三態(tài)輸入門相連; 每個(gè)單片機(jī)的三態(tài)門使能口線EN分別與各自的三態(tài)輸出門、三態(tài)輸入門的使能端相連; 每個(gè)單片機(jī)的三態(tài)輸出門的輸出線一一對(duì)應(yīng)相連,并連接至其他硬件的輸出線; 每個(gè)單片機(jī)的三態(tài)輸入門的輸出線一一對(duì)應(yīng)相連,并連接至其他硬件的輸入線; 每個(gè)單片機(jī)的通訊口線INT相連; 每個(gè)單片機(jī)的數(shù)據(jù)口線DAT相連。
如圖2所示,一種多單片機(jī)多任務(wù)協(xié)作方法,采用上述多單片機(jī)多任務(wù)協(xié)作電路的硬件,其工作步驟是: (1)、禁能三態(tài)門,與其他硬件斷開; (2)、判斷是否熱復(fù)位啟動(dòng),如果是熱復(fù)位啟動(dòng),進(jìn)入休眠狀態(tài)(或者運(yùn)行子任務(wù)),等待其他單片機(jī)喚醒(或調(diào)度),喚醒(或調(diào)度)后轉(zhuǎn)步驟(6);否則轉(zhuǎn)步驟(3); (3)、判斷自己是否是O號(hào)單片機(jī),如是O號(hào)單片機(jī),使能三態(tài)門連接其他硬件電路,轉(zhuǎn)步驟(4);否則進(jìn)入休眠狀態(tài)(或者運(yùn)行子任務(wù)),等待其他單片機(jī)喚醒(或調(diào)度),喚醒(或調(diào)度)后轉(zhuǎn)步驟(6); (4)、運(yùn)行本單片機(jī)的程序; (5)、判斷是否要喚醒(或調(diào)度)其他單片機(jī)工作,如果需要喚醒(或調(diào)度)其他單片機(jī)工作,首先使能通訊口線INT喚醒(或調(diào)度)其他單片機(jī),其次通過數(shù)據(jù)口線DAT發(fā)送一個(gè)序號(hào),此序號(hào)是需要喚醒(或調(diào)度)并工作的單片機(jī)編號(hào);而后熱復(fù)位,轉(zhuǎn)入步驟(I);否則轉(zhuǎn)步驟⑷; (6)、被其他單片機(jī)喚醒(或調(diào)度),接收序號(hào); (7)、判斷此序號(hào)是否是自己的編號(hào),如果是自己的編號(hào),轉(zhuǎn)步驟(4);否則進(jìn)入休眠狀態(tài)(或者保持原狀態(tài)),等待其他單片機(jī)喚醒(或調(diào)度),喚醒(或調(diào)度)后轉(zhuǎn)步驟(6 )。
上述步驟(5)中發(fā)送序號(hào)的方法是通過DAT引腳在規(guī)定時(shí)間內(nèi)連續(xù)發(fā)送若干個(gè)低電平脈沖。規(guī)定的時(shí)間為10ms。低電平脈沖的周期是20us。
本發(fā)明總體工作原理是每個(gè)單片機(jī)通過三態(tài)門與其他硬件相連。當(dāng)自己不工作時(shí)禁能三態(tài)門與其他硬件斷開,然后進(jìn)入休眠狀態(tài)(或者運(yùn)行子任務(wù)),等待其他單片機(jī)喚醒(或調(diào)度)。當(dāng)需要自己工作時(shí),使能三態(tài)門連接其他硬件,運(yùn)行自己的程序。第一次上電時(shí)總是第O號(hào)單片機(jī)首先運(yùn)行,然后通過調(diào)度算法喚醒(或調(diào)度)其他單片機(jī)。喚醒(或調(diào)度)其他單片機(jī)后,第O號(hào)單片機(jī)進(jìn)入休眠狀態(tài)(或者運(yùn)行子任務(wù))。
實(shí)施例: 利用本發(fā)明技術(shù),把8個(gè)單片機(jī)用于一套機(jī)械和電路組成的硬件上,實(shí)現(xiàn)了織物的拉伸強(qiáng)力測(cè)試、撕破強(qiáng)力測(cè)試、頂破強(qiáng)力測(cè)試、剝離強(qiáng)力測(cè)試、單紗強(qiáng)力測(cè)試、彈性回復(fù)測(cè)試、縫口脫開測(cè)試、腋下接縫測(cè)試,使得原本一個(gè)功能單一的儀器,變成了多功能儀器,開發(fā)了多功能織物強(qiáng)力機(jī)。
實(shí)施例的電路板分為單片機(jī)板和硬件底板兩部分。單片機(jī)板的電路原理圖參考圖1。其單片機(jī)采用51單片機(jī),三態(tài)門采用74LS245。INT采用P3.2引腳,DAT采用Pl.0引腳,EN采用Pl.1引腳。單片機(jī)板共8片,分別含有拉伸強(qiáng)力測(cè)試、撕破強(qiáng)力測(cè)試、頂破強(qiáng)力測(cè)試、剝離強(qiáng)力測(cè)試、單紗強(qiáng)力測(cè)試、彈性回復(fù)測(cè)試、縫口脫開測(cè)試、腋下接縫測(cè)試的程序。編號(hào)從O到7。硬件底板主要包括:輸入鍵盤、液晶顯示、存儲(chǔ)芯片、強(qiáng)力AD、長度脈沖計(jì)數(shù)、通訊接口等電路。8片單片機(jī)板分別插座硬件底板對(duì)應(yīng)的插座上。二者通過插針和插座的連接使單片機(jī)的輸入輸出引腳和底板的硬件輸入輸出信號(hào)相連。
上電后,O號(hào)單片機(jī)使能EN腳,與硬件底板電路相連,運(yùn)行內(nèi)置程序,在液晶上顯示主菜單——測(cè)試項(xiàng)目選擇菜單,等待用戶選擇,其余單片機(jī)禁能EN并休眠。若用戶通過鍵盤選擇“拉伸強(qiáng)力測(cè)試”,O號(hào)單片機(jī)就運(yùn)行拉伸強(qiáng)力測(cè)試程序,執(zhí)行完畢后,再次在液晶上顯示主菜單等待用戶選擇。若用戶選擇“撕破強(qiáng)力測(cè)試”,O號(hào)單片機(jī)做4個(gè)動(dòng)作:使能INT,通過DAT引腳發(fā)送“1”,禁能EN腳,熱復(fù)位并休眠。由于所有單片機(jī)的INT引腳連在一起,除O號(hào)單片機(jī)的其他單片機(jī)都被喚醒,但DAT發(fā)送的是“1”,所以只有I號(hào)單片機(jī)即撕破強(qiáng)力測(cè)試程序開始執(zhí)行,執(zhí)行完畢后,在液晶上顯示主菜單等待用戶選擇。未被選中的單片機(jī)繼續(xù)休眠。若用戶選擇其他功能,原理相同。
可以看到利用本發(fā)明,把本來只能完成一項(xiàng)測(cè)試的儀器,變成了能完成八項(xiàng)測(cè)試的儀器。節(jié)約資源,增強(qiáng)了儀器的科技含量,提高了經(jīng)濟(jì)效益和社會(huì)效益。
以上所述,僅是本發(fā)明的較佳實(shí)施例而已,并非對(duì)本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實(shí)施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的技術(shù)內(nèi)容作出些許更動(dòng)或修飾為等同變化的等效實(shí)施例,但凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
權(quán)利要求
1.一種多單片機(jī)多任務(wù)協(xié)作電路,其特征在于:包括多個(gè)單片機(jī)和三態(tài)門,所述三態(tài)門包括三態(tài)輸出門和三態(tài)輸入門;所述每個(gè)單片機(jī)的三個(gè)IO 口線作為控制口線,所述三個(gè)控制口線分別是通訊口線INT、數(shù)據(jù)口線DAT和三態(tài)門使能口線EN ; 所述每個(gè)單片機(jī)的輸出線與各自的三態(tài)輸出門相連; 所述每個(gè)單片機(jī)的輸入線與各自的三態(tài)輸入門相連; 所述每個(gè)單片機(jī)的三態(tài)門使能口線EN分別與各自的三態(tài)輸出門、三態(tài)輸入門的使能端相連; 所述每個(gè)單片機(jī)的三態(tài)輸出門的輸出線一一對(duì)應(yīng)相連,并連接至其他硬件的輸出線; 所述每個(gè)單片機(jī)的三態(tài)輸入門的輸出線一一對(duì)應(yīng)相連,并連接至其他硬件的輸入線; 所述每個(gè)單片機(jī)的通訊口線INT相連; 所述每個(gè)單片機(jī)的數(shù)據(jù)口線DAT相連。
2.—種多單片機(jī)多任務(wù)協(xié)作方法,其特征在于采用權(quán)利要求1所述的多單片機(jī)多任務(wù)協(xié)作電路的硬件,其工作步驟是: (1)、禁能三態(tài)門,與其他硬件斷開; (2)、判斷是否熱復(fù)位啟動(dòng),如果是熱復(fù)位啟動(dòng),進(jìn)入休眠狀態(tài)(或者運(yùn)行子任務(wù)),等待其他單片機(jī)喚醒(或調(diào)度),喚醒(或調(diào)度)后轉(zhuǎn)步驟(6);否則轉(zhuǎn)步驟(3); (3)、判斷自己是否是O號(hào)單片機(jī),如是O號(hào)單片機(jī),使能三態(tài)門連接其他硬件電路,轉(zhuǎn)步驟(4);否則進(jìn)入休眠狀態(tài)(或者運(yùn)行子任務(wù)),等待其他單片機(jī)喚醒(或調(diào)度),喚醒(或調(diào)度)后轉(zhuǎn)步驟(6); (4)、運(yùn)行本單片機(jī)的任務(wù); (5)、判斷是否要喚醒(或調(diào)度)其他單片機(jī)工作,如果需要喚醒(或調(diào)度)其他單片機(jī)工作,首先使能通訊口線INT喚醒(或調(diào)度)其他單片機(jī),其次通過數(shù)據(jù)口線DAT發(fā)送一個(gè)序號(hào),此序號(hào)是需要喚醒(或調(diào)度)并工作的單片機(jī)編號(hào);而后熱復(fù)位,轉(zhuǎn)入步驟(I);否則轉(zhuǎn)步驟⑷; (6)、被其他單片機(jī)喚醒(或調(diào)度),接收序號(hào); (7)、判斷此序號(hào)是否是自己的編號(hào),如果是自己的編號(hào),轉(zhuǎn)步驟(4);否則進(jìn)入休眠狀態(tài)(或者保持原狀態(tài)),等待其他單片機(jī)喚醒(或調(diào)度),喚醒(或調(diào)度)后轉(zhuǎn)步驟(6 )。
3.根據(jù)權(quán)利要求2所述的一種多單片機(jī)多任務(wù)協(xié)作方法,其特征在于:所述步驟(5)中發(fā)送序號(hào)的方法是通過DAT引腳在規(guī)定時(shí)間內(nèi)連續(xù)發(fā)送若干個(gè)低電平脈沖。
4.根據(jù)權(quán)利要求3所述的一種多單片機(jī)多任務(wù)協(xié)作方法,其特征在于:所述規(guī)定的時(shí)間為IOms0
5.根據(jù)權(quán)利要求3所述的一種多單片機(jī)多任務(wù)協(xié)作方法,其特征在于:所述低電平脈沖的周期是20us。
全文摘要
本發(fā)明涉及一種多單片機(jī)多任務(wù)協(xié)作電路,包括多個(gè)單片機(jī)、三態(tài)門及每個(gè)單片機(jī)上做為控制線的三根IO口線。三根控制口線分別是通訊口線INT、數(shù)據(jù)口線DAT和三態(tài)門使能口線EN;每個(gè)單片機(jī)的輸入輸出線分別與各自對(duì)應(yīng)的三態(tài)門相連;通過三態(tài)門使能口線EN使能或禁能三態(tài)門以決定單片機(jī)是否與其他硬件相連;每個(gè)單片機(jī)的通訊口線INT相連;每個(gè)單片機(jī)的數(shù)據(jù)口線DAT相連。本發(fā)明可以使多個(gè)單片機(jī)分時(shí)共用同一硬件,并運(yùn)行多道不同程序。本發(fā)明可以有兩種運(yùn)行模式一、多單片機(jī)分時(shí)使用硬件分時(shí)運(yùn)行軟件從而達(dá)到“一機(jī)多能”節(jié)約資源,增強(qiáng)儀器功能的目的;二、多單片機(jī)分時(shí)使用硬件同時(shí)運(yùn)行軟件,分工協(xié)作完成一個(gè)復(fù)雜算法。
文檔編號(hào)G06F15/17GK103150287SQ20131007904
公開日2013年6月12日 申請(qǐng)日期2013年3月12日 優(yōu)先權(quán)日2013年3月12日
發(fā)明者劉玉宏, 劉小峰, 蔣愛民 申請(qǐng)人:河海大學(xué)常州校區(qū)