【STM32筆記1】TTL、RS232、RS485、CAN的主要區別(另有串口、COM口、UART口的說明)

1、TTL、RS232是邏輯電平信號,而RS485、CAN是差分信號,嚴格地講,這些都屬於通信網絡中的物理層(最底層)的概念,絕非通訊協議的概念;

2、從單片機芯片或者單片機軟件編程的角度來分析,其實RS485、RS232、CAN其最終結果都是轉換爲TTL電平方式與單片機進行通訊的(輸入數據時,(RS485、RS232、CAN)收發器把相應信號轉換爲TTL->(RS485、RS232、CAN)控制器(MCU);而輸出數據時,(RS485、RS232、CAN)收發器把TTL轉換爲相應信號<-(RS485、RS232、CAN)控制器(MCU));

3、TTL電平:全雙工(邏輯1: 2.4V–5V,邏輯0: 0V–0.5V);RS-232電平:全雙工(邏輯1:-15V–5V,邏輯0:+3V–+15V);RS-485:半雙工(邏輯1:+2V–+6V,邏輯0: -6V—2V,此處電平是指AB兩線之間的電壓差);CAN電平:半雙工(邏輯1:-1.5V–0V,邏輯0:+1.5V–+3V,此處電平指CAN_High、CAN_Low 兩線間的電壓差);

4、TTL、RS232是邏輯電平信號,而RS485、CAN爲差分信號;

5、對比TTL信號而言,RS485、RS232、CAN信號其目的都是爲了提高通信質量,提高抗干擾能力;

6、CAN總線是獨立出來的,有獨立的輸入輸出引腳,且通常與USB D+\USB D-複用,而TTL、RS232、RS485一般是通過UART\USART口直接輸出或者轉換而來的;

7、RS499、RS423、RS422等接口標準規範和總線標準規範其實與RS485、RS232(這兩種比較常用)信號的定義與規範標準是類似的,此處不再做詳解;

另:

1、嵌入式裏常說的串口僅僅是一個泛稱而已,UART、TTL、RS232、RS485都遵循類似的通信時序協議,故皆可稱爲串口,當用作通訊時,皆可稱作爲“串口通信”;

2、一般情況下,單片機在進行“串口”通信時,從單片機直接出來的基本都是TTL電平;

3、UART接口(USART-同步/異步):通用異步收發器,UART是串口收發的邏輯電路,可以嵌入,像單片機、SOC、PC裏都裝有UART模塊;COM口:特指臺式計算機或一些電子設備上的D-SUB外形的串行通信端口,一般有D型9針插頭(即DB9接口,注意此時不能直接將MCU的RX\TX接到PC的TX\RX上,需要使用RS232轉換線) 和4針杜邦頭兩種物理標準;而從廣義上講,其實COM就是異步串行通信口的簡寫。由於歷史原因,IBM的PC外部接口配置爲RS232,成爲實際上的PC界默認標準。所以,現在PC機的COM口均爲RS232。若配有多個異步串行通信口,則分別稱爲 COM1、COM2... ,只不過過其外形是D-SUB的;

4、需特別注意的是,UART、COM口指的是物理接口形式,而RS232、RS485、CAN、TTL指的是電平標準(電信號);

5、有一點要注意的是,USART/UART提供了RS232數據終端設備接口,這樣計算機就可以和調制解調器(Modem)或其它使用 RS232接口的串行設備通信了;

6、UART(USART-同步/異步)是通用異步收發器(異步串行通信口)的英文縮寫,它包括了RS232、RS499、RS423、RS422和RS485等接口標準規範和總線標準規範,即UART是異步串行通信口的總稱,這也可以看作爲什麼TTL、RS232、RS485包括其他RS系列一般都是通過UART\USART口直接輸出或者轉換而來的原因之一;

7、RS232、RS499、RS423、RS422和RS485等,是對應各種異步串行通信口的接口標準和總線標準,它規定了通信口的電氣特性、傳輸速率、連接特性和接口的機械特性等內容。實際上是屬於通信網絡中的物理層(最底層)的概念,與通信協議沒有直接關係。而通信協議,是屬於通信網絡中的數據鏈路層(上 一層)的概念;

8、UART,通用異步接收/發送裝置,UART是一個並行輸入成爲串行輸出的芯片,通常集成在主板上。因計算機內部採用並行數據,不能直接把數據發到 Modem(調制解調器),必須經過UART整理才能進行異步傳輸,其過程爲:CPU先把準備寫入串行設備的數據放到UART的寄存器(臨時內存塊)中,再通過FIFO(FirstInputFirstOutput,先入先出隊列)傳送到串行設備,若是沒有FIFO,信息就會變得雜亂無章,不可能傳送到Modem;

附:此文爲本人經STM32實戰後總結所得,歡迎大家參考指點,謝謝。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章