[发明专利]一种基于RS485通信的数据冲突传输方法在审
申请号: | 201710977311.7 | 申请日: | 2017-10-19 |
公开(公告)号: | CN107659456A | 公开(公告)日: | 2018-02-02 |
发明(设计)人: | 陶林;田越;李康峰;孙琳琳;崇阳;辛树奇;袁赫;牛福来;陈菲;周长学 | 申请(专利权)人: | 奥维飞越通信有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L12/26;G06F13/42 |
代理公司: | 沈阳科苑专利商标代理有限公司21002 | 代理人: | 李巨智 |
地址: | 110179 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 rs485 通信 数据 冲突 传输 方法 | ||
技术领域
本发明涉及RS485有线通信领域,具体地说是一种基于RS485通信的数据冲突传输方法。
背景技术
当前,RS485通信以其抗干扰能力强的传输距离远的优点而广泛应用于多点之间的数据传输,但目前存在一个较大的问题就是RS485通信网络中必须采用一主多从的通信方式,主机在发送数据时各从机只能处于接收状态,并且同一时刻只能有一个从机进行应答,在从机增多时每个从机与主机的通信间隔将会加大;而从机之间也无法直接进行通信。
发明内容
针对现有技术的不足,本发明提供一种基于RS485通信的数据冲突传输方法,解决RS485总线中,各从机间无法直接通信且通信效率低的问题。
本发明为实现上述目的所采用的技术方案是:
一种基于RS485通信的数据冲突传输方法,包括以下步骤:
步骤1:将一段时间分割为若干个时隙,各个从机在时隙内工作;
步骤2:各从机根据其对应的特征码确定起始时隙,延时开启串口通信;
步骤3:各从机侦听总线状态,当数据发送时,从机根据总线状态确定是否收发数据,否则保持侦听状态。
所述一段时间为1~5秒。
所述若干个时隙为100~200个,每个时隙的长度为5~10ms。
所述特征码为将从机芯片上提取的16字节ID,通过CRC校验得到的2字节唯一值。
所述起始时隙通过特征码与时隙总数取余计算得到。
所述根据总线状态确定是否收发数据包括以下过程:
如果总线处于繁忙状态,则从机等待发送数据,并顺延至下一个时隙;否则从机发送数据。
如果连续三个时隙总线处于繁忙状态,则标识总线故障。
如果连续三次标识总线故障,则确定总线故障并向用户发送故障警报。
所述繁忙状态为总线有数据发送或从机有数据发送。
本发明具有以下有益效果及优点:
1.本发明的网络中各节点可随时接入网络,每个节点都可以作为主机节点,也可以作为从机节点;
2.本发明的每个节点数据可以在较短的时间内发送到目标节点,通信效率高;
3.本发明具有多种数据冲突监测机制,实现数据的可靠传输;
4.本发明提供多路RS485通信端口支持,扩展网络规模。
附图说明
图1是本发明的方法流程图;
图2是本发明实例系统的整体组成示意图;
图3是本发明的时隙工作模式示意图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
如图1所示为本发明的方法流程图。
根据RS485总线网络中从机的总数及各从机对应答延时时间的要求,将一段1~5s的时间,分割为若干时隙,每个时隙的长度为5~10ms。
为避免总线上所有从机同时启动从而引发同时竞争使用总线的问题,应使各从机在不同的时刻开始打开串口,提供串口服务。
时刻监听串口的状态,在串口接收数据时,将总线状态置为忙,数据接收完毕超过一定时间后可清除总线忙状态;在串口发送时将总线状态置为忙,数据发送完毕后清除总线忙状态。
若有数据需要发送,在总线处于空闲时,数据可以直接发送;否则将数据顺延至下一时隙再次发送。
若连续顺延三次都未发送成功,则置位总线故障标识。否则,继续监测串口状态。
若连续三次置位总线故障标识,则确认总线故障并向用户发送故障警报。
如图2所示为本发明实例系统的整体组成示意图。
从物理的网络构成来说,和传统的RS485网络是一致的,各节点通过双绞线接入系统,但在本系统,各从机以一定的规则向任意其他从机发送和应答数据的。该系统设计的节点地址范围为0~255,理论上可以容纳的节点数量是256个,但在实际使用时,受实际电路的影响,可以适当缩小网络规模。
如图3所示为本发明的时隙工作模式示意图。
在本发明的实例系统中,设定节点容量为200点,每个时隙的长度为5ms,则理论上每个节点向目标节点发送数据时的最大时延为1s,这于目前传统的RS485系统相比也是很快的,在一些实时性要求不是很严格的系统中足够满足应用要求了。而该系统并没有严格的时隙使用限定,即:节点在发送数据时,并不限定数据必须在5ms时隙间隔内发送完毕,在数据比较长时可以顺延占用下一个时隙继续发送。以115200波特率,8位数据位,无校验,一个停止位为串口参数发送数据时,一个完整的时隙可以支持发送的数据长度约为57字节。在数据包不是很长时一个时隙足够使用了,若数据较长,可继续占用下一个时隙,但最好不要连续占用3个及以上时隙长度。因此,以最长连续占用2个时隙为限定,每包数据的最大长度为114字节。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奥维飞越通信有限公司,未经奥维飞越通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710977311.7/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置