当前位置: 永盛彩票网站  >> 工科专业  >> 机电自动化  >> 查看详情

机电工程----基于FPGA 的千兆光纤以太网实现

来源: 长沙中视澜庭教育咨询有限公司  日期:2018-02-24 17:14:45  点击:102 
分享:

您若需要更全面指导,咨询请加QQ:157677920(张老师)2593328532(李老师),微信(电话同号):17051272921。

随着近几年互联网+ 的提出与推广, 网络技术应用范围越广泛, 而在计算机网络的发展技术当中, 在不同应用领域存在着激烈的竞争, 在以太网技术以稳定性、通用性、开放性、高速性和廉价性, 很多领域得到广泛应用。同样100Mb P s 带宽下工作的F D D I 与快速以太网相比具有许多的优点, 最主要表现在快速以太网技术支持3、4、5 类双绞线以及光纤的连接, 能充分的利用现有的设备而获得更高的带宽和速度。但快速以太网的技术没有改变,当网络数据量大时, 会造成数据吞吐量降低。

  千兆光纤以太网技术不但继承了传统以太网技术价格便宜的优点, 而且还填补了802.3 以太网/ 快速以太网标准的不足。千兆光纤以太网利与原来以太网标准所有规定全部相同, 完全兼容以太网和快速以太网, 因此可以实现在原有低速以太网基础上平滑、连续性的网络升级。

  以太网发展至今也具有一定的优势, 从办公、生活网络应用, 走向了工业控制领域, 发展到国防军工、航空航天等可靠性、高速性的领域。现在通过通信技术的提高, 通信速率得到了提高, 从以前的10M、100M 发展到现在的1000M、1G , 网络速度的加快使得整个网络中的负担降低, 同时传输延时时间也大大减小; 也采用了全双工的模式, 网络上数据的收发同时进行, 全双工的模式也避免了因碰撞引起的通信响应不确定, 将以太网用于军工、航空航天等领域, 使得具有应用广泛、成本低廉、通信速率高、软硬件资源丰富、可持续发展能力强、易于实现管控一体化几个优势。

  基于FPGA 的千兆光纤以太网的数据传输, 使得有效传输数据的吞吐量最大化。千兆光纤网作为新一代的以太网技术, 不仅保持原来的10M、100M 以太网已有的C S M A / C D 协议, 而且还保持帧格式和长度不变,同样支持全双工与半双工模式, 也最大的继承了传统以太网的技术优点。利用原有的以太网标准基础之上制定了千兆以太网, 完全兼容了已经普遍应用的快速以太网,根据原有网络基础上更新设备就可方便的将普通的网络升级到千兆以太网。千兆以太网向下兼容, 并支持多种模式, 可以利用现今市场上广泛存在的非屏蔽双绞线进行数据的传输。千兆以太网与普通网络一致具有良好的可扩展性。千兆以太网可以做到低廉的价格及优异的性能, 用户在已搭建的网络基础上就可以升级。

  2 FPGA 实现以太网控制

  2.1 以太网数据层

  目前最为广泛的参考模型为O S I ( O p e n S y s t e mInterconnection, 开放系统互连), 应用FPGA 实现的以太网也遵循这个模型, 该模型由I S O ( 国际标准化组织) 提出了一种在现有网络的基础上不基于设备和系统的体系结构。该模型成为OSI 7 层协议, 从底层开始,依次为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。如 IEEE 802.3z 中千兆光纤技术OSI 7 层模型。介于物理层和网络层之间为数据链路层(Data Link Layer), 其主要功能包括: 将数据拼接成数据帧结构, 控制数据帧在物理信道上的传输, 为实体网络间提供建立连接、维持和释放的服务, 由接收方的数据流的大小要求调节数据发送速率以使其相匹配。同时完成帧结构框架的构建、错误的查找及纠正以及信道上数据流量的控制, 有效实现点对点或多点间数据的可靠传输。

  2.2 以太网帧结构

  以太网帧是网络通信信号的基本单元, 以太网多组数据进行封装, 封装成帧的形式进行发送。以太网 的帧分为数据帧和管理帧, 其中数据帧分为标准帧和V L A N扩展帧。 和 分别显示了以太网标准帧和V L A N采用的扩展帧的机构, 传输是数据从左面开始传输。在两种帧结构下的区别在源地址与数据长度间是否有4 个字节的标志位来区别, 两种形式下的以太网帧都包含帧前导(Preamble)、帧起始符(SFD)、MAC 地址、数据类型/ 长度(Length/Type)、数据字段、帧检验字段(FCS),其中帧前导由7 个字节0x55 构成, 帧起始由7 个字节0xd5 构成, 帧检验字段是为从MAC 地址开始通过CRC校验生成4 个字节的校验和 ; 对于选择无论什么样的帧格式, 都必须要由7 个字节帧前导、1 个字节帧起始、4 个字节帧校验字段FCS, 这三个字段在本文中选择的芯片上必须要满足, 否则是数据不能穿透PHY 进行传输。

  3 实现以太网传输PHY 芯片的硬件设计

  3.1 PHY 芯片接口

  通过F P G A 实现千兆光纤以太网数据传输选择了88E1111 物理接口芯片, 如,88E1111 芯片功能结构图, 对于此款芯片包含两种网络接口, 一种就是以太网线接口, 另一种就是本文中要实现的光纤接口, 其中对于光口的连接通过串行总线接口与P H Y 连接, 然后PHY 芯片连接MAC 通过GMII 或RGMII 接口连接;串行总线接口包含S_IN+/-,S_OUT+/- 和SD+/- 几个引脚。

  通过光纤接口数据信号传输是典型的直街连接到MAC, 并且对PHY 芯片是没有输入信号检测, 在默认模式下信号检测总是连接状态; 如果想要应用光口传输数据检测信号作为88E1111 芯片的输入, 那么将要通过信号检测输入状态, 可以通过寄存器配置来设定完成。对于MAC 段接口, 如 PHY 芯片MAC 引脚, 可以通过配置引脚来配置成不同的M A C 接口模式,GMII/MII、RGMII/Modified MII,SGMII, 串行接口等连接模式, 而这些接口都可配置成10M、100M、1000M 的网络接口。

  3.2 光纤接口模式的连接

  M A C 接口到光口的连接可以通过模式配置寄存器H W C F G _ M O D E :0 配置, 共有两种模式, 一种是G M I I 到光纤传输, 配置值为0111; 另外一种是RGMII 到光纤传输配, 设置值为0011。通过HWCFG_M O D E :0 配置的G M I I 模式时, 只有一种1000M 数据传输; 数据发送与接受时, 通过串行接口完成数据的接受与发送, 同时此种模式也支持1000BASE-X 自动协商, 同样对于RGMII 模式时, 使用的也是1000Mbps自动协商功能。

  3.3 88E1111 光纤接口硬件电路设计

  本文中实现千兆光纤通讯是应用FPGA 与MAC 口相接完成数据传输, P H Y 芯片与光纤接口如 所示,应用上述的串口接口模式, 配置方式通过HWC F G _MODE:0 值0111 为GMII 模式, 通过图示的PCB 接线就可通过FPGA 实现千兆光纤数据的传输。

  4 千兆光纤以太网的软件设计

  4.1 88E1111 的程序设计

  本文中只介绍利用Verilog HDL 语言实现无协议数据的收发, 根据以上的硬件介绍及参考手册, 做好PCB电路板, 完成电源、时钟、复位灯各路信号的测试, 接着可按以下的步骤操作;

  1) 了解传输: 在不需要懂以上所说的任何网络协议模型, 先通过硬件做个实验, 通过P C 机利用以太网测试软件或测试程序向88E1111 实验板发送一组数据, 例如01 02 03……, 主要是发送一组已知数据, 最好能发无任何协议的数据, 例如要是带U D P 协议的需要区分出是后面哪一段才是自己定义的数据;

  2) 读信号: 通过Quartus II 软件中SignalTap 抓波形, 那么需要抓那些信号呢, 下面就来看硬件了, 翻开手册查找根读数据有相关的信号有R X _ C L K、R X _ER、RX_DV、RXD:0, 看下这些信号的特点, 都是作为输出不需要控制, 即只读就可以了, 看下说明4 个标志依次代表读时钟、读数据错误、读数据有效、读数据,直到现在应该知道通过SignalTap 抓那些信号了;

  3) 抓取数据:PC 向板子发送的数据都为预先设定好

  的, 即为已知数据, 如果数据要是少系统后面会自动补数据8’h00, 多发送几次变化的数据, 看看抓到什么时序, 查找一下共同特点, 此时将会都会出现前面8’h558’h55 8’h55 8’h55 8’h55 8’h55 8’h55 8’hd5+数据+4 字节变化的数, 对这种结构就是88E1111 的格式; 如果通过P C 用抓包软件只能看到‘数据+4 字节变化的数’做下对比吧!在此把88E1111 发送的数据流比喻成针线,8’h55 8’h55 8’h55 8’h55 8’h55 8’h558’h55 8’h d5 这就是针, 数据就是线,4 字节变化的数这个是啥呢, 如果针带着线一直穿是不行的, 因为停不下来需要打个结, 这样就会停下来了, 那么这‘4 字节变化的数’就是代表着数据的结束;

  4) 数据结构: 上面说了那么多就是为了理解, 简单从网络传输理解就是发送的数据前面要有帧前导与帧起始符, 后面要有校验和, 帧前导与帧起始符都是固定的数据了, 只要是这组数据就行, 那么校验是怎么做的呢,也是比较简单的, 就是通过C R C 校验和完成的, 至于用查表还是16 位数相加求反码根据自己的习惯选择一下, 注意帧前导不计算在校验和内;

  5) 写信号: 知道数据读取咋回事了吧, 至于说不加协议怎么用, 那接下来就是应用的事了, 下面接着了解发送数据, 有了读数据, 写数据就是一个反过程, 从硬件角度讲, 所有有关读引脚变写引脚, 那也就意味着都是输入脚了, 需要应用FPGA 控制输出时序状态, 其实也是很容易的, 看看有那些引脚GTX_CLK、TX_ER、TX_EN、TXD:0, 不用多说手册明确说明依次为写时钟、写数据错误、写使能、写数据, 为了能发出数据一定保证数据的正确性, 所以只要用到GTX_CLK、TX_EN、TXD:0 这三个就可以了, 时钟为125MHz,TX_EN 信号置1 后TXD:0 就为有效数据了, 一个时钟一个字节数据;

  6) 发送数据: 在T X _ E N 有效后, 对应读数据结构应该知道发送什么数据吧, 那个‘针’, 有帧前导与帧起始符才可以畅通无阻的, 连续的一个时钟一个时钟的发8’h55 8’h55 8’h55 8’h55 8’h55 8’h55 8’h558’hd5 这一串数吧, 发完了接着来发送自己的数据, 注意需要要做校验和, 数据发送完毕, 接着快把校验和发出去, 校验和发送完毕, 一个数据包就发出去了, 通过PC 机用抓包软件看看数据能不能抓到、数据对不对;7) 提示: 帧前导、帧起始符根校验和有一个错误,数据都是发送不出去的, 就是没有‘针’‘结’网络传输是不识别的, 这个其实还根硬件电路板布局布线有关系的, 但要简单几十个数一般可以忽略这个问题。

  4.2 顶层控制模块实现实现

  根据Verilog HDL 语法规则, 实现千兆网光纤数据通讯顶层文件的代码, 主要分成几个部分: 主机端,即供数据发送接受的主时钟、配置寄存器的时钟及复位; M A C 接口端, 即直街与F P G A 通讯读取数据的接口, 分别为PHY 芯片的复位接口, 读写的时钟、使能、数据端口, 模式寄存器配置接口; 内部数据通讯接口端,即通过FPGA 内部完成与其它设备数据的通信端, 本文中试验是采集的摄像头的数据分别做了, 数据读写请求、同步、数据端等, 同样根与M A C 接口端一样也要具有时钟、读写使能、数据等。下面是通过Verilog HDL 语言完成千兆以太网光纤接口传输的顶层代码:

  5 结束语

  本文中选取了多种接口模式的一款网络芯片实现千兆光纤以太网数据传输, 通过与PC 机网络助手软件的配合,完成数据发送接收的测试, 选择的网络芯片是MARVELL公司的88E1111 PHY 芯片, 支持的多种MAC 接口模式,可以灵活的操作; 由于F P G A 的自身特点, 利用F P G A控制这款芯片十分方便, 即不需要复杂的电路设计, 也不需要特殊的代码编写, 只需要按照手册上的设置、时序完成指定的功能代码就可实现千兆光纤以太网的数据传输;同时此文介绍千兆光纤以太网不包含任何协议, 针对网络协议只需在此基础上增加即可完成。

 

相关新闻

    暂无信息