本帖最后由 woai32lala 于 2024-4-10 16:47 编辑
[url=home.php?mod=space&uid=760190]@21小跑堂 #申请原创#[/url]
一文讲通RS485
一、介绍 RS485,即“远程串行通信协议”,是一种常见的串行通信协议,由电气电子工程师协会(IEEE)制定。它是一种多点通信接口,允许最多128个设备连接到同一通信总线,并且能够在较长的距离上(高达1200米)以较高的速度(高达10Mbps)进行数据传输。RS485的传输速率与总线长度相关,线缆越长,速率越慢;线缆越短,速率越快; RS485的一个关键特性是其差分信号传输能力,这意味着发送信号和地之间的电压差被用作数据传输的载体。这使得RS485在噪声环境中的抗干扰性较强,特别适合于工业环境中使用,其中电气噪声是常见的问题。 此外,RS485支持半双工和全双工两种工作模式,可以根据需要选择。半双工模式下,总线上的设备分成发送器和接收器,不能同时发送和接收数据;而在全双工模式下,每个设备都有自己的发送和接收线,因此可以同时进行发送和接收操作。两个设备之间使用双绞屏蔽线缆连接,两个线缆分别传输A和B信号,它是物理层协议。 二、485电平逻辑 RS485总线具有两种逻辑电平:高电平(1)和低电平(0) 发送状态 高电平(1): A线-B线上的电压是+(2 - 6)V时,表示高电平 低电平(0): A线-B线上的电压是-(2 - 6)V时,表示低电平。 接收状态 高电平(1): A线-B线上的电压≥ -50mV时,表示高电平 低电平(0): A线-B线上的电压≤-200mV时,表示低电平。 不确定状态 当A-B在±200mV之间时,则总线状态为不确定,所以我们会在A、B线上面设上、下拉电阻,以尽量避免这种不确定状态,但有的芯片内部会加上下拉电阻,如RSM485PCHT芯片。 三、485驱动、接收状态 我们使用的SSP485芯片,它内部是没有上下拉电阻。 C277895_DF46B723E5B1F058CCD17A18DC8132F3.pdf(szlcsc.com) 驱动状态: 当DE为低电平时,不管RE是高电平还是低电平,A、B线都为高阻状态,此时容易受外接干扰,因此我们需要额外加上下拉电阻,在A线加上拉电阻,B线加下拉电阻,这样就会在总线空闲状态输出高电平,符合串口的空闲状态。 接收状态 当RE为高电平时,不管DE是高电平还是低电平,RO都为高阻状态,此时很容易受外界干扰,引起误触发,因此可以外接一个上拉电阻或者使用芯片内部上拉电阻,引脚模式配置为上拉输入或者使用外部上拉电阻配置为浮空输入。
五、典型电路 1、SSP485收发典型电路(需要一个额外的控制信号) 普通的485 收发电路,除了“用 RS485_RX 连接 485芯片的 RO 引脚、用 RS485_TX 连接 485 芯片的DI 引脚”,还会用一个MCU的普通 IO 引脚连接到 RE、DE 引脚上,即图中RS485_TX_EN。 当单片机要发送数据的时候,首先将RS485_TX_EN为高电平,数据通过RS485_TX发送出去,当单片机要接收数据的时候,RS485_TX_EN为低电平,数据通过RS485_RX接收回来。 上拉电阻R6和下拉电阻R1,用于保证无连接的 SP485R芯片处于空闲状态,提供网络失效保护,提高RS485节点与网络的可靠性,使总线压差为高电平状态。图中钳位于6.8V的管D1,是为了保护RS485总线的,避免受外界干扰,也可以选择集成的总线保护原件。 2、SSP485自收发典型电路 为什么要设计自收发电路? RS-485总线是半双工的通信总线,因此通常需要MCU控制RS-485收发器的收发状态。有时候,为节省MCU的I/O资源,同时可以简化程序设计,需要实现RS-485自动收发的功能。 1、接收状态 我们将TX设置为开漏输出,因为外面加有上拉电阻,因此TX空闲状态默认为高电平,Q1为AO3401,PMOS管,这是说明书BC3401SOT-23.pdf (szlcsc.com)。 AO3401导通阈值电压为 -1.3V,当Vgs 之间的差压小于-1.3V时,PMOS导通,当大于-1.3V时,PMOS关闭。因此在空闲状态时,TX管脚被上拉电阻拉高,Vgs 管脚电压为0,因此PMOS关闭,RE和DE管脚被下拉电阻拉至低电平,芯片处于接收状态。根据上面的接收真值表可得,当RE为低电平,不管DE为高电平还是低电平,RO状态由外部A/B之间压差决定,因为有上下拉电阻,A-B ≥ -50mV,所以RO输出为高电平,符合串口空闲状态。 2、发送状态 (1) 当TX为低电平,PMOS管Vgs = 0- 5 =-5V≤-200mv,PMOS管导通,RE和DE为高电平,则发射使能,根据驱动真值表可见,此时AB两线电平由DI确定,因为DI是接地的,所以A为低,B 为高,为485逻辑高电平“0”。 (2) 当TX为高电平时,PMOS管Vgs = 0,PMOS,RE和DE为低电平, 根据驱动真值表,A和B为高阻状态,因为A有上拉电阻,B有下拉电阻,A为高,B为低。所以输出了485的逻辑“1” 。
注:R2电阻不可太大,如果此电阻值设置过大,会影响PMOS管导通关闭的速率,当R2为4.7k时,速率只能到9600,当R2为100R时,速率可以满足115200。 3、带保护485普通收发电路
1、在A、B线加上一个共模电感,可以对共模电流进行衰减过滤,提高RS485电路的EMI性能; 2、在共模电感两端并联电阻,作用同共模 电感一致,可以对线路的电流进行抑制,保护485芯片; 3、在A、B线上各线路上接一个电容,用于提高电路的EMI性能; 4、在A、B线上加入TVS二极管,能够提高电路的抗浪涌,防静电; 5、在A、B线上加入热敏电阻PTC5、PTC6, 用于反向电路的高压;
以上就是对485相关内容的说明,如有错误,请指教。
|
从RS485通信原理到实际电路搭建讲解,详细介绍RS485的原理和使用。
讲的的非常到位,受教了。