本文主要以232,485,422為例,從串口應用的角度去講一講。因為大部分的時候,都是産品做好了,比如觸摸屏需要和控制器,plc通信,在理想的情況下,一般隻要一上電,不需要太多的操作和配置,就可以通信上。那麼接下來我們先講一講串口通信的一些基本概念,術語。
一、什麼是串口通信
常見的串口通信一般是指異步串行通信,那麼與串行通信相對的是什麼呢?與串行通信相對的是并行通信。數據傳輸一般都是以字節傳輸的,一個字節8個位。拿一個并行通信舉例來說,也就是會有8根線,每一根線代表一個位。一次傳輸就可以傳一個字節,而串口通信,就是傳數據隻有一根線傳輸,一次隻能傳一個位,要傳一個字節就需要傳8次。就像小虎隊那首歌一樣,把你的心,我的心,串一串,再烤一烤...串口通信就是把數據串在一根線上傳輸,所以就叫串口吧。
同步通信了。同步通信一般是指有一個時鐘信号進行數據信号同步。同步通信對接收方來說就相對簡單一些。因為有時鐘信号在,每一個高低電平變化一下,就去取一下數據就行了。通信速率可以由發送方或者說是主站設備進行控制。通信速度也相對比串口通信快很多。但是為什麼很多設備、plc、控制器不采用這種方式,都使用串口呢?
這是因為在很多設備上,不方便接太多線,比如接8根數據線,也不方便接同步時鐘信号(這個後面再說),于是另一種異步串行通信就誕生了。
相對來說,異步串口通信,就隻需要一根線就可以發送數據了,在對速率要求不高的情況,使用一根線發送數據是帶來大大的方便和實用價值的。
這時候問題來了,怎麼樣才能保證一根線就能發送正常的數據呢?發送方發送的數據,接收方是怎麼知道是什麼數據呢?為了能正常發送數據和接收正确的數據,那異步串口通信就需要滿足以下幾個條件:
在串口的通信參數上,需要有波特率,數據位,停止位,校驗位這幾個參數來确保串口通信的正确性和穩定上。當然,這隻是某個方面保證串口通信的正确性和穩定性,不代表設備間通信的正确性和穩定性。
二、串口通信主要為分232,485,422 通信三種方式。那他們之間有什麼區别呢?
(1)232:232通信主要是由RX,TX,GND三根線組成。
RX與TX,TX接RX,GND接GND。這樣還是比較好理解吧。因為發送和接收分别是由不同的線處理的,也就是能同時發送數據和接收數據,這就是所謂的全雙工。
在這裡擴展一下,串口通信還有一個功能叫做全功能串口通信,也叫标準串口。因為在兩個設備間進行數據傳輸,有些設備處理速度比較快,有些數據比較慢。為了保證數據能正常傳輸,在RX,TX的基礎上,還增加了幾個控制引腳,本來好端端就R,T,G,三根線,湊着就湊齊了9個引腳,召喚出了DB9這個東西。
這要怪就怪當時使用電腦的時候,還沒有互聯網這個概念,但是又想在兩台電腦間進行通信。所以才有這樣一個東西。
在後來的設備,很多控制器,人機界面,PLC等使用串口通信中,基本上就不使用标準串口,而是就直接使用RX,TX,GND三根線來通信了。
但是這裡為什麼要提到這個呢。因為隻是很多設備這樣用,也就是還存在少數設備還保留了标準串口的功能。這就是為什麼會遇到明明電腦通信是好的,換成觸摸屏通信就不行了。因為很多觸摸屏隻使用了RX,TX,GND通信,遇到一些還保留标準串口功能的就比較讨厭了。
(2)485:485是為了解決232通信距離的問題而誕生的。
原理什麼之類的就不多講了。反正232通信距離就是不長。485主要是以一種差分信号進行傳輸,隻需要兩根線, ,-兩根線,或者也叫A,B兩根線。A,B兩根線的差分電平信号就是作為數據信号傳輸。那麼問題來了,那是不是就沒有RX和TX的概念了。是的,發送和接收就不能分開了。發送和接收都是靠這兩根的來傳輸,也就是每次隻能作發送或者隻能作接收,這就是半雙工的概念了,這在效率上就比232弱很多了。就像對講機一樣,經常是某個人講完之後,都要說一個over,确保當前說完了,等待對方回複。
485就是這樣犧牲了232全雙工的效率來達到自己傳輸距離遠的代價。那有沒有即保留了232的全雙工,又可以像485這樣提高傳輸距離呢?于是,422出來了。
(3)422:422有些标注為485-4,而485就标注為485-2。有什麼區别呢?我們可以理解為485-2就是2根線。485-4就是4根線。
422就是把232的RX分成兩根線,RX ,RX-,把TX分成TX ,TX-。這樣就可以同時發送和同時接收了,還可以像485這樣,有較遠的傳輸距離。可是這樣一種很有優勢的通信方式,為什麼用的不多呢。我個人的答案和理解就是:線太多了。特别是像我這樣懶得接線的人,超過3根線就頭暈的。搞個通信還需要接這麼多線,什麼TX,RX,正啊負啊。交換來交換去。
因為在很多設備通信中,基本上是屬于一問一答式的,因此,232的全雙工通信優勢其實也并沒有發揮出來。就像現在打電話,雖然兩個人可以同時說話,但是兩個人同時說話,叽叽歪歪的,誰知道說什麼呀。特别是一個主站與多個從站通信的時候,485的接線就就方便多了,反正大家就兩根線,把正都接一塊,把負都接一塊。如果是422作一主多從,接線上還要理半天呢,而且通信異常了也不好解決。
好了,串口通信基本知識就普及到這裡吧,有不同意見的朋友歡迎在評論區讨論。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!