一种实时以太网通信调度方法

文档序号:7928474阅读:177来源:国知局
专利名称:一种实时以太网通信调度方法
技术领域
本发明涉及一种实时以太网通信调度方法。
背景技术
由于以太网技术具有低成本、通用性等特点,目前已逐步应用到一些实时控制领 域,以取代原有的专用网络。 实时控制领域的数据通信量一般不大,大部分都是控制命令和参数,但其更强调 通信延迟的确定性和传输可靠性。以太网数据链路采用尽可能多的传输机制,保证了通信 带宽的最大利用率,但网络节点上的多个应用共享一条物理链路时,由于应用之间没有通 信带宽隔离机制,通信任务之间会相互影响,可能由于某个应用大量地发送数据,其它的应 用不能或不及时地发送数据,导致应用任务通信的延迟不确定和链路通信不可靠。

发明内容
本发明的目的为提供一种带宽分配策略,将一条物理链路划成多条逻辑上的数据 通路即虚链路,从而保证通信延迟确定性和可靠性的实时以太网通信调度方法,其解决了 现有以太网应用在实时控制领域中导致通信延迟的不确定和链路通信不可靠的技术问题。
本发明的技术解决方案为 —种实时以太网通信调度方法,其特殊之处是,包含以下步骤 1]双端口存储器区域划分根据系统需要实现虚链路的个数n,将双端口存储器 划分为n个存储区域,使每个虚链路使用一个存储区域,在逻辑上构成环形缓冲区;
2]虚链路队列控制每个虚链路建立队列控制指针,包括输入指针inptr和输出 指针outptr,用于实现虚链路的队列管理; 3]流量规整每个虚链路使用一个计数器实现流量规整,当计数到0时,停止计 数,并产生发送令牌信号,通知调度控制处理; 4]通信调度从多个虚链路选取具备发送条件的消息,通过物理链路发送。
上述步骤1]中,每个消息帧中第一个字存放消息内容长度,后面紧跟消息内容; 发送主机负责将数据帧放入虚链路的环形缓冲区,通信调度控制器负责从环形缓冲区读取 数据帧组织发送; 所述步骤2]中,主机管理输入指针,调度控制器管理输出指针。 上述步骤2]中,当(inptr+1) % QueueLen = outptr,表示队列满;当inptr =
outptr,表示队列为空;系统初始化时,将inptr和outptr设置为0 ; 所述步骤3]中,在系统初始化时,主机根据通信消息传输周期的要求,设置虚链 路计数器值,并使能计数器;计数器按周期产生发送允许信号; 所述步骤4]中,通信调度循环查询每个虚链路消息是否具备发送条件,每个时钟 周期查询一个虚链路;如果该虚链路消息不具备发送条件,则查询下一个虚链路;如果该 虚链路消息具备发送条件,则根据虚链路ID以及其消息队列的输出指针OutPtr,计算消息帧地址,根据消息地址读取消息长度,然后读取消息内容,组织成标准的以太网数据帧提交 MAC接口发送;同时调整虚链路对应消息队列的输出指针OutPtr,并复位对应的计数器,使 计数器重新开始计数。 上述步骤2]中,主机端写入数据帧的流程为 a.读取虚链路的队头和队尾指针的值,即读取InPtr和0utPtr ; b.判断队列是否满?如果队列满,则退出;否则,继续进入下一步; c.根据InPtr和虚链路ID计算数据帧地址; d.将数据帧写入到虚链路队列中; e.将InPtr加1写入到存储器对应的寄存器中。 f.退出; 调度控制器读取数据的流程为 a.读取虚链路的队头和队尾指针的值,即读取InPtr和OutPtr ; b.比较虚链路队头、队尾指针是否为空;为空则退出;否则,继续进入下一步; c.根据OutPtr和虚链路ID计算数据帧地址; d.从虚链路中读取数据帧; e.将OutPtr加1写入到存储器对应的寄存器中。
f.退出; 上述步骤4]中,在虚链路较多时进行分组,实现两级调度加快调度效率;先将虚 链路分成等分组,先进行组内调度,每个组内轮询选取组内需要发送的虚链路,然后进行组 间调度,选取最终需要发送的虚链路,根据虚链路消息内容长度,读取消息内容,通过物理 链路进行发送。 上述虚链路数目的范围为64到256。
本发明具有如下优点 1、故障隔离,通信可靠。将一条物理链路划分为多个逻辑上的虚链路,虚链路带宽
是按照应用要求进行分配。各应用任务只使用自己的虚链路带宽,各虚链路之间的通信相
互隔离,每个通信任务不会过量的使用通信带宽,保证了通信的可靠性。 2、延迟确定性。每个应用使用的虚链路的时间窗口,即计数器的计数周期是确定
的,保证了应用的延迟确定性。 3、分配效率高。带宽分配采用流量规整器和调度控制器等硬件电路实现,带宽的 分配调度效率高。


图1是实时以太网通信调度工作原理图;
图2是实时以太网通信调度器功能框图;
图3是流量规整器实现原理图。
具体实施例方式
本发明是在以太网物理链路基础上,增加了带宽分配和调度策略,将一条物理链 路划分为多个逻辑上的虚链路,虚链路带宽是可按照应用要求进行分配。调度器工作原理如图1所示。 网路节点上的应用使用虚链路进行通信,不同虚链路带宽之间是隔离的,从逻 辑上不同应用使用不同虚链路进行通信,从而保证了实时应用通信服务质量的要求。每 个应用的通信带宽Bi由通信应用的消息周期Tpi和消息最大长度Lmaxi决定,<formula>formula see original document page 6</formula>
所有的虚链路是共享物理链路的,在物理链路上,发送的周期Tsi与实际的消息 周期Tpi会有一定的偏差量,该偏差量为抖动Jitter。系统往往要求抖动在一定范围之内 (100us 500us),其中,最大JiUe产J历/物理带宽。 实时以太网通信调度器硬件电路采用虚链路计数器实现每个虚链路通信流量规 整,调度器负责从数据帧队列中选取数据帧发送到物理链路。由于不同的虚链路共享真实 物理链路,从物理链路上发送的数据流满足了通信任务周期要求,最大抖动在可允许范围 内。 参见图2 ,本方法通过下述步骤实现
1、双端口存储器区域划分 采用双端口存储器存放数据帧,按照系统需要实现虚链路个数n,将双端口存储器 划分为n个存储区域,每个虚链使用一个存储区域,在逻辑上构成环形缓冲区。每个消息帧 中第一个字存放消息长度,后面紧跟消息内容。发送主机负责将数据帧放入虚链路的环形 缓冲区,调度控制器负责从环形缓冲区读取数据帧组织发送。
2、虚链路队列控制 每个虚链路使用双端口存储器一个区域构成环形缓冲队列,每个虚链路需要建立
队列控制指针,包括输入指针inptr和输出指针outptr。主机管理输入指针,调度控制器
管理输出指针。当(inptr+l) % QueueLen = outptr表示队列满(QueueLen为队列长度),
不能放数据;当i即tr = outptr表示队列为空,不能取数据。系统初始化时,将inptr和
outptr设置为0 ;主机端写入数据帧的流程如下 a.读取虚链路的队头和队尾指针的值(InPtr和OutPtr); b.判断队列是否满?如果队列满,则退出; c.根据InPtr和虚链路ID计算数据帧地址; d.将数据帧写入到虚链路队列中; e.将InPtr加1写入到存储器对应的寄存器中。 f.返回。
3、流量规整 每个虚链路上的流量规整器中使用一个计数器来实现流量规整,计数器较佳的计 数周期设置为2nms(n为整数,nG
)。计数器支持设置、复位和使能,当计数到0时, 停止计数,并产生发送令牌信号,通知调度控制器处理。在系统初始化时,主机根据通信消 息传输周期的要求,设置虚链路计数器值,并使能计数器。计数器按周期产生令牌,每个虚 链路令牌信号作为虚链路数据帧发送的必备条件,从而实现了通信流量规整,保证了消息 传输的发送间隔确定,从而保证虚链路消息传输不会因为占用其它虚链路通信带宽。流量 规整工作原理如图3所示。
4、通信调度
每个虚链路有消息并且其对应的发送允许信号有效时,该虚链路对应的消息具备 发送条件。 通信调度循环查询每个虚链路消息是否具备发送条件,每个时钟周期查询一个 虚链路,如果该虚链路消息具备发送条件,则根据虚链路ID以及其消息队列的输出指针 OutPtr,计算消息帧地址。根据消息地址读取消息长度,然后读取消息内容,组织成标准的 以太网数据帧提交MAC接口 (即以太网物理接口)发送。同时调整虚链路对应消息队列的 输出指针OutPtr,并复位对应的计数器,使计数器重新开始计数。调度器每个周期查询一 个虚链路,虚链路较多会需要的时间较长,可在虚链路较多可进行分组,实现两级调度加快 调度效率,先将虚链路分成组(可随意等分),先进行组内调度,每个组内轮询选取组内需 要发送的虚链路,然后进行组间调度,选取最终需要发送的虚链路,根据虚链路消息内容长 度,读取消息内容,通过物理链路进行发送。例如,对于256个虚链路,等分16组,每组16 个虚链路;若采用一级调度需要256个时钟周期,但如果采用分组调度则仅需要32个时钟 周期。
权利要求
一种实时以太网通信调度方法,其特征在于,包含以下步骤1]双端口存储器区域划分根据系统需要实现虚链路的个数n,将双端口存储器划分为n个存储区域,使每个虚链路使用一个存储区域,在逻辑上构成环形缓冲区;2]虚链路队列控制每个虚链路建立队列控制指针,包括输入指针inptr和输出指针outptr,用于实现虚链路的队列管理;3]流量规整每个虚链路使用一个计数器实现流量规整,当计数到0时,停止计数,并产生发送令牌信号,通知调度控制处理;4]通信调度从多个虚链路选取具备发送条件的消息,通过物理链路发送。
2. 根据权利要求1所述的调度方法,其特征在于所述步骤1]中,每个消息帧中第一个字存放消息内容长度,后面紧跟消息内容;发送 主机负责将数据帧放入虚链路的环形缓冲区,通信调度控制器负责从环形缓冲区读取数据 帧组织发送;所述步骤2]中,主机管理输入指针,调度控制器管理输出指针。
3. 根据权利要求2所述的调度方法,其特征在于所述步骤2]中,当(inptr+1) % QueueLen = outptr,表示队列满;当inptr = outptr, 表示队列为空;系统初始化时,将inptr和outptr设置为0 ;所述步骤3]中,在系统初始化时,主机根据通信消息传输周期的要求,设置虚链路计 数器值,并使能计数器;计数器按周期产生发送允许信号;所述步骤4]中,通信调度循环查询每个虚链路消息是否具备发送条件,每个时钟周期 查询一个虚链路;如果该虚链路消息不具备发送条件,则查询下一个虚链路;如果该虚链 路消息具备发送条件,则根据虚链路ID以及其消息队列的输出指针OutPtr,计算消息帧地 址,根据消息地址读取消息长度,然后读取消息内容,组织成标准的以太网数据帧提交MAC 接口发送;同时调整虚链路对应消息队列的输出指针OutPtr,并复位对应的计数器,使计 数器重新开始计数。
4. 根据权利要求3所述的调度方法,其特征在于 所述步骤2]中,主机端写入数据帧的流程为a. 读取虚链路的队头和队尾指针的值,即读取InPtr和0utPtr ;b. 判断队列是否满?如果队列满,则退出;否则,继续进入下一步;c. 根据InPtr和虚链路ID计算数据帧地址;d. 将数据帧写入到虚链路队列中;e. 将InPtr加1写入到存储器对应的寄存器中。f. 退出;调度控制器读取数据的流程为a. 读取虚链路的队头和队尾指针的值,即读取InPtr和0utPtr ;b. 比较虚链路队头、队尾指针是否为空;为空则退出;否则,继续进入下一步;c. 根据0utPtr和虚链路ID计算数据帧地址;d. 从虚链路中读取数据帧;e. 将0utPtr加1写入到存储器对应的寄存器中;f. 退出。
5. 根据权利要求4所述的调度方法,其特征在于所述步骤4]中,在虚链路较多时进行分组,实现两级调度加快调度效率;先将虚链路 分成等分组,先进行组内调度,每个组内轮询选取组内需要发送的虚链路,然后进行组间调 度,选取最终需要发送的虚链路,根据虚链路消息内容长度,读取消息内容,通过物理链路 进行发送。
6. 根据权利要求5所述的调度方法,其特征在于所述虚链路数目的范围为64到256。
全文摘要
本发明涉及一种实时以太网通信调度方法,解决了现有以太网应用在实时控制领域中会导致通信的延迟不确定和链路通信不可靠的技术问题。包括双端口存储器区域划分、虚链路队列控制、流量规整以及通信调度。本发明能够隔离带宽,从而保证通信延迟确定性和可靠性。
文档编号H04L12/56GK101771598SQ200810236598
公开日2010年7月7日 申请日期2008年12月31日 优先权日2008年12月31日
发明者王红春, 陈长胜 申请人:中国航空工业第一集团公司第六三一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1