一种基于分包机制的发送帧序列控制方法技术

技术编号:11319526 阅读:98 留言:0更新日期:2015-04-22 09:01
本发明专利技术公开了一种基于分包机制的发送帧序列控制方法,包括如下步骤:1)主机将配置数据写入配置寄存器;2)控制状态机启动序号产生单元、计算单元和发送单元;3)序号产生单元产生随机控制序号;发送单元检查主机所开启的发送模式;根据该发送模式,将相应的帧正常发送、或重复发送、或丢弃或乱序发送,直至本次所有帧发送完成。本发明专利技术根据主机的配置,控制属于同一条上层数据的底层发送帧的顺序,从而实现将帧随机的重复发送、丢弃及乱序发送。本发明专利技术通过对分包发送顺序的处理,实现对发送帧序列的控制,满足网络的测试需求,进而达到实现简单,使用灵活,降低成本的目的。

【技术实现步骤摘要】

本专利技术涉及一种发送帧序列控制方法,特别涉及一种基于分包机制的发送帧序列 控制方法。
技术介绍
在通信领域,数据传输通常分层设计,而底层和上层要满足的需求不同,所以底层 和上层的数据结构往往不能直接匹配,需要进行转换。通常来说底层和上层对传输的数据 大小都是有限制的,但上层能支持的数据长度一般会比底层允许的数据长,因此在传输前 总是需要对上层数据分包,将一包过长的上层数据分解为若干包满足底层传输要求的小 包。正常传输时,将这些小包按顺序发出即可,但如何打乱发送顺序,从而满足网络的测试 需求,目前还没有相关技术方案。 在通信领域,数据传输通常分层设计,而底层和上层要满足的需求不同,所以底层 和上层的数据结构往往不能直接匹配,需要进行转换。而底层和上层对传输的数据大小都 是有限制的,并且上层能支持的数据长度一般会比底层允许的数据长,因此在传输前需要 对上层数据分包,将过长的上层数据分解为若干包满足底层传输要求的小包。 在网络工作正常时,这些分解出的小包均能被顺序传输,但在网络出现故障时,这 些小包就有可能不会被顺序传输,而是出现重复、丢包或乱序的情况,因此在对网络进行测 试时,就需要一种易于实现的控制发送帧序列的方法,能灵活的使用其发送正确的帧序列 或者不正确的帧序列,以测试网络正常状态和故障状态时的工作情况。但到目前为止还未 见相关技术的公开方案。
技术实现思路
本专利技术提出了,能够根据主机的配置, 控制属于同一条上层数据的底层发送帧的顺序,从而实现将帧随机的重复发送、丢弃及乱 序发送。本专利技术具有成本低,使用灵活,易于实现的特点。 本专利技术通过对分包发送顺序的处理,实现对发送帧序列的控制,进而达到实现简 单,使用灵活,降低成本的目的。 本专利技术技术方案如下: ,其特殊之处在于: 所述控制方法如下: 1)主机将配置数据写入配置寄存器; 2)控制状态机启动序号产生单元、计算单元和发送单元; 3)序号产生单元产生随机控制序号;发送单元检查主机所开启的发送模式; 若启用正常发送,则将帧正常发送, 若启用非正常发送,检查当前发送帧的序号是否与所述随机控制序号相同; 若相同,则执行步骤4);若不同,则正常发送数据; 4)若重复发送有效,则由计算单元根据随机控制序号计算帧的发送地址及发送长 度,将该帧重复发送两次; 若丢弃有效,则丢弃该帧,直接发送下一帧; 若乱序有效,则由计算单元根据随机控制序号计算帧的发送地址及发送长度,记 录该帧的序号,发送下一帧,然后读取所记录的帧的序号,并发送该帧,将记录序号的帧发 送完成后,下一帧开始正常发送;5)重复步骤3)至步骤4),直至本次所有帧发送完成。 上述配置寄存器包括传输启动寄存器、主机数据长度寄存器和发送模式选择寄存 器,发送模式选择寄存器低3位的值有效;BitO控制是否重复重复发送,Bitl控制是否丢 弃,Bit2控制是否乱序,低3位的值全0时表示正常发送; 控制状态机包括5个状态,5个状态分别如下:空状态S0、寄存器更新状态S1、正 常序列传输状态S2、非正常序列传输状态S3和传输完成状态S4 ; 控制状态机启动条件为传输启动寄存器的写操作; 控制状态机最初处于空状态S0,主机启动帧传输后转移到寄存器更新状态S1,若 发送模式选择寄存器低3位的值全为0则转移到正常序列传输状态,否则转移到非正常序 列传输状态S3,控制状态机收到帧发送完成指示信号后转移到寄存器更新状态S1,收到帧 传输完成指示信号后表明数据传输结束,转移到传输完成状态S4,最后回到空状态S0。 上述步骤3)中,发送单元根据控制状态机所处的状态,按照如下方法将发送缓冲 的相应帧发送出去:a)当控制状态机处于空状态S0时,将发送长度寄存器的值初始化为主机数据长 度寄存器的值,发送帧长度记录寄存器、发送帧长度寄存器、发送帧序号记录寄存器、和发 送帧序号寄存器的值均初始化为〇 ; 发送长度寄存器用于记录发送缓冲中待发送的所有帧的总长度;发送帧长度记录 寄存器用于记录重复和乱序的帧的长度,发送帧长度寄存器用于记录当前需要发送的帧的 长度;发送帧序号记录寄存器用于记录乱序的帧的序号,发送帧序号寄存器用于记录当前 发送帧的序号; b)当控制状态机处于寄存器更新状态S1时, 若重复发送指示信号为1,则将发送帧长度记录寄存器的值读入发送帧长度寄存 器中; 若乱序指示信号为1,则将发送帧长度记录寄存器的值读入发送帧长度寄存器中, 将发送帧序号记录寄存器的值读入发送帧序号寄存器中; 在重复发送指示信号和乱序指示信号都为0时,若发送长度寄存器的值不大于一 帧数据长度,则将发送帧长度寄存器的值初始化为发送长度寄存器的值,并将发送长度寄 存器的值清0,否则将发送帧长度寄存器的值初始化为一帧数据长度,并将发送长度寄存器 的值减去一帧数据长度;C)当控制状态机处于正常序列传输状态S2时, 将发送帧长度寄存器的值记录在发送帧长度记录寄存器中,将发送帧序号寄存 器的值记录在发送帧序号记录寄存器中;由计算单元根据发送帧序号寄存器的值计算本帧 的发送地址,发送单元根据发送地址和发送帧长度寄存器的值将发送缓冲中将相应的帧发 出,发送帧长度寄存器的值同步自减; 当发送帧长度寄存器的值为0且发送长度寄存器的值不为0时,表明当前帧发送 完毕,发送帧序号寄存器加1,并产生当前帧的发送完成指示信号; 当发送帧长度寄存器的值为0且发送长度寄存器的值也为0时,表明本次所有帧 传输完成,产生传输完成指示信号; d)当控制状态机处于非正常序列传输状态S3时, 将发送帧长度寄存器的值记录在发送帧长度记录寄存器中,将发送帧序号寄存器 的值记录在发送帧序号记录寄存器中; 检查发送帧序号寄存器的值是否与随机控制序号相同; 若不同,则按照控制状态机处于S2状态时处理; 若相同,则进行所述步骤4),判断有效的发送模式; 若重复发送有效,则将发送帧长度寄存器的值记录在发送帧长度记录寄存器中,并判断重复发送指 不信号; 若重复发送指示信号为0,则由计算单元根据发送帧序号寄存器的值计算本帧的 发送地址,发送单元根据发送地址和发送帧长度寄存器的值将发送缓冲中将相应的帧发 出,发送帧长度寄存器的值同步自减,当发送帧长度寄存器的值为0时,将重复发送指示信 号置1,产生当前帧的发送完成指示信号; 若重复发送指示信号为1,则由计算单元根据发送帧序号寄存器的值计算本帧的 发送地址,发送单元根据发送地址和发送帧长度寄存器的值将发送缓冲中将相应的帧发 出,发送帧长度寄存器的值同步自减,当发送帧长度寄存器的值为0时,将重复发送指示信 号清0,此时若发送长度寄存器的值为0时,则表明本次所有帧传输完成,产生传输完成指 示信号,否则产生当前帧的发送完成指示信号; 若丢弃有效, 则将发送帧长度寄存器清0,将发送帧序号寄存器加1,若发送长度寄存器的值不 为0,产生当前帧的发送完成指示信号,若发送长度寄存器的值为0,则表明本次所有帧传 输完成,产生传输完成指示信号; 若乱序有效, 则将发送帧长度寄存器的值记录在发送帧长度记录寄存器中,将帧序号寄存器的 值记录在帧序号记录寄存器中,判断乱序指示信号; 在乱序指示信号为1时,则由计算单元根据发送帧序号寄存器的值计算本帧的发 送地址,发送单元根据本文档来自技高网...
一种<a href="http://www.xjishu.com/zhuanli/62/CN104539472.html" title="一种基于分包机制的发送帧序列控制方法原文来自X技术">基于分包机制的发送帧序列控制方法</a>

【技术保护点】
一种基于分包机制的发送帧序列控制方法,其特征在于:所述控制方法如下:1)主机将配置数据写入配置寄存器;2)控制状态机启动序号产生单元、计算单元和发送单元;3)序号产生单元产生随机控制序号;发送单元检查主机所开启的发送模式;若启用正常发送,则将帧正常发送,若启用非正常发送,检查当前发送帧的序号是否与所述随机控制序号相同;若相同,则执行步骤4);若不同,则正常发送数据;4)若重复发送有效,则由计算单元根据随机控制序号计算帧的发送地址及发送长度,将该帧重复发送两次;若丢弃有效,则丢弃该帧,直接发送下一帧;若乱序有效,则由计算单元根据随机控制序号计算帧的发送地址及发送长度,记录该帧的序号,发送下一帧,然后读取所记录的帧的序号,并发送该帧,将记录序号的帧发送完成后,下一帧开始正常发送;5)重复步骤3)至步骤4),直至本次所有帧发送完成。

【技术特征摘要】

【专利技术属性】
技术研发人员:蒲恺李大鹏李玉发田园徐文杰
申请(专利权)人:中国航空工业集团公司第六三一研究所
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1