千兆网数据接收(一)

OSI模型

        OSI模型:开放式通信系统互联参考模型。个人认为在FPGA中主要关心的有网络层、传输层和物理层。

        物理层----进行的是通信链路的硬件实现,通过PHY芯片实现一个节点到另一个节点的连接。物理地址通过MAC地址唯一标识。

        网络层----该层实现的是数据的路由了,实现上下层数据的连接和转发。主要协议有:IP(IPV4、IPV6)。 

        传输层----建立、管理和维护端到端的连接。主要协议有TCP、UDP。

UDP

UDP和TCP

        1、TCP 为可靠传输协议,而 UDP 为不可靠传输协议。即 TCP 协议可以保证数据的完整和有序,而UDP 不能保证;

        2、UDP 由于不需要连接,故传输速度比 TCP 快,且占用资源比 TCP 少;

        3、应用场合:TCP 协议常用在对数据文件完整性较高的一些场景中,如文件传输等。UDP 常用于对通讯速度有较高要求或者传输数据较少时,比如对速度要求较高的视频直播和传输数据较少的 QQ 等。

        在FPGA开发中,并不是说TCP不能实现,但是实现起来无论时间成本、资源成本都是巨大的。

UDP协议

UDP 首部共 8 个字节,同 IP 首部一样,也是一行以 32 位(4 个字节)为单位。

UDP数据格式

源端口号:16 位发送端端口号,用于区分不同服务的端口,端口号的范围从 0 到 65535。

目的端口号:16 位接收端端口号。

UDP 长度:16 位 UDP 长度,包含 UDP 首部长度+数据长度,单位是字节(byte)。

UDP 校验和:16 位 UDP 校验和。

在以太网数据包中,数据是按照不同层的协议一层一层打包的:

以太网包格式

        也就是说,假如我想发送数据。那么首先我要把数据打包在UDP协议中得到a,然后再把a打包在IP协议中得到b,然后再把b打包在MAC头中进行发送。同理,当接收到一包数据时,我们需要“层层解包”,最终得到有效数据。

RGMII

        在千兆以太网通信中常用的接口为RGMII和GMII,用于连接物理MAC和PHY芯片。相较于GMII,RGMII在时钟的上升沿和下降沿分别传输4bit数据,这样的话一个时钟周期就可以传输一个字节数据,并且节省了引脚资源。

        RGMII 使用 4bit 数据接口,在 1000Mbps 通信速率下,ETH_TXC 和 ETH_RXC 的时钟频率为125Mhz。ETH_TXCTL 和 ETH_RXCTL 控制信号同样采用 DDR的方式在一个时钟周期内传输两位控制信号,即上升沿发送/接收数据使能(TX_EN/RX_ DV)信号,下降沿发送/接收使能信号与错误信号的异或值(TX_ERR xor TX_EN、RX_ERR xor RX_DV)。当 RX_DV 为高电平(表示数据有效),RX_ERR 为低电平(表示数据无错误),则异或的结果值为高电平,因此只有当ETH_RXCTL 和 ETH_TXCTL 信号的上下沿同时为高电平时,发送和接收的数据有效且正确。

RGMII时序(无补偿)

IDDR原语

        原语是 Xilinx 器件底层硬件中的功能模块,它使用专用的资源来实现一系列的功能。IDDR可以将上下边沿DDR信号转换成单边沿的SDR信号。

        IDDR有不同的采集模式,一般使用SAME_EDGE_PIPELINED模式,在时钟的上升沿输出SDR信号Q1和Q2,但是整体延迟一个时钟周期。

SAME_EDGE_PIPELINED模式

iddr_ctrl模块

        模块的框图如图所示。硬件引脚输入输入的DDR信号rx_dat[3:0]和rx_ctrl信号经过模块内的iddr源语转换为sdr信号如下如下rx_data[7:0]信号输出。

模块框图

        rx_clk_90是PHY时钟相移90°得到的,将 rx_clk_90 时钟作为 rx_ctrl 和 rx_dat 的采样时钟,这样采集rx_ctrl 和 rx_da 数据更为稳定。

RTL视图

        将板卡连接至电脑,抓取rx_en信号上升沿。可以看到抓取到了以太网帧头中的前导码和界定符,说明已经将DDR信号转换。

仿真波形

        未完待续。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值