根据OSI模型,物理层以SP3485芯片作为参考,其次芯片引脚与MAX485也差不多
关于双绞线观点有点问题更新一下 — 2020/5/5
引入Modbus RTU观点 —2020/5/19
修改文章标题 —2020/5/22
增加终端电阻阻值 —2020/6/6
RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。
应用特点:
当接收与发送时使用差分传输,所谓差分传输就是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 |
我先放出一个原理图:
一般将RE引脚和DE引脚连接起来,SP3485芯片可以使用一个I/O引脚来控制RS485芯片高电平发送,低电平接收。
上图有三个电阻R1、R2、R3,芯片阻值大可忽略不计,只看三个电阻,他们的参数一般是这样设置:R1=R3,要确保R2占电压在200mV以上,即A线与B线之间电压在200mV左右,但一定大于200mV,R2是终端匹配电阻
这里大于200mV是保证不发送数据情况下,在异步串口通讯为处于空闲状态(高电平),换个方向理解空闲状态就是A线与B线之间关系为:A-B>+0.2V。
R2直接选取100~120ohm的电阻,这是为了信号阻抗连续,如果发射端与接收端的阻抗相差太大容易造成信号反射,也就是R2会信号A、B线电压跳转,导致接收不良信号。
我在原理图中终端电阻为R2=120(ohm),分压电阻串联接5V,经过计算R1=R3=1.440K(ohm)电阻,根据厂家规格R1、R3选用1.4K或者1.5K代替使用。
注意:图片上的电阻值没换,以后再更新一下
由于传送距离较远情况,通讯使用的A、B线(双绞线)有可能遭遇雷击后,或是其他不好因素影响通讯系统。所以485通讯部分与主控制芯片间还应该加入光耦进行隔离,避免整个系统烧毁。
A线与B线之间需要一个匹配电阻,也就是上图的R1、R2、R3电阻来保证在空闲状态下,不会出现信号混乱的的情况,防止接收混乱的数据(锁死在一个稳定电压差,一般锁定电压差在200mV以上)
【滤波】
【双绞线】
使用STP(屏蔽)双绞线能够提高信号的传输质量,前提是信号差模传输。
像上面这张图中,一根线中有多跟细小的铜丝线(多芯铜线),这样会影响信号传输的质量,原因是多根铜芯下抗干扰能力差,而且小铜丝线会互相串扰细(共模信号),所以这种不推荐远距离使用。
像这种7类(CAT7)的双绞线,它传输信号质量不错,单芯铜线适合用于高频,而且每组双绞线都有铝箔屏蔽干扰信号,一条CAT7的线一共四组双绞线,但这个真的贵。。。。
如果说电路板上有一个SP3485芯片,那么至少需要一组双绞线(也可以使用两组双绞线传输,但每组双绞线一定要是差模传输才能提高质量),为提高传输可靠度,也可以使用两组的双绞线,每组双绞线中各取一根铜线选择A线,另外的剩下铜线选择B线。
拿CAT7中两组双绞线举个栗子铜线(我看图片CAT7线举个栗子):
绿色、绿白是一组双绞线
蓝色、蓝白是一组双绞线
485芯片中A、B线应该对应关系:
A -->> 绿色、蓝色
B -->> 绿白、蓝白
也可以是这样:
A -->> 绿白、蓝白
B -->> 绿色、蓝色
这样就保证是差模传输,如果有人接错共模传输就diao死它。
就像这样接:
A -->> 绿白、绿色
B -->> 蓝白、蓝色
同样适用于CAN总线,因为它也是差模传输
这种STP双绞线相对CAT7的双绞线比较便宜一半的价格,推荐使用这种结构的双绞线,根据自己需求选择多少组双绞线,第几类双绞线。
我觉得这个软件程序设计上并不是重点,先放图。
因传输时,使用USART通讯经过SP3485芯片发送,然后发送给另一个接收SP3485芯片转换成USART通讯,从而完成远距离数据传输。RS485只是作为远距离传输一种手段,RS485应该侧重于硬件设计上信号传输质量。
以上是Modbus通讯物理层。
Modbus RTU通讯协议基于串口/TCP/UDP等方式通讯,理解这个协议之后看看Modbus TCP就不会太难。