前几天看到群里的一个前辈说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. kali安装docker以及配置阿里云镜像加速

    1.需求 最近需要用到docker比较多,遂安装使用下,第一次用docker搭建测试环境,不得不说,docker真香.期间遇到了比较多奇奇怪怪的问题,网上的教程也比较多比较乱,遂记录一下. 2.安装d ...

  2. SQL 查询表字段长度, 名称, 类型, 存储过程创建和修改时间

    获取存储过程的修改时间和创建时间查询建立时间 --表 select * from sysobjects where id=object_id(N'表名') and xtype='U' --表的结构 s ...

  3. 舞蹈课(dancingLessons)

    有n个人参加一个舞蹈课.每个人的舞蹈技术由整数ai来决定.在舞蹈课的开始,他们从左到右站成一排.当这一排中至少有一对相邻的异性时,舞蹈技术相差最小的那一对会出列并开始跳舞.如果相差最小的不止一对,那么 ...

  4. Internet History, Technology, and Security(week7)——Technology: Application Protocols

    Layer 4: Applications Application Layer TCP提供了“a reliable pipe”(一个坚固的水管)连接用户和服务器,确保了数据能准确不出意外地传输,所以A ...

  5. Dmango cxrf 自定义分页 缓存 session 序列化 信号量 知识点

    参考https://www.cnblogs.com/wupeiqi/articles/5246483.html

  6. abc136

    第一次打ABC 题目简单,但我菜 E - Max GCD 可以任选两个数,一个减去1,一个加上1,可以操作$0,\cdots,K$次,求操作后数组最大GCD 枚举数组之和的因子,试图找到符合题意的最大 ...

  7. How to call javascript function on page load in asp.net

    How to call javascript function on page load in asp.net 解答1,使用RegisterStartupScript来运行 需要注意的是,下面的dem ...

  8. CyclicBarrier 源码分析

    CyclicBarrier CyclicBarrier 是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point) 之后同时释放执行.CyclicB ...

  9. day52—JavaScript拖拽事件的应用(自定义滚动条)

    转行学开发,代码100天——2018-05-07 前面的记录里展示了JavaScript中鼠标拖拽功能,今天利用拖拽功能实现另一个应用场景——自定义滚动条(作为控制器)的用法. 常通过自定义滚动条控制 ...

  10. nginx下使用asan和valgrind两个静态检查工具

    1.valgrind valgrind安装:参考:https://blog.csdn.net/justheretobe/article/details/52986461 wegit:http://va ...