轉自公眾號歡迎關注
https://mp.weixin.qq.com/s/klrHhaLMM_0W3FGVwHXFkA
基于DWC_ether_qos的以太網驅動開發-數據流驗證過程 (qq.com)
一.前言
以太網驅動的編寫與調試是以數據流為導向的,數據流的確認我們可以采取層層推進的方式進行驗證。即先驗證MAC層,再驗證PHY層,再驗證接具體的設備比如PC收發數據。
如下所示

二.MAC層回環
MAC層回環可以確認MAC的DMA和PHY接口等是否工作正常.
MAC層回環即MAC的MII接口內部回環,不到外部PHY上,但是也驗證到了MAC的PHY接口。
見手冊16 Using the Loopback Mode
使能MAC回環需要配置寄存器MAC_Configuration的LM位為1

有以下需要注意的地方:
1.只能使用全雙工模式
2.MAC回環也需要RXC時鐘,正常RXC時鐘來源于PHY,所以要不就使用PHY正常工作,要不就使用其他方式提供RXC時鐘。很多時候MAC回環不通就是RXC或者TXC沒有,所以先使用示波器確認這兩個信號。
對于RTL8211F可以通過如下寄存器查看RXC是否輸出

同時確認如下寄存器是否是LPI停止了RXC
最好如下寄存器按照默認配置為0,即LPI時不停止RXC

還有需要注意的是我這里實測是要接上網線到電腦,Link OK狀態BMSR的bit2為1,才能MAC回環。否則MAC回環不通。
3.不要回環大包
三.PHY層回環
配置PHY寄存器0的bit14為1

四.ARP測試數據收發
發送ARP請求,電腦會自動返回ARP響應以測試回路。
ARP請求包格式如下
| DA | 6字節目的MAC地址,設置為全FF廣播 | |
| SA | 6字節源MAC地址 | |
| Type | 2字節Type 0x0806 | |
| HWType | 2字節 0x0001 | |
| ProtocolType | 2字節0x0800 | |
| HWSize | 1字節0x06 | |
| ProtocolSize | 1字節0x04 | |
| Opcode | 2字節0x0001 | |
| 6字節發送端MAC地址 | ||
| 4字節發送端IP地址 | ||
| 6字節目的端MAC地址,未知所以全0 | ||
| 4字節目的端IP地址 | ||
| 18字節填充0,使得包長(DA到FCS)64字節 |
ARP響應包,和請求對比Opcode不一樣,MAC和IP的源和目的反向。
| DA | 6字節目的MAC地址 | |
| SA | 6字節源MAC地址 | |
| Type | 2字節Type 0x0806 | |
| HWType | 2字節 0x0001 | |
| ProtocolType | 2字節0x0800 | |
| HWSize | 1字節0x06 | |
| ProtocolSize | 1字節0x04 | |
| Opcode | 2字節0x0002 | |
| 6字節發送端MAC地址 | ||
| 4字節發送端IP地址 | ||
| 6字節目的端MAC地址,未知所以全0 | ||
| 4字節目的端IP地址 | ||
| 18字節填充0,使得包長(DA到FCS)64字節 |
1.注意最低64字節的幀長要求
TDES3的CPC設置為00可以自動填充。

2.使用wireshark抓包確認


五.總結
1.MAC層回環不通,則確認RXC和TXC是否有時鐘,確認DMA_Debug_Status0的收發狀態和描述符的相關寄存器(后面會單獨詳講收發的調試)。
2.PHY層回環不通則確認PHY是否處于LINK Ok狀態,邏輯分析儀監控MII接口等。
3.ARP測試不通,則確認發送包是否填充到了64字節;確認網線,硬件分析儀抓包等。
審核編輯 黃宇
-
嵌入式
+關注
關注
5203文章
20549瀏覽量
335745 -
以太網
+關注
關注
41文章
6087瀏覽量
181292 -
寄存器
+關注
關注
31文章
5612瀏覽量
130234 -
數據流
+關注
關注
0文章
129瀏覽量
16331 -
驅動開發
+關注
關注
0文章
140瀏覽量
12702
發布評論請先 登錄
基于DWC_ether_qos的以太網驅動開發-描述符鏈表介紹
基于DWC_ether_qos的以太網驅動開發-收發驅動編寫與調試
基于DWC_ether_qos的以太網驅動開發-無OS環境移植LWIP
基于DWC_ether_qos的以太網驅動開發-LWIP的堆管理介紹
基于DWC_ether_qos的以太網驅動開發-RTOS環境移植LWIP與性能測試
基于DWC_ether_qos的以太網驅動開發-LWIP在PC上進行開發調試
基于DWC_ether_qos的以太網驅動開發-LWIP的定時器模塊詳解
基于DWC_ether_qos的以太網驅動開發-LWIP的ICMP模塊介紹與PING收發測
DesignWare核心以太網服務質量數據本
基于DWC_ether_qos的以太網驅動開發-軟復位介紹與問題案例
基于DWC_ether_qos的以太網驅動開發-描述符格式介紹
基于DWC_ether_qos的以太網驅動開發-數據流驗證過程
評論