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