一颗芯片开出三个独立串口,还顺手把硬件流控信号都接齐——这就是 3 发 5 收型 RS-232 收发器的价值。在 BMC 主板上,它通常干的是"最不起眼但最离不开"的活:主机 Console、板内调试口、外接电源模块或仪表的维护口,三根 DB9 一摆,现场工程师就有了三条能直接敲命令的通道。
这类器件的典型代表是 TI 的 TRS3243E 和增强型 TRS3253E:单电源 3.0 V 到 5.5 V,片上双电荷泵把 3.3 V 凭空变出 ±10 V 左右的 RS-232 电平,完全不用外接 ±12 V 电源。老方案里还有 Dallas/Maxim 体系的 DS229(3 发 3 收),新设计基本可以直接跳过它。
一、先搞清楚它在电平上做了什么
RS-232 和 MCU 的 UART 根本不是一个世界:
• RS-232 逻辑 1(MARK)是 −3 V 到 −15 V,逻辑 0(SPACE)是 +3 V 到 +15 V,反相、双极性、幅度大。
• MCU 的 TX/RX 是 3.3 V CMOS:高就是 3.3 V,低就是 0 V,单极性。
收发器两端各干一件事:
驱动器(Driver)把 MCU 的 CMOS 电平翻成 ±RS-232 电平送出去。你写个 0x55 从 TX 引脚出来,线上就是一串正负摆幅的脉冲,对面 PC 的 DB9 才能认。
接收器(Receiver)把线上 ±10 V 左右的摆幅限幅、反相、整形回 3.3 V CMOS,喂给 MCU 的 RX。哪怕线上被拉到 −9 V,芯片内部也会规规矩矩给你一个干净的高电平。
这个"凭单电源造出负压"的魔法,靠的就是片上双电荷泵加四颗外接陶瓷电容。也是整个器件最怕你布线乱来的地方,后面专门讲。
二、TRS3243E 的规格,为什么它适合 BMC
3 发 5 收是这颗料最妙的地方。三个驱动器意味着三路独立、可全双工的串口;五个接收器则正好把 DB9 的"完整信号组"吃干净:
• 发送侧三根:TXD、RTS、DTR
• 接收侧五根:RXD、CTS、DSR、DCD、RI
也就是说,一个标准 DB9 全信号串口(含硬件流控和 Modem 状态)只要一片就齐了,不用再外挂门电路或第二颗收发器。做三路这样的口,或者一路完整口加两路简化口,都在这颗芯片里。
其余关键口径:
• 供电 3.0 V 到 5.5 V,3.3 V 待机轨直接喂,和 BMC 的 IO 域、前面那颗 AVR、DS21354 的 IO 电平完全同域。
• 最高 250 kbps。看着不高,但 BMC 的 Console 跑 9600、115200 甚至 230400 都余量巨大;它本来就不是为高速数据流准备的。
• ESD 很硬:RS-232 引脚 ±15 kV HBM,IEC 61000-4-2 接触放电 ±8 kV 级别。DB9 是机箱开孔、人手天天插拔的地方,这个指标能让你少画一颗 TVS。
• 电荷泵只要四颗 0.1 µF 陶瓷电容,不用电感、不用外置负压电源。
• 自动断电(Auto-Powerdown):检测到 RS-232 线上长时间没有有效电平跳变(线缆拔掉、对端关机),芯片自动关掉驱动器,静态电流掉到 1 µA 量级;线上一来信号又自己醒来。BMC 待机时这点很值钱。
• FORCEON / FORCEOFF 引脚让你覆盖自动逻辑:要串口永不睡(比如当 Console 启动早期就要抓 log),把 FORCEOFF 拉低、FORCEON 拉高强制常开;想彻底断电就反过来。
• ROUT2B 是个贴心设计:这条接收通道在掉电状态下依然保持有效,RI(振铃指示)哪怕芯片睡着也能穿透出来。接 Modem 或远程告警振铃时,MCU 可以被 RI 唤醒而不用一直烧电。
• 封装有 SOIC、TSSOP、QFN,BMC 那种密器件主板挑 QFN 省地,维修台量产板挑 SOIC 好焊。
三、TRS3253E:给 1.8 V 世界准备的增强版
TRS3253E 在同样 3 发 5 收的骨架上加了两个东西:
一是 VL 独立逻辑电平引脚。VCC 照旧给 3.3 V 或 5 V 供电荷泵和驱动侧,VL 单独接 1.8 V,所有 CMOS 输入输出的阈值跟着 VL 走。于是 MCU 是 1.8 V 内核的新一代 BMC SoC,也不用外置电平转换。
二是速率提到 1 Mbps,吞吐翻了好几档,跑高速串口外设、固件下载通道都够用。
代价是电源域多一路要考虑,去耦要分开照顾。如果你的主控还是 3.3 V 通用 UART,TRS3243E 就够了,没必要为 VL 多折腾。
四、核心技术亮点,逐条说透
单芯片替代三颗双路料。 传统做法是三颗 MAX3232 类双发双收,占板面积、电荷泵电容乘三、BOM 行数三倍。一颗 TRS3243E 把三路收发加流控一起收掉,PCB 上少三个 IC 位号,故障点也少三份。
自动低功耗对齐 BMC 待机模型。 整机关机只剩 Standby 3.3 V 时,串口驱动全睡,只有 ROUT2B 一类通路还睁着眼。配合前面那颗 AVR 在 Power-Down 模式里守着,整个监控子系统待机电流可以压得很低,拔掉调试线更是零损耗。
内置 ESD 把接口防护简化。 注意是"简化"不是"取消"。芯片级 ESD 能扛人手插拔的静电,但机柜间长线、感性耦合的浪涌它不承担。DB9 对外那几根线,TVS 阵列该放还是放一颗,至少给个低成本多路 TVS,地回路要能泄放。
硬件流控不用加料。 CTS/RTS 这套握手,很多单发单收或小封装料给不全,结果固件里只能靠 XON/XOFF 软件流控,一卡顿就丢字符。五收三发把 CTS、DSR、DCD、RI 都接齐,RTS/DTR 也能控,对接老式设备、Modem、BootROM 下载器时少踩无数坑。
CMOS 输入兼容干净。 输入阈值直接对 3.3 V LVTTL,不用串电阻分压;TRS3253E 的 VL 把这件事推进到 1.8 V。输出驱动能力也足够直连 MCU 的 UART 脚,中间不需要缓冲。
五、在 AI 边缘存储 BMC 里的落点
第一用途永远是多路 Console / 调试串口。 一路接服务器主处理器的串口控制台,断电、启动早期、内核 panic 都能抓到;一路留作板内调试口,接 USB 转串口线现场看 BMC 自己的 shell;第三路对外,接电源模块、风扇墙控制器、或者现场的温度巡检仪、电表这类 RS-232 外设。三路各自独立,互不干扰,日志还能分别打时间戳。
工业外设并联采集。 多台 RS-232 仪表不支持总线仲裁,只能点对点,那就给三路各挂一台,MCU 用轮询或中断方式分别对话。注意 RS-232 是点对点协议,别试图把三根 TX 并在一起当总线用——那会打架。
带振铃检测的远程告警链路。 RI 接 ROUT2B,对端打过来一个振铃,哪怕 BMC 处于低功耗休眠,也能被 RI 边沿拽醒,再起来走串口问一句"谁叫我",决定要不要经网口上报。这种"零待机负担的唤醒源"在带外管理里很好用。
链路串联方式和前面几篇是一套:12 V 母线经 LMZ21701 微型 Buck 降到 3.3 V,供 BMC MCU 和 TRS3243E;VCC 就近 0.1 µF X7R,电荷泵电容紧贴引脚,高频段再叠一颗硅电容。串口进来的告警和交互记录,交给 DTCXO RTC 打时间戳,攒一批经 RTL8152B 这类 USB 百兆网卡送上管理网。模拟侧 DAC7562 + MAX4634 + TLV333 继续干电源裕量调试,跟串口这条路只在日志层汇合,互不搅扰。
六、PCB 设计的坑,全在这里
① 电荷泵电容是头号雷区。 四颗 0.1 µF 必须 X7R 或更好,容值别随手换成 1 µF 或随便省一颗——电荷泵的开关时序和电容值绑定,换了会直接导致输出电压幅度不够、摆率变差、接收器阈值漂移。电容紧贴芯片的 C1+、C1−、C2+、C2− 引脚,走线短而粗,别穿过其它信号层绕远路,也别把它们当扇孔练习场。
② 电源去耦分两层。 VCC 脚就近一颗 0.1 µF MLCC,回流最短;电荷泵本身在内部高频开关,再在 VCC 入口叠一颗 1 µF 到 10 µF 加硅电容/陶瓷,把开关纹波摁住。这路纹波一旦串进 ADC 参考或 RTC 电源,前面辛辛苦苦做的精度就白费。
③ RS-232 是单端信号,别当差分走。 TXD、RXD、RTS 这些线没有互补对,抗共模能力弱,速率又不高,布线原则就是"短、远、直":远离 DC/DC 的 SW 节点和电感,远离 USB 差分对、SerDes、时钟线;能不走底层高速层就别走。DB9 连接器旁边放 TVS,TVS 的地要就近回到机壳/接口地,别让浪涌电流横穿整个板子的数字地。
④ 地怎么接。 板内数字地和接口侧地建议单点汇合,通常在 DB9 座子附近或 TVS 阴极处接在一起;跨机柜、地电位差大的场景,别硬把两边地绑死,否则地环路带来的共模噪声能把接收器搞到乱帧。长距离或工业现场,上数字隔离器(隔离型 RS-232 模块或分立数字隔离 + 收发器)才是正解。
⑤ 闲置通道要收口。 不用的驱动器输入千万别浮空,拉 GND 或拉 VCC,否则输入级振荡、电荷泵负载忽大忽小,功耗和辐射都变难看。不用的接收器输入可以悬空(内部通常有失效保护偏置,具体核对 datasheet),对应的接收输出脚如果接了 MCU 引脚,记得软件里别当有效中断源,或者硬件上也留个下拉。
⑥ 自动断电模式要想清楚再接。 默认自动模式对功耗最友好,但有个隐蔽问题:如果这条口是用来抓开机早期 log 的,对端还没发数据、芯片就睡着没起来,你会丢最早的字符。这种通道把 FORCEOFF 接成"上电即强制开启"(比如 10 kΩ 下拉到地),或者由 BMC 的复位 GPIO 在启动阶段拉住强制开启,稳定后再放开。反之,纯待机唤醒用途就靠默认自动模式 + RI 穿透。
⑦ 波特率误差要对齐。 芯片本身 250 kbps 够宽裕,但注意 RS-232 链路两端靠各自时钟采样,MCU 的 UART 波特率误差要控制在 ±2% 内,尤其 115200 以上。用内部 RC 当主频的 AVR 类辅控,前面提过的时钟精度问题在这里会直接变现成乱码。
七、选型速记
• 通用 BMC、三路 Console、成本优先:TRS3243E,默认答案。
• 主控是 1.8 V、要跑更快、要独立逻辑电平域:TRS3253E。
• 老方案维护、3 发 3 收就够:DS229,但新设计不建议,库存和生态都在往 TRS 系列走。
• 国产兼容替代:UM3243 等 3 发 5 收料,引脚功能多可对标,替换前务必核对电荷泵电容个数与位置、FORCE 引脚极性、ESD 等级和封装焊盘,别只看"3243"四个数字一样就焊上去。
八、它的边界
RS-232 的本质限制,芯片再强也绕不开:
• 单端、点对点,一根 TX 只能对一个 RX,不能挂多节点总线。要一主多从、长距离、抗噪,换 RS-485。
• 距离常规 15 米以内比较稳妥,速率越高越短;跨机柜靠 RS-232 硬撑,地环路和共模干扰迟早找上门。
• 250 kbps 封顶(TRS3243E),传配置、日志、控制台够用,传数据量、固件批量升级就别指望它。需要兆级速率走 UART 的话,上 TRS3253E 或直接换 USB/以太网。
• 电荷泵会产生中频开关噪声,对极致模拟精度链路(比如你那套 margining 回读)要物理上隔开、电源上隔离。
一句话定位:它是 BMC 的"人工接口层"——给工程师留一扇永远打得开的门,给远程告警留一个低待机功耗的耳朵,别的活不该让它干。
________________________________________
免责说明:内容仅供技术交流,作者及发布平台不对据此产生的设计缺陷、通信异常、接口损坏或系统故障承担责任。