跳转到内容

串行编程/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(接收器)集成电路。然而,十多年来,在业余电子领域,使用 MAX232 系列的集成电路(通常是 MAX232A 或其克隆)进行必要的信号电平转换已经成为标准做法。事实上,很难在业余电子领域找到没有 MAX232A 或其克隆的 RS-232 电路。

我们将在本书的后面部分更详细地讨论 信号位

MAX232 和 MAX232A

[编辑 | 编辑源代码]
来自 Maxim 的 MAX232 集成电路

MAX232 是 Maxim 推出的第一个集成电路,它在一个封装中包含了必要的驱动器(两个)和接收器(也是两个),用于将 RS-232 信号电平适配到 TTL 逻辑。它之所以流行,是因为它只需要一个电压 (+5 V),并在内部产生必要的 RS-232 电压电平(约 -10 V 和 +10 V)。这极大地简化了电路设计。电路设计师不再需要设计和制造具有三个电压(例如 -12 V、+5 V 和 +12 V)的电源,而只需提供一个 +5 V 电源,例如通过使用简单的 78x05 电压调节器。

MAX232 有一个继任者,MAX232A。这两个集成电路几乎完全相同,然而,MAX232A 比原始的 MAX232 使用得更广泛(也更容易获得),并且 MAX232A 只需要外部电容是原始 MAX232 所需电容的十分之一。

应该注意的是,MAX232(A) 只是一个驱动器/接收器。它不会生成具有正确时序的必要的 RS-232 标记和空格序列,它不会解码 RS-232 信号,它不会提供串行/并行转换。它只做信号电平转换。生成具有正确时序的串行数据和解码串行数据必须由额外的电路完成,例如由 16550 UART 或越来越流行的小型微控制器(例如 Atmel AVRMicrochip PIC)完成。

MAX232 和 MAX232A 曾经是相当昂贵的集成电路,但今天已经很便宜了。许多公司现在生产克隆产品(例如 Sipex)也起到了一定的作用。这些克隆有时需要不同的外部电路,例如外部电容的容量会有所不同。建议查看特定制造商的集成电路数据手册,而不是依赖 Maxim 的原始数据手册。

原始制造商(以及现在一些克隆制造商)提供了一系列类似的集成电路,它们具有不同的接收器和驱动器数量、电压、内置或外部电容等。例如,MAX232 和 MAX232A 需要外部电容用于内部电压倍增器,而 MAX233 则内置了这些电容。MAX233 在电子商店中的价格也比 MAX232A 高出三到十倍,因为它的内部电容。MAX233 也比常见的 MAX232A 更难获得。

如今,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),而无需经过任何电路。这将自动(无脑)DSR 确认传入的 DTR 信号。

有时,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

替代方案

[edit | edit source]

数据线缆

[edit | edit source]

随着移动电话的兴起,用于这些手机的所谓的数据线也变得流行起来。这些是将手机连接到计算机串行接口的线缆[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 接口供电。在这种情况下,仍然需要外部电源来代替手机的电源。


(滥)用 USB <-> RS-232 转换器

[edit | edit source]

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

MAX232N

[edit | edit source]

德州仪器 MAX232(不是 A) 的第二来源。N 表示封装(塑料 DIP),而不是任何特殊的电气特性。这是一个非 A MAX232,因此它需要至少 1µF 电容器。有时可以找到它非常便宜。TI 还提供 MAX3232 和一些其他 RS-232 发送器/接收器,例如 MC148x。

线性技术 LT1181A

[edit | edit source]

来自线性技术的 LT1181A 与 MAX232A 非常相似。它具有完全相同的引脚布局,也使用 0.1µF 电容器,通常可以替代 MAX232A。然而,对于业余爱好者来说,通常更难获得这种 IC,而且它们往往比原装 Maxim MAX232A 贵一些。

Intersil HIN202

[edit | edit source]

Intersil HIN202 是另一个与 MAX232A 非常相似的 IC。它也具有相同的引脚布局(DIL 封装),使用 0.1 µF 电容器,可以替代 MAX232A。HIN202 尤其适合需要更多 I/O 线(四对)的情况,因为制造商规定两个 HIN202 可以共享一个 V+ 和一个 V- 电容器。因此,生成的电路可以节省两个电容器。

MC1488 和 MC1489

[edit | edit source]

MC1488/MC1489 IC 已经提到过。然而,它们现在并不是 MAX232 的真正替代品。这些 IC 的组合具有两倍的发送器/接收器,但 MC1488 发送器需要 +12 V、-12 V 电源,而 MC1489 接收器需要 +5 V 电源。这意味着需要三个电源,而 MAX232 只需要一个。除非电路中已经存在所需的 ±12 V 电源线,否则建议使用两个 MAX232 或一个 MAX238。

[edit | edit source]
华夏公益教科书