前几天看到群里的一个前辈说FPGA的入门就是搭建一个完整的以太网通信平台,颇有感触,就在博客平台上搭建一个以太网平台,包含多个模块,先整体驯熟一下实现的功能,再分别叙述各个模块的功能与实现。

整体功能:

工程的最终实现是PC将数据通过SFP接收接口发送到PHY层,为什么是PHY物理层呢?因为为了实现与外部的光通信,仅仅有MAC层是不够的,还必须有物理层,可参考OSI模型,然后PCS_PMA(物理编码子层和物理介质子层)将接收到的数据通过AXI-SREAM接口将接收到的数据发送给三态网IP,由于三态网输出的数据为8bit,所以在第一级FIFO中对输入数据进行寄存,将8位的数据转换为64bit,将64bit的数据进行二级寄存,(why?)因为一级级寄存器中的数据是不同步的,所以还需要将二级寄存器中的数据进行再一次寄存,保证数据完全同步,毕竟是千兆以太网通信,对于数据的同步性要求较高。然后,类似于帧缓存,将同步数据在FIFO中经过寄存之后将数据发送到UDP协议栈中。协议栈将数据发送出去之后为了保证数据随时存在,将发送出去的数据经过FIFO缓存,之后再进入三态网IP,三态网IP将数据发送到PHY层,最终实现一个闭环的UDP千兆以太网测试。

首先需要了解什么是SFP,即SFP光模块,主要成分是激光器(包括发射器和接收器)以及其他集成电路模块,平台式实现的是千兆UDP通信,就是1Gbps,此外还应该了解一下GBIC(Gigabit Interface Converter),吉比特接口转换,将千兆位的电信换转换为光信号,而SFP是GBIC的升级版,封装分销,毕竟是Small Form Plugganle的缩写。

期间搜索了一下UDP和TCP的区别,其实从英文名上更容易区别,TCP是Transmission Control Protocol,UDP是User Data Protocol。可以看出TCP侧重的是传输控制,所以TCP是面向连接的,提供可靠的服务,传输的数据不会丢失,没有重复,而UDP没有可靠性,TCP在用户和服务器交换数据之前,必须在双方之间建立一个TCP连接,之后才能传输数据,是全双工通信。UDP是面向报文的不可靠传输。

关于SFP的电气接口,关键是四个两组: RD+ RD- TD+ TD-,可以看出数据的传输是差分传输的,因为ROCKET I/O具有更高的传输速度,此外还需要注意一组信号就是Tx_Disabl,即发送禁用控制信号,高电平禁用,所以在编程时需要将其拉低。

UDP千兆光通信(一)、整体认知与概述的更多相关文章

  1. FPGA千兆网UDP协议实现

    接着上一篇百兆网接口的设计与使用,我们接着来进行FPGA百兆网UDP(User Datagram Protocol)协议的设计. 1)UDP简介 在此,参考博主夜雨翛然的博文“https://www. ...

  2. AC6102 开发板千兆以太网UDP传输实验2

    AC6102 开发板千兆以太网UDP传输实验 在芯航线AC6102开发板上,设计了一路GMII接口的千兆以太网电路,通过该以太网电路,用户可以将FPGA采集或运算得到的数据传递给其他设备如PC或服务器 ...

  3. AC6102 开发板千兆以太网UDP传输实验

    AC6102 开发板千兆以太网UDP传输实验 在芯航线AC6102开发板上,设计了一路GMII接口的千兆以太网电路,通过该以太网电路,用户可以将FPGA采集或运算得到的数据传递给其他设备如PC或服务器 ...

  4. 千兆以太网TCP协议的FPGA实现

    转自https://blog.csdn.net/zhipao6108/article/details/82386355 千兆以太网TCP协议的FPGA实现 Lzx 2017/4/20 写在前面,这应该 ...

  5. 【转】基于TMS320C6455的千兆以太网设计

    基于TI公司最新DSP芯片TMS320C6455.设计并实现了以太网通信软硬件接口.采用TMS320C6455片内以太网接口模块EMAC/MDIO,结合片外AR8031 PHY芯片,在嵌入式操作系统D ...

  6. 【小梅哥FPGA进阶学习之旅】基于Altera FPGA 的DDR2+千兆以太网电路设计

    DDR2电路设计 在高速大数据的应用中,高速大容量缓存是必不可少的硬件.当前在FPGA系统中使用较为广泛的高速大容量存储器有经典速度较低的单数据速率的SDRAM存储器,以及速度较高的双速率DDR.DD ...

  7. 【转】简谈基于FPGA的千兆以太网

    原文地址: http://blog.chinaaet.com/luhui/p/5100052903 大家好,又到了学习时间了,学习使人快乐.今天我们来简单的聊一聊以太网,以太网在FPGA学习中属于比较 ...

  8. 千兆车载以太网TSN网络测试?TSN Box为您焕新

    TSN概述 在汽车领域内,近几年车内网络通讯方式的变革诉求,期望能够有更高的数据传输速率,以及保证实时性的通讯方式引入.例如对于自动驾驶而言,传统的CAN总线已经远远不能满足其对通讯的要求,而基于以太 ...

  9. Dalsa Sherlock 直连千兆网相机(通用驱动)

    支持 Sherlock 7.1.7.2,用于千兆网相机与 Sherlock 的连接. 可适用于很多厂商的相机,如:巴斯勒(Basler),JAI,堡盟相机(Baumer),灰点相机(Point Gre ...

随机推荐

  1. Python---进阶---logging---logger

    一.####用logging的四大组件来实现日志的功能 - 打印出函数执行的时间,日志的等级,日志的消息 - 用装饰器 - 不同的日志,要记录不同等级的日志消息 ------------------- ...

  2. java -jar 和 java -cp 区别

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/12022527.html Project Directory SRC MainTest.java pac ...

  3. 【leetcode】1095. Find in Mountain Array

    题目如下: (This problem is an interactive problem.) You may recall that an array A is a mountain array i ...

  4. es6的...用法

    ...将一个数组转为用符号分隔的参数序列 1.console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5 2. var args = [0, 1, 2]; f.apply ...

  5. urllib2之开放代理与私密代理

    1.开放代理 import urllib2 #构建代理对象 httpproxy_handler = urllib2.ProxyHandler({'http':'填入代理IP'}) #构建opener对 ...

  6. HDU 1134 Game of Connections(卡特兰数+大数模板)

    题目代号:HDU 1134 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1134 Game of Connections Time Limit: 20 ...

  7. EF 查询时,返回其中一张表(省掉一个个写字段的麻烦)

    1.使用partial将需要添加的字段进行扩展 public partial class T_OrderInfo { public string EntName { get; set; } } 2.使 ...

  8. Spring Cloud Commons教程(三)忽略网络接口

    有时,忽略某些命名网络接口是有用的,因此可以将其从服务发现注册中排除(例如,在Docker容器中运行).可以设置正则表达式的列表,这将导致所需的网络接口被忽略.以下配置将忽略“docker0”接口和以 ...

  9. multipages-generator今日发布?!妈妈再也不用担心移动端h5网站搭建了!

    本文适合的读者?‍?‍?‍? 现在在手淘,京东,今日头条,美柚等过亿用户的手机app中的,都常见h5网页,他们有更新快,灵活,便于分享和传播的特性.这里有他们中的几个h5的例子:(手淘,美柚).这些a ...

  10. 北风设计模式课程---最少知识原则(Least Knowledge Principle)

    北风设计模式课程---最少知识原则(Least Knowledge Principle) 一.总结 一句话总结: 最少知识原则(Least Knowledge Principle),或者称迪米特法则( ...