一、什么是RS485通讯
485通讯协议是一种用于在数据通信中传输信息的通信标准。一般采用的是主从通信方式,即一个主机带多个从机。适合远距离传输,最远通讯距离可达1200米。采用双绞线。单片机串口通信一般是TTL电平,如果需要RS485 通信,就需要RS485芯片在中间转换一下。
半双工通讯:对于通讯两端,不能同时向对方法发送数据,必须错开时间段发送。
差分信号。逻辑1(高电平):两根信号线(A+和B-)的电压差在 +2V~+6V 之间 ;逻辑0(低电平):两根信号线(A+和B-)的电压差在 -2V~-6V 之间。差分信号具有很强的抗干扰能力。当噪声出现时,由于噪声是等值且同时作用在两个信号线上,所以噪声对两个信号的影响是一样的,能有效抑制电磁干扰(EMI)。这是因为两根线靠得很近,信号幅值相等,所以与地线的耦合电磁场的幅值也相等,但信号极性相反,这就像两个相同大小但方向相反的矢量,他们会相互抵消。
二、RS485电路
1.常见RS485通讯电路
1./RE、DE为接受和发送使能引脚。发送和接受控制逻辑查看芯片手册。以此图为例,/RE低电平时开始接收数据,DE高电平时开始发送数据,
2.A、B线分别接上、下拉电阻,使信号处于确定的逻辑电平,提高信号稳定性。
3.R81为终端匹配电阻,一般取值120Ω。在组建RS-485总线网络时,通常使用特性阻抗为120Ω的屏蔽双绞线,由于RS-485收发器输入阻抗一般较高,在信号传输到总线末端时会由于受到的瞬时阻抗发生突变,导致信号发生反射,影响信号的质量。加入终端电阻主要是为了匹配通信线的特性阻抗,防止信号反射,提高信号质量。需要注意的是,通信速度低或者通信距离近的情况下建议不加终端电阻,硬件设计时,可以预留外挂或焊接120Ω电阻的位置。
4.D44 TVS管用来防护差模浪涌电压。 TVS6、TVS8 各自接地用来滤除共模浪涌电压。TVS5、TVS7用来做接口防护,保护IO。也可以用小电阻代替。
2.RS485自动收发电路
1.控制逻辑
接受数据:RS485_TS引脚为高电平时,Q1导通,RE#和DE引脚被拉低至低电平,RE#低电平有效,此时开始接受数据。
发送数据:发送数据引脚是 RS485_TX,应该 RS485_TX 发送1,AB发送1;RS485_TX 发送0,AB发送0。当 RS485_TX 发送1时:NPN三极管导通,RE和DE的引脚是低电平,发送禁止,接收使能,进入接收状态,SP3485芯片的AB引脚进入高阻状态,因为R4把A拉高,R5把B拉低,所以,AB传输的是1。所以,当RS485_TX发送1时,AB引脚发送1。当 RS485_TX 发送0时:NPN三极管不导通,RE和DE的引脚是高电平,进入发送状态,SP3485芯片会把DI上的电平反应到AB引脚上输出,因为DI已经接地,所以AB引脚会传输0。所以,当RS485_TX发送0时,AB引脚发送0。
2.注意
1. 通信速度慢:三极管有电容效应,导致关断时间较长,导致RE/DE从低到高电平变化出现比较大的斜坡.同时485输出高电平,是依靠上下拉来完成的,会导致上升沿不够迅速,因此上下拉的阻值选择也是影响速度的关键。
2.驱动能力弱:由于当RS485_TX为高,485电平是由其上拉电阻完成的,因此弱提高驱动能力,就要减小电阻,由于485芯片驱动能力有限,电阻太小会导致RS485_TX为低的时候,485芯片无法将485总线拉低,因此总线上所有上拉电阻的并联值不应该小于375欧。还用当接入120欧的终端电阻的时候,AB两相的电压差由终端电阻和上下拉分压得到,会导致AB两相的电压差变小,因此自动收发串口转RS485设计不太适合添加终端电阻。