• 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端接受设备数据)

  • 相关阅读:
    自由软件基金会官宣Zoë Kooyman担任新执行董事
    我在上海偶遇数字凤凰#坐标徐汇美罗城
    【企业动态】欢迎法国客户来访东胜物联,深入探讨智能化合作
    浅析String与hashCode
    学习杂记1
    【Call for papers】USENIX Security-2023(CCF-A/网络与信息安全/2023年2月7日截稿)
    mmdetection环境配置和安装
    淀粉2207空头逼仓,玉米认沽大涨1-6倍,淀粉09-01正套2022.6.30
    Linux - Shell、Console和Terminal的区别
    最新版GPT-4.5-Turbo简单介绍
  • 原文地址:https://blog.csdn.net/qq_34301282/article/details/132742190