一种数据转发方法及装置与流程

文档序号:11878678阅读:253来源:国知局
一种数据转发方法及装置与流程

本发明实施例涉及通信技术领域,尤其涉及一种数据转发方法及装置。



背景技术:

在现在各行业中,各个设备间的数据通信变得越来越广泛,各设备在相互通信时需要遵循对应的通信协议,例如在工业控制技术领域,常用的通信协议包括串口通信协议、控制器局域网络(Controller Area Network,简称:CAN)总线通信协议和以太网通信协议等等,并且,因设备的自身性能或者通信需求的不同,工业控制技术领域中的不同设备所支持的通信协议也会有所不同。

随着工业控制技术的不断发展,越来越多地需要将不同的设备通过网络连接在一起,使其相互间能够进行通信,以实现数据交互,但当设备采用的通信协议不同时,因源设备和目标设备采用的通信协议不同,目标设备无法识别源设备发送的通信数据,因此,采用不同通信协议的设备间无法直接进行数据交互,影响了工业控制技术的发展。



技术实现要素:

有鉴于此,本发明实施例提供一种数据转发方法及装置,以解决现有技术中采用不同通信协议的设备间不能进行数据交互的问题。

第一方面,本发明实施例提供了一种数据转发方法,包括:

从数据接收端口接收待转发数据,并将该待转发数据缓存到上述数据接收端口的接收缓存队列中,上述数据接收端口配置有与源设备匹配的通信协议;

获取预设的与上述数据接收端口对应的至少一个数据发送端口,并将待转发数据复制到上述至少一个数据发送端口的发送缓存队列中;

从上述至少一个数据发送端口发送待转发数据,上述数据发送端口配置有与目标设备匹配的通信协议。

第二方面,本发明实施例提供了一种数据转发装置,包括:

数据接收模块,用于从数据接收端口接收待转发数据,并将该待转发数据缓存到上述数据接收端口的接收缓存队列中,上述数据接收端口配置有与源设备匹配的通信协议;

数据转发模块,用于获取预设的与上述数据接收端口对应的至少一个数据发送端口,并将待转发数据复制到上述至少一个数据发送端口的发送缓存队列中;

数据发送模块,用于从上述至少一个数据发送端口发送待转发数据,上述数据发送端口配置有与目标设备匹配的通信协议。

本发明实施例提供的数据转发方法及装置,从数据接收端口接收源设备发送的待转发数据,数据接收端口配置有与发送上述待转发数据的源设备匹配的通信协议,从而使得数据接收端口可以正确解析该待转发数据,从数据接收端口接收待转发数据,并将该待转发数据缓存到上述数据接收端口的接收缓存队列中;获取预设的与上述数据接收端口对应的至少一个数据发送端口,并将待转发数据复制到上述至少一个数据发送端口的发送缓存队列中;从上述至少一个数据发送端口发送待转发数据,该数据发送端口配置有与目标设备匹配的通信协议,以实现将上述待转发数据通过数据发送端口发送出去后,目标设备能够正确解析上述待转发数据。因此,本发明实施例提供的技术方案,解决了现有技术中采用不同通信协议设备间不能直接进行数据交互的问题,实现了采用不同通信协议设备间的数据交互;另外,用户可以根据实际需求灵活预设数据接收端口与数据发送端口的对应关系,即预设各种不同通信协议设备间进行数据交互,具有良好的可扩展性,更好地满足了用户的不同需求。

附图说明

图1是本发明第一实施例提供的一种数据转发方法的流程图;

图2是本发明第三实施例提供的数据转发表项的示意图;

图3是本发明第五实施例提供的一种数据转发装置的结构示意图;

图4是本发明第六实施例提供的第一种数据转发装置的结构示意图;

图5是本发明第六实施例提供的第二种数据转发装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。

第一实施例

图1是本发明第一实施例提供的一种数据转发方法的流程图,本实施例的方法可以由数据转发装置来执行,该装置可通过硬件和/或软件的方式实现,并一般可以用于数据转发平台中,其包括多个通信端口,该通信端口包括数据接收端口和数据发送端口,其中的数据接收端口与源设备连接,且配置有与源设备匹配的通信协议,以正确接收源设备发送的数据,其中的数据发送端口与目标设备连接,且配置有与目标设备匹配的通信协议。本实施例对此并不进行限制。

本实施例的方法具体包括:

S110、从数据接收端口接收待转发数据,并将该待转发数据缓存到上述数据接收端口的接收缓存队列中;

S120、获取预设的与上述数据接收端口对应的至少一个数据发送端口,并将待转发数据复制到上述至少一个数据发送端口的发送缓存队列中;

S130、从上述至少一个数据发送端口发送待转发数据。

本实施例中,与数据接收端口连接的源设备采用一种通信协议,而与数据发送端口连接的目标设备采用另一种通信协议,因此,数据接收端口配置与源设备匹配的通信协议,以使得数据接收端口可以根据该通信协议接收源设备发送的数据,例如根据串口通信协议接收串口数据,或者,根据以太网通信协议解析以太网报文,以获取以太网报文中携带的数据,或者,根据CAN总线通信协议接收CAN总线报文,以获取以太网报文中携带的数据;而数据发送端口配置与目标设备匹配的通信协议向目标设备发送数据,例如按照串口通信协议发送串口数据,或者,根据以太网通信协议封装生成以太网报文,该以太网报文中封装要发送的数据,或者,根据CAN总线通信协议封装生成CAN总线报文,该CAN总线报文中封装有要发送的数据。

在本发明第一实施例中,可以针对源设备和目标设备所采用的通信协议的不同,在数据接收端口上配置与源设备匹配的通信协议,在数据发送端口上配置与数据发送端口匹配的通信协议,当需要把源设备发送的数据转发到采用另外一个通信协议的目标设备上时,从数据接收端口接收该待转发数据,并将其缓存到接收缓存队列中;然后根据预先数据接收端口与数据发送端口的对应关系,即可获取预设的上述数据接收端口接收到的待转发数据,需要转发到的哪一个或哪几个数据发送端口,然后将上述待转发数据分别复制到上述数据发送端口的发送缓存队列中,并从上述数据发送端口发送上述待转发数据,实现了在采用不同通信协议设备间进行数据转发。本发明实施例用户可以根据实际需求灵活设置数据接收端口与数据发送端口的对应关系,即预设各种不同通信协议设备间进行数据交互,具有良好的可扩展性,更好地满足了用户的不同需求。

第二实施例

本实施例以上述实施例为基础进行优化,在本实施例中,其中的源设备、目标设备可以采用如下的通信协议,例如串口通信协议、CAN总线通信协议或以太网通信协议,则对应的,上述的数据接收端口可以为串口通信端口、CAN总线通信端口和以太网通信端口中的任意一个,对应的,上述至少一个数据发送端口也可以为串口通信端口、CAN总线通信端口和以太网通信端口中的任意一个。

示例性地,本实施例中为了更有效的实现采用不同通信协议设备间的数据转发,可以设置相应的数据接收规则和数据发送规则,则本发明上述实施例中从数据接收端口接收待转发数据包括根据预设的数据接收规则从数据接收端口接收待转发数据;以及从至少一个数据发送端口发送待转发数据包括根据预设的数据发送规则从上述至少一个数据发送端口发送待转发数据。

本发明实施例中,优选的,针对上述不同类型的数据接收端口或数据发送端口定制对应的数据接收规则或数据发送规则。

示例性地,若数据接收端口为串口通信端口,则根据预设的数据接收规则从数据接收端口接收待转发数据可以包括三种情况:

一是可以从数据接收端口接收预设长度的数据并作为待转发数据,因串口通信都是单字节传输,通常只有一段数据才有实际意义,则本实施例中,其中的数据接收规则可以约定,每从数据接收端口接收到预设长度的数据时作为待转发数据,上述预设长度可以任意设定,例如可以为1k字节,或者其他长度;

二是可以根据帧标识区分整帧数据并获得待转发数据,即在串口通信过程中设置特定的关键字作为帧标识,使用该帧标识表示一个整帧的开始,以及一个整帧的结束,通过读取该关键字可以区分整帧数据,进而获得待转发数据,上述关键字例如可以为0xAA、0xBB;

三是可以根据帧间隙时间区分整帧数据并获得待转发数据,即为各个整帧数据的发送设置一定的时间间隙,该帧间隙可以根据实际需要设定,例如设定5ms、10ms等值。通过设置上述的数据接收规则,可以实现从采用串口通信的源设备接收通信数据。

示例性地,针对数据发送的步骤,也可以根据实际情况设置对应的数据发送规则,若数据发送端口为串口通信端口,则根据预设的数据发送规则从数据发送端口发送待转发数据可以具体包括四种情况:

一是从数据发送端口发送预设长度的待转发数据;或者,

二是从数据发送端口发送包括帧标识的整帧数据;或者,

三是针对上述在串口通信中为整帧设置帧标识的情况,则可以对整帧的帧标识进行修改后,从数据发送端口发送待转发数据;

四是可以对待转发数据进行拆分或封装处理,从数据发送端口发送拆分或封装处理的待转发数据,此种对待转发数据进行拆分或者封装处理的情况,不仅适用于对串口设备发送过来的数据进行转发的情况,也适用于对采用其他通信协议的设备发送的数据进行转发的情况。例如,针对串口设备发送过来的每个整帧数据长度为100字节,则可以进行封装处理,待接收到10个整帧数据后进行封装处理,将该10个整帧数据进行封装后再进行发送,或者,从以太网设备接收到1k字节的待转发数据,需要发送给串口设备,则可以对1k字节的待转发数据进行拆分,拆分为4个整帧,然后分别发送给串口设备。

在本发明实施例中上述仅表示当数据接收端口和数据发送端口为串口通信端口时,对预先定制的数据接收规则和数据发送规则举例说明的情况,针对不同的通信协议,例如以太网通信协议和CAN总线通信协议,还可以定制其他的数据接收规则以及数据发送规则。

本发明第二实施例提供一种数据转发方法,为了更有效的实现采用不同通信协议设备间的数据转发,可以设置相应的数据接收规则和数据发送规则,并根据预设的数据接收规则从数据接收端口接收待转发数据,即按照用户定制的数据接收协议从源设备接收满足用户需求的数据;根据预设的数据发送规则从上述至少一个数据发送端口发送待转发数据,即按照用户定制的数据发送协议向目标设备发送满足用户需求的数据。通过对不同类型的数据接收端口或数据发送端口定制对应的数据接收规则或数据发送规则,能够得到满足传输采用不同通信协议的数据的需求,且在本实施例中,数据接收规则和数据发送规则可以针对不同的通信协议灵活定制,具有良好的可扩展性,能够更好地满足了用户的不同需求。

第三实施例

本实施例以上述实施例为基础进行优化,本发明实施例中,可以设置数据转发表项,并在数据转发表项中预设数据接收端口与数据发送端口的对应关系,则本实施例中获取预设的与数据接收端口对应的至少一个数据发送端口包括:

从数据转发表项中获取预设的与数据接收端口对应的至少一个数据发送端口,上述数据转发表项中包括有与各个数据接收端口对应的数据发送端口;或者,

从数据转发局域网中获取预设的与数据接收端口对应的至少一个数据发送端口,上述数据转发局域网中包括有与各个数据接收端口对应的数据发送端口。

示例性地,可以设置数据转发表项,该数据转发表项中包括有与各个数据接收端口对应的数据发送端口,该数据转发表项可以由用户预先定制,例如在数据转发装置中包括第一数据接收端口、第二数据接收端口,以及第一数据发送端口、第二数据发送端口、第三数据发送端口。图2是本发明第三实施例提供的数据转发表项的示意图,如图2所示,其中第一数据接收端口210与第二数据发送端口240和第三数据发送端口250相对应,则从第一数据接收端口210接收到的待转发数据,将由第二数据发送端口240和第三数据发送端口250发送;其中第二数据接收端口220与第一数据发送端口230和第三数据发送端口250相对应,则从第二数据接收端口220接收到的待转发数据,将由第一数据发送端口230和第三数据发送端口250发送。

此时,上述获取预设的与数据接收端口对应的至少一个数据发送端口包括:

从数据转发表项中获取预设的与数据接收端口对应的至少一个数据发送端口,数据转发表项中包括有与各个数据接收端口对应的数据发送端口,例如在从第一数据接收端口210接收到待转发数据时,则可以从数据转发表项中获取需要从第二数据发送端口240和第三数据发送端口250发送,或者是,在从第二数据接收端口220接收到待转发数据时,则可以从数据转发表项中获取需要从第一数据发送端口230和第三数据发送端口250发送。

可选地,除上述建立数据转发表项的实施方式外,本发明实施例还提供一种实现方式,即可以建立数据转发局域网,将数据接收端口,以及至少一个数据发送端口添加到该数据转发局域网络中,该数据转发局域网中包括有各个数据接收端口与数据发送端口的对应关系,该对应关系可以由用户定制,则用户可以从数据转发局域网中获取预设的与数据接收端口对应的至少一个数据发送端口。

本发明第三实施例提供一种数据转发方法,通过预先配置并生成数据转发表项,或者建立数据转发局域网络,并将数据接收端口,以及至少一个数据发送端口添加到数据转发局域网络中,其中数据转发表项或者数据转发局域网中包括有与各个数据接收端口对应的数据发送端口,通过数据转发表项或者数据转发局域网获取待转发数据需要转发到哪一个或哪几个数据发送端口的情况,数据转发表项或者数据转发局域网中的数据接收端口与数据发送端口的对应关系可以灵活设置,因此本发明第三实施例中的技术方案可以灵活控制数据的转发方向,并且具有良好的可扩展性,能够更好地满足用户的不同需求。

第四实施例

以下通过一个具体应用场景说明本发明实施例提供的数据转发方法,本实施例中,其中包括4个串口通信端口,即串口通信端口1、串口通信端口2、串口通信端口3和串口通信端口4;4个CAN总线通信端口,即CAN总线通信端口1、CAN总线通信端口2、CAN总线通信端口3和CAN总线通信端口4;4个以太网通信端口,即以太网通信端口1、以太网通信端口2、以太网通信端口3、以太网通信端口4。其中预先设置的转发规则为将从串口通信端口1收到的数据转发给CAN总线通信端口2和以太网通信端口3,并且预先配置上述CAN总线通信端口2和以太网通信端口3的数据发送规则中,规定将从串口通信端口1收到的整帧数据的帧标识(0xAA、0xBB、0xCC、0xDD)修改为(0x11、0x22、0x33、0x44)。则,本实施例提供的数据转发方法可以按照如下方式执行:

初始化阶段,包括如下操作:

首先,打开串口通信端口1,以及CAN总线通信端口2和以太网通信端口3,并且为以太网通信端口3建立TCP连接;

其次,为上述通信端口配置数据接收规则和数据发送规则,例如为串口通信端口1配置的数据接收规则为根据帧标识区分整帧数据以获取待转发数据,为CAN总线通信端口2和以太网通信端口3配置的数据发送规则均为,对待转发数据的帧标识进行修改,将帧标识(0xAA、0xBB、0xCC、0xDD)修改为(0x11、0x22、0x33、0x44);

再次,创建数据转发局域网络,将串口通信端口1,以及CAN总线通信端口2和以太网通信端口3添加到数据转发局域网络中。

数据接收阶段,通过串口通信端口1接收数据,并且根据帧标识(0xAA、0xBB、0xCC、0xDD)区分整帧数据,将接收到的上述数据缓存到接收缓存队列中。

数据转发阶段,将串口通信端口1的接收缓存队列中的数据复制到CAN总线通信端口2和以太网通信端口3的发送缓存队列中。

数据发送阶段,根据预先配置的数据发送规则,修改帧标识,将(0xAA、0xBB、0xCC、0xDD)修改为(0x11、0x22、0x33、0x44),然后通过CAN总线通信端口2和以太网通信端口3数据发送。

本发明第四实施例提供一种数据转发方法,通过预先配置并生成数据转发表项,或者建立数据转发局域网络,并将串口通信端口,以及CAN总线通信端口和以太网通信端口添加到数据转发局域网络中;根据预设的串口数据接收规则从数据接收端口接收待转发数据,并将该待转发数据缓存到上述串口通信端口的接收缓存队列中;获取与上述串口通信端口对应的CAN总线通信端口和以太网通信端口,并将待转发数据复制到上述CAN总线通信端口和以太网通信端口的发送缓存队列中;根据预设的数据发送规则从上述CAN总线通信端口和以太网通信端口发送待转发数据。通过本发明实施例提供的技术方案,解决了现有技术中不同协议数据不能相互转发的问题,实现了在采用不同通信协议设备间进行数据转发。本发明实施例中能够灵活定制数据接收规则、数据发送规则,以及数据接收端口和数据发送端口之间的对应关系,具有良好的可扩展性,更好地满足了用户的不同需求。

第五实施例

本实施例以上述实施例为基础进行优化,图3是本发明第五实施例提供的一种数据转发装置的结构示意图。在本实施例中,该数据转发装置包括:

数据接收模块310,用于从数据接收端口接收待转发数据,并将待转发数据缓存到数据接收端口的接收缓存队列中,上述数据接收端口配置有与源设备匹配的通信协议;

数据转发模块320,用于获取预设的与数据接收端口对应的至少一个数据发送端口,并将待转发数据复制到至少一个数据发送端口的发送缓存队列中;

数据发送模块330,用于从至少一个数据发送端口发送待转发数据,上述数据发送端口配置有与目标设备匹配的通信协议。

另外,如图3所示,本实施例中提供的数据转发装置还配置有多个通信端口,例如串口通信端口340、CAN总线通信端口350或以太网通信端口360等,上述多个通信端口均与数据接收模块310和数据发送模块330连接,且当该数据转发装置从串口通信端口340接收数据时,并从CAN总线通信端口350和以太网通信端口360发送数据时,则串口通信端口340作为数据接收端口,CAN总线通信端口350和以太网通信端口360作为数据发送端口,依次类推,上述任意一个通信端口可以作为数据接收端口,而任意一个通信端口也可以作为数据发送端口。

本发明实施例中,其中的通信端口包括硬件层和驱动层两部分,具体的,对于串口通信端口340,其中的硬件层包括串口,驱动层包括串口驱动;对于CAN总线通信端口350,其中的硬件层包括CAN总线接口,驱动层包括CAN总线接口;对于以太网通信端口360,其中的硬件层包括以太网接口,驱动层包括TCP/IP协议栈和以太网接口驱动。

在本发明上述实施例中,可以针对源设备和目标设备所采用的通信协议的不同,在数据接收端口上配置与源设备匹配的通信协议,在数据发送端口上配置与数据发送端口匹配的通信协议,当需要把源设备发送的数据转发到采用另外一个通信协议的目标设备上时,从数据接收端口接收该待转发数据,并将其缓存到接收缓存队列中;然后根据预先数据接收端口与数据发送端口的对应关系,即可获取预设的上述数据接收端口接收到的待转发数据,需要转发到的哪一个或哪几个数据发送端口,然后将上述待转发数据分别复制到上述数据发送端口的发送缓存队列中,并从上述数据发送端口发送上述待转发数据,实现了在采用不同通信协议设备间进行数据转发。本发明上述实施例用户可以根据实际需求灵活设置数据接收端口与数据发送端口的对应关系,即预设各种不同通信协议设备间进行数据交互,具有良好的可扩展性,更好地满足了用户的不同需求。

示例性地,上述数据接收模块具体用于根据预设的数据接收规则从数据接收端口接收待转发数据,以及上述数据发送模块具体用于根据预设的数据发送规则从至少一个数据发送端口发送待转发数据。

示例性地,数据接收模块具体用于从数据接收端口接收预设长度的数据并作为待转发数据;或者,

根据帧标识区分整帧数据并获得待转发数据;或者,

根据帧间隙时间区分整帧数据并获得待转发数据。

示例性地,数据发送模块具体用于从数据发送端口发送预设长度的所述待转发数据;或者,

从数据发送端口发送包括帧标识的整帧数据;或者,

对整帧的帧标识进行修改后,从数据发送端口发送待转发数据;或者,

对待转发数据进行拆分或封装处理,从数据发送端口发送拆分或封装处理的待转发数据。

本发明上述实施例中,为了更有效的实现采用不同通信协议设备间的数据转发,可以设置相应的数据接收规则和数据发送规则,并根据预设的数据接收规则从数据接收端口接收待转发数据,即按照用户定制的数据接收协议从源设备接收满足用户需求的数据;根据预设的数据发送规则从上述至少一个数据发送端口发送待转发数据,即按照用户定制的数据发送协议向目标设备发送满足用户需求的数据。通过对不同类型的数据接收端口或数据发送端口定制对应的数据接收规则或数据发送规则,能够得到满足传输采用不同通信协议的数据的需求,且在本实施例中,数据接收规则和数据发送规则可以针对不同的通信协议灵活定制,具有良好的可扩展性,能够更好地满足了用户的不同需求。

第六实施例

图4是本发明第六实施例提供的第一种数据转发装置的结构示意图。本实施例以上述实施例为基础进行优化,在本实施例中,该数据转发装置包括:

配置模块410,用于存储数据转发表项,数据转发表项中包括有与各个数据接收端口对应的数据发送端口;

数据接收模块420,用于从数据接收端口接收待转发数据,并将待转发数据缓存到数据接收端口的接收缓存队列中,上述数据接收端口配置有与源设备匹配的通信协议;

数据转发模块430,用于获取预设的与数据接收端口对应的至少一个数据发送端口,并将待转发数据复制到至少一个数据发送端口的发送缓存队列中;

数据发送模块440,用于从至少一个数据发送端口发送待转发数据,上述数据发送端口配置有与目标设备匹配的通信协议。

图5是本发明第六实施例提供的第二种数据转发装置的结构示意图。该数据转发装置包括:

局域网建立模块510,用于根据预设的数据接收规则从数据接收端口接收待转发数据之前,建立数据转发局域网络,并将数据接收端口,以及至少一个数据发送端口添加到数据转发局域网络中;

数据接收模块520,用于从数据接收端口接收待转发数据,并将待转发数据缓存到数据接收端口的接收缓存队列中,上述数据接收端口配置有与源设备匹配的通信协议;

数据转发模块530,用于获取预设的与数据接收端口对应的至少一个数据发送端口,并将待转发数据复制到至少一个数据发送端口的发送缓存队列中;

数据发送模块540,用于从至少一个数据发送端口发送待转发数据,上述数据发送端口配置有与目标设备匹配的通信协议。

示例性地,数据转发模块具体用于从数据转发表项或者数据转发局域网中获取预设的与数据接收端口对应的至少一个数据发送端口。

本发明第六实施例提供一种数据转发装置,通过配置模块预先配置并生成数据转发表项,或者通过局域网建立模块将数据接收端口,以及至少一个数据发送端口添加到数据转发局域网络中;其中数据转发表项或者数据转发局域网中包括有与各个数据接收端口对应的数据发送端口,通过数据转发表项或者数据转发局域网获取待转发数据需要转发到哪一个或哪几个数据发送端口的情况,数据转发表项或者数据转发局域网中的数据接收端口与数据发送端口的对应关系可以灵活设置,因此本发明第六实施例中的技术方案可以灵活控制数据的转发方向,并且具有良好的可扩展性,能够更好地满足用户的不同需求。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1