<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

基于DWC_ether_qos的以太網驅動開發-MAC幀格式介紹

嵌入式USB開發 ? 來源:嵌入式Lee ? 作者:嵌入式Lee ? 2023-08-30 09:23 ? 次閱讀

本文轉自公眾號,歡迎關注

基于DWC_ether_qos的以太網驅動開發-MAC幀格式介紹 (qq.com)

一.前言

以太網驅動,應用,編寫調試等開發時,往往會抓包分析,此時有必要了解MAC幀的格式以便進行分析,我們參考標注文檔對其進行一個整理備忘。

《802.3-2000_part1.pdf》的3. Media access control frame structure規定了使用CSMA/CD MAC的數據通信系統的兩種幀格式:

基本MAC幀格式

對基本MAC幀格式的擴展,Tagged MAC幀,即攜帶QTag前綴的幀。

二.基本MAC幀格式

基本MAC幀格式如下,包括9個部分

wKgZomTtSJaABjpaAALBTTqyRbY287.png

其中

OCTETS表示8位,

1.字節的低位先發送,除了CRC31校驗域是高位先發送按照bit流x31, x30,…, x1, x0發送,即x0是最后發送字節的最后發送位。

2.多字節數據按照大端解析,高字節在前先發送。

各部分詳細介紹如下:

序號 字段 大小(字節) 功能 說明
1 PREAMBLE 7 前導字段 用于PLS (PHYSICAL LAYER SIGNALING)實現和接收幀保持同步(前導和SFD發送時有沖突也會發送完全部前導和SFD)
10101010 10101010 10101010 10101010 10101010 10101010 10101010即0x55序列
2 SFD 1 幀開始定界符 10101011即0xD5
3 DESTINATION ADDRESS
(DA)
6 目的地址字段 目的站的地址。它可以是單播或多播(包括廣播)地址。
全1是廣播地址。
見后面MAC地址部分說明。
4 SOURCE ADDRESS
(SA)
6 源地址字段 發送幀站點的地址。CSMA/CD MAC子層不解釋源地址字段。
5 LENGTH/TYPE 2 長度/類型字段 如果小于等于maxValidFrame=maxUntaggedFrameSize(1518)-18=1500則表示MAC CLIENT DATA區域長度
如果大于等于0x0600則表示幀類型。
6 MAC CLIENT DATA / 數據 MAC+DATA范圍 46~1500字節
7 PAD / 填充 填充,使得DESTINATION ADDRESS~FCS滿足最小幀長64字節。
8 FRAME CHECK SEQUENCE
(FCS)
4 CRC32校驗值,校驗DA到PAD區域之間的數據。生成多項式。
G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
注意FCS是x31最先發,x0最后發.
9 EXTENSION / 擴展域 0~(slotTime–minFrameSize) bits長
1000 Mb/s 半雙工才有

2.1 MAC地址

48位MAC地址的定義如下

wKgaomTtSJaARThaAAGsmemNOUE520.png
位域 功能 說明
1 I/G 地址類型 LSB即最先發出的bit
區分是單播還是組播地址:
0:即I individual 為單播地址,
1:即G group 為組播地址。
注意本位只針對目的地址,對于源地址始終是0.
2 U/L 區分本地或全局地址:
0:即U universal為全局地址,
1:即L locally為本地地址。
廣播地址該位是1.
3 46-BIT ADDRESSS

地址類型:

1 Individual Address
單播地址
地址和網絡中特定的一個站點對應。
2 Group Address
組播地址
Multicast-Group Address多播地址 通過更高級別的約定與一組邏輯相關的站相關聯的地址。
Broadcast Address廣播地址 一種可區分的預定義多播地址,它總是表示給定LAN上所有站點的集合。
全1是廣播地址。

2.2無效幀

滿足以下一個以上的條件

1.幀長度與長度/類型字段中指定的長度值不一致。如果長度/類型字段表示類型值,則假定幀長度與該字段一致,在此基礎上不應視為無效幀。

2.長度不是八位的整數倍。

3.CRC32校驗錯誤。

4.無效MAC幀的內容不得傳遞給LLC或MAC控制子層。無效MAC幀的出現可以被傳送到網絡管理。

三.Tagged MAC幀格式

標簽的MAC幀是對普通MAC幀的擴展,在原來的基礎上SA后添加了4字節的Qtag。見標準IEEE P802.1Q

wKgZomTtSJaAW9M6AAK1WX5DbC4156.png
序號 字段 大小(字節) 功能 說明
1 PREAMBLE 7 前導字段 同基本MAC幀
2 SFD 1 幀開始定界符 同基本MAC幀
3 DESTINATION ADDRESS 6 目的地址字段 同基本MAC幀
4 SOURCE ADDRESS 6 源地址字段 同基本MAC幀
5 LENGTH/TYPE = 802.1QTagType 2 QTag長度/類型
固定為0x8100表示802.1Q
Tag Protocol Type。
6 TAG CONTROL INFORMATION 2 QTag控制信息
a) A 3-bit User Priority field,
b) A Canonical Format Indicator (CFI), and
c) A 12-bit VLAN Identifier.
7 LENGTH/TYPE 2 長度/類型字段 插入QTag之前的MAC幀的原始長度/類型。
同基本MAC幀
8 MAC CLIENT DATA / 數據 同基本MAC幀
9 PAD / 填充 同基本MAC幀
對于填充,最小64字節的幀長可以包含4字節的TAG也可以不包含,不包含TAG則實際幀長是64字節了。
10 FRAME CHECK SEQUENCE 4 同基本MAC幀
11 EXTENSION / 擴展域 同基本MAC幀

四.wireshark中的幀解析

比如如下是一個arp請求包,wireshark可以解析其不同字段,比如左下側點擊Type右邊數據0806即高亮。Wireshark抓包中不顯示前導,幀開始符和FCS,因為前二者是固定的,FCS錯誤則收不到,MAC層作為無效幀就丟棄了。

wKgaomTtSJeANZt4AARavX0sH6w877.png

五.總結

調試以太網,MAC幀的格式是必須要了解的,使用wireshark可以方便解析,但是有時我們是直接驅動代碼中打印原始數據,此時則需要手動去解析。

審核編輯 黃宇

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

    關注

    40

    文章

    5145

    瀏覽量

    167025
  • 驅動
    +關注

    關注

    12

    文章

    1728

    瀏覽量

    84517
  • Mac
    Mac
    +關注

    關注

    0

    文章

    1070

    瀏覽量

    50932
收藏 人收藏

    評論

    相關推薦

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

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

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

    本文轉自公眾號歡迎關注 一.描述符概述 1.0 前言 對于DWC Ethernet QoS驅動的編寫來說,初始化完成之后,核心操作就是DMA的描述符鏈表配置(linked list
    的頭像 發表于 08-30 09:39 ?3113次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-描述符鏈表<b class='flag-5'>介紹</b>

    基于DWC_ether_qos以太網驅動開發-數據流驗證過程

    轉自公眾號歡迎關注 https://mp.weixin.qq.com/s/klrHhaLMM_0W3FGVwHXFkA 基于DWC_ether_qos以太網驅動開發-數據流驗證過程
    的頭像 發表于 08-31 08:41 ?1313次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-數據流驗證過程

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

    本文轉自公眾號,歡迎關注 基于DWC_ether_qos以太網驅動開發-收發驅動編寫與調試 (qq.com) https://mp.wei
    的頭像 發表于 09-05 08:47 ?1557次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-收發<b class='flag-5'>驅動</b>編寫與調試

    基于DWC_ether_qos以太網驅動開發-無OS環境移植LWIP

    本文轉自公眾號歡迎關注 基于DWC_ether_qos以太網驅動開發-無OS環境移植LWIP (qq.com) https://mp.weixin.qq.com
    的頭像 發表于 09-06 08:40 ?968次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-無OS環境移植LWIP

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

    本文轉自公眾號歡迎關注 基于DWC_ether_qos以太網驅動開發-LWIP的堆管理介紹 (qq.com) https://mp.wei
    的頭像 發表于 09-08 08:40 ?828次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-LWIP的堆管理<b class='flag-5'>介紹</b>

    基于DWC_ether_qos以太網驅動開發-RTOS環境移植LWIP與性能測試

    本文轉自公眾號,歡迎關注 基于DWC_ether_qos以太網驅動開發-RTOS環境移植LWIP與性能測試 (qq.com) https://mp.weixin.qq.com
    的頭像 發表于 09-11 11:20 ?1312次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-RTOS環境移植LWIP與性能測試

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

    本文轉自公眾號歡迎關注 基于DWC_ether_qos以太網驅動開發-LWIP在PC上進行開發調試 (qq.com) https://mp
    的頭像 發表于 09-11 08:40 ?1360次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-LWIP在PC上進行<b class='flag-5'>開發</b>調試

    基于DWC_ether_qos以太網驅動開發-LWIP的ARP模塊介紹

    TCP/IP通訊第一步需要先調通ARP,否則TCP/IP包都不知道MAC地址要發給誰。這一篇來基于LWIP的ARP實現進行相關的分析。
    的頭像 發表于 09-18 09:34 ?1204次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-LWIP的ARP模塊<b class='flag-5'>介紹</b>

    【小梅哥2017力作】詳細的FPGA以太網設計教程,76頁精華PDF

    IV E器件中,調用三速以太網IP核(MAC),實現完整的以太網連接?;蛘哂脩羰褂肰erilog編寫的自定義用戶邏輯來實現以太網連接。本教程基于AC620
    發表于 07-29 23:20

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

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

    DesignWare核心以太網服務質量數據本

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

    基于DWC_ether_qos以太網驅動開發-包過濾

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

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

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

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

    前面我們介紹了描述符鏈表的工作模式,重點是了解環形鏈表是如何環形的,以及相關的寄存器。驅動編寫就需要更進一步,了解描述符的具體內容,即4個描述符的每個字段的含義。
    的頭像 發表于 09-04 14:14 ?1213次閱讀
    基于<b class='flag-5'>DWC_ether_qos</b>的<b class='flag-5'>以太網</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>-描述符<b class='flag-5'>格式</b><b class='flag-5'>介紹</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>