一种支持时间触发以太网的万兆网络控制器及控制方法与流程

文档序号:17245415发布日期:2019-03-30 08:47阅读:317来源:国知局
一种支持时间触发以太网的万兆网络控制器及控制方法与流程

本发明属于航空电子系统和武器装备系统主干网络总线通信技术领域,具体涉及一种基于时间触发架构的万兆速率以太网数据链路层控制方法。



背景技术:

随着航空航天电子信息系统的快速发展和武器装备信息化程度的不断提高,现有时间触发以太网(time-triggeredethernet,tte)系统千兆的传输带宽已无法适用于装备主干网海量数据实时传输。

一种基于fpga的千兆tte端系统控制器(中国专利cn106773928)采用符合ieee802.3协议规范的标准千兆以太网mac控制器与phy电路,其fpga电路设计中未包含对mac层的具体设计,mac层与phy层不支持万兆速率传输,不适合在大型高带宽网络中作为主干网使用。

由现有tte相关专利以及tte相关文献中可见,现有的tte系统都是基于标准千兆以太网实现,不支持万兆数据传输,并且未涉及mac控制器的具体设计,mac层中对协议控制帧(pcf)数据的处理过程对设计者是透明的,其处理过程中产生的延时,无法动态记录,在一定程度上影响时钟同步精度。



技术实现要素:

为了解决上述问题,本发明提供了一种支持时间触发以太网的万兆网络控制器及控制方法,能够达到时间触发以太网高速、高效、高准确性的应用需求。

为达到上述目的,本发明所述一种支持时间触发以太网的万兆网络控制器与自环控制模块连接的发送通道和接收通道,自环控制模块用于将发送通道的数据流传输到接收通道,发送通道用于将pcf帧、tt帧以及et帧按照协议要求的标准帧格式对数据组帧并发送;接收通道用于将从物理层接收到的数据帧与时钟同步后,进行帧解析,再根据帧解析的结果,将数据帧分类存入缓存供给接收接口;

其中:

发送通道包括依次连接的发送接口模块、帧发送缓存模块、发送调度模块、发送引擎模块和发送rs控制模块,发送rs控制模块和自环控制模块连接,帧发送缓存模块还与pcf透明时钟更新模块一端连接,pcf透明时钟更新模块另一端与发送引擎模块连接,发送引擎模块与dic算法控制模块连接,发送rs控制模块和dic算法控制模块双向连接;

接收通道包括依次连接的接收rs控制模块、接收引擎模块、帧接收缓存模块、接收调度模块和接收接口模块。

进一步的,发送引擎模块用于按照标准以太网协议完成数据的校验并更新帧的crc校验域;发送引擎模块包括帧发送控制模块,帧发送控制模块的输出端同时与crc32码生成模块和第一同步模块的输入端连接,crc32码生成模块以及第一同步模块的输出端与帧封装模块,帧发送控制模块的输入端连接有流量控制模块,流量控制模块的输入端与帧接收缓存模块连接,输出端与帧发送控制模块连接。

进一步的,流量控制模块用于使用pause帧对全双工网络流量进行控制,包括发送流控和接收流控两个部分,当消息阻塞时控制帧发送控制模块发送pause帧,正常时发送数数据帧。

进一步的,还包括管理模块,管理模块用于实现mac控制器内部控制状态寄存器资源设置和访问、对物理层寄存器的操作以及通过手动操作控制帧发送控制模块。

进一步的,接收引擎模块用于按照标准以太网协议完成帧的接收过程;接收引擎模块包括crc32校验模块、第二同步模块、地址过滤模块和帧解析模块,帧解析模块和地址过滤模块双向连接,帧解析模块的输出端与crc32校验模块和第二同步模块的输入端连接。

一种支持时间触发以太网的万兆网络控制器及控制方法,其特征在于,包括:

数据发送:控制器接收上层用户需要发送的数据;帧发送缓存模块根据发送接口模块中的数据类型信息将发送接口模块中的数据存入对应的缓冲区中,当pcf缓冲区中存入数据时,则令pcf透明时钟更新模块开始工作;发送调度模块根据帧发送缓存模块中各个类型缓冲区中的数据对应的控制信息完成发送数据调度;帧发送控制模块根据流量控制模块输出的使能信号判断当前发送数据帧或pause帧;crc32码生成模块计算帧有效数据的crc32校验码;第一同步模块等待crc32码生成模块计算完成后将数据传递至帧封装模块;帧封装模块添加帧头和帧尾完成帧的封装,dic算法控制模块计算出帧尾需添加的空闲字符个数;发送rs控制模块完成帧间隔控制和帧对齐,使数据满足xgmii发送接口要求,并发送至xgmii接口,同时响应链路错误序列;自环控制模块根据寄存器控制信号将发送rs控制模块发送的数据发送至层或;

数据接收:自环控制模块根据寄存器控制信号选择接收由或发送rs控制模块处理的数据;接收rs控制模块将接收的数据按照协议要求对齐;帧解析模块提取出帧有效部分;地址过滤模块完成mac地址过滤;正确匹配地址的数据由crc32校验模块进行crc32校验计算;由第二同步模块控制数据等待crc32校验模块校验结果;检验合格的数据根据类型域信息存入帧接收缓存模块中对应类型的缓冲区中;接收调度模块根据帧接收缓存模块各类型中存放的数据以及控制信息进行接收调度,将满足条件的数据帧送至接收接口模块。

进一步的,dic算法控制模块采用基于dic算法的空闲字符插入方法进行计算,具体包括以下步骤:

首先,根据输入信号得出帧尾最后一个有效数据所在通道数n以及dic变量当前值;然后计算出当前帧结束后需要添加的空闲字符个数m,并生成控制信号,空闲字符个数m的计算公式如下:

当n=7时,m=(7-n)+12;

当n≠7时,

若dic变量当前值≤0,则:m=(7-n)+4,(n=0,1,2),m=(7-n)+8,(n=3,4,5,6);

dic变量当前值>0,则:m=(7-n)+8(n=0,1,2,3),m=(7-n)+12(n=4,5,6)。

进一步的,当处理数据为pcf帧时,帧封装模块还需根据pcf透明时钟更新模块中的透明时钟信息完成透明时钟域的更新。

进一步的,帧发送控制模块在发送数据帧时检查帧有效数据长度是否满足协议要求,对不满足的进行空闲字符填充。

与现有技术相比,本发明至少具有以下有益的技术效果:

现有时间触发以太网时钟工作频率为125mhz,8bits数据位宽,传输速率为1gbps。本设计中各个功能模块均采用64bits位宽并行数据处理,支持8数据通道64bits数据位宽的xgmii接口,工作时钟频率为156.25mhz,可将时间触发以太网的传输速率提升至10gbps

采用基于dic算法的空闲字符插入方法来控制帧间隔,相比于直接插入空闲字符的方法可将平均帧间隔减少22.58%。

mac控制器支持pcf的帧封装、pcf的透明时钟的更新及多优先级数据调度,可使得基于本发明设计的tte端系统或交换机能够进一步保证网络时钟同步精度和数据发送的时间确定性。

附图说明

图1为控制器结构框图;

附图中:1-发送接口模块、2-帧发送缓存模块、3-发送调度模块、4-pcf透明时钟更新模块、5-帧发送控制模块、6-crc32码生成模块、7-同步模块、8-帧封装模块、9-发送rs控制模块、10-自环控制模块、11-流量控制模块、12-dic算法控制模块、13-接收接口模块、14-接收调度模块、15-帧接收缓存模块、16-crc32校验模块、17-同步模块、18-帧解析模块、19-地址过滤模块、20-接收rs控制模块、21-管理模块、22-ati用户发送接口、23-xgmii发送接口、24-流控接口、25-ari用户接收接口、26-xgmii接收接口、27-mci管理控制接口、28-mdio接口、30-发送引擎模块、31-接收引擎模块。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

本发明的技术解决方案是一种支持时间触发以太网的万兆网络控制方法,用于设计一款万兆时间触发以太网mac控制器,便于构建万兆时间触发以太网端系统或交换机设备。

本发明符合ieee802.3-2012标准协议规范;支持8数据通道的64bits数据位宽的xgmii接口;接口工作时钟频率为156.25mhz;支持全双工数据通信;支持最大数据包是1518字节;支持基于dic算法插入空闲字符控制帧间隔的方法;支持pcf的帧封装及pcf的透明时钟更新;支持多优先级数据发送调度;支持crc32校验及错误管理;支持xgmii接口的内部自环;支持流量控制功能;支持标准mdiophy管理接口功能。

参照图1,一种支持时间触发以太网的万兆网络控制器主要由21个模块组成,具体包括:发送接口模块1、帧发送缓存模块2、发送调度模块3、帧发送控制模块5、pcf透明时钟更新模块4、crc32码生成模块6、第一同步模块7、dic算法控制模块12、帧封装模块8、发送rs控制模块9、自环控制模块10、接收接口模块13、接收调度模块14、帧接收缓存模块15、crc32校验模块16、第二同步模块17、地址过滤模块19、帧解析模块18、接收rs控制模块20、流量控制模块11和管理模块21。

其中,发送接口模块1、帧发送缓存模块2、发送调度模块3、帧发送控制模块5、pcf透明时钟更新模块4、crc32码生成模块6、第一同步模块7、dic算法控制模块12、帧封装模块8以及发送rs控制模块9构成控制器的发送通道,其主要作用为按照要求将pcf帧、tt帧以及et帧按照协议要求的标准帧格式对数据进行组帧并发送。

发送接口模块1用于接收上层用户数据,提取出帧内容。帧发送缓存模块2用于分别缓存待发送的pcf帧、tt帧以及et帧。发送调度模块3用于按照规定好的数据优先级,tt,pcf,et由高到低,对帧数据调度管理。帧发送控制模块5用于根据流量控制模块11和管理模块21的控制,确定发送pasue帧还是数据帧,发送数据帧时对帧长不满足的帧进行pad字符填充。crc32码生成模块6用于计算待发送数据的crc32校验码。第一同步模块7用于接收帧发送控制模块5发送的数据并等待crc32校验码的计算,当crc32校验码计算完成后,将接收到的数据发送至帧封装模块8。帧封装模块8用于按照帧格式要求添加帧头和帧尾完成帧的封装。dic算法控制模块12用于根据帧封装模块8和发送rs控制模块9输入的数据结束状态信号计算出当前应在帧尾添加的idle字符个数。pcf透明时钟更新模块4用于记录pcf在mac中处理过程所用的时间,并将该值累加到pcf帧的透明时钟域。发送rs控制模块9用于完成帧开始位对齐并发送至xgmii接口,同时响应链路错误序列。

接收接口模块13、接收调度模块14、帧接收缓存模块15、crc32校验模块16、第二同步模块17、地址过滤模块19、帧解析模块18和接收rs控制模块20构成控制器的接收通道,其主要作用是将从物理层接收到的数据帧与时钟进行同步后,进行帧解析,再根据帧解析的结果,将数据帧分类存入缓存供给接收接口。

接收接口模块13用于将帧数据和状态信息提交给用户逻辑。接收调度模块14用于在接收缓存的三个缓存区中同时有数时,按照优先级从中读出数据,其中pcf帧数据直接提交至上层。帧接收缓存模块15用于分类缓存pcf帧、tt帧和et帧数据。crc32校验模块16用于计算接收帧数据的crc32校验码。第二同步模块17用于配合crc32校验模块等待接收数据的校验结果。地址过滤模块19用于完成目标mac地址的检测并过滤,mac地址分为单播地址、多播地址和广播地址。帧解析模块18和接收rs控制模块20用于接收10发送的xgmii数据,帧解析模块18用于解析自环控制模块10发送的xgmii数据;接收rs控制模块20先对其用于接收10发送的xgmii数据,并完成帧对齐以及检测链路故障状态。

流量控制模块11用于使用pause帧对全双工网络流量实现控制,包括发送流控和接收流控两个部分。自动检测,当消息阻塞时发送pause帧,正常的话发送数数据帧

自环控制模块10用于将发送通道的数据流通过异步fifo传输到接收通道,自环控制模块10内部包括异步fifo和fifo的读写控制模块,可实现数据帧收发的内部自环。

管理模块21用于实现mac控制器内部控制状态寄存器资源设置和访问、对物理层寄存器的操作以及通过手动操作控制帧发送控制模块5。

控制器的工作过程如下:

控制器通过ati用户发送接口22接收上层用户需要发送的数据;帧发送缓存模块2中包含pcf、tt、et三个类型的发送缓冲区,根据发送接口模块1中的数据类型信息将发送接口模块1中的数据存入对应的缓冲区中,当pcf缓冲区中存入数据,则令pcf透明时钟更新模块4开始工作;发送调度模块3根据帧发送缓存模块2中各个类型缓冲区中的数据对应的控制信息完成发送数据调度;发送引擎模块30按照标准以太网协议完成数据的校验并更新帧的crc校验域;发送引擎模块30包括帧发送控制模块5、crc32码生成模块6、第一同步模块7和帧封装模块8,其中帧发送控制模块5根据流量控制模块11输出的使能信号判断当前发送数据帧或pause帧,在发送数据帧时检查帧有效数据长度是否满足协议要求对不满足的进行空闲字符填充;crc32码生成模块6计算帧有效数据的crc32校验码;第一同步模块7将数据等待6计算完成;特别当处理数据为pcf帧时,帧封装模块8还需根据pcf透明时钟更新模块4中的透明时钟信息完成透明时钟域的更新;帧封装模块8按照帧格式要求添加帧头和帧尾完成帧的封装,dic算法控制模块12根据封装模块8以及发送rs控制模块9中的dic算法相关的控制信号计算出帧尾需添加的空闲字符个数;发送rs控制模块9完成帧间隔控制和帧对齐,使数据满足xgmii发送接口要求,并发送至xgmii接口,同时响应链路错误序列;自环控制模块10根据寄存器控制信号将发送rs控制模块9发送的数据通过xgmii发送接口23发送至phy层或发送至20。

控制器通过xgmii接收接口26接收phy层发送来的数据,自环控制模块10根据寄存器控制信号选择接收由phy层发送的数据26或发送rs控制模块9处理的数据;接收rs控制模块20将接收的数据按照协议要求严格对齐;接收引擎模块31按照标准以太网协议完成帧的接收过程;接收引擎模块31包括crc32校验模块16、第二同步模块17、地址过滤模块19和帧解析模块18,帧解析模块18提取出帧有效部分;地址过滤模块19完成mac地址过滤;正确匹配地址的数据由crc32校验模块16进行crc32校验计算;由第二同步模块17控制数据等待crc32校验模块16校验结果;检验合格的数据根据类型域信息存入帧接收缓存模块15中对应类型的缓冲区中;接收调度模块14根据帧接收缓存模块15各类型中存放的数据以及控制信息进行接收调度,将满足条件的数据帧送至接收接口模块13;控制器通过ari用户接收接口25将数据递交给上层用户。

其中,dic算法规则如下:

用dic变量记录相比于标准12字节空闲字符,当前已经累计添加或减少的空闲字符个数,若累计增加一字节,则空闲字符变量值-1,反之加1;规定最多增加3个或减少3个,对应dic变量值为-3到3。即此时插入空闲字符个数范围是9-15个。

具体计算过程如下:

首先,根据输入信号得出:1.帧尾最后一个有效数据所在通道数n,2.dic变量当前值。然后,计算出当前帧结束后需要添加的空闲字符个数m,并生成控制信号,计算空闲字符个数m时的具体公式如下:

当n=7时,m=(7-n)+12;

当n≠7时,首先判断dic变量当前值与0的关系,

若dic变量当前值≤0,则:m=(7-n)+4,(n=0,1,2),m=(7-n)+8,(n=3,4,5,6);

dic变量当前值>0,则:m=(7-n)+8(n=0,1,2,3),m=(7-n)+12(n=4,5,6)。

流量控制模块11根据帧接收缓存模块15的状态,判断是否需要发送pause帧,需要发送则产生使能信号控制帧发送控制模块5实现pause帧的发送,流量控制模块11也可通过流控接口24用上层用户控制。

管理模块21通过mci管理控制接口27实现上层用于与控制寄存器的访问,通过mdio接口28实现对物理层层寄存器的访问。

根据上述方案,用veriloghdl语言对控制器的逻辑设计进行描述,并完成逻辑综合与布局布线;同时将控制器设计映射到可编程逻辑器件中实现,并对控制器的功能进行测试。测试结果表明本发明具有很好的可实施性,且性能满足预期。本发明支持全双工数据通信;支持最大数据包是1518字节;支持crc32校验及错误管理;支持xgmii接口的内部自环;支持流量控制功能;支持标准mdiophy管理接口功能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1