数据传输装置及方法与流程

文档序号:19664350发布日期:2020-01-10 21:25阅读:126来源:国知局
数据传输装置及方法与流程

本发明涉及数据处理技术领域,尤其涉及一种数据传输装置及方法。



背景技术:

一般而言,电子通讯意味着长距离传输数据,语音,文本,视频和图像。电子通讯基本上是通过无线电,电话,电视和计算机网络进行通信的技术和科学。现代电子通讯系统中,通信具有广泛的应用市场,通信方式逐渐变的多样化和快速化。在工业生产和交通出行中,多样化的通信带来前所未有的便捷和高效,丰富了人们的生活方式,产生了巨大的经济效益。

多样化通信带来便捷的同时,带来了数据传输信号转换的问题。由于不同通信方式具有不同通信协议,因此,不同通信方式之间进行数据传输时需要设计专用的通信电路,从而进行不同通信方式的数据传输,导致设备之间的通讯兼容性差。



技术实现要素:

基于此,有必要针对现有技术中设备之间通讯兼容性差的技术问题,提供了一种数据传输装置及方法。

为了解决上述技术问题,本发明提供的技术方案为:

一种数据传输装置,包括数据接收模块,包括至少两种不同的接收通讯端口,用于接收不同通讯协议传输过来的数据;数据发送模块,包括至少两种不同的发送通讯端口,用于根据不同的通讯协议将所述数据发送出去;端口选择模块,用于暂存所述数据接收模块接收的所述数据,对所述数据进行解析从中获取所述发送通讯端口的地址,并根据所述发送通讯端口的地址将所述数据传递给所述数据发送模块中对应的发送通讯端口。

其中,所述端口选择模块包括:端口解析模块,用于读取所述数据预设位置的字节的值来获得所述发送通讯端口的地址;总线收发模块,用于接收所述数据并暂存,并在获得所述发送通讯端口的地址之后将所述数据传递给对应的发送通讯端口。

其中,所述总线收发模块包括用于将所述数据缓存的第一级缓存至第n级缓存,n大于等于2。

其中,所述数据传输装置封装在fpga中。

其中,所述接收通讯端口每接收一个字节,向所述fpga的控制器输入一个使能信号,所述控制器控制所述总线收发模块存储对应的字节,所述控制器向所述总线收发模块每次输出一个使能信号来控制所述总线收发模块向所述发送通讯端口传送所述数据的一个字节。

其中,所述数据包含至少一个数据单元,所述数据单元的第一字节为起始位,最后一个字节为停止位。

其中,所述总线收发模块的各级缓存根据一个数据单元的大小进行划分。

本发明提供的另一技术方案为:

一种如上述的数据传输装置的数据传输方法,包括当所述接收通讯端口接收到数据;端口选择模块对所述数据进行解析从中获取发送通讯端口的地址,从所述数据的存储地址中获取数据,并根据所述发送通讯端口的地址传送给对应的所述发送通讯端口;对应的所述发送通讯端口发送所述数据。

其中,所述端口选择模块对所述数据进行解析从中获取发送通讯端口的地址包括:端口选择模块读取所述数据预设位置的字节的值来获得所述发送通讯端口的地址。

其中,所述数据对应的接收通讯端口和对应的发送通讯端口为不同类型的通讯端口。

其中,当所述接收通讯端口接收的数据所包含的数据单元超过1个时,所述端口选择模块将所述数据顺次缓存至第一级缓存至第n级缓存中。

上述数据传输装置及方法,首先,通过数据接收模块接收不同通讯协议传输过来的数据;然后,端口选择模块对所述数据进行解析从中获取所述发送通讯端口的地址,并根据所述发送通讯端口的地址将所述数据传递给所述数据发送模块中对应的发送通讯端口;最后,数据发送模块根据不同的通讯协议将所述数据发送出去。由于在不同的通讯协议之间通过指定的通讯端口进行数据发送,因此,只需获得指定的通讯端口即可,从而进行不同通讯方式的数据传输,提高了设备之间的通讯兼容性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明的一个实施例的数据传输方法的流程示意图。

图2是根据本发明的一个实施例的fpga的结构框图。

图3是根据本发明的一个实施例的数据传输装置的结构框图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在一个实施例中,如图1所示,提供了一种数据传输方法。该数据传输方法具体包括如下步骤:

s102,当接收通讯端口接收到数据。

其中,fpga上集成有不同的接收通讯端口。如图2所示,比如,utra接收通讯端口、rs-232接收通讯端口、rs-485接收通讯端口、wifi接收通讯端口、gprs接收通讯端口、nb-iot接收通讯端口等。fpga上的接收通讯端口接收不同的通讯端口发送的数据。

具体地,如表一所示,当设备a想通过rs-232通讯模块和设备b的rs-485通讯模块进行数据传输时,设备a的rs-485通讯模块和fpga上的rs-232接收通讯端口建立网络连接,并将数据发送至fpga上的rs-232接收通讯端口上,fpga上的rs-232接收通讯端口接收设备a发送的数据。当设备a想通过wifi通讯模块和设备b的gprs通讯模块进行数据传输时,设备a的wifi通讯模块和fpga上的gprs接收通讯端口建立网络连接,并将数据发送至fpga上的gprs接收通讯端口上,fpga上的gprs接收通讯端口接收设备a发送的数据。

表一:fpga通信协议

s104,端口选择模块对数据进行解析从中获取发送通讯端口的地址,从数据的存储地址中获取数据,并根据发送通讯端口的地址传送给对应的发送通讯端口。

具体地,fpga上的端口选择模块对数据进行处理,获得数据需要发送的通讯端口。比如,当设备a想通过rs-232通讯模块和设备b的rs-485通讯模块进行数据传输时,fpga上的rs-232接收通讯端口接收设备a发送的数据,并对数据进行端口解析,获得该数据的端口地址,此处为rs-485通讯端口。当设备a想通过wifi通讯模块和设备b的gprs通讯模块进行数据传输时,fpga上的wifi接收通讯端口接收设备a发送的数据,并对数据进行端口解析,获得该数据的端口地址,此处为gprs通讯端口。

s106,对应的发送通讯端口发送数据。

其中,fpga上集成有不同的发送通讯端口。如图2所示,比如,utra发送通讯端口、rs-232发送通讯端口、rs-485发送通讯端口、wifi发送通讯端口、gprs发送通讯端口、nb-iot发送通讯端口等。fpga上的发送通讯端口根据不同的通讯端口发送数据。

具体地,当设备a想通过rs-232通讯模块和设备b的rs-485通讯模块进行数据传输时,由于fpga上的端口解析模块解析的通讯端口为rs-485,因此,使fpga上的rs-485发送通讯端口和设备b的rs-232通讯模块建立网络连接,并将数据发送至设备b的rs-485通讯模块上。当设备a想通过wifi通讯模块和设备b的gprs通讯模块进行数据传输时,由于fpga上的端口解析模块解析的通讯端口为gprs,因此,使fpga上的gprs发送通讯端口和设备b的gprs通讯模块建立网络连接,并将数据发送至设备b的gprs通讯模块上,从而实现不同通讯方式的数据传输。

在本实施例中,首先,通过数据接收模块接收不同通讯协议传输过来的数据;然后,端口选择模块对数据进行解析从中获取发送通讯端口的地址,并根据发送通讯端口的地址将数据传递给数据发送模块中对应的发送通讯端口;最后,数据发送模块根据不同的通讯协议将数据发送出去。由于在不同的通讯协议之间通过指定的通讯端口进行数据发送,因此,只需获得指定的通讯端口即可,从而进行不同通讯方式的数据传输,提高了设备之间的通讯兼容性。

在一个实施例中,s104具体包括数据缓存的步骤,该步骤具体包括以下内容:

s202,总线收发模块对数据进行缓存。

在一个实施例中,当接收通讯端口接收的数据所包含的数据单元超过1个时,端口选择模块将数据顺次缓存至第一级缓存至第n级缓存中。

在本实施例中,总线收发模块包括第一级缓存和第二级缓存。

具体地,当fpga上的数据接收模块接收数据时,fpga上的数据接收模块将数据一个字节、一个字节的缓存至第一级缓存中,当第一级缓存中缓存的数据大小大于等于9个字节时,将第一级缓存中缓存的数据一次性全部缓存至第二级缓存中。当fpga上的数据接收模块接收到第10个字节时,fpga上的总线收发模块将第10个字节覆盖缓存在第一级缓存中的第一字节,以此类推,当第一级缓存中缓存的数据大小大于等于9个字节时,总线收发模块将第一级缓存中缓存的本次数据一次性全部覆盖上次缓存在第二级缓存中的数据。当第一级缓存中缓存的数据大小小于9个字节时,第二级缓存中缓存的上次数据不变,由此可知,第一级缓存的更新速度要快于第二级缓存的更新数据。

s204,端口选择模块读取数据预设位置的字节的值来获得发送通讯端口的地址。

在本实施例中,数据对应的接收通讯端口和对应的发送通讯端口为不同类型的通讯端口。

举例说明,如表二所示,包括帧头1、帧头2、端口地址、数据1、数据2、数据3、数据4、数据5、帧尾共9个字节,其中,第三个字节为本数据所要发送的端口地址。因此,只需读取第二级缓存中缓存的第三个字节的数据,即可获得发送的通讯端口。

表二:数据帧协议

以下结合具体的数据进行举例,如表三所示,rs-232的端口地址为aa,rs-485的端口地址ee。

表三:发送通讯端口协议

单帧数据通信:当fpga上的rs_232接收通讯端口接收到设备a发送的ffffeeaabbccddeeff数据时,端口解析模块对数据进行解析,从而获得端口地址ee,fpga上的rs-485发送通讯端口根据端口地址ee将数据发送至设备b的rs-485通讯模块上。

多帧数据通信:当fpga上的rs_232接收通讯端口接收到设备a发送ffffeeaabbccddeeffffffaaaabbccddeeff数据时,数据ffffeeaabbccddeeff由fpga上的rs-485发送通讯端口发送至设备b的rs-485通讯模块上;数据ffffaaaabbccddeeff由fpga上的rs-232发送通讯端口发送至设备b的rs-232通讯模块上。

可以了解,rs-485属于半双工通信方式,因此在多帧数据发送时,只能向自己以外的端口发送数据;同时rs-485只能单帧向自己发送数据,不能同时收发。

在本实施例中,由于第一级缓存的更新速度大于第二级缓存的更新速度,因此,能够为fpga上的端口解析模块对缓存在第二级缓存中的数据进行端口解析提供更多的处理时间,使得每个数据的端口地址都能够被解析到,从而提高数据传输方法的可靠性。

在一个实施例中,s102之后具体还包括产生接收使能信号的步骤,该步骤具体包括以下内容:

s103,根据不同的通讯端口产生接收使能信号。

其中,fpga上的接收使能模块根据不同的通讯端口产生接收使能信号,相当于,fpga上的rs-485接收通讯端口对应一个接收使能模块,fpga上的wifi接收通讯端口对应一个接收使能模块。比如,当fpga上的rs-485接收通讯端口接收到数据时,对应的接收使能模块产生接收使能信号给总线收发模块。

具体地,fpga上的rs-485通讯模块接收一个字节的数据,对应的接收使能模块就会产生一个接收使能信号给总线收发模块,从而激活总线收发模块,总线收发模块就会缓存一个字节的数据,以此类推。通过一个字节、一个字节的接收、使能、缓存,从而保证数据接收的完整性,进而提高数据传输方法的可靠性。

在一个实施例中,s104之后具体还包括产生发送使能信号的步骤,该步骤具体包括以下内容:

s105,产生发送使能信号。

其中,fpga上的端口解析模块解析到端口地址后,发送使能模块根据该端口地址产生发送使能信号,从而激活对应的发送通讯端口。比如,当fpga上的端口解析模块解析到的端口地址为rs-485时,发送使能模块根据rs-485模块地址产生发送使能信号,从而激活fpga上的rs-485发送通讯端口。

具体地,当通讯设备a想通过rs-232通讯端口和设备b的gprs通讯端口进行数据传输时,fpga上的rs-232接收通讯端口接收设备a发送的数据,并对数据进行端口解析,获得该数据的端口地址,此处为gprs通讯端口。此时,发送使能模块根据gprs端口地址产生发送使能信号,从而激活fpga上的gprs发送通讯端口,使得fpga上的gprs发送通讯端口将数据发送到设备b的rs-485通讯端口上。

应该理解的是,各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,各流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

如图3所示,在一个实施例中,提供一种数据传输装置10,该装置具体包括以下内容:数据接收模块11、端口选择模块12、数据发送模块13。

数据接收模块11,包括至少两种不同的接收通讯端口,用于接收不同通讯协议传输过来的数据。

端口选择模块12,用于暂存数据接收模块接收的数据,对数据进行解析从中获取发送通讯端口的地址,并根据发送通讯端口的地址将数据传递给数据发送模块13中对应的发送通讯端口。

数据发送模块13,包括至少两种不同的发送通讯端口,用于根据不同的通讯协议将数据发送出去。

在一个实施例中,端口选择模块12具体包括以下内容:总线收发模块和端口解析模块。

端口解析模块,用于读取数据预设位置的字节的值来获得发送通讯端口的地址。

总线收发模块,用于接收数据并暂存,并在获得发送通讯端口的地址之后将数据传递给对应的发送通讯端口。

在一个实施例中,总线收发模块还用于将数据缓存的第一级缓存至第n级缓存,n大于等于2。

在一个实施例中,数据传输装置10封装在fpga中。

在一个实施例中,数据传输装置10具体还包括使能模块,使能模块用于当接收通讯端口每接收一个字节,向fpga的控制器输入一个使能信号,控制器控制总线收发模块存储对应的字节,控制器向总线收发模块每次输出一个使能信号来控制总线收发模块向发送通讯端口传送数据的一个字节。

在一个实施例中,数据包含至少一个数据单元,数据单元的第一字节为起始位,最后一个字节为停止位。

在一个实施例中,总线收发模块的各级缓存根据一个数据单元的大小进行划分。

需要说明的,本发明实施例的数据传输装置的具体实现过程与数据传输方法部分相同,具体可参见方法部分实施例,此处不再赘述。

以上为对本发明所提供的一种数据传输装置及方法的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施例及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

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