一种检测多路串行数据冲突的方法及装置、设备的制造方法

文档序号:10492018阅读:299来源:国知局
一种检测多路串行数据冲突的方法及装置、设备的制造方法
【专利摘要】本发明实施例公开了一种检测多路串行数据冲突的方法及装置、设备。通过对缓存的多路串行数据中的每个相同比特位的数据进行1的个数或0的个数的统计,若统计得到的多路串行数据中任一相同比特位的数据的1的个数或0的个数大于或等于两个时,确定多路串行数据发生冲突,不依赖于通信的数据帧格式就能检测到数据冲突,无需复杂的计算,实现了简便、可靠地实现多路串行数据冲突的检测。
【专利说明】
一种检测多路串行数据冲突的方法及装置、设备
技术领域
[0001]本发明涉及通信技术领域,尤其涉及一种检测多路串行数据冲突的方法及装置、设备。
【背景技术】
[0002]在某些行业如电力生产行业,会使用大量的小型仪表检测或监控生产线上各种运行数据,小型仪表对通信带宽要求不高,但对集中控制的要求很高,即要求一台控制终端或控制中心计算机能够同时与多路远程监测仪表通信。
[0003]在这种应用场景下,就要求实现点对多点的通信技术。点对多数据通信较常见的应用场景是使用通信协议实现,如对于带宽要求高的通信场景采用以太接口的网络协议;对于带宽要求不高的场景,使用RS485、CAN总线等,通过主从模式实现点对多点通信。
[0004]而在像电力行业,很多用于监控设备运行数据的小型仪表,其数据通信接口通常采用的是RS232串口等,无法通过网络协议或主从模式来实现点对多控制。在这种情况下,较常用的解决方案是,通过配置远程终端单元(英文:Remote Terminal Unit,简称:RTU),保证在同一时刻只有一台RTU占用通信通道,其它RTU的输出数据为全O或全I,然后对控制的多路RTU数据做相与(非通信RTU输出全I)或相或(非通信RTU输出全O)操作,实现多数串口数据的合并,并将合并数据传给控制PC。其通信和控制模型如图1所示。
[0005]如图1所示,将多路RTU串口数据在远端或近端接入设备上做相与或相或操作后,传给控制中心计算机。虽然对RTU做了配置,但在使用过程中,为了提高数据通信的可靠性,需对数据是否存在冲突进行检测,如未通信RTU输出的数据并不是全O或全I,那么该路数据是错误的,如果没有检测手段,用户无法对在控制中心计算机得到的错误数据采取措施。
[0006]对于多路串行数据是否存在冲突的检测,现有的方案是通过配置RTU的输出数据,即要求处于通信状态的RTU输出数据具备帧头、数据、校验值的通信帧格式,接入设备将处于通信状态的RTU数据与其它非通信态的RTU数据合并后,送入控制中心计算机,在控制中心计算机上对数据帧进行校验,如果实时计算的传输数据校验值与数据帧自带的校验值不相等,则认为数据存在冲突。但在控制中心计算机上对数据进行校验,并不能确定哪些台RTU数据发生了错误;该检测方法依赖RTU具备特定的数据输出帧格式,才能实现校验,无法做到通用性。

【发明内容】

[0007]本发明实施例提供一种检测多路串行数据冲突的方法及装置、设备,以简便、可靠地实现多路串行数据冲突的检测。
[0008]第一方面,提供了一种检测多路串行数据冲突的方法,包括:当接收到多路串行数据时,缓存所述多路串行数据,每路串行数据包括多个比特位;对所述多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计;若统计得到的所述多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定所述多路串行数据发生冲突,存在至少两路通道的串行数据为非全O或非全I。
[0009]在该实现方式中,通过对缓存的多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计,若统计得到的多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定多路串行数据发生冲突,不依赖于通信的数据帧格式就能检测到数据冲突,无需复杂的计算,实现了简便、可靠地实现多路串行数据冲突的检测。
[0010]结合第一方面,在第一种可能的实现方式中,所述方法还包括:
[0011 ]通过RS232接口接收远程终端单元RTU输出的所述多路串行数据。
[0012]结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式,所述方法还包括:对所述多路串行数据发生冲突进行告警;上报发生冲突的所述至少两路通道的通道标识。
[0013]在该实现方式中,对多路串行数据发生冲突的情况进行告警,且能够确认哪几路串行数据发生了冲突并进行上报。
[0014]结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:根据用户预设或默认的串行数据冲突处理规则,对发生冲突的所述多路串行数据进行对应的数据处理。
[0015]结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:将所述多路串行数据进行合并;将合并后的数据传送至近端接入设备,由所述近端接入设备将所述合并后的数据传送至控制中心计算机;或将合并后的数据传送至所述控制中心计算机。
[0016]在该实现方式中,进行多路串行数据冲突检测可在远端或近端进行,实现灵活部署。
[0017]第二方面,提供了一种检测多路串行数据冲突的装置,该装置具有实现上述方法中装置行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
[0018]—种可能的实现方式中,提供了一种检测多路串行数据冲突的装置,包括:缓存单元,用于当接收到多路串行数据时,缓存所述多路串行数据,每路串行数据包括多个比特位;统计单元,用于对所述多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计;确定单元,用于若统计得到的所述多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定所述多路串行数据发生冲突,存在至少两路通道的串行数据为非全O或非全I。
[0019]另一种可能的实现方式中,提供了一种检测多路串行数据冲突的设备,包括:输入装置,输出装置,存储器和处理器,所述存储器用于当接收到所述输入装置输入的多路串行数据时,缓存所述多路串行数据,每路串行数据包括多个比特位;所述处理器用于对所述多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计;以及若统计得到的所述多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定所述多路串行数据发生冲突,存在至少两路通道的串行数据为非全O或非全I。
[0020]实施本发明实施例提供的一种检测多路串行数据冲突的方法及装置、设备,具有如下有益效果:
[0021]通过对缓存的多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计,若统计得到的多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定多路串行数据发生冲突,不依赖于通信的数据帧格式就能检测到数据冲突,无需复杂的计算,实现了简便、可靠地实现多路串行数据冲突的检测。
【附图说明】
[0022]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023]图1为现有技术中的多路串行数据通信和控制模型示意图;
[0024]图2为现有技术中的多路串行数据冲突检测示意图;
[0025]图3为本发明实施例提供的一种检测多路串行数据冲突的方法的流程示意图;
[0026]图4a和图4b分别为示例的非通信态通道输出的串行数据为全I和全O的冲突检测示意图;
[0027]图5为本发明实施例提供的另一种检测多路串行数据冲突的方法的流程示意图;
[0028]图6为本发明实施例提供的一种检测多路串行数据冲突的装置的结构示意图;
[0029]图7为本发明实施例提供的另一种检测多路串行数据冲突的装置的结构示意图;
[0030]图8为本发明实施例提供的一种检测多路串行数据冲突的设备的结构示意图。
【具体实施方式】
[0031]图3为本发明实施例提供的一种检测多路串行数据冲突的方法的流程示意图,该方法包括以下步骤:
[0032]SlOl,当接收到多路串行数据时,缓存所述多路串行数据,每路串行数据包括多个比特位。
[0033]安装在远程现场的多个传感器或设备采集到的各种运行数据需要同时传送至控制中心计算机,本发明实施例的检测多路串行数据冲突的装置设置在远程现场的多个传感器或设备与控制中心计算机之间,该检测装置可以是远端接入设备,也可以是近端接入设备,可以根据需求灵活部署,该接入设备可以是路由器等。其多路串行数据通信和控制模型仍如图1所示。
[0034]检测装置接收到远程现场的多个传感器或设备发送的多路串行数据,首先将多路串行数据进行缓存,每一路数据在存储上都是0/1比特(英文:bit)流,且每一路数据包括多个比特位。
[0035]为了使远程现场的多个传感器或设备能与控制中心计算机实现点对多点通信,通常配置RTU,RTU是安装在远程现场的电子设备,用来监视和测量安装在远程现场的传感器和设备,负责对现场信号、工业设备的监测和控制,RTU将测得的状态或信号转换成可在通信媒体上发送的数据格式,它还将从控制中心计算机发送来的数据转换成命令,实现对设备的功能控制。远程现场的多个传感器或设备经RTU输出至检测装置。当然,也可以配置与RTU功能相同的其它装置。通过RTU进行点对多点通信的特点是,同一时刻只有一台RTU占用通信通道,其它RTU的输出数据为全O或全I,即当前时刻占用通信通道的RTU处于通信态,其它RTU处于非通信态。
[0036]S102,对所述多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计。
[0037]但是,如果处于非通信态的RTU传输的数据出现错误,则其输出的数据并非全O或全I,因此,需要检测非通信态的RTU传输的数据是否出现错误。
[0038]图4a为示例的非通信态通道输出的串行数据为全I的冲突检测示意图,图4a中,每个RTU输出的数据为8个bit位,在此仅为举例,在这里,RS232Data2为有效通信数据,即该通道处于通信态,其它通道处于非通信态,非通信态的通道传输的数据应该为全I,而实际发生了错误,RS232Datal输出的数据并非全I。此时的检测方法为:每次从缓存的总共η路数据中取一个相同的b i t位,统计这η个数中O的个数。
[0039]图4b为示例的非通信态通道输出的串行数据为全O的冲突检测示意图,图4b中,每个RTU输出的数据为8个bit位,在此仅为举例,在这里,RS232Data2为有效通信数据,即该通道处于通信态,其它通道处于非通信态,非通信态的通道传输的数据应该为全0,而实际发生了错误,RS232Datal输出的数据并非全O。此时的检测方法为:每次从缓存的总共η路数据中取一个相同的b i t位,统计这η个数中I的个数。
[0040]S103,若统计得到的所述多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定所述多路串行数据发生冲突,存在至少两路通道的串行数据为非全喊非全I。
[0041]如图4a中,当统计到O的个数有2个或超过2个,可判断数据发生冲突,因为在其它非通信态通道输出的数据应为全I的情况下,每个bit位统计到的η个数据里O的个数应该不超过I个。
[0042]如图4b中,当统计到I的个数有2个或超过2个,可判断数据发生冲突,因为在其它非通信态通道输出的数据应为全O的情况下,每个bit位统计到的η个数据里I的个数应该不超过I个。
[0043]多路串行数据发生冲突,即存在至少两路通道的串行数据为非全O或非全I。
[0044]根据本发明实施例提供的一种检测多路串行数据冲突的方法,通过对缓存的多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计,若统计得到的多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定多路串行数据发生冲突,不依赖于通信的数据帧格式就能检测到数据冲突,无需复杂的计算,实现了简便、可靠地实现多路串行数据冲突的检测。
[0045]图5为本发明实施例提供的另一种检测多路串行数据冲突的方法的流程示意图,该方法包括以下步骤:
[0046]S201,通过RS232接口接收远程终端单元RTU输出的多路串行数据。
[0047]在本实施例中,检测多路串行数据冲突的装置通过RS232接口与RTU连接,通过RS232接口接收RTU输出的多路串行数据。
[0048]S202,缓存所述多路串行数据。
[0049]检测装置缓存接收到的多路串行数据。该多路串行数据中,每一路数据在存储上都是0/1比特(英文:b i t)流,且每一路数据包括多个比特位。
[0050]S203,对所述多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计。
[0051]该统计操作的过程与图3所示实施例的S102相同,在此不再赘述。
[0052]S204,若统计得到的所述多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定所述多路串行数据发生冲突,存在至少两路通道的串行数据为非全喊非全I。
[0053]该确定冲突的过程与图3所示实施例的S103相同,在此不再赘述。
[0054]S205,对所述多路串行数据发生冲突进行告警。
[0055]对于多路串行数据发生冲突,可以在检测装置上向用户进行告警,告知用户当前多路串行数据发生冲突这一情况。
[0056]S206,上报发生冲突的所述至少两路通道的通道标识。对于数据发生冲突的至少两路通道,检测装置还可确定数据发生冲突的至少两路通道的通道标识。
[0057]该检测装置可以是路由器等,在路由器的上级还可以有网管系统,可将确定的数据发生冲突的至少两路通道的通道标识上报网管系统。
[0058]S207,根据用户预设或默认的串行数据冲突处理规则,对发生冲突的所述多路串行数据进行对应的数据处理。
[0059]对于发生冲突的多路串行数据,用户可以预先配置处理规则,如果用户配置了预设规则处理发生冲突的多路串行数据,如数据丢弃,则检测装置可以根据该预设规则对发生冲突的多路串行数据进行处理。当然,如果用户没有配置预设处理规则,也可以根据检测装置默认的处理规则对发生冲突的多路串行数据进行处理。如果检测装置对多路串行数据进行了丢弃处理,则流程到此结束;但也可以是不丢弃,而在后面的流程完成后再做处理。
[0060]S208,将所述多路串行数据进行合并。
[0061]合并即将多路串行数据作相与(非通信态通道输出全I)或相或(非通信态通道输出全O)操作,实现多路串行数据的合并。
[0062]S209,将合并后的数据传送至近端接入设备,由所述近端接入设备将所述合并后的数据传送至控制中心计算机;或将合并后的数据传送至所述控制中心计算机。
[0063]检测装置可以部署在远端,也可以部署在近端。
[0064]如果检测操作部署在远端接入设备,则远端接入设备将多路串行数据进行检测和合并后,通过传输网将合并后的数据传送至近端接入设备,则由近端接入设备将合并后的数据传送至控制中心计算机。
[0065]如果检测操作部署在近端接入设备,则近端接入设备通过传输网接收到远端接入设备传送的多路串行数据后,将多路串行数据进行检测和合并,将合并后的数据传送至控制中心计算机。
[0066]在本实施例中,可以对于检测到发生冲突的多路串行数据仍进行合并和上传,而在控制中心计算机接收到合并后的数据后再作处理。
[0067]根据本发明实施例提供的一种检测多路串行数据冲突的方法,通过对缓存的多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计,若统计得到的多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定多路串行数据发生冲突,不依赖于通信的数据帧格式就能检测到数据冲突,无需复杂的计算,实现了简便、可靠地实现多路串行数据冲突的检测;且能够确认哪几路串行数据发生了冲突,向用户进行告警,并上报数据发生冲突的通道的标识;并可根据用户预设或默认的串行数据冲突处理规则对发生冲突的串行数据进行对应的数据处理;且进行多路串行数据冲突检测可在远端或近端进行,实现灵活部署。
[0068]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为根据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0069]图6为本发明实施例提供的一种检测多路串行数据冲突的装置的结构示意图,该装置1000包括:
[0070]缓存单元11,用于当接收到多路串行数据时,缓存所述多路串行数据,每路串行数据包括多个比特位。
[0071]安装在远程现场的多个传感器或设备采集到的各种运行数据需要同时传送至控制中心计算机,本发明实施例的检测多路串行数据冲突的装置设置在远程现场的多个传感器或设备与控制中心计算机之间,该检测装置可以是远端接入设备,也可以是近端接入设备,可以根据需求灵活部署,该接入设备可以是路由器等。其多路串行数据通信和控制模型仍如图1所示。
[0072]检测装置接收到远程现场的多个传感器或设备发送的多路串行数据,首先缓存单元11将多路串行数据进行缓存,每一路数据在存储上都是0/1比特(英文:bit)流,且每一路数据包括多个比特位。
[0073]为了使远程现场的多个传感器或设备能与控制中心计算机实现点对多点通信,通常配置RTU,RTU是安装在远程现场的电子设备,用来监视和测量安装在远程现场的传感器和设备,负责对现场信号、工业设备的监测和控制,RTU将测得的状态或信号转换成可在通信媒体上发送的数据格式,它还将从控制中心计算机发送来的数据转换成命令,实现对设备的功能控制。远程现场的多个传感器或设备经RTU输出至检测装置。当然,也可以配置与RTU功能相同的其它装置。通过RTU进行点对多点通信的特点是,同一时刻只有一台RTU占用通信通道,其它RTU的输出数据为全O或全I,即当前时刻占用通信通道的RTU处于通信态,其它RTU处于非通信态。
[0074]统计单元12,用于对所述多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计。
[0075]但是,如果处于非通信态的RTU传输的数据出现错误,则其输出的数据并非全O或全I,因此,需要检测非通信态的RTU传输的数据是否出现错误。
[0076]图4a为示例的非通信态通道输出的串行数据为全I的冲突检测示意图,图4a中,每个RTU输出的数据为8个bit位,在此仅为举例,在这里,RS232Data2为有效通信数据,即该通道处于通信态,其它通道处于非通信态,非通信态的通道传输的数据应该为全I,而实际发生了错误,RS232Datal输出的数据并非全I。此时的检测方法为:每次从缓存的总共η路数据中取一个相同的b i t位,统计这η个数中O的个数。
[0077]图4b为示例的非通信态通道输出的串行数据为全O的冲突检测示意图,图4b中,每个RTU输出的数据为8个bit位,在此仅为举例,在这里,RS232Data2为有效通信数据,即该通道处于通信态,其它通道处于非通信态,非通信态的通道传输的数据应该为全O,而实际发生了错误,RS232Datal输出的数据并非全O。此时的检测方法为:每次从缓存的总共η路数据中取一个相同的b i t位,统计这η个数中I的个数。
[0078]确定单元13,用于若统计得到的所述多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定所述多路串行数据发生冲突,存在至少两路通道的串行数据为非全O或非全I。
[0079]如图4a中,当统计到O的个数有2个或超过2个,可判断数据发生冲突,因为在其它非通信态通道输出的数据应为全I的情况下,每个bit位统计到的η个数据里O的个数应该不超过I个。
[0080]如图4b中,当统计到I的个数有2个或超过2个,可判断数据发生冲突,因为在其它非通信态通道输出的数据应为全O的情况下,每个bit位统计到的η个数据里I的个数应该不超过I个。
[0081]多路串行数据发生冲突,即存在至少两路通道的串行数据为非全O或非全I。
[0082]根据本发明实施例提供的一种检测多路串行数据冲突的装置,通过对缓存的多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计,若统计得到的多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定多路串行数据发生冲突,不依赖于通信的数据帧格式就能检测到数据冲突,无需复杂的计算,实现了简便、可靠地实现多路串行数据冲突的检测。
[0083]图7为本发明实施例提供的另一种检测多路串行数据冲突的装置的结构示意图,该装置2000包括:
[0084]接收单元21,用于通过RS232接口接收远程终端单元RTU输出的多路串行数据。
[0085]在本实施例中,检测多路串行数据冲突的装置通过RS232接口与RTU连接,接收单元21通过RS232接口接收RTU输出的多路串行数据。
[0086]缓存单元22,用于缓存所述多路串行数据。
[0087]缓存单元22缓存接收到的多路串行数据。该多路串行数据中,每一路数据在存储上都是0/1比特(英文:b i t)流,且每一路数据包括多个比特位。
[0088]统计单元23,用于对所述多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计。
[0089]该统计单元23的功能与图6所示实施例的统计单元12相同,在此不再赘述。
[0090]确定单元24,用于若统计得到的所述多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定所述多路串行数据发生冲突,存在至少两路通道的串行数据为非全O或非全I。
[0091]该确定单元24的功能与图6所示实施例的确定单元13相同,在此不再赘述。
[0092]告警单元25,用于对所述多路串行数据发生冲突进行告警。
[0093]对于多路串行数据发生冲突,可以在检测装置上向用户进行告警,告知用户当前多路串行数据发生冲突这一情况。
[0094]上报单元26,用于上报发生冲突的所述至少两路通道的通道标识。
[0095]对于数据发生冲突的至少两路通道,检测装置还可确定数据发生冲突的至少两路通道的通道标识。
[0096]该检测装置可以是路由器等,在路由器的上级还可以有网管系统,上报单元26可将确定的数据发生冲突的至少两路通道的通道标识上报网管系统。
[0097]处理单元27,用于根据用户预设或默认的串行数据冲突处理规则,对发生冲突的所述多路串行数据进行对应的数据处理。
[0098]对于发生冲突的多路串行数据,用户可以预先配置处理规则,如果用户配置了预设规则处理发生冲突的多路串行数据,如数据丢弃,则处理单元27可以根据该预设规则对发生冲突的多路串行数据进行处理。当然,如果用户没有配置预设处理规则,处理单元27也可以根据检测装置默认的处理规则对发生冲突的多路串行数据进行处理。如果检测装置对多路串行数据进行了丢弃处理,则流程到此结束;但也可以是不丢弃,而在后面的流程完成后再做处理。
[0099]合并单元28,用于将所述多路串行数据进行合并。
[0100]合并即将多路串行数据作相与(非通信态通道输出全I)或相或(非通信态通道输出全O)操作,实现多路串行数据的合并。
[0101]传送单元29,用于将合并后的数据传送至近端接入设备,由所述近端接入设备将所述合并后的数据传送至控制中心计算机;或将合并后的数据传送至所述控制中心计算机。
[0102]检测装置可以部署在远端,也可以部署在近端。
[0103]如果检测操作部署在远端接入设备,则远端接入设备将多路串行数据进行检测和合并后,通过传输网将合并后的数据传送至近端接入设备,则由近端接入设备将合并后的数据传送至控制中心计算机。
[0104]如果检测操作部署在近端接入设备,则近端接入设备通过传输网接收到远端接入设备传送的多路串行数据后,将多路串行数据进行检测和合并,将合并后的数据传送至控制中心计算机。
[0105]在本实施例中,可以对于检测到发生冲突的多路串行数据仍进行合并和上传,而在控制中心计算机接收到合并后的数据后再作处理。
[0106]根据本发明实施例提供的一种检测多路串行数据冲突的装置,通过对缓存的多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计,若统计得到的多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定多路串行数据发生冲突,不依赖于通信的数据帧格式就能检测到数据冲突,无需复杂的计算,实现了简便、可靠地实现多路串行数据冲突的检测;且能够确认哪几路串行数据发生了冲突,向用户进行告警,并上报数据发生冲突的通道的标识;并可根据用户预设或默认的串行数据冲突处理规则对发生冲突的串行数据进行对应的数据处理;且进行多路串行数据冲突检测可在远端或近端进行,实现灵活部署。
[0107]图8为本发明实施例提供的一种检测多路串行数据冲突的设备的结构示意图,该设备3000包括:输入装置31、输出装置32、存储器33和处理器34(设备中的处理器34的数量可以一个或多个,图8中以一个处理器为例)。在本发明的一些实施例中,输入装置31、输出装置32、存储器33和处理器34可通过总线35或其它方式连接,其中,图8中以通过总线35连接为例。
[0108]其中,所述存储器33用于当接收到输入装置31输入的多路串行数据时,缓存所述多路串行数据,每路串行数据包括多个比特位;
[0109]所述处理器34用于对所述多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计;
[0110]所述处理器34还用于若统计得到的所述多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定所述多路串行数据发生冲突,存在至少两路通道的串行数据为非全O或非全I。
[0111]在一些可能的实现方式中,所述输入装置31具体用于通过RS232接口接收远程终端单元RTU输出的所述多路串行数据。
[0112]在另一些可能的实现方式中,所述输出装置32用于对所述多路串行数据发生冲突进行告警;以及上报发生冲突的所述至少两路通道的通道标识;
[0113]所述处理器34还用于根据用户预设或默认的串行数据冲突处理规则,对发生冲突的所述多路串行数据进行对应的数据处理。
[0114]在又一些可能的实现方式中,所述处理器34还用于将所述多路串行数据进行合并。
[0115]在又一些可能的实现方式中,所述输出装置32还用于将合并后的数据传送至近端接入设备,由所述近端接入设备将所述合并后的数据传送至控制中心计算机;或将合并后的数据传送至所述控制中心计算机。
[0116]根据本发明实施例提供的一种检测多路串行数据冲突的设备,通过对缓存的多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计,若统计得到的多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定多路串行数据发生冲突,不依赖于通信的数据帧格式就能检测到数据冲突,无需复杂的计算,实现了简便、可靠地实现多路串行数据冲突的检测。
[0117]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0118]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括随机存取存储器(Random Access Memory ,RAM)、只读存储器(Read-Only Memory ,ROM)、电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPR0M)、只读光盘(Compact Disc Read-Only Memory,⑶-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(Digital Subscriber Line,DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
[0119]总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种检测多路串行数据冲突的方法,其特征在于,包括: 当接收到多路串行数据时,缓存所述多路串行数据,每路串行数据包括多个比特位; 对所述多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计; 若统计得到的所述多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定所述多路串行数据发生冲突,存在至少两路通道的串行数据为非全O或非全I。2.如权利要求1所述的方法,其特征在于,所述方法还包括: 通过RS232接口接收远程终端单元RTU输出的所述多路串行数据。3.如权利要求1或2所述的方法,其特征在于,所述方法还包括: 对所述多路串行数据发生冲突进行告警; 上报发生冲突的所述至少两路通道的通道标识。4.如权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括: 根据用户预设或默认的串行数据冲突处理规则,对发生冲突的所述多路串行数据进行对应的数据处理。5.如权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括: 将所述多路串行数据进行合并; 将合并后的数据传送至近端接入设备,由所述近端接入设备将所述合并后的数据传送至控制中心计算机;或 将合并后的数据传送至所述控制中心计算机。6.一种检测多路串行数据冲突的装置,其特征在于,包括: 缓存单元,用于当接收到多路串行数据时,缓存所述多路串行数据,每路串行数据包括多个比特位; 统计单元,用于对所述多路串行数据中的每个相同比特位的数据进行I的个数或O的个数的统计; 确定单元,用于若统计得到的所述多路串行数据中任一相同比特位的数据的I的个数或O的个数大于或等于两个时,确定所述多路串行数据发生冲突,存在至少两路通道的串行数据为非全O或非全I。7.如权利要求6所述的装置,其特征在于,所述装置还包括: 接收单元,用于通过RS232接口接收远程终端单元RTU输出的所述多路串行数据。8.如权利要求6或7所述的装置,其特征在于,所述装置还包括: 告警单元,用于对所述多路串行数据发生冲突进行告警; 上报单元,用于上报发生冲突的所述至少两路通道的通道标识。9.如权利要求6-8任意一项所述的装置,其特征在于,所述装置还包括: 处理单元,用于根据用户预设或默认的串行数据冲突处理规则,对发生冲突的所述多路串行数据进行对应的数据处理。10.如权利要求6-9任意一项所述的装置,其特征在于,所述装置还包括: 合并单元,用于将所述多路串行数据进行合并; 传送单元,用于将合并后的数据传送至近端接入设备,由所述近端接入设备将所述合并后的数据传送至控制中心计算机;或 所述传送单元用于将合并后的数据传送至所述控制中心计算机。
【文档编号】H04L12/26GK105847077SQ201610151443
【公开日】2016年8月10日
【申请日】2016年3月17日
【发明人】陈剑峰
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1