串口通訊概述
串口通訊是指數(shù)據(jù)按位(bit)發(fā)送和接收字節(jié)的一種傳輸方式。一個字節(jié)的數(shù)據(jù)傳輸要分為8次進(jìn)行,由低位到高位按順序一位一位的進(jìn)行傳送。
由于串行通信的數(shù)據(jù)是逐位傳輸?shù)?,所以發(fā)送方和接收方都需要具有固定的時間間隔來發(fā)送/接收每一位,也就是要保證通訊雙方具有相同的波特率即每秒傳輸?shù)腷it數(shù)量。(常見的波特率9600/115200)。
對于串口來說,單個調(diào)制狀態(tài)對應(yīng)點(diǎn)二進(jìn)制位數(shù)為1,所以波特率=比特率。
我們常見的UART,RS232,RS485/RS422都是串口通訊,都遵循串口通信時序協(xié)議。
串口通訊傳輸數(shù)據(jù)幀的結(jié)構(gòu)
-
起始位:是表示傳輸開始的位,通常為發(fā)送1位邏輯0,開始傳輸數(shù)據(jù)。
-
數(shù)據(jù)位:可以是5~8位的數(shù)據(jù),先發(fā)LSB。常見的就是8位(1個字節(jié))。
-
校驗(yàn)位:用于奇偶校驗(yàn)的位。用于檢測錯誤。它可以采用以下值:
偶校驗(yàn),消息中的單元數(shù)是偶數(shù) 奇校數(shù),消息中的單元數(shù)為奇數(shù) 始終為 1,奇偶校驗(yàn)位始終為 1 始終為 0,奇偶校驗(yàn)位始終為 0 未使用(無)
-
停止位:停止位是數(shù)據(jù)傳輸結(jié)束的標(biāo)志,可以是1/1.5/2位的邏輯1。
-
空閑位:空閑位是緊跟停止位之后的,在停止位保持到邏輯1時,空閑時數(shù)據(jù)線為邏輯1狀態(tài),代表無數(shù)據(jù)傳輸。
UART
UART(通用異步收發(fā)器) 是串行異步通訊總線。通常處理器都會集成UART控制器,它由兩條數(shù)據(jù)線構(gòu)成,可以實(shí)現(xiàn)全雙工的發(fā)送和接收。但UART通訊沒有統(tǒng)一的電氣接口,抗干擾能力比較差,通訊的距離特別短。
UART的硬件連接僅需要3條線。發(fā)送數(shù)據(jù)端TX,要接接收設(shè)備的RX,發(fā)送數(shù)據(jù)端RX,要接接收設(shè)備的TX,GND是保證兩設(shè)備共地,有統(tǒng)一的參考平面 。
RS232
RS-232 和UART一樣,也是點(diǎn)對點(diǎn)的數(shù)據(jù)傳輸。接口工作在全雙工模式。區(qū)別是在電氣層做的改變,RS-232 提升了邏輯傳輸?shù)碾妷?。定義了硬件接口標(biāo)準(zhǔn)。因此,RS-232在速度9600 bps下,通訊距離通常在 15 米左右。在最短距離下,速度通常為 115.2 kbps。
用于 RS-232 的 DB9 連接器的引腳排列
我們在使用RS-232 接口的時候通常使用 TxD、RxD 和 GND 地線,其余線是用于控制數(shù)據(jù)流的。
我們使用的CPU會集成UART控制器,但是處理器產(chǎn)生的信號都是TTL電平,因此在使用RS232時候,我們需要在硬件上添加電路對信號電平進(jìn)行轉(zhuǎn)化,而軟件代碼則和UART相同。即處理器-RS232電平轉(zhuǎn)換芯片-RS232電平轉(zhuǎn)換芯片-處理器。
RS232相對UART提升了傳輸距離,也有了統(tǒng)一的接口標(biāo)準(zhǔn)。但是RS232傳輸?shù)慕涌谛盘栯娖诫妷焊撸蚑TL電平不兼容。而且會產(chǎn)生共模干擾,通訊的距離也比較短。
RS485
在工業(yè)上,最常見的接口是 RS-485 ,RS-485 采用多點(diǎn)拓?fù)浣Y(jié)構(gòu),允許連接多個接收器和發(fā)射器(有點(diǎn)像IIC)。這樣可以利用單一的RS485 接口方便的建立起一個設(shè)備網(wǎng)絡(luò),在 RS-485 網(wǎng)絡(luò)的一個部分中,最多可以有 32 個設(shè)備,但在附加中繼器和信號放大器的幫助下,最多可以有 256 個設(shè)備。但一次只能激活一個發(fā)射器。而上面到UART和RS232的拓?fù)涫屈c(diǎn)對點(diǎn)。
RS-485差分線路由兩個信號組成:
A,對于邏輯1低,對于邏輯0高,
B,對于邏輯1高,對于邏輯0低。
RS-485 有兩種類型:
RS-485 帶 2 個觸點(diǎn),以半雙工模式運(yùn)行,同一時間只能接收/發(fā)送。
RS-485 帶 4 個觸點(diǎn),以全雙工模式運(yùn)行,同一時間能接收/發(fā)送。
RS-485 標(biāo)準(zhǔn)沒有特別定義特定類型的連接器,但通常是接線端子或 DB9 連接器。連接器的引腳分配取決于設(shè)備制造商。
為了在遠(yuǎn)距離匹配線路,RS-485 還在線路的起點(diǎn)和終點(diǎn)配備了 120 歐姆的終端電阻。RS485的通訊距離最大1200 米,9600 bps。
RS232和RS485對比:
RS-422
RS-422 和RS-485很類似。使用的都是差分信號。但是在 RS-422 網(wǎng)絡(luò)中,發(fā)送設(shè)備只能有 1 個,接收設(shè)備最多可以有 10 個。
RS-422 是 定義4 根線用于數(shù)據(jù)傳輸。(2 根雙絞線用于傳輸,2 根雙絞線用于接收)和一根公共 GND 地線。
RS485和RS422相比較,RS485一般是2線制,雖然有些廠商可能會指定4線制RS485,這種方式比較少見,因此在用四線傳輸?shù)臅r候選擇RS-422 多一些。文章來源:http://www.zghlxwxcb.cn/news/detail-606702.html
RS-232、RS-422和RS-485的主要區(qū)別(重要)
文章來源地址http://www.zghlxwxcb.cn/news/detail-606702.html
到了這里,關(guān)于串口通訊UART/RS232/RS485/RS-422筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!