CN101771598A - 一种实时以太网通信调度方法 - Google Patents
一种实时以太网通信调度方法 Download PDFInfo
- Publication number
- CN101771598A CN101771598A CN200810236598A CN200810236598A CN101771598A CN 101771598 A CN101771598 A CN 101771598A CN 200810236598 A CN200810236598 A CN 200810236598A CN 200810236598 A CN200810236598 A CN 200810236598A CN 101771598 A CN101771598 A CN 101771598A
- Authority
- CN
- China
- Prior art keywords
- virtual link
- message
- virtual
- outptr
- queue
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种实时以太网通信调度方法,解决了现有以太网应用在实时控制领域中会导致通信的延迟不确定和链路通信不可靠的技术问题。包括双端口存储器区域划分、虚链路队列控制、流量规整以及通信调度。本发明能够隔离带宽,从而保证通信延迟确定性和可靠性。
Description
技术领域
本发明涉及一种实时以太网通信调度方法。
背景技术
由于以太网技术具有低成本、通用性等特点,目前已逐步应用到一些实时控制领域,以取代原有的专用网络。
实时控制领域的数据通信量一般不大,大部分都是控制命令和参数,但其更强调通信延迟的确定性和传输可靠性。以太网数据链路采用尽可能多的传输机制,保证了通信带宽的最大利用率,但网络节点上的多个应用共享一条物理链路时,由于应用之间没有通信带宽隔离机制,通信任务之间会相互影响,可能由于某个应用大量地发送数据,其它的应用不能或不及时地发送数据,导致应用任务通信的延迟不确定和链路通信不可靠。
发明内容
本发明的目的为提供一种带宽分配策略,将一条物理链路划成多条逻辑上的数据通路即虚链路,从而保证通信延迟确定性和可靠性的实时以太网通信调度方法,其解决了现有以太网应用在实时控制领域中导致通信延迟的不确定和链路通信不可靠的技术问题。
本发明的技术解决方案为:
一种实时以太网通信调度方法,其特殊之处是,包含以下步骤:
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和OutPtr;
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决定,Bi=Tpi×Lmaxi。
实时以太网通信调度器硬件电路采用虚链路计数器实现每个虚链路通信流量规整,调度器负责从数据帧队列中选取数据帧发送到物理链路。由于不同的虚链路共享真实物理链路,从物理链路上发送的数据流满足了通信任务周期要求,最大抖动在可允许范围内。
参见图2,本方法通过下述步骤实现:
1、双端口存储器区域划分:
采用双端口存储器存放数据帧,按照系统需要实现虚链路个数n,将双端口存储器划分为n个存储区域,每个虚链使用一个存储区域,在逻辑上构成环形缓冲区。每个消息帧中第一个字存放消息长度,后面紧跟消息内容。发送主机负责将数据帧放入虚链路的环形缓冲区,调度控制器负责从环形缓冲区读取数据帧组织发送。
2、虚链路队列控制:
每个虚链路使用双端口存储器一个区域构成环形缓冲队列,每个虚链路需要建立队列控制指针,包括输入指针inptr和输出指针outptr。主机管理输入指针,调度控制器管理输出指针。当(inptr+1)%QueueLen=outptr表示队列满(QueueLen为队列长度),不能放数据;当inptr=outptr表示队列为空,不能取数据。系统初始化时,将inptr和outptr设置为0;主机端写入数据帧的流程如下:
a.读取虚链路的队头和队尾指针的值(InPtr和OutPtr);
b.判断队列是否满?如果队列满,则退出;
c.根据InPtr和虚链路ID计算数据帧地址;
d.将数据帧写入到虚链路队列中;
e.将InPtr加1写入到存储器对应的寄存器中。
f.返回。
3、流量规整:
每个虚链路上的流量规整器中使用一个计数器来实现流量规整,计数器较佳的计数周期设置为2nms(n为整数,n∈[0~7])。计数器支持设置、复位和使能,当计数到0时,停止计数,并产生发送令牌信号,通知调度控制器处理。在系统初始化时,主机根据通信消息传输周期的要求,设置虚链路计数器值,并使能计数器。计数器按周期产生令牌,每个虚链路令牌信号作为虚链路数据帧发送的必备条件,从而实现了通信流量规整,保证了消息传输的发送间隔确定,从而保证虚链路消息传输不会因为占用其它虚链路通信带宽。流量规整工作原理如图3所示。
4、通信调度:
每个虚链路有消息并且其对应的发送允许信号有效时,该虚链路对应的消息具备发送条件。
通信调度循环查询每个虚链路消息是否具备发送条件,每个时钟周期查询一个虚链路,如果该虚链路消息具备发送条件,则根据虚链路ID以及其消息队列的输出指针OutPtr,计算消息帧地址。根据消息地址读取消息长度,然后读取消息内容,组织成标准的以太网数据帧提交MAC接口(即以太网物理接口)发送。同时调整虚链路对应消息队列的输出指针OutPtr,并复位对应的计数器,使计数器重新开始计数。调度器每个周期查询一个虚链路,虚链路较多会需要的时间较长,可在虚链路较多可进行分组,实现两级调度加快调度效率,先将虚链路分成组(可随意等分),先进行组内调度,每个组内轮询选取组内需要发送的虚链路,然后进行组间调度,选取最终需要发送的虚链路,根据虚链路消息内容长度,读取消息内容,通过物理链路进行发送。例如,对于256个虚链路,等分16组,每组16个虚链路;若采用一级调度需要256个时钟周期,但如果采用分组调度则仅需要32个时钟周期。
Claims (6)
1.一种实时以太网通信调度方法,其特征在于,包含以下步骤:
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和OutPtr;
b.判断队列是否满?如果队列满,则退出;否则,继续进入下一步;
c.根据InPtr和虚链路ID计算数据帧地址;
d.将数据帧写入到虚链路队列中;
e.将InPtr加1写入到存储器对应的寄存器中。
f.退出;
调度控制器读取数据的流程为:
a.读取虚链路的队头和队尾指针的值,即读取InPtr和OutPtr;
b.比较虚链路队头、队尾指针是否为空;为空则退出;否则,继续进入下一步;
c.根据OutPtr和虚链路ID计算数据帧地址;
d.从虚链路中读取数据帧;
e.将OutPtr加1写入到存储器对应的寄存器中;
f.退出。
5.根据权利要求4所述的调度方法,其特征在于:
所述步骤4]中,在虚链路较多时进行分组,实现两级调度加快调度效率;先将虚链路分成等分组,先进行组内调度,每个组内轮询选取组内需要发送的虚链路,然后进行组间调度,选取最终需要发送的虚链路,根据虚链路消息内容长度,读取消息内容,通过物理链路进行发送。
6.根据权利要求5所述的调度方法,其特征在于:
所述虚链路数目的范围为64到256。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102365989A CN101771598B (zh) | 2008-12-31 | 2008-12-31 | 一种实时以太网通信调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102365989A CN101771598B (zh) | 2008-12-31 | 2008-12-31 | 一种实时以太网通信调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101771598A true CN101771598A (zh) | 2010-07-07 |
CN101771598B CN101771598B (zh) | 2012-01-11 |
Family
ID=42504212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102365989A Active CN101771598B (zh) | 2008-12-31 | 2008-12-31 | 一种实时以太网通信调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101771598B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685065A (zh) * | 2013-12-24 | 2014-03-26 | 中国航空工业集团公司第六三一研究所 | 一种基于时间的通信调度方法 |
CN103684946A (zh) * | 2013-11-26 | 2014-03-26 | 中国电子科技集团公司第三十二研究所 | Afdx端系统调度方法及系统 |
CN104486144A (zh) * | 2014-12-03 | 2015-04-01 | 中国航空工业集团公司第六三一研究所 | 一种afdx网络数字化端系统确定性仿真方法 |
CN104714832A (zh) * | 2013-12-14 | 2015-06-17 | 中国航空工业集团公司第六三一研究所 | 一种用于机载数据网络异步数据交互区的缓冲管理方法 |
CN103095607B (zh) * | 2013-02-21 | 2015-07-29 | 南京磐能电力科技股份有限公司 | 一种实时优先级以太网控制器实现方法 |
CN105530196A (zh) * | 2015-12-12 | 2016-04-27 | 中国航空工业集团公司西安航空计算技术研究所 | 一种afdx终端系统基于子虚链路的调度方法 |
CN108664233A (zh) * | 2018-03-29 | 2018-10-16 | 百度在线网络技术(北京)有限公司 | 无人驾驶车辆中的数据处理方法、装置、系统及存储介质 |
CN110177195A (zh) * | 2013-01-15 | 2019-08-27 | 威智伦公司 | 具有双通信端口的安全摄像机 |
CN114039935A (zh) * | 2021-11-09 | 2022-02-11 | 天津大学 | 基于分布式实时总线配置的消息调度系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1146192C (zh) * | 2002-04-17 | 2004-04-14 | 华为技术有限公司 | 以太网交换芯片输出队列管理调度方法和装置 |
CN101039310B (zh) * | 2006-03-16 | 2010-08-25 | 联想(北京)有限公司 | 链路共享服务装置以及通信方法 |
-
2008
- 2008-12-31 CN CN2008102365989A patent/CN101771598B/zh active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110177195A (zh) * | 2013-01-15 | 2019-08-27 | 威智伦公司 | 具有双通信端口的安全摄像机 |
CN103095607B (zh) * | 2013-02-21 | 2015-07-29 | 南京磐能电力科技股份有限公司 | 一种实时优先级以太网控制器实现方法 |
CN103684946A (zh) * | 2013-11-26 | 2014-03-26 | 中国电子科技集团公司第三十二研究所 | Afdx端系统调度方法及系统 |
CN104714832A (zh) * | 2013-12-14 | 2015-06-17 | 中国航空工业集团公司第六三一研究所 | 一种用于机载数据网络异步数据交互区的缓冲管理方法 |
CN103685065B (zh) * | 2013-12-24 | 2017-05-17 | 中国航空工业集团公司第六三一研究所 | 一种基于时间的通信调度方法 |
CN103685065A (zh) * | 2013-12-24 | 2014-03-26 | 中国航空工业集团公司第六三一研究所 | 一种基于时间的通信调度方法 |
CN104486144B (zh) * | 2014-12-03 | 2018-03-30 | 中国航空工业集团公司第六三一研究所 | 一种afdx网络数字化端系统确定性仿真方法 |
CN104486144A (zh) * | 2014-12-03 | 2015-04-01 | 中国航空工业集团公司第六三一研究所 | 一种afdx网络数字化端系统确定性仿真方法 |
CN105530196A (zh) * | 2015-12-12 | 2016-04-27 | 中国航空工业集团公司西安航空计算技术研究所 | 一种afdx终端系统基于子虚链路的调度方法 |
CN105530196B (zh) * | 2015-12-12 | 2018-09-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种afdx终端系统基于子虚链路的调度方法 |
CN108664233A (zh) * | 2018-03-29 | 2018-10-16 | 百度在线网络技术(北京)有限公司 | 无人驾驶车辆中的数据处理方法、装置、系统及存储介质 |
CN114039935A (zh) * | 2021-11-09 | 2022-02-11 | 天津大学 | 基于分布式实时总线配置的消息调度系统及方法 |
CN114039935B (zh) * | 2021-11-09 | 2023-11-21 | 天津大学 | 基于分布式实时总线配置的消息调度系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101771598B (zh) | 2012-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101771598B (zh) | 一种实时以太网通信调度方法 | |
CN102143056B (zh) | 封装体 | |
CN113728595A (zh) | 促进通过网络接口控制器(nic)进行高效主机存储器访问的系统和方法 | |
CN102185750B (zh) | 封装体 | |
CN105024942B (zh) | 一种动态流量监控方法 | |
CN102122652B (zh) | 用在封装体中的管芯、封装体以及用在封装体中的方法 | |
CN102130100B (zh) | 封装体、用在封装体中的方法和用在封装体中的管芯 | |
CN105075202A (zh) | 用于队列控制的分组的重标记 | |
CN101247275B (zh) | 一种中断上报方法和网络设备 | |
JP5205956B2 (ja) | メモリ制御装置 | |
CN101795266A (zh) | 航电asm协议控制器 | |
CN101635682B (zh) | 一种存储管理的方法和系统 | |
KR20070114714A (ko) | 통신 시스템의 통신 링크를 통해 메시지에 데이터를전송하기 위한 전송 방법, 통신 모듈, 통신 시스템의서브스크라이버 및 상기 전송 방법을 구현하기 위한 통신시스템 | |
CN108702370A (zh) | 用于网络技术的多流交织 | |
CN103914341A (zh) | 数据队列出队管控方法和装置 | |
CN105794161A (zh) | 用于飞行器的数据通信网络 | |
CN107800644A (zh) | 一种可动态配置的流水化令牌桶限速方法与装置 | |
EP4395277A1 (en) | Flashing method, apparatus and system for electronic control unit, and device and storage medium | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
CN103581050B (zh) | 一种以太网数据汇聚方法 | |
CN102130099B (zh) | 封装体以及用在封装体中的方法和管芯 | |
CN108429707B (zh) | 一种适应不同传输速率的时间触发业务转发器及方法 | |
CN108462653B (zh) | 基于tte的协议控制帧快速发送方法 | |
US7814182B2 (en) | Ethernet virtualization using automatic self-configuration of logic | |
CN110169017A (zh) | 控制装置以及通信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |