專利名稱:一種可擴(kuò)展多微處理器同步控制運(yùn)行方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多微處理器同步控制運(yùn)行技術(shù)領(lǐng)域,特別是基于單片機(jī)串口的擴(kuò)展技術(shù)。
背景技術(shù):
通常模擬信號指示產(chǎn)品是一些由信號指示燈、蜂鳴器、繼電器等組成,常常作為某種設(shè)備的附屬部分,用來指示當(dāng)前設(shè)備的運(yùn)行狀態(tài)、進(jìn)行聲光報(bào)警或控制輸出電平等功能。每一個(gè)器件由一個(gè)專用的IO信號來控制,當(dāng)需要指示的信號多,狀態(tài)復(fù)雜時(shí),連接線將非常多,當(dāng)模擬顯示信息裝置到主機(jī)距離較遠(yuǎn)時(shí),大量的信號指示線,信號長距離傳輸易衰減,易被其它信號干擾,非常不利于系統(tǒng)的穩(wěn)定,不利于強(qiáng)電磁干擾環(huán)境下的應(yīng)用。另外計(jì)算機(jī)主機(jī)對IO類外部設(shè)備的控制,通常采用選配基于PCI總線的通用IO模塊來實(shí)現(xiàn)。這一方案硬件成本高、軟件配置相對較復(fù)雜。隨著信息技術(shù)的快速發(fā)展,各類以單片機(jī)為主處理器的設(shè)備需求也越來越多。串行接口由于其標(biāo)準(zhǔn)化、接口簡單、適應(yīng)能力強(qiáng)、可靠性高等特點(diǎn)成為大量電子產(chǎn)品的通用數(shù)據(jù)接口。該型接口非常便于計(jì)算機(jī)外設(shè)與主機(jī)的通訊。由于串行接口和外圍之間連線最少,因而非常經(jīng)濟(jì),特別適合長距離通訊。單片機(jī)是支持串口通信的常用、成熟的一種微處理器,其憑借強(qiáng)大的可編程能力及高性價(jià)比,已成為一種廣泛應(yīng)用的微處理器。采用價(jià)格低廉的單片機(jī),通過其串行接口進(jìn)行長距離傳輸,通過并聯(lián)擴(kuò)展出大量IO接口控制眾多的指示燈等IO類外設(shè),這種方式控制的軟件實(shí)現(xiàn)相對簡單、硬件成本低,可靠性高。通常現(xiàn)有的一些模擬顯示設(shè)備,一次只能顯示少量的信號,模擬的信號狀態(tài)比較單一,不具備可定制通信協(xié)議的功能,更不具備大量狀態(tài)信號指示同步或交替顯示的功能。在許多惡劣環(huán)境如高溫、高濕、振動(dòng)沖擊、電磁干擾等的應(yīng)用場合,計(jì)算機(jī)及其外設(shè)的可靠性就顯得十分重要。因此,模擬顯示裝置需采用一定的先天加固措施,滿足惡劣環(huán)境下對高溫、高濕、振動(dòng)沖擊、電磁干擾等各項(xiàng)環(huán)境的適應(yīng)性要求。本發(fā)明針對上述情況,提出了創(chuàng)新性的解決方法,研制出了多微處理器同步運(yùn)行的裝置。
發(fā)明內(nèi)容
本發(fā)明的目的提出一種可擴(kuò)展的基于串行接口控制的多個(gè)微處理器同步運(yùn)行方法。本發(fā)明的方法是實(shí)現(xiàn)遠(yuǎn)距離控制,而且是可任意擴(kuò)展微處理器數(shù)目的基于串行接口并行控制運(yùn)行架構(gòu)和不同微處理器間同步控制各自IO來實(shí)現(xiàn)遠(yuǎn)程控制大量的IO外設(shè)?!N可擴(kuò)展多微處理器同步控制運(yùn)行方法:所述的可任意擴(kuò)展微處理器數(shù)目的基于串行接口并行控制運(yùn)行架構(gòu)是指微處理器通過輔助電路將串行接口并連起來,同時(shí)接收指令,微處理器的數(shù)目是由用戶需要控制的IO總數(shù)量和每一個(gè)單片機(jī)自身能夠提供的IO數(shù)量共同決定的,IO需求較多的用戶可以根據(jù)實(shí)際情況自由進(jìn)行擴(kuò)展。所述的不同微處理器間同步控制各自IO是通過終端設(shè)備指令和本地時(shí)鐘相結(jié)合的方式,可以使不同的微處理器同時(shí)發(fā)出相同的指令來控制各自IO的狀態(tài)。具體實(shí)現(xiàn)是通過終端設(shè)備每隔一定時(shí)間發(fā)送心跳報(bào)文,各個(gè)單片機(jī)收到其指令后將重新復(fù)位單片機(jī)的定時(shí)器,然后每個(gè)單片機(jī)再根據(jù)自身的時(shí)鐘對本單片機(jī)需要同步的每個(gè)IO的狀態(tài)進(jìn)行控制。這樣每個(gè)單片機(jī)累計(jì)的本地時(shí)鐘誤差就通過終端設(shè)備的定時(shí)發(fā)送的清零信號實(shí)現(xiàn)消除,對外顯示狀態(tài)的指示燈或蜂鳴器等指示信號在觀察時(shí)感覺則是完全同步的。應(yīng)用該方法,研制出了一種可以遠(yuǎn)程控制大量IO類外設(shè)的模擬顯示裝置。所述的模擬顯示裝置由一個(gè)RS232或RS422接口、一個(gè)電平轉(zhuǎn)換芯片、可擴(kuò)展的輔助電路、并聯(lián)的多個(gè)單片機(jī)、驅(qū)動(dòng)電路和大量指示燈、蜂鳴器、繼電器等組成。 模擬顯示裝置提供一路串行對外接口和計(jì)算機(jī)(或者其它具備相同串口的終端設(shè)備)串口連接,實(shí)現(xiàn)了遠(yuǎn)距離控制大量的IO類外設(shè)。模擬顯示裝置接收從終端設(shè)備發(fā)送來的指令信號,將該信號進(jìn)行電平轉(zhuǎn)換之后,通過輔助電路增強(qiáng)該信號的驅(qū)動(dòng)能力,將指令同時(shí)分發(fā)到每一個(gè)單片機(jī)。單片機(jī)收到指令后,每一個(gè)單片機(jī)首先判斷該指令是否是給自己的指令,如是則執(zhí)行指令,控制相應(yīng)IO的狀態(tài)。然后IO通過驅(qū)動(dòng)電路控制指示燈等的狀態(tài)。該裝置除指示燈和蜂鳴器外所有電路部分均安裝于密封的金屬殼體內(nèi)。滿足惡劣環(huán)境下對高溫、高濕、振動(dòng)沖擊、電磁干擾等各種環(huán)境的適應(yīng)性要求。該裝置支持用戶定制通訊協(xié)議。用戶可以根據(jù)自身的需要修改協(xié)議的內(nèi)容、格式等。實(shí)現(xiàn)了相同程序擁有不同功能。所有的單片機(jī)程序完全相同,每個(gè)單片機(jī)根據(jù)自身IO的編號來確定所接收到的指令是否執(zhí)行。實(shí)現(xiàn)了眾多的單片機(jī)通過在線編程軟件一次性完成程序燒寫。燒寫一個(gè)單片機(jī)與多個(gè)單片機(jī)的使用方法和所需時(shí)間完全相同。本發(fā)明一種可擴(kuò)展多微處理器同步控制運(yùn)行方法的優(yōu)點(diǎn)是通過采用多微處理器并行控制運(yùn)行的方法,可以允許具備RS232或者RS422串行接口的終端設(shè)備對大量IO類外部設(shè)備進(jìn)行長距離,復(fù)雜狀態(tài)的同步控制。該發(fā)明可以在惡劣環(huán)境下,要求對大量參數(shù)的多種狀態(tài)進(jìn)行實(shí)時(shí)聲光報(bào)警與控制的場合發(fā)揮關(guān)鍵作用。
圖1是多個(gè)單片機(jī)并聯(lián)同步工作架構(gòu)圖。圖2是串口電平轉(zhuǎn)換部分原理框圖。圖3是驅(qū)動(dòng)電路部分原理框圖。圖4是模擬顯示裝置內(nèi)部模塊拼接設(shè)計(jì)結(jié)構(gòu)圖。圖5是驅(qū)動(dòng)模塊電原理框圖。圖6是主控模塊電原理框圖。圖7是單片機(jī)程序流程圖。
具體實(shí)施例方式硬件架構(gòu)如圖1所示。終端設(shè)備通過串口發(fā)送數(shù)據(jù)到模擬顯示裝置。模擬顯示裝置將串口數(shù)據(jù)信號轉(zhuǎn)換之后,通過輔助電路分發(fā)至每一個(gè)單片機(jī),單片機(jī)通過判斷該指令是否為自己的指令,決定是否響應(yīng)指令,設(shè)置相應(yīng)的IO電平狀態(tài)。驅(qū)動(dòng)電路根據(jù)單片機(jī)的IO狀態(tài)驅(qū)動(dòng)相應(yīng)的LED、蜂鳴器、繼電器等。
電平轉(zhuǎn)換部分電路原理圖如圖2所示。該電路支持RS232格式或RS422格式。通過電平轉(zhuǎn)換后為TTL電平信號,通過跨接的方法選擇一種通訊方式。輔助電路部分采用信號驅(qū)動(dòng)增強(qiáng)芯片SN74LVC8T245對主控計(jì)算機(jī)輸出的輸入輸出信號增加驅(qū)動(dòng)能力。如需要對更多的單片機(jī)進(jìn)行控制,可以級連進(jìn)行。單片機(jī)的編號實(shí)現(xiàn)是通過單片機(jī)加電后首先讀取四個(gè)IO管腳的狀態(tài),記入單片機(jī)內(nèi)部的存儲區(qū)中。管腳狀態(tài)由外部的拔碼開關(guān)開確定。接收到外來的指令后,單片機(jī)首先解碼指令包,檢測該指令包是否為自己的指令,然后確定是否執(zhí)行。由于單片機(jī)的IO驅(qū)動(dòng)能力有限,在驅(qū)動(dòng)一些大功率的指示燈、繼電器等器件時(shí)無法直接驅(qū)動(dòng),因此增加了一級驅(qū)動(dòng)電路,原理圖如圖3所示。指示燈驅(qū)動(dòng)部分采用ULN2003A芯片,經(jīng)測試輸入管腳在5V下需要1.3MA的工作電流,3.3V下將會更低,ULN2003A的輸出驅(qū)動(dòng)可以達(dá)到150MA,每個(gè)燈亮?xí)r需要的驅(qū)動(dòng)電流為20MA。上圖中驅(qū)動(dòng)模塊為一塊印制板,其功率約13W。驅(qū)動(dòng)芯片的導(dǎo)熱處理通過后機(jī)箱進(jìn)行。燈板到驅(qū)動(dòng)模塊的連接采用連接器。為了控制成本,考慮到單片機(jī)部分電路相同的情況,在設(shè)計(jì)時(shí)采用小印制板設(shè)計(jì)。如圖4所示。8個(gè)相同的驅(qū)動(dòng)模塊放置在主控模塊周圍,此方法可以動(dòng)態(tài)擴(kuò)展設(shè)計(jì)輸出的IO數(shù)量。驅(qū)動(dòng)模塊主要是用來把正確的串口指令轉(zhuǎn)換為IO指示輸出,當(dāng)收到錯(cuò)誤的數(shù)據(jù)校驗(yàn)碼時(shí),不做任何處理,當(dāng)收到正確的數(shù)據(jù)時(shí),把地址數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的IO狀態(tài)。解析地址所對應(yīng)的編碼是否為本板處理的數(shù)據(jù),如否,則不處理,如是,則把數(shù)據(jù)所對應(yīng)的狀態(tài)輸出給相應(yīng)的管腳。對于綜合報(bào)警指示燈,其顯示指示狀態(tài)有4種,分別為常亮、快閃(3次/秒)、慢閃(I次/2秒)、滅,并且需要與蜂鳴器同步,所以需要二位數(shù)據(jù),用來表示四種狀態(tài)。下圖為電平轉(zhuǎn)換芯片為單板調(diào)試時(shí)使用。驅(qū)動(dòng)模塊的原理框圖如圖5所示。主控模塊主要是用來把從終端設(shè)備的串口發(fā)送來的數(shù)據(jù)接收后,經(jīng)過校驗(yàn)判斷碼值是否正確,如正確,剛接收并且處理指令。當(dāng)校驗(yàn)碼錯(cuò)誤時(shí),通知上位終端設(shè)備重新發(fā)送該包。其原理框圖如圖6所示。所有的單片機(jī)的軟件相同,根據(jù)指令內(nèi)容和自身的ID號進(jìn)行判斷是否執(zhí)行送來指令。通信協(xié)議可以根據(jù)用戶需求實(shí)時(shí)修改。不同單片機(jī)之間的IO控制同步的實(shí)現(xiàn)方式是終端設(shè)備每隔一定時(shí)間發(fā)送一心跳報(bào)文,各個(gè)單片機(jī)收到其指令后將重新復(fù)位單片機(jī)的定時(shí)器,然后每個(gè)單片機(jī)將根據(jù)自身的時(shí)鐘對本單片機(jī)的需要同步的每個(gè)IO的狀態(tài)進(jìn)行控制。這樣每個(gè)單片機(jī)累計(jì)的誤差就通過終端設(shè)備的定時(shí)發(fā)送的清零信號進(jìn)行同步,對外顯示狀態(tài)的指示燈或蜂鳴器等指示信號在人觀察時(shí)感覺則是完全相同的。其程序流程圖如圖7所示。
權(quán)利要求
1.一種可擴(kuò)展多微處理器同步控制運(yùn)行方法,其特征在于:可任意擴(kuò)展微處理器數(shù)目的基于串行接口并行控制運(yùn)行架構(gòu)和不同微處理器間同步控制各自10。
2.根據(jù)權(quán)利要求1所述一種可擴(kuò)展多微處理器同步控制運(yùn)行方法,其特征在于:所述的可任意擴(kuò)展微處理器數(shù)目的基于串行接口并行控制運(yùn)行架構(gòu)是指微處理器通過輔助電路將串行接口并連起來,同時(shí)接收指令,微處理器的數(shù)目是由用戶需要控制的IO總數(shù)量和每一個(gè)單片機(jī)自身能夠提供的IO數(shù)量共同決定的,IO需求較多的用戶可以根據(jù)實(shí)際情況自由進(jìn)行擴(kuò)展。
3.根據(jù)權(quán)利要求1所述一種可擴(kuò)展多微處理器同步控制運(yùn)行方法,其特征在于:所述的不同微處理器間同步控制各自IO是通過終端設(shè)備指令和本地時(shí)鐘相結(jié)合的方式,可以使不同的微處理器同時(shí)發(fā)出相同的指令來控制各自IO的狀態(tài),具體實(shí)現(xiàn)是通過終端設(shè)備每隔一定時(shí)間發(fā)送心跳報(bào)文,各個(gè)單片機(jī)收到其指令后將重新復(fù)位單片機(jī)的定時(shí)器,然后每個(gè)單片機(jī)再根據(jù)自身的時(shí)鐘對本單片機(jī)需要同步的每個(gè)IO的狀態(tài)進(jìn)行控制,這樣每個(gè)單片機(jī)累計(jì)的本地時(shí)鐘誤差就通過終端設(shè)備的定時(shí)發(fā)送的清零信號實(shí)現(xiàn)消除,對外顯示狀態(tài)的指示燈或蜂鳴器等指示信號在觀察時(shí)感覺則是完全同步的。
全文摘要
本發(fā)明公開一種可擴(kuò)展的多微處理器同步控制運(yùn)行方法。主要指可任意擴(kuò)展微處理器數(shù)目的基于串行接口并行控制運(yùn)行架構(gòu)和不同微處理器間同步控制各自IO的方法。通過RS232或RS422串口,基于該運(yùn)行架構(gòu)的微處理器數(shù)量可由用戶根據(jù)實(shí)際需要的IO總數(shù)量和每個(gè)微處理器可提供的IO數(shù)量來確定。理論上可以不限總量無限擴(kuò)展。不同微處理器間同步控制各自IO是通過終端設(shè)備指令和本地時(shí)鐘相結(jié)合的方式,可以使不同的微處理器同時(shí)發(fā)出指令控制各自IO的狀態(tài)。
文檔編號G06F15/17GK103176942SQ201110428669
公開日2013年6月26日 申請日期2011年12月20日 優(yōu)先權(quán)日2011年12月20日
發(fā)明者楊大磊, 李海山, 陳敬東, 張榮奎 申請人:中國船舶重工集團(tuán)公司第七0九研究所