UART、RS232、RS485协议
文章目錄
- 一、UART
- 1.1 UART幀格式
- 1.2 UART電路的連接
- 1.3 串口存在的問(wèn)題
- 二、RS232協(xié)議
- 2.0 RS232協(xié)議介紹
- 2.1 RS232的幀格式
- 2.2 RS232電路連接
- 2.3 RS232存在的問(wèn)題
- 三、RS485協(xié)議
- 3.0 RS485協(xié)議介紹
- 3.1 RS485幀格式
- 3.2 RS485電路連接
- 3.3 RS485的優(yōu)勢(shì)
- 四、RS485編程。
- 4.1 收發(fā)器SP3485及其電路連接
- 收發(fā)器SP3485
- 收發(fā)器SP3485的電路連接
- 4.2 代碼
在電腦之間,我們常用RS232來(lái)通訊;在工業(yè)上,我們經(jīng)常會(huì)用到RRS485總線。這RS232和RS485到底是什么東西?它與常用的串口通信有什么聯(lián)系嗎?下面我們就來(lái)看看他們之間的聯(lián)系。
一、UART
1.1 UART幀格式
1.2 UART電路的連接
1.3 串口存在的問(wèn)題
想一想 串口會(huì)存在什么問(wèn)題?
串口傳輸距離近,容易受到干擾。在一般的項(xiàng)目中我們很少用到串口區(qū)通信的。
具體的問(wèn)題如下:
??UART只是對(duì)信號(hào)的時(shí)序進(jìn)行了定義,而未定義接口的電氣特性;
??UART通信時(shí)一般直接使用處理器使用的電平,即TTL電平,但不同的處理器使用的電平存在差異,所以不同的處理器使用UART通信時(shí)一般不能直接相連;
??UART沒(méi)有規(guī)定不同器件連接時(shí)連接器的標(biāo)準(zhǔn),所以不同器件之間通過(guò)UART通信時(shí)連接很不方便;
??UART一般直接使用TTL信號(hào)來(lái)表示0和1,但TTL信號(hào)的抗干擾能力較差,數(shù)據(jù)在傳輸過(guò)程中很容易出錯(cuò)
??因?yàn)門TL信號(hào)的抗干擾能力較差,所以其通信距離也很短,一般只能用于一個(gè)電路板上的兩個(gè)不芯片之間的通信
二、RS232協(xié)議
2.0 RS232協(xié)議介紹
RS232協(xié)議
??RS232協(xié)議是在1970年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家、計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。
??該標(biāo)準(zhǔn)規(guī)定采用一個(gè)標(biāo)準(zhǔn)的連接器。標(biāo)準(zhǔn)中對(duì)連接器的每個(gè)引腳的作用加以規(guī)定,還對(duì)信號(hào)的電平加以規(guī)定;
-
RS232接口
??該標(biāo)準(zhǔn)規(guī)定采用一個(gè)25引腳的DB-25連接器,標(biāo)準(zhǔn)中對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定)還對(duì)各種信號(hào)的電平加以規(guī)定;后來(lái)IBM的PC機(jī)將RS232簡(jiǎn)化成了DB-9維接器,后來(lái)成為事實(shí)標(biāo)準(zhǔn);現(xiàn)在工業(yè)控制的RS-232接口一般只使用RXD、TXD、GND三條線; -
信號(hào)
??該標(biāo)準(zhǔn)規(guī)定邏輯“1”的電平為-5v到-15v,邏輯“0”的電平為+5v到+15v,選用該電氣標(biāo)準(zhǔn)的目的在于提高抗干擾能力,增大通信距離,其傳送距離一般可達(dá)15m;
2.1 RS232的幀格式
RS232幀格式與UART串口通信一樣。他們只是在電氣的特性上不同。
2.2 RS232電路連接
??雖然很多處理器中都會(huì)集成UART控制器,但處理器產(chǎn)生的信號(hào)一般都是TTL信號(hào)并不是符合RS232標(biāo)準(zhǔn)的信號(hào),所以一般我們還需要在處理器外部去添加電路對(duì)信號(hào)的電平進(jìn)行轉(zhuǎn)換;經(jīng)過(guò)芯片的電平轉(zhuǎn)換后,TTL信號(hào)就變成了RS232信號(hào)。我們想要發(fā)送的信息就以RS232的信號(hào)的方式發(fā)送給接收方,接收方也需要一個(gè)RS232轉(zhuǎn)TTL電平的電平轉(zhuǎn)換器,把RS232信號(hào)轉(zhuǎn)換位TTL電平。
??現(xiàn)在的電腦上,一般也很少用RS232了,現(xiàn)在電腦上主要是以USB為主。但是在嵌入式中,RS232還是經(jīng)常使用的。
2.3 RS232存在的問(wèn)題
??RS232相當(dāng)于串口來(lái)說(shuō),只是電氣的層面不同,在幀格式上都是相同的,即軟件編程都是相同的。
RS232存在以下幾個(gè)問(wèn)題:
- 容易燒壞芯片
??接口的信號(hào)電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL電平不兼容,所以需要使用電平轉(zhuǎn)換芯片才能與TTL電路連接 - 通信速度較低
- 易產(chǎn)生共模干擾,抗噪聲干擾性弱
- 傳輸距離較短(15m)
三、RS485協(xié)議
3.0 RS485協(xié)議介紹
??為了解決RS232的通信易受到干擾,傳輸距離短問(wèn)題,又定義了一種新的協(xié)議-RS485協(xié)議。
??該標(biāo)準(zhǔn)由電信行業(yè)協(xié)會(huì)和電子工業(yè)聯(lián)盟定義;使用該標(biāo)準(zhǔn)的通信網(wǎng)絡(luò)能在遠(yuǎn)距離條件下以及電子噪聲大的環(huán)境下有效傳輸信號(hào)。該標(biāo)準(zhǔn)允許連接多個(gè)收發(fā)器,即具有多站能力,這樣可以利用單一的RS485接口方便地建立起一個(gè)設(shè)備網(wǎng)絡(luò)。
??RS485在工業(yè)上經(jīng)常使用到。
- 信號(hào)
??RS485標(biāo)準(zhǔn)規(guī)定采用差分信號(hào)(差分信號(hào)是指用兩根線的電平差表示0、1)進(jìn)行數(shù)據(jù)傳輸,兩線間的電壓差為+2v到+6v表示邏輯“1”,兩線間的電壓差為-2v到-6v表示邏輯“0”;
??使用差分信號(hào)能有效地減少噪聲信號(hào)的干擾(因?yàn)槿绻艿礁蓴_,兩根線都會(huì)受到相同的干擾,所以受到干擾后這兩根線的電平差仍然能正確的表示0或1),延長(zhǎng)通信距離,RS485的通信距離可以達(dá)到1500m;RS485接口信號(hào)的電平比RS232降低了,所以不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便地與TTL電路連接 - 接口
??RS485采用兩線制,這種接線方式為總線式拓?fù)浣Y(jié)構(gòu),在同一總線上可以同時(shí)存在多個(gè)節(jié)點(diǎn);
??因?yàn)椴捎脙删€制,數(shù)據(jù)的發(fā)送和接收都要使用這對(duì)差分信號(hào)線,發(fā)送和接收不能同時(shí)進(jìn)行,所以只能采用半雙工的方式工作,編程時(shí)也需要加以處理。
??這兩根線采用雙絞線,這樣更加減少干擾。
3.1 RS485幀格式
??RS485都是基于串口的,幀格式與串口的相同。與串口和RS232只是電氣的特性不同,軟件的編程都是差不多的。
??由于采用了差分信號(hào),RS485 只能采用半雙工的方式工作,只能同一時(shí)間發(fā)送數(shù)據(jù)或者接收數(shù)據(jù)。在編程48時(shí),需要注意這一點(diǎn)。
3.2 RS485電路連接
??雖然很多處理器中都會(huì)集成UART控制器,但處理器產(chǎn)生的信號(hào)一般都是TTL信號(hào)并不是符合RS485標(biāo)準(zhǔn)的信號(hào),所以一般我們還需要在處理器外部去添加電路將TTL信號(hào)轉(zhuǎn)換成差分信號(hào);
??RS485的接口是A對(duì)A,B對(duì)B。
3.3 RS485的優(yōu)勢(shì)
- 安全,不易燒芯片
??接口的信號(hào)電平值較低,不易損壞接口電路的芯片,且與TTL電平兼容,可方便地與TTL電路連接 - 通信速度快
- 抗噪聲干擾性強(qiáng)
使用了差分信號(hào),雙絞線 - 傳輸距離較遠(yuǎn)(1500m)
- 可實(shí)現(xiàn)多節(jié)點(diǎn)組網(wǎng)
在RS485總線上可以掛多個(gè)設(shè)備。
四、RS485編程。
4.1 收發(fā)器SP3485及其電路連接
收發(fā)器SP3485
我們開(kāi)發(fā)板采用SP3485作為收發(fā)器,該芯片支持3.3V供電,最大傳輸速度可達(dá)10Mbps,支持多達(dá)32-個(gè)節(jié)點(diǎn),并且有輸出短路保護(hù)。該芯片的框圖如圖
- 圖中A、 B總線接口,用于連接485總線。
- RO是接收輸出端,DI是發(fā)送數(shù)據(jù)收入端,。
- RE是接收使能信號(hào)(低電平有效),DE是發(fā)送使能信號(hào)(高電平有效)
收發(fā)器SP3485的電路連接
- 一個(gè)引腳決定RS485數(shù)據(jù)收發(fā)
??RS485是半雙工的方式,RE、DE可以連接在一起,MCU用一個(gè)引腳來(lái)控制RS485的收發(fā)。
??如上圖:RS485_RE=1,表示發(fā)送數(shù)據(jù)。RS485_RE=0,表示接收數(shù)據(jù)。 - A、B口接偏置電阻,保證空閑電壓差大于200mV
??R14和R17是兩個(gè)偏置電阻,用來(lái)保證總線空閑時(shí),AB之間的電壓差都會(huì)大于200mV,避免總線空閑時(shí)壓差不定邏輯混亂。 - 兩個(gè)485接口連接,A連接A,B連接B。
4.2 代碼
代碼網(wǎng)絡(luò)上都有,
注意串口波特率得設(shè)置相同,不然接收到的數(shù)據(jù)都是00
總結(jié)
以上是生活随笔為你收集整理的UART、RS232、RS485协议的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 全球TOP100电子杂志整理
- 下一篇: 树莓派十周年,回顾它的发展历程