跳轉到內容

序列程式設計/MAX232 驅動接收器

來自華夏公益教科書
MAX232 雙發射器/雙接收器 RS-232 晶片,封裝為 DIP-16

適用性

[編輯 | 編輯原始碼]

本模組主要針對那些構建具有 RS-232 介面的電子裝置的人。現成的帶有 RS-232 介面的計算機已經包含了必要的電子裝置,因此無需新增此處所述的電路。

邏輯訊號電壓

[編輯 | 編輯原始碼]

序列 RS-232 (V.24) 通訊使用電壓(-15 V ... -3 V 用於傳輸二進位制 '1',+3 V ... +15 V 用於傳輸二進位制 '0'),這些電壓與當今的計算機邏輯電壓不相容。另一方面,經典 TTL 計算機邏輯工作在 0 V ... +5 V 之間(大約 0 V ... +0.8 V 被稱為二進位制 '0' 的電平,+2 V ... +5 V 被稱為二進位制 '1' 的電平)。現代低功耗邏輯工作在 0 V ... +3.3 V 或更低的範圍內。

因此,最大 RS-232 訊號電平對於當今的計算機邏輯電子裝置來說太高,而計算機邏輯無法產生負 RS-232 電壓。因此,為了從 RS-232 介面接收序列資料,必須降低電壓,並反轉01 電壓電平。在另一個方向(從某種邏輯傳送資料到 RS-232),必須將低邏輯電壓“提高”,並且也必須產生負電壓。

     RS-232              TTL             Logic
-----------------------------------------------
 -15 V ...  -3 V  <->  +2 V ... +5 V    <->  1   (idle state)
  +3 V ... +15 V  <->   0 V ... +0.8 V  <->  0   (start bit)

所有這些都可以透過傳統的類比電子裝置完成,例如特定的電源和一對電晶體,或者曾經流行的 MC1488(發射器)和 MC1489(接收器)IC。但是,十多年來,在業餘電子領域,使用 MAX232 系列(通常是 MAX232A 或某些克隆)中的積體電路 (IC) 來完成必要的訊號電平轉換已成為標準做法。事實上,在業餘電子領域,很難找到沒有 MAX232A 或某些克隆的 RS-232 電路。

我們將在本書後面詳細討論訊號位

MAX232 和 MAX232A

[編輯 | 編輯原始碼]
MAX232 積體電路

來自Maxim 的 MAX232 是第一個在單個封裝中包含必要的驅動器 (兩個) 和接收器 (也是兩個) 的 IC,用於將 RS-232 訊號電平轉換為 TTL 邏輯。它之所以流行,是因為它只需要一個電壓 (+5 V) 並在內部生成必要的 RS-232 電壓電平(大約 -10 V 和 +10 V)。這大大簡化了電路設計。電路設計師不再需要設計和構建具有三種電壓(例如 -12 V、+5 V 和 +12 V)的電源,而是可以使用一個 +5 V 電源,例如,藉助簡單的 78x05 電壓調節器。

MAX232 有一個繼任者,即 MAX232A。這兩個 IC 幾乎完全相同,但是 MAX232A 比原始的 MAX232 更常使用(也更容易獲得),並且 MAX232A 只需要原始 MAX232 所需外部電容的 1/10。

需要注意的是,MAX232(A) 只是一種驅動器/接收器。它不會生成具有正確時序的必要的 RS-232 標記和空格序列,它不會解碼 RS-232 訊號,它不會提供序列/並行轉換。它所做的只是轉換訊號電平。生成具有正確時序的序列資料和解碼序列資料必須透過額外的電路完成,例如,透過16550 UART 或越來越流行的這些小型微控制器(例如 Atmel AVRMicrochip PIC)。

MAX232 和 MAX232A 曾經是相當昂貴的 IC,但現在它們很便宜。許多公司現在生產克隆(例如 Sipex)也起到了幫助作用。這些克隆有時需要不同的外部電路,例如,外部電容的容量會有所不同。建議檢視特定製造商的 IC 資料手冊,而不是依賴 Maxim 的原始資料手冊。

原始製造商(現在也有一些克隆製造商)提供了一系列類似的 IC,具有不同的接收器和驅動器數量、電壓、內建或外部電容等等。例如,MAX232 和 MAX232A 需要外部電容才能實現內部電壓倍增器,而 MAX233 則內建了這些電容。MAX233 在電子商店的售價也比 MAX232A 高出三到十倍,因為其內部電容。MAX233 也比常見的 MAX232A 更難獲得。

現在可以使用類似的 IC MAX3232 來實現低功耗 3 V 邏輯。

MAX232(A) DIP 封裝


MAX232(A) DIP 封裝引腳佈局
編號 名稱 用途 訊號電壓 MAX232 電容值 MAX232A 電容值
1 C1+ 電容 C1 的正極聯結器 電容應至少耐受 16 V 1 µF 100 nF
2 V+ 電壓倍增器的輸出 +10 V,電容應至少耐受 16 V 1 µF 到 VCC 100 nF 到 VCC
3 C1- 電容 C1 的負極聯結器 電容應至少耐受 16 V 1 µF 100 nF
4 C2+ 電容 C2 的正極聯結器 電容應至少耐受 16 V 1 µF 100 nF
5 C2- 電容 C2 的負極聯結器 電容應至少耐受 16 V 1 µF 100 nF
6 V- 電壓倍增器/反相器的輸出 -10 V,電容應至少耐受 16 V 1 µF 到 GND 100 nF 到 GND
7 T2out 驅動器 2 輸出 RS-232
8 R2in 接收器 2 輸入 RS-232
9 R2out 接收器 2 輸出 TTL
10 T2in 驅動器 2 輸入 TTL
11 T1in 驅動器 1 輸入 TTL
12 R1out 接收器 1 輸出 TTL
13 R1in 接收器 1 輸入 RS-232
14 T1out 驅動器 1 輸出 RS-232
15 GND 接地 0 V 1 µF 到 VCC 100 nF 到 VCC
16 VCC 電源 +5 V 見上文 見上文

V+(2) 也透過電容 (C3) 連線到 VCC。V-(6) 透過電容 (C4) 連線到 GND。GND(15) 和 VCC(16) 也透過電容 (C5) 連線,儘可能靠近引腳。

典型應用

[編輯 | 編輯原始碼]
使用 MAX232 的 RS-232 到 TTL 轉換器

MAX232(A) 具有兩個接收器(將 RS-232 轉換為 TTL 電壓電平)和兩個驅動器(將 TTL 邏輯轉換為 RS-232 電壓電平)。這意味著每個方向只能轉換兩個 RS-232 訊號。舊的 MC1488/1489 組合提供四個驅動器和接收器。

通常,MAX232 的一對驅動器/接收器用於

  • TX 和 RX

第二個用於

  • CTS 和 RTS。

MAX232 中沒有足夠的驅動器/接收器來連線 DTR、DSR 和 DCD 訊號。通常,在與 PC 的序列介面通訊時,可以省略這些訊號。如果 DTE 真需要這些訊號,則需要第二個 MAX232,或者可以使用 MAX232 系列中的其他 IC(如果可以在消費電子商店找到的話)。下面還給出了 DTR/DSR 的另一種方案。

Maxim 的資料表詳細介紹了 MAX232 系列,包括引腳配置以及如何將此類 IC 連線到外部電路。此資訊可直接用於自己的設計,以獲得工作的 RS-232 介面。Maxim 的資料僅缺少一條關鍵資訊:如何將 RS-232 訊號準確地連線到 IC。因此,這裡有一個可能的示例

MAX232 到 RS232 DE9 連線作為 DCE
MAX232 引腳編號 MAX232 引腳名稱 訊號 電壓 DE9 引腳
7 T2out RTS RS-232 8
8 R2in CTS RS-232 7
9 R2out CTS TTL n/a
10 T2in RTS TTL n/a
11 T1in TX TTL n/a
12 R1out RX TTL n/a
13 R1in TX RS-232 3
14 T1out RX RS-232 2
15 GND GND 0 5

此外,可以直接將 DTR(DE9 引腳 4)連線到 DSR(DE9 引腳 6),而無需經過任何電路。這提供了對傳入 DTR 訊號的自動(無腦)DSR 確認。

有時,MAX232 的引腳 6 硬連線到 DCD(DE9 引腳 1)。不建議這樣做。引腳 6 是 -10 V 電壓的電壓泵和反相器的原始輸出。從引腳汲取電流會導致電壓迅速擊穿,進而導致兩個 RS-232 驅動器的輸出電壓擊穿。最好使用不關心 DCD 的軟體,但僅透過 CTS/RTS 進行硬體握手。

電路透過將五個電容連線到 IC 來完成。MAX232 需要 1.0 µF 電容,MAX232A 需要 0.1 µF 電容。MAX232 克隆顯示出類似的差異。建議諮詢相應的資料表。應使用至少 16 V 電容器型別。如果使用電解或鉭電容,則必須注意極性。下表中列出的第一個引腳始終是電容正極應連線到的位置。

MAX232(A) 外部電容
電容 + 引腳 - 引腳 備註
C1 1 3
C2 4 5
C3 2 16
C4 GND 6 這看起來不直觀,但由於引腳 6
在 -10 V 上,GND 獲取 + 聯結器,而不是 -
C5 16 GND

5 V 電源連線到

  • +5 V:引腳 16
  • GND:引腳 15

替代方案

[編輯 | 編輯原始碼]

資料線

[編輯 | 編輯原始碼]

隨著行動電話的興起,用於這些電話的所謂資料線也變得流行起來。這些是連線行動電話到計算機序列介面的電纜[1]。有趣的是,現代行動電話在其資料匯流排上使用 3.3 V 邏輯,而舊的手機使用 5 V 邏輯。因此,這些資料線必須並將手機邏輯電壓電平轉換為 RS232 電壓電平,反之亦然。

無名資料線已經變得相當便宜(與原始手機品牌資料線相反)。具有電壓轉換器的廉價電纜可以用作自制 MAX232 基於電路的替代方案。優點是電纜佔用空間更少(轉換器通常位於 RS232 插頭內)。此類電纜還可以節省焊接電路板的麻煩。另一個優點(也可以是此類資料線的缺點)是它們通常從 RS232 聯結器獲取電源。這節省了外部電源,但也會造成問題,因為 RS232 介面並非設計用於為某些邏輯供電,並且 DTE 可能無法提供足夠的電源[2]。另一個缺點是,許多此類電纜只支援 RX 和 TX(一個接收器,一個驅動器),而不是像 MAX232 那樣具有兩個驅動器/接收器。因此,不可能進行硬體握手。最後,使用此類電纜時,應確保它們轉換為所需的電壓(3.3 V 或 5 V)。


  1. ^ 還有用於USB 埠的資料線,但這裡不感興趣。
  2. ^ 有些資料線由手機供電,而不是透過 RS232 介面供電。在這種情況下,仍然需要外部電源來代替手機的電源。


(Ab)使用 USB <-> RS-232 轉換器

[編輯 | 編輯原始碼]

USB 到序列介面電纜通常有兩個元件:一個輸出序列資料的 USB 收發器;以及一個電壓轉換器,用於產生符合標準的 RS-232 電壓。通常可以丟棄(忽略、拆焊、切除)這些電纜的 USB 部分,連線外部 5 V 電源(或濫用 RS-232 介面)來代替來自 USB 匯流排的電源,僅使用 RS-232 電平轉換器。所有這些可能與使用 MAX232A 一樣麻煩,儘管您免費獲得一個 RS-232 聯結器。

如果您考慮使用 USB 電纜,也值得考慮直接使用 USB,而不是 RS-232。許多 USB 收發器晶片可以直接整合到電路中,從而消除了對電壓轉換元件的需求。諸如FTDI FT232BM 之類的部件甚至具有一個輸入,允許設計人員選擇 5 V 或 3.3 V 輸出電平。大多數這些 USB 收發器晶片僅作為表面貼裝元件提供。但有些供應商提供 DIP 尺寸的預組裝模組,價格通常具有競爭力,並且通常提供免費或廉價的驅動程式或驅動程式開發環境。

有關 USB 硬體、與 USB 裝置的介面和 USB 裝置程式設計的更多資訊,請參見Serial Programming:Universal Serial Bus

德州儀器 MAX232(不是 A) 的第二來源。N 指示封裝(塑膠雙列直插式),而不是任何特殊的電氣特性。這是一個非 A MAX232,因此它需要至少 1µF 電容。有時可以發現它相當便宜。TI 還提供 MAX3232 和許多其他 RS-232 驅動器/接收器,如 MC148x。

Linear Technology LT1181A

[編輯 | 編輯原始碼]

來自 Linear Technology 的 LT1181A 與 MAX232A 非常相似。它具有完全相同的引腳佈局,也使用 0.1µF 電容,並且通常可以替代 MAX232A。但是,對於愛好者來說,通常有點難以獲得,並且它們往往比原始的 Maxim MAX232A 貴一些。

Intersil HIN202

[編輯 | 編輯原始碼]

Intersil HIN202 是另一個與 MAX232A 非常相似的 IC。它也具有相同的引腳佈局(DIL 封裝),使用 0.1 µF 電容,可以替代 MAX232A。當需要更多 I/O 線(四對)時,HIN202 尤其有趣,因為製造商規定兩個 HIN202 可以共享一個 V+ 和一個 V- 電容。因此,最終電路節省了兩個電容。

MC1488 和 MC1489

[編輯 | 編輯原始碼]

已經提到了 MC1488/MC1489 IC。但是,它們如今並不是 MAX232 的真正替代品。這些 IC 的組合具有兩倍的驅動器/接收器,但 MC1488 驅動器需要 +12 V,-12 V 電源,而 MC1489 接收器需要 +5 V 電源。這樣就變成了三個電源,而不是 MAX232 的一個電源。除非電路中已經存在所需的 ±12 V 電源線,否則建議使用兩個 MAX232 或一個 MAX238。

[編輯 | 編輯原始碼]
華夏公益教科書