[发明专利]一种基于FPGA的数据包精准延时方法及系统有效
申请号: | 202010693273.4 | 申请日: | 2020-07-17 |
公开(公告)号: | CN111831606B | 公开(公告)日: | 2023-03-31 |
发明(设计)人: | 陈红艳;陈世霖;马上;王剑;胡剑浩 | 申请(专利权)人: | 电子科技大学;成都信息工程大学 |
主分类号: | G06F15/78 | 分类号: | G06F15/78 |
代理公司: | 四川力久律师事务所 51221 | 代理人: | 韩洋 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 数据包 精准 延时 方法 系统 | ||
1.一种基于FPGA的数据包精准延时方法,其特征在于,包括:
步骤A、响应数据包写入请求,确定当前数据链路状态,并根据所述当前数据链路状态判断所述数据包能否被写入,若能,则利用分配算法给所述数据包分配一个存储子空间,并给所述数据包打上时间戳后写入所分配的存储子空间中进行存储,同时,将该数据包的预设时延值写入所分配的存储子空间;若否,则丢弃该数据包;
步骤B、根据当前时间值与数据包的时间戳持续判断每个数据包在相应的存储子空间中的存储时间是否满足该数据包的时延要求,若是,则将该数据包输出至其对应的目标端口;若否,则继续判断不满足时延要求的数据包;
所述步骤B具体为:
利用当前时间值减去每个数据包的时间戳,得到与该数据包对应的存储时间;将所述存储时间与该数据包的预设时延值进行比较,当所述存储时间大于或等于所述预设时延值时,判断满足该数据包的时延要求,将该数据包输出至其对应的目标端口;若所述存储时间小于所述预设时延值,则该数据包当前不能被输出,等待下次判断;
所述存储子空间个数为n,采用1~n的序号对n个存储子空间进行标记;
所述步骤A中的分配算法包括:
步骤201:读取前一次的分配结果,得到多个前次未分配的存储子空间的序号,以及前次分配了的存储子空间中写入的数据包的预设时延值;
步骤202:对所述多个前次未分配的存储子空间的序号进行从小到大的排序,对前次被分配了的存储子空间,按照其写入的数据包的预设时延值的大小进行进行从小到大的排序;
步骤203:根据步骤202的排序结果,优先给本次待分配的数据包分配前次未分配且序号较小的存储子空间,若本次待分配的数据包个数大于前次未分配的存储子空间的个数,则覆盖前次被分配了的时延值较小的存储子空间;
步骤204:存储本次分配结果,以便下次分配使用。
2.如权利要求1所述的方法,其特征在于,所述当前数据链路状态包括:当前数据链路源端口到目标端口的映射关系,以及,当前数据链路目标端口的占用状态。
3.如权利要求2所述的方法,其特征在于,当数据包的源端口序号和目标端口序号不满足当前数据链路源端口到目标端口的映射关系时,判断该数据包为错误数据包,该数据包不能被写入;
或者,当前数据链路目标端口全部被占用时,该数据包不能被写入。
4.一种基于FPGA的数据包精准延时系统,其特征在于,包括:
计时器,用于记录时间,并用于根据DDR控制器的控制给数据包打上时间戳;
DDR控制器,用于响应数据包写入请求,确定当前数据链路状态,并根据所述当前数据链路状态判断所述数据包能否被写入,若能,则利用分配算法给所述数据包分配一个存储子空间,并控制所述计时器给该数据包打上时间戳,将打上时间戳后的数据包写入所分配的存储子空间中进行存储,以及,接收该数据包的预设时延值,并将该数据包的预设时延值写入所分配的存储子空间;若否,则丢弃该数据包;所述分配算法,包括:步骤201:读取前一次的分配结果,得到多个前次未分配的存储子空间的序号,以及前次分配了的存储子空间中写入的数据包的预设时延值;步骤202:对所述多个前次未分配的存储子空间的序号进行从小到大的排序,对前次被分配了的存储子空间,按照其写入的数据包的预设时延值的大小进行进行从小到大的排序;步骤203:根据步骤202的排序结果,优先给本次待分配的数据包分配前次未分配且序号较小的存储子空间,若本次待分配的数据包个数大于前次未分配的存储子空间的个数,则覆盖前次被分配了的时延值较小的存储子空间;步骤204:存储本次分配结果,以便下次分配使用;
DDR存储器,包括n个存储子空间,所述存储子空间用于根据所述DDR控制器的分配写入相应的数据包及其预设延时值;判断模块,用于根据当前时间值与数据包的时间戳持续判断每个数据包在相应的存储子空间中的存储时间是否满足该数据包的时延要求,若是,则将该数据包输出至其对应的目标端口;若否,则继续判断不满足时延要求的数据包;所述根据当前时间值与数据包的时间戳持续判断每个数据包在相应的存储子空间中的存储时间是否满足该数据包的时延要求,包括:利用当前时间值减去每个数据包的时间戳,得到与该数据包对应的存储时间;将所述存储时间与该数据包的预设时延值进行比较,当所述存储时间大于或等于所述预设时延值时,判断满足该数据包的时延要求,将该数据包输出至其对应的目标端口;若所述存储时间小于所述预设时延值,则该数据包当前不能被输出,等待下次判断;所述存储子空间个数为n,采用1~n的序号对n个存储子空间进行标记。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学;成都信息工程大学,未经电子科技大学;成都信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010693273.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种双皮带驱动机构及清扫设备
- 下一篇:一种配电设备减震安装处理装置