1. 双绞线
485物理线缆跟CAN一样,使用双绞线,目的是抑制共模干扰
2. 485芯片
485可以理解为一个uart+方向控制,485属于半双工,同时只能发送或者接收,因此需要一根引脚控制数据方向,这跟引脚连接到485芯片,由芯片内部电路实现具体控制。
3. 485收发切换
注意,由于485芯片各个厂家的差异,响应速度也会不同,在通信时要根据物理层硬件特性和链路层协议不一样而合理地,实现收发切换延时。比如刚发送完不能立即切换到接收状态,要延时几百微秒保证485芯片处理完成。
但是又不能延时太多,有的链路层协议中,从设备响应非常快,如果发送完没有及时切换到接收状态,就有可能丢掉从设备响应帧的头几个字节。
4. 端接设计
由于485采用双绞线传输,标准规定双绞线差分特征阻抗在100到150欧之间,485标准制定者选择120欧作为标称特征阻抗。
端接(个人理解是在总线两头各接120欧电阻,干扰比较大的话,可以把每一端120偶电阻用两个60欧电阻串联,中间接一个220pf的电容并接地形成低通滤波器增加抗干扰能力)才能保证数据的正确性。
5. 485设备数量
标准RS-485可以容纳32个标准接收阻抗收发设备。如果实际系统中就是想接入超过32个设备需要使用中继。
6. 隔离设计
降低接地噪声。
7. 链路层协议
以485协议为物理层的链路协议有Modbus RTU
8. 通信拓扑
485不但与uart一样,可以实现点对点的通信,即一主一从,还可以实现一主多从通信,从机地址具体要结合链路层协议,比如modbus协议中就规定第二个字节开始为地址数据。
需要注意的时,485总线不像CAN一样,任何结点都可以作为主机,485总线上主机一般出厂时就固定,从机也固定。
485协议中,只有主机发送了命令,从机才响应(如果是广播,从机也不响应),否则从机不能响应,从机不能主动发送数据,只能被动接收,然后再响应。