康永澤



摘 要 對UART通信技術和IIC通信技術進行探討,關于PLC通信技術的研究對PLC技術的教學有著很大的促進作用。
關鍵詞 PLC;通信技術;單片機
中圖分類號:G712 文獻標識碼:B
文章編號:1671-489X(2015)13-0130-02
1 前言
在從事專業教學時,用PLC技術去改造接觸器—繼電器控制,比如一些普通機床的改造,在整個工作中往往還要解決通信問題,掌握PLC與電腦、PLC與變頻器、PLC與觸摸屏、PLC與PLC之間的通信是很重要的。PLC上的CPU就為單片機,為了增加控制功能和提高實時處理的速度,在PLC中應用16位或32位單片機,PLC與計算機、變頻器、觸摸屏之間都有通信電纜。還有樓宇消防與安防上的控制器上都采用單片機控制。單片機與外圍設備之間的通信很重要,比如溫度傳感器把溫度信號通過通信傳給單片機,單片機通過數碼管把這個溫度數據顯示出來,通信技術在單片機系統內起到銜接作用,信號通過通信傳遞進來。如果沒有通信,單片機的功能就被局限了。所以研究PLC的通信是很重要的,有助于從事專業教學。
2 UART的通信
很多PLC教材關于PLC通信這塊知識模塊沒有提及,只要能使用PLC的簡單功能就可以了。這樣不利于知識拓展,因為要把PLC功能開發與單片機學習結合起來更利于知識的拓展和深入自學。通信技術也是控制工程重要的一個學習模塊,要了解控制的框架,然后再一個一個深入。探討PLC通信技術顯得尤為關鍵,先探討UART的通信技術。UART通信的并行通信是通信時數據的各個位同時傳送,可以實現一個字節的8位同時發送。而串行通信,一次只能發送一位,要發送8次才能發送一個字節。單片機之間UART的通信示意圖如圖1所示。
比如用串行通信發送00100111字節,要從低位開始發送。通信上有2個引腳,即RXD和TXD引腳,TXD發送信號,RXD接受信號。信號發送持續時間等于波特率分之一,即波特率的倒數。PLC的單片機1與PLC的單片機2的波特率要保持一致才能正常通信。數據發送什么時候開始,又什么時候結束,這如何解決?單片機1接受單片機2發送的數據,不管是提前發送還是延時發送,接受的數據都有可能會錯過。什么時候知道數據來了,開始接受第一位。UART的通信技巧:當沒有信號發送時,通信線保持高電平,發送完之后也保持高電平。發送數據之前先發送一個低電平,低電平的持續時間也是波特率的倒數。發送8位數據之后,再發送停止位1。發送一個字節8位,實際上發送了10位。多了一個起始位,一個停止位。按0、D1、D2、……、D8、1的順序發送或接受,如圖2所示。
計算機的通信,RS232在工業領域用得多,是9針接口。筆記本電腦都用USB接口了。RS232接口采用的是負邏輯,即-3 V到-15 V的范圍為“1”高電平。而TTL/CMOS電平標準是高電平“1”大于2點幾伏特。由于電平標準不一樣,就用MAX232轉換芯片對單片機電壓與串口電壓做一個轉接。如圖3所示,MAX232的10腳TXD與9腳RXD到單片機去,MAX232的7腳TO-PC-RX到RS232的2腳,MAX232的8腳TO-PC-RX到RS232的3腳。MAX232的10腳TXD是高電平的時候,7腳TO-PC-RX卻輸出一個-3 V到-15 V,電腦上輸出一個-8 V到-9 V左右。同樣的原理可以把-8 V到-9 V轉換成高電平。有了USB,USB把UART轉換后送給單片機,USB還把單片機信號轉換后送給筆記本電腦。有了USB口,不管是臺式機還是筆記本電腦,都可以與單片機進行通信。
為了更直觀地看到單片機與電腦之間的通信,可以把通信傳送的數據在數碼管上顯示出來。要完成這一任務,就用筆記本電腦一臺、KST-51單片機開發板一塊、STC89C52RC芯片一塊、USB線纜一根、邏輯分析儀一臺,KST-51單片機開發板上有數碼管。還可以用邏輯分析儀把通信的波形抓出來看看,這樣更直觀。I0口模擬UART串口通信如圖4所示。
學習使用時電腦上安裝上三個軟件。一個軟件是編寫程序的KeiL-C51-9.02a,一個軟件是下載軟件STC-ISP-v4.80。STC-ISP-v4.80是把通信程序下載到單片機,單片機運行顯示結果。注意安裝下載軟件時點右鍵以管理員身份運行一次,再來安裝。第三個軟件是單片機驅動軟件CH341SER的X64或X86,裝哪一個根據操作系統是32位還是16位來選擇使用。把軟件裝好后,打開Keil uVision4編寫UART通信程序,通信程序寫好后下載到STC-ISP-v4.80中。打開STC-ISP-v4.80的串口助手,選擇十六進制發送,十六進制顯示,注意COM與下載程序的COM、設備管理器的COM口保持一致,波特率設為9600,數據8位,停止位1位,其他默認。程序主要是實現通信的時序圖,并且讓串口助手與單片機開發板進行通信。讓助手向單片機發送1,單片機返回給串口助手來顯示出來,就顯示為1。在STC-ISP-v4.80串口助手如果選擇用字符格式發送,字符格式顯示,這里就要弄懂ASCII字符表格。如字符發送4,那么十六進制顯示為多少呢?到ASCII字符表格里去查,字符4對應的十進制是52,52轉換成十六進制是34[1]。
3 IIC通信
教學時要進行比較分析,找出各種方法的使用條件與范圍,研究通信技術也一樣。URAT通信是用于板與板子之間的通信,是一對一通信。而還有板子內部的通信,是多對多的通信,IIC通信就是多對多的通信。IIC通信總線是由數據線SDA和時鐘SCL構成的串行總線,IIC通信總線必須要兩條線。URAT通信,其波特率是由電腦CPU產生的,是電腦自身的時鐘產生的,單片機接受依靠單片機自己的時鐘,只管自己接受,不管發送方是什么樣的時鐘,波特率對了就可以接受了。但是IIC通信總線就不一樣了,它的發送與接受需要同一個時鐘,發送方與接受方有共同的時鐘,即SCL線。SCL線上所有的器件組成一個“線與”的關系,任何一個器件都可以拉低SCL的電平。只有所有器件的時鐘為高電平SCL才為高電平。IIC通信有起始信號、數據傳輸部分、停止信號傳輸時。SCL為高電平時,SDA才傳送數據,數據傳輸采用時鐘脈沖一位一位串行傳送方式, 發送器送到SDA線上的每個字節必須是8位長,傳送的時候必須是高位在前、低位在后的順序。傳送的時候每個字節需要9個時鐘脈沖,第9個時鐘脈沖為低時,發送器釋放SDA線,接收器把SDA線拉低,以給出一個接受確認位。第9個時鐘脈沖高電平期間,發送器收到這個確認位后,開始下一個字節的傳送。數據傳送時,送出的第一個字節是用來選擇從器件的地址的,前7位為地址碼,后面一位如果為0就是寫,如果為1就是讀。當主器件發送完一字節的數據后,接著發出對應于SCL線上的一個時鐘認可位,這個時候時鐘內的主器件釋放SDA線,一字節傳送就結束了。起始時序必須SCL保持高電平,SDA從高電平到低電平變化,然后傳輸BIT7、BIT6、……、BIT1。停止時序,SCL必須是個高電平,SDA有一個從高電平到低電平的變化[2]。
4 總結
搞控制工程的不僅是教好教材,還要不斷學習新知識,不斷拓展。PLC的教學不僅是教知識,還要教會學生學習搭框架,然后再去自己拓展知識,這樣才會深入,越學越有興趣。PLC控制技術是一門綜合性很強的技術,功能的開發在于知道的多和少,所以通信技術的研究利于對PLC的功能不斷探究。
參考文獻
[1]隋曉紅.通信原理[M].北京:北京大學出版社,2007.
[2]黃葆華.通信原理[M].西安:西安電子科技大學,2007.endprint