以下文章来源于汽车电子与软件,作者aFakeProgramer
作 者 | aFakeProgramer
出 品 | 汽车电子与软件
摘要
你有没有遇到过这样的情况:两个芯片机明明“心有灵犀”,结果一通电聊天就“鸡同鸭讲”?
不是它们太笨,而是没找对“说话方式”。
在电子世界里,设备之间的沟通也讲究“音量大小”和“口音标准”。最常见的串口通信就像两个人在耳边悄悄话轻声细语(TTL电平),可惜声音传不远,打个喷嚏都能听错。于是,人们发明了“扩音器”——RS232,嗓门一提,十几米外也能喊话清晰。可要是到了工厂这种又吵又远的地儿,光靠吼也不行了,那就得上“对讲机系统”——RS485,不仅抗干扰、传得远,还能一群人组队群聊。
今天,咱们就来聊聊这三位“通信兄弟”:低调的TTL、中气十足的RS232,和工业硬汉RS485,看看它们到底是怎么“说人话”(或者“说电平”)的。
01
串口通讯:
最基础的“芯片对话”
串口通讯(Serial Communication)是一种数据一位一位传输的通信方式。它只需要很少的引脚(通常是两根线:发送 TX 和接收 RX),就能在两个设备之间传递信息。
(本文图片来自爱上半导体)
02
串口通讯的基本要素:
帧格式与波特率
串口通讯是芯片间信号传输的基础方式,必须事先约定好规则,核心是约定帧格式和波特率:
(1) 帧格式(Frame Format)
标准帧格式含10位:1位起始位(低电平)+8位数据位(1字节=256种信息)+1位停止位(高电平),也有7位/5位数据位的变种。
这是数据打包的方式。最常见的串口帧格式是 10位:
注意:其他格式也存在,比如 7 数据位 + 1 停止位等,但核心思想一致。
举例:发送字符 'A'(ASCII 码 65,二进制 01000001),就会按这个顺序一位位传出去。
注意:窗口通信发送端与接收端的帧格式与波特率都要相同,否则会出现乱码问题
(2) 波特率(Baud Rate)
波特率:1秒之内能够传输的高低电平个数。
常见波特率:9600、19200、115200等。
例如 9600 波特率:每秒可传 9600 个高低电平信号。
双方必须使用相同的波特率,否则会“听不懂”。
03
串口使用的电平标准:TTL逻辑
原始的串口通讯使用的是TTL 电平(Transistor-Transistor Logic),由芯片直接输出:
采用TTL逻辑电平:
高电平(逻辑“1”或HIGH):最小2.4V(通常为 5V 或 3.3V)
低电平(逻辑“0”或LOW):最大0.4V(通常按0V算)
比如静电干扰可能把 0V“抬高”到 1V,接收方误判为高电平导致数据出错!
所以这玩意儿抗干扰能力超弱!静电一来就可能错乱,所以传输距离超短一般1米内,仅限板载芯片或芯片与电脑间通讯。
04
RS232:让串口
“跑”得远一点
为解决串口距离短的痛点,美国电子工业联盟搞出了RS232标准(RS=Recommended Standard,推荐标准)。它本质是"电平转换版串口",需加MAX232等电平转换芯片。
RS232的接口虽然有很多线,但我们一般只用这3根线,和串口通讯保持一致,串口通讯使用的也是这三根线。
如何实现?
单片机本身输出的是 TTL 电平,我们只需要在原来串口通讯的基础上加一个电平转换芯片,例如MAX232,这样它就能把TTL电平转换为RS232电平了。
电平反转魔法:TTL的5V转成+12V,0V转成-12V;接收时+12V转回5V,-12V转回0V。
单片机发 0V(TTL 高)经过 MAX232 转成 -12V(RS232 低)
RS232 的特点:
逻辑电平的表示方式不同:在 TTL 串口中,高电平通常为 5V 或 3.3V,低电平为 0V。而 RS232 使用正负电压来表示逻辑状态:
逻辑“0”(Space):高电平 +3V 至 +15V(常用 +12V)
逻辑“1”(Mark):低电平 -3V 至 -15V(常用 -12V)
常见实现电压:+12V 表示 0,-12V 表示 1
高低电平范围超宽:+3~+15V是高电平,-3~-15V是低电平,抗干扰能力直接拉满!
传输的数据内容不变:
尽管电平变了,但传输的仍然是标准的串口数据帧——包括起始位、数据位、停止位等。
换句话说,通信协议没变,只是“物理表达方式”从 TTL 升级为 RS232。
保持全双工通信:
RS232 支持独立的发送(TX)和接收(RX)通道,因此可以同时收发数据,实现全双工通信。这使得它适合需要实时双向交互的场景。
将串口信号转换为RS232电平后,最显著的优势在于抗干扰能力的大幅提升。
这是因为RS232采用正负电压传输,两者之间接近20V的电压差使得信号具有很强的抗干扰余量——即使受到外界噪声影响,接收端依然能够准确区分逻辑状态。因此,通信的稳定性和可靠性大大提高,传输距离可延伸至15米左右。
不过,RS232的传输速率相对有限,通常最高支持约19200波特率(即20Kbps),在面对更严苛的工业环境或需要更远距离通信时,其性能就显得力不从心了。
05
RS485:工业级“抗揍”王者
当环境强干扰·、距离更远(比如工业现场),RS232 也不够用了,RS485横空出世!
RS485与RS232类似,本质上仍是在标准串口通信的基础上增加一个电平转换芯片来实现。该芯片负责将单片机发出的TTL电平信号转换为差分信号进行传输,同时也能将接收到的差分信号还原为TTL电平供单片机识别。
RS485芯片把TTL信号转化为差分信号,只需要两根线
RS485 的核心改进:
使用差分信号(Differential Signaling)
用两根线(A 和 B)之间的电压差来表示数据:
差分信号通过两根线(A和B)传输,利用两者之间的电压差来表示逻辑状态:
当A线电压高于B线时,表示逻辑0;
当A线电压低于B线时,表示逻辑1。
由于采用电压差判断,抗干扰能力强,且无需依赖公共地线,因此更适合长距离和复杂环境下的通信。
RS485性能参数:
最远传输距离:可达 1200 米
最高速率:可达 50 Mbps(距离越远,速率越低)
支持多设备:一主多从,最多可接 32 个设备在同一总线上
关键优势:两根线绞在一起(双绞线),共模干扰被抵消,即使整体被干扰,差值仍稳定。抗干扰能力强,可以传输更远距离。
组网优势:支持"一主多从"组网,告别RS232的点对点限制。只需加485电平转换芯片,就能让串口信号变身工业级差分信号。
485一般为为半双工:同一时间只能发或收(通过使能控制方向),可以实现多设备主从通信
少数为全双工(需四根线)
实现方式:
也需要专用芯片(如 SP3485),将 TTL 信号 差分信号互相转换。
06
产业变革:开源架构重构
全球半导体权利格局
物理层的"电压游戏":RS232和RS485只改物理层(电平标准),编程完全不影响!会串口通讯就能秒懂它们——就像给串口换了不同"电压马甲"。
普通串口通信(TTL)、RS232 和 RS485的详细对比表格
本质区别一句话:
TTL 串口是“语言本身”, "贴身悄悄话"(1米内TTL)
RS232 是“大声说话”,传得稍远(15米±12V)
RS485 是“组队对讲机”,抗干扰强、传得远、还能多人联网(1200米差分抗干扰+组网)。
三者底层通信协议一致,区别主要在物理层电平与传输方式,因此只要掌握串口编程,配合合适的硬件转换,即可灵活应用于各种场景。