串口、COM口、UART口, TTL、RS-232、RS-485區(qū)別詳解
2021-1-21新聞
UART口、COM口、USB口是指物理接口形式(硬件);而 TTL、RS-232、RS-485是指的電平標(biāo)準(zhǔn)(電信號)。
串口:串口是一個泛稱,UART、TTL、RS232、RS485都遵循類似的通信時序協(xié)議,因此都被通稱為串口。
UART接口:通用異步收發(fā)器(Universal Asynchronous Receiver/Transmitter),UART是串口收發(fā)的邏輯電路,這部分可以獨(dú)立成芯片,也可以作為模塊嵌入到其他芯片里,單片機(jī)、SOC、PC里都會有UART模塊。
COM口:特指臺式計算機(jī)或一些電子設(shè)備上的D-SUB外形(一種連接器結(jié)構(gòu),VGA接口的連接器也是D-SUB)的串行通信口,應(yīng)用了串口通信時序和RS232的邏輯電平。
USB口:通用串行總線,和串口完全是兩個概念。雖然也是串行方式通信,但由于USB的通信時序和信號電平都和串口完全不同,因此和串口沒有任何關(guān)系。USB是高速的通信接口,用于PC連接各種外設(shè),U盤、鍵鼠、移動硬盤、當(dāng)然也包括"USB轉(zhuǎn)串口"的模塊。(USB轉(zhuǎn)串口模塊,就是USB接口的UART模塊)
TTL、RS232、RS485都是一種邏輯電平的表示方式
TTL:TTL指雙極型三極管邏輯電路,市面上很多"USB轉(zhuǎn)TTL"模塊,實際上是"USB轉(zhuǎn)TTL電平的串口"模塊。這種信號0對應(yīng)0V,1對應(yīng)3.3V或5V。與單片機(jī)、SOC的IO電平兼容。不過實際也不一定是TTL電平,因為現(xiàn)在大部分?jǐn)?shù)字邏輯都是CMOS工藝做的,只是沿用了TTL的說法。我們進(jìn)行串口通信的時候 從單片機(jī)直接出來的基本是都是 TTL 電平。
TTL電平:全雙工(邏輯1:2.4V ~ 5V,邏輯0:0V ~ 0.5V)
1、硬件框架圖如下,TTL用于兩個MCU之間通信
2、0和1表示
RS232:是電子工業(yè)協(xié)會制定的異步傳輸標(biāo)準(zhǔn)接口,同時對應(yīng)著電平標(biāo)準(zhǔn)和通信協(xié)議(時序),其電平標(biāo)準(zhǔn):+3V ~ +15V對應(yīng)0,-3V ~ -15V對應(yīng)1。RS232的邏輯電平和TTL不一樣但是協(xié)議一樣。
RS-232電平:全雙工(邏輯1:-15V ~ -3V,邏輯0:+3V ~ +15V)
1、硬件框圖如下
2、0和1表示
RS485:RS485是一種串口接口標(biāo)準(zhǔn),為了長距離傳輸采用差分方式傳輸,傳輸?shù)氖遣罘中盘?,抗干擾能力比RS232強(qiáng)很多。兩線壓差為-(2~6)V表示0,兩線壓差為+(2~6)V表示1。
RS-485:半雙工、(邏輯1:+2V ~ +6V,邏輯0:-6V ~ -2V)這里的電平指AB兩線間的電壓差。
1、硬件框圖如下:
2、0和1表示
COM口即串行通訊端口,簡稱串口。這里區(qū)別于USB的"通用串行總線"和硬盤的"SATA"。
一般我們見到的是兩種物理標(biāo)準(zhǔn)。D型9針插頭,和4針杜邦頭兩種。這是常見的4針串口,在電路板上常見,經(jīng)常上邊還帶有杜邦插針,有時候還會有第五根針,3.3V電源端。由于是預(yù)留在電路板上的,協(xié)議可以有很多種,要看具體設(shè)備。
在嵌入式里面說的串口,一般是指UART口,但是我們經(jīng)常搞不清楚它和COM口的區(qū)別,以及RS232、TTL等關(guān)系,實際上UART、COM指的是物理接口形式(硬件),而TTL、RS-232是指的電平標(biāo)準(zhǔn)(電信號)。
UART有4個pin(VCC、GND、RX、TX),用的是TTL電平,低電平為0(0V),高電平為1(3.3V或以上)。
D型9針串口,這種接口的協(xié)議只有兩種:RS-232和RS-485。不會是TTL電平的。一般只接出RXD、TXD,外加GND。
接設(shè)備的時候,一般只接GND、RXD、TXD。不會接Vcc或者+3.3V的電源線,避免與目標(biāo)設(shè)備上的供電沖突。GND給收發(fā)雙方提供參考電平。TXD和RXD數(shù)據(jù)線以bit為最小單位傳輸數(shù)據(jù),一幀包含:起始位、數(shù)據(jù)位、校驗位、停止位。
PL2303、CP2102芯片是USB轉(zhuǎn)TTL串口的芯片,用USB來擴(kuò)展串口(TTL電平)。USB轉(zhuǎn)TTL串口如下圖:
MAX232芯片是TTL電平與RS232電平的專用雙向轉(zhuǎn)換芯片,可以TTL轉(zhuǎn)RS-232,也可以RS-232轉(zhuǎn)TTL。如下圖:
UART是通用異步收發(fā)傳輸器,它是完成一個特定的功能的硬件,它本身不是協(xié)議。它的最基本功能,是串行數(shù)據(jù)和并行數(shù)據(jù)之間的轉(zhuǎn)換。計算機(jī)中的數(shù)據(jù)以Byte為基本單位,對一個Byte的存取是并行的,即同時取得/寫入8個bit。而串行通信,則需要將這個Byte"打碎",按照時間順序來收發(fā)以實現(xiàn)串行。它是設(shè)備間進(jìn)行異步通信的關(guān)鍵模塊,UART負(fù)責(zé)處理數(shù)據(jù)總線和串行口之間的串/并、并/串轉(zhuǎn)換,并規(guī)定了幀格式;通信雙方只要采用相同的幀格式和波特率,就能在未共享時鐘信號的情況下,僅用兩根信號線(Rx 和Tx)就可以完成通信過程,因此也稱為異步串行通信。
例如:
內(nèi)存中的數(shù)據(jù)是:11100101
串行發(fā)送的實際效果是:1->0->1->0->0->1->1->1
接收則是:1->1->1->0->0->1->0->1
RS232/RS485是兩種不同的電氣協(xié)議,也就是說是對電氣特性以及物理特性的規(guī)定,作用于數(shù)據(jù)的傳輸通路上,它并不內(nèi)含對數(shù)據(jù)的處理方式。
比如RS232使用3v ~ 15v有效電平,而UART,因為對電氣特性并沒有規(guī)定,所以直接使用CPU使用的電平,就是所謂的TTL電平(0~3.3V之間)。更具體的,電氣的特性也決定了線路的連接方式,比如RS232,規(guī)定用電平表示數(shù)據(jù),因此線路就是單線路的,用兩根線才能達(dá)到全雙工的目的。而RS485, 使用差分電平表示數(shù)據(jù),因此必須用兩根線才能達(dá)到傳輸數(shù)據(jù)的基本要求,要實現(xiàn)全雙工必需用4根線。但是,無論使用RS232還是RS485,它們與UART都是相對獨(dú)立的,但是由于電氣特性的差別,必須要有專用的器件和UART接駁,才能完成數(shù)據(jù)在線路和UART之間的正常流動。
總結(jié):從某種意義上,可以說線路上存在的僅僅是電流,而RS232/RS485規(guī)定了這些電流在什么樣的線路上流動和流動的樣式;在UART那里,電流才被解釋和組裝成數(shù)據(jù),并變成CPU可直接讀寫的形式。
RS-232與RS-485的區(qū)別
傳輸方式不同。RS-232采取不平衡傳輸方式,即所謂單端通訊。而RS485則采用平衡傳輸,即差分傳輸方式。
傳輸距離不同。RS-232適合本地設(shè)備之間的通信,傳輸距離一般不超過20m。而RS-485的傳輸距離為幾十米到上千米。
能否支持多點(diǎn)通訊。RS-232只允許一對一通信,而RS-485接口在總線上是允許連接多達(dá)128個收發(fā)器。
接口的物理結(jié)構(gòu)方面:
RS-232接口連接器使用型號為DB-25的25芯插頭座。一些設(shè)備與PC機(jī)連接的RS-232接口,因為不使用對方的傳送控制信號,只需三條接口線,即RXD、TXD、GND,所以采用DB-9的9芯插頭座,傳輸線采用屏蔽雙絞線。
RS-485無具體的物理形狀,根據(jù)工程的實際情況而采用的接口。
接口電氣方面:
RS-232傳輸電平信號接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL 電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。抗干擾能力差。
RS-485傳輸差分信號邏輯1以兩線間的電壓差為+(2-6)V表示;邏輯0以兩線間的電壓差為-(2-6)V表示。接口信號電平比RS-232降低了,不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL 電路連接。抗干擾能力。
通訊線的區(qū)別:
RS-232可以采用三芯雙絞線、三芯屏蔽線等。
RS-485可以采用兩芯雙絞線、兩芯屏蔽線等。
傳輸數(shù)據(jù)的最大波特率:
RS-232傳輸效率較低,最高波特率為19200bps。雖然傳輸速度很慢,但在很多場合還是很實用的??梢赃B接各種設(shè)備,例如監(jiān)控、其它的設(shè)備升級或調(diào)試等都可能需要用到它。功能與USB比較接近,隨著USB端口的越來越普遍,將會出現(xiàn)更多的把USB轉(zhuǎn)換成RS-232或其它接口的轉(zhuǎn)換裝置。通過USB接口可連接更多的RS-232設(shè)備,不僅可獲得更高的傳輸速度,實現(xiàn)真正的即插即用,同時解決了USB接口不能遠(yuǎn)距離傳輸?shù)娜秉c(diǎn)。
RS-485的數(shù)據(jù)最高傳輸速率為10Mbps。
單工、半雙工和全雙工的區(qū)別:
單工:數(shù)據(jù)只能在一個方向上傳輸,不能實現(xiàn)雙方通信。如電視、廣播
半雙工:允許數(shù)據(jù)在兩個方向上傳輸,但是同一時間數(shù)據(jù)只能在一個方向上傳輸,其實際上是切換的單工。如對講機(jī)
全雙工:允許數(shù)據(jù)在兩個方向上同時傳輸。如手機(jī)通話