RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于DWC_ether_qos的以太網驅動開發(fā)-數(shù)據(jù)流驗證過程

嵌入式USB開發(fā) ? 來源:嵌入式Lee ? 作者:嵌入式Lee ? 2023-08-31 08:41 ? 次閱讀

轉自公眾號歡迎關注

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ù)。

如下所示

wKgaomTv7TmARPccAAB715-4tFs084.png

二.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

wKgZomTv7TmAemNZAAC08pFmVCw142.png

有以下需要注意的地方:

1.只能使用全雙工模式

2.MAC回環(huán)也需要RXC時鐘,正常RXC時鐘來源于PHY,所以要不就使用PHY正常工作,要不就使用其他方式提供RXC時鐘。很多時候MAC回環(huán)不通就是RXC或者TXC沒有,所以先使用示波器確認這兩個信號。

對于RTL8211F可以通過如下寄存器查看RXC是否輸出

wKgaomTv7TqAYgVqAAJNGpil5zU184.png

同時確認如下寄存器是否是LPI停止了RXC

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

wKgZomTv7TuAM6COAACikgoDESI795.png

還有需要注意的是我這里實測是要接上網線到電腦,Link OK狀態(tài)BMSR的bit2為1,才能MAC回環(huán)。否則MAC回環(huán)不通。

3.不要回環(huán)大包

三.PHY層回環(huán)

配置PHY寄存器0的bit14為1

wKgaomTv7TuAToDHAAHzsZNacgM975.png

四.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可以自動填充。

wKgZomTv7TuAYlF_AAJHv81cH2A532.png

2.使用wireshark抓包確認

wKgaomTv7TyAeo__AAFrOXIeDvk285.png

wKgZomTv7TyAew9rAAFNcBRl-Zg050.png

五.總結

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é);確認網線,硬件分析儀抓包等。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5082

    文章

    19104

    瀏覽量

    304777
  • 以太網
    +關注

    關注

    40

    文章

    5419

    瀏覽量

    171590
  • 寄存器
    +關注

    關注

    31

    文章

    5336

    瀏覽量

    120224
  • 數(shù)據(jù)流

    關注

    0

    文章

    119

    瀏覽量

    14349
  • 驅動開發(fā)

    關注

    0

    文章

    130

    瀏覽量

    12072
收藏 人收藏

    評論

    相關推薦

    基于DWC_ether_qos以太網驅動開發(fā)-MAC幀格式介紹

    本文轉自公眾號,歡迎關注 基于DWC_ether_qos以太網驅動開發(fā)-MAC幀格式介紹 (qq.com) 一.前言 ? 在以太網
    的頭像 發(fā)表于 08-30 09:23 ?2357次閱讀
    基于<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幀格式介紹

    基于DWC_ether_qos以太網驅動開發(fā)-MDIO驅動編寫與測試

    本文轉自公眾號歡迎關注 基于DWC_ether_qos以太網驅動開發(fā)-MDIO驅動編寫與測試 一.前言
    的頭像 發(fā)表于 08-30 09:37 ?3734次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-MDIO<b class='flag-5'>驅動</b>編寫與測試

    基于DWC_ether_qos以太網驅動開發(fā)-描述符鏈表介紹

    of descriptors)。DMA根據(jù)描述符鏈表自動在FIFO和用戶指定的緩存之間搬運數(shù)據(jù)。對于熟悉新思的IP的用戶來說,這種套路會有似曾相識的感覺,沒錯新思的大部分高速IP的數(shù)據(jù)流都是這么處理的,比如在DWC
    的頭像 發(fā)表于 08-30 09:39 ?4494次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-描述符鏈表介紹

    基于DWC_ether_qos以太網驅動開發(fā)-收發(fā)驅動編寫與調試

    本文轉自公眾號,歡迎關注 基于DWC_ether_qos以太網驅動開發(fā)-收發(fā)驅動編寫與調試 (qq.com) https://mp.wei
    的頭像 發(fā)表于 09-05 08:47 ?2316次閱讀
    基于<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>編寫與調試

    基于DWC_ether_qos以太網驅動開發(fā)-無OS環(huán)境移植LWIP

    本文轉自公眾號歡迎關注 基于DWC_ether_qos以太網驅動開發(fā)-無OS環(huán)境移植LWIP (qq.com) https://mp.weixin.qq.com/s
    的頭像 發(fā)表于 09-06 08:40 ?1586次閱讀
    基于<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

    基于DWC_ether_qos以太網驅動開發(fā)-LWIP的堆管理介紹

    本文轉自公眾號歡迎關注 基于DWC_ether_qos以太網驅動開發(fā)-LWIP的堆管理介紹 (qq.com) https://mp.weixin.qq.com/s
    的頭像 發(fā)表于 09-08 08:40 ?1293次閱讀
    基于<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的堆管理介紹

    基于DWC_ether_qos以太網驅動開發(fā)-RTOS環(huán)境移植LWIP與性能測試

    本文轉自公眾號,歡迎關注 基于DWC_ether_qos以太網驅動開發(fā)-RTOS環(huán)境移植LWIP與性能測試 (qq.com) https://mp.weixin.qq.com/s
    的頭像 發(fā)表于 09-11 11:20 ?2083次閱讀
    基于<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與性能測試

    基于DWC_ether_qos以太網驅動開發(fā)-LWIP在PC上進行開發(fā)調試

    本文轉自公眾號歡迎關注 基于DWC_ether_qos以太網驅動開發(fā)-LWIP在PC上進行開發(fā)調試 (qq.com) https://mp
    的頭像 發(fā)表于 09-11 08:40 ?1996次閱讀
    基于<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>調試

    基于DWC_ether_qos以太網驅動開發(fā)-LWIP的定時器模塊詳解

    才會編譯,也是默認配置。 2.2數(shù)據(jù)結構 定時器的核心數(shù)據(jù)結構是一個單向鏈表,鏈表的節(jié)點如下 struct sys_timeo { struct sys_timeo * next ; u32_t time;sys_timeout_handler h; void *arg;
    的頭像 發(fā)表于 09-18 09:33 ?1658次閱讀
    基于<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的定時器模塊詳解

    基于DWC_ether_qos以太網驅動開發(fā)-LWIP的ICMP模塊介紹與PING收發(fā)測

    Protocol因特網控制消息協(xié)議。 ICMP是網絡層協(xié)議,IP不可分割的一部分。 ICMP用于報告數(shù)據(jù)報處理中的錯誤,比如以下情況下時發(fā)送ICMP消息:當數(shù)據(jù)報無法到達其目的地時,當網關沒有轉發(fā)數(shù)據(jù)
    的頭像 發(fā)表于 09-18 17:51 ?1976次閱讀
    基于<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ā)測

    設計軟件核心以太網服務質量數(shù)據(jù)手冊免費下載

    本文描述Synopsys設計軟件核心以太網服務質量DWC以太網QoS核心5.10A。DWC以太網
    發(fā)表于 10-23 08:00 ?16次下載
    設計軟件核心<b class='flag-5'>以太網</b>服務質量<b class='flag-5'>數(shù)據(jù)</b>手冊免費下載

    DesignWare核心以太網服務質量數(shù)據(jù)

      本文檔介紹Synopsys DesignWare核心以太網服務質量(DWC_Ethernet_qos)核心,5.10a。DWC_Ethernet_qos實現(xiàn)了與MAC層相關的以太網
    發(fā)表于 03-31 15:11 ?3次下載

    基于DWC_ether_qos以太網驅動開發(fā)-包過濾

    以太網數(shù)據(jù)非常多,如果所有數(shù)據(jù)都接收交給軟件去處理軟件負載會非常重,所以一般只需要接收發(fā)給自己的數(shù)據(jù)即可
    的頭像 發(fā)表于 09-02 09:19 ?1745次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-包過濾

    基于DWC_ether_qos以太網驅動開發(fā)-軟復位介紹與問題案例

    一般模塊都會有軟復位的功能,軟復位在驅動編寫中很重要。一般初始化時執(zhí)行軟復位使得模塊進入確定的初始狀態(tài)以提高可靠性,異常時也可以重新初始化來恢復,所以軟復位在驅動中一般是必須要做的動作。
    的頭像 發(fā)表于 09-02 09:17 ?1622次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-軟復位介紹與問題案例

    基于DWC_ether_qos以太網驅動開發(fā)-描述符格式介紹

    前面我們介紹了描述符鏈表的工作模式,重點是了解環(huán)形鏈表是如何環(huán)形的,以及相關的寄存器。驅動編寫就需要更進一步,了解描述符的具體內容,即4個描述符的每個字段的含義。
    的頭像 發(fā)表于 09-04 14:14 ?2620次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-描述符格式介紹
    RM新时代网站-首页