FPGA的GTP(aurora 协议)高速串行接口数据收发(转)
reference:https://blog.csdn.net/qq_40261818/article/details/83039829
PG046-Aurora 8B/10B Logicore IP Product Guide.pdf
GTP(吉比特收发器)简称Gigabit Transceiver with Low Power,经常应用于板级通信,板与板,应用在高速串行接口的数据收发。在A7系列芯片中我们叫GTP、在K7系列我们叫GTX、V系列叫GTH、对于不同速度等级的高速通信的物理接口。
首先就是要了解aurora IP帧模式,Aurora 协议是由Xilinx 公司提供的一个开放、免费的链路层协议,可以用来进行点到点的串行数据传输,具有实现高性能数据传输系统的高效率和简单易用的特点。Aurora 8b10协议是一个可扩展的、轻量级的链路层协议,可以用于单路或者多路串行数据通信。
1. AuroraIP帧模式
1.1 IP核配置
Lane width Byte=4Bytes 设置了用户AXI-Stream接口位宽是32bit
Lane Rate=5.0Gbps 设置了高速串行总线的数据速率
GT Refclk=125Mhz 设置了高速串行总线参考时钟频率,需要参考板卡实际连接的晶振频率
Init clk=50Mhz 用于初始化和产生复位的信号,请使用独立的时钟不要使用本IP核生成的用户时钟。
Drp clk=50Mhz 用于DRP配置的时钟,此时钟可以与Init clk 一致。
DataFlow Mode=Duplex 通信模式选择全双工,也可以选择单收或单发.
Interface =Frame 用户接口模式选择帧模式,帧模式帧内部含有起始字节和结束字节,选择性使能CRC ,用于数据校验,相对比流模式效率降低,但是能感知帧内是否出错。
Flow Control = UFC 流控信号选择User Flow Control,加入流控机制,流控信息可以更优先的传送,只有在Frame模式下可以选择。
Error Detection = CRC 使能CRC校验帧数据是否出错。
GT Selection -> Lanes = 1;
RefClk=GTPQ0 选择高速接口数量和参考时钟,这部分设置芯片有专用管脚对应,根据实际板卡和芯片型号选择。
Shared Logic = Include shared logic in core
共享逻辑资源不输出共享信号接口,只包含在IP核内部,在共享模式下一些时钟PLL资源可以给多个核使用。
INITCLK = Single ended init clk 初始化时钟选择单端时钟
未注明的设置选项保持默认即可

1.2 复位时序
上电后GT_Reset和Reset同时复位,GT_Reset提前128clk退出复位,当LaneUp&ChannelUp出现下降沿后 触发复位时序,Reset提前进入复位,128个时钟后GT_Reset进入复位状态,GT_Reset保持128时钟周期后,退出复位,之后再经过128时钟周期Reset退出复位,复位顺序完成。
1.3 用户流控信号 (ufc)
发送UFC数据,数据来自于S_axi_tx_tdata,发送到m_axi_ufc_rx_tdata; s_axi_ufc_tx_tdata指定UFC发送数据的大小(2~16byte); 如图,指定发送UFC大小2byte;

接收UFC数据,接收到2byte数据

1.3.1 用户流控信号时序
用户流控信号可以插入数据流中,从而在接收端可以降低缓冲buffer压力,一般应用场景,当接收端 buffer即将溢出时,给发送端发送指令,使得发送端插入流控数据降低接收端数据量防止溢出。
2. 帧模式结构框图
tx_ctrl和rx_ctrl模块是用户设计模块。tx_ctrl产生 测试数据源,通过Aurora IP发送到传输介质中,接收端接收数据并检测CRC检测结果,并对CRC错包计 数。在调试期间可以用xilinx调试IP的VIO功能监测错包数量。

FPGA的GTP(aurora 协议)高速串行接口数据收发(转)的更多相关文章
- [INet] WebSocket 协议中的数据收发过程
WebSocket 和 HTTP 相似,只是一个应用层协议,对下层透明,所以不涉及 TCP/IP. 由于浏览器支持了 WebSocket,所以在用 JS 写客户端的时候,是无需考虑数据的编码解码的. ...
- 批量生成sqlldr文件,高速卸载数据
SQL*Loader 是用于将外部数据进行批量高速加载的数据库的最高效工具,可用于将多种平面格式文件加载到Oracle数据库.SQL*Loader支持传统路径模式以及直接路径这两种加载模式.关于SQL ...
- 网络编程--使用TCP协议发送接收数据
package com.zhangxueliang.tcp; import java.io.IOException; import java.io.OutputStream; import java. ...
- SQL Server高速导入数据分享
SQL Server高速导入数据,能够尝试的方法例如以下:CTE.OpenRowSet/OpenDataSource.BULK INSERT.bcp.Shell. 以下依次介绍这几种办法. 1.CTE ...
- STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发
这里我主要说一下如何做一个USB下位机,这里主要分3部分:1.建立工程:2.添加报文描述符:3.数据的传输.这里就不讲USB的理论知识了,有想要了解的自行百度一下就可以了. 建立工程:工程建立参考:h ...
- 转载 STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发
STM32 使用Cubemx 建一个USB(HID)设备下位机,实现数据收发 本文转载自 https://www.cnblogs.com/xingboy/p/9913963.html 这里我主要说一 ...
- 通过集群的方式解决基于MQTT协议的RabbitMQ消息收发
在完成了基于AMQP协议的RabbitMQ消息收发后,我们要继续实现基于MQTT协议的RabbitMQ消息收发. 由于C#的RabbitMQ.Client包中只实现了基于AMQP协议的消息收发功能的封 ...
- HAL UART DMA 数据收发
UART使用DMA进行数据收发,实现功能,串口2发送指令到上位机,上位机返回数据给串口2,串口2收到数据后由串口1进行转发,该功能为实验功能 1.UART与DMA通道进行绑定 void HAL_UAR ...
- java网络编程——多线程数据收发并行
基本介绍与思路 收发并行 前一篇博客中,完成了客户端与服务端的简单TCP交互,但这种交互是触发式的:客户端发送一条消息,服务端收到后再回送一条.没有做到收发并行.收发并行的字面意思很容易理解,即数据的 ...
随机推荐
- Spring Boot入门第四天:使用Thymeleaf模板引擎
原文链接 关于Thymeleaf的优点,我只说一条:它就是html页面啊,直接可以用浏览器打开.受够了JSP的同学可以尝试一下. 1.在pom.xml文件中添加依赖: <!--<depen ...
- Spring 拦截器实现+后台原理(HandlerInterceptor)
过滤器跟拦截器的区别 spring mvc的拦截器是只拦截controller而不拦截jsp,html 页面文件的.这就用到过滤器filter了,filter是在servlet前执行的,你也可以理解成 ...
- adobe
使用adobe acrobat pro dc可以处理pdf,自动识别,编辑pdf,将pdf导出为word.(收费可破解)
- Composer 的学习
一.Composer简介 Composer 是PHP用来管理依赖关系的工具. 使用 composer 的必要前提有: 1.PHP版本要高于PHP5.3.2 2.PHP支持OpenSSL扩展 3.安装有 ...
- memtrack: Couldn't load memtrack module (No such file or directory) 的问题解决
通过了编译,可是在模拟器运行时,却出现stopping…….查看logcat,发现出现错误: E/memtrack: Couldn't load memtrack module (No such fi ...
- php值传递和引用传递
1,参数传值方式有两种,第一种是值传递,第二种引用传递.值传递比较简单,也就是在php中,数组是当一个普通变量,值传递是要一个实参的一个拷贝副本,跟实参无关,而引用传递后可以改变实参的值而类的对象是无 ...
- sqlite3 删除数据
cx = sqlite3.connect("c:/数据库地址") # 打开数据库cu = cx.cursor()# delete the rowcu.execute("d ...
- [luogu P3195] [HNOI2008]玩具装箱TOY
[luogu P3195] [HNOI2008]玩具装箱TOY 题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆, ...
- [contest 782] 9.7
[contest 782] 9.7 - XJOI 个人觉得温暖题啊,,,可是卡毛空间呀!!! T1 传送
- 十、 持久层框架(MyBatis)
一.基于MyBatis动态SQL语句 1.if标签 实体类Product的字段比较多的时候,为了应付各个字段的查询,那么就需要写多条SQL语句,这样就变得难以维护. 此时,就可以使用MyBatis动态 ...