一、PHY引脚功能描述
引脚 | 功能 | 描述 |
1 | CLK25 | CLK125:内部PLL生成的125MHz参考时钟,如MAC未使用125MHe时钟,则此引脚应保持浮动, |
2 4 63 | GND | 接地 |
3 | REG 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 |
24 | RXC | 接收包文的时钟信号,GMII、RGMII模式时,时钟正常是125MHZ |
30 | RXER | 接收包文错误指示信号,表示此包文有错误 |
19 21 22 23 25 27 28 29 | RXD0 RXD1 RXD2 RXD3 RXD4 RXD5 RXD6 RXD7 | 接收的数指总线,GMII使用8位,RGMII使用其中的4位 |
31 | COL/MODE | 半双工下的决突检测,上拉RGMII,下拉GMII |
32 | CRS | 载波侦听 |
34 | GTX CLK | 发送包文的时钟信号,GMII、RGMII模式时,时钟必须是125MHZ |
35 | TXEN | 发送包文数据使能信号。表示传输给本模块的数据有效 |
42 | TXCLK | 发送包文的时钟信号,非GMII、RGMII模式时使用, |
47 | TXER | 发送包文错误指示信号,表示该包文是错误的,不常用,建议置为0即可(发送时必须位低电平,否则信号发不出来,踩过坑) |
36 29 40 41 43 44 45 46 | TXD0 TXD1 TXD2 TXD3 TXD4 TXD5 TXD6 TXD7 | 发送包文数措总线,,GMII使用8位,RGMII使用其中的4位 |
38 | PHYRSTB | :复位引脚,低电平有效,低电平10ms,芯片所有寄存器将被活除 |
50 | LED0 PHY_AD0 | link 灯 PHY地址bit0 |
51 | LED1 PHY_AD1 | Ack灯 PHY地址bit1 |
53 | MDC: | 配接口的时钟线 |
54 | MDIO | 配曾接口中数据总线 |
55 | PMEB | 电源管理事件(支持3.3V和5V上拉),如果接收到魔术包或唤醒帧,则设置为低: 低激活,如果不使用此功能,此引脚将保持浮动 |
56 | INTB | 中断,状态变化为低电平,不使用保持悬空 |
57 | ENSWREG | :3.3V启用开关调节器 V装用开关调节转 |
58 | RSET | 外部参考电阻器 |
61 | CKXTAL1 | 外部25MHZ晶振输入 |
62 | CKXTAL2 | 外部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数据帧包含以下内容:
前导码 | 7Byte | 0x55,0x55,0x55,0x55,0x55,0x55,0xD5 | |
目的MAC地址 | 6Byte | 00-11-22-33-44-55 | |
源MAC地址 | 6Byte | 30-65-ec-83-53-f2 | |
类型 | 2Byte | 0x8000 | 0x0800 IP协议 |
版本/首部长度 | 1Byte | 0x45 | 4:IPV4 5:长度 (20Byte) |
服务类型 | 1Byte | 0x00 | 一般服务 |
总长度 | 2Byte | 0x0020 | 包括IP首部和IP数据部分 |
标识 | 2Byte | 0x0659 | 包序 |
标志/片偏移地址 | 2Byte | 0x0000 | |
生存时间 | 1Byte | 0x40 | 64或者128 |
协议 | 1Byte | 0x11 | UDP为17 |
首部校验和 | 2Byte | 0xf042 | 只校验数据包的首部 |
目的IP地址 | 4Byte | 0xc0 0xa8 0x01 0x66 | 设备IP |
源IP地址 | 4Byte | 0xc0 0xa8 0x01 0x7B | 本机IP |
目的IP地址 | 2Byte | 0x04D2 | 1234 |
目的端口号 | 2Byte | 0x04D2 | 1234 |
UDP长度 | 2Byte | 0x000C | UDP首部长度+数据长度 |
UDP校验和 | 2Byte | 0x2D9A | |
数据内容 | N-Byte | 0x11 0x22 0x33 0x44 | UDP传送的内容 |
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