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