一种485多主通信的方法和装置的制造方法

文档序号:9828038阅读:554来源:国知局
一种485多主通信的方法和装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种485多主通信的方法和装置。
【背景技术】
[0002]485通信网络是一种采用差分平衡式传输的数字多点系统,其一般采用的是主从的通信方式,即一个主机带多个从机,同时,主机和多个从机之间采用半双工的通信模式,因此,485通信网络以其低成本、设计简单的优势得到广泛应用。
[0003]目前,485通信网络中采用半双工通信技术只能采用主机询问从机应答的方式,即主机逐一轮询总线的从机,从机按照轮询机制回应主机,从而避免485通信网络中多个主体同时处于发送状态而造成总线上信号的冲突。
[0004]但是,当单个主机挂接的从机较多时,采用轮询机制会导致轮询时间长,通信速度慢,无法满足数据的快速交换,进而使得通信效率低。

【发明内容】

[0005]本发明的实施例提供一种485多主通信的方法和装置,用以解决现有485通信系统中单主机通信轮询时间过长,通信效率低的问题。
[0006]为达到上述目的,本发明的实施例采用如下技术方案:
[0007]本发明实施例提供了一种485多主通信的方法,包括:
[0008]第一节点确定空闲等待时间,所述空闲等待时间为所述第一节点从总线上无数据传输到发送数据所等待的时间;
[0009]检测在所述空闲等待时间内所述总线上是否有数据传输;
[0010]若没有,则所述第一节点在所述空闲等待时间届满时发送数据。
[0011]本发明实施例还提供了一种485多主通信的装置,包括:
[0012]第一确定单元,用于确定空闲等待时间,所述空闲等待时间为所述第一节点从总线上无数据传输到发送数据所等待的时间;
[0013]检测单元,用于检测在所述空闲等待时间内所述总线上是否有数据传输;
[0014]发送单元,用于当所述检测单元检测到在所述空闲等待时间内所述总线上无数据传输,则在所述空闲等待时间届满时发送数据。
[0015]本发明实施例提供了一种485多主通信的方法和装置,通过确定第一节点的空闲等待时间,并检测在第一节点的空闲等待时间内总线上是否有数据传输;若没有,则第一节点在第一节点的空闲等待时间届满时发送数据。这样,将485总线上的各个节点均作为第一节点,无主从关系,通过计算第一节点的空闲等待时间,使得第一节点在其空闲等待时间届满时发送数据,无需像现有技术中采用主机轮询的方式进行数据通信,解决单主机通信轮询时间过长,通信效率低的问题。
【附图说明】
[0016]为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0017]图1为本发明实施例提供的一种485多主通信的方法示意图;
[0018]图2为本发明实施例提供的另一种485多主通信的方法示意图;
[0019]图3为本发明实施例提供的另一种冲突检测的方法示意图;
[0020]图4为本发明实施例提供的一种485多主通信的装置示意图;
[0021]图5为本发明实施例提供的另一种485多主通信的装置示意图;
[0022]图6为本发明实施例提供的另一种485多主通信的装置示意图。
【具体实施方式】
[0023]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0024]本发明实施例提供了一种485多主通信的方法,该方法应用于标准485通信网络中的各个节点,标准485通信网络中的各个节点均可作为第一节点,且无需外接其他接口,以实现数据发送。具体的,如图1所示,该方法包括:
[0025]步骤11、第一节点确定空闲等待时间,该空闲等待时间为第一节点从总线上无数据传输到发送数据所等待的时间。
[0026]具体的,当总线上无数据传输时,需要占用总线的节点,即需要发送数据的节点确定各自的空闲等待时间,由于总线上的各节点之间无主从关系,因此,连接在总线上的每个节点均可作为第一节点。
[0027]其中,第一节点确定自身的空闲等待时间具体包括:
[0028]al、获取第一节点的随机属性信息,第一节点的随机属性信息包括第一节点的地址信息、和/或当前环境中第一节点的硬件参数、和/或0-255中的任一随机数。
[0029]a2、对第一节点的随机属性信息进行求和运算,得到第一参考值。
[0030]a3、根据第一公式确定第一节点的空闲等待时间,第一公式为=T1= M imod N^t1;其中,!\为第一节点的空闲等待时间,M1S第一参考值,t i为无冲突最小等待时间,N1为第一模值。
[0031]示例的,假设总线上连接有100台机器,每个机器为一个节点,这100台机器的地址按照01、02、……、100依次编号。当总线上无数据传输时,所有的节点都需要发送数据以占用总线,则每个节点计算各自的空闲等待时间。以第一节点为地址为62的机器为例,对该节点的空闲等待时间进行计算,具体的,获取的第一节点的随机属性信息包括第一节点的地址信息为62、第一节点当前所处的环境温度为20度,且从(0-255)中获取的随机数为89,那么,第一参考值M1等于171,即M1= 62+20+89 ;若第一模值为32,无冲突最小等待时间1^为25ms,则根据第一公式得到第一节点的空闲等待时间为36ms。
[0032]步骤102、检测在空闲等待时间内总线上是否有数据传输。
[0033]由于按照步骤101的方法计算出来的第一节点的空闲等待时间会有所不同,因此,需要判断在第一节点的空闲等待时间内是否有数据在总线上传输,若总线上无数据传输,则执行步骤103 ;若总线上有数据传输,则需要等到发送该数据的节点数据传输完毕之后,重现按照步骤101计算空闲等待时间,如此重复循环。
[0034]示例的,在步骤101所示例的基础上,第一节点检测在36ms内总线上是否有数据发送。若总线上无数据传输,则执行步骤103 ;若地址为60的机器的空闲等待时间为30ms,则当总线上空闲时间达到30ms时,地址为60的机器开始发送数据,此时,地址为62的机器可能在36ms的时候检测到总线上有数据传输,则地址为62的机器需等到地址为60的机器数据全部发送完成后,再重新按照步骤101计算空闲等待时间,如此重复循环。
[0035]步骤103、若没有,则第一节点在空闲等待时间届满时发送数据。
[0036]其中,第一节点发送的数据的格式可以使用标准串口数据格式,也可以采用非标准串口数据格式。
[0037]本发明实施例提供了一种485多主通信的方法,通过确定第一节点的空闲等待时间,并检测在第一节点的空闲等待时间内总线上是否有数据传输;若没有,则第一节点在第一节点的空闲等待时间届满时发送数据。这样,将485总线上的各个节点均作为第一节点,无主从关系,通过计算第一节点的空闲等待时间,使得第一节点在其空闲等待时间届满时发送数据,无需向现有技术中采用主机轮询的方式进行数据通信,解决单主机通信轮询时间过长,通信效率低的问题。
[0038]进一步的,如图2所示,在执行步骤103的同时,该方法还包括:
[0039]步骤104、根据冲突检测方法确定发送的数据是否发生冲突。
[0040]在本发明实施例中,由于485通信总线上的各个节点之间无主从关系,因此,当第一节点占用总线发送数据时,第一节点也会收到自身所发送的数据,那么,第一节点根据自身发送的和接收的数据,判断发送的数据是否发送冲突,此处所述冲突为当其他节点与第一节点的空闲等闲时间相同时,会在同一时刻发送数据,此时,总线上的数据就会因都占用总线而发生冲突。
[0041]其中,如图3所示,第一节点根据冲突检测方法确定发送的数据是否发生冲突具体包括:
[0042]b 1、第一节点确定发送的数据的奇偶校验位是否正确。
[0043]若第一节点确定发送的数据的奇偶校验位正确,则执行步骤b2 ;若第一节点确定发送的数据的奇偶校验位错误,则执行步骤b6。
[0044]b2、若第一节点确定发送的数据的奇偶校验位正确,则第一节点确定发送的数据长度是否正确。
[0045]若第一节点确
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1