CN114640728B - 协议帧定时发帧控制方法、装置、设备及存储介质 - Google Patents
协议帧定时发帧控制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114640728B CN114640728B CN202210179261.9A CN202210179261A CN114640728B CN 114640728 B CN114640728 B CN 114640728B CN 202210179261 A CN202210179261 A CN 202210179261A CN 114640728 B CN114640728 B CN 114640728B
- Authority
- CN
- China
- Prior art keywords
- transmission
- sending
- period
- total number
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Time-Division Multiplex Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种协议帧定时发帧控制方法、装置、设备及存储介质,所述方法通过获取协议帧的发送条目总数和发送条目最大总数,根据发送条目总数和发送条目最大总数调整协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序;根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件;根据时隙选通条件以及发送开关配置生成定时控制指令,根据定时控制指令发送协议帧;能够减少瞬时流速,接近平均流速,实现简单可靠,时序容易收敛,延时小,降低了传送时延抖动,计算流水少,无需准备较大队列缓存处理容纳突发流量,避免了突发流量造成的线路上的缓存溢出,保证了收端与发端的连通性。
Description
技术领域
本发明涉及以太网技术领域,尤其涉及一种协议帧定时发帧控制方法、装置、设备及存储介质。
背景技术
中央处理器(Central Processing Unit,CPU)掌握了设备所有关键信息且长于复杂计算,而现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)在性能和时间精度上占据优势,故两者常联合处理复杂又高效的事务,比如处理大容量的协议周期帧。
操作维护管理(Operation Administration and Maintenance,OAM)和双向转发检测(Bidirectional Forwarding Detection,BFD)中需要周期性发出指定数量的协议帧,与业务共通道,即一条业务通道对应一条用于维护的协议帧,且支持多个周期以应用于不同的场景。
通常大周期是最小周期的整数倍,且周期值有的是静态主动配置,有的是动态被动触发的,每一条帧的周期值独立不相关,协议帧的收端也会周期性的检测是否收到帧,以此判断线路是否异常,故对时间精度要求较高,为此协议帧优先级通常也较高,若发生拥塞,会丢弃业务包。
现有实现的技术是CPU根据应用场景和业务数量,将协议帧的各个条目的发送开关和部分帧的周期值写入FPGA的配置寄存器;FPGA按照最大容量最小周期规划定时结构,同时支持向下兼容,较大周期以其中一个最小周期作为时隙选通条件,再根据CPU的配置进行收发帧处理:
但是目前的技术方案的瞬时流量较大,系统上来看有突发流量,具体包括两方面:
1.即使只配置了部分条目,瞬时流量也跟配置了所有条目的一样。
比如最大规格1000条,最小周期值3.3ms,假如1000条全部使能最小周期,1秒内发出了1000*300=300000帧,即帧速30000fps;而配置使能了前200条,会在整个周期的1/5的时间,即0.2秒内发送出200条,在剩下的4/5的时间内空闲,在那1/5的时间里的帧速依然是200*300/(0.2)=300000fps。
2.即使使用的是较大的周期,瞬时流量也跟最小周期值/最快帧速的流量值一样。
不同场景应用的周期值不同,假如配置了100条,保护场景时CV周期值是3.3ms,1秒300帧,此时一个3.3ms的周期内发出了100个帧;测量场景时周期值是100ms,会在100ms中的某一个3.3ms中、1/30的时间内,发出所有帧,剩下的29/30时间空闲,在那1/30时间、1个3.3ms内依然发出了100个帧。
这种突发流量影响了其他帧比如业务帧的传送,导致业务丢帧、时延抖动较大,并且因为部分协议帧优先级高于业务,协议帧的突发流量导致线路上缓存溢出,QOS优先协议帧而把业务帧丢弃,而传过去的业务帧在协议帧突发的时间得等待,其余时间畅通,传送时延抖动较大。
而且协议帧有的跟业务是共通道,用协议帧来反应业务包的通道性能,当前情况下,业务包和协议包的传输性能差异较大,削减了测量结果的准确度;在协议帧的突发时间内到来的业务帧,得在缓存中排队等待,要为它们准备非常大的缓存,否则丢包;在较低速率需求场景中,依然要准备与最高速率场景中一样大的队列缓存处理容纳突发流量;有的收端无法处理如此高突发流量的协议帧,无法互通。
发明内容
本发明的主要目的在于提供一种协议帧定时发帧控制方法、装置、设备及存储介质,旨在解决现有技术中瞬时流量较大,突发流量会导致线路上缓存溢出,传送时延抖动较大,通道性能的测量结果准确度低,需要准备较大队列缓存处理容纳突发流量,部分收端无法处理高突发流量的协议帧导致无法互通的技术问题。
第一方面,本发明提供一种协议帧定时发帧控制方法,所述协议帧定时发帧控制方法包括以下步骤:
获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序,所述发送条目最大总数为常量,所述发送条目总数为变量;
根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件;
根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧。
可选地,所述获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序,包括:
获取协议帧的发送条目最大总数,并获取所述协议帧的发送条目间隔值,根据所述发送条目间隔值和所述发送条目最大总数建立对应各发送条目的发送条目号的散列函数;
根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,将所述编号间隔值写入FPGA的寄存器内;
通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,代入所述散列函数获得所述最小发帧周期的条目编号,根据所述条目编号确定目标发送条目顺序。
可选地,所述根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,将所述编号间隔值写入FPGA的寄存器内,包括:
根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,从各编号间隔值中确定在当前使用场景下的间隔值最优解,将所述间隔值最优解作为编号间隔值,并将所述编号间隔值写入FPGA的寄存器内。
可选地,所述获取协议帧的发送条目最大总数,并获取所述协议帧的发送条目间隔值,根据所述发送条目间隔值和所述发送条目最大总数建立对应各发送条目的发送条目号的散列函数,包括:
获取所述协议帧的发送条目最大总数;
根据所述发送条目间隔值和所述发送条目最大总数通过下述公式建立对应所述发送条目的发送条目号的散列函数:
H=K*i+j
其中,H为所述散列函数,K为所述发送条目间隔值,i为轮询参数,j为循环次数计数,SUM为所述发送条目最大总数,K、i、j、SUM均为自然数,i是内循环,取值范围为[0,SUM/K-1],j是外循环,取值范围为[0,K-1]。
可选地,所述通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,代入所述散列函数获得所述最小发帧周期的条目编号,根据所述条目编号确定目标发送条目顺序,包括:
通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,获得编号间隔参数;
根据所述编号间隔参数在所述最小发帧周期内的每个时隙的开始计算获得待发送的条目编号,根据所述条目编号确定目标发送条目顺序。
可选地,所述根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件,包括:
根据发送条目最大总数和最小周期时长产生每个发送条目占用的时隙;
获取所述预设发帧周期于所述最小发帧周期的倍数作为当前倍数,将所述当前倍数与所述发送条目最大总数进行比较;
在所述当前倍数不大于所述发送条目最大总数时,将每个所述最小发帧周期的前所述发送条目最大总数个时隙的时间段作为所述预设发帧周期的所有时隙选通;
当所述当前倍数大于所述发送条目最大总数时,获取所述当前倍数与所述发送条目最大总数的乘积对应的目标数,将所述预设发帧周期内的前目标数个时隙的时间段作为所述预设发帧周期的所有时隙选通;
在所述当前倍数不大于所述发送条目最大总数时,在最小周期范围内,以倍数个时隙为一个循环单位,为时隙进行循环编号,获得时隙循环编号,并以倍数个最小发帧周期为一个循环单位,为最小周期进行循环编号,获得最小周期循环编号;
在所述当前倍数大于所述发送条目最大总数时,在所述预设发帧周期的所有时隙选通范围内,以倍数个时隙为一个循环单位,为时隙以循环次数进行编号,获得循环次数编号;
当所述当前倍数小于等于所述发送条目最大总数,所述最小周期循环编号等于所述时隙循环编号时,判定当前时隙选通有效,允许将所述当前时隙作为发帧时隙;
当所述当前倍数大于所述发送条目最大总数,所述最小发帧周期内时隙的自然顺序编号与所述循环次数编号相等,所述预设发帧周期的所有时隙选通有效,并且当前循环尚未发帧时,判定当前时隙选通有效,允许将所述当前时隙作为发帧时隙,并将当前循环已发帧标识置位有效。
可选地,所述根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧,包括:
在每个最小发帧周期内依次轮询每个时隙的第一条目编号,并查询所述第一条目编号对应的第一发送条目的发送开关配置和周期值;
在所述周期值为预设最小周期值时,生成定时控制指令,根据所述定时控制指令发送所述协议帧;
在所述周期值为预设发帧周期的周期值时,检查该预设发帧周期的当前时隙是否被选通;
在所述发送开关配置为打开状态,且所述当前时隙被选通时,生成定时控制指令,根据所述定时控制指令发送所述协议帧。
第二方面,为实现上述目的,本发明还提出一种协议帧定时发帧控制装置,所述协议帧定时发帧控制装置包括:
条目顺序确定模块,用于获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序,所述发送条目最大总数为常量,所述发送条目总数为变量;
选通条件设定模块,用于根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件;
定时发送模块,用于根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧。
第三方面,为实现上述目的,本发明还提出一种协议帧定时发帧控制设备,所述协议帧定时发帧控制设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的协议帧定时发帧控制程序,所述协议帧定时发帧控制程序配置为实现如上文所述的协议帧定时发帧控制方法的步骤。
第四方面,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有协议帧定时发帧控制程序,所述协议帧定时发帧控制程序被处理器执行时实现如上文所述的协议帧定时发帧控制方法的步骤。
本发明提出的协议帧定时发帧控制方法,通过获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序;根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件;根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧;能够减少瞬时流速,接近平均流速,实现简单可靠,时序容易收敛,延时小,降低了传送时延抖动,计算流水少,无需准备较大队列缓存处理容纳突发流量,避免了突发流量造成的线路上的缓存溢出,保证了收端与发端的连通性。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明协议帧定时发帧控制方法第一实施例的流程示意图;
图3为本发明协议帧定时发帧控制方法第二实施例的流程示意图;
图4为本发明协议帧定时发帧控制方法第三实施例的流程示意图;
图5为本发明协议帧定时发帧控制方法第四实施例的流程示意图;
图6为本发明协议帧定时发帧控制方法第五实施例的流程示意图;
图7为本发明协议帧定时发帧控制方法第六实施例的流程示意图;
图8为本发明协议帧定时发帧控制装置第一实施例的功能模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的解决方案主要是:通过获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序;根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件;根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧;能够减少瞬时流速,接近平均流速,实现简单可靠,时序容易收敛,延时小,降低了传送时延抖动,计算流水少,无需准备较大队列缓存处理容纳突发流量,避免了突发流量造成的线路上的缓存溢出,保证了收端与发端的连通性,解决了现有技术中瞬时流量较大,突发流量可能导致线路上缓存溢出,传送时延抖动较大,通道性能的测量结果准确度低,需要准备较大队列缓存处理容纳突发流量,部分收端无法处理高突发流量的协议帧导致无法互通的技术问题。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的设备结构示意图。
如图1所示,该设备可以包括:处理器1001,例如CPU,通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(Non-Volatile Memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对该设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及协议帧定时发帧控制程序。
本发明设备通过处理器1001调用存储器1005中存储的协议帧定时发帧控制程序,并执行如下文所述协议帧定时发帧控制方法实施例中的操作。
本实施例通过上述方案,通过获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序;根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件;根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧;能够减少瞬时流速,接近平均流速,实现简单可靠,时序容易收敛,延时小,降低了传送时延抖动,计算流水少,无需准备较大队列缓存处理容纳突发流量,避免了突发流量造成的线路上的缓存溢出,保证了收端与发端的连通性。
基于上述硬件结构,提出本发明协议帧定时发帧控制方法实施例。
参照图2,图2为本发明协议帧定时发帧控制方法第一实施例的流程示意图。
在第一实施例中,所述协议帧定时发帧控制方法包括以下步骤:
步骤S10、获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序,所述发送条目最大总数为常量,所述发送条目总数为变量。
需要说明的是,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,从而获得调整后的发送条目顺序,发送条目最大总数是一个固定值,是用于条目计算函数的固定值参数,发送条目总数是变值,根据它可以计算出条目间隔值,也可以是条目计算函数的变量。
步骤S20、根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件。
可以理解的是,所述预设发帧周期为预先设置的发协议帧的周期,所述时隙选通条件为发送条目的时隙是否选通有效进行发帧的条件,通过所述发送条目最大总数以及预设周期与最小周期的时长倍数关系可以为预设发帧周期增加时隙选通条件。
步骤S30、根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧。
应当理解的是,通过发送开关配置所述时隙选通条件能够生成对应协议帧的定时发送的控制指令,进而获得发送使能的定时控制,根据所述定时控制指令进行所述协议帧的发送控制。
本实施例通过上述方案,通过获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序;根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件;根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧;能够减少瞬时流速,接近平均流速,实现简单可靠,时序容易收敛,延时小,降低了传送时延抖动,计算流水少,无需准备较大队列缓存处理容纳突发流量,避免了突发流量造成的线路上的缓存溢出,保证了收端与发端的连通性。
进一步地,图3为本发明协议帧定时发帧控制方法第二实施例的流程示意图,如图3所示,基于第一实施例提出本发明协议帧定时发帧控制方法第二实施例,在本实施例中,所述步骤S10具体包括以下步骤:
步骤S11、获取协议帧的发送条目最大总数,并获取所述协议帧的发送条目间隔值,根据所述发送条目间隔值和所述发送条目最大总数建立对应各发送条目的发送条目号的散列函数。
可以理解的是,发送条目数跟业务相关,基础定时结构还是按照最大条目和最小周期平均分配时隙,只有最小周期有此时隙分配,其他预设周期值并没有它对应的时隙分配,只有它对应的最小周期时隙的选通条件,获得发送条目最大总数,进而可以根据所述编号间隔值和所述发送条目最大总数建立发送条目号的散列函数。
应当理解的是,可以根据发送条目总数与发送条目最大总数得到用于调整发送条目顺序的发送条目的间隔值,比如间隔值取自发送条目数与不发送条目数(不发送条目数=发送条目最大数-发送条目数)两者的较小值,或者发送条目数与发送条目最大总数的最大公约数。
步骤S12、根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,将所述编号间隔值写入FPGA的寄存器内。
需要说明的是,获取协议帧的发送条目后,可以通过CPU根据业务数目和应用场景,静态配置的发送开关以及周期值计算出所述发送条目中相邻两条发送条目的编号间隔值,即通过CPU计算出动态配置的发送条目的间隔值的合适值作为编号间隔值,进而将所述编号间隔值写入FPGA的寄存器内。
在具体实现中,CPU可以根据业务数目和应用场景,静态配置发送条目的发送开关配置和周期值;CPU可以自适应调整编号间隔值,即K值,一般可以根据使能/不使能条目总数的较小值,或者使能条目与支持条目公约数的近似值,或者配置的历史记录中查询相近配置的最优K值,作为K值的初值写入FPGA;还可以在系统稳定运行的状态中,经过一个固定时延后查询系统帧缓存的水位,通道的丢帧率和时延抖动的统计值,并记录到性能统计的历史记录中;也可以增加或减少K值,经过同样固定时延后查询并记录,如此重复,直到所有备选值都测试完;也可以查询性能统计的历史记录,找出最优值,将对应的K值填入FPGA,并将使能条目总数和支持条目总数,周期值,帧数量等相关配置信息和对应最优K值记入配置的历史记录,清除性能统计的历史记录;当然还可以在配置变化后,或者发现性能指标超出可接受范围内,自动触发自适应调整过程,本实施例对此不加以限制。
进一步的,所述步骤S12具体包括以下步骤:
获取所述协议帧的发送条目最大总数;
根据所述发送条目间隔值和所述发送条目最大总数通过下述公式建立对应所述发送条目的发送条目号的散列函数:
H=K*i+j
其中,H为所述散列函数,K为所述发送条目间隔值,i为轮询参数,j为循环次数计数,SUM为所述发送条目最大总数,K、i、j、SUM均为自然数,i是内循环,取值范围为[0,SUM/K-1],j是外循环,取值范围为[0,K-1]。
需要说明的是,以当前发送条目号H=1为例,发送条目号的散列函数计算式为当前发送条目号1=K*i+j,其中i=0~SUM/K-1,j=0~K-1。
在具体实现中,第0个时隙发送第0条,i和j均为0,下一个时隙发送条目是前一条的往后偏移K条,即i递增1,j保持;直到(SUM/K)个时隙过后,此时下一时隙再往后偏移K就会超出SUM-1了,则发送第1条,即i归零,j递增1,接着继续下一个时隙不断往后偏移K条,即i递增1,j保持;直到(SUM/K)个时隙过后,此时下一时隙再往后偏移K就会超出SUM-1了,则发送第2条,即i归零,j递增1,接着继续下一个时隙不断往后偏移K条,即i递增1,j保持;……以此类推;结果是:依次轮询发送第K*0,K*1,....K*(SUM/K),K*0+1,(K*1)+1,....K*(SUM/K)+1...条。
步骤S13、通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,代入所述散列函数获得所述最小发帧周期的条目编号,根据所述条目编号确定目标发送条目顺序。
应当理解的是,通过所述FPGA可以在每个最小发帧周期开始时从所述寄存器中采集一次编号间隔值,可以获得所述最小发帧周期对应的发送条目的条目编号,进而可以根据所述条目编号确定目标发送条目顺序。
在具体实现中,最小发帧周期配置部分条目时,一般是按照自然顺序连续配置,这些条目发送时并非集中相连,而是分散到最小周期内的不同位置,从而可以使得瞬时流速减少,接近平均流速;例如,1000(0~999)条配置了前200条(0~199),K取值200;整个周期内每隔5个时隙发一条。瞬时流速等于平均流速,减少到原来的20%;1000条配置了前400(0~399)条,K取值400;最大瞬时流速发生在后400*2个时隙中,每2个时隙发一条,减少到原来的50%,接近平均流速的40%;1000条配置了前600(0~599)条,K取值400;最大瞬时流速发生在前200*3个时隙中,每3个时隙发2条,减少到原来的66%,接近平均流速的60%;1000条配置前400条或600条,K若取值200,则5个时隙为单位来看,最大瞬时流速为全配满瞬时流速的40%和60%,等于平均流速,流速更平稳;1000条配置前600条,最大瞬时流速发生时,K值取400时3个时隙发出连续的2条,K值取200时5个时隙发出连续的3条,后者空闲时隙之间的间隔更长,缓存消耗更多,K取值的优解取决于包括后级缓存的整个系统设计。
本实施例通过上述方案,通过根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,将所述编号间隔值写入FPGA的寄存器内;获取协议帧的发送条目最大总数,并获取所述协议帧的发送条目间隔值,根据所述发送条目间隔值和所述发送条目最大总数建立对应各发送条目的发送条目号的散列函数;通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,代入所述散列函数获得所述最小发帧周期的条目编号,根据所述条目编号确定目标发送条目顺序;能够降低缓存资源的消耗,无需准备较大队列缓存处理容纳突发流量,避免了突发流量造成的线路上的缓存溢出。
进一步地,图4为本发明协议帧定时发帧控制方法第三实施例的流程示意图,如图4所示,基于第二实施例提出本发明协议帧定时发帧控制方法第三实施例,在本实施例中,所述步骤S12具体包括以下步骤:
步骤S121、根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,从各编号间隔值中确定在当前使用场景下的间隔值最优解,将所述间隔值最优解作为编号间隔值,并将所述编号间隔值写入FPGA的寄存器内。
需要说明的是,CPU计算出所述发送条目中相邻两条发送条目在当前使用场景下的间隔值最优解,将所述间隔值最优解作为编号间隔值,所述编号间隔值可能的取值是使能条目总数和未使能条目总数两者中的较小值,也可能是使能条目总数、支持条目总数两者的公约数的值,或者它们的近似值;本实施例对此不加以限制。
可以理解的是,所述编号间隔值是主要跟使能条目总数和支持条目总数相关的系数,还可以采用迭代反馈的方法得出特定场景中K值的最优解:其他条件不变,先填入一个初值,纪录一段时间内系统缓存水位线、通道的丢帧率和时延抖动的统计平均值;逐步递增递减或者采用二分法逼近等方式,改变编号间隔值,纪录对应的系统缓存水位和通道性能指标;当轮询完所有可能的编号间隔值,比较记录的系统缓存的性能数值找到其中最优的,对应的编号间隔值即是当前环境的最优解,不同的场景可能会有不同的最优解,相同的场景,同样的设备会有确定的编号间隔值,故每次查找出最优解后,将当前相关的发帧配置和对应编号间隔值存储,以备有相近配置和环境时提供参考值。
在具体实现中,可以通过同样迭代反馈的方法得到特定场景中的K值的可接受解,与上述过程相似,只是迭代的终止条件是当缓存水位和通道性能指标达到可接受范围内,也不需要记录当前配置下各个K值对应的统计值历史;这样可以更快收敛,完成动态调整过程,少消耗一个用于性能统计的历史记录的缓存资源。
本实施例通过上述方案,通过根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,从各编号间隔值中确定在当前使用场景下的间隔值最优解,将所述间隔值最优解作为编号间隔值,并将所述编号间隔值写入FPGA的寄存器内,能够获得准确合适的编号间隔值,记录下使用场景的配置和对应的条目间隔值最优解,提高了协议帧定时发帧控制的精确度和效率。
进一步地,图5为本发明协议帧定时发帧控制方法第四实施例的流程示意图,如图5所示,基于第二实施例提出本发明协议帧定时发帧控制方法第四实施例,在本实施例中,所述步骤S13具体包括以下步骤:
步骤S131、通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,获得编号间隔参数。
需要说明的是,FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,即K值,可以生成对应的K参数,即获得编号间隔参数。
步骤S132、根据所述编号间隔参数在所述最小发帧周期内的每个时隙的开始计算获得待发送的条目编号,根据所述条目编号确定目标发送条目顺序。
可以理解的是,在最小发帧周期内的每个时隙的开始可以计算即将发送的条目编号,一般实现可以采用递归和加法而非乘法,从而确定目标发送条目顺序。
在具体实现中,可以最小周期的开始赋初值归零:发送条目号H=0,循环次数计数j=0;接着在每个时隙开始时计算将发送的条目编号l:若条目编号的前值加相邻条目间隔值之和是小于总条目数的,则当前条目编号就是这个和,否则先把循环次数递增1,再将当前条目编号赋值循环次数;相关执行程序语句可以为:if((l+K)<SUM)l=l+K,else j=j+1;l=j;本实施例对此不加以限制。
本实施例通过上述方案,通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,获得编号间隔参数;根据所述编号间隔参数在所述最小发帧周期内的每个时隙的开始计算获得待发送的条目编号,根据所述条目编号确定目标发送条目顺序,能够获得准确合适的编号间隔值,提高了协议帧定时发帧控制的速度和效率。
进一步地,图6为本发明协议帧定时发帧控制方法第五实施例的流程示意图,如图6所示,基于第一实施例提出本发明协议帧定时发帧控制方法第五实施例,在本实施例中,所述步骤S20具体包括以下步骤:
步骤S21、根据发送条目最大总数和最小周期时长产生每个发送条目占用的时隙。
需要说明的是,通过所述发送条目最大总数可以相应产生对应的发送条目占用的时隙,即每个发送条目对应占用的时隙。
步骤S22、获取所述预设发帧周期于所述最小发帧周期的倍数作为当前倍数,将所述当前倍数与所述发送条目最大总数进行比较。
应当理解的是,通过将所述预设发帧周期于所述最小发帧周期的倍数作为当前倍数与所述发送条目最大总数进行比较,能够生成对应的比较结果,进而根据比较结果的不同采取相应的时隙选通策略。
步骤S23、在所述当前倍数不大于所述发送条目最大总数时,将每个所述最小发帧周期的前所述发送条目最大总数个时隙的时间段作为所述预设发帧周期的所有时隙选通。
可以理解的是,在所述当前倍数不大于所述发送条目最大总数时,即N<=SUM时,大周期内的每个最小周期的前SUM个时隙的时间段作为所有时隙选通,即每个所述最小发帧周期的前所述发送条目总数的时隙的时间段作为所述预设发帧周期的所有时隙选通。
步骤S24、当所述当前倍数大于所述发送条目最大总数时,获取所述当前倍数与所述发送条目最大总数的乘积对应的目标数,将所述预设发帧周期内的前目标数个时隙的时间段作为所述预设发帧周期的所有时隙选通。
应当理解的是,当所述当前倍数大于所述发送条目最大总数时,当N>SUM时:可以将大周期内的前N*SUM个时隙的时间段作为所述预设发帧周期的所有时隙选通,即获取所述当前倍数与所述发送条目最大总数的乘积对应的目标数,将前目标数个时隙对应的时间段作为预设发帧周期的时隙选通。
步骤S25、在所述当前倍数不大于所述发送条目最大总数时,在最小周期范围内,以倍数个时隙为一个循环单位,为时隙进行循环编号,获得时隙循环编号,并以倍数个最小发帧周期为一个循环单位,为最小周期进行循环编号,获得最小周期循环编号。
在具体实现中,可以为各个时隙进行循环编号,为所述最小发帧周期内的所有条目均分时隙,所述最小发帧周期内的各时隙的自然顺序编号为nn;当所述预设发帧周期于所述最小发帧周期的倍数作为当前倍数N<=所述发送条目最大总数SUM时:以N为循环为最小周期内的这些时隙编号,第0,1,2,3…SUM-1(nn值)个时隙,时隙循环编号m为0,1,…N-1,0,1,…N-1,0,1…N-1,…。
在具体实现中,当所述预设发帧周期于所述最小发帧周期的倍数作为当前倍数N<=所述发送条目最大总数SUM时:为所述预设发帧周期内的所述最小发帧周期进行编号,获得最小周期循环编号n为0,1,…N-1当大周期开始时n归零,每过1个最小周期递增1。
步骤S26、在所述当前倍数大于所述发送条目最大总数时,在所述预设发帧周期的所有时隙选通范围内,以倍数个时隙为一个循环单位,为时隙以循环次数进行编号,获得循环次数编号。
可以理解的是,而当所述预设发帧周期于所述最小发帧周期的倍数作为当前倍数N>所述发送条目最大总数SUM时:以N为循环为整个大周期内的时隙编号,编号值为m,m=0~N-1,第0,1,2,3…SUM-1,SUM*1,SUM*1+1,…SUM*N-1时隙,循环编号m为0,1,…N-1,0,1,…N-1,0,1…N-1,…。
在具体实现中,当所述预设发帧周期于所述最小发帧周期的倍数作为当前倍数N>所述发送条目最大总数SUM时:以所述预设发帧周期内每N个时隙循环进行次数编号n,n=0~N-1,当大周期,即所述预设发帧周期开始时n归零,每当经过N个时隙后,即m计到N-1时,n递增1。
步骤S27、当所述当前倍数小于等于所述发送条目最大总数,所述最小周期循环编号等于所述时隙循环编号时,判定当前时隙选通有效,允许将所述当前时隙作为发帧时隙。
应当理解的是,可以通过多个时隙选通条件的筛选确定所述预设发帧周期的允许发送的时隙选通,在所述当前倍数小于等于所述发送条目最大总数,即在N<=SUM,并且所述预设发帧周期内的所述最小发帧周期进行编号获得最小周期编号n与所述时隙循环编号m相等时,允许该时隙的发送,选通有效,否则选通无效。
步骤S28、当所述当前倍数大于所述发送条目最大总数,所述最小发帧周期内时隙的自然顺序编号与所述循环次数编号相等,所述预设发帧周期的所有时隙选通有效,并且当前循环尚未发帧时,判定当前时隙选通有效,允许将所述当前时隙作为发帧时隙,并将当前循环已发帧标识置位有效。
可以理解的是,当所述当前倍数大于所述发送条目最大总数,即当N>SUM时,在每个N时隙循环开始时,可以将当前循环已发帧标识置为无效,当最小周期内时隙自然顺序编号与循环次数编号相等(nn=n),且大周期内所有有效时隙选通有效时,且当前循环已发帧标识为无效时,允许该时隙的发送,选通有效,并将当前循环已发帧标识置为有效,否则选通无效,当前循环已发帧标识保持前值。
在具体实现中,如果有多个周期值,则可以执行多个步骤S21-S28,从而为每个周期分别产生对应的时隙选通。
可以理解的是,在较大周期时,即在预设发帧周期时,所有条目分散到整个较大周期内的不同位置发送,瞬时流量减少;假设支持总条目是1000条,周期是100ms,最小周期是3.3ms,周期值倍数是30.则在100ms内的30个的3.3ms内,都是每个30个时隙才发出一条,最高瞬时流速是原来的1/30。
本实施例通过上述方案,通过根据发送条目最大总数和最小周期时长产生每个发送条目占用的时隙;获取所述预设发帧周期于所述最小发帧周期的倍数作为当前倍数,将所述当前倍数与所述发送条目最大总数进行比较;在所述当前倍数不大于所述发送条目最大总数时,将每个所述最小发帧周期的前所述发送条目最大总数个时隙的时间段作为所述预设发帧周期的所有时隙选通;当所述当前倍数大于所述发送条目最大总数时,获取所述当前倍数与所述发送条目最大总数的乘积对应的目标数,将所述预设发帧周期内的前目标数个时隙的时间段作为所述预设发帧周期的所有时隙选通;当所述当前倍数小于等于所述发送条目最大总数,所述最小周期循环编号等于所述时隙循环编号时,判定当前时隙选通有效,允许将所述当前时隙作为发帧时隙;当所述当前倍数大于所述发送条目最大总数,所述最小发帧周期内时隙的自然顺序编号与所述循环次数编号相等,所述预设发帧周期的所有时隙选通有效,并且当前循环尚未发帧时,判定当前时隙选通有效,允许将所述当前时隙作为发帧时隙,并将当前循环已发帧标识置位有效;能够确定准确的发帧时隙选通条件,从而减少瞬时流速,接近平均流速,实现简单可靠,时序容易收敛,延时小,降低了传送时延抖动,计算流水少,提高了协议帧定时发帧控制的准确度和效率。
进一步地,图7为本发明协议帧定时发帧控制方法第六实施例的流程示意图,如图7所示,基于第一实施例提出本发明协议帧定时发帧控制方法第六实施例,在本实施例中,所述步骤S30具体包括以下步骤:
步骤S31、在每个最小发帧周期内依次轮询每个时隙的第一条目编号,并查询所述第一条目编号对应的第一发送条目的发送开关配置和周期值。
需要说明的是,在每个最小周期内可以依次进行轮询,即在每个最小发帧周期内依次轮询每个时隙的第一条目编号,例如依次轮询每个时隙的条目编号l,并查询对应的发送条目l的发送开关配置和周期值。
步骤S32、在所述周期值为预设最小周期值时,生成定时控制指令,根据所述定时控制指令发送所述协议帧。
可以理解的是,在所述周期值为预先设置的最小周期值时,可以直接发送协议帧,即可以生成定时控制指令,根据所述定时控制指令发送所述协议帧。
步骤S33、在所述周期值为预设发帧周期的周期值时,检查该预设发帧周期的当前时隙是否被选通。
应当理解的是,在所述周期值为预设发帧周期对应的周期值时,可以进一步检查该预设发帧周期的当前时隙是否被选通,进而确定是否生成时隙选通。
步骤S34、在所述发送开关配置为打开状态,且所述当前时隙被选通时,生成定时控制指令,根据所述定时控制指令发送所述协议帧。
可以理解的是,在查询到第一发送条目的发送开关配置是打开的,并且所述当前时隙是选通的,第五实施例中各步骤是根据各种情况,倍数小于等于或大于支持条目总数,产生各个周期的时隙选通,而本实施例的步骤中可以直接用步骤S20中的时隙选通条件加上发送开关的值判断,来产生发送定时控制,即通过第五实施例中各步骤产生的时隙选通,加上发送开关的值判断,来产生发送定时控制,可以直接发送协议帧,即生成定时控制指令,根据所述定时控制指令发送所述协议帧。
在具体实现中,在小周期和大周期之间采用同一套定时,即在预设发帧周期和预设最小发帧周期采用同一套定时,不会碰撞还是可以用一个缓存,一个配置;可以极大减少资源消耗,并且设计简单化;例如,原来1000条配置200条情况,假如1000条全配是满带宽,业务帧带宽占用80%理想匀速;原本业务帧得等待200帧协议帧发送完才能开始发送,缓存容量必须大于200帧;现在的方案中,协议帧每5个时隙中1个发送4个空闲,空闲时可传送业务帧,则缓存容量大于1帧即可;假设3.3ms周期满带宽,1个时隙发送1个,100ms周期时,30个时隙一个帧。同等时间缓存占用为原来的1/30。
应当理解的是,其实现简单可靠,分散的位置是确定的,方便调试;使用加法和递归即可实现,无需消耗数字信号处理(Digital Signal Process,DSP)计算乘除法,计算流水少,时序容易收敛;编号间隔参数确定了,则条目的分布就确定下来;出问题时以固定的周期定时信号作为触发,可在固定位置捕获到特定条目的信号;由于DSP资源是有限的,不是所有器件都有,通常布局在器件特定位置;使用时相关功能设计必须布局在它附近,且DSP元件延时通常较大;若使用加法累加,所有的逻辑LUT均可实现,无位置限制,且元件延时小;DSP计算流水可能需要十几拍,而累加计数器计算流水只有一拍。
在具体实现中,以发送条目支持3.3ms(300fps),10ms,100ms,1s的周期,支持条目总数是2048条为例;FPGA内可以实现:
1)固定参数:支持条目总数SUM=2048.最小周期是3.3ms,10/3ms,125MHz时钟下,共416666个时钟周期,均分时隙每个时隙203个时钟周期。因为416666<406*1024=415744,在3.3ms周期里,前415744个时钟周期是有效发帧时间,其余时间是无效发帧时间,不进行发帧定时处理;大周期以10ms为例,是最小周期3.3ms的3倍;1250000个时钟周期>416666*3=1249998时钟周期数不是最小周期的整数倍;100ms是30个10ms,1s是10个100ms,时钟周期数是整数倍;大周期于最小周期的倍数N分别是3,30,300;N<SUM。
2)定时计数器:10ms周期时钟计数器cnt_10ms,取值0~1249999,在cnt_10ms==0时起始,cnt_10ms==1249999时结束;cnt_10ms系统上电或复位或自身达到最大值时归零,否则不断自增;最小周期时钟计数器cnt_tmin,取值0~416666,最小周期在cnt_tmin==0时起始,cnt_tmin==416666时结束;cnt_tmin系统上电或复位,或cnt_10ms和自身达到最大值时归零,否则不断自增;100ms周期的时钟周期数是10ms的整数倍,故可定为在第0个10ms的起始处开始,在第9个10ms的结束处结束;1s周期依次类推;每个时隙内的时钟计数器cnt_slot_inter,取值0~202;每个时隙在cnt_slot_inter==0时起始,cnt_slot_inter==202时结束;cnt_slot_inter在最小周期起始时归零,之后不断重复自增1直到最大值归零的过程;最小周期内时隙编号cnt_slot_num,取值0~2047;cnt_slot_num在最小周期起始时归零,在cnt_slot_inter==202时自增1。
3)计算变量:条目间隔寄存器K,当前条目编号l,l=0~2047;大周期的所有有效时隙选通信号vld_all;每种周期值分别对应一个的:循环次数计数器j。4)调整最小周期内条目顺序:最小周期开始时(cnt_tmin==0):采样寄存器K的值,否则保持;当前发送条目号l归零,循环次数计数器j归零;每个时隙开始cnt_slot_inter==0时,计算当前发送条目号l:若l+K>2048,则先将循环次数计数器j自增1,j=j+1,再将发送条目号l赋值j,l=j;否则发送条目号l自增K,l=l+K;5)产生大周期的所有有效时隙选通信号;所有有效时隙选通是在其内的每个3.3ms内的前2048个时隙。即从(cnt_slot_num=0)&&(cnt_slot_inter==0)开始,到(cnt_slot_num=2047)&&(cnt_slot_inter==202)时结束;100ms和1s的所有有效时隙选通和10ms的是同一个;6)产生大周期的时隙选通信号;10ms周期的最小周期内时隙循环编号m,初值是0,即在cnt_tmin==0时归零;在cnt_slot_inter==202时,若小于3-1=2时递增1,否则归零;10ms周期的最小周期编号n,初值值是0,即在cnt_10ms==0时归零;在cnt_tmin==416666时,若小于3-1=2时递增1,否则归零;10ms周期中每个最小周期内各个时隙中,若m==n,则该时隙选通有效,否则无效;100ms和1s周期的依次类推,不同的是对应的n和m的最大值分别是29和299;7)产生发送使能:cnt_slot_inter==1时,查询发送条目l的周期值和发送开关配置,选择该预设发帧周期的时隙选通,与上发送开关(开为1)和所有有效时隙选通信号有效时(有效为1),得到该条目的发送使能。
另一个应用场景,以发送条目支持3.3ms,15s的周期;支持条目总数SUM是1024条;默认周期是15s,自动保护状态机变化触发快发3.3ms;
CPU内可以实现:1.CPU根据业务数目和应用场景,静态配置发送条目的发送开关;2.CPU自适应调整K值:
1)根据使能/不使能条目总数的较小值,或者使能条目与支持条目公约数的近似值,或者配置的历史记录中查询到的相近配置的K值,作为K值的初值写入FPGA;2)在系统稳定运行的状态中,经过一个固定时延后查询系统帧缓存的水位,通道的丢帧率和时延抖动的统计值,判断是否达到可接受范围,是则到4)否则3);3)将K值递增,继续2);4)将对应的K值填入FPGA,并将使能条目总数和支持条目总数,周期值,帧数量等相关配置信息和可接受K值记入配置的历史记录;5)在配置变化后,或者发现性能指标超出可接受范围内,自动触发自适应调整过程。
相应地,FPGA内实现:
1)固定参数:支持条目总数SUM=1024.最小周期是3.3ms,125MHz时钟下共416666个时钟周期,均分时隙每个时隙406个时钟周期。在因为416666<406*1024=415744,在3.3ms周期里,前415744个时钟周期是有效发帧定时,其余时间是无效发帧定时,不参与定时处理;大周期于最小周期的倍数N是4500,N>SUM;
2)定时计数器:因为3.3ms的时钟周期数不是整数倍,故需增加10ms周期时钟计数器cnt_10ms;10ms周期时钟计数器cnt_10ms,取值0~1249999,在cnt_10ms==0时起始,cnt_10ms==1249999时结束;cnt_10ms系统上电或复位或自身达到最大值时归零,否则不断自增;最小周期时钟计数器cnt_tmin,取值0~416666,最小周期在cnt_tmin==0时起始,cnt_tmin==416666时结束。cnt_tmin系统上电或复位,或cnt_10ms和自身达到最大值时归零,否则不断自增;每个时隙时钟计数器cnt_slot_inter,取值0~405。每个时隙在cnt_slot_inter==0时起始,cnt_slot_inter==405时结束。cnt_slot_inter在最小周期起始时归零,之后不断重复自增1直到达到最大值归零的过程;最小周期内时隙编号cnt_slot_num,取值0~1023。cnt_slot_num在最小周期起始时归零,在cnt_slot_inter==405时自增1;15s周期的时钟周期数是10ms的1500倍,在第0个10ms的起始处开始,在第1499个10ms的结束处结束。
3)计算变量:条目间隔寄存器K,当前条目编号l,l=0~1023;15s周期值对应的:循环次数计数器j,当前循环已发出帧标识flag_tred,大周期的所有有效时隙选通信号vld_all;
4)调整最小周期内发送条目顺序;最小周期开始时cnt_tmin==0采样寄存器K的值,否则保持;当前发送条目号l归零,循环次数计数器j归零;每个时隙开始时cnt_slot_inter==0计算当前发送条目号l:若l+K>1024,则先将循环次数计数器j自增1,j=j+1,再将发送条目号l赋值j,l=j;否则发送条目号l自增K,l=l+K;
5)产生15s周期的时隙选通;最小周期内SUM个有效时隙时间的指示信号vld_min,该信号从(cnt_slot_num=0)&&(cnt_slot_inter==0)开始,到(cnt_slot_num=1023)&&(cnt_slot_inter==405)时结束;周期15s的时隙循环编号m,在15s周期开始时归零;在有效时隙时间中,即vld_min有效时,在cnt_slot_inter==0时,若小于4500-1=4499时递增1,否则归零;周期15s的循环次数编号n,在周期15s开始时归零;每到4500个时隙结束时,即在m==4499且cnt_slot_inter==405时,递增1;周期15s的所有有效时隙选通是15s内前4500*2048个时隙有效。从15s周期开始处有效,即在过了4500*2048个时隙后置为无效。即在时隙循环编号m为0,循环次数n为0,时隙时钟计数器cnt_slot_inter==0时置为有效,在时隙循环编号m为4499,循环次数n为1023,时隙时钟计数器cnt_slot_inter==405时置为无效。且只取其中有效时隙时间,即再与上最小周期内有效时隙时间的指示信号vld_min;周期15s的各个时隙中,若当前循环次数与最小周期内自然顺序时隙编号一致时,即cnt_slot_num==n时,且当前循环已发出帧标识flag_tred无效(表示当前循环尚未发出帧),且所有有效时隙选通信号有效时,则该预设发帧周期的时隙选通有效,并且将当前循环已发出帧标识flag_tred置为有效,否则该时隙选通无效且当前循环已发出帧标识flag_tred保持前值;
6)产生发送使能:cnt_slot_inter==1时,查询发送条目l的周期值和发送开关配置,选择该预设发帧周期的时隙选通,与上发送开关(开为1),得到该条目的发送使能。
本实施例通过上述方案,通过在每个最小发帧周期内依次轮询每个时隙的第一条目编号,并查询所述第一条目编号对应的第一发送条目的发送开关配置和周期值;在所述周期值为预设最小周期值时,生成定时控制指令,根据所述定时控制指令发送所述协议帧;在所述周期值为预设发帧周期的周期值时,检查该预设发帧周期的当前时隙是否被选通;在所述发送开关配置为打开状态,且所述当前时隙被选通时,生成定时控制指令,根据所述定时控制指令发送所述协议帧,能够减少瞬时流速,接近平均流速,实现简单可靠,时序容易收敛,延时小,降低了传送时延抖动,计算流水少,无需准备较大队列缓存处理容纳突发流量,避免了突发流量造成的线路上的缓存溢出,保证了收端与发端的连通性。
相应地,本发明进一步提供一种协议帧定时发帧控制装置。
参照图8,图8为本发明协议帧定时发帧控制装置第一实施例的功能模块图。
本发明协议帧定时发帧控制装置第一实施例中,该协议帧定时发帧控制装置包括:
条目顺序确定模块10,用于获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序。
选通条件设定模块20,用于根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件。
定时发送模块30,用于根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧。
所述条目顺序确定模块10,还用于获取协议帧的发送条目最大总数,并获取所述协议帧的发送条目间隔值,根据所述发送条目间隔值和所述发送条目最大总数建立对应各发送条目的发送条目号的散列函数;根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,将所述编号间隔值写入FPGA的寄存器内;通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,代入所述散列函数获得所述最小发帧周期的条目编号,根据所述条目编号确定目标发送条目顺序。
所述条目顺序确定模块10,还用于根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,从各编号间隔值中确定在当前使用场景下的间隔值最优解,将所述间隔值最优解作为编号间隔值,并将所述编号间隔值写入FPGA的寄存器内。
所述条目顺序确定模块10,还用于获取所述协议帧的发送条目最大总数;
根据所述发送条目间隔值和所述发送条目最大总数通过下述公式建立对应所述发送条目的发送条目号的散列函数:
H=K*i+j
其中,H为所述散列函数,K为所述发送条目间隔值,i为轮询参数,j为循环次数计数,SUM为所述发送条目最大总数,K、i、j、SUM均为自然数,i是内循环,取值范围为[0,SUM/K-1],j是外循环,取值范围为[0,K-1]。
所述条目顺序确定模块10,还用于通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,获得编号间隔参数;根据所述编号间隔参数在所述最小发帧周期内的每个时隙的开始计算获得待发送的条目编号,根据所述条目编号确定目标发送条目顺序。
所述选通条件设定模块20,还用于根据发送条目最大总数和最小周期时长产生每个发送条目占用的时隙;获取所述预设发帧周期于所述最小发帧周期的倍数作为当前倍数,将所述当前倍数与所述发送条目最大总数进行比较;在所述当前倍数不大于所述发送条目最大总数时,将每个所述最小发帧周期的前所述发送条目最大总数个时隙的时间段作为所述预设发帧周期的所有时隙选通;当所述当前倍数大于所述发送条目最大总数时,获取所述当前倍数与所述发送条目最大总数的乘积对应的目标数,将所述预设发帧周期内的前目标数个时隙的时间段作为所述预设发帧周期的所有时隙选通;当所述当前倍数小于等于所述发送条目最大总数,所述最小周期循环编号等于所述时隙循环编号时,判定当前时隙选通有效,允许将所述当前时隙作为发帧时隙;当所述当前倍数大于所述发送条目最大总数,所述最小发帧周期内时隙的自然顺序编号与所述循环次数编号相等,所述预设发帧周期的所有时隙选通有效,并且当前循环尚未发帧时,判定当前时隙选通有效,允许将所述当前时隙作为发帧时隙,并将当前循环已发帧标识置位有效。
所述定时发送模块30,还用于在每个最小发帧周期内依次轮询每个时隙的第一条目编号,并查询所述第一条目编号对应的第一发送条目的发送开关配置和周期值;在所述周期值为预设最小周期值时,生成定时控制指令,根据所述定时控制指令发送所述协议帧;在所述周期值为预设发帧周期的周期值时,检查该预设发帧周期的当前时隙是否被选通;在所述发送开关配置为打开状态,且所述当前时隙被选通时,生成定时控制指令,根据所述定时控制指令发送所述协议帧。
其中,协议帧定时发帧控制装置的各个功能模块实现的步骤可参照本发明协议帧定时发帧控制方法的各个实施例,此处不再赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有协议帧定时发帧控制程序,所述协议帧定时发帧控制程序被处理器执行时实现如上文所述协议帧定时发帧控制方法实施例中的操作。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种协议帧定时发帧控制方法,其特征在于,所述协议帧定时发帧控制方法包括:
获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序,所述发送条目最大总数为常量,所述发送条目总数为变量;
根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件;
根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧。
2.如权利要求1所述的协议帧定时发帧控制方法,其特征在于,所述获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序,包括:
获取协议帧的发送条目最大总数,并获取所述协议帧的发送条目间隔值,根据所述发送条目间隔值和所述发送条目最大总数建立对应各发送条目的发送条目号的散列函数;
根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,将所述编号间隔值写入FPGA的寄存器内;
通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,代入所述散列函数获得所述最小发帧周期的条目编号,根据所述条目编号确定目标发送条目顺序。
3.如权利要求2所述的协议帧定时发帧控制方法,其特征在于,所述根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,将所述编号间隔值写入FPGA的寄存器内,包括:
根据所述发送条目总数和所述发送条目最大总数通过CPU计算出各发送条目中相邻两条发送条目的编号间隔值,从各编号间隔值中确定在当前使用场景下的间隔值最优解,将所述间隔值最优解作为编号间隔值,并将所述编号间隔值写入FPGA的寄存器内。
4.如权利要求2所述的协议帧定时发帧控制方法,其特征在于,所述获取协议帧的发送条目最大总数,并获取所述协议帧的发送条目间隔值,根据所述发送条目间隔值和所述发送条目最大总数建立对应各发送条目的发送条目号的散列函数,包括:
获取协议帧的发送条目最大总数和发送条目间隔值;
根据所述发送条目间隔值和所述发送条目最大总数通过下述公式建立对应所述发送条目的发送条目号的散列函数:
H=K*i+j
其中,H为所述散列函数,K为所述发送条目间隔值,i为轮询参数,j为循环次数计数,SUM为所述发送条目最大总数,K、i、j、SUM均为自然数,i是内循环,取值范围为[0,SUM/K-1],j是外循环,取值范围为[0,K-1]。
5.如权利要求2所述的协议帧定时发帧控制方法,其特征在于,所述通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,代入所述散列函数获得所述最小发帧周期的条目编号,根据所述条目编号确定目标发送条目顺序,包括:
通过所述FPGA在最小发帧周期开始时从所述寄存器中采集一次编号间隔值,获得编号间隔参数;
根据所述编号间隔参数在所述最小发帧周期内的每个时隙的开始计算获得待发送的条目编号,根据所述条目编号确定目标发送条目顺序。
6.如权利要求1所述的协议帧定时发帧控制方法,其特征在于,所述根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件,包括:
根据发送条目最大总数和最小周期时长产生每个发送条目占用的时隙;
获取所述预设发帧周期于所述最小发帧周期的倍数作为当前倍数,将所述当前倍数与所述发送条目最大总数进行比较;
在所述当前倍数不大于所述发送条目最大总数时,将每个所述最小发帧周期的前所述发送条目最大总数个时隙的时间段作为所述预设发帧周期的所有时隙选通;
当所述当前倍数大于所述发送条目最大总数时,获取所述当前倍数与所述发送条目最大总数的乘积对应的目标数,将所述预设发帧周期内的前目标数个时隙的时间段作为所述预设发帧周期的所有时隙选通;
在所述当前倍数不大于所述发送条目最大总数时,在最小周期范围内,以倍数个时隙为一个循环单位,为时隙进行循环编号,获得时隙循环编号,并以倍数个最小发帧周期为一个循环单位,为最小周期进行循环编号,获得最小周期循环编号;
在所述当前倍数大于所述发送条目最大总数时,在所述预设发帧周期的所有时隙选通范围内,以倍数个时隙为一个循环单位,为时隙以循环次数进行编号,获得循环次数编号;
当所述当前倍数小于等于所述发送条目最大总数,所述最小周期循环编号等于所述时隙循环编号时,判定当前时隙选通有效,允许将所述当前时隙作为发帧时隙;
当所述当前倍数大于所述发送条目最大总数,所述最小发帧周期内时隙的自然顺序编号与所述循环次数编号相等,所述预设发帧周期的所有时隙选通有效,并且当前循环尚未发帧时,判定当前时隙选通有效,允许将所述当前时隙作为发帧时隙,并将当前循环已发帧标识置位有效。
7.如权利要求6所述的协议帧定时发帧控制方法,其特征在于,所述根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧,包括:
在每个最小发帧周期内依次轮询每个时隙的第一条目编号,并查询所述第一条目编号对应的第一发送条目的发送开关配置和周期值;
在所述周期值为预设最小周期值时,生成定时控制指令,根据所述定时控制指令发送所述协议帧;
在所述周期值为预设发帧周期的周期值时,检查该预设发帧周期的当前时隙是否被选通;
在所述发送开关配置为打开状态,且所述当前时隙被选通时,生成定时控制指令,根据所述定时控制指令发送所述协议帧。
8.一种协议帧定时发帧控制装置,其特征在于,所述协议帧定时发帧控制装置包括:
条目顺序确定模块,用于获取协议帧的发送条目总数和发送条目最大总数,根据所述发送条目总数和所述发送条目最大总数调整所述协议帧的最小发帧周期内的发送条目顺序,获得调整后的目标发送条目顺序,所述发送条目最大总数为常量,所述发送条目总数为变量;
选通条件设定模块,用于根据支持的发送条目最大总数和各周期时长为预设发帧周期增加时隙选通条件;
定时发送模块,用于根据所述时隙选通条件以及发送开关配置生成定时控制指令,根据所述定时控制指令发送所述协议帧。
9.一种协议帧定时发帧控制设备,其特征在于,所述协议帧定时发帧控制设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的协议帧定时发帧控制程序,所述协议帧定时发帧控制程序配置为实现如权利要求1至7中任一项所述的协议帧定时发帧控制方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有协议帧定时发帧控制程序,所述协议帧定时发帧控制程序被处理器执行时实现如权利要求1至7中任一项所述的协议帧定时发帧控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210179261.9A CN114640728B (zh) | 2022-02-25 | 2022-02-25 | 协议帧定时发帧控制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210179261.9A CN114640728B (zh) | 2022-02-25 | 2022-02-25 | 协议帧定时发帧控制方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114640728A CN114640728A (zh) | 2022-06-17 |
CN114640728B true CN114640728B (zh) | 2023-05-16 |
Family
ID=81947969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210179261.9A Active CN114640728B (zh) | 2022-02-25 | 2022-02-25 | 协议帧定时发帧控制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114640728B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115913462B (zh) * | 2022-11-09 | 2023-08-08 | 中国人民解放军32039部队 | 一种基于事先规划的网络数据发送方法和数据发送模块 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56136044A (en) * | 1980-03-07 | 1981-10-23 | Ibm | Data activity compressing method and communication control device using same |
US4916692A (en) * | 1988-03-14 | 1990-04-10 | Racal Data Communications Inc. | TDM bus controller |
US6034960A (en) * | 1997-12-04 | 2000-03-07 | Nortel Networks Corporation | ATM service scheduler using reverse-binary scattering and time-space mapping |
JP2000183843A (ja) * | 1998-12-21 | 2000-06-30 | Fujitsu Ltd | 可変フレーム送受信方法及び装置 |
JP2001197063A (ja) * | 2000-01-11 | 2001-07-19 | Matsushita Electric Ind Co Ltd | フロー制御方法及びそれを実行する通信要素 |
CN103560975A (zh) * | 2013-11-01 | 2014-02-05 | 烽火通信科技股份有限公司 | 一种触发数据帧产生的装置和方法 |
CN103731224A (zh) * | 2012-10-11 | 2014-04-16 | 中兴通讯股份有限公司 | 一种支持多路变长信元时隙复用的装置和方法 |
WO2015003301A1 (zh) * | 2013-07-08 | 2015-01-15 | 华为技术有限公司 | Gtp消息的发送控制方法及设备、数据的发送方法及设备 |
CN106850331A (zh) * | 2016-12-12 | 2017-06-13 | 清华大学 | 一种交通领域的带同步时钟功能的以太网发帧装置 |
CN109802898A (zh) * | 2019-02-01 | 2019-05-24 | 深圳市比速智网技术有限公司 | 多链路数据传输方法、接收装置及存储介质 |
CN111278152A (zh) * | 2019-01-04 | 2020-06-12 | 维沃移动通信有限公司 | 信道占用方法、帧周期指示方法、帧周期确定方法及设备 |
CN111757151A (zh) * | 2020-06-30 | 2020-10-09 | 平安国际智慧城市科技股份有限公司 | 基于rtp协议的视频流发送方法、装置、设备和介质 |
CN112087804A (zh) * | 2020-11-13 | 2020-12-15 | 之江实验室 | 一种时间敏感网络门控时隙调整方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7486693B2 (en) * | 2001-12-14 | 2009-02-03 | General Electric Company | Time slot protocol |
US8102776B2 (en) * | 2007-09-05 | 2012-01-24 | Spirent Communications, Inc. | Methods and apparatus for generating simulated network traffic |
-
2022
- 2022-02-25 CN CN202210179261.9A patent/CN114640728B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56136044A (en) * | 1980-03-07 | 1981-10-23 | Ibm | Data activity compressing method and communication control device using same |
US4916692A (en) * | 1988-03-14 | 1990-04-10 | Racal Data Communications Inc. | TDM bus controller |
US6034960A (en) * | 1997-12-04 | 2000-03-07 | Nortel Networks Corporation | ATM service scheduler using reverse-binary scattering and time-space mapping |
JP2000183843A (ja) * | 1998-12-21 | 2000-06-30 | Fujitsu Ltd | 可変フレーム送受信方法及び装置 |
JP2001197063A (ja) * | 2000-01-11 | 2001-07-19 | Matsushita Electric Ind Co Ltd | フロー制御方法及びそれを実行する通信要素 |
CN103731224A (zh) * | 2012-10-11 | 2014-04-16 | 中兴通讯股份有限公司 | 一种支持多路变长信元时隙复用的装置和方法 |
WO2015003301A1 (zh) * | 2013-07-08 | 2015-01-15 | 华为技术有限公司 | Gtp消息的发送控制方法及设备、数据的发送方法及设备 |
CN103560975A (zh) * | 2013-11-01 | 2014-02-05 | 烽火通信科技股份有限公司 | 一种触发数据帧产生的装置和方法 |
CN106850331A (zh) * | 2016-12-12 | 2017-06-13 | 清华大学 | 一种交通领域的带同步时钟功能的以太网发帧装置 |
CN111278152A (zh) * | 2019-01-04 | 2020-06-12 | 维沃移动通信有限公司 | 信道占用方法、帧周期指示方法、帧周期确定方法及设备 |
CN109802898A (zh) * | 2019-02-01 | 2019-05-24 | 深圳市比速智网技术有限公司 | 多链路数据传输方法、接收装置及存储介质 |
CN111757151A (zh) * | 2020-06-30 | 2020-10-09 | 平安国际智慧城市科技股份有限公司 | 基于rtp协议的视频流发送方法、装置、设备和介质 |
CN112087804A (zh) * | 2020-11-13 | 2020-12-15 | 之江实验室 | 一种时间敏感网络门控时隙调整方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114640728A (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210006482A1 (en) | Broadband communication link performance monitoring method for communication devices | |
CN109818826B (zh) | 一种网络路径延迟测量方法及其装置与时间同步系统 | |
US9699091B2 (en) | Apparatus and method for time aware transfer of frames in a medium access control module | |
US7675856B2 (en) | Bandwidth estimation in broadband access networks | |
US7948882B2 (en) | Dual leaky bucket flow control method and system | |
US20190014053A1 (en) | Network Flow Control Method And Network Device | |
US7525971B2 (en) | Software-hardware partitioning of a scheduled medium-access protocol | |
US9054973B2 (en) | Method and system for Ethernet congestion management | |
KR20180081768A (ko) | 타깃 전송 경로를 획득하는 방법 및 네트워크 노드 | |
US11463905B2 (en) | Adaptive in-band network telemetry for full network coverage | |
US20090003225A1 (en) | Method and apparatus for probing of a communication network | |
CN111817977B (zh) | 一种网络拥塞控制方法和装置 | |
JP6226477B2 (ja) | システム、方法、およびプログラム | |
CN112217686A (zh) | 一种评估往返时延的系统、方法及装置 | |
GB2461966A (en) | Frame loss measurement system which communicates frame count information using OAM frames and corrects counters according to frame transmission order | |
CN112054965A (zh) | 一种拥塞控制方法、设备及计算机可读介质 | |
CN114640728B (zh) | 协议帧定时发帧控制方法、装置、设备及存储介质 | |
KR20220062355A (ko) | 데이터 스트림 전송에 필요한 대역폭을 결정하기 위한 방법, 장치 및 시스템 | |
JP2013176041A (ja) | 複数のトラフィッククラスを含むパケット交換ネットワークにおけるトラフィックシェーピングの方法及び装置 | |
US11799747B2 (en) | System and method for link bandwidth management | |
US8879403B2 (en) | Link microbenchmarking with idle link correction | |
US20220329338A1 (en) | Synchronizing a distributed application via a communication network | |
CN107800643B (zh) | 报文转发方法及装置 | |
US20080137540A1 (en) | Method And Apparatus For Analysing Traffic In A Network | |
JP3768421B2 (ja) | 動的帯域割当回路、動的帯域割当方法、動的帯域割当プログラムおよび記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |