关于485总线需要知道的一些问题
485全名叫做EIA-485也叫做RS-485或者RS485,是隶属于OSI模型物理层的 电气特性规定为2线、半双工、平衡传输线多点通信的标准。是由电信行业协会(TIA)及电子工业联盟(EIA)联合发布的标准。实现此标准的数字通信网可以在有电子噪声的环境下进行长距离有效率的通信。在线性多点总线的配置下,可以在一个网络上有多个接收器。因此适用在工业环境中。
485的通讯距离最远可以多少
根据485 总线结构理论,在理想环境的前提下,485 总线传输距离最远可以达到1200 米。其条件是通讯线材优质达标,波特率为9600,只负载一台485 设备,才能使得通讯距离达到1200 米,所以通常485 总线实际的稳定通讯距离往往达不到1200 米。如果负载485 设备多,线材阻抗不合乎标准,线径过细,转换器品质不良,设备防雷保护复杂和波特率的提高等等因素都会降低通讯距离。
485通讯简图
485总线的带负载能力
我们在网上搜索485的带负载数量会发现有人说32个,有人说128个,还有人说256个因为地址是1byte 0-255。那到底是多少呢?其实不管是支持32个、128个、256个都没有错,但是这些都是理论值,实际负载多少个设备,还要看RS485转换器用什么芯片,一般485 芯片负载能力有三个级别——32 台、128 台和256 台。并和所用电缆的品质相关,节点越多、传输距离越远、电磁环境越恶劣,对所选的电缆要求就越高。
RS-485的“节点数”主要是依“接收器输入阻抗”而定;根据规定,标准RS-485接口的输入阻抗为≥12kΩ,相应的标准驱动节点数为32个。为适应更多节点的通信场合,有些芯片的输入阻抗设计成1/2负载(≥24kΩ)、1/4负载(≥48kΩ)甚至1/8负载(≥96kΩ),相应的节点数可增加到64个、128个和256个。
支持不同节点数的芯片
如何消除485通讯干扰
RS485信号以长距离、多用户、抗(共模)干扰著称。但在现实情况下,尤其是在安防、智能建筑施工环境下情况截然不同。许多人都遇到过RS485线路干扰问题,当然最直观的解释就是没有按照施工规范来做。但是一但按照繁复施工规范来做,对于目前的行业现状(造价与技术人员素质)来讲,都是比较有挑战的。
对于强共模干扰。这种情况很像图像传输中所说的'地干扰'。由于接收设备在不同地点,直接或间接接地,造成信号线与'本设备地'或'本设备数字地'之间的交流(通常是50赫兹)信号超标。表现为接收时有时无,甚至一直无法接收。更有甚者,收发相距一米便无法实现数据接收。消除共模干扰的手段包括采用电气隔离方式进行通讯、采用屏蔽线进行通讯将屏蔽层作为通讯地线、由一点可靠接入大地等。
需要提一下的是485的差模干扰。485通讯线由两根双绞线组成,它是通过改变两根通讯线之间的电压差的方式来传递信号的,因此称之为差分电压传输。差模干扰存在于两根信号线之间,属于对称性干扰。消除差模干扰的方法是在电路中增加偏置电阻,并使用双绞线。
终端电阻在通讯中的作用
在485组网过程中另一个需要注意的是终端负载电阻问题,在设备少距离短的情况下不加终端负载电阻整个网络能很好的工作但随着距离的增加性能将降低。理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际应用上难以掌握,美国美信(MAXIM)公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配。
一般终端匹配采用终端电阻方法,RS-485应在总线电缆的开始和末端都并接终端电阻。终端电阻在RS-485网络中取120Ω。相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗大约在100~120Ω。这种匹配方法简单有效,但有一个缺点,匹配电阻要消耗较大功率,对于功耗限制比较严格的系统不太适合。另外一种比较省电的匹配方式是RC匹配。利用一只电容C隔断直流成分可以节省大部分功率。但电容C的取值是个难点,需要在功耗和匹配质量间进行折衷。还有一种采用二极管的匹配方法,这种方案虽未实现真正的“匹配”,但它利用二极管的钳位作用能迅速削弱反射信号,达到改善信号质量的目的,节能效果显著。
一般情况下不需要增加终端电阻,只有在485通信距离超过300米的情况下,要在485通讯的开始端和结束端增加终端电阻。还需要注意的是当设备数量较多时(一般超过22台),一般不需要再加终端电阻,因为终端电阻会降低485总线的带负载能力。
485与Modbus的关系
RS485是一个物理接口,简单的说是硬件载体。而MODBUS是一种国际标准的通讯协议,用于不同厂商之间的设备交换数据(一般是工业用途),所谓协议,也可以理解为软件。一般情况下,两台设备通过MODBUS协议传输数据在最早是用RS232(老式电脑上的串行通讯口)作为硬件载体的,也有用RS422的,但是最常用的还是RS485,因为传输距离远,在一般工业现场用的比较多。
MODBUS协议又分MODBUS_RTU、MODBUS_ASCII和后来的MODBUS_TCP三种模式:其中前两种(MODBUS_RTU,MODBUS_ASCII)所用的物理硬件接口都是串行(Serial)通讯口(RS485,RS232,RS422)。
而MODBUS_TCP则是为了顺应当今世界发展潮流,用以太网(Ethernet)作为硬件载体来连接、传送数据。也就是我们电脑上一般用的网口了。