https://blog.csdn.net/ouyangxin95/article/details/78174145
RS-485总线技术只是规定了接口的电气标准,并没有规定RS-485接口的电缆,插件以及通信协议,只是OSI规范中物理层的一个标准,由于RS-485总线采用差分平衡传输方式,一般使用的电缆建议采用屏蔽双绞线,使得485+与485-两两双绞,外面采用屏蔽层屏蔽外部电磁干扰,但是在现场实施施工中,有人采用平行线也是可以适用于RS-485总线的电缆,只是抗干扰能力较差,传输距离不远且通信质量不稳定,一般都是建议采用屏蔽双绞线。而接口定义形式,由于RS-485总线一般都是用到485+,485-以及GND三根线,没有硬性规定接口定义形式,一般市面上多见的接口形式有RJ45接口,工业接线端子接口,DB9串口接线端子以及RJ11电话线接口等。一般而言,采用工业接线端子更为合适,因为如果需要接入终端电阻的话,采用工业接线端子是很好接入的,而且接入屏蔽双绞线也是工业接线端子更加方便。
由于RS-485总线并没有规定通信协议,有很多厂家自己推出基于RS-485总线的通信协议,其中最为著名的是由modicon公司推出的Modbus协议,该协议具有两个版本,一个是Modbus RTU和Modbus ASCII两种帧报文格式,该内容我们会在其他文章内详细描述,我们现在讨论基于RS-485总线通信的协议的一些基本原则以及相关情况。
由于RS-485总线支持点对多点通信模式,而其没有数据冲突检测解决机制,所以数据冲突的问题都是依靠主机来解决,通过主机对整个系统进行全方位的控制,避免数据冲突的产生,一般而言,由于必须通过主机进行控制以避免数据冲突,基于RS-485总线通信只能支持一主多从的通信方式,在现实生活中,老师在课堂讲课的模式其实就是一种一主多从的通信方式,下面我们按照老师课堂授课的比喻来说明RS-485总线通信协议的一些基本原则。
由于RS-485总线支持一主多从的通信模式,主机需要能够识别下位多个从机设备,所以从机设备必须具备一个在485网络中的唯一的地址码,就像班级中给学生分配学号一样,学生的姓名可能会有重复,但是学号必须是该班级内唯一的。而老师只需要叫唤学生的学号要求学生回答问题或者做相应的动作等。 同样的道理,485通信主机通过呼叫485通信从机的地址码来控制485通信从机的相关动作。
485通信网络开始通信的时候,就会对整个网络的设备进行轮询,也就是对485通信从机进行逐个的询问,确认网络中是否存在该设备以及该设备是否能够正常运转。就像老师在正式授课之前会对班级进行点名,确认是否有人缺课,一旦有人缺课做上标识以保证在课堂提问的时候不会点到缺课的学号以免浪费时间。
485通信主机下发指令是以广播形式发送,485通信从机接收到相关指令,将指令中的地址码与自己的地址码对应,发现是下发给自己的指令则立即执行相关指令,执行完相关指令之后发送相应的状态代码给485通信主机,示意其可以继续下一条指令。否则丢弃该指令,静默等待485通信主机的下一条指令。同样的道理,当老师向某个学生提问的时候,其他学生在此期间是不能出声,只有被提问的学生回答问题,当学生回答完问题之后,就说回答完毕,然后大家静待老师的下一个提问或者授课。
一般而言,老师授课都是一个人在课堂,但是有些特殊情况是需要两个或者两个以上的老师同时在一个课堂授课,这样就需要一个协调的机制来协调多个老师的授课。而在485通信网络中,也有可能存在多个RS-485通信主机共存于同一个RS-485通信网络中,在这种情况下,深圳市国科伟业通信技术有限公司开发出相应的485共享器用于满足这些需求,485共享器分为两种,抢占式模式以及优先级模式,抢占式模式就是先到先得,就像老师在授课的时候,谁在授课的时候其他老师是不能打断他的授课的,只有在他将该段内容讲完之后,停顿一定时间之后,其他老师才可以开始自己的授课,同样的也是先到先得,谁先开口,谁就授课,直到该段内容讲完之后再重新争取控制权。优先级模式则是定义相应的优先级,比如系主任的优先级高于普通老师的优先级,即使在老师正常授课的时候,系主任说:这里我插一句,则老师的授课自动停止,等待系主任讲完之后再重新抢夺控制权(注:485共享器并不带有存储功能,只能是多个主机重新抢夺控制权,而不是原有中断485通信主机的重新接续原有的指令,原有的通信直接失败)。
还有就是485通信线路问题,当传输距离较远的时候或者外部干扰过大导致噪音太大,485通信信号会有一定的衰减,就像教室较大以及教室外面比较吵闹的情况,后面的学生并不能清楚的听到相关的内容,在中间增加一个485中继器,将衰减的485信号重新整形还原放大,使得距离较远的485通信从机能够识别485信号。还有就是当教室较大,可能会在教室里面产生混音,通过在教室合理放置多个喇叭,就像485总线连接为星型拓扑结构,产生了信号反射导致通信质量不稳定,使用485集线器将各条485总线相互隔离,独立驱动可以有效的解决类似问题。
来源:oschina
链接:https://my.oschina.net/u/4343789/blog/3781643