闺房床榻粗喘H娇女,娇小小小泬XXXX护士,97亚洲成a人无码亚洲成a无码,国产日韩欧美一区二区东京热

232\485\422是什么? 串口通信常見(jiàn)問(wèn)題淺析

2022-04-27 13:28:20 點(diǎn)將科技系統集成部 397

什么是串口通信

串口通信,就是傳數據只有一根線(xiàn)傳輸,一次只能傳一個(gè)位,要傳一個(gè)字節就需要傳8次。串口通信就是把數據串在一根線(xiàn)上傳輸,所以就叫串口吧。


在對速率要求不高的情況,使用一根線(xiàn)發(fā)送數據是帶來(lái)大大的方便和實(shí)用價(jià)值的。


為了能正常發(fā)送和接收正確的數據,那異步串口通信就需要如下圖的格式。

微信圖片_20220427133216.png


在串口的通信參數上,就有了波特率、起始位、數據位、校驗位、停止位這幾個(gè)參數。

232\485\422的區別

串口通信主要為分232、485、422三種通信方式,這三種有什么區別呢?

232通信

微信圖片_20220427133320.png

232通信主要是由RX、TX、GND三根線(xiàn)組成。RX接TX,TX接RX,GND接GND。這里發(fā)送和接收分別是由不同的線(xiàn)處理的,也就是能同時(shí)發(fā)送數據和接收數據,這就是所謂的全雙工通信。

在這里擴展一下,串口通信還有一個(gè)功能叫做全功能串口通信,也叫標準串口。因為在兩個(gè)設備間進(jìn)行數據傳輸,有些設備處理速度比較快,有些數據比較慢。為了保證數據能正常傳輸,在RX、TX的基礎上,還增加了幾個(gè)控制引腳,最后成了9個(gè)引腳,也就是常見(jiàn)的DB9這個(gè)東西,如下圖所示。

微信圖片_20220427133412.png

但是,如今很多控制器、人機界面、PLC等使用串口通信中一般不使用標準串口,而是直接使用RX、TX、GND三根線(xiàn)來(lái)通信的。


485通信

485的出現,是為了解決232通信距離受限的問(wèn)題。

485通信只需要+、-兩根線(xiàn),或者也叫A、B兩根線(xiàn)。A、B兩根線(xiàn)的差分電平信號就是作為數據信號傳輸。由于發(fā)送與接收都是用這兩根線(xiàn),也就是說(shuō)每次只能用作發(fā)送或者只能用作接收。所以,485是半雙工通信。

微信圖片_20220427134013.png

485就是這樣犧牲了232全雙工的效率來(lái)達到自己傳輸距離遠的代價(jià)。


422通信

422的出現,是為了既實(shí)現232的全雙工通信方式,又能像485這樣提高傳輸距離。422也常被標注為485-4,而485被標注為485-2。因為485-2是2根線(xiàn),485-4是4根線(xiàn),下圖是422的示意圖。

微信圖片_20220427134101.png

422就是把232的RX分成兩根線(xiàn),RX+,RX-,把TX分成TX+,TX-。這樣就可以同時(shí)發(fā)送和同時(shí)接收了,還可以像485這樣,有較遠的傳輸距離??墒沁@樣一種很有優(yōu)勢的通信方式,卻用得不多,最常用到的是232跟485。


串口通信常見(jiàn)問(wèn)題

1、電腦使用USB轉串口可以和設備通信上,換成屏與設備就通信不上了?

1)有可能電腦USB轉串口接到設備上,使用的是標準串口功能,也就是除了RX,TX,GDN外,還使用了其它引腳。比如像歐姆龍PLC,三菱PLC,在實(shí)際與屏的通信中,就需要接某些引腳短接的情況。

2)電腦與控制器或PLC通信時(shí),是掃描波特率參數,自適應的屏通信可能參數沒(méi)有設備好。在三菱、基恩士等PLC,就存在變化波特率進(jìn)行通信交互的過(guò)程。
3)也有可能是接線(xiàn)方式不對。因為有些DB9,還需要公頭,母頭。如果不注意的話(huà),也會(huì )存在把TX接到TX上,把RX接到RX上,這樣需要注意的地方。
4) 在這里補充一下,有時(shí)候可能會(huì )使用一些串口助手發(fā)送測試數據與控制器通信,有些串口助手的奇偶校驗是不起作用,這個(gè)要提醒一下

2、用A家的屏可以和設備通信,換成B家的屏就通信不上了?

1) 首先確認一下接線(xiàn)是否正確了,RX和TX是否兼容。

2) 地線(xiàn)是否沒(méi)有接。
3) 除了RX、TX、GND,是否還有其它引腳需要短接的。
4) 通信協(xié)議是否一致或不完善,波特率是否一樣。


3、以前不接地線(xiàn)可以通信,換個(gè)設備為什么需要接地線(xiàn)了?

這個(gè)問(wèn)題和上一個(gè)類(lèi)似,因為有些設備使用了隔離電源。以前不接地可以通信,有可能實(shí)際上地線(xiàn)已經(jīng)接了,所以才可以通信??赡軗Q了個(gè)帶隔離電源的,兩個(gè)設備的地是隔離的,就需要在串口上把地線(xiàn)接起來(lái)。

4、一個(gè)設備是232,另一個(gè)設備是422,沒(méi)有轉換設備,怎么辦?

   剛才也講了422和232的接線(xiàn),因為這兩個(gè)都是全雙工的,接收和發(fā)送都是分到的,而422只是以一種差分信號進(jìn)行傳輸。

   把422的Rx+與232的TX接,422的RX-與232的GND接。

把422的TX+與232的RX接,422的TX-與232的GDN接。
這樣,422設備要發(fā)送數據的,就可以發(fā)送到了232的RX上。232的TX發(fā)數據后,由于TX和GND也形成了差分信號給422,422就可以接收到數據了

5、用232通信沒(méi)問(wèn)題,用485通信沒(méi)問(wèn)題,使用232轉485之后就通信不穩定?

232和485從通信原理上,最大一個(gè)差別是全雙工和半雙工的區別??墒菓脤影l(fā)送數據和接收數據才不管底下是全雙工還是半雙工。

但是485就得管了。因為既然是半雙工,就得嚴格保證通路上只能有發(fā)送或只能有接收的數據,一旦同時(shí)有發(fā)送和接收,數據就會(huì )沖突了。所以解決的辦法就是主站設備,也就是主動(dòng)命令的一方就需要嚴格控制好發(fā)送數據命令的節奏了。當然有些232轉485的設備做的比較好了,可以?xún)?yōu)化這個(gè),但是主站還是要控制,比較把通信速率調節慢一些。

6、要想實(shí)現兩個(gè)屏或兩個(gè)主站通過(guò)485訪(fǎng)問(wèn)modbus設備,有什么好的辦法?

在485通信中,基本上是一主多從。但是遇到一些客戶(hù)實(shí)際使用中,有客戶(hù)想用兩個(gè)屏來(lái)訪(fǎng)問(wèn)一個(gè)modbus設備的。目前暫時(shí)還沒(méi)有好的辦法。

7、串口通信的弱點(diǎn)

1)信號干擾的問(wèn)題    建議使用帶屏蔽線(xiàn),接線(xiàn)要嚴格,比如要接地。有些485通信上,還考慮接上終端電阻來(lái)匹配。如果是232,盡量不要讓線(xiàn)太長(cháng)。通信協(xié)議上盡量避免長(cháng)報文的數據通信。

2)波特率匹配的問(wèn)題    因為有些設備的計算的波特率是存在誤差的,特別是一些控制器,由于使用的晶振不一樣。因此在一些波特率比如9600波特率就存在誤差。存在誤差帶來(lái)的影響是什么呢。因為接收方是通過(guò)時(shí)間來(lái)計算一個(gè)位的。那么如果一個(gè)報文過(guò)長(cháng),就會(huì )存在誤差積累的問(wèn)題,算著(zhù)算著(zhù)就偏了。所以,這也是串口通信不穩定的一些地方,在使用上應注意避免發(fā)送太長(cháng)數據的包。
3)在一些可能會(huì )存在干擾的情況,可以考慮使用奇校驗或者偶校驗    因為雖說(shuō)出現錯誤的可能性不大,但既然存在干擾,如果加了校驗,至少可以把錯誤的報文過(guò)濾掉??偤帽葲](méi)有校驗然后通信數據錯了不知道?;蛘弑M量使用一些帶校驗的協(xié)議,防止數據出錯。
4) 串口通信本來(lái)就比較慢,請降低對數據響應的要求    因為串口通信本身就比以太網(wǎng)慢。而且,串口通信并不是能像CPU那樣多線(xiàn)程處理。因為就一個(gè)口一個(gè)線(xiàn)數據出去,即便你應用到程序再怎么用多線(xiàn)程處理數據,但是最底下也只有一個(gè)口出去,一次也只能傳一個(gè)位,一個(gè)字節過(guò)去。因為有客戶(hù)在使用9600的波特率通信,但是又希望多少的數據可以在多少毫秒內得到響應。

但是串口通信還是要實(shí)事求是,所以正確認識串口通信對應用,對開(kāi)發(fā),對溝通都有著(zhù)很大的幫助的。


8、為什么不用同步通信?


剛才提到,同步通信需要依賴(lài)于時(shí)鐘信號。這就存在一個(gè)問(wèn)題,這個(gè)時(shí)鐘信號是誰(shuí)來(lái)發(fā)起呢。在同步通信中,往往需要一個(gè)主設備發(fā)起時(shí)鐘信號讀從模塊的數據。在實(shí)際中,有屏讀PLC,有屏讀屏的數據。而單純地從異步串口通信來(lái)說(shuō),是沒(méi)有主從之說(shuō),雙方都是平等的角色,都可以互發(fā)信息,互收信息。而同步通信一般是應用于CPU讀一些模塊,由CPU發(fā)起時(shí)鐘信號,比如讀SD卡模塊,就可以通過(guò)SPI方式,還有一些傳感器模塊。


*本文系網(wǎng)絡(luò )轉載,版權歸原作者所有,如有侵權請聯(lián)系刪除


尚义县| 长海县| 宿松县| 远安县| 榆林市| 富民县| 龙川县| 浙江省| 河西区| 赤水市| 溧水县| 民勤县| 高安市| 牟定县| 徐州市| 台山市| 萨迦县| 石景山区| 章丘市| 清镇市| 新和县| SHOW| 中超| 香河县| 卢龙县| 安国市| 尚志市| 桦川县| 张家口市| 和平区| 昭通市| 贵港市| 凉城县| 洛浦县| 丹江口市| 大同县| 丹棱县| 兴化市| 石狮市| 淄博市| 汉川市|