RS485,RS的意义为Recommended Standard的缩写,也就是推荐标准,RS485协议是一种常用的半双工-异步-串行通信总线。半双工的意思就是两者通信时,同一时刻,只能由其中一方发送,另一方只能接收,不可以同时收发。
RS485总线作为一种通用的工业应用控制总线,应用非常广泛,因为他具备很多的特点:
(1):支持多节点:一般支持最大32个节点,并且节点间可以通过Modbus或者其他的工业控制协议进行数据交互与设备控制。
这种方式只需要两根信号线就可以保证通讯,两根数据线A/B之间由电压差来表示信号,也就是表征了逻辑0和逻辑1,其中逻辑1信号由两线(A+和B-)之间电压差在+2V~+6V之间表示,逻辑0由两线(A+和B-)之间电压差在-2V~-6V之间表示。通常二者电压差极限被认定在200mv左右,电压差低于200mv的信号就很难被检测到了。
这种方式之所以能够有很强的抗干扰性,也是得益于差分信号的优势,因为电磁干扰噪声对电平波形会造成一些毛刺的影响,从而导致传输端传输到接收方后的整个波形有部分失真,这在低速通信时影响较小,但是高速通讯时如果叠加上这种电磁干扰,很容易导致接收的信息发生错误,这也是为什么工业通讯协议基本都带有校验方式的原因(比如modbus协议的CRC校验),但是RS485差分信号不一样,电磁干扰带来的毛刺理论上会对两根通讯线A/B都造成影响,但是二者之间的电压差信号却并没有发生改变,比如电磁干扰导致A/B线在某一时刻电压比信号源高了150mv,二者相减会发现,他们之间的电压差是没有发生改变的,这就很好的避免了干扰的影响。
因为本身只需要接两根数据线和一根地线,所以接线是十分简单的,而且RS485总线的电路也比较简单,这里列出一个比较典型的RS485电路:
这里有个GPIO25,这个是因为485转换芯片还区分硬件485和软件485,因为前文说过,RS485通讯某一时刻设备只能处于发送或者接收状态,那么他们之间的转化是怎么样的呢?一般设备都是默认处于接收状态,比如设备1和设备2之间通讯,在没有信息通讯时,两者都处于接收状态,当有一方需要发送消息时,转换为发送状态并发送数据,另一方接收,发送完毕后再次切换回接收状态。硬件485的意思就是这个发送与接收的转换是有RS485转换芯片自行转换的不需要接收方和发送方的介入,只负责收发即可。而软件485就是发送通过RS485的软件控制脚(就是上图中的GPIO25),GPIO25输出高电平,RE=DE=0V,进入接收模式;GPIO25输出低电平,RE=DE=3.3V,进入发送模式,相当于软件对交互过程进行控制。
在A线上加上拉电阻,B线上加下拉电阻也是常见的做法之一,因为总线处于没有信息交互的待机状态时,电平并不固定,一般在-200mv到200mv之间,这个时候的接收方就有可能受到高电平信号或者低电平信号。所以在空闲期间需要保持电平。
问题:RS485接收数据错乱。
解决办法:
检查RS485波特率设置:
确保串口助手的波特率设置和程序串口的波特率一致。
检查电路板上所用晶振是否与推荐电路的晶振频率一致。
检查RS485终端电阻:
用万用表测量RS485收发器芯片终端脚AB之间的电阻值是否为120Ω。特别需要注意的是,有些USB转RS485模块的终端脚已经加上了120Ω的电阻,若在后面的RS485收发器芯片终端AB脚加120Ω电阻,会使阻抗失配导致数据异常,这时需要取掉一个120Ω电阻。
检查信号完整性:
检查RS485的双绞线屏蔽层是否接地。
检查RS485通信线附近是否有强电磁干扰,需要加隔离保护措施或者远离干扰源。
适当降低波特率,看看信号有无优化,减小电缆的分布电容对信号产生的影响。
问题:RS485在停止通讯时接收器依旧有数据输出。
解决办法:
硬件解决:在通讯总线的A端采用上拉,B端采用下拉,以此来保证接收器输出为固定的高电平。
软件解决:在通讯数据包内加几个起始同步字节,必须在同步后才开始数据通讯的传输。
RS485总线支持多个设备同时连接,构建起一个多节点通信网络。这意味着在工业控制系统中可以轻松添加新的设备,而无需对总线拓扑结构进行调整。理论上可以连接多达32个(实践中甚至更多)设备进行半双工通信。
RS485总线采用差分信号传输方式(A线和B线),这大大增强了其抗干扰能力,使得信号在长距离传输时仍能保持较高的可靠性,适用于工业环境中常见的电磁干扰场景。
得益于差分信号的高抗噪性和较低的信号衰减率,RS485总线能够在相对较低的数据速率下实现远距离通信,通常可达1200米,某些条件下甚至可达到几公里。
RS485总线采用半双工工作模式,虽然限制了同时收发的能力,但这种模式简化了硬件设计,降低了成本,对于大多数控制和监控应用来说已足够。
RS485协议报文通常由以下几个部分组成:
从机地址:标识网络中的从设备。
功能码:指定要执行的操作,例如读取或写入。
寄存器地址:指定要访问的寄存器的具体地址。
寄存器数量:指定要读取或写入的寄存器数量。
CRC校验码:用于确保数据传输的完整性。
在配置RS485模组设备时,需要特别注意功能码和寄存器地址的设置。例如,读取保持寄存器40001的Modbus地址可能如下所示:
从机地址:0x01
功能码:0x03(读取保持寄存器)
寄存器地址:0x0000
寄存器数量:0x0001
CRC校验码:0x1234
通过本文的介绍,可以了解什么是RS485协议、RS485总线协议应用特点、RS485协议的常见问题及其解决办法,以及常见RS485总线模组的功能特点和RS485串行通讯协议的详解。
今天的分享就到这里啦,EBYTE每一天都致力于更好的助力物联化、智能化、自动化的发展,提升资源利用率,更多工业级RS-485集线器产品更多资料信息,感兴趣的小伙伴可以登录我们的亿佰特官网进行了解,也可以直接拨打400电话咨询技术专员!
相关阅读:
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 无锡办事处刘经理:13558641933
成都总部销售经理:
秦 科(无线模块):18884314654 冯子恒(无线模块):18828049434
蔡友银(无线模块):13882211021 葛宇龙(通信设备):19138800613
胡兵(外贸销售经理):18584911141、 sales06@ebyte.com
业务邮箱:support@cdebyte.com 全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都亿佰特电子科技有限公司【版权所有】 蜀ICP备13019384号