基于以太网控制器的网络端口扩展方法技术

技术编号:14646229 阅读:102 留言:0更新日期:2017-02-16 02:58
本发明专利技术公开了一种基于以太网控制器的网络端口扩展方法,包括多路以太网物理层和网络扩展模块,所述网络扩展模块从主机端口接收数据报文,并将该报文并行施加到各个转发逻辑,利用源MAC地址选择转发目标端口,使能选中的端口信号TX_EN实现数据转发,而各个扩展网口的接收逻辑通过接收DMA缓冲接收报文,通过与接收DMA相关联的主端口发送逻辑在报文数据段后添加网络端口号并转发至主机,最后由主机网络接收驱动程序实现物理端口和协议栈中逻辑设备的绑定。本发明专利技术做提供的一种基于以太网控制器的网络端口扩展方法,实现了经MCU的原有网络端口扩展多个独立端口,对原有的网络驱动程序仅需简单升级,占用硬件资源开销非常小,简单易实现。

【技术实现步骤摘要】

本专利技术涉及一种基于以太网控制器的网络端口扩展方法,属于以太网通信

技术介绍
由于Ethernet应用的广泛性和技术的先进性,在工业应用中也具有传统现场总线所无法比拟的优越性,正在逐步取代传统的现场总线技术,使其成为当今工业控制首选网络。随着应用复杂性增加,对智能电子设备网络端口的数量也在增加,且往往需要各端口在链路层完全独立。然而就目前主流嵌入式MCU来说,片上的MAC控制器不超过3个,其具有3个或3个以上独立网口的处理器非常少。此外,嵌入式MCU都会为集成的MAC控制器提供专门DMA服务,以改善网络吞吐率,且各厂商都会提供相应的网络驱动程序。因此,网络扩展成为嵌入式应用的必然趋势,而基于MCU原有网络端口扩展网口,无论就硬件环境还是软件环境都具有明显的优势。目前,网络端口扩展主要有以下两种方法:(1)基于系统总线扩展独立的网络控制器,系统设计者需根据不同的网络控制器的要求修改网络驱动程序实现网络扩展;(2)基于网络交换芯片的网络端口扩展,通常将交换芯片的一个端口接入处理器系统的网络接口,然后由交换芯片实现物理端口扩展。上述两种方案在一定程度上实现的网络端口扩展,但应用场所不同,适用范围窄,存在不同的缺陷,具体如下,(1)要求系统总线的数据吞吐性能好或者具备类似PCI或PCI-E高速端口,布线难度高,驱动程序修改比较大;(2)虽然通过网络端口扩展网络端口,但扩展出来的端口在链路层不独立,虽然对高层应用透明,却不满足要求具备独立MAC地址的应用场所。
技术实现思路
本专利技术所要解决的技术问题是克服现有技术的缺陷,提供一种基于以太网控制器的网络端口扩展方法,利用FPGA实现经MCU的原有网络端口扩展多个独立端口,对原有的网络驱动程序仅需简单升级,占用硬件资源开销非常小,简单易实现。为解决上述技术问题,本专利技术提供一种基于以太网控制器的网络端口扩展方法,包括硬件电路实现方法和驱动软件实现方法,其实现步骤如下:步骤1,构建包括多路以太网物理层、网络扩展模块的硬件电路,所述网络扩展模块包括主端口接收逻辑、主端口发送逻辑、多路发送逻辑、单网口的接收逻辑、多路接收DMA等;步骤2,由所述主端口接收逻辑将来自主机MAC的网络报文进行延迟缓冲同时解析报文中源MAC地址,并选择本地MAC地址和报文源MAC地址一致的扩展网络端口作为该数据报文的目标发送端口;步骤3,由所述多路发送逻辑将延迟缓冲后的数据报文并行施加在各扩展网络端口,并根据步骤2选择结果置位相应扩展网络端口的发送使能信号TX_EN,实现报文从选中的端口发送;步骤4,由各扩展网络端口的接收逻辑接收并缓冲本端口的数据报文同时标记端口序号,然后请求多路接收DMA服务;步骤5,多路接收DMA按轮转调度策略依次查询各扩展网络端口的接收逻辑,并将接收逻辑模块接收到的报文连同其源端口序号一并传送给主端口发送逻辑;步骤6,主端口发送逻辑将接收DMA的数据转换成以太网物理层的数据格式,同时将报文的源端口序号插入在报文的最后一个字节后发送该报文到主机;步骤7,在主机侧系统软件中虚拟多个独立的逻辑网络设备,并使这些逻辑网络设备的本地MAC地址和扩展网络端口中配置的本地MAC地址一致,协议栈高层发往逻辑网络设备的数据报由发送驱动程序映射到主机侧用来网络扩展的MAC控制器;步骤8,将位于主机侧的MAC控制器配置成混杂模式,重设MAC的最大接收帧长,使其比原有方式增加一个字节,以容纳报文中扩展端口序号;步骤9,主机侧的网口接收驱动程序按常规方法读取来自端口的网络数据,并提取帧校验码前的一个字节作为报文源端口序号,并根据此序号将接收报文提交到步骤7所述对应逻辑网络设备,完成逻辑网络设备的数据接收。本专利技术发送报文的目标扩展网络端口选择由网络扩展模块中的多路发送逻辑完成,协议栈输出报文与常规报文一致;而来自扩展网络端口的接收报文则由网络扩展模块进行源端口标记,通过驱动软件实现方法完成目标逻辑网络设备的选择,最终完成逻辑网络设备和对应扩展端口的绑定,整个实现对协议栈高层透明。当使用支持单时钟模式的以太网物理层接口器件时,多路发送逻辑的数据输出端可直接连接到以太网物理层接口器件;当选用的以太网物理层器件不支持单时钟模式时,采用经过双时钟FIFO连接多路发送逻辑和物以太网物理层接口器件,实现跨时钟域转换。主机报文发送采用源MAC地址路由策略,由扩展模块中的多路发送逻辑按步骤2选择与主机报文源MAC地址一致的第一个扩展网络端口作为该报文的目标转发端口。主端口接收逻辑和多路发送逻辑并不缓冲全部报文,仅对接收报文做适当延迟,在解析出报文中源MAC并完成目标端口选择后即行启动转发,多路发送逻辑仅产生一组发送数据流,根据步骤2的目标扩展网络端口选择结果置位相应的网络发送使能信号TX_EN,以此实现数据选择性发送并保证广播发送延迟一致。各扩展网络端口的接收DMA将接收的数据报文标记上各自源端口序号,由主端口发送逻辑将源端口序号插入到报文数据段的最后一个字节,而主机侧MAC控制器则配置成混杂模式,接收所有报文,而接收驱动程序根据数据报文的最后一字节确定报文的源扩展端口序号,并根据此序号将报文提交给相应的逻辑设备。本专利技术步骤7中主机侧系统软件虚拟多个独立的逻辑网络设备的具体方法为,主机侧软件按扩展网络端口的数量创建同等数量的逻辑网络设备,二者编号顺序一致,同时以扩展端口序号为索引建立查找表,以便通过扩展网络端口序号能够找到对应的逻辑网络设备。本专利技术所达到的有益效果在于:本专利技术所述的经以太网控制器扩展网口的实现方法,通过一路以太网控制器扩展出多个独立的网络控制器,各控制器具有独立的MAC地址,和以往网络交换芯片相比采用源地址路由选择方法和直通延迟转发模式。本专利技术具有简单易实现,网络驱动程序改动非常小,可方便模拟多个独立网络控制器,具有以下特点,1)系统对网络协议透明,占用硬件资源开销非常小,简单易实现;3)网络发送采用多路同时驱动和直通延迟转发模式,广播发送延迟小;4)网络转发路径选择基于源地址模式;5)扩展端口数据接收和转发包含源端口标记;6)各扩展端口之间没有数据通路,在链路层完全独立;7)各扩展端口拥有独立的MAC地址,具备独立的MAC控制器的特征。因此,本专利技术提供的一种基于以太网控制器的网络端口扩展方法,利用FPGA实现经MCU的原有网络端口扩展多个独立端口,对原有的网络驱动程序仅需简单升级,占用硬件资源开销非常小,简单易实现,具有良好的应用前景。附图说明图1是本专利技术实施例一的硬件框图;图2是本专利技术实施例二的硬件框图;图3是本专利技术实施例二双时钟FIFO连接网络物理层的示意图。图4是本专利技术逻辑网口和扩展网口端到端连接示意图。具体实施方式下面结合附图对本专利技术作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。本专利技术基于以太网控制器的网络端口扩展方法,通过多路以太网物理层和网络扩展模块等硬件电路构成,所述网络扩展模块从主机端口(源端口)接收数据报文,根据报文中的源MAC地址选择转发目标端口,待转发的报文并行施加到各个转发逻辑,并根据前面的源MAC选择结果确定使某个发送逻辑的发送使能信号TX_EN有效实现数据转发。而各个扩展网口的接收逻辑在接受到数据报文之本文档来自技高网...
基于以太网控制器的网络端口扩展方法

【技术保护点】
一种基于以太网控制器的网络端口扩展方法,其特征在于,包括以下硬件和驱动程序实现步骤:步骤1,构建包括多路以太网物理层、网络扩展模块的硬件电路,所述网络扩展模块包括主端口接收逻辑、主端口发送逻辑、多路发送逻辑、单网口的接收逻辑、多路接收DMA等;步骤2,由所述主端口接收逻辑将来自主机MAC的网络报文进行延迟缓冲同时解析报文中源MAC地址,并选择本地MAC地址和报文源MAC地址一致的扩展网络端口作为该数据报文的目标发送端口;步骤3,由所述多路发送逻辑将延迟缓冲后的数据报文并行施加在各扩展网络端口,并根据步骤2选择结果置位相应扩展网络端口的发送使能信号TX_EN,实现报文从选中的端口发送;步骤4,由各扩展网络端口的接收逻辑接收并缓冲本端口的数据报文同时标记端口序号,然后请求多路接收DMA服务;步骤5,多路接收DMA按轮转调度策略依次查询各扩展网络端口的接收逻辑,并将接收逻辑模块接收到的报文连同其源端口序号一并传送给主端口发送逻辑;步骤6,主端口发送逻辑将接收DMA的数据转换成以太网链路层的数据格式,同时将报文的源端口序号插入在报文的最后一个字节后发送该报文到主机;步骤7,在主机侧系统软件中虚拟多个独立的逻辑网络设备,并使这些逻辑网络设备的本地MAC地址和扩展网络端口中配置的本地MAC地址一致,协议栈高层发往逻辑网络设备的数据报由发送驱动程序映射到主机侧用来网络扩展的MAC控制器;步骤8,将位于主机侧的MAC控制器配置成混杂模式,重设MAC的最大接收帧长,使其比原有方式增加一个字节,以容纳报文中扩展端口序号;步骤9,主机侧的网口接收驱动程序按常规方法读取来自端口的网络数据,并提取帧校验码前的一个字节作为报文源端口序号,并根据此序号将接收报文提交到对应步骤7所述逻辑网络设备,完成逻辑网络设备的数据接收;所述基于以太网控制器的网络端口扩展方法的发送报文的目标物理端口选择由网络扩展模块中的多路发送逻辑完成,协议栈输出报文与常规报文一致;而来自扩展网络端口的接收报文则由各端口接收逻辑进行源端口标记,最后通过驱动软件实现逻辑网络设备和对应物理扩展网络端口的绑定,整个实现对协议栈高层透明。...

【技术特征摘要】
1.一种基于以太网控制器的网络端口扩展方法,其特征在于,包括以下硬件和驱动程序实现步骤:步骤1,构建包括多路以太网物理层、网络扩展模块的硬件电路,所述网络扩展模块包括主端口接收逻辑、主端口发送逻辑、多路发送逻辑、单网口的接收逻辑、多路接收DMA等;步骤2,由所述主端口接收逻辑将来自主机MAC的网络报文进行延迟缓冲同时解析报文中源MAC地址,并选择本地MAC地址和报文源MAC地址一致的扩展网络端口作为该数据报文的目标发送端口;步骤3,由所述多路发送逻辑将延迟缓冲后的数据报文并行施加在各扩展网络端口,并根据步骤2选择结果置位相应扩展网络端口的发送使能信号TX_EN,实现报文从选中的端口发送;步骤4,由各扩展网络端口的接收逻辑接收并缓冲本端口的数据报文同时标记端口序号,然后请求多路接收DMA服务;步骤5,多路接收DMA按轮转调度策略依次查询各扩展网络端口的接收逻辑,并将接收逻辑模块接收到的报文连同其源端口序号一并传送给主端口发送逻辑;步骤6,主端口发送逻辑将接收DMA的数据转换成以太网链路层的数据格式,同时将报文的源端口序号插入在报文的最后一个字节后发送该报文到主机;步骤7,在主机侧系统软件中虚拟多个独立的逻辑网络设备,并使这些逻辑网络设备的本地MAC地址和扩展网络端口中配置的本地MAC地址一致,协议栈高层发往逻辑网络设备的数据报由发送驱动程序映射到主机侧用来网络扩展的MAC控制器;步骤8,将位于主机侧的MAC控制器配置成混杂模式,重设MAC的最大接收帧长,使其比原有方式增加一个字节,以容纳报文中扩展端口序号;步骤9,主机侧的网口接收驱动程序按常规方法读取来自端口的网络数据,并提取帧校验码前的一个字节作为报文源端口序号,并根据此序号将接收报文提交到对应步骤7所述逻辑网络设备,完成逻辑网络设备的数据接收;所述基于以太网控制器的网络端口扩展方法的发送报文的目标物理端口选择由网络扩展模块中的多路发送逻辑完成,协议栈输出报文与常规报文一致;而来自扩展网络端口的接收报文则由各端口接收逻辑进行源端口标记,最后通过驱动软件实现逻辑网络设备和对应物理扩展网络...

【专利技术属性】
技术研发人员:庞吉耀
申请(专利权)人:南京磐能电力科技股份有限公司
类型:发明
国别省市:江苏;32

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

1