2. 物理层基础:RS232标准、TTL电平与RS232电平转换、USB转串口原理、常见串口芯片
各位同学,咱们今天聊聊串口烧录的物理层。说白了,就是信号在线上怎么跑、电压多高、怎么连线的。
很多人一上来就写代码,结果烧录失败,查半天发现是电平不匹配。我当年就吃过这个亏,所以今天把这部分讲透。
2.1 RS232标准:老当益壮的串行接口
RS232标准诞生于1960年代,比我还大不少。它定义了串行通信的电气特性、信号功能和机械接口。
关键参数:
- 逻辑电平:逻辑"1":-3V ~ -15V;逻辑"0":+3V ~ +15V
- 传输距离:理论最大约15米(实际看波特率和线缆质量)
- 接口类型:DB9(最常见)、DB25(老设备)
- 信号线:TX(发送)、RX(接收)、GND(地线),全双工时还需RTS/CTS等流控线
注意:RS232是负逻辑!电压越高反而代表逻辑"0"。很多新手第一次用示波器看波形时,看到反相波形就懵了——嗯,我当年也懵过。
RS232的电压范围是±12V左右,而咱们MCU的GPIO通常只能承受3.3V或5V。所以直接连?不行,会烧芯片。
2.2 TTL电平与RS232电平转换
TTL电平是数字电路内部用的标准:
- 5V TTL:逻辑"1":2.0V ~ 5.0V;逻辑"0":0V ~ 0.8V
- 3.3V TTL:逻辑"1":2.0V ~ 3.3V;逻辑"0":0V ~ 0.8V
你看,TTL和RS232的电压范围完全不搭界。所以必须用电平转换芯片。
常用转换方案:
- MAX232系列:经典方案,内置电荷泵,单5V供电就能产生±10V
- SP3232系列:3.3V供电版本,适合低功耗设计
- 分立元件方案:用三极管+二极管搭的简易转换电路,成本低但稳定性差
我的经验:量产产品别用分立元件方案。我曾经在一个项目中图便宜用了三极管搭的转换电路,结果批量生产时有一半设备通信不稳定。后来换成MAX232,问题全解决了。省那几毛钱,不值得。
2.3 USB转串口原理
现在的笔记本电脑哪还有串口?所以USB转串口成了标配。它的核心原理其实不复杂:
- USB端:芯片模拟成一个USB CDC(通信设备类)设备,主机识别为虚拟COM口
- 串口端:芯片内部有UART控制器,负责串行数据的收发
- 桥接:芯片在USB包和UART帧之间做数据搬运
为什么会这样设计?因为USB是主从架构,而串口是对等通信。芯片得做协议转换。
数据流大致是这样的:
PC软件 → USB驱动 → USB总线 → 转串口芯片 → TX/RX引脚 → 目标设备
反过来也一样。芯片内部有个缓冲区,防止数据丢失。我记得有一次调试一个高速设备,波特率设到921600,结果丢包严重。后来发现是芯片的缓冲区太小,换了个大缓冲的型号就好了。
2.4 常见串口芯片:PL2303 / CH340 / FT232
市面上最常见的三款芯片,我挨个说说:
| 芯片型号 | 厂商 | 最大波特率 | 供电电压 | 特点 |
|---|---|---|---|---|
| PL2303 | Prolific | 6Mbps | 3.3V / 5V | 价格低,但假货多,驱动兼容性一般 |
| CH340 | 南京沁恒 | 2Mbps | 3.3V / 5V | 国产性价比之王,驱动稳定,适合量产 |
| FT232 | FTDI | 3Mbps(部分型号12Mbps) | 3.3V / 5V | 工业级品质,驱动最完善,价格最贵 |
避坑指南:我曾经在淘宝买了一批PL2303模块,结果一半无法识别。后来发现是假芯片——Prolific官方驱动会检测芯片真伪,假货直接拒绝工作。所以,批量采购建议用CH340或FT232,省心。
选型建议:
- 个人DIY、学习:CH340G,便宜好用,淘宝几块钱一个模块
- 产品原型、小批量:FT232RL,稳定第一,贵点无所谓
- 量产产品:CH340系列或FT232系列,看成本预算
另外,这些芯片通常都内置了电平转换电路,输出就是TTL电平,可以直接连MCU。但要注意:有些模块输出是5V电平,如果你的MCU是3.3V的,得确认IO是否容忍5V输入。嗯,这里要注意看数据手册。
2.5 物理层知识体系
下面这张图总结了本章的核心内容,帮你理清思路:
这张图把本章的知识点串起来了。你看,从RS232到TTL,中间必须经过电平转换;从USB到串口,中间必须经过芯片桥接。物理层搞不定,上层协议写得再好也白搭。
总结一下:
- RS232是负逻辑、高电压,适合长距离传输
- TTL是正逻辑、低电压,适合板级通信
- 电平转换芯片(如MAX232)是两者之间的桥梁
- USB转串口芯片(PL2303/CH340/FT232)解决了现代电脑没有串口的问题
- 选型时注意:驱动兼容性、最大波特率、供电电压
好了,物理层就讲到这里。下一章咱们聊聊数据链路层——帧格式、波特率、校验位这些。不过那是后话了,先把今天的内容消化掉。
课后小作业:拿个示波器,看看你手头的USB转串口模块在发送0x55(交替的01010101)时,波形长什么样。你会看到TTL电平的方波,和RS232的波形对比一下,印象会更深刻。
可可精品资料库