掌桥专利:专业的专利平台
掌桥专利
首页

一种基于网络协议的数据采集方法、装置及采集卡

文献发布时间:2024-04-18 19:58:21


一种基于网络协议的数据采集方法、装置及采集卡

技术领域

本申请涉及数据采集技术领域,特别是涉及一种基于网络协议的数据采集方法、装置及采集卡。

背景技术

基于网络协议的数据采集方法是一种利用网络进行数据采集和传输的技术,使用计算机网络的基础架构和通信规范,通过网络协议进行数据交换,将采集到的数据从源设备传输到目标设备。以图像采集卡为例,现有技术中,图像采集卡网口设备发送的图像数据以包括数据校验信息的网络数据包的形式进行传输,若采集卡处理器根据数据校验信息判断网络数据包存在传输错误,则向发送网络数据包的网口设备发送重传请求。并且,在采集卡端进行网络数据包解析及图像数据组帧。

目前,现有技术中网络协议包解析、重传请求和处理任务全部在采集卡内完成,若网络数据包中的数据未到达标准网络协议栈,则无法实现采集卡网口联网的功能,若采集卡网口联网,可以使得采集卡作为通用网卡使用,实现网络通信,因此,如何实现采集卡网口联网的功能成了亟待解决的问题。

发明内容

本申请实施例的目的在于提供一种基于网络协议的数据采集方法、装置及采集卡,以实现采集卡网口联网的功能。具体技术方案如下:

第一方面,本申请实施例提供了一种基于网络协议的数据采集方法,所述采集卡设置于预设终端,且与预设采集设备连接,所述方法包括:

接收到网络数据包;

若所述网络数据包为指定拦截数据,则将所述网络数据包所携带的数据发送至所述预设终端的第一处理器,其中,所述指定拦截数据包括所述预设采集设备采集到的目标数据;

若所述网络数据包不为所述指定拦截数据,将所述网络数据包发送至所述预设终端的标准网络协议栈,以使得所述标准网络协议栈基于所述网络数据包实现网络通信。

在一种可能的实施方式中,所述将所述网络数据包所携带的数据发送至所述预设终端的第一处理器,包括:

解析所述网络数据包,得到各解析数据;

按照数据组合规则,组合各所述解析数据,得到组合数据;

将所述组合数据发送至所述预设终端的第一处理器。

在一种可能的实施方式中,所述按照数据组合规则,组合各所述解析数据,得到组合数据,包括:

按照数据帧组合各所述解析数据,得到组合数据,其中,每个所述组合数据包括预设数目数据帧的所述解析数据;或者,

按照数据量组合所述解析数据,得到组合数据,其中,每个所述组合数据的数据量在预设数据量范围内。

在一种可能的实施方式中,所述将所述网络数据包所携带的数据发送至所述预设终端的第一处理器,包括:

向所述预设终端中的采集卡驱动发送地址分配请求,以使得所述采集卡驱动响应于所述地址分配请求,针对所述采集卡配置第一直接内存访问地址,并将所述第一直接内存访问地址发送至所述采集卡;

响应于所述第一直接内存访问地址,将所述网络数据包所携带的数据写入所述第一直接内存访问地址,以使得所述采集卡驱动访问所述第一直接内存访问地址读取所述网络数据包所携带的数据,并将所述网络数据包所携带的数据发送至第一处理器。

在一种可能的实施方式中,在所述将所述网络数据包所携带的数据写入所述第一直接内存访问地址之后,所述方法还包括:

向所述采集卡向所述采集卡驱动发送数据读取请求,以使得所述采集卡驱动访问所述第一直接内存访问地址读取所述网络数据包所携带的数据,并将读取到的网络数据包所携带的数据存储至所述预设终端中的预设存储器。

在一种可能的实施方式中,所述方法还包括:

接收到所述预设终端中运行的应用通过所述标准网络协议栈发送的标准网络数据包;

将所述标准网络数据包发送至所述标准网络数据包的目的网络设备。

在一种可能的实施方式中,所述接收到所述预设终端中运行的应用通过所述标准网络协议栈发送的标准网络数据包,包括:

响应于所述预设终端中的采集卡驱动发送的第二直接内存访问地址,读取所述第二直接内存访问地址中存储的标准网络数据包,其中,所述第二直接内存访问地址为所述采集卡驱动响应于所述预设终端中运行的应用发送的所述标准网络数据包,针对所述采集卡分配的地址,且所述第二直接内存访问地址中存储的标准网络数据包为所述采集卡驱动响应于所述预设终端中运行的应用发送的所述标准网络数据包,将所述标准网络数据包写入所述第二直接内存访问地址中的。

在一种可能的实施方式中,所述方法还包括:

接收采集卡驱动发送的指示信息,其中,所述指示信息为所述采集卡驱动响应于拦截数据配置指令生成的;

将所述指示信息所指示的数据确定为指定拦截数据。

在一种可能的实施方式中,所述方法还包括:

接收采集卡驱动发送的数据组合规则,所述数据组合规则是所述采集卡驱动响应于配置指令生成的。

第二方面,本申请实施例提供了一种基于网络协议的数据采集装置,应用于采集卡,所述采集卡设置于预设终端,且与预设采集设备连接,所述装置包括:

接收模块,用于接收到网络数据包;

数据发送模块,用于若所述网络数据包为指定拦截数据,则将所述网络数据包所携带的数据发送至所述预设终端的第一处理器,其中,所述指定拦截数据包括所述预设采集设备采集到的目标数据;

数据包发送模块,用于若所述网络数据包不为所述指定拦截数据,将所述网络数据包发送至所述预设终端的标准网络协议栈,以使得所述标准网络协议栈基于所述网络数据包实现网络通信;

在一种可能的实施方式中,所述数据发送模块,包括:

解析子模块,用于解析所述网络数据包,得到各解析数据;

组合子模块,用于按照数据组合规则,组合各所述解析数据,得到组合数据;

发送子模块,用于将所述组合数据发送至所述预设终端的第一处理器;

在一种可能的实施方式中,所述组合子模块按照数据组合规则,组合各所述解析数据,得到组合数据,包括:

按照数据帧组合各所述解析数据,得到组合数据,其中,每个所述组合数据包括预设数目数据帧的所述解析数据;或者,

按照数据量组合所述解析数据,得到组合数据,其中,每个所述组合数据的数据量在预设数据量范围内;

在一种可能的实施方式中,所述数据发送模块包括:

地址分配请求发送子模块,用于向所述预设终端中的采集卡驱动发送地址分配请求,以使得所述采集卡驱动响应于所述地址分配请求,针对所述采集卡配置第一直接内存访问地址,并将所述第一直接内存访问地址发送至所述采集卡;

数据写入子模块,用于响应于所述第一直接内存访问地址,将所述网络数据包所携带的数据写入所述第一直接内存访问地址,以使得所述采集卡驱动访问所述第一直接内存访问地址读取所述网络数据包所携带的数据,并将所述网络数据包所携带的数据发送至第一处理器;

在一种可能的实施方式中,所述数据写入子模块还用于在所述将所述网络数据包所携带的数据写入所述第一直接内存访问地址之后,向所述采集卡向所述采集卡驱动发送数据读取请求,以使得所述采集卡驱动访问所述第一直接内存访问地址读取所述网络数据包所携带的数据,并将读取到的网络数据包所携带的数据存储至所述预设终端中的预设存储器;

在一种可能的实施方式中,所述装置还包括:

标准网络数据包接收模块,用于接收到所述预设终端中运行的应用通过所述标准网络协议栈发送的标准网络数据包;

标准网络数据包发送模块,用于将所述标准网络数据包发送至所述标准网络数据包的目的网络设备;

在一种可能的实施方式中,所述标准网络数据包接收模块,具体用于:

响应于所述预设终端中的采集卡驱动发送的第二直接内存访问地址,读取所述第二直接内存访问地址中存储的标准网络数据包,其中,所述第二直接内存访问地址为所述采集卡驱动响应于所述预设终端中运行的应用发送的所述标准网络数据包,针对所述采集卡分配的地址,且所述第二直接内存访问地址中存储的标准网络数据包为所述采集卡驱动响应于所述预设终端中运行的应用发送的所述标准网络数据包,将所述标准网络数据包写入所述第二直接内存访问地址中的。

所述装置还包括:

指示信息接收模块,用于接收采集卡驱动发送的指示信息,其中,所述指示信息为所述采集卡驱动响应于拦截数据配置指令生成的;

指定拦截数据确定模块,用于将所述指示信息所指示的数据确定为指定拦截数据。

所述装置还包括:

数据组合规则接收模块,用于接收采集卡驱动发送的数据组合规则,所述数据组合规则是所述采集卡驱动响应于配置指令生成的。

第三方面,本申请实施例提供了一种采集卡,所述采集卡设置于预设终端,所述采集卡包括第二处理器和网口,所述采集卡通过所述网口与预设采集设备连接;

所述网口,用于接收网络数据包,并将所述网络数据包发送至所述第二处理器;

所述第二处理器,用于若所述网络数据包为指定拦截数据,则将所述网络数据包所携带的数据发送至所述预设终端的第一处理器,其中,所述指定拦截数据包括所述预设采集设备采集到的图像数据;

若所述网络数据包不为所述指定拦截数据,将所述网络数据包发送至所述预设终端的标准网络协议栈,以使得所述标准网络协议栈基于所述网络数据包实现网络通信。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请中任一所述的基于网络协议的数据采集方法。

本申请实施例提供的一种基于网络协议的数据采集方法,应用于设置于预设终端且与预设采集设备连接的采集卡,采集卡在接收到网络数据包后,若网络数据包为指定拦截数据,则将网络数据包所携带的数据发送至预设终端的第一处理器,若网络数据包不为指定拦截数据,将网络数据包发送至预设终端的标准网络协议栈,以使得标准网络协议栈基于所述网络数据包实现网络通信。通过本申请实施例的方法,采集卡不仅可以将拦截的指定拦截数据发送至预设终端的第一处理器,以使得处理器对指定拦截数据进行处理,还可以将不为指定拦截数据的网络数据包发送至预设终端的标准网络协议栈,以使得标准网络协议栈对网络数据包进行解析,并将解析后的网络数据包中的数据发送至预设终端。这样,采集卡可以向预设终端发送所有数据,使得采集卡具备通用网卡的联网功能。

当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本申请实施例提供的基于网络协议的数据采集方法的示意图;

图2为图1中步骤S12的细化示意图;

图3为本申请实施例提供的基于网络协议的数据采集方法的示例图;

图4为本申请实施例提供的基于网络协议的数据采集装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。

首先,对本申请实施例中的专业术语进行解释:

PCIe:又称PCI-Express,英文全称为peripheral component interconnectexpress,是一种高速串行计算机扩展总线标准。

采集卡:采集卡主要是捕获外界光电、视频、音频等模拟信号并将其数字化导入计算机进行数字处理的捕获设备,主要有图像采集卡、视频采集卡、音频采集卡(比如声卡)、数据采集卡等,本申请中的采集卡属于PCIe设备。

DMA:Direct Memory Access,直接内存访问,是一些计算机总线架构提供的功能,能使数据从附加设备(如磁盘驱动器)直接发送到计算机主板的内存上。在进行I/O设备和内存的数据传输的时候,数据搬运的工作全部交给DMA控制器,而CPU(处理器)不再参与任何与数据搬运相关的事情,这样CPU就可以去处理别的事务。

中断:PCIe设备有三种中断,分别为INTx中断、MSI中断、MSI-X中断。

MSI:message signal interrupt,消息信号中断,是PCI设备通过写一个特定消息到特定地址,从而触发一个CPU中断,最大支持32个中断。

标准网络协议栈:负责计算机的网络通信,通过实现各种协议和算法,使得计算机能够在网络中进行数据交换和通信。

透传:指与传输网络的介质、调制解调方式、传输方式和传输协议无关的一种数据传送方式。

为了实现采集卡网口联网的功能,本申请实施例的第一方面,提供了一种基于网络协议的数据采集方法,应用于采集卡,采集卡设置于预设终端,且与预设采集设备连接,参见图1,该方法包括:

步骤S11,接收到网络数据包;

网络数据包是由采集设备采集得到后通过采集卡网口发送至采集卡的,采集设备可以是直接接入在采集卡网口的,也可以是接入在路由器或交换机等具备数据传输功能的网络设备上,且这些网络设备应当接入在采集卡网口上。

其中,采集卡可以是图像采集卡、视频采集卡、音频采集卡、数据采集卡等,具体的,若网络数据包为采集设备采集后通过采集卡网口发送至采集卡的,则当采集卡为图像采集卡时,网络数据包为图像采集设备发送的数据包,当采集卡为视频采集卡时,网络数据包为视频采集设备发送的数据包,当采集卡为音频采集卡时,网络数据包为音频采集设备发送的数据包,当采集卡为数据采集卡时,网络数据包为数据采集设备发送的数据包。

当采集卡为图像采集卡时,网络数据包中包括图像采集设备采集的图像数据,当采集卡为视频采集卡时,网络数据包中包括视频采集设备采集的视频数据,当采集卡为音频采集卡时,网络数据包中包括音频采集设备采集的音频数据,当采集卡为数据采集卡时,网络数据包中包括数据采集设备采集的指定数据。

步骤S12,若网络数据包为指定拦截数据,则将网络数据包所携带的数据发送至预设终端的第一处理器,其中,指定拦截数据包括预设采集设备采集到的目标数据;

其中,指定拦截数据为采集卡根据预先配置的拦截规则拦截的目标数据,采集卡按照该拦截规则拦截需要发送至第一处理器进行进一步处理的数据,并且拒绝拦截无需发送至第一处理器进行进一步处理的数据。例如,可以认为各采集设备采集到的数据为网络数据包所携带的数据,这些数据需要经过第一处理器的进一步处理,因此在本申请中各采集设备采集到的数据(下文称目标数据)为指定拦截数据,并且根据实际需求,指定拦截数据也可以包括目标数据以外的其他数据。

具体的,当采集卡为图像采集卡时,目标数据为图像采集设备采集到的图像数据,当采集卡为视频采集卡时,目标数据为视频采集设备采集到的视频数据,当采集卡为音频采集卡时,目标数据为音频采集设备采集到的音频数据,当采集卡为数据采集卡时,目标数据为数据采集设备采集到的指定数据。

采集卡将网络数据包发送至预设终端的第一处理器,以使得预设终端的第一处理器在接收到采集卡发送的网络数据包后,对网络数据包进行处理。示例性的,预设终端为计算机,网络数据包为图像采集设备发送的,采集卡将该网络数据包发送至计算机后,计算机可以对收到的网络数据包中的图像数据进行播放、存储等处理,也可以基于图像数据进行缺陷检测、条码识别等机器视觉处理。预设终端可以是计算机终端,也可以是服务器终端,在本申请中不做具体限定。

步骤S13,若网络数据包不为指定拦截数据,将网络数据包发送至预设终端的标准网络协议栈,以使得标准网络协议栈基于网络数据包实现网络通信。

将网络数据包发送至预设终端的标准网络协议栈是指将在不对网络数据包做任何处理的情况下直接将该网络数据包发送至预设终端的标准网络协议栈。

由于采集卡只能解析指定拦截数据的网络数据包,而无法解析非指定拦截数据的网络数据包,因此相关技术中采集卡无法对非指定拦截数据的网络数据包进行响应,而本申请中可以直接将非指定拦截数据的网络数据包进行传输,因此可以使得采集卡也能够对非指定拦截数据的网络数据包进行响应。

在一种可能的实施例中,由于在透传过程中无需对网络数据包进行解析,因此可以采用透传的方式将网络数据包发送至预设终端的标准网络协议栈。

在一种可能的实施方式中,在将网络数据包发送至预设终端的标准网络协议栈时,可以将网络数据包进行拷贝,进行备份。

采用本申请实施例的方法,采集卡不仅可以将拦截的指定拦截数据发送至预设终端的第一处理器,以使得第一处理器对指定拦截数据进行处理,还可以响应于接收到不为指定拦截数据的网络数据包,将这些网络数据包发送至预设终端的标准网络协议栈,以使得标准网络协议栈对网络数据包进行解析,并将解析后的网络数据包中的数据发送至预设终端。这样,采集卡可以向预设终端发送所有数据,使得采集卡具备通用网卡的联网功能。

在一种可能的实施方式中,如图2所示,上述步骤S12具体可以包括以下步骤:

步骤S121,解析网络数据包,得到各解析数据;

其中,由于与采集卡连接的采集设备至少有一个,并且采集设备是会不断地采集数据并向采集卡发送网络数据包,所以,网络数据包有多个。因此,解析网络数据包后得到的解析数据也有多个。示例性的,采集卡为视频采集卡,采集设备为摄像头,视频采集卡会不断地接收到摄像头发送的数据包,每个数据包中包括不同的视频帧数据,视频采集卡对接收到的数据包进行解析后,得到多个视频帧。

对网络数据包进行解析后得到的各解析数据,是对应的预设采集设备采集到的各数据,示例性的,当网络数据包为图像采集设备发送的数据包时,解析数据可以是图像采集设备采集到的各图像帧。

在一种实施例中,预设采集设备采集的网络数据包中可能携带有多种不同格式的数据,示例性的,预设采集设备为图像采集设备,该图像采集设备可以进行读码识别,因此,该图像采集设备发送的数据包中可能同时携带图像和识别结果的文字说明。再例如,预设采集设备为音频采集设备,该音频采集设备可以进行语音转换,因此,该音频采集设备发送的数据包中可能同时包括音频和语音转换生成的文本。

步骤S122,按照数据组合规则,组合各解析数据,得到组合数据;

现有技术中,预设终端的处理器通常是对完整的数据进行处理,示例性的,当采集卡为视频采集卡时,预设终端的处理器是对完整的视频剪辑、分析、播放等处理,而视频采集卡采集到的是视频帧,为了得到完整的图像数据,需要将各连续的视频帧组合为完整的视频数据。

因此,在得到采集卡采集的数据帧时,需要按照数据组合规则对数据帧进行组合。

数据组合规则用以指示各解析数据是以何种方式进行组合,具体的,可以是指示将预设帧数的数据进行组合,也可以使得组合后的组合数据的数据量在预设数据量范围内。示例性的,数据组合规则可以是用以指示将20帧数据帧进行组合,也可以是使得组合后的组合数据的数据量控制在19M~20M之间。

数据组合规则是用户预先通过采集卡驱动向采集卡网口进行配置的,数据组合规则所规定的组合方式应当是:对采集设备采集到的数据进行进一步处理过程中所需的组合方式。

在一种可能的实施方式中,用户可以预先通过采集卡驱动向采集卡网口配置指定拦截数据、数据组合规则。

在本申请实施例中,由于采集卡接收网络数据包是不断进行的过程,因此,上述步骤S121和步骤S122并不是如图2所示的先后顺序,该两个步骤是交替进行的,示例性的,假设图像采集卡连续的接收3个网络数据包,数据组合规则为将10帧图像帧进行组合,采集卡解析第一个网络数据包后,第一个网络数据包中的图像帧的数量为8,则采集卡在将第一个网络数据包中的8帧图像帧进行组合时,解析第二个网络数据包,解析得到第二个网络数据包中的图像帧的数量为7,将第二个网络数据包中的2帧图像帧与第一网络数据包中的8帧图像帧组合为一个组合数据,然后将第二网络数据包中的剩余5帧图像帧进行组合,同时,解析第三个网络数据包,得到5帧图像数据帧,将第三网络数据包中的5帧图像帧与第二网络数据摆中剩余的5帧图像帧组合为一个组合数据。

步骤S123,将组合数据发送至预设终端的第一处理器。

在一种实施例中,在将组合数据发送至预设终端的第一处理器前,采集卡会判断组合数据是否满足数据组合规则,当组合数据满足数据组合规则时将组合数据进行发送。示例性的,数据组合规则为将30帧的图像数据进行组合,采集卡解析当前接收到的网络数据包,得到10帧图像数据,将该10帧图像数据进行组合后,经过判断并不满足数据组合规则,则继续解析下一个网络数据包,得到20帧图像数据,并将该20帧图像数据与上一个网络数据包中的10帧图像数据进行组合,再次经过判断组合数据已经满足数据组合规则,则将该30帧图像数据作为一个组合数据并发送。

采用本申请实施例,采集卡通过解析网络数据包,并按照数据组合规则对解析后的解析数据进行组合,相较于现有技术中将网络数据包中的每一数据帧逐帧发送至预设终端的处理器,由预设终端的处理器将各数据帧进行组合,本申请中无需由预设终端的处理器对网络数据包所携带的数据组合,减少了对预设终端的处理器的资源占用。

在一种可能的实施方式中,上述方法还包括:接收采集卡驱动发送的指示信息,其中,所述指示信息为所述采集卡驱动响应于拦截数据配置指令生成的;将所述指示信息所指示的数据确定为指定拦截数据。

采用本申请实施例,可以实现指定数据拦截,对指定数据进行处理,提高了传输效率。

在一种可能的实施方式中,上述方法还包括:接收采集卡驱动发送的数据组合规则,所述数据组合规则是所述采集卡驱动响应于配置指令生成的。

采用本申请实施例,通过配置采集卡网口的数据组合规则,相较于现有技术中只能进行单帧传输,可以按照数据组合规则对数据进行组合并发送,进一步提高了传输效率。

在一种可能的实施方式中,上述步骤S122具体可以包括:

步骤A,按照数据帧组合各解析数据,得到组合数据,其中,每个组合数据包括预设数目数据帧的解析数据;

或者,

步骤B,按照数据量组合解析数据,得到组合数据,其中,每个组合数据的数据量在预设数据量范围内。

按照数据帧组合各解析数据,是指将预设数目数据帧的解析数据进行组合,示例性的,当采集卡为图像采集卡时,用户设置数据组合规则为将20帧图像数据进行组合,解析各网络数据包得到各图像数据帧后,采集卡每次是根据数据组合规则将20帧图像数据组合为一个组合数据,并发送至预设终端的第一处理器。

按照数据量组合解析数据,是指将多个数据帧组合为预设数据量的组合数据,示例性的,当采集卡为图像采集卡,用户设置数据组合规则为将20M图像数据进行组合,解析各网络数据包得到为各图像数据帧后,采集卡每次是根据数据组合规则将多个图像数据帧组合为大小为20M的一个组合数据,并发送至预设终端的第一处理器。

采用本申请实施例的方法,通过在采集卡中将预设数目个图像帧的解析数据进行组合并发送至预设终端的第一处理器,或者在采集卡中将预设数据量的解析数据进行组合并发送至预设终端的第一处理器,提高了采集卡的传输效率。

在一种可能的实施方式中,上述步骤S12具体可以包括:

步骤C,向所述预设终端中的采集卡驱动发送地址分配请求,以使得所述采集卡驱动响应于所述地址分配请求,针对所述采集卡配置第一直接内存访问地址,并将所述第一直接内存访问地址发送至所述采集卡;

若网络数据包不为指定拦截数据,采集卡先向预设终端中的采集卡驱动发送地址分配请求,采集卡驱动响应于地址分配请求为采集卡配置第一直接内存访问地址,并将该第一内存直接访问地址发送至采集卡,该第一内存直接访问地址是用于采集卡写入非指定拦截数据的网络数据包中的数据的。

在一种实施例中,采集卡可以向采集卡驱动发送中断请求,以使得采集卡驱动响应于中断请求对采集卡配置第一DMA地址,即第一直接内存访问地址,并通知采集卡向配置的第一DMA地址中写入数据。

步骤D,响应于所述第一直接内存访问地址,将所述网络数据包所携带的数据写入所述第一直接内存访问地址,以使得所述采集卡驱动访问所述第一直接内存访问地址读取所述网络数据包所携带的数据,并将所述网络数据包所携带的数据发送至第一处理器。

采用本申请实施例的方法,通过向预设终端中的采集卡驱动发送地址分配请求,在接收到采集卡驱动响应于地址分配请求发送的第一直接内存访问地址后,将网络数据包所携带的数据写入第一直接内存访问地址,进而使得采集卡驱动可以将第一直接内存地址中的网络数据包所携带的数据发送至预设终端的第一处理器,这样,降低了数据的丢包率。

在一种可能的实施方式中,在上述步骤D中,在将网络数据包所携带的数据写入第一直接内存访问地址之后,上述方法还包括:

步骤c,向采集卡驱动发送数据读取请求,以使得采集卡驱动访问第一直接内存访问地址读取网络数据包所携带的数据,并将读取到的网络数据包所携带的数据存储至所述预设终端中的预设存储器。

其中,预设终端的预设存储器中存储有数据时,预设终端的第一处理器会对预设存储器中的数据进行处理。示例性的,预设终端为计算机,采集卡驱动访问第一直接内存访问地址读取到1个单位的视频数据,并将该1个单位的视频数据存储至计算机的某个特定存储器中,计算机的处理器在接收到该特定存储器中存储有新的视频数据时,对该1个单位的视频数据进行处理。

采用本申请实施例的方法,在采集卡将网络数据包所携带的数据写入第一直接内存访问地址之后,立即向采集卡驱动发送数据读取请求,使得采集卡驱动可以及时将第一直接内存访问地址中的网络数据包所携带的数据发送至预设终端中的预设存储器中,提高了采集卡的传输效率。

在一种可能的实施方式中,上述方法还包括:

步骤S14,接收到所述预设终端中运行的应用通过所述标准网络协议栈发送的标准网络数据包;

其中,预设终端中运行的应用通过标准网络协议栈发送的标准网络数据包,是指预设终端中运行的应用发送的网络数据,通过标准网络协议栈,组成标准网络数据包。

步骤S15,将所述标准网络数据包发送至所述标准网络数据包的目的网络设备。

标准网络数据包的目的网络设备是指与采集卡连接的路由器或交换机等网络设备,,网络设备可以将标准网络数据传输至与路由器或交换机连接的网络中。

采用本申请实施例,采集卡可以接收预设终端中运行的应用通过标准网络协议栈发送的标准网络数据包,并将标准网络数据包发送至标准网络数据包的目的网络设备中,通过采集卡实现了网络通信,使得采集卡可以作为通用网卡使用。

在一种可能的实施方式中,上述步骤S15,具体可以包括:

步骤S151,响应于预设终端中的采集卡驱动发送的第二直接内存访问地址,读取第二直接内存访问地址中存储的标准网络数据包,其中,第二直接内存访问地址为采集卡驱动响应于预设终端中运行的应用发送的所述标准网络数据包,针对采集卡分配的地址,且第二直接内存访问地址中存储的标准网络数据包为采集卡驱动响应于预设终端中运行的应用发送的标准网络数据包,将标准网络数据包写入第二直接内存访问地址中的。

具体的,标准网络协议栈将预设终端中运行的应用发送的网络数据组成标准网络数据包,并向采集卡驱动发送该标准网络数据包,采集卡驱动通过DMA的方式将标准网络数据包搬运到采集卡驱动为采集卡配置的第二直接内存访问地址中。示例性的,采集卡驱动在接收到预设终端中运行的应用通过标准网络协议栈发送的标准网络数据包后,为采集卡配置一个直接内存访问地址A,并将标准网络数据包中的数据写入该直接内存访问地址A中。

采用本申请实施例的方法,通过采集卡驱动响应于预设终端中运行的应用发送的标准网络数据包,针对采集卡分配第二直接访问内存地址,并将预设终端中运行的应用发送的标准网络数据包写入第二直接内存访问地址,使得采集卡可以从第二直接内存访问地址中读取标准网络数据包,进而将标准网络数据包发送至标准网络数据包的目的网络设备中,实现采集卡的联网功能。

为了更清楚的说明本申请的方法,参见图3,提供了一种基于网络协议的数据采集方法的示例图,以数据组合规则为将4帧图像帧进行组合为例,图中采集卡为图像采集卡,标准网络协议栈为预设终端的标准网络协议栈,采集卡驱动是设置在预设终端上的,采集卡是一种PCIe设备,采集卡与部分工业相机连接,还通过交换机或路由器等网络设备与另一部分工业相机连接。当图像采集卡通过采集卡网口接收到工业相机直接发送的网络数据包或者由网络设被通过网口发送的工业相机采集的网络数据包时,采集卡先判断网络数据包是否为图像数据,若是,则向预设终端中的采集卡驱动发送中断请求,以使得采集卡驱动接收到中断请求后,向采集卡配置一个DMA地址(即前文中的第一DMA地址);并且,采集卡解析指定拦截数据的网络数据包,得到各图像帧,并按照每4帧图像帧进行组合的方式,将各图像帧进行组合,并将组合后的数据写入该DMA中,进而将组合数据发送至预设终端的处理器进行处理;若网络数据包不是图像数据,则将网络数据包通过PCIe总线搬运发送至标准网络协议栈,使得标准网络协议栈对收到的网络数据包进行解析,进而使得预设终端中的应用层接收到网络包数据,从而实现网络通信。

对应于上述方法实施例,如图4所示,本申请实施例提供了一种基于网络协议的数据采集装置,应用于采集卡,所述采集卡设置于预设终端,且与预设采集设备连接,该装置包括:

接收模块401,用于接收到网络数据包;

数据发送模块402,用于若所述网络数据包为指定拦截数据,则将所述网络数据包所携带的数据发送至所述预设终端的第一处理器,其中,所述指定拦截数据包括所述预设采集设备采集到的目标数据;

数据包发送模块403,用于若所述网络数据包不为所述指定拦截数据,将所述网络数据包发送至所述预设终端的标准网络协议栈,以使得所述标准网络协议栈基于所述网络数据包实现网络通信;

采用本申请实施例的方法,采集卡不仅可以将拦截的指定拦截数据发送至预设终端的第一处理器,以使得第一处理器对指定拦截数据进行处理,还可以将不为指定拦截数据的网络数据包发送至预设终端的标准网络协议栈,以使得标准网络协议栈对网络数据包进行解析,并将解析后的网络数据包中的数据发送至预设终端。这样,采集卡可以向预设终端发送所有数据,使得采集卡具备通用网卡的联网功能。

在一种可能的实施方式中,所述数据发送模块402,包括:

解析子模块,用于解析所述网络数据包,得到各解析数据;

组合子模块,用于按照数据组合规则,组合各所述解析数据,得到组合数据;

发送子模块,用于将所述组合数据发送至所述预设终端的第一处理器;

在一种可能的实施方式中,所述组合子模块按照数据组合规则,组合各所述解析数据,得到组合数据,包括:

按照图像帧组合各所述解析数据,得到组合数据,其中,每个所述组合数据包括预设数目图像帧的所述解析数据;或者,

按照数据量组合所述解析数据,得到组合数据,其中,每个所述组合数据的数据量在预设数据量范围内;

在一种可能的实施方式中,所述数据发送模块402包括:

地址分配请求发送子模块,用于向所述预设终端中的采集卡驱动发送地址分配请求,以使得所述采集卡驱动响应于所述地址分配请求,针对所述采集卡配置第一直接内存访问地址,并将所述第一直接内存访问地址发送至所述采集卡;

数据写入子模块,用于响应于所述第一直接内存访问地址,将所述网络数据包所携带数据写入所述第一直接内存访问地址,以使得所述采集卡驱动访问所述第一直接内存访问地址读取所述网络数据包所携带数据,并将所述网络数据包所携带数据发送至第一处理器;

在一种可能的实施方式中,所述数据写入子模块还用于在所述将所述网络数据包所携带数据写入所述第一直接内存访问地址之后,向所述采集卡向所述采集卡驱动发送数据读取请求,以使得所述采集卡驱动访问所述第一直接内存访问地址读取所述网络数据包所携带数据,并将读取到的网络数据包所携带数据存储至所述预设终端中的预设存储器;

在一种可能的实施方式中,所述装置还包括:

标准网络数据包接收模块,用于接收到所述预设终端中运行的应用通过所述标准网络协议栈发送的标准网络数据包;

标准网络数据包发送模块,用于将所述标准网络数据包发送至所述标准网络数据包的目的网络设备;

在一种可能的实施方式中,所述标准网络数据包接收模块,具体用于:

响应于所述预设终端中的采集卡驱动发送的第二直接内存访问地址,读取所述第二直接内存访问地址中存储的标准网络数据包,其中,所述第二直接内存访问地址为所述采集卡驱动响应于所述预设终端中运行的应用发送的所述标准网络数据包,针对所述采集卡分配的地址,且所述第二直接内存访问地址中存储的标准网络数据包为所述采集卡驱动响应于所述预设终端中运行的应用发送的所述标准网络数据包,将所述标准网络数据包写入所述第二直接内存访问地址中的。

在一种可能的实施方式中,所述装置还包括:

指示信息接收模块,用于接收采集卡驱动发送的指示信息,其中,所述指示信息为所述采集卡驱动响应于拦截数据配置指令生成的;

指定拦截数据确定模块,用于将所述指示信息所指示的数据确定为指定拦截数据;和/或

在一种可能的实施方式中,所述装置还包括:

数据组合规则接收模块,用于接收采集卡驱动发送的数据组合规则,所述数据组合规则是所述采集卡驱动响应于配置指令生成的。

本申请实施例还提供了一种采集卡,采集卡设置于预设终端,采集卡包括第二处理器和网口,采集卡通过网口与预设采集设备连接;

网口,用于接收网络数据包,并将网络数据包发送至第二处理器;

所述第二处理器,用于若所述网络数据包为指定拦截数据,则将所述网络数据包所携带的数据发送至所述预设终端的第一处理器,其中,所述指定拦截数据包括所述预设采集设备采集到的目标数据;

若所述网络数据包不为所述指定拦截数据,将所述网络数据包发送至所述预设终端的标准网络协议栈,以使得所述标准网络协议栈基于所述网络数据包实现网络通信。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:

接收到网络数据包;

若所述网络数据包为指定拦截数据,则将所述网络数据包所携带的数据发送至所述预设终端的第一处理器,其中,所述指定拦截数据包括所述预设采集设备采集到的目标数据;

若所述网络数据包不为所述指定拦截数据,将所述网络数据包发送至所述预设终端的标准网络协议栈,以使得所述标准网络协议栈基于所述网络数据包实现网络通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一基于网络协议的数据采集方法的步骤。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一基于网络协议的数据采集方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者固态硬盘(Solid StateDisk,SSD)等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

相关技术
  • 一种基于数据采集卡的数据采集装置
  • 一种基于CPLD的IO数据采集卡及其数据采集方法
技术分类

06120116482276