☰
RS485通讯接线原理图全解:差分信号、终端电阻与现场调试避坑指南
2026/10/15 18:23:16 网站建设 项目流程

简介:针对RS485工业通讯的选型与调试需求,文档以“原理图+解析+实测波形”的形式,系统梳理五种典型RS485通讯接线方案,涵盖光耦工作区、整形电路、边沿陡峭度、温漂影响等关键问题,并给出各方案特点、理论分析与适用场景,适合工业自动化、仪器仪表、单片机通讯设计工程师及电子爱好者参考。资源为1个doc文档,压缩包约643KB,浏览/学习人数已达1.7万余人。内容从实验目的出发,逐一讲解五类电路的工作点选取、驱动芯片配合和改善信号质量的思路,还包含常温、高温、低温下的波形测试数据与波特率结论,如方案一可在1200bps可靠通讯、方案二可超过9600bps、方案五可将脉宽误差控制在3us以内。读者可依据文档中的电路结构直接判断成本、功耗、速率与温度特性之间的取舍,减少自行搭板验证的重复工作。

1. 先把结论摆出来:RS485通讯现场问题,多半出在接线上

现场调试时最怕那种“时好时坏”的通讯问题:设备重启一下就好,跑段时间又丢包;用万用表量电压都正常,用软件看就是偶尔超时。很多人第一反应是程序或者干扰的玄学,但根据我长年跑现场的经验,这类问题里相当一部分最后都落在接线上:拓扑接成了星型、A/B反接、终端电阻放错位置、两个设备之间的地电位差没处理。RS485通讯本身就是两根线加差分信号,看起来很简单,但恰恰是“简单”让不少人忽略了接线的边界条件。

这篇文章要讲的是典型的几种RS485通讯接线原理图,以及每一张图背后的选择理由:为什么是手拉手而不是星型,终端电阻和偏置电阻到底怎么放,什么时候需要光电隔离,自动收发电路的坑在哪里。读完之后,你可以照着图接出一套能稳定跑的现场总线,也知道通讯出问题时该先去查哪几个点。适合正在做设备集成、单片机通讯或者现场调试的开发者,也适合刚接触RS485、想把原理一次理顺的同学。

2. RS485接线的底层逻辑:差分信号、总线拓扑与工作模式

2.1 差分信号:A和B为什么能扛住共模干扰

RS485通讯看起来是“两根线A和B”,但它不是一条信号线加一条地线的那种传输方式。A和B都相对“地”有电压,真正有用的信息是A与B之间的差值。驱动器输出时,A-B为正对应逻辑1,A-B为负对应逻辑0;接收端只认这个差值,不认对地电压。这也是为什么现场用万用表量A对地、B对地都拿不准波形,但把探头跨在A-B之间就能看到完整信号的原因。

为什么这样设计能抗干扰?因为外部噪声进入双绞线时,通常是共模性质:A和B上同时被叠加了相似的干扰电压,两者相减之后干扰被抵消。收发器自身的输入阻抗和共模范围也专门为此设计。标准里驱动器的差分输出一般能到±1.5V到±6V左右,而接收器只要检测到±200mV的门限就能可靠判断,所以即使线缆有衰减、末端有噪声,只要差分幅度不低于200mV,接收端还是能分辨。

现场有个特别容易误用的点:有人拿普通电线把485A当信号线、485B当地线来用,这种“伪差分”接法会让干扰无法抵消,通讯距离一大就开始丢包。RS485一定要走双绞线,两根信号线要绞在一起,让它们受到的干扰尽量一致,差分才会有意义。双绞线的作用不只是好看:两根线绞合之后,单位长度上的环路面积变小,磁场感应的噪声在两线上尽量相等,发送时两根线的电流方向相反,对外辐射也相互抵消。用普通平行线代替双绞线,等于把差分传输最大的优势扔掉了。

另外,接收器的输入阻抗用“单位负载”来衡量,标准RS485规定最多挂32个标准单位负载。现在很多芯片是1/4负载甚至1/8负载,挂的设备数量可以成倍提高,但这些负载参数会影响后面偏置电阻和终端电阻的计算,不能只看设备数量拍脑袋。

2.2 总线拓扑:为什么必须是手拉手,不能星型

RS485的多点通讯拓扑在标准设计里是“一根总线上挂多个节点”,信号从一端往另一端传播。所谓手拉手,就是主站的A接到第一个从站的A,第一个从站的A再接到第二个从站的A,依此类推;B线同理。这样整条总线是一条连续的双绞线,最后一个设备就是物理末端。

为什么不能星型?因为双绞线有大约100到120欧姆的特性阻抗,信号沿总线传播时,如果遇到一个没有匹配的分支,就相当于阻抗突变,一部分能量会被反射回来。星型接法会产生大量分支,每个分支末端都是反射源;反射波叠加在原信号上,波形就会出现过冲、振铃、台阶,轻则偶发误码,重则完全通讯不上。波特率越高、分支越长,反射越明显。有些现场在低速9600波特率下用星型侥幸能跑,一旦换成115200就直接翻车。

从反射系数的角度看,分支末端如果开路,反射系数接近+1,入射信号几乎全反射回总线,并在原信号上叠加成乱七八糟的振铃。这就是为什么很多人都见过“线接得完全正确,但一根分支不剪掉就时不时丢包”的现象。那现场确实需要从总线上分出一台设备怎么办?我的原则是:分支越短越好,尽量控制在1米以内,并且分支本身用双绞线形成一对。短分支在低波特率下影响有限,但这只能算“能用的妥协”,不该当成标准做法。布线规划时,宁可绕路也要让总线串行经过每个设备,不要图方便把几条线在某个点并联成星型。

提示:有些转换器和仪表支持“终端电阻+分支补偿”之类的手段,但那是针对短分支的修正,不是让你用星型布线的理由。结构上走手拉手,永远是最稳的。如果楼宇或者园区综合布线已经做成星型,每个点位单独拉线到中控室,别直接在某个端子排上全部并联;常见做法是重新规划一条串行总线,或者把每个星型分支接到带隔离的RS485集线器上,让每个分支独立成一条子总线。

2.3 半双工和全双工:接线数量由工作模式决定

RS485最常见的形态是半双工:两根线A和B,所有设备共用一对线,同一时刻只允许一个设备驱动总线。收发两端通过方向控制切换发送和接收,这也是很多设备上有“方向控制”或者“自动收发”说法的原因。半双工的接线最简单,但要注意:不能指望多个设备同时往总线上发数据,那是协议层的事情。

全双工则是另一个形态:需要两对线,一对用于主站发送,另一对用于主站接收。这其实是RS422常见的接法,在RS485设备上只有少数型号明确支持“四线全双工”。接线时主站的发送端接到所有从站的接收端,所有从站的发送端则并联后回到主站的接收端。很多标称RS485的仪表实际上只引了A/B两个端子,并不支持四线制,硬接四线没有意义。

选型上我的建议很简单:绝大多数场景用半双工RS485就够了,UART本身是异步半双工的逻辑,Modbus-RTU也是半双工协议;只有在需要高速连续双向传输、且从站数量少的时候才考虑全双工方案。RS422和RS485的电器特性很接近,RS422天生就是四线全双工,可挂节点数也少一些。现场见过有人用RS422的收发器强行挂在RS485总线上,电平兼容性看着没问题,但收发方向和终端逻辑完全不同,结果就是通讯一会儿正常一会儿冲突。

3. 典型的几种RS485接线原理图:两线制、全双工、隔离与自动收发

3.1 两线制手拉手:最小可用的基础接法

两线制手拉手是最常见、最省线的接法,适用于距离几十米到几百米、设备数量中等、使用Modbus-RTU轮询的绝大多数工业场景。接线规则非常简单:同名端相接,主站的485A接第一个从站的485A,再从第一个从站接到第二个从站,一直串到最远设备;485B同理。设备端子上的命名可能有差异,常见的有A/B、D+/D-、485+/485-、P+/P-,本质都是那两条差分线。

主站 从站1 从站2(最远) 485A ─────────────────────── 485A ─────────────────────── 485A 485B ─────────────────────── 485B ─────────────────────── 485B GND ─────────────────────── GND ─────────────────────── GND | | 120Ω终端(主站端) 120Ω终端(从站端)

上面这张图里有三根线:A、B、GND。A和B是差分信号线,GND是参考地。很多工程师会问:差分信号不是不需要地线吗?严格说,差分接收器只认A-B的差值,理论上不依赖公共地;但收发器芯片有共模输入范围,常见范围在-7V到+12V之间,如果两个设备之间没有公共参考点,地电位差太大就会超出范围,导致数据错误甚至芯片损坏。所以我的习惯是:几十米到几百米的距离内,如果各设备外壳没有统一接大地,就串一根GND线做公共参考;如果两端设备都已经通过电源和外壳接大地了,这根GND线反而容易形成地环路,这时宁可不串。

线规上,推荐使用RVSP 2×0.5或2×0.75屏蔽双绞线,距离长或者现场干扰大时选0.75。屏蔽层只在主机端单点接大地,不要两端都接,否则屏蔽层本身会变成地环路的一部分。波特率建议从9600起步,现场稳定之后再往上调,不要一上来就拉115200。

最后一个要点是终端电阻:在总线的最远两端各放一只120Ω,中间设备不加。图中主站端和最远从站端各有一只120Ω,这两个电阻一放,总线两端就被匹配了;如果某个设备内部已经有终端电阻并且拨码打开了,外部就不要再并联一只。

3.2 全双工四线制:什么时候才需要四根线

全双工四线制在RS485设备里不算常见,但确实存在。它和RS422的接法很像:主站有一对发送线T+/T-,一对接收线R+/R-;从站则相反,从站的接收端接主站的发送端,从站的发送端接主站的接收端。这样主站发送和接收可以同时进行,不需要频繁切换方向,适合高速连续读写和主从问答之外还有主动上报的场景。

主站 从站1 T+ ────────────────── R+ T- ────────────────── R- R+ ────────────────── T+ R- ────────────────── T-

如果从站不止一台,所有从站的R+并联接主站的T+,所有从站的R-并联接主站的T-;所有从站的T+并联接主站的R+,所有从站的T-并联接主站的R-。这里有个非常重要的限制:从站往总线上发数据时,仍然需要发送使能控制,否则多个从站同时驱动T+/T-同样会冲突。全双工解决了“主站一边发一边收”的问题,但没有解决“多个从站竞争发送”的问题,协议层该做的仲裁一点都不能少。

接线时最容易翻车的点是端子命名。有些设备把全双工的发送端标成D+/D-,接收端标成R+/R-,看起来很接近半双工的叫法;有些四线制设备还需要通过拨码切换成全双工模式,默认上电是半双工。我一般会在接线前先看设备手册里有没有“Full Duplex”或者“RS422”相关说明,没有明确说明就当半双工处理,不要凭端子名硬猜。

四线制的终端电阻逻辑和两线制一样:在发送线和接收线的最远两端各加匹配电阻,电阻值同样是120Ω左右。由于多了一对线,布线成本翻倍,从站数量也受限制,所以我的建议是:除非设备本身只支持全双工,或者通讯速率和实时性要求确实高,否则优先用半双工,省线、省调试、兼容性也更好。

3.3 光电隔离接线:处理地电位差和长距离共模问题

现场最常见的“硬伤”是两台设备之间的地电位差。比如一个在变频器柜里,一个在控制室,两个系统分别由不同开关电源供电,即使标称都是24V,实际负极之间也可能存在几十伏的电位差。由于RS485收发器的共模输入范围只有-7V到+12V左右,电位差一大,通讯就开始出错,严重时直接烧掉485芯片。这时候要用的就是光电隔离接线方案。

隔离模块的原理很简单:控制侧信号经过光耦或者隔离芯片转换到总线侧,两侧之间没有电气连接,总线侧使用独立的隔离电源供电。控制侧的地和总线侧的地完全分开,地环路被切断了,共模电压也不再影响控制侧电路。

控制侧 隔离模块 现场总线侧 TXD ───── 发送隔离 ── 485A ──────────────────── 从站485A RXD ───── 接收隔离 ── 485B ──────────────────── 从站485B GND ───── 控制侧地 隔离电源GND(悬空,不接大地) 从站GND(视情况)

接线时有三个关键点。第一,隔离模块总线侧的GND必须悬空,不能跟控制侧GND短接,也不能接到外壳大地,否则隔离就白做了;第二,总线侧的隔离电源要有足够的功率,常见隔离模块需要外部提供5V直流,极性接反会直接损坏模块;第三,屏蔽层仍然是单端接地,一般接在控制侧或主机侧的大地上,不要两端都接。

用了隔离模块之后,总线的抗共模能力会大幅提升,但这不意味着可以忽略布线的其他规则。隔离只是解决了地电位的问题,星型拓扑、终端电阻、屏蔽层处理这些该做的事一件都不能少。我见过有人上了隔离模块之后觉得“万事大吉”,把线随便甩在动力电缆旁边,结果还是丢包,那不是隔离没起作用,而是电磁干扰已经把差分信号打到了阈值以下。

3.4 自动收发电路接线:省一根方向IO,但小心起始位被吃掉

半双工RS485设备在发送前需要把收发器切到发送模式,发完再切回接收。正规做法是用单片机的一个GPIO控制DE/RE引脚,发送前拉高,发完拉低。但有些模块为了省这根控制线,做成了“自动收发电路”,让TXD信号自己控制方向。原理图大致是:TXD经过一个三极管反相后接到DE/RE,TXD空闲为高电平时,三极管导通,DE/RE被拉低,处于接收状态;TXD发送起始位时拉低,三极管截止,DE/RE被上拉为高,进入发送状态。

TXD ── R1(1k) ── Q1基极 Q1集电极 ── DE/RE R2(10k)上拉DE/RE到VCC Q1发射极 ── GND TXD空闲高电平 → Q1导通 → DE/RE低 → 接收 TXD起始位低电平 → Q1截止 → DE/RE高 → 发送

这个电路在低速下看起来能用,但实际上有几个隐患。首先是起始位问题:TXD拉低的下降沿要先经过三极管的开关延迟,DE/RE才能从低变高,收发器真正进入发送状态可能已经比起始位晚了几百纳秒到几微秒;如果RC延时参数取得太大,起始位整个被吃掉,对端就完全收不到第一字节。其次是发送结束后的释放时机:DE/RE如果释放得太快,最后一个停止位可能还没发完就被切回接收态,表现为对端收到的帧尾出错,或者CRC一直算不对。

我自己的经验是:9600波特率下,位宽大约104微秒,三极管开关延迟的几百纳秒还能忍;但波特率到115200以后,位宽只有约8.7微秒,延迟和过冲的影响就非常明显了。现在很多模块已经用上了带自动方向控制功能的专用芯片,内部做了延时释放,比普通三极管电路稳得多。如果你不得不用分立元件搭自动收发电路,电阻取值建议R1用1kΩ、R2用10kΩ,然后一定要用示波器同时抓TXD和A-B波形,确认起始位没有被切掉。

提示:自动收发电路最大的坑是“单独测试正常,挂在总线上就丢包”。原因通常是每个节点的自动收发在方向切换时短暂地同时驱动总线,造成瞬间冲突。如果现场用的是一批廉价自动收发模块,优先怀疑方向切换时序,而不是怀疑A/B接反。

4. 决定通讯稳不稳的三组电阻:终端电阻、偏置电阻与计算示例

4.1 终端电阻:为什么必须两端各120Ω

信号在总线末端如果遇到阻抗突变,就会产生反射。发光源发出的信号沿双绞线传播,到达末端时如果末端阻抗不等于线缆特性阻抗,一部分能量会反弹回来,叠加在后续信号上。为了吸收这部分能量,就要在总线两端各接一只等于线缆特性阻抗的电阻。双绞线的特性阻抗大多是100到120Ω,RS485标准体系里把120Ω作为典型匹配值。

为什么强调“两端”?因为信号从源端出发,到达远端末端会产生第一次反射;如果没有在源端做匹配,反射波回到源端还会再次反射,来回弹几次,波形就成了振铃。两端各接一只120Ω,相当于源端也吸收了回波,远端也吸收了入射波,整个总线处于匹配状态。中间设备加终端电阻没有意义,而且会把多个120Ω并联起来,让等效负载变得很小。

总线长度终端电阻建议
10米以内可以不加,但加上更稳
10米到100米两端各加120Ω
100米以上两端各加120Ω,缺失大概率丢包

特别提醒:很多USB转RS485转换器内部自带终端电阻开关或者跳线,默认可能是关闭的。如果外部又加了一只120Ω终端,就会变成两只电阻并联成60Ω,虽然不至于立刻坏,但总线驱动电流增大了,波形幅度会被压低。正确做法是:确认设备内部终端是否开启,内部开了就不要再外面加;内部没有就用外部加。

4.2 偏置电阻:总线空闲时靠它撑住电平

RS485总线在没有任何设备发送时,A和B之间理论上没有驱动源。如果收发器内部没有故障保护机制,A-B电压会悬浮在接收阈值附近,外部一点点噪声就会让接收端输出乱跳,表现为上电就收到一堆乱码。要解决这个问题,就要给总线加偏置电阻:把A通过一只电阻上拉到VCC,把B通过一只电阻下拉到GND,让总线空闲时A-B的差分电压稳定在正向逻辑1的位置。

偏置电阻到底取多大?这需要和终端电阻一起算。先看简化电路:总线两端各有一只120Ω终端电阻,等效并联后是60Ω;偏置电阻RA从VCC接到A节点,RB从B节点接到GND。如果RA和RB相等,都设为R,那么电流从VCC经过RA,再经过60Ω等效终端,再经过RB回到GND。A-B两端的电压就是60Ω电阻上的压降:VAB = VCC × 60 / (2R + 60)。

以VCC=5V为例,要求VAB≥0.2V,代入公式:5 × 60 / (2R + 60) ≥ 0.2,推导出来2R + 60 ≤ 1500,也就是R ≤ 720Ω。所以单端一组偏置电阻时,取390Ω到680Ω都算合理;如果两端各放一组偏置,等效并联后R会减半,取值可以放大到1kΩ左右。这个计算没考虑485芯片接收器的输入阻抗,实际接收器输入阻抗通常是12kΩ以上,对结果影响很小。

偏置放置方式推荐阻值说明
仅主机端一组390Ω~680Ω最常见做法,主机端上拉A、下拉B
主机端和从站端各一组1kΩ左右两组并联后等效值接近单端组
使用带空闲保护芯片可不加芯片内部已处理开路和空闲状态

不过,现在很多转换器和智能仪表内部已经集成了偏置电路,外部再加偏置反而会让总线静态电流变大、驱动负载变重。我的建议是:先查手册确认有没有内部偏置,没有再加;加完之后用示波器量一下空闲时A-B之间的静态电压,稳定在200mV以上即可,不要追求越大越好。

4.3 一个完整的电阻参数落地示例

假设现场是1台主站带3台从站,距离约500米,使用RVSP 2×0.75屏蔽双绞线,波特率9600,Modbus-RTU协议。主站是USB转RS485转换器,放在控制室;从站是3台仪表,分布在现场。

配置清单如下:总线两端各加一只120Ω终端电阻,一只放在主站转换器侧,另一只放在物理上最远的从站侧;偏置电阻只在主站侧放一组,485A上拉到VCC用一只560Ω电阻,485B下拉到GND用一只560Ω电阻。如果主站转换器内部已经有偏置,这组电阻就省略。

这个配置下的静态电流大约是多少?VCC=5V,单端偏置R=560Ω,终端等效60Ω,总电流约5/(560+60+560)≈4.2mA。这个电流不大,对转换器来说完全可以接受;但如果你在总线上挂了二三十个从站,每个从站又有自己的上下拉偏置或者终端拨码,并联之后的等效电阻会非常小,驱动器拉不动,波形幅度就会被压得很低。

另一个和电阻相关的参数是总线上的节点负载。标准RS485限制32个单位负载,普通芯片是1个单位负载,能挂32台;1/4负载芯片理论上能挂128台,1/8负载能挂256台。但负载数量和线长、波特率、终端电阻都耦合在一起,不要只看理论值。现场见过有人把几十台仪表串在一条总线上,单独测每一台都正常,全挂上去就丢包,用示波器一看,差分波形幅度只剩几百毫伏,根源就是负载太重。处理办法是拆分总线,加RS485中继器或者集线器,把一个大网络分成几个小段。

5. RS485接线常见问题与排查:四条血泪踩坑记录

5.1 现象一:偶尔丢包,示波器看到一堆振铃

现象:通讯大部分时间正常,但某个时间段或者运行久了之后开始偶发超时;用示波器跨在A-B之间抓波形,能看到主波后面跟着一串明显的小幅度振荡,边沿像被“甩”了一下。

原因:总线存在长分支或者星型拓扑,信号在分支末端和主总线之间反复反射;也可能是缺少终端电阻,远端反射没有被吸收。振铃幅度一旦超过接收阈值,接收端就会误判电平,产生丢包。

解决:首先把拓扑改成手拉手,所有分支缩短到1米以内;然后在总线最远两端各加120Ω终端电阻。加完之后再看波形,振铃应明显减小,信号边沿干净利落。如果分支确实无法缩短,考虑用RS485集线器把分支单独隔离成一条子总线,而不是直接并联在主总线上。

5.2 现象二:A/B怎么调都通不上,发送端波形正常但对端无响应

现象:主站发送时示波器能抓到总线有信号,但所有从站都没有响应;把A/B对调之后还是不行,或者干脆换了一台从站才通。

原因:最常见的是A/B定义不统一。有些设备端子标485+和485-,但485+内部接的是B,跟常规习惯相反;有些设备标D+/D-,实际定义和你的转换器相反。还有一种情况是主站和从站虽然都叫A/B,但其中一侧是终端电阻已经内建在A/B线上的特殊接线。

解决:不要迷信端子名字,用万用表先量各设备485端子在空闲状态的电压。常规RS485在偏置正常的情况下,A对GND电压高于B对GND电压;如果实测反了,就把该设备的A/B当成反标处理,接线时交叉连接。现场排查时我习惯做一小段带A/B互换的转接端子,这样测试时只要换一下跳线方向就行,不用反复拆螺丝。

5.3 现象三:单独测都能通,多台设备并联后全部通讯失败

现象:主站分别和每台从站单独通讯都正常,但把多台从站一起挂到总线上,谁也连不上;断开某几台又恢复。

原因:某台从站内部有终端的拨码被拨到了ON,或者内部自带偏置电阻,多台设备并联后把总线等效电阻拉得很低,导致驱动器输出电压幅度不足;另一个常见原因是从站地址冲突,但那属于软件问题,不是接线问题。区分方法很简单:先把所有设备断电,只留主站,测总线上的A-B静态电阻,正常应在60Ω左右(两端终端并联)到几百欧之间;如果测出来只有十几欧甚至几欧,说明某台设备内部终端或偏置异常。

解决:逐个检查每台从站的终端拨码和偏置跳线,保留总线两端的两只120Ω,其余全部关闭。如果每台设备都是固定不可调的型号,那就只能在总线上串联小电阻或者改用隔离集线器分网,让每段总线挂的设备数量符合负载能力。

5.4 现象四:空闲时总线全是乱码,一上电就收到0xFF一类的字节

现象:主站和从站都不发送数据时,接收端一直收到错误帧,或者在某些模块上看总线错误指示灯常亮;用示波器看A-B静态电压,发现两点电压几乎一样,差值不到200mV。

原因:总线缺少偏置电阻,空闲时差分电压悬浮在接收阈值附近。干扰噪声稍微引入一点电压波动,接收器就当成数据沿,输出一堆无意义的电平变化。

解决:在主机端给485A加上拉到VCC的电阻、给485B加下拉到GND的电阻,阻值按前面计算取390Ω到680Ω。加完之后用示波器量A-B静态电压,应稳定在200mV以上。如果设备本身支持“故障保护”功能并且已经开启,那就不需要外部偏置;但很多廉价模块没有这个功能,外部偏置是最直接的挽救手段。

6. 用示波器验证RS485接线好坏:两个测点与一个判断习惯

接完线不能只靠“跑几个包没问题”来验收,因为偶发问题往往要等很久才出现。我现在验收任何一条RS485总线,固定用示波器看两个测点。

第一个测点是总线空闲时的A-B静态电压。把示波器两个通道分别接A和B,用数学运算显示A减B,或者直接用差分探头跨在A-B之间。总线空闲时,A-B应稳定在200mV以上,常见在300mV到800mV之间。如果这个电压不足,先怀疑偏置电阻缺失或取值不当;如果这个电压反而特别大,比如超过1.5V,说明偏置过强,后续驱动信号幅度可能被限制。

第二个测点是抓一个完整通信帧的A-B差分波形。正常波形应该是干净利落的高低电平,幅度在1.5V到5V之间,边沿没有明显过冲和振铃。如果看到波形顶部或底部有“台阶”,说明总线上有反射;如果看到波形幅度很低,只有几百毫伏,说明负载过重或者终端加错位置了。

针对自动收发电路,还需要加一个测点:同时抓TXD和A-B波形,量一下TXD拉低的下降沿到A-B第一次翻转之间的时间差。这个时间差应该在位宽的一小部分以内,9600波特率下位宽约104微秒,切换延迟超过10微秒就要小心;115200波特率下位宽约8.7微秒,切换延迟超过2微秒基本上就会吃起始位。我吃过一次亏:某项目用了一款自动收发模块,9600波特率下完全正常,波特率调到38400就开始随机丢首字节,排查了很久才发现是DE释放太慢导致起始位被切了一半。

现在的习惯是,接好线先量空闲电平,再抓完整帧,两项都合格才去做长时间稳定性测试。凡是那种“昨天通今天不通”“没人碰线自己又好了”的现象,我都会先怀疑接线而不是先改程序。RS485这行没有太多玄学,电平摆在那里,一测便知。希望这篇文章能帮你把接线这张图彻底画对,后续调试少走弯路。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询