AUX物理层连接:RS-232标准、引脚定义、线缆制作与测试方法
说起AUX口的物理层,绕不开RS-232。这是上古时代的串行通信标准,但直到今天,网络设备的Console口、AUX口依然用它。我刚开始接触时也觉得奇怪——这东西都50多岁了,怎么还在用?
说白了,RS-232简单、可靠,而且对芯片的要求低。你只要知道三根线(TX、RX、GND),就能让两台设备聊起来。但正因为简单,坑也特别多。我曾经在机房蹲了一下午,就为了查一根AUX线为什么不通,最后发现是引脚定义弄反了。
RS-232标准概述
RS-232标准最早是1962年出的,后来几次修订。它规定了什么?
- 电气特性:用负逻辑。逻辑1(Mark)对应-3V ~ -15V,逻辑0(Space)对应+3V ~ +15V。-3V到+3V是过渡区,不做判定。
- 接口机械特性:常见的连接器是DB9(9针)和DB25(25针)。AUX口和Console口多用DB9公头(DTE侧)。
- 功能引脚:除了数据线,还有一堆握手信号线。实际上很多场景只用TX、RX、GND三根就能跑,但AUX口拨号时通常会用到RTS/CTS、DTR/DSR。
个人经验:我测试AUX链路时,如果只做命令行配置,三线制就够了。但如果你要通过Modem拨号,必须把握手线接全——否则Modem死活不拨号,你别问我怎么知道的。
DB9引脚定义(以DTE侧为准)
AUX口大多数是DB9公头,但也有RJ45转DB9的线缆。记住这张表,后面做线缆时会反复用到:
| 引脚号(DB9) | 信号名 | 方向(DTE) | 说明 |
|---|---|---|---|
| 1 | DCD | 输入 | 载波检测,Modem告诉DTE:线路通了 |
| 2 | RXD | 输入 | 接收数据(DTE从对方收数据) |
| 3 | TXD | 输出 | 发送数据(DTE向对方发数据) |
| 4 | DTR | 输出 | 数据终端就绪,DTE告诉Modem:我准备好了 |
| 5 | GND | — | 信号地,公共参考点 |
| 6 | DSR | 输入 | 数据设备就绪,Modem告诉DTE:我也准备好了 |
| 7 | RTS | 输出 | 请求发送,DTE说:我要发数据了,你准备好没? |
| 8 | CTS | 输入 | 允许发送,Modem说:来吧,我准备好了 |
| 9 | RI | 输入 | 振铃指示,Modem告诉DTE:有电话进来 |
注意:上面说的是DTE(比如路由器、计算机)的引脚定义。如果对面是DCE(比如Modem),那么TXD和RXD会互换——因为DCE的TXD是输出,但DTE的RXD是输入。这个互换关系是很多线缆错误的根源。
线缆制作:DTE vs DCE与交叉/直通
AUX口通常是DTE角色。如果你要连一个DCE设备(比如外置Modem),需要一根直通线——DTE的TXD(pin3)连DCE的TXD?不对,实际上应该是:
- 直通线(DTE → DCE):DTE的TXD(pin3)连DCE的RXD(pin2);DTE的RXD(pin2)连DCE的TXD(pin3)。换句话说,物理连接就是交叉的——因为两边定义相反。市面上所谓的“直通串口线”,其实内部已经做了一次交叉。
- 交叉线(DTE → DTE):比如两台路由器AUX口直连,两边都是DTE,那么线缆必须再交叉一次:pin3连对面pin2,pin2连对面pin3。这种线叫“空调制解调器”(Null Modem)线。
我曾犯过的错:有一回,我用一根普通的DB9延长线去连路由器的AUX口和PC的COM口,怎么调都不通。最后用万用表一量,发现延长线是1:1直连(pin接pin)。但两台DTE之间必须用交叉线——所以买了根空调制解调器线,问题秒解。
自己做线时,常用的DB9接头焊接方案:
DTE侧(公头)焊接:
引脚2 → RXD(蓝色)
引脚3 → TXD(绿色)
引脚5 → GND(黑色)
其他引脚按需连接,通常可以不焊,除非用握手。
我建议手边常备一根空调制解调器线,以及一根“两头都是母头”的转接线,这样可以应对大多数AUX调试场景。
测试方法
做好线缆或者接到设备后,你怎么验证物理层通不通?别急着开终端软件,先做这几步:
- 万用表测电压:在空闲状态下,TXD引脚应该输出-8V到-12V(逻辑1),RXD引脚也是-8V左右。如果测到0V,线没通或者芯片没供电。
- 测GND通断:用蜂鸣档量两端的5号引脚,通阻<1Ω才算正常。
- 环路测试:如果你有串口调试工具(比如sscom或SecureCRT的串口会话),把本地TXD和RXD短接(pin3和pin2),然后发一串数据,看能不能自己收到。如果不能,说明COM口芯片或者驱动有问题。
- 握手信号检查:如果涉及Modem,测DTR(pin4)是否有+8V左右输出,CTS(pin8)是否有高电平。我以前用一根半成品的AUX线,就是CTS没接,导致Modem一直不响应AT命令——折腾了俩小时。
注意:RS-232的电压是±3V到±15V,别用普通TTL电平的USB转串口直接怼AUX口,会烧芯片。必须用带电平转换的专用线(比如Cisco的DB9转RJ45)。
一张图理解AUX物理层连接
下面这张SVG图把DTE和DCE的引脚对应关系画清楚了——红线表示数据线,蓝线是控制线,黑线是地:
从图中能看得很清楚:数据线和所有握手信号在DTE和DCE之间都是交叉连接的。实际做线时,只要记住“收对发、发对收、地连地、控制线交叉”这四句口诀,基本不会出错。
常见故障与避坑
- 现象:终端无回显,或收到乱码 → 先查波特率、数据位、停止位是否一致(通常是9600-8-1-n)。如果配置没问题,大概率是TXD/RXD接反了——对调这两根线再试。
- 现象:Modem没反应,AT指令发出无响应 → 用万用表测DTR是否有+8V以上,CTS是否也有高电平。我调试一个PSTN备份方案时,发现中间跳线把CTS悬空了,Modem一直认为“对方没准备好”所以不理我。
- 现象:能发数据但收不到,或者能收到但发不出 → 检查线缆是直通还是交叉。两台DTE之间必须用空调制解调器线(交叉线)。
- 现象:接上没反应,万用表量电压为0 → 检查AUX口是否被锁定(某些设备需要先进入配置模式),或者硬件故障。我碰到过猫板卡AUX口的RS-232芯片烧了,换板才解决。
小建议:手边常备一个DB9公母转换头、一根空调制解调器线、一根三线制直通线。这样无论对面是DTE还是DCE,你都能快速拼出正确的连接。我在出差包里就固定放着这三样东西,救过好几次急。