一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

链路切换的方法、FPGA芯片、设备及存储介质与流程

2022-05-06 08:26:42 来源:中国专利 TAG:

链路切换的方法、fpga芯片、设备及存储介质
技术领域
1.本技术实施例涉及但不限于通信技术领域,尤其涉及一种链路切换的方法、fpga芯片、设备及存储介质。


背景技术:

2.在通讯系统网络拓扑中,一个报文需要经过多个设备节点传输至目的节点,传输过程中,每个设备节点均会对报文解析校验后进行转发,在一些应用中,为保证报文的安全传输,往往在网络拓扑中,针对同一目的设备节点设置多个传输路径,以使网络拓扑中位于传输路径上的中间设备节点故障后,该报文能转发至另一传输路径实现正常传输。对于一个设备节点而言,其传输路径对应设置有多个,当需处理的报文较多时,报文处理容易延迟且传输路径切换效率低,导致业务受损。


技术实现要素:

3.以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
4.本技术实施例提供了一种链路切换的方法、fpga芯片、设备及存储介质,能够提升链路切换的实时性以及系统的安全性和稳定性。
5.第一方面,本技术实施例提供了一种链路切换的方法,应用于设备节点,包括:
6.接收来自于所述设备节点的网口传输的第一报文;
7.根据所述第一报文的报文属性,将所述第一报文缓存至对应的调度任务队列中;其中,所述调度任务队列与所述报文属性一一对应设置;
8.检测预设的至少一个第一数据通路的第一通路状态;其中,所述第一数据通路用于转发所述调度任务队列中的第二报文;所述第二报文的传输属性与所述第一数据通路匹配;
9.在所述调度任务队列的调度时间内,根据所述调度任务队列中待转发的第二报文对应的所述第一通路状态,判断是否从对应的所述第一数据通路转发到对应的第二数据通路。
10.第二方面,本技术实施例还提供了一种fpga芯片,包括:
11.解析分配模块,用于接收来自于所述设备节点的网口传输的第一报文,以及根据所述第一报文的报文属性,将所述第一报文缓存至对应的调度任务队列中;其中,所述调度任务队列与所述报文属性一一对应设置;
12.检测模块,用于检测预设的至少一个第一数据通路的第一通路状态;其中,所述第一数据通路用于转发所述调度任务队列中的第二报文;所述第二报文的传输属性与所述第一数据通路匹配;
13.冗余模块,用于在所述调度任务队列的调度时间内,根据所述调度任务队列中待转发的第二报文对应的所述第一通路状态,判断是否从对应的所述第一数据通路转发到对
应的第二数据通路。
14.第三方面,本技术实施例还提供了一种设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任意一项所述的链路切换的方法。
15.第四方面,本技术实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行第一方面任意一项所述的链路切换的方法。
16.根据本技术的上述实施例,至少具有如下有益效果:对于每个调度任务队列而言,由于是基于轮询机制在对应的调度时间内周期调用,因此每个第二报文均能被处理。而在调度任务队列对应的调度时间内,根据待转发的第二报文对应的所述第一通路状态判断是否进行第二数据通路切换,可以及时识别出故障的第一数据通路并进行第二数据通路的切换,因此通过上述方式,使得设备节点上接收到的每个第一报文均能根据实时的第一通路状态进行链路的切换,进而提升链路切换的实时性并通过提升第一报文传输的安全性提升系统的安全性和稳定性。
17.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
18.附图用来提供对本技术技术方案的进一步理解,并且构成说明书的一部分,与本技术的实施例一起用于解释本技术的技术方案,并不构成对本技术技术方案的限制。
19.图1是本技术实施例的链路切换的方法的流程示意图;
20.图2是本技术实施例的链路切换的方法的心跳检测的流程示意图;
21.图3是本技术实施例的fpga芯片的结构示意图;
22.图4是本技术实施例的设备的结构示意图。
具体实施方式
23.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
24.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
25.在通讯系统网络拓扑中,一个报文需要经过多个设备节点传输至目的节点,传输过程中,每个设备节点均会对报文解析校验后进行转发,在一些应用中,为保证报文的安全传输,往往在网络拓扑中,针对同一目的设备节点设置多个传输路径,以使网络拓扑中位于传输路径上的中间设备节点故障后,该报文能转发至另一传输路径实现正常传输。对于一个设备节点而言,其传输路径对应设置有多个,当需处理的报文较多时,报文处理容易延迟且传输路径切换效率低,导致业务受损。基于此,本技术提出一种链路切换的方法、fpga芯
片、设备及存储介质,能够提升链路切换的实时性。
26.参照图1所示,应用于设备节点的链路切换的方法,包括:
27.步骤s100、接收来自于设备节点的网口传输的第一报文。
28.需说明的是,设备节点可以是网络设备,也可以是机器人的控制器,第一报文可以通过网线连接也可以通过无线连接传输至网口。
29.步骤s200、根据第一报文的报文属性,将第一报文缓存至对应的调度任务队列中;其中,调度任务队列与报文属性一一对应设置。
30.需说明的是,报文属性可以是报文类型,也可以是优先级,调度任务队列设置有多个,调度任务队列可以是根据报文类型进行缓存,也可以与优先级进行配对。示例性的,在一些实施例中,调度任务队列设置有n个,分别对应1~n的优先级,当第一报文的报文属性中包含的优先级为m,且m≤n,则将第一报文存储至优先级为m的调度任务队列中。
31.步骤s300、检测预设的至少一个第一数据通路的第一通路状态;其中,第一数据通路用于转发调度任务队列中的第二报文;第二报文的传输属性与第一数据通路匹配。
32.需说明的是,第一数据通路表示与当前设备节点连通的传输链路,其可以是相邻一跳的设备节点之间的链路,也可以相邻多条的设备节点之间的链路。传输属性表示的第二报文传输的路径是和第一数据通路匹配的。
33.需说明的是,第一通路状态的检测和第一报文的接收是相互独立的。
34.步骤s400、在调度任务队列的调度时间内,根据调度任务队列中待转发的第二报文对应的第一通路状态,判断是否从对应的第一数据通路转发到对应的第二数据通路。
35.需说明的是,每个调度任务队列对应有一个调度时间,实现对每个调度任务队列的轮询执行。多个第二报文由于其目的地地址的差异,因此每个第二报文均对应有一个第一数据通路进行报文传输。第二数据通路是第一数据通路的备份链路,在网络拓扑创建初期即配置,通过在设备节点中设置第一数据通路、第二数据通路互为备份,从而在第一数据通路故障后,通过执行步骤s400将第二报文及时切换到第二数据通路,减少第二报文发送到已故障的链路中的概率。同时,在每个第二报文待转发处理时进行链路的切换,可以减少对链路故障判断的处理,进一步提升切换效率。
36.需说明的是,第二报文是用于区分第一报文,当第一报文缓存至对应的调度任务队列中,第一报文也是第二报文。
37.因此,对于每个调度任务队列而言,由于是基于轮询机制在对应的调度时间内周期调用,因此每个第二报文均能被处理。而在调度任务队列对应的调度时间内,根据待转发的第二报文对应的所述第一通路状态判断是否进行第二数据通路切换,可以及时识别出故障的第一数据通路并进行第二数据通路的切换,因此通过上述方式,使得设备节点上接收到的每个第一报文均能根据实时的第一通路状态进行链路的切换,进而提升链路切换的实时性并通过提升第一报文传输的安全性提升系统的安全性和稳定性。
38.需说明的是,在设备节点中,同时支持多种类型的第一报文,每一第一报文可以设置优先级。示例性的,以交换机为例,其可以传输实时(isoch)报文、高精度时间同步协议(precision time protocol,ptp)报文、异步(async)报文、传输控制协议/网际协议(transmission control protocol/internet protocol,tcp/ip)报文,其中,async报文由事件触发。将isoch报文、ptp报文、async报文、tcp/ip报文设置处理优先级依次为isoch报
文、ptp报文、async报文、tcp/ip报文。当接收到isoch报文,会根据isoch报文的优先级,将其缓存至对应优先级的调度任务队列。在另一些实施例中,也可以根据报文类型进行缓存,如报文类型为isoch报文,则缓存到第一任务队列,报文类型为其他则缓存至第二任务队列,其中,第一任务队列、第二任务队列均是调度任务队列。则当接收到async报文、tcp/ip报文后,会将async报文、tcp/ip报文均存储到第二任务队列中。
39.需说明的是,对于步骤s100~步骤s400中每一步骤均可以在设备节点的fpga芯片中实现,也可以部分在fpga中实现,部分在fpga芯片连接的上层应用模块实现(如网口)。
40.可理解的是,步骤s200、根据第一报文的报文属性,将第一报文缓存至对应的调度任务队列中,包括:根据报文属性,将高于预设的优先级的第一报文缓存至设备节点的fpga芯片中对应的调度任务队列。
41.需说明的是,fpga芯片处理的效率更高,将高优先级的第一报文缓存至fpga对应的调度任务队列中,使得后续调度时可以由fpga芯片进行调度,进而提升第一报文的处理效率。
42.示例性的,假设网络报文有isoch报文、ptp报文、async报文、tcp/ip报文,其中,isoch报文、async报文、tcp/ip报文的优先级均高于预设的优先级,ptp报文的优先级低于预设的优先级,则在网口接收到ptp报文后,会直接在网口完成调度,而isoch报文、async报文、tcp/ip报文在会缓存在fpga芯片中的对应的调度任务队列中。
43.需说明的是,预设的优先级可以由用户动态设置,也可以是配置文件中动态加载,也可以是程序中预设的。
44.可理解的是,步骤s400、在调度任务队列的调度时间内,根据调度任务队列中待转发的第二报文对应的第一通路状态,判断是否从对应的第一数据通路转发到对应的第二数据通路,包括:在调度任务队列的调度时间内,fpga芯片根据调度任务队列中待转发的第二报文对应的第一通路状态,判断是否从对应的第一数据通路转发到对应的第二数据通路。
45.需说明的是,通过fpga芯片实现第一数据通路和第二数据通路直接的链路切换,切换效率更高,减少网络报文传输过程中出现传输中断的概率。
46.可理解的是,骤s200、根据第一报文的报文属性,将第一报文缓存至对应的调度任务队列中,还包括:根据报文属性,将低于预设的优先级的第一报文缓存至设备节点的上层应用模块设置的对应的调度任务队列。
47.需说明的是,在上层应用模块设置与优先级对应的调度任务队列,可以使得上层应用模块对依次收到的第一报文进行轮询处理。上层应用模块在一些实施例中,为设备节点的网口。
48.可理解的是,参照图2所示,步骤s300、检测预设的至少一个第一数据通路的第一通路状态,包括:
49.步骤s310、向每一第一数据通路发送第一心跳检测报文。
50.需说明的是,第一数据通路设置有多个时,会向每一个第一数据通路发送第一心跳检测报文。当第一数据通路为相邻一跳的设备节点之间的链路,则第一心跳检测报文会发送到相邻一跳的设备节点。
51.步骤s320、接收第一数据通路根据第一心跳检测报文响应的第一响应数据。
52.需说明的是,以第一数据通路为相邻一跳的设备节点之间的链路为例,相邻一跳
的设备节点在接收到第一心跳检测报文后,如果无故障会发送正常的第一响应数据否则会根据如链路质量等发送故障信息。需说明的是,当第一数据通路故障时,导致相邻一跳的设备节点无法接收到第一心跳检测报文,则第一数据通路也会认为是故障。
53.步骤s330、根据第一响应数据确定对应的第一通路状态。
54.需说明的是,第一心跳检测报文可以实时发送,也可以是周期发送,通常周期设置为ms级别,如1ms一次,当检测到了后会将每一第一通路状态进行保存,以便于在对应的调度任务队列被调度时使用。
55.可理解的是,方法还包括:获取与设备节点连接的交互组件的第二通路状态;第二通路状态为根据交互组件响应第二心跳检测报文确定的第二通路状态;在调度任务队列的调度时间内,根据第二通路状态,判断是否将调度任务队列中的第二报文从对应的第一数据通路转发到对应的第二数据通路。
56.需说明的是,在一些实施例中,第一报文的解析处理以及控制依赖于设备节点的上层交互,因此,在一些实施例中,会将上层交互组件的第二通路状态作为切换的条件之一。示例性的,以机器人的上位机作为较为交互组件为例,上位机连接管理多个设备节点,当第二报文经过设备节点a转发至目的设备节点b,且需要经过该上位机管理的设备节点c时(即第一数据通路是需要经过设备节点c的),通过提前检测上位机的第二通路状态,进一步确保第二报文传输的安全性。
57.可理解的是,步骤s200、根据第一报文的报文属性,将第一报文缓存至对应的调度任务队列中,包括:根据第一报文的报文属性,确定调度任务队列;根据调度任务队列对应的网络带宽门限值,将第一报文缓存至调度任务队列中或将第一报文丢弃。
58.需说明的是,网络带宽门限值和调度任务队列是一一对应的,通过该门限值的设置可以实现对不同类型第一报文发送的预警,毕竟传输上第一报文的传输数量过多,设备节点无法及时处理,导致第一报文丢失过多。
59.可理解的是,方法还包括:根据预设的优先级比例确定调度任务队列对应的网络带宽门限值,其中,优先级比例表征调度任务队列与总传输带宽之间的关系。
60.示例性的,假设总传输带宽为1g,对于isoch报文、ptp报文、async报文、tcp/ip报文,根据isoch报文、ptp报文、async报文、tcp/ip报文的应用场景或者历史的处理数量设定优先级比例分别是20%10%30%40%,则isoch报文对应的任务队列的缓存为1g*20%,以此类推得到每一报文类型的网络报文的对应的任务队列的缓存。此时,轮询周期内,分别轮询每一调度任务队列。
61.可理解的是,当调度任务队列设置有多个,方法还包括:当多个调度任务队列占用的带宽大于预设的门限值,根据预设的选择算法停止至少一个调度任务队列的调度。
62.需说明的是,预设的门限值可以通过用户设置或者根据历史数据动态统计进行设置,也可以通过配置文件进行加载。
63.需说明的是,预设的门限值是用于确定高优先级的调度任务队列是否存在第二报文积压的情况,通过停止部分低优先级的调度任务队列,进而将停止的调度任务队列分配的带宽资源给高优先级的处理,进而能确保高优先级的第二报文能被及时处理。
64.可理解的是,在步骤s200前,方法还包括:对第一报文进行纠错校验。
65.需说明的是,纠错校验包括crc校验。
66.需说明的是,在一些实施例中,纠错校验设置在fpga芯片中,针对不同的第一报文的报文属性,设置不同的解析处理模块,进而可以实现多线程的解析处理。
67.可理解的是,参照图1所示的实施例,方法还包括:接收来自于用户的优先级设置请求,其中,优先级设置请求用于为调度任务队列分配优先级。
68.参照图3的实施例,本技术还提出一种fpga芯片,包括:
69.解析分配模块100,用于接收来自于设备节点的网口传输的第一报文,以及根据第一报文的报文属性,将第一报文缓存至对应的调度任务队列中;其中,调度任务队列与报文属性一一对应设置;
70.检测模块200,用于检测预设的多个第一数据通路的第一通路状态;其中,第一数据通路用于转发调度任务队列中的第二报文;第二报文的传输属性与第一数据通路匹配;
71.冗余模块300,用于在调度任务队列的调度时间内,根据调度任务队列中待转发的第二报文对应的第一通路状态,判断是否从对应的第一数据通路转发到对应的第二数据通路。
72.需说明的是,当网络报文从fpga的芯片接入后,在一些实施例中,会先进行纠错校验,然后校验合格后进入缓存并逐一发送给解析模块进行处理。
73.需说明的是,在一些实施例中,对于解析分配模块100,其可以根据报文类型划分为不同的报文解析模块,以将不同报文类型的网络报文进行异步解析处理,提升处理效率。示例性的,解析分配模块100包括isoch报文解析模块、ptp报文解析模块、async报文解析模块、tcp/ip报文解析模块,isoch报文解析模块解析校验isoch报文;ptp报文解析模块解析校验ptp报文,async报文解析模块解析校验async报文,tcp/ip报文解析模块解析校验tcp/ip报文。
74.需说明的是,对于检测模块200,在一些实施例中,检测模块200用于获取每一从网口进入的第一报文的第一数据通路的通路状态以及设备节点通信连接的交互组件的设备状态。
75.需说明的是,解析分配模块100与检测模块200电连接,冗余模块300与检测模块200、解析分配模块100、冗余模块300电连接。
76.本领域技术人员可以理解的是,图3中示出的拓扑结构并不构成对本技术实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
77.可理解为,参照图4所示的实施例,本技术还提出一种设备,包括:存储器600、处理器500及存储在存储器600上并可在处理器500上运行的计算机程序,处理器500执行计算机程序时上述链路切换的方法。
78.存储器600作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器600可以包括高速随机存取存储器600,还可以包括非暂态存储器600,例如至少一个磁盘存储器600件、闪存器件、或其他非暂态固态存储器600件。在一些实施方式中,存储器600可选包括相对于处理器500远程设置的存储器600,这些远程存储器600可以通过网络连接至该处理器500。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
79.需要说明的是,本实施例中的设备节点,可以应用为如图1所示实施例的网络架构的设备节点,本实施例中的设备节点和如图1所示链路切换的方法具有相同的发明构思,因
此这些实施例具有相同的实现原理以及技术效果,此处不再详述。
80.实现上述实施例的信息处理方法所需的非暂态软件程序以及指令存储在存储器600中,当被处理器500执行时,执行上述实施例中的信息处理方法,例如,执行以上描述的图1对应的方法步骤或其子步骤。
81.可理解为,本技术还提供一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述链路切换的方法。
82.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
83.以上是对本技术的较佳实施进行了具体说明,但本技术并不局限于上述实施方式,熟悉本领域的技术人员在不违背本技术精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献