单片机 串口 波特率 c语言 9600 11.0592mhz t1,PLC与单片机串口通信的实现
黨強(qiáng)
摘要:本文主要進(jìn)行探討單片機(jī)與可編程邏輯控制器plc之間的串行通信以及各個(gè)系統(tǒng)在通信技術(shù)中的應(yīng)用,本文主要以at89c51單片機(jī)和fpi系列的單片機(jī)為例進(jìn)行闡述單片機(jī)與plc的串行通信。
關(guān)鍵詞:plc 單片機(jī) 串行通信
中圖分類(lèi)號(hào):TP273.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2014)04-0123-02
隨著科學(xué)技術(shù)、網(wǎng)絡(luò)通信技術(shù)以及自動(dòng)化技術(shù)的快速發(fā)展,可編程邏輯控制器(plc)的功能日益強(qiáng)大,plc不僅能夠?qū)崿F(xiàn)邏輯控制,而且還能實(shí)現(xiàn)數(shù)字控制、遠(yuǎn)程控制以及運(yùn)動(dòng)控制等,plc邏輯控制器已經(jīng)廣泛應(yīng)用于電力、交通運(yùn)輸、冶金、汽車(chē)制造等等各行各業(yè)。
1 單片機(jī)與plc串行通信的特點(diǎn)
plc和單片機(jī)各有各的優(yōu)點(diǎn)和長(zhǎng)處,可編程邏輯控制器使用簡(jiǎn)單、抗干擾能力強(qiáng)、運(yùn)行可靠,并具有較強(qiáng)的驅(qū)動(dòng)能力,可以在條件惡劣的環(huán)境下工作,plc主要用于機(jī)械設(shè)備的控制plc與現(xiàn)在的以太網(wǎng)、adsl等寬帶技術(shù)相比,plc具有以下優(yōu)點(diǎn):plc分布廣泛;接入方便;并且plc接入成本比較低,費(fèi)用低,可以減輕用戶(hù)的負(fù)擔(dān)。單片機(jī)體積小、價(jià)格低,并且使用方便靈活,單片機(jī)可以用于辦公設(shè)備、家用電器、儀器儀表以及傳感內(nèi)部的核心部位。在實(shí)際的應(yīng)用中,需要把單片機(jī)和plc兩者結(jié)合起來(lái)從而可以發(fā)揮各自?xún)?yōu)點(diǎn)和長(zhǎng)處。單片機(jī)和plc通過(guò)通信進(jìn)行交換信息,從而組成控制系統(tǒng),實(shí)現(xiàn)實(shí)時(shí)采集。
1.1 單片機(jī)串口介紹
AT89S52單片機(jī)內(nèi)部含有一個(gè)可編程全雙工串行通信接口,具有UART的全部功能。該接口電路不僅能同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送和接收,也可作為一個(gè)同步移位寄存器使用。
在進(jìn)行異步通信時(shí),數(shù)據(jù)的發(fā)送和接收分別在各自的時(shí)鐘(TCLK和RCLK)控制下進(jìn)行的,但都必須與字符位數(shù)的波特率保持一致。MCS-51串行口的發(fā)送和接收時(shí)鐘可由兩種方式產(chǎn)生,一種是由主機(jī)頻率fosc經(jīng)分頻后產(chǎn)生,另一種方式是由內(nèi)部定時(shí)器T1或T2的溢出率經(jīng)16分頻后提供。
串行口的發(fā)送過(guò)程由一條寫(xiě)發(fā)送緩沖器的指令把數(shù)據(jù)(字符)寫(xiě)入串行口的發(fā)送緩沖器SBUF(發(fā))中,再由硬件電路自動(dòng)在字符的始、末加上起始位(低電平)、停止位(高電平)及其它控制位(如奇偶位等),然后在移位脈沖SHIFT的控制下,低位在前,高位在后,從TXD端(方式0除外)一位位地向外發(fā)送。
串行口的接收與否受制于允許接收位REN的狀態(tài),當(dāng)REN被軟件置“1”后,允許接收器接收。接收端RXD一位位地接收數(shù)據(jù),直到收到一個(gè)完整的字符數(shù)據(jù)后,控制電路進(jìn)行最后一次移位,自動(dòng)去掉啟始位,使接收中斷標(biāo)志RI置“1”,并向CPU申請(qǐng)中斷。TI和RI是由硬件置位的,但需要用軟件復(fù)位。
1.2 單片機(jī)串口控制寄存器
SBUF是兩個(gè)在物理上獨(dú)立的接收、發(fā)送緩沖器,可同時(shí)發(fā)送、接收數(shù)據(jù)。兩個(gè)緩沖器只用一個(gè)字節(jié)地址99H,可通過(guò)指令對(duì)SBUF的讀寫(xiě)來(lái)區(qū)別是對(duì)接收緩沖器的操作還是對(duì)發(fā)送緩沖器的操作。串行口對(duì)外有兩條獨(dú)立的收發(fā)信號(hào)線RXD(P3.0)、TXD(P3.1),因此可以同時(shí)發(fā)送、接收數(shù)據(jù),實(shí)現(xiàn)全雙工。
1.3 單片機(jī)多機(jī)通信方案選擇
根據(jù)需要,各片單片機(jī)有相等的權(quán)限,每塊單片機(jī)都可設(shè)置為主機(jī)或從機(jī),因此單片機(jī)的串口應(yīng)具有雙向可選擇性。采用兩個(gè)同相三態(tài)門(mén)加上一個(gè)反相器即可構(gòu)成這樣的接口,并由單片機(jī)的一根引腳控制單片機(jī)串口的連接方式。
發(fā)送數(shù)據(jù)區(qū)可存放1B~48B的數(shù)據(jù),以空字符'\0'作為發(fā)送數(shù)據(jù)結(jié)束標(biāo)志。接收數(shù)據(jù)時(shí)以空字符作為接收有效數(shù)據(jù)結(jié)束標(biāo)志。通信結(jié)束時(shí),從機(jī)發(fā)回收發(fā)長(zhǎng)度作為校驗(yàn)。
2 通信接口電路的設(shè)置
2.1 接口電路的設(shè)計(jì)
rs—232c接口是plc的一個(gè)標(biāo)準(zhǔn)的接口,主要采用eia電平邏輯,而at89c51主要采用ttl/cmos電平邏輯,由于這些電平不能互相兼容,所以應(yīng)該將eia電平邏輯和ttl/cmos 電平進(jìn)行轉(zhuǎn)換,在我們使用的max232串行通信芯片中主要是單片集成雙rs—232接收器。這種串行通信接口主要采用+—5v的電源供電,然后外接四支電容形成標(biāo)準(zhǔn)的rs—232通信接口,從而可以使eia電平和ttl/cmos電平之間的轉(zhuǎn)換,經(jīng)過(guò)轉(zhuǎn)換之后兩者就可以通過(guò)rs—232接口實(shí)現(xiàn)信號(hào)之間的傳送。
2.2 串行通信接口的設(shè)置
2.2.1 單片機(jī)串行口的設(shè)置
at89c51單片機(jī)內(nèi)部有一個(gè)串行口,txd(p3.1)為發(fā)送端,rxd(p3.0)為接收端,at89c51主要有scon和pcon兩個(gè)特殊的寄存器進(jìn)行控制,在軟件設(shè)置的四種通信方式工作時(shí),串行口主要為8位異步通信接口,非常適合于集成點(diǎn)對(duì)點(diǎn)連接接口的8位數(shù)據(jù)的傳輸,每幀信息有一個(gè)起始位、八個(gè)數(shù)據(jù)位和一個(gè)停止位,at89c51的cpu晶振為11.0592mhz時(shí),波特率主要采用9600bps,波特率主要有串行口方式寄存器smod的狀態(tài)和定時(shí)器t1的溢出率進(jìn)行確定。
2.2.2 plc串行口參數(shù)的設(shè)置
plc主要通過(guò)進(jìn)行設(shè)置系統(tǒng)寄存器來(lái)實(shí)現(xiàn)串行接口初始化。比如我們使用的fp1的系統(tǒng)寄存器no.413可以采用指定的rs232串口波特率控制字可以設(shè)置為h00,即一個(gè)起始位;8個(gè)數(shù)據(jù)位;一個(gè)停止位,沒(méi)有奇偶校驗(yàn)位。串口波特率設(shè)置的寄存器no.414可以采用指定的rs232c串口波特率,可以設(shè)置為h01,其中波特率為9600bps;串口方式設(shè)置寄存器no.412可以設(shè)置為h01,這種方式成為計(jì)算機(jī)連接通信方式,站號(hào)設(shè)定寄存器可以no.415可以設(shè)置為h01。
3 單片機(jī)與plc串行口的通信過(guò)程
單片機(jī)的串行端口有一個(gè)數(shù)據(jù)寄存器sbuf,在特定的條件下,如果單片機(jī)向sbup寫(xiě)入數(shù)據(jù)就啟動(dòng)了發(fā)送過(guò)程,如果單片機(jī)向sbup讀入數(shù)據(jù)就啟動(dòng)了接受過(guò)程,當(dāng)單片機(jī)與plc通過(guò)rs—232c串行接口進(jìn)行通信時(shí),發(fā)送過(guò)程主要有單片機(jī)向plc發(fā)出命令幀格式,發(fā)送過(guò)程結(jié)束之后,plc做出響應(yīng),同時(shí)單片機(jī)接受響應(yīng)幀格式,這種過(guò)程稱(chēng)為接受過(guò)程通信過(guò)程主要由單片機(jī)進(jìn)行啟動(dòng)和接受不需要運(yùn)用plc進(jìn)行編制程序。其中發(fā)出命令幀格式主要包括plc站號(hào)、特殊標(biāo)志位以及呼叫字符等,發(fā)出命令幀。endprint
4 單片機(jī)與plc的應(yīng)用
plc是建立在單片機(jī)之上的一種科技產(chǎn)品,單片機(jī)是一種集成電路,單片機(jī)可以構(gòu)成多種多樣的應(yīng)用系統(tǒng),可以是大型、中型、小型以及微型的,而plc是單片機(jī)應(yīng)用系統(tǒng)中的一個(gè)特殊的系統(tǒng),單片機(jī)可以配合外圍的電路設(shè)計(jì)出各種功能,單片機(jī)一般采用c語(yǔ)言、匯編語(yǔ)言等,這種系統(tǒng)可以應(yīng)用于各個(gè)領(lǐng)域內(nèi),并且也非常安全可靠。單片機(jī)的應(yīng)用系統(tǒng)是非常廣泛的,但是單片機(jī)的使用和維護(hù)是非常困難的,從plc和單片機(jī)的系統(tǒng)的選用上來(lái)講對(duì)于單項(xiàng)的工程采用plc是非常快捷、并且成功率高、可靠性好,但是成本比較高。對(duì)于大量的配套的項(xiàng)目來(lái)講,采用單片機(jī)具有成本低、效益高等優(yōu)點(diǎn)。隨著科學(xué)技術(shù)不斷進(jìn)步和更新,在單片機(jī)系統(tǒng)中嵌入plc系統(tǒng)性能不僅可以得到保證,而且使工程項(xiàng)目的效益也得到保證。
目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車(chē)的安全保障系統(tǒng),錄象機(jī)、攝象機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開(kāi)單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。
單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專(zhuān)用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域隨著計(jì)算機(jī)技術(shù)的發(fā)展及工業(yè)自動(dòng)化水平的提高, 在許多場(chǎng)合采用單機(jī)控制已不能滿(mǎn)足現(xiàn)場(chǎng)要求,因而必須采用多機(jī)控制的形式,而多機(jī)控制主要通過(guò)多個(gè)單片機(jī)之間的串行通信實(shí)現(xiàn)。串行通信作為單片機(jī)之間常用的通信方法之一, 由于其通信編程靈活、硬件簡(jiǎn)潔并遵循統(tǒng)一的標(biāo)準(zhǔn), 因此其在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用。
構(gòu)成較大規(guī)模的檢測(cè)、控制系統(tǒng),經(jīng)常要采用多個(gè)單片機(jī),組成可以通信的多機(jī)系統(tǒng)。Mcs一51系列單片機(jī)為實(shí)現(xiàn)多機(jī)通信聯(lián)網(wǎng)設(shè)計(jì)了方便的串行通信接口功能。將多個(gè)Mcs一51單片機(jī)組成串行總線形式的相互通道,通過(guò)寫(xiě)單片機(jī)的串行控制方式寄存器,將串行口置成方式2或方式3,就可以實(shí)現(xiàn)主機(jī)與分機(jī)之間的串行通信。這種多機(jī)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,應(yīng)用廣泛,但它只能實(shí)現(xiàn)由主機(jī)呼叫分機(jī),然后實(shí)現(xiàn)主機(jī)與分機(jī)之間的全雙工串行通信。我們?cè)诒O(jiān)控系統(tǒng)中要求既有主機(jī)與分機(jī)主動(dòng)通信,又有分機(jī)與主機(jī)主動(dòng)通信,這種結(jié)構(gòu)的多機(jī)系統(tǒng)就無(wú)法滿(mǎn)足要求。
5 總結(jié)與展望
串行通信是一種應(yīng)用廣泛的通信方式,本文主要以at89c51單片機(jī)和plc之間的串行通信為例進(jìn)行探討,并由此得出串行通信技術(shù)是一種實(shí)用性強(qiáng);結(jié)構(gòu)簡(jiǎn)單、運(yùn)行可靠、抗干擾能力強(qiáng),并且使用于遠(yuǎn)距離傳輸?shù)囊环N通信方式。隨著科學(xué)技術(shù)的不斷進(jìn)步,對(duì)單片機(jī)以及plc通信系統(tǒng)不斷的開(kāi)發(fā)利用,進(jìn)一步將兩者有效的結(jié)合起來(lái)實(shí)現(xiàn)通信技術(shù),從而創(chuàng)造更高的應(yīng)用價(jià)值。
多機(jī)協(xié)同工作已是單片機(jī)發(fā)展的一個(gè)重要趨勢(shì),目前單片機(jī)多機(jī)通信的主要方式仍然是主從式多機(jī)通信系統(tǒng)。
單片機(jī)多機(jī)通信的目的是實(shí)現(xiàn)分布式處理系統(tǒng),單片機(jī)多機(jī)通信的方式有很多種,應(yīng)用前景廣闊,非常具有研究意義!
參考文獻(xiàn)
[1]李生軍,李少蒙.《單片機(jī)與plc之間的串行通信實(shí)現(xiàn)》.化工自動(dòng)化及儀表,2010,37(2):78--80.
[2]李輝,鄭寧.《plc與單片機(jī)之間的串行通信及應(yīng)用》.電工技術(shù)雜志,2013(8):67--68.
[3]趙勇.《單片機(jī)與可編程控制器的串行通信及應(yīng)用》.西安郵電學(xué)院學(xué)報(bào),2010,10(1):36--37.
[4]趙淑玉,孟寶全.《單片機(jī)和plc的應(yīng)用與串行通信》.科技信息,2011(21):52--54.
[5]徐濟(jì)仁,許陽(yáng)明.《電力線通信(plc)技術(shù)及應(yīng)用》.自動(dòng)化博覽,2013,20(6):86--88.endprint
總結(jié)
以上是生活随笔為你收集整理的单片机 串口 波特率 c语言 9600 11.0592mhz t1,PLC与单片机串口通信的实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 最新,2019年11月LPR利率出来了!
- 下一篇: kafka集群 kubernetes_为