RS485通讯----SP3485芯片学习

RS485通讯

以SP3485芯片作为参考。

1、RS-485简介
RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。

应用特点:

  • 传输数据速度高达10Mbps,即10000000 bit /1024/1024/8=1.192MB/s
  • VCC正常电压5V供电
  • 使用STP超五类(CAT5e)双绞线(我觉得没必要100Mb/s),我认为STP四类(CAT4)双绞线(16Mbps)就可以了。其中双绞线又分为STP屏蔽UTP非屏蔽两种。
  • 传输数据距离远,可高达1200米(仅仅是两个SP3485发送与接收之间距离)

2、SP3485芯片

下面是芯片的原理图:
RS485通讯----SP3485芯片学习

  • 引脚6和7分别是A、B用来实现差分传输。
  • 引脚1和引脚4是RO、DI引脚,分别负责接收与发送数据。
  • 引脚8是VCC接电源5V,引脚5接地
  • 引脚2是RE低电平有效,接收数据。换个说法引脚RE低电平使能接收,高电平失效接收,我个人理解为是否要接收数据的引脚
  • 引脚3是DE高电平有效,发送数据。换句话说引脚DE高电平使能驱动(A线、B线),低电平失效驱动(A线、B线)

当接收与发送时使用差分传输,所谓差分传输就是A引脚和B引脚通过电压比较得到逻辑电平:
A-B>+0.2V 逻辑电平,RO输出电平1
A-B<-0.2V 逻辑电平,RO输出电平0

另外,当DE引脚置于高电平时候有下表

A电平 B电平
DI逻辑电平1 1 0
DI逻辑电平0 0 1

3、实际应用

我先放出一个原理图:
RS485通讯----SP3485芯片学习
一般将RE引脚DE引脚连接起来,SP3485芯片可以使用一个I/O引脚来控制RS485芯片高电平发送低电平接收

上图中有三个电阻R1、R2、R3,他们的参数一般是这样设置:R1=R3,要确保R2占电压在200mV以上,即A线与B线之间电压在200mV左右,但一定大于200mV。

我在原理图中R1=R3=47K,经过计算R2=1.9K,根据厂家制造贴片电阻规格,所以实际应用的话R2=2.1K电阻,R1、R3选用47电阻。

【光耦隔离】由于传送距离远,通讯电线有可能会被雷击,或是其他不好因素影响通讯电线,为避免整个系统烧毁。所以485通讯部分与主控制芯片间加入光耦进行隔离。

光耦速度可以通过上拉电阻进行控制。。。
待更新。。

4、提高信号传输质量
A线与B线之间需要一个匹配电阻,也就是上图的R2电阻来保证在空闲状态下,不会出现信号混乱的的情况,防止接收混乱的数据(锁死在一个稳定电压差,一般锁定电压差在200mV以上)

  • 根据传输距离长远以及环境,还可在A线、B线上接入滤波电容(这里我放置104电容,应该按照实际情况选取滤波效果最好的值(原理跟RC无源滤波有点像)),去除高频噪声,如下图所示。
    RS485通讯----SP3485芯片学习
  • 另一种就再A、B线上加入无源LC滤波电路,但成本也会微略提高。
    RS485通讯----SP3485芯片学习

总结:
我觉得这个软件程序设计上并不是重点,先放图。

RS485通讯----SP3485芯片学习
因为传输时,使用USART通讯经过SP3485芯片发送,然后发送给另一个接收SP3485芯片转换成USART通讯,从而完成远距离数据传输。我认为RS485只是作为远距离传输一种手段,RS485应该侧重于硬件设计上。

以上仅供参考。