|

【Maker電子學】認識UART界面#3—RS-485

   
作者:Bird

上篇文章【Maker電子學】認識UART界面#2—通訊標準,我們聊了 UART 轉換到實體通訊界面 RS-232、RS-422 及 RS-485,這次我們來深入探究 RS-485 這個簡單易用且功能強大的通訊標準吧!

半雙工的 RS-485 網路

上次說過,RS-485 和 RS-422 在實體層都是使用差動訊號來傳遞訊息,不過兩者的訊號規格略有不同。

RS-422 的傳送器電壓定義是:

邏輯 1:VA-VB= +2 V ~ +6 V

邏輯 0:VA-VB= -2 V ~ -6 V

而 RS-485 的傳送器電壓定義則是:

邏輯 1:VA-VB = +1.5 V ~ +6 V

邏輯 0:VA-VB = -1.5 V ~ -6 V

兩者在最低電壓的要求差了 0.5 V,但在接收端,不管是 RS-422 還是 RS-485,都只需要 200 mV 的電壓,就能夠判定邏輯 0 或 1:

邏輯 1:VA-VB > 200 mV

邏輯 0:VA-VB < -200 mV

發射器和接收器之間電壓的差距,就是通訊標準所容許的實體層電氣損耗。典型的 RS-422 或 RS-485 只要搭配適當的纜線,可以將訊號傳輸至 400 英呎(130 公尺)之遠,靠的就是差動訊號耐干擾的特性以及其所容許的線上電氣損耗。

RS-485 是半雙工的通訊界面,它的傳送和接收共用同一對線路,典型的線路結構長這樣:

(圖片來源:Bird 提供)

在這個圖中,總共有四個 RS-485 的裝置接在同一個網路上,並共用同一對傳輸線路。電路上看來,所有裝置的 A 點都是接在一起的,B 點亦同,因此我們可以說,在 RS-485 網路上所有的裝置都是並聯在一起的。

上圖也可看出,線路的兩端各有一個電阻 RT 將 A 和 B 連接起來,這個電阻叫做「終端電阻」(terminator),它的用意是在纜線的尾端將訊號消耗掉,避免訊號反射回來,同時也作為傳送電路的負載,典型的 RS-485 終端電阻是 120 Ω。

這種網路有個特別的名字叫做「multi-drop network」,其實就是「有很多裝置的網路」。在這種網路上,一次只能有一個裝置進入傳送模式,其它裝置則在接收模式,這是因爲接收器的阻抗通常很高,不太會消耗訊號,因此一個傳送器可以同時驅動很多個接收器,讓大家收到一樣的東西。以 RS-485 的標準而言,它允許網路上最多可以有 32 個裝置。

如果同時有兩個裝置進入傳送模式,它們傳送的訊號就有可能會打架!比方說一個裝置傳送 0,另一個裝置傳送 1,那線路上的狀態到底是 0 還是 1 呢?這根本就是一個不正常的狀態,會讓其它正在接收的裝置無所適從,因此在這種多裝置的網路上,必需要有一些規則,像是「先舉手再發言」、「沒人說話時再發言」或是「按照固定的順序輪流發言」等,以維持網路上的秩序。

當我們要用 UART 界面來控制 RS-485 時,會遭遇一個問題。先前說過,UART 是個「idle high」的界面,也就是說當我們沒在使用它時,它會維持在 high 的狀態,或是邏輯 1 。還記得嗎?但如果我們直接將 UART 的 TX(也就是傳送訊號),接在 RS-485 的傳送器上,當我們沒有在傳送資料時,UART 的 TX 始終會在邏輯 1 的狀態,那麼傳送器就會一直傳送 RS-485 的「1」出去,而如果這時候網路上有其它的裝置要傳送訊號,這個很堅持的邏輯 1 就會跟它打架,導致訊號整個垮掉。

因此在 multi-drop 的網路上,傳送器除了邏輯 0 和邏輯 1 外,還需要第三種狀態,叫做「不傳送」。它既不是 0 也不是 1,就是一個不去干預網路、隨波逐流的狀態,你也可以將它想像成「這個傳送器沒有接在網路上,彷彿不存在」。在這種「不傳送」的狀態下,對網路上的其它裝置而言,這個傳送器有一個很高的輸出阻抗,我們把這個狀態稱為「high impedance」,或是「Hi-Z」(電路學中常用大寫字母 Z 來代表阻抗)。

爲了要控制這種「不傳送」的狀態,RS-485 的傳送器除了連接 UART 的 TX外,還多了一個 enable 訊號,以用來控制傳送器的工作。當 enable 訊號讓傳送器工作時,傳送器會忠實地反應來自 UART 的邏輯訊號, 1 就是 1,0 就是 0,而當傳送器在工作狀態時,理論上網路上不應該有其它裝置同時也處於傳送狀態,否則網路上的訊號就會打架;如果 enable 訊號讓傳送器處於不工作狀態,對於網路上的其它裝置來說,這個傳送器就好似人間蒸發,不存在這個網路上,因此不管 UART 送來的是 0 或 1,都不會有訊號跑到 RS-485 的網路上。

這種有 enable/disable 能力的收發器,我們稱之爲「三態」收發器,或是 tri-state transciever,因爲它在 0 與 1 之外,還有一個 Hi-Z 的狀態。

RS-485 收發器實戰

接著我們來說說 SN75176A 這顆 RS-485 收發器 IC。SN75176A 是 TI 在 1984 年推出的 RS-485 收發器 IC,歷史悠久,屹立不搖。

SN75176 只有八支接腳,比我們上回介紹的 RS-232 收發器 MAX232 還簡單。根據 RS-485 的規範,傳送側的驅動電壓最小只需要 2 V,因此 5 V 供電的 SN75176A 可以直接產生足夠的驅動電壓,不需要額外的 charge pump 輔助,若扣掉兩支電源接腳,SN75176A 的接腳功能如下:

本文為會員限定文章

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

                               

已經是會員? 按此登入

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

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

會員福利
1

免費電子報

2

會員搶先看

3

主題訂閱

4

好文收藏

Liang Bird

Author: Liang Bird

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

Share This Post On

7 Comments

  1. 您好請問最後討論的電源旁邊的10uf電容,為何旁邊還要再一個0.1uf的小電容呢?是濾波嗎?如果是的話那為什麼不再把10uf電容換成更大的電容就好呢?

    Post a Reply
    • 我也很好奇這個問題的答案
      還希望作者能為我們釋疑
      感謝

      Post a Reply
      • Liang Bird

        因爲現實生活中的電容器並不是理想的電容器,它們並不像電子學教科書上的電容器一樣只具有電容器的特性。現實生活中的電容器還具有寄生電感、ESR 等額外的特性,而這些特性會影響電容在濾波時對不同頻率訊號的導通特性。雖然電容的容抗是 1/2pifc,但在現實生活中因爲寄生電感的關係,電容的容抗並不會隨著頻率上去而一直下降,在某個頻率以上寄生電感會開始主宰電容器的阻抗,而讓阻抗開始上升,這時電容就失去濾波的功能了。因此我們會並聯不同容值的電容器,讓濾波的頻寬可以比較寬。

        Post a Reply
  2. 你好
    請問文中的一個段落如下:

    當我們要用 UART 界面來控制 RS-485 時,會遭遇一個問題。先前說過,UART 是個「idle high」的界面,也就是說當我們沒在使用它時,它會維持在 high 的狀態,或是邏輯 0 。

    最後一句是否應該為
    “它會維持在 high 的狀態,或是邏輯 1 。”
    而本段落後續的0是否也應該為1?

    Post a Reply
  3. 你好
    我想確認一下,文中的一個段落如下:

    “D 是傳送用的資料接腳,通常連接到 UART 的 TX;R 是接收器出來的資料接腳,通常連接到 UART 的 TX。” 這段文中的最後有畫底線的地方,是否應該是 “通常連接到 UART 的 RX”

    Post a Reply

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。