|

【Maker電子學】認識UART界面#2—通訊標準

   
作者:Bird

上篇文章【Maker電子學】認識UART界面#1—訊號格式,我們聊了 UART 界面的訊號格式,以及它爲什麼不需要 clock 就能收送訊號,這次我們要繼續來探討 UART 界面與實體世界之間許多通訊標準的關係。

UART 與 RS-232C

在開發 MCU 程式時,常常要把 MCU 的 UART 連接到 PC 來燒錄程式或 debug,但 MCU 上的串列通訊界面是 UART,PC 上的串列通訊界面是 RS-232C,這兩者到底有什麼關係,它們又有什麼不同呢?

如同上一次說明的,UART 是邏輯電路上的概念,它會隨著邏輯電路的電壓位準不同而改變。在 3.3 V 的邏輯電路上,UART 的 1 是 3.3 V,0 是 0 V;但是在 5 V 的邏輯電路中,UART 的 1 是 5 V,0 是 0 V。

邏輯電路的訊號是設計用在短距離、小尺寸的電路板上的,它其實無法跑太長的纜線。爲了解決這個問題,美國的電子工業聯盟 EIA 指定了一系列可以讓 UART 的訊號傳送較長距離的通訊規格標準,而這其中最爲人熟知的就是 RS-232C 這個標準。

最早的 RS-232 標準是由 EIA 在 1960 年制定,之後經過幾次修改,在 1969 年公佈的 RS-232C 成爲個人電腦上最普及的通訊界面(在 USB 界面席捲全世界之前,幾乎每一部電腦都有至少一個 9-pin 的 D 型連接器,那就是 RS-232C)。

RS-232C(圖片來源:Bird 提供)

RS-232C 標準誕生距今剛好 50 年,雖然已是一個老舊的技術,但它對這個世界的影響之深遠仍然餘韻不絕。RS-232C 的電氣特性標準簡單來說是這樣:

  • 邏輯 0:傳送端 +5 V ~ +15 V / 接收端 +3 V ~ +15 V
  • 邏輯 1:傳送端 -5 V ~ -15 V / 接收端 -3 V ~ -15 V

換句話說,它是用電壓的正、負來代表邏輯的 0 和 1,而且它能容許的電壓範圍相當大。在正常狀況下,RS-232C 上不會出現接近 0 V 的電壓,因爲就算沒有在傳送資料,它的邏輯準位也會維持在 0(就是 UART 的 idle high),傳送端因此會發送 +5 V ~ +15 V 的電壓,接收端也會收到 +3 V ~ +15 V 的電壓;如果 RS-232C 的線上出現 0 V 左右的電壓,就代表線可能根本沒接(這個特性可讓接收端用來偵測纜線是否脫落)。

那麼 UART 和 RS-232C 之間要如何轉換呢?有一顆歷史悠久的 IC 可以來幫我們做這件事。

話說 MAX232/MAX3223

MAX232 是 Maxim 在 1987 年推出的一顆 RS-232C 的傳送/接收器 IC,它的傳送器可以將 5 V 邏輯準位的訊號轉換到 RS-232C 的訊號,而接收器則可以將 RS-232C 的訊號轉換爲 5 V 邏輯準位的訊號。

本文為會員限定文章

立即加入會員! 全站文章無限看~

                               

已經是會員? 按此登入

只需不到短短一分鐘...

輸入您的信箱與ID註冊即可享有一切福利!

會員福利
1

免費電子報

2

會員搶先看

3

主題訂閱

4

好文收藏

Liang Bird

Author: Liang Bird

在外商圈電子業中闖蕩多年,經歷過 NXP、Sony、Crossmatch 等企業,從事無線通訊、影像系統、手機、液晶面板、半導體、生物辨識等不同領域產品開發。熱愛學習新事物,協助新創團隊解決技術問題。台大農機系、台科大電子所畢業,熱愛賞鳥、演奏管風琴、大提琴、法國號,亦是不折不扣的熱血 maker。

Share This Post On

2 Comments

  1. 請問文中提到 『 UART 的 0 是 3.3 V,1 是 0 V;但是在 5 V 的邏輯電路中,UART 的 0 是 5 V …….』和一般使用是波器來量測UART訊號 debug時是相反的。利如此文章裡波形圖(https://makerpro.cc/2019/08/the-difference-between-rs232-and-uart/)的讀值就應該完全反轉。
    又是否在UART界面下的資料傳送當 bit 為 High 時應該量到(或傳送為Low 電位)。煩請釋疑?感恩!!

    Post a Reply
    • Liang Bird

      UART 的邏輯是 0 是低電位,1 是高電位,但 RS-232 剛好相反,因此假設當你送 0x0A 時,二進位是 00001010,在 UART 線上不管 start 和 stop bit,看到的就是 LLLLHLHL,但在 RS-232 上看到的會是 HHHHLHLH。

      Post a Reply

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *