轉自公眾號歡迎關注
https://mp.weixin.qq.com/s/klrHhaLMM_0W3FGVwHXFkA
基于DWC_ether_qos的以太網驅動開發(fā)-數(shù)據(jù)流驗證過程 (qq.com)
一.前言
以太網驅動的編寫與調試是以數(shù)據(jù)流為導向的,數(shù)據(jù)流的確認我們可以采取層層推進的方式進行驗證。即先驗證MAC層,再驗證PHY層,再驗證接具體的設備比如PC收發(fā)數(shù)據(jù)。
如下所示
二.MAC層回環(huán)
MAC層回環(huán)可以確認MAC的DMA和PHY接口等是否工作正常.
MAC層回環(huán)即MAC的MII接口內部回環(huán),不到外部PHY上,但是也驗證到了MAC的PHY接口。
見手冊16 Using the Loopback Mode
使能MAC回環(huán)需要配置寄存器MAC_Configuration的LM位為1
有以下需要注意的地方:
1.只能使用全雙工模式
2.MAC回環(huán)也需要RXC時鐘,正常RXC時鐘來源于PHY,所以要不就使用PHY正常工作,要不就使用其他方式提供RXC時鐘。很多時候MAC回環(huán)不通就是RXC或者TXC沒有,所以先使用示波器確認這兩個信號。
對于RTL8211F可以通過如下寄存器查看RXC是否輸出
同時確認如下寄存器是否是LPI停止了RXC
最好如下寄存器按照默認配置為0,即LPI時不停止RXC
還有需要注意的是我這里實測是要接上網線到電腦,Link OK狀態(tài)BMSR的bit2為1,才能MAC回環(huán)。否則MAC回環(huán)不通。
3.不要回環(huán)大包
三.PHY層回環(huán)
配置PHY寄存器0的bit14為1
四.ARP測試數(shù)據(jù)收發(fā)
發(fā)送ARP請求,電腦會自動返回ARP響應以測試回路。
ARP請求包格式如下
DA | 6字節(jié)目的MAC地址,設置為全FF廣播 | |
SA | 6字節(jié)源MAC地址 | |
Type | 2字節(jié)Type 0x0806 | |
HWType | 2字節(jié) 0x0001 | |
ProtocolType | 2字節(jié)0x0800 | |
HWSize | 1字節(jié)0x06 | |
ProtocolSize | 1字節(jié)0x04 | |
Opcode | 2字節(jié)0x0001 | |
6字節(jié)發(fā)送端MAC地址 | ||
4字節(jié)發(fā)送端IP地址 | ||
6字節(jié)目的端MAC地址,未知所以全0 | ||
4字節(jié)目的端IP地址 | ||
18字節(jié)填充0,使得包長(DA到FCS)64字節(jié) |
ARP響應包,和請求對比Opcode不一樣,MAC和IP的源和目的反向。
DA | 6字節(jié)目的MAC地址 | |
SA | 6字節(jié)源MAC地址 | |
Type | 2字節(jié)Type 0x0806 | |
HWType | 2字節(jié) 0x0001 | |
ProtocolType | 2字節(jié)0x0800 | |
HWSize | 1字節(jié)0x06 | |
ProtocolSize | 1字節(jié)0x04 | |
Opcode | 2字節(jié)0x0002 | |
6字節(jié)發(fā)送端MAC地址 | ||
4字節(jié)發(fā)送端IP地址 | ||
6字節(jié)目的端MAC地址,未知所以全0 | ||
4字節(jié)目的端IP地址 | ||
18字節(jié)填充0,使得包長(DA到FCS)64字節(jié) |
1.注意最低64字節(jié)的幀長要求
TDES3的CPC設置為00可以自動填充。
2.使用wireshark抓包確認
五.總結
1.MAC層回環(huán)不通,則確認RXC和TXC是否有時鐘,確認DMA_Debug_Status0的收發(fā)狀態(tài)和描述符的相關寄存器(后面會單獨詳講收發(fā)的調試)。
2.PHY層回環(huán)不通則確認PHY是否處于LINK Ok狀態(tài),邏輯分析儀監(jiān)控MII接口等。
3.ARP測試不通,則確認發(fā)送包是否填充到了64字節(jié);確認網線,硬件分析儀抓包等。
審核編輯 黃宇
-
嵌入式
+關注
關注
5092文章
19177瀏覽量
307637 -
以太網
+關注
關注
40文章
5460瀏覽量
172714 -
寄存器
+關注
關注
31文章
5363瀏覽量
121151 -
數(shù)據(jù)流
+關注
關注
0文章
121瀏覽量
14437 -
驅動開發(fā)
+關注
關注
0文章
130瀏覽量
12106
發(fā)布評論請先 登錄
相關推薦
基于DWC_ether_qos的以太網驅動開發(fā)-MAC幀格式介紹
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-MAC幀格式介紹](https://file1.elecfans.com//web2/M00/A0/61/wKgZomTtSJaABjpaAALBTTqyRbY287.png)
基于DWC_ether_qos的以太網驅動開發(fā)-描述符鏈表介紹
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-描述符鏈表介紹](https://file1.elecfans.com/web2/M00/A0/C9/wKgZomTunYKAeNxaAAC6LPl4TyY517.jpg)
基于DWC_ether_qos的以太網驅動開發(fā)-收發(fā)驅動編寫與調試
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-收發(fā)<b class='flag-5'>驅動</b>編寫與調試](https://file1.elecfans.com//web2/M00/A3/03/wKgaomT2hgmADaIUAABCBsgW8uA618.png)
基于DWC_ether_qos的以太網驅動開發(fā)-無OS環(huán)境移植LWIP
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-無OS環(huán)境移植LWIP](https://file1.elecfans.com//web2/M00/A3/2C/wKgaomT31GyAV2MOAAAICZ45IBE418.png)
基于DWC_ether_qos的以太網驅動開發(fā)-LWIP的堆管理介紹
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-LWIP的堆管理介紹](https://file1.elecfans.com//web2/M00/A3/84/wKgaomT6e8mAOc3CAABfv0oF-p8552.png)
基于DWC_ether_qos的以太網驅動開發(fā)-RTOS環(huán)境移植LWIP與性能測試
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-RTOS環(huán)境移植LWIP與性能測試](https://file1.elecfans.com//web2/M00/A2/5E/wKgZomT9Ts-ATRWJAADLKvIGyzM770.png)
基于DWC_ether_qos的以太網驅動開發(fā)-LWIP在PC上進行開發(fā)調試
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-LWIP在PC上進行<b class='flag-5'>開發(fā)</b>調試](https://file1.elecfans.com//web2/M00/A3/CB/wKgaomT-a4eASU5pAAN8tVb5SkU139.png)
基于DWC_ether_qos的以太網驅動開發(fā)-LWIP的定時器模塊詳解
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-LWIP的定時器模塊詳解](https://file1.elecfans.com/web2/M00/A3/86/wKgZomUHqJGABbQlAABLKy467rY277.jpg)
基于DWC_ether_qos的以太網驅動開發(fā)-LWIP的ICMP模塊介紹與PING收發(fā)測
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-LWIP的ICMP模塊介紹與PING收發(fā)測](https://file1.elecfans.com/web2/M00/A5/0C/wKgaomUIHSWARVmYAAOohLffU4I768.jpg)
設計軟件核心以太網服務質量數(shù)據(jù)手冊免費下載
![設計軟件核心<b class='flag-5'>以太網</b>服務質量<b class='flag-5'>數(shù)據(jù)</b>手冊免費下載](https://file.elecfans.com/web1/M00/AB/25/pIYBAF2vx2yAFK0UAAC_559CBf4816.png)
DesignWare核心以太網服務質量數(shù)據(jù)本
基于DWC_ether_qos的以太網驅動開發(fā)-包過濾
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-包過濾](https://file1.elecfans.com/web2/M00/A2/BE/wKgaomTyiFmAEDEkAAEeA1jXwxY649.jpg)
基于DWC_ether_qos的以太網驅動開發(fā)-軟復位介紹與問題案例
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-軟復位介紹與問題案例](https://file1.elecfans.com/web2/M00/A2/BE/wKgaomTyiPOAJbSIAAGYnjAEJtM477.jpg)
基于DWC_ether_qos的以太網驅動開發(fā)-描述符格式介紹
![基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-描述符格式介紹](https://file1.elecfans.com/web2/M00/A1/81/wKgZomT1dWKAPpgHAAIdpMP0U8Y137.jpg)
評論