一种数据处理方法和系统与流程

文档序号:33188468发布日期:2023-02-04 07:28阅读:34来源:国知局
一种数据处理方法和系统与流程

1.本说明书涉及数据处理技术领域,特别涉及一种数据处理方法和系统。


背景技术:

2.在数据采集上传过程中,随着数据采集端的采样通道数越来越多,数据的带宽越来越高,基于单采集卡的数据采集系统已经无法满足需求。在一些实施例中,可以采用多个数据采集卡协同进行数据采集,然后将数据汇总上传。但是,由于数据的带宽需求越来越高,对于各个数据采集卡之间数据汇总以及流量控制的要求也越来越高。
3.因此,希望提供一种数据处理方法和系统,可以提高数据传输速率,同时避免数据汇总时的拥塞和数据丢失。


技术实现要素:

4.本说明书一个方面提供一种数据处理方法,应用于包含第一数据采集卡和至少一个第二数据采集卡的数据处理系统,所述第一数据采集卡和所述第二数据采集卡均为基于aurora协议的板卡。所述方法由所述第一数据采集卡执行,包括:接收所述第二数据采集卡传输的第一数据,并存入数据缓存器;基于缓存的所述第一数据,对所述第二数据采集卡的数据传输进行流量控制;以及根据第一条件,对所述第一数据采集卡采集的第二数据和缓存的所述第一数据进行合并,并将合并后的数据传输至上位机。
5.在一些实施例中,所述基于缓存的所述第一数据,对所述第二数据采集卡的数据传输进行流量控制,包括:对所述至少一个第二数据采集卡中的每一个,响应于缓存的所述第二数据采集卡对应的第一数据的数据量达到相应的第一阈值,停止所述第二数据采集卡的数据上传;响应于缓存的所述第二数据采集卡对应的第一数据的数据量小于第二阈值,激活所述第二数据采集卡的数据上传。
6.在一些实施例中,所述第一阈值大于所述第二阈值,对多个所述第二数据采集卡中的每一个,由所述上位机根据所述第二数据采集卡对应的数据业务类型动态分配相应的第一阈值和/或第二阈值。
7.在一些实施例中,所述根据第一条件,对所述第一数据采集卡采集的第二数据和缓存的所述第一数据进行合并,包括:按照通道号,将相同数据帧号的所述第二数据和多组所述第一数据进行合并。
8.在一些实施例中,所述接收所述第二数据采集卡传输的第一数据,并存入数据缓存器,包括:通过收发器通道,分别接收每个第二数据采集卡传输的第一数据;通过aurora模块,将各个通道接收到的第一数据转换为axi-stream数据流,并存入数据缓存器。
9.本说明书另一个方面提供一种数据处理系统,包括:第一数据采集卡、至少一个第二数据采集卡以及上位机,所述第一数据采集卡和所述第二数据采集卡均为基于aurora协议的板卡;其中,所述第一数据采集卡被配置为:对所述至少一个第二数据采集卡的数据传输进行流量控制,以及对所述第一数据采集卡采集的第二数据和缓存的所述至少一个第二
数据采集卡对应的第一数据进行合并,并将合并后的数据传输至所述上位机。
10.在一些实施例中,所述第一数据采集卡或所述第二数据采集卡包括以下至少一个:数据采集模块、协议打包模块、datamover模块、缓存模块、aurora模块和收发器模块。
11.在一些实施例中,所述第一数据采集卡包括:流量控制模块,用于基于缓存的所述第一数据,对所述第二数据采集卡的数据传输进行流量控制;数据处理模块,用于根据第一条件,对所述第一数据采集卡采集的第二数据和缓存的所述第一数据进行合并;以及pcie模块,用于将合并后的数据传输至所述上位机。
12.在一些实施例中,所述第一数据采集卡用于:对所述至少一个第二数据采集卡中的每一个,响应于缓存的所述第二数据采集卡对应的第一数据的数据量达到相应的第一阈值,利用aurora nfc的xoff帧,停止所述第二数据采集卡的数据上传;响应于缓存的所述第二数据采集卡对应的第一数据的数据量小于第二阈值,利用所述aurora nfc的xon数据帧,激活所述第二数据采集卡的所述数据上传。
13.在一些实施例中,所述第一数据采集卡和所述至少一个第二数据采集卡的数据传输接口包括aurora nfc接口、aurora用户数据接口、aurora user-k数据接口、aurora ufc接口中的至少一个。
14.在多个采集卡的数据采集系统中,由于数据的带宽需求越来越高,对于各个采集卡之间数据汇总以及流量控制(flow control)的要求也越来越高。本说明书实施例中提供的数据处理方法和系统,利用可编程阵列逻辑(field programmable gate array,fpga)中的aurora协议,将协同采集卡(第二数据采集卡)的采集数据上传到主采集卡(第一数据采集卡)中进行汇总,同时通过主采集卡利用aurora的nfc接口对协同采集卡进行流量控制,可以避免高速数据传输的拥塞导致数据传输汇总过程中发生数据丢失的问题,同时保证数据传输汇总的正确性和数据传输的高效性。
附图说明
15.本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
16.图1是根据本说明书一些实施例所示的示例性数据处理系统的结构示意图;
17.图2是根据本说明书一些实施例所示的示例性第二数据采集卡的结构示意图;
18.图3是根据本说明书一些实施例所示的示例性第一数据采集卡的结构示意图;
19.图4是根据本说明书一些实施例所示的示例性数据处理方法的流程示意图;
20.图5是根据本说明书一些实施例所示的示例性流量控制的流程示意图;
21.图6是根据本说明书另一些实施例所示的示例性数据处理系统的示意图。
具体实施方式
22.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标
号代表相同结构或操作。
23.应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
24.通常,这里使用的词语“模块”、“单元”或“块”是指体现在硬件或固件中的逻辑,或者是软件指令的集合。本文中描述的模块、单元或块可以实现为软件和/或硬件,并且可以存储在任何类型的非暂时性计算机可读介质或另一存储设备中。在一些实施例中,可以编译软件模块/单元/块并将其链接到可执行程序中。应当理解,软件模块可以从其他模块/单元/块或从它们自身调用,和/或可以响应检测到的事件或中断来调用。可以在计算机可读介质(例如,光盘、数字视频盘、闪存驱动器、磁盘或任何其他有形介质)上提供配置为在计算设备上执行的软件模块/单元/块,或者作为数字下载(最初可以以压缩或可安装的格式存储,在执行之前需要安装、解压缩或解密)。这里的软件代码可以被部分的或全部的储存在执行操作的计算设备的存储设备中,并应用在计算设备的操作之中。软件指令可以嵌入固件中,例如eprom。还应当理解,硬件模块/单元/块可以包括在连接的逻辑组件中,例如门和触发器,和/或可以包括可编程单元,例如可编程门阵列或处理器。这里描述的模块/单元/块或计算设备功能可以实现为软件模块/单元/块,但是可以用硬件或固件表示。通常,这里描述的模块/单元/块指的是逻辑模块/单元/块,其可以与其他模块/单元/块组合或者分成子模块/子单元/子块,尽管它们是物理组织或存储器件。该描述可适用于系统、引擎或其一部分。
25.可以理解的是,除非上下文另有明确说明,当单元、引擎、模块或块被称为在另一单元、引擎、模块或块“上”、“连接”或“耦合至”另一单元、引擎、模块或块时,其可以直接在其它单元、引擎、模块或块上,与其连接或耦合或与之通信,或者可能存在中间单元、引擎、模块或块。在本说明书中,术语“和/或”可包括任何一个或以上相关所列条目或其组合。本说明书中,术语“图像”可指2d图像、3d图像或4d图像。
26.根据以下对附图的描述,本说明书的这些和其它的特征、特点以及相关结构元件的功能和操作方法,以及部件组合和制造经济性,可以变得更加显而易见,这些都构成本说明书的一部分。然而,应当理解的是,附图仅仅是为了说明和描述的目的,并不旨在限制本说明书的范围。应当理解的是,附图并不是按比例绘制的。
27.如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
28.本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作,相关描述是为帮助更好地理解磁共振成像方法和/或系统。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
29.图1是根据本说明书一些实施例所示的示例性数据处理系统的结构示意图。
30.如图1所示,在一些实施例中,数据处理系统100可以包括第一数据采集卡110、第二数据采集卡120以及上位机130。
31.第一数据采集卡110和第二数据采集卡120可以用于前端数据采集。例如,第一数据采集卡110和第二数据采集卡120可以用于采集成像设备扫描获得的影像数据。成像设备可以用于扫描位于其检测区域内的目标对象或其一部分,并生成与该目标对象或其一部分有关的影像数据(例如,投影图像、断层图像等)。在一些实施例中,目标对象可以是生物的或非生物的。例如,目标对象可以包括患者、人造物体等。在一些实施例中,目标对象可以包括身体的特定部分(例如头部、胸部、腹部)、特定器官(例如心脏、食道、气管、胃、胆囊、膀胱、子宫等)或感兴趣区域(例如肿瘤、结节等)。在一些实施例中,成像设备可以包括dsa(数字减影血管造影技术)设备、数字化x射线摄影设备(digital radiography,dr)、计算机x射线摄影设备(computed radiography,cr)、数字荧光x线摄影设备(digital fluorography,df)、ct设备、磁共振成像设备、乳腺x线机、c形臂设备等。可以理解,上述内容仅作为示例,在一些实施例中,第一数据采集卡110和第二数据采集卡120也可以用于采集其他类型的数据,本说明书对此不作限制。
32.在一些实施例中,第一数据采集卡110和第二数据采集卡120可以包括基于aurora协议的板卡。aurora协议是一种可自由使用、简便的点对点链路层协议。其能够使其他高层协议很简单地运行在aurora之上。例如,aurora的ip核可以支持与光纤的无缝连接,传输过程中抗电磁干扰能力强,集成度高,具有很强的灵活性。
33.在一些实施例中,数据处理系统100可以包括一个第一数据采集卡,以及一个或多个第二数据采集卡。例如,数据处理系统100可以包括第二数据采集卡120-1、第二数据采集卡120-2、

、第二数据采集卡120-n等。在一些实施例中,可以根据数据处理系统100的业务场景,确定第二数据采集卡的数量。例如,若每个第二数据采集卡对应64个通道的采集数据,则根据不同的业务场景,通道数越多,需要的第二数据采集卡的数量将越多。在一些实施例中,不同的采集卡数量对应不同的数据传输带宽。在一些实施例中,第二数据采集卡的数量越多,对应的第一数据采集卡的数据传输带宽越高。在一些实施例中,每个第二数据采集卡可以分别分配不同的地址段。根据地址段的不同可以区分各第二数据采集卡,以避免数据和控制命令的传递错误。
34.在一些实施例中,第一数据采集卡110可以为主采集卡,第二数据采集卡120为协同采集卡。其中,主采集卡可以将自己采集的数据与协同采集卡上传的数据进行打包汇总,和/或对多个协同采集卡的数据传输进行流量控制。
35.在一些实施例中,第一数据采集卡110可以对至少一个第二数据采集卡的数据传输进行流量控制。在一些实施例中,对每一个第二数据采集卡,第一数据采集卡110可以响应于缓存的第二数据采集卡对应的第一数据的数据量达到相应的第一阈值,停止该第二数据采集卡的数据上传;响应于缓存的该第二数据采集卡的第一数据的数据量小于第二阈值,激活该第二数据采集卡的数据上传。关于流量控制的更多详细内容可以参见图4和图5及其相关描述,此处不再赘述。
36.在一些实施例中,第一数据采集卡110和第二数据采集卡120可以分别对应不同通道的采集数据。例如,第一数据采集卡对应通道1的采集数据,第二数据采集卡120-1对应通道2的采集数据,第二数据采集卡120-2对应通道3的采集数据。又如,第一数据采集卡对应通道1-128的采集数据,第二数据采集卡120-1对应通道129-192的采集数据,第二数据采集卡120-2对应通道192-256的采集数据。在一些实施例中,第一数据采集卡110可以按照通道
号,对第一数据采集卡采集的第二数据和至少一个第二数据采集卡采集的第一数据进行合并。
37.在一些实施例中,每个第二数据采集卡可以各自将采集的第一数据上传至第一数据采集卡110。进一步地,第一数据采集卡110可以按照通道号,将其采集的第二数据与缓存的第一数据中,相同数据帧号的数据进行合并,并上传至上位机130。仅作为示例,各第二数据采集卡将采集的数据封装成数据帧并上传至第一数据采集卡110;第一数据采集卡110接收到各第二数据采集卡的数据帧之后,先丢掉各第二数据采集卡的数据帧的帧头信息,将相同数据帧号和相同发射/接收次数序号的第一数据和第二数据按照通道号组合在一起,完成汇总之后添加上整体的帧头信息,从而将每一帧的每一次发射/接收的数据拼接成一个大的数据帧,最后将大的数据帧上传至上位机130。其中,数据帧格式可以包含发射/接收帧号,发射/接收次数的序号以及对应数据的通道号等信息。
38.在一些实施例中,第一数据采集卡110和第二数据采集卡120可以对应不同的数据业务类型。仅作为示例,数据业务类型可以包括大量数据包上/下行、单寄存器读写、异常中断上报等。例如,第一数据采集卡可以对应大量数据包上下行传输,第二数据采集卡120-1和120-2对应单寄存器读写,第二数据采集卡120-n对应异常中断上报。
39.在一些实施例中,根据数据业务类型的不同,第一数据采集卡和至少一个第二数据采集卡可以分别使用不同的数据传输接口。数据传输接口可以包括,例如aurora nfc接口、aurora用户数据接口、aurora user-k数据接口、aurora ufc接口等。仅作为示例,针对大量数据包传输的采集卡(例如,第一数据采集卡)采用aurora用户数据接口;针对数据包的上下行传输的采集卡采用aurora nfc接口;针对寄存器读写的采集卡采用aurora user-k数据接口;针对第二数据采集卡中进行异常中断和事件上报的采集卡采用aurora ufc接口。在一些实施例中,不同数据业务类型可以封装成axi总线接口,并将不同的总线接口与aurora数据接口进行转换,以实现数据传输(例如,第一数据采集卡与第二数据采集卡之间的数据传输)。例如,大量数据包上下行传输采用axi-4总线,寄存器读写采用axi-lite总线。
40.在一些实施例中,第一数据采集卡110和/或第二数据采集卡120可以包括数据采集模块、协议打包模块、datamover模块、缓存模块、aurora模块和收发器模块等中的任意一个或多个的组合。在一些实施例中,第一数据采集卡110还可以包括流量控制模块、数据处理模块和pcie模块。更多详细内容可以参见图2和图3及其相关描述,此处不再赘述。
41.在一些实施例中,上位机130可以采用ring buff的方式动态分配数据内存。
42.应该注意的是,上述数据处理系统100的描述仅出于说明性目的而提供,并不旨在限制本说明书的范围。对于本领域普通技术人员而言,在本说明书内容的指导下,可做出多种变化和修改。可以以各种方式组合本说明书描述的示例性实施例的特征、结构、方法和其他特征,以获取另外的和/或替代的示例性实施例。例如,第二数据采集卡为主采集卡,第一数据采集卡为协同采集卡。然而,这些变化与修改不会背离本说明书的范围。
43.图2是根据本说明书一些实施例所示的示例性第二数据采集卡的结构示意图。
44.如图2中所示,在一些实施例中,每个第二数据采集卡可以包括数据采集模块121、协议打包模块122、datamover模块123、缓存模块124、收发器模块125以及aurora模块126。
45.数据采集模块121可以用于对前端数据进行采集,例如,第一数据。
46.协议打包模块122可以用于将数据采集模块121采集的数字信号转换为预设协议格式。例如,协议打包模块122可以将采集的数字信号打包成axi-stream协议。
47.datamover模块123可以用于对数据进行搬运。例如,datamover模块123可以将打包成axi-stream协议的数据搬运到缓存模块124。又如,datamover模块123可以将缓存模块124中的数据搬运到aurora模块126中。
48.收发器模块125可以用于各个通道的数据接收和/或发送。例如,收发器模块125可以将aurora模块126打包的数据发送至第一数据采集卡110的收发器模块105。又如,收发器模块125可以接收第一数据采集卡110的收发器模块105下发的数据。在一些实施例中,收发器模块125可以包括高速收发器。例如,收发器模块125可以利用fpga的gt资源进行大带宽数据传输。
49.aurora模块126可以用于将数据打包成与各个通道对应的数据。例如,第二数据采集卡120-1中的aurora模块126-1可以将获取的数据打包成与该第二数据采集卡120-1对应通道的数据帧,数据帧中包含第二数据采集卡120-1的发射帧号、发射次数序号以及通道号等信息;第二数据采集卡120-2中的aurora模块126-2可以将获取的数据打包成与该第二数据采集卡120-2对应通道的数据帧,数据帧中包含第二数据采集卡120-2的发射帧号、发射次数序号以及通道号等信息。
50.图3是根据本说明书一些实施例所示的示例性第一数据采集卡的结构示意图。
51.如图3所示,在一些实施例中,第一数据采集卡可以包括数据采集模块101、协议打包模块102、datamover模块103、缓存模块104、收发器模块105、aurora模块106、流量控制模块107、数据处理模块108以及pcie模块109。其中,数据采集模块101、协议打包模块102、datamover模块103、缓存模块104、收发器模块105、aurora模块106分别为与数据采集模块121、协议打包模块122、datamover模块123、缓存模块124、收发器模块125以及aurora模块126类似或相同的结构。
52.数据采集模块101可以用于对前端数据进行采集,例如,第二数据。
53.协议打包模块102可以用于将数据采集模块101采集的数字信号转换为预设协议格式,例如,axi-stream协议。
54.datamover模块103可以用于将第二数据搬运到缓存模块104,和/或将缓存模块104中第二数据搬运到数据处理模块108。
55.收发器模块105可以用于与第二数据采集卡进行数据通信。例如,收发器模块105可以通过与收发器模块125通信,获取第二数据采集卡采集的第一数据。在一些实施例中,第一数据采集卡可以包括多个收发器模块,各收发器模块分别用于与各第二数据采集卡通信。例如图6中所示,收发器模块105-1用于与第二数据采集卡120-1的收发器模块125-1通信,接收第二数据采集卡120-1采集的第一数据,或向第二数据采集卡120-1下行传输数据;收发器模块105-2用于与第二数据采集卡120-2的收发器模块125-2通信,接收第二数据采集卡120-2采集的第一数据,或向第二数据采集卡120-2下行传输数据。
56.aurora模块106可以用于对收发器模块105接收的数据进行打包。在一些实施例中,第一数据采集卡可以包括一个或多个aurora模块。例如图6中所示,aurora模块106-1用于将收发器模块105-1从第二数据采集卡120-1获取的第一数据打包成axi-stream数据流并存入一个fifo中;aurora模块106-2用于将收发器模块105-2从第二数据采集卡120-2获
取的第一数据打包成axi-stream数据流并存入一个fifo中。
57.流量控制模块107可以用于对第二数据采集卡的数据传输进行流量控制。在一些实施例中,第一数据采集卡接收到各第二数据采集卡上传的第一数据后,存入数据缓存器(例如,fifo),流量控制模块107可以基于缓存的第一数据,对第二数据采集卡的数据传输进行流量控制。在一些实施例中,对于每个第二数据采集卡,流量控制模块107可以响应于缓存该第二数据采集卡对应的第一数据的数据量达到相应的第一阈值,利用aurora nfc的xoff帧,停止该第二数据采集卡的数据上传;响应于缓存的该第二数据采集卡对应的第一数据的数据量小于第二阈值,利用aurora nfc的xon数据帧,激活该第二数据采集卡的数据上传。关于流量控制的更多详细内容可以参见图5及其相关描述。
58.在一些实施例中,第一数据采集卡可以包括一个流量控制模块107,用于同时对多个第二数据采集卡的数据传输进行流量控制。在一些实施例中,第一数据采集卡可以包括多个流量控制模块,多个流量控制模块用于对多个第二数据采集卡中的一个或多个进行流量控制。在一些实施例中,第一数据采集卡可以包括分别与多个第二数据采集卡对应的多个流量控制模块,用于分别对每个第二数据采集卡传输的数据进行流量控制。例如图6中所示,流量控制模块107-1可以用于对第二数据采集卡120-1进行流量控制,流量控制模块107-2用于对第二数据采集卡120-2进行流量控制。
59.数据处理模块108可以用于对第二数据采集卡传输的数据以及第一数据采集卡采集的数据进行汇总。在一些实施例中,数据处理模块108可以根据第一条件,对第一数据采集卡采集的第二数据和缓存的第一数据进行合并。更多详细内容可以参见图4及其相关描述,此处不再赘述。
60.pcie模块109可以用于将合并后的数据传输至上位机(例如,上位机130)。例如,数据处理模块108将第二数据和缓存的各第二数据采集卡对应的第一数据打包汇总后,可以通过pcie模块109将最终汇总数据经pcie总线传输到上位机130中。在一些实施例中,pcie模块109可以用于接收上位机130下行传输的数据。例如,pcie模块109可以接收上位机130下发的各第二数据采集卡的第一阈值和/或第二阈值,或各第二数据采集卡或数据业务类型的数据帧大小。
61.应该注意的是,上述关于图2和图3的描述仅出于说明性目的而提供,并不旨在限制本说明书的范围。对于本领域普通技术人员而言,在本说明书内容的指导下,可做出多种变化和修改。可以以各种方式组合本说明书描述的示例性实施例的特征、结构、方法和其他特征,以获取另外的和/或替代的示例性实施例。例如,图3中的第一数据采集卡可以包括多组收发器模块105、aurora模块106和流量控制模块107,即虚线框中的结构组件可以为多组。然而,这些变化与修改不会背离本说明书的范围。
62.图4是根据本说明书一些实施例所示的示例性数据处理方法的流程示意图。
63.在一些实施例中,流程400可以由第一数据采集卡110执行。例如,流程400可以被实现为指令(例如,应用程序),并存储于例如存储设备并且可由第一数据采集卡110访问的存储介质中。第一数据采集卡110可以执行指令,并且在执行指令时,可以将其配置为执行流程400。下面呈现的流程400的操作示意图是说明性的。在一些实施例中,可以利用一个或以上未描述的附加操作和/或未讨论的一个或以上操作来完成该过程。另外,图4中示出的和下面描述的流程400的操作顺序是非限制性的。
64.步骤410,接收第二数据采集卡传输的第一数据,并存入数据缓存器。
65.在一些实施例中,第一数据采集卡110可以通过收发器通道(例如,收发器模块105-1与收发器模块125-1建立的收发器通道1、收发器模块105-2与收发器模块125-2建立的收发器通道2),分别接收每个第二数据采集卡传输的第一数据。在一些实施例中,第一数据采集卡110可以通过aurora模块,将各个通道接收到的第一数据转换为axi-stream数据流,并存入数据缓存器(例如,fifo中)。例如,第一数据采集卡110可以通过收发器模块105-1与收发器模块125-1建立的收发器通道接收第二数据采集卡120-1传输的第一数据,通过收发器模块105-2与收发器模块125-2建立的收发器通道接收第二数据采集卡120-2传输的第一数据,并将第二数据采集卡120-1传输的第一数据和第二数据采集卡120-2传输的第一数据分别转换为axi-stream数据流后放入fifo中缓存。
66.步骤420,基于缓存的第一数据,对第二数据采集卡的数据传输进行流量控制。
67.在一些实施例中,对于每个第二数据采集卡,第一数据采集卡110可以响应于缓存的该第二数据采集卡对应的第一数据的数据量达到相应的第一阈值,停止该第二数据采集卡的数据上传;以及响应于缓存的该第二数据采集卡对应的第一数据的数据量小于相应的第二阈值,激活该第二数据采集卡的数据上传。其中,第一阈值大于第二阈值。
68.仅作为示例,如图6中所示,第一数据采集卡110中的流量控制模块107-1可以实时监测fifo中缓存的第二数据采集卡120-1对应的第一数据的数据量是否达到相应的第一阈值,当达到第一阈值时,利用aurora nfc的xoff帧,将第二数据采集卡120-1的数据上传停止。随着第一数据采集卡110根据第一条件,对采集的第一数据与缓存的第二数据进行合并,并将合并后的数据上传至上位机130,缓存中的第一数据的数据量会逐渐减少。当流量控制模块107-1监测到缓存的第二数据采集卡120-1对应的第一数据的数据量减少至小于相应的第二阈值时,可以利用aurora nfc的xon数据帧,激活第二数据采集卡120-1的数据上传。
69.在一些实施例中,每个第二数据采集卡对应的第一阈值和/或第二阈值的值可以不同。在一些实施例中,可以根据第二数据采集卡上传的第一数据的数据帧大小确定相应的第一阈值和/或第二阈值。例如,第一阈值为数据帧的2倍帧长度,第二阈值为数据帧的1倍帧长度。又如,第一阈值为数据帧的3倍帧长度,第二阈值为数据帧的2倍帧长度。不同数据业务类型对应的数据帧的长度大小不同。
70.在一些实施例中,可以由上位机根据各第二数据采集卡对应的数据业务类型动态分配相应的第一阈值和/或第二阈值。例如,上位机130可以根据各数据业务类型对应的数据帧的大小确定各第二数据采集卡对应的第一阈值和第二阈值,并将确定的第一阈值和第二阈值下发至第一数据采集卡110。在一些实施例中,可以由第一数据采集卡自动确定各第二数据采集卡对应的第一阈值和/或第二阈值。例如,上位机130可以将各种数据业务类型对应的数据帧的大小下发至第一数据采集卡110,第一数据采集卡110根据各第二数据采集卡对应的数据业务类型,确定每个第二数据采集卡的第一阈值和第二阈值。
71.由于每个第二数据采集卡之间的数据业务类型可能不同、实际有效数据带宽不同、各第二数据采集卡到第一数据采集卡因硬件通道走线和ddr缓存所带来的数据通道延时不同,各第二数据采集卡中相同时刻采集数据的数据帧到达第一数据采集卡的数据帧的时间将不同。当各第二数据采集卡之间的延时差异较大时,会导致第一数据采集卡的缓存
(例如,fifo中缓存)溢出。通过为各第二数据采集卡设置相应的第一阈值和/或第二阈值,可以动态调整各第二数据采集卡的数据流量,使得各第二数据采集卡的第一数据同步汇总上传到第一数据采集卡,以保证各业务类型的同步。
72.步骤430,根据第一条件,对第一数据采集卡采集的第二数据和缓存的第一数据进行合并,并将合并后的数据传输至上位机。
73.第一条件可以指数据的合并条件,例如,相同通道、相同数据帧、相同发射/接收次数的序号等。在一些实施例中,第一数据采集卡110可以按照通道的通道号,将相同数据帧号的多组第一数据和第二数据进行合并。例如,各第二数据采集卡上传的第一数据进入第一数据采集卡110的fifo中缓存,数据处理模块108可以每次从fifo中取出一帧数据包的多组第一数据与一帧数据包的第二数据,并根据采集卡对应的通道,按照第二数据与每组第一数据的通道号进行多采集卡数据拼接,将拼接后的数据通过pcie模块109上传至上位机130。
74.图5是根据本说明书一些实施例所示的示例性流量控制的流程示意图。
75.如图5中所示,在一些实施例中,aurora模块105可以将接收到的第一数据存入数据缓存器,然后流量控制模块107对数据缓存器中缓存的第一数据的数据量进行实时监测,当监测到任意第二数据采集卡对应的第一数据的数据量达到相应的第一阈值时,停止相应的第二数据采集卡的数据上传。具体地:
76.步骤510,设置第二数据采集卡的第一阈值和第二阈值。
77.在一些实施例中,第一数据采集卡110可以基于上位机下发的数据设置各第二数据采集卡的第一阈值和第二阈值。例如,可以根据上位机130通过pcie模块109下发的各种数据业务类型对应的数据帧的大小,将每个第二数据采集卡的第一阈值设置为相应数据业务类型的2倍数据帧长度,第二阈值设置为相应数据业务类型的1倍数据帧长度。在一些实施例中,第一数据采集卡110可以直接设置各数据业务类型对应的第一阈值和第二阈值。
78.步骤520,监测缓存的第一数据的数据量。
79.在一些实施例中,第一数据采集卡110可以监测后端数据缓存器中各第二数据采集卡对应的第一数据的数据量大小。例如,流量控制模块107可以基于每组第一数据的通道号,对缓存的同一第二数据采集卡对应的第一数据的数据量进行监测。在一些实施例中,第一数据采集卡110可以监测后端数据缓存器中各数据业务类型对应的第一数据的数据量大小。例如,流量控制模块107可以基于每组第一数据的标识信息,对缓存的同一数据业务类型对应的第一数据的数据量进行监测。
80.步骤530,判断缓存的第一数据的数据量是否达到第一阈值。
81.第一阈值可以反映对数据量的反压门限值。在一些实施例中,第一数据采集卡110可以判断相同数据业务类型对应的第一数据的数据量是否达到相应的第一阈值。在一些实施例中,第一数据采集卡110可以判断同一第二数据采集卡对应的第一数据的数据量是否达到相应的第一阈值。当第一数据的数据量达到第一阈值时,执行步骤540,发送nfc xoff帧;否则,继续进行监测(即执行步骤520)。
82.例如,若第一阈值为2倍数据帧长度,当监测到第二数据采集卡120-1对应的第一数据在后端fifo中存满2帧的数据大小,则通过发送nfc xoff帧,停止第二数据采集卡120-1的数据上传;若监测到缓存的第二数据采集卡120-2对应的第一数据在后端fifo中存满2
帧的数据大小,则通过发送nfc xoff帧,停止第二数据采集卡120-2的数据上传。又如,当监测到寄存器读写类型对应的第一数据在后端fifo中存满2帧的数据大小,则通过发送nfc xoff帧,停止寄存器读写类型对应的一个或多个第二数据采集卡的数据上传。
83.在一些实施例中,当发送完nfc xoff帧后,可以继续监测缓存的其他的第二数据采集卡(被停止的第二数据采集卡之外的第二数据采集卡)或其他的数据业务类型(被停止的数据业务类型之外的数据业务类型)对应的第一数据的数据量。当监测到缓存的其他的第二数据采集卡或数据业务类型对应的第一数据达到相应的第一阈值后,可以通过发送nfc xoff帧,停止相应第二数据采集卡的数据上传,或数据业务类型对应的一个或多个第二数据采集卡的数据上传。
84.在一些实施例中,当发送完nfc xoff帧后,可以继续监测停止的第二数据采集卡或数据业务类型对应的第一数据的数据量。
85.步骤550,判断缓存的第一数据的数据量是否小于第二阈值。
86.第二阈值可以反映数据量的释放门限值。在一些实施例中,当监测到被停止第二数据采集卡或数据业务类型对应的第一数据的数据量小于相应的第二阈值时,执行步骤560,发送nfc xon帧;否则,继续进行监测。例如,若步骤530-步骤540中,第二数据采集卡120-1的数据上传被停止,第二阈值为1数据帧长度,数据处理模块108对缓存的第一数据和第二数据合并上传至上位机130后,缓存中第二数据采集卡120-1对应的第一数据的数据量将减少,当监测到第二数据采集卡120-1对应的第一数据在后端fifo中减少到小于1数据帧长度后,可以通过发送nfc xon帧,激活第二数据采集卡120-1的数据传输。
87.可以理解的是,不同数据业务类型对应的数据帧的大小不同,因而对应的第一阈值(例如,2帧的数据大小的值)和第二阈值(例如,1数据帧长度对应的值)的大小也是不同的。相应地,不同第二数据采集卡因对应的数据业务类型可能不同,其对应的第一阈值/第二阈值的大小也可能不同。
88.在一些实施例中,可以循环执行上述步骤520-560,直至数据采集结束。
89.通过将aurora的反压门限(例如第一阈值)和释放门限(例如第二阈值)设置为数据帧大小的倍数关系,对于不同的数据业务类型其对应的数据帧大小不同,从而可以保证各数据业务类型之间同步进行,避免数据的丢失,提高数据传输效率。
90.应当注意的是,上述有关流程400和500的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程400和/或500进行各种修正和改变。例如,流程400中的步骤420和步骤430可以同时执行,或先执行步骤430再执行步骤420。然而,这些修正和改变仍在本说明书的范围之内。
91.需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获取的有益效果。上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
92.同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特
点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
93.此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
94.同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
95.一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
96.针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
97.最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1