IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 通信接口设计,千兆以太网,光纤通信 -> 正文阅读

[网络协议]通信接口设计,千兆以太网,光纤通信

1 千兆以太网设计

1.1 以太网结构

????????FPGA?得到?204B?解帧后的数据,共?6?路需通过千兆网传送至上位机完成数据的存储同时给出性能分析。
????????TCP/IP?协议框架,由五层组成,自上而下分别为应用层、传输层、网络层、数据链路层与物理层。

????????其中应用层、传输层与网络层,可由软逻辑实现,由用户完成。

????????数据链路层多为模数组合电路,该层协议在?FPGA?上可由XILINX?官方提供的三态以太网?MAC?核来完成设计。

????????物理层可采用外挂的物理层芯片来构建。

????????传输层可以走?TCP?或?UDP?协议,TCP?协议基于三次握手机制,是可靠稳定的传输协议,但该协议开销较大,不便于设计。由于本次设计不要求实时性,因此,为了便于设计采用?UDP?协议。

????????数据链路层交由?MAC IP?核来完成,发送端口主要是完成基于?AXI4-Stream?的以太网帧的构建,而接收接口主要是将来自于?MAC?核的以太网帧进行解析,剥离出用户真正需要的数据。发送引擎会将用户的待发送数据转换成?GMII?帧格式,并添加相应的填充字段,而后由?GMII/MII?模块进行组帧发送给外挂的?PHY?芯片。
????????接发送引擎的?GMII/MII?模块所需要的物理层协议可在配置IP?核时进行配置,选择基于?RGMII
、GMII?以及?MII?的一种进行构建。接收引擎从?GMII/MII?接口获取数据,并检查其是否符合以太网帧格式,删除填充字段,并向接收接口发送数据帧的好坏指示。最后的管理接口主要是通过?AXI4-Lite?协议完成对该核的在线配置。

?1.1.1发送接口

?????????正常的发送帧传输时序如图?4.2?所示。当用户要发送帧时,将数据加载在tx_axis_mac_tdata?端口上,并拉高?tx_axis_mac_tvalid?信号。MAC?核将通过拉高tx_axis_mac_tready?信号来接受数据的前两个字节,然后等待直到?tx_axis_mac_tready再次拉高,发送数据帧的其余部分。通过在帧的最后字节上拉高?tx_axis_mac_tlas?信号,从而将帧的结束信号发送给MAC?内核。同时,为了校验发收双方以太网帧参数(目标地址?DA,源地址?SA,长
度/类型?L/T?等),会在数据帧的前端将其加载到数据流上。

?1.1.2 接收接口

????????图?4.3?显示了正常接收帧的传输的时序。用户必须随时准备接受数据,因为?MAC核内没有缓冲以允许接收逻辑中存在延迟。帧接收开始后,数据将在连续的有效周期内传输到接收逻辑,直到完整帧接收完成时,MAC?核拉高?rx_axis_mac_tlast?信号以指示传输已完成中?rx_axis_mac_tuser?
用于指示在接收过程中发生的错误,错误的接收时序如图?4.4?所示。

?1.1.3管理接口

????????管理接口用于配置?MAC?内核,配置地址/帧过滤器,管理中断及访问统计信息等,配置过程基于?AXI4-Lite?协议,通过将配置参数加载到?s_axi_wdata[31:0]信号上,而后被读到?MAC?核中。

????????绍物理层的设计,在基于?XILINX的?FPGA?的?MAC?与?PHY?之间的连接方式主要有两种方案,一种是基于并行传输的GMII?和?RGMII?接口,时钟频率较低,工作时钟为?125MHz,由?PHY?芯片连接至?RJ45完成传输。另一种是?SGMII?接口,该接口基于高速串行协议,工作时钟频率较高,为?625MHz,可不接?PHY?芯片,通过走?GTX?来完成传输,但需要连接至光模块来完成设计。

1.2 控制接口设计

????????将?6?路的?AD?降采样数据发送至上位机,时钟为?180MHz,单通道位宽?32bit,每路发送点数为?32768?点。?UDP?帧的数据区域最大为?1500?字节,为了方便设计定每帧的数据长度为?1024?字节。?RGMII?的工作时钟为?125MHz,发送数据位宽为?8bit,ADC?降采样的采样频率为?180MHz

????????需作跨时钟域处理。处理方法为将?6?路数据以?180MHz?写入?6?个深度为?32768?的双口?RAM
,写数据位宽为?32bit。写入完成时,启动发送模块,待?UDP?帧头发送完成时,置高读使能信号,将连续读出?1024?字节数据,此时一个完整的?UDP?包发送完成。

????????写入操作为并行操作,即?6?路数据以?start?信号上升沿为基准,同时写入到?RAM。
????????读取操作为从?6?个?RAM?依次读取,因为要将读到用户发送端口进行?UDP?组帧,所以只能?6?个?RAM?依次读取。

?????????FIFO?是先进先出的存储器,有数据线,无地址线,有单独的空满标志信号,控制较为简单,但其容量不如双口?RAM,由于先进先出这一特点,其更适合用来做数据缓冲。双口?RAM?的控制复杂些,其数据线和地址线分开需做单独控制,且有两套地址线,较?FIFO?来说更为复杂,但其容量较大,可做小批量数据的存储。

?2 光纤通信

?

?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 11:06:18  更:2021-09-08 11:07:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:29:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码