串口、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連接各種外設,U盤、鍵鼠、移動硬盤、當然也包括“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。