李佳琦++張帆
摘要:現(xiàn)代工業(yè)控制領(lǐng)域,實現(xiàn)主從節(jié)點間的相互通信是十分重要的,其中主從式多級分布系統(tǒng)是最廣泛應(yīng)用的模式。設(shè)計以MSC-51串行口通信協(xié)議為基礎(chǔ),基于通信技術(shù),以單片機(jī)控制技術(shù)為核心,實現(xiàn)主機(jī)控制從機(jī),從機(jī)反饋信息到主機(jī)的多級通信過程。該系統(tǒng)根據(jù)按鍵輸入的信號,經(jīng)單片機(jī)的控制處理并產(chǎn)生不同的與輸入信號對應(yīng)的輸出信號,最后通過數(shù)碼管顯示相應(yīng)的數(shù)據(jù)。實驗的實際結(jié)果表明該系統(tǒng)具有電路簡單、成本較低、操作方便、靈敏可靠等優(yōu)點。
關(guān)鍵詞:工業(yè)控制; 主從式多級分布系統(tǒng); 單片機(jī); 串行口通信
中圖分類號:TP368.2 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)20-0217-02
Abstract: In the modern industrial control field, the principal-subordinate between nodes communicate with each other is very important, including master-slave multistage distribution system is one of the most widely used model. This system is based on MSC - 51 serial port communication protocol, based on the communication technology, single-chip microcomputer control technology as the core, and realizes multistage communication between host and from the machine .In this system ,the signals from the input keys control and processing by the single-chip microcomputer and produce the corresponding output signals different with the input signal, finally through the digital tube display the corresponding data. The actual experiment results show that the system has the advantages of simple circuit, low cost, easy operation, sensitive and reliable.
Key words: industrial control; master-slave multistage distribution system; single-chip microcomputer; serial port communication
1 引言
MSC-51單片機(jī)應(yīng)用于工業(yè)控制時,往往需要安裝在工業(yè)現(xiàn)場,遠(yuǎn)離主機(jī),構(gòu)成單片機(jī)多機(jī)系統(tǒng),在多機(jī)系統(tǒng)中經(jīng)常采用主從式多級分布控制系統(tǒng)[1]。本系統(tǒng)基于MSC-51單片機(jī),采用串行通信方式,主機(jī)和從機(jī)可以實現(xiàn)全雙工通信[2],主機(jī)發(fā)送的信息可以傳達(dá)到各個主機(jī),從機(jī)發(fā)送的信息可以被主機(jī)或者從機(jī)接收。目前主從節(jié)點間數(shù)據(jù)傳輸?shù)姆绞接锌煽總鬏敽筒豢煽總鬏敚鲇趥鬏敎?zhǔn)確性的需要,系統(tǒng)采用可靠傳輸方式。
2 設(shè)計原理及仿真
主從式多級通信系統(tǒng)的設(shè)計主要分成兩個部分;第一部分為硬件原理的設(shè)計,第二部分為依據(jù)主從式多級通信硬件原理圖的設(shè)計,進(jìn)行軟件代碼的設(shè)計與實現(xiàn)。
2.1 硬件原理圖的設(shè)計
本文為了模擬主從式多級分布系統(tǒng),采用了一個單片機(jī)作為主機(jī),兩個單片機(jī)作為從機(jī)的模擬通信過程。另外還需要設(shè)計相應(yīng)外圍硬件電路[3]來實現(xiàn)這個主從式多級通信系統(tǒng)。由于MSC-51單片機(jī)的串行口是發(fā)送接收雙緩沖的全雙工結(jié)構(gòu)[4],MSC-51單片機(jī)的串行接口共有四種工作模式,通過編程設(shè)置,可以使其工作在任一方式。方式2和方式三除了可以用于雙機(jī)間通信或外設(shè)電路的通信,還可以用作多機(jī)通信,以構(gòu)成分布式多級系統(tǒng)。串行口有一個數(shù)據(jù)寄存器SBUF(字節(jié)地址為99H),SBUF寄存器為發(fā)送接收時所共用。發(fā)送時,只寫不讀;接收時,只讀不寫。在發(fā)送狀態(tài)下,向SBUF中寫入一個字節(jié),產(chǎn)生TI(發(fā)送中斷標(biāo)志位)中斷,并自動執(zhí)行中斷程序,完成發(fā)送過程,將該字節(jié)數(shù)據(jù)發(fā)送出去;在接收狀態(tài)下,當(dāng)SBUF中數(shù)據(jù)滿一個字節(jié),會產(chǎn)生RI(接收中斷標(biāo)志位)中斷,并轉(zhuǎn)入中斷處理程序,完成數(shù)據(jù)的接收。將主機(jī)的TXD引腳和兩個從機(jī)的RXD引腳連接在一起,實現(xiàn)主機(jī)向從機(jī)發(fā)送數(shù)據(jù)的功能;將主機(jī)的RXD引腳和從機(jī)的TXD引腳連接在一起,實現(xiàn)從機(jī)向主機(jī)發(fā)送數(shù)據(jù)的功能。雖然這種思路實現(xiàn)主機(jī)發(fā)送數(shù)據(jù)給從機(jī),從機(jī)發(fā)送給主機(jī)的功能,但是實際情況下,可能需要從機(jī)與從機(jī)間相互通信,完成數(shù)據(jù)的共享,所以以上的思路有一定的局限性。
通過相應(yīng)的硬件電路可以克服通信的局限性??梢栽谛盘柖思由先龖B(tài)門電路,當(dāng)某個從機(jī)不進(jìn)行工作時,可以設(shè)置三態(tài)門呈高阻態(tài)的狀態(tài),這樣從機(jī)之間就不會互相影響了。同時,關(guān)于三態(tài)門的控制,可以設(shè)計為主機(jī)控制,這樣要想實現(xiàn)各種形式的通信都可由單片機(jī)控制了。本文采用74HC245芯片作為三態(tài)門器件[5]。具體的電路如圖1所示:
2.2 通信協(xié)議
主從式多級分布系統(tǒng)之間的通信,既包括主機(jī)與從機(jī)間的通信,還包括從機(jī)與從機(jī)間的通信,需要考慮相當(dāng)全面的通信情形。而且,通信必須保證數(shù)據(jù)具有實時性,這就需要保證數(shù)據(jù)的長度是可變的,可以做到即發(fā)即傳。
針對各種各樣的通信情形,首先設(shè)計一個通信協(xié)議[6],保證傳輸過程的準(zhǔn)確性。將傳輸數(shù)據(jù)第一個字節(jié)作為控制命令字,最后一個字節(jié)作為結(jié)束標(biāo)志(0x00),如圖2所示。
本文所設(shè)計的通信協(xié)議為:主機(jī)首先給所有的從機(jī)發(fā)送一個控制命令字,從機(jī)接收到這個控制命令字后進(jìn)行辨認(rèn),如果是0xaa則從從機(jī)1準(zhǔn)備接收主機(jī)的數(shù)據(jù),從機(jī)2處于待機(jī)的狀態(tài),而主機(jī)則會在發(fā)送完前面的控制命令字后再發(fā)送要傳送的數(shù)據(jù)信號。當(dāng)主機(jī)發(fā)送的是0xbb控制命令字時,主機(jī)在發(fā)送完控制命令字后再發(fā)送要傳輸?shù)臄?shù)據(jù)信號,此時從機(jī)1處于待機(jī)狀態(tài),從機(jī)2接收主機(jī)發(fā)送來的數(shù)據(jù)。如果從機(jī)接收的是0xcc,則主機(jī)在發(fā)送控制命令字后就準(zhǔn)備接收從從機(jī)1發(fā)送來的數(shù)據(jù)信號,從機(jī)2處于待機(jī)狀態(tài)。當(dāng)主機(jī)發(fā)送的是0xdd控制命令字時,則主機(jī)在發(fā)送完控命令字后就準(zhǔn)備接收從機(jī)2發(fā)送來的數(shù)據(jù)信號,從機(jī)1處于待機(jī)狀態(tài)。主機(jī)發(fā)送的數(shù)據(jù)如果是0xee或者0xff控制命令字時,則表示從機(jī)與從機(jī)之間進(jìn)行數(shù)據(jù)通信,此時,數(shù)據(jù)首先由從機(jī)傳送給主機(jī),再由從機(jī)傳給主機(jī),再由主機(jī)傳送給另一個主機(jī)。
2.3 傳輸可靠性
對于主從機(jī)之間發(fā)送的數(shù)據(jù),有可靠傳輸方式[7]和不可靠傳輸方式。不可靠傳輸模式的優(yōu)點是相對可靠傳輸而言,傳輸速率要更高,但是不保證傳輸?shù)臏?zhǔn)確性,傳輸不安全。對于要求高準(zhǔn)確率的數(shù)據(jù)通信系統(tǒng),更多的采用可靠傳輸。
主從式多級分布系統(tǒng)對于準(zhǔn)確率要求很高,因此,本系統(tǒng)采用可靠傳輸方式。
可靠傳輸?shù)膶崿F(xiàn)主要依賴于傳輸數(shù)據(jù)的校驗和[7]。在主機(jī)發(fā)送數(shù)據(jù)到從機(jī)過程中,將所有發(fā)送數(shù)據(jù)求和,一同發(fā)送給從機(jī)。從機(jī)接收完數(shù)據(jù)和校驗和之后,對接收到的數(shù)據(jù)再進(jìn)行一次求和,與主機(jī)發(fā)送的數(shù)據(jù)和進(jìn)行校驗。如果校驗結(jié)果相同,則認(rèn)為發(fā)送接收數(shù)據(jù)沒有出錯,可以接收;校驗和不同,認(rèn)為發(fā)送接收數(shù)據(jù)出錯,將數(shù)據(jù)丟棄,不予接收。其他通信校驗流程也是如此,運用校驗和的方法,保證了傳輸?shù)目煽啃浴?/p>
2.4 仿真結(jié)果
根據(jù)上述原理設(shè)計好硬件原理圖和編寫好軟件代碼后,可以再Proteus仿真軟件上進(jìn)行仿真。為了得到明確可見的仿真結(jié)果,本次設(shè)計將主從機(jī)之間的數(shù)據(jù)信號進(jìn)行傳送時,將接收到的數(shù)據(jù)信號利用數(shù)碼管顯示出來。具體仿真原理圖如圖3所示。
從仿真結(jié)果可以看出,無論是主機(jī)和從機(jī)之間通信,還是從機(jī)之間的通信,都能在仿真軟件上得到正確的結(jié)果。所以可以肯定,此次設(shè)計的硬件和軟件都是符合主從式多級分布系統(tǒng)的設(shè)計要求的。
3 結(jié)語
本文設(shè)計出以多個MSC-51單片機(jī)為核心的多級串行通信系統(tǒng)。利用單片機(jī)串行口發(fā)送接收雙緩沖的全雙工的特點,完成主從機(jī)之間及時準(zhǔn)確的通信。它能根據(jù)輸入的按鍵的指令信號,通過單片機(jī)的控制處理,從而控制主機(jī)向從機(jī)發(fā)送指令,從機(jī)接受指令并反饋狀態(tài)信息給主機(jī),同時從機(jī)間也可以相互交互信息。
通過軟件仿真和硬件檢測的結(jié)果可以看出,主從式通信系統(tǒng)完全符合現(xiàn)在工業(yè)控制領(lǐng)域主從節(jié)點相互通信的需求,具有操作簡單,成本低,準(zhǔn)確率高,即時性強(qiáng)等優(yōu)點[8]。
主從式多級分布系統(tǒng)所使用的技術(shù)迅速發(fā)展,芯片性能日新月異,時刻關(guān)注技術(shù)動態(tài)的最新變化,及時跟進(jìn)最新技術(shù),進(jìn)一步完善主從通信技術(shù),是本系統(tǒng)的進(jìn)一步發(fā)展方向。
參考文獻(xiàn):
[1] 王偉,鄭金奎.MCS-51單片機(jī)主從式多機(jī)系統(tǒng)實時通訊的實現(xiàn)[J]西南自動研究所,1998(3):39-34.
[2] 惠玥琳.基于單片機(jī)的USB主從機(jī)的設(shè)計與實現(xiàn)[D].電子科技大學(xué),2007.
[3] 張傳新,徐少杰.PC機(jī)與MCS-51單片機(jī)主從多機(jī)通信控制程序的研究[J].鐵路計算機(jī)應(yīng)用,1996,5(2):10-12.
[4] 何曉紅,譚兵.PC機(jī)與多臺單片機(jī)的遠(yuǎn)距離多機(jī)通信[J].電子技術(shù)應(yīng)用,1997(12):41-43.
[5] 黃亮.基于AT89C51單片機(jī)的串行通信程序設(shè)計[J].單片機(jī)實用電子制作.
[6] 姚志成等.單片機(jī)多機(jī)通信協(xié)議的設(shè)計[J]. 微計算機(jī)信息 ,2006,22(2).
[7] Universal Serial Bus Mass Storage Class Specification Overview[S].Revision 12,2003.
[8] 張俊.匠心手記:一個單片機(jī)工作者的實踐與思考[M].北京:北京航空航天大學(xué)出版社,2008.