序列程式設計/MAX232 驅動接收器
序列程式設計: 簡介和 OSI 網路模型 -- RS-232 接線和連線 -- 典型 RS232 硬體配置 -- 8250 UART -- DOS -- MAX232 驅動/接收器系列 -- Windows 中的 TAPI 通訊 -- Linux 和 Unix -- Java -- Hayes 相容調變解調器和 AT 命令 -- 通用序列匯流排 (USB) -- 形成資料包 -- 錯誤校正方法 -- 雙向通訊 -- 資料包恢復方法 -- 序列資料網路 -- 實際應用開發 -- IP over 序列連線

本模組主要針對那些構建具有 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 介面接收序列資料,必須降低電壓,並反轉0 和1 電壓電平。在另一個方向(從某種邏輯傳送資料到 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 電路。
我們將在本書後面詳細討論訊號位。

來自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 AVR、Microchip PIC)。
MAX232 和 MAX232A 曾經是相當昂貴的 IC,但現在它們很便宜。許多公司現在生產克隆(例如 Sipex)也起到了幫助作用。這些克隆有時需要不同的外部電路,例如,外部電容的容量會有所不同。建議檢視特定製造商的 IC 資料手冊,而不是依賴 Maxim 的原始資料手冊。
原始製造商(現在也有一些克隆製造商)提供了一系列類似的 IC,具有不同的接收器和驅動器數量、電壓、內建或外部電容等等。例如,MAX232 和 MAX232A 需要外部電容才能實現內部電壓倍增器,而 MAX233 則內建了這些電容。MAX233 在電子商店的售價也比 MAX232A 高出三到十倍,因為其內部電容。MAX233 也比常見的 MAX232A 更難獲得。
現在可以使用類似的 IC MAX3232 來實現低功耗 3 V 邏輯。
- 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(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 引腳編號 | 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 電容器型別。如果使用電解或鉭電容,則必須注意極性。下表中列出的第一個引腳始終是電容正極應連線到的位置。
| 電容 | + 引腳 | - 引腳 | 備註 |
| 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)。
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 與 MAX232A 非常相似。它具有完全相同的引腳佈局,也使用 0.1µF 電容,並且通常可以替代 MAX232A。但是,對於愛好者來說,通常有點難以獲得,並且它們往往比原始的 Maxim MAX232A 貴一些。
Intersil HIN202 是另一個與 MAX232A 非常相似的 IC。它也具有相同的引腳佈局(DIL 封裝),使用 0.1 µF 電容,可以替代 MAX232A。當需要更多 I/O 線(四對)時,HIN202 尤其有趣,因為製造商規定兩個 HIN202 可以共享一個 V+ 和一個 V- 電容。因此,最終電路節省了兩個電容。
已經提到了 MC1488/MC1489 IC。但是,它們如今並不是 MAX232 的真正替代品。這些 IC 的組合具有兩倍的驅動器/接收器,但 MC1488 驅動器需要 +12 V,-12 V 電源,而 MC1489 接收器需要 +5 V 電源。這樣就變成了三個電源,而不是 MAX232 的一個電源。除非電路中已經存在所需的 ±12 V 電源線,否則建議使用兩個 MAX232 或一個 MAX238。
- MAX232 (MAX220 至 MAX249) 產品頁面 - Maxim - (5 伏)
- MAX3232 (MAX3222 至 MAX3241) 產品頁面 - Maxim - (3.3 或 5 伏)
- MAX3232E (MAX3222E 至 MAX3246E) 產品頁面 - Maxim - (3.3 或 5 伏)
- MC1488 產品頁面 - 德州儀器 - (+12 和 -12 伏)
- MC1489 產品頁面 - 德州儀器 - (5 伏)
- MAX232:構建、操作、型別和應用
序列程式設計: 簡介和 OSI 網路模型 -- RS-232 接線和連線 -- 典型 RS232 硬體配置 -- 8250 UART -- DOS -- MAX232 驅動/接收器系列 -- Windows 中的 TAPI 通訊 -- Linux 和 Unix -- Java -- Hayes 相容調變解調器和 AT 命令 -- 通用序列匯流排 (USB) -- 形成資料包 -- 錯誤校正方法 -- 雙向通訊 -- 資料包恢復方法 -- 序列資料網路 -- 實際應用開發 -- IP over 序列連線