FPGA通信——千兆网(UDP)软件设计

一、PHY引脚功能描述

        

引脚功能描述
1CLK25 CLK125:内部PLL生成的125MHz参考时钟,如MAC未使用125MHe时钟,则此引脚应保持浮动,

2

4

63

GND       接地
3REG OUT开关压器,1.05V输出

5

6

8

9

11

12

14

15

MDI[0]+

MDI[0]-

MDI[1]+

MDI[1]-

MDI[2]+

MDI[2]-

MDI[3]+

MDI[3]-

差分信号输出,链接RJ45接口

7

13

33

48

59

AVDD10       模拟电源1.05V

10

20

26

37

49

60

64

AVDD33

VDDREG

接3.3V电源
18

RXDV

PHY_AD2

接收包文数据使能信号。表示传物给PHY的数据有效

PHY地址位Bit2

24RXC           接收包文的时钟信号,GMII、RGMII模式时,时钟正常是125MHZ
30RXER接收包文错误指示信号,表示此包文有错误

19

21

22

23

25

27

28

29

RXD0

RXD1

RXD2

RXD3

RXD4

RXD5

RXD6

RXD7

接收的数指总线,GMII使用8位,RGMII使用其中的4位
31COL/MODE 半双工下的决突检测,上拉RGMII,下拉GMII
32CRS载波侦听
34GTX CLK发送包文的时钟信号,GMII、RGMII模式时,时钟必须是125MHZ
35       TXEN发送包文数据使能信号。表示传输给本模块的数据有效
42       TXCLK发送包文的时钟信号,非GMII、RGMII模式时使用,
47TXER发送包文错误指示信号,表示该包文是错误的,不常用,建议置为0即可(发送时必须位低电平,否则信号发不出来,踩过坑)

36

29

40

41

43

44

45

46

TXD0

TXD1

TXD2

TXD3

TXD4

TXD5

TXD6

TXD7

发送包文数措总线,,GMII使用8位,RGMII使用其中的4位
38PHYRSTB:复位引脚,低电平有效,低电平10ms,芯片所有寄存器将被活除
50

LED0

PHY_AD0

link 灯 

PHY地址bit0

51

LED1

PHY_AD1

Ack灯   

PHY地址bit1

53MDC:配接口的时钟线
54MDIO配曾接口中数据总线
55PMEB

电源管理事件(支持3.3V和5V上拉),如果接收到魔术包或唤醒帧,则设置为低:

低激活,如果不使用此功能,此引脚将保持浮动

56       INTB        中断,状态变化为低电平,不使用保持悬空
57ENSWREG:3.3V启用开关调节器 V装用开关调节转
58RSET外部参考电阻器
61CKXTAL1外部25MHZ晶振输入
62CKXTAL2外部25MHZ晶振输入

二、绑定mac地址、IP地址到PC端网卡 

         电路设计使用RTL8211EG, 硬件设计、焊接正常用网线链接电脑和电路板,看到本地链接的1Gbps,代表设备网卡正常工作。

2.1、首先查询本地连接的网卡ID号

CMD命令:netsh i i show in

2.2 绑定

假如设备的IP地址为192.168.1.123,MAC地址为00-11-22-33-44-55,本地链接的Idx=14。

CMD命令为:netsh -c i i add neighbors 14 192.168.1.123 00-11-22-33-44-55

2.3 查询绑定信息

 CMD命令: arp -a      

三、软件开发调试过程

 3.1 设备接收(PC端发送数据到设备)

        UDP通信简介:一个完整的UDP数据帧包含以下内容:

前导码7Byte0x55,0x55,0x55,0x55,0x55,0x55,0xD5
目的MAC地址6Byte00-11-22-33-44-55
源MAC地址6Byte30-65-ec-83-53-f2
类型2Byte0x8000

0x0800

IP协议

版本/首部长度1Byte0x45

4:IPV4

5:长度

(20Byte)

服务类型1Byte0x00一般服务
总长度        2Byte0x0020包括IP首部和IP数据部分
标识2Byte0x0659包序
标志/片偏移地址2Byte0x0000
生存时间1Byte0x4064或者128
协议1Byte0x11UDP为17
首部校验和2Byte0xf042只校验数据包的首部
目的IP地址4Byte0xc0 0xa8 0x01 0x66设备IP
源IP地址4Byte0xc0 0xa8 0x01 0x7B本机IP
目的IP地址2Byte0x04D21234
目的端口号2Byte0x04D21234
UDP长度2Byte0x000CUDP首部长度+数据长度
UDP校验和2Byte0x2D9A
数据内容N-Byte0x11 0x22 0x33 0x44UDP传送的内容
CRC32校验4Byte

首部校验和计算方法:

(版本/首部长度、服务类型)+总长度 +标识 +标志/片偏移地址+(生存时间、协议)+ 

(目的IP地址/)+ 目的IP地址+(源IP地址/)+源IP地址=Num

         如果 Num 大于2字节  校验和=~((Num/65536)+(Num%65535))

         如果Num小于2字节 校验和=~Num

上图中的校验和=0xF042

        计算方法如下:0x4500+0x0020+0x0659+0x0000+0x4011+0xc0a8+0x0166+0xc0a8+0x047B=0x20fBB

0x0fBB+0x02=0x0fBD

0x0FBD按位取反0xf042

        

 3.1 设备发送(PC端接受设备数据)

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Xilinx K7 325T实现千兆UDP(用户数据报协议)的过程如下: 1. 首先,需要使用Vivado软件设计FPGA(现场可编程门阵列)的硬件电路。在设计过程中,需要包括数据收发模块、络协议栈以及与外部接口的连接。 2. 数据收发模块主要负责接收和发送数据。在K7 325T器件上,我们可以使用其集成的以太MAC控制器,通过GMII(Gigabit Media Independent Interface)接口与外部络进行通信。通过配置MAC控制器,可以实现络数据的收发。 3. 络协议栈主要用于处理UDP协议。协议栈包括数据封装和解封装、错误校验和纠正、路由和转发等功能。在FPGA中,这些功能可以通过使用处理器或者硬件逻辑实现。可以选择使用MicroBlaze处理器,它是一种32位软核处理器,在FPGA中可以用于执行协议栈的各种功能。 4. 配置硬件逻辑和处理器之间的数据传输和控制接口。可以使用AXI(Advanced eXtensible Interface)总线来实现高效的数据交互。 5. 开发软件驱动程序。通过软件驱动程序,可以控制和配置FPGA硬件电路,实现UDP协议的运行。可以使用C语言进行软件开发,并结合相应的开发工具进行编译和调试。 6. 进行集成和验证。将设计好的硬件电路和软件驱动程序进行集成,通过验证测试和性能测试来确保千兆UDP协议在FPGA上的正确运行。 以上是基于Xilinx K7 325T实现千兆UDP协议的大致过程。具体实现的细节需要根据具体需求和硬件平台进行调整。在实际应用中,还需要考虑络拓扑结构、数据传输的稳定性和可靠性等方面的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值