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