Ⅰ.什么是串行通信?
一次只能傳輸一行數(shù)據(jù),使用串行通信一次只能傳輸一位。一個(gè)字節(jié)必須傳輸八次才能被接收。串行通信是指通過(guò)單根導(dǎo)線傳輸數(shù)據(jù)字符串,這就是它被稱(chēng)為串行端口的原因。
在速率要求不高的情況下,通過(guò)單線發(fā)送數(shù)據(jù)是極其方便實(shí)用的。
異步串行通信需要以下所示的格式,以便以正常方式發(fā)送和接收正確的數(shù)據(jù)。
圖1
串口的通信參數(shù)中有多種參數(shù),包括波特率、起始位、 數(shù)據(jù)位、奇偶校驗(yàn)位和停止位。
二.232485422通訊有什么區(qū)別?
串口通訊主要分為232、485、422三種通訊方式,這三種有什么區(qū)別呢?
01232 通訊
圖2
RX、TX、 GND 是構(gòu)成232通信的三根線。TX 連接到 RX,RX 連接到 TX, GND 連接到 GND,在這種情況下,發(fā)送和接收由單獨(dú)的線路處理,允許同時(shí)傳輸和接收數(shù)據(jù),這種技術(shù)稱(chēng)為全雙工通信。
詳細(xì)來(lái)說(shuō),全功能串行通信也稱(chēng)為標(biāo)準(zhǔn)串口,是串行通信的另一個(gè)功能。由于兩個(gè)設(shè)備之間的數(shù)據(jù)流,某些設(shè)備處理數(shù)據(jù)的速度比其他設(shè)備更快。在RX和TX的基礎(chǔ)上增加了幾個(gè)控制引腳,以保證數(shù)據(jù)的正常傳輸,最后增加了9個(gè)引腳,即常見(jiàn)的DB9,如下圖所示。
圖3
現(xiàn)在很多控制器、人機(jī)界面、PLC等設(shè)備都不再使用傳統(tǒng)的串口進(jìn)行串行通信,而是使用RX、TX、 GND三根線。
02485 通訊
圖4
485是為了解決232通訊距離短的問(wèn)題而誕生的。
+和 - 兩條線,通常稱(chēng)為 A 和 B 線,是 485 通信所需的全部。作為數(shù)據(jù)信號(hào),傳送兩條線路A和B的差分電平信號(hào)。由于這兩根線同時(shí)用于發(fā)送和接收,因此它們一次只能用于其中一種功能。因此,485 是一種半雙工通信模式。
這就是232全雙工如何犧牲效率來(lái)實(shí)現(xiàn)其遠(yuǎn)傳輸距離的代價(jià)。
03422 通訊
422的出現(xiàn)是為了實(shí)現(xiàn)232的全雙工通信方式,同時(shí)也將傳輸距離增加到485。422也稱(chēng)為485-4,而485則稱(chēng)為485-2。下圖是422的示意圖,因?yàn)?85-2是兩線,485-4是四線。
圖5
422是把232的RX分成兩根線, RX+ 和RX-,TX分成TX+和TX-的結(jié)果 。這允許您同時(shí)發(fā)送和接收數(shù)據(jù),并且具有長(zhǎng)達(dá) 485 的更長(zhǎng)傳輸距離。但是,這種有益的通信策略很少使用。232 和 485 是最常用的。
三.有關(guān)串行通信的常見(jiàn)問(wèn)題
1、電腦使用USB轉(zhuǎn)串口可以與設(shè)備通訊,但換成屏幕就無(wú)法與設(shè)備通訊?
1)有可能電腦的 USB 轉(zhuǎn)串口是使用常規(guī)串口功能鏈接到設(shè)備的,也就是說(shuō)除了RX、TX、GDN之外還使用了其他引腳。例如,歐姆龍 和 三菱PLC上的某些引腳 必須短路才能與屏幕通信。
2)計(jì)算機(jī)與控制器或PLC通訊時(shí)掃描波特率參數(shù),自適應(yīng)屏通訊可能參數(shù)比設(shè)備少。在 Mitsubishi 和Keyence等 PLC 中,有一個(gè)更改通信交互波特率的程序 。
3)另一種可能是使用的接線方法不當(dāng)。因?yàn)槟承?DB9 需要公頭和母頭。不注意的話會(huì)有TX與TX相連、RX與RX相連的位置,所以要注意。
4)需要注意的是,有時(shí)可能會(huì)利用一些串行助手向控制器發(fā)送測(cè)試數(shù)據(jù)。請(qǐng)?zhí)嵝盐遥驗(yàn)槟承┐兄值钠媾夹r?yàn)不起作用。
2、A家的屏幕可以與設(shè)備通信,B家的屏幕卻無(wú)法通信?
1)檢查接線是否正確,RX 和 TX 是否兼容。
2)檢查地線是否連接。
3)除了RX、TX、 GND之外,還有其他引腳需要短接嗎 ?
4)通訊協(xié)議是否齊全或不一致,以及波特率。
3、以前不需要地線就可以通訊。為什么需要更換另一臺(tái)設(shè)備的地線?
由于某些設(shè)備采用隔離電源,因此該問(wèn)題與上一問(wèn)題類(lèi)似。以前不用接地也可以通訊,但有可能已經(jīng)接了地線,可以通訊了。可以更換為隔離電源,并且由于兩個(gè)設(shè)備的地是隔離的,所以串口上的地線必須連接。
4、一個(gè)設(shè)備是232,另一個(gè)是422,沒(méi)有轉(zhuǎn)換設(shè)備,怎么辦?
因?yàn)檫@兩個(gè)是全雙工的,接收和發(fā)送是分開(kāi)的,而422只是作為差分信號(hào)來(lái)傳輸,所以剛才也提到了422和232的接線。
將422的RX+連接 到232的TX,將422的RX-連接到232的 GND,
將422的TX+連接到232的RX,將422的TX-連接到232的GDN。
如果 422 設(shè)備想要傳送數(shù)據(jù),可以通過(guò)將其發(fā)送到 232 的 RX 來(lái)實(shí)現(xiàn)。由于TX和 GND 對(duì)422產(chǎn)生差分信號(hào),232的TX發(fā)送數(shù)據(jù)后422即可接收數(shù)據(jù)。
5、232通訊沒(méi)問(wèn)題,485通訊沒(méi)問(wèn)題,用232轉(zhuǎn)485后,通訊不穩(wěn)定?
232和485在通信概念上最大的區(qū)別就是全雙工和半雙工的區(qū)別。另一方面,應(yīng)用層以全雙工或半雙工模式發(fā)送和接收數(shù)據(jù)。
但是,485必須處理。由于它是半雙工的,因此必須確保只有發(fā)送或接收的數(shù)據(jù)才能通過(guò)該路徑。如果同時(shí)啟用發(fā)送和接收,數(shù)據(jù)將會(huì)發(fā)生沖突。因此,主站設(shè)備或者主動(dòng)指揮方必須嚴(yán)格管理數(shù)據(jù)命令的發(fā)送頻率。當(dāng)然,某些232到485的設(shè)備比較好,這個(gè)可以改進(jìn),但是主站還是要控制,改變通訊速率比較遲緩。
6.實(shí)現(xiàn)兩屏或兩個(gè)主站通過(guò)485訪問(wèn)Modbus設(shè)備的最佳方式是什么?
485通信本質(zhì)上是一個(gè)主站和多個(gè)從站。另一方面,一些客戶在實(shí)踐中更喜歡使用兩個(gè)屏幕來(lái)訪問(wèn) Modbus 設(shè)備。目前沒(méi)有可行的選擇。
7.串行通訊的缺點(diǎn)?
1)處理信號(hào)干擾時(shí),最好使用絕緣電纜并遵守嚴(yán)格的接線準(zhǔn)則,例如接地。在某些 485 通信中還考慮連接終端電阻以進(jìn)行匹配。如果號(hào)碼是 232,請(qǐng)保持簡(jiǎn)短。通信協(xié)議中盡量避免大消息的數(shù)據(jù)交換。
2)波特率匹配問(wèn)題 由于使用的不同晶振會(huì)導(dǎo)致某些設(shè)備(尤其是控制器)計(jì)算的波特率不準(zhǔn)確。因此,在某些波特率下,例如 9600 波特,會(huì)出現(xiàn)錯(cuò)誤。錯(cuò)誤的存在會(huì)產(chǎn)生什么影響?因?yàn)榻邮辗绞沁M(jìn)行逐位計(jì)算的。如果消息太長(zhǎng),就會(huì)出現(xiàn)錯(cuò)誤累積,計(jì)算就會(huì)出現(xiàn)偏差。因此,有些地方串行通信不可靠,應(yīng)注意防止傳輸數(shù)據(jù)很長(zhǎng)的數(shù)據(jù)包。
3)在某些可能存在干擾的情況下,您可能需要考慮使用奇校驗(yàn)或偶校驗(yàn),因?yàn)殡m然出錯(cuò)的可能性較低,但如果添加奇偶校驗(yàn),至少可以過(guò)濾掉錯(cuò)誤的數(shù)據(jù)包。失去。就好像沒(méi)有驗(yàn)證,然后通訊數(shù)據(jù)不正確,我就不知道該怎么辦了。為了避免數(shù)據(jù)錯(cuò)誤,請(qǐng)嘗試使用帶有校驗(yàn)和的協(xié)議。
4)串行通信本來(lái)就很慢;因此,請(qǐng)限制數(shù)據(jù)響應(yīng)要求,因?yàn)榇袀鬏敱?以太網(wǎng)慢。另外,與CPU不同,串行傳輸不是多線程的。即使應(yīng)用到軟件上,如何利用多線程來(lái)處理數(shù)據(jù),最底層也只有一個(gè)端口,由于數(shù)據(jù)是從一個(gè)端口發(fā)出來(lái)的,一次只能傳一位和一個(gè)字節(jié)。和一行。因?yàn)橛械目蛻舨捎?600波特率通信,多少毫秒可以處理多少數(shù)據(jù)?
然而,串行通信必須是現(xiàn)實(shí)的,因此透徹理解該協(xié)議有利于應(yīng)用程序的開(kāi)發(fā)、測(cè)試和通信。
8.為什么不使用同步通信?
如前所述,同步通信取決于時(shí)鐘信號(hào)。誰(shuí)發(fā)起這個(gè)時(shí)鐘信號(hào)是一個(gè)問(wèn)題。在同步通信中,主設(shè)備經(jīng)常需要發(fā)起時(shí)鐘信號(hào),以便讀取從模塊的數(shù)據(jù)。實(shí)際中有讀屏PLC和讀屏數(shù)據(jù)。異步串口通信沒(méi)有主從關(guān)系;雙方角色平等,可以互相傳輸和接收數(shù)據(jù)。CPU使用同步通信來(lái)讀取一些模塊,CPU開(kāi)始時(shí)鐘信號(hào),比如讀取SD卡模塊(可以通過(guò) SPI完成 )和一些傳感器模塊。
-
控制器
+關(guān)注
關(guān)注
112文章
16398瀏覽量
178544 -
串行通信
+關(guān)注
關(guān)注
4文章
576瀏覽量
35458 -
波特率
+關(guān)注
關(guān)注
2文章
307瀏覽量
34201 -
GND
+關(guān)注
關(guān)注
2文章
539瀏覽量
38786 -
USB轉(zhuǎn)串口
+關(guān)注
關(guān)注
0文章
38瀏覽量
11700
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論