串列埠、COM口、UART口, TTL、RS-232、RS-485有啥區別
除錯時總是會遇到各種各樣的介面,各種各樣的轉換板,似懂非懂的感覺很不爽!
首先,串列埠、UART口、COM口、USB口是指的物理介面形式(硬體)。而TTL、RS-232、RS-485是指的電平標準(電訊號)。
串列埠:串列埠是一個泛稱,UART,TTL,RS232,RS485都遵循類似的通訊時序協議,因此都被通稱為串列埠。
UART介面:通用非同步收發器(Universal Asynchronous Receiver/Transmitter),UART是串列埠收發的邏輯電路,這部分可以獨立成晶片,也可以作為模組嵌入到其他晶片裡,微控制器、SOC、PC裡都會有UART模組。
COM口:特指臺式計算機或一些電子裝置上的D-SUB外形(一種聯結器結構,VGA介面的聯結器也是D-SUB)的序列通訊口,應用了串列埠通訊時序和RS232的邏輯電平。
USB口:通用序列匯流排,和串列埠完全是兩個概念。雖然也是序列方式通訊,但由於USB的通訊時序和訊號電平都和串列埠完全不同,因此和串列埠沒有任何關係。USB是高速的通訊介面,用於PC連線各種外設,隨身碟、鍵鼠、行動硬碟、當然也包括“USB轉串列埠”的模組。(USB轉串列埠模組,就是USB介面的UART模組)
TTL,RS232,RS485都是一種邏輯電平的表示方式
TTL:TTL指雙極型三極體邏輯電路,市面上很多“USB轉TTL”模組,實際上是“USB轉TTL電平的串列埠”模組。這種訊號0對應0V,1對應3.3V或者5V。與微控制器、SOC的IO電平相容。不過實際也不一定是TTL電平,因為現在大部分數字邏輯都是CMOS工藝做的,只是沿用了TTL的說法。我們進行串列埠通訊的時候從微控制器直接出來的基本是都是 TTL 電平。
TTL電平:全雙工(邏輯1: 2.4V--5V 邏輯0: 0V--0.5V)
1、硬體框圖如下,TTL用於兩個MCU間通訊
RS-232電平:全雙工(邏輯1:-15V--5V 邏輯0:+3V--+15V)
1、硬體框圖如下,TTL用於MCU與PC機之間通訊
RS-485:半雙工、(邏輯1:+2V--+6V 邏輯0:-6V---2V)這裡的電平指AB 兩線間的電壓差。
1、硬體框圖如下
一般我們見到的是兩種物理標準。D型9針插頭,和 4針杜邦頭兩種。
這是常見的4針串列埠,在電路板上常見,經常上邊還帶有杜邦插針。還有時候有第五根針,3.3V電源端。
由於是預留在電路板上的,協議可以有很多種,要看具體裝置。
嵌入式裡面說的串列埠,一般是指UART口,但是我們經常搞不清楚它和COM口的區別, 以及RS232, TTL等關係, 實際上UART,COM指的物理介面形式(硬體), 而TTL、RS-232是指的電平標準(電訊號).
UART有4個pin(VCC, GND, RX, TX), 用的TTL電平, 低電平為0(0V),高電平為1(3.3V或以上)。
下面這個就是D型9針串列埠(通俗說法)。在臺式電腦後邊都可以看到。記住,這種介面的協議只有兩種:RS-232和RS-485。不會是TTL電平的(除非特殊應用)。9針串列埠的定義可以參考這裡:
https://wenku.baidu.com/view/5c170c6925c52cc58bd6be6e.html
我們一般只接出RXD TXD兩針,外加GND。