1. 今日摸魚任務
需要學習使用ZYNQ的以太網傳輸SCPI指令 需要把PL PS兩側的都用起來(加油鴨!) |
吶吶吶 今天就先學一下基礎知識唄 |
02_【邏輯教程】基于HDL的FPGA邏輯設計與驗證教程V3.5.2.pdf 51 以太網相關通信接口詳解 52?以太網(MAC)幀協議介紹 |
2.?以太網 MAC 層接口介紹
|
這些網口只是起到一個信號連接的作用,本身無主動通信的能力,一個典型的網絡通信電路如下圖所示 |
MAC的全稱是?Media Access Control(媒體訪問控制),它是數據鏈路層(Data Link Layer)中的一個子層,主要負責以下功能: ? 1. 幀的封裝與解封:將上層(如IP層)的數據打包成幀(Frame),或從接收的幀中提取有效數據。 ? 2. 物理尋址:通過MAC地址(如? ? 3. 介質訪問控制:協調多個設備共享同一物理介質(如以太網中的沖突檢測CSMA/CD或無線網絡中的CSMA/CA)。 |
數據通過串行方式發送 千兆以太網的位速率為 1.25Gbps 、百兆以太網的位速率為 125Mbps |
PHY 芯片可實現并行以太網數據到符合以太網物理層鏈路數據傳輸格式的電平信號之間的轉換 |
|
2.1 MII接口 |
|
|
2.2 GMIII接口 |
|
|
2.3 RGMII接口 |
RGMII 即 ReducedGMII ,是 GMII 的簡化版本,將接口信號線數量從 24根減少到 14 根,時鐘頻率仍舊為 125MHz , TX/RX 數據寬度從 8 位變為 4 位。 為了保持 1000Mbps 的傳輸速率不變, RGMII 接口在時鐘的上升沿和下降沿都采樣數據 。 |
|
|
【以太網通信】RGMII 接口及其時序規范-CSDN博客 INPUT OUTPUT |
3.?ACZ702 FPGA 以太網電路介紹
ACZ702 開發板 PL 側通過一片 Realtek 的 RTL8211F-CG 以太網 PHY 提供對以太網連接的支持, RTL8211F-CG 是一片 10M/100M/1000Mbps自適應以太網收發器,提供 RGMII 接口的 MAC 連接。 |
3.1??RTL8211F-CG 芯片器件地址【PL】 |
以太網物理層芯片都有一個器件地址,該器件地址就是在介紹 PHY 管理接口 MDIO 時所說的 PHY 器件地址,該器件地址用來由 MDIO 主機(如 MAC 或處理器)尋址 MDIO 總線上連接的指定的 PHY 芯片。 RTL8211F-CG 芯片的地址分為固定部分和硬件可設定兩部分。 器件地址共有 5 位 ,其中高 2 位為固定的 00,低三位通過三個地址設置腳在芯片上電或復位時候設置, 這三位分別對應 RTL8211F 芯片的 22 、 27 、 26 腳。 |
ACZ702 開發板上,這三個腳通過三個電阻分別上/下拉到了指定電平 摸魚怪的是ACZ702 V2.1版本,找到對應的硬件圖紙 ACZ702V2.1-231107.pdf ![]() |
PHY_ADDR0 和 PHY_ADDR2 通過電阻上拉到了高電平 , PHY_ADDR1 通過電阻下拉到了低電平,所以摸魚怪的 PHY 器件地址為 00101。 |
未列出管腳均為無必要與 FPGA 連接的信號。 |
3.3芯片器件地址【PS】 |
這里是ENET1 |
|
4.?幀協議
以太網技術的正式標準是 IEEE 802.3 標準,規定了在以太網中傳輸的數據幀結構: |
|
4.1 前導碼和分隔(開始)符 |
? ? ? ? 這 8 個字節的值在任何以太網幀中都一樣, 7 字節的前導碼值為 0x55 , 1 字節的分隔符值為 0xD5 。 前導碼存在的意義是為了標記一幀以太網幀即將開始傳輸,分隔符存在的意義是指示前導碼傳輸完畢,接下來將要傳輸的就是正式的以太網幀的有用部分。 ? ? ? ?前導碼的值為 7 字節的 0x55 , 0x55 用二進制表示就是 01010101b,前導碼的意義就是驅動網絡鏈路電平開始交替翻轉,以標記幀的開始。 ? ? ? ?分隔符的值為 0xD5 , 0xD5 用二進制表示就是 11010101b 。 ? ? ? ?以太網 PHY 在將數據編碼為以太網物理鏈路層的位傳輸信號時是從低位開始編碼的,所以從信號鏈路的電平來看,先連續的產生 62 位 0 和 1 交替變化的電平,最后再以2 位連續的高電平來標記以太網數據幀部分的到來。 |
4.2?MAC 地址 |
硬件地址或物理地址,是一個48位的全球唯一標識符(前24位為廠商ID,后24位由廠商分配) |
4.3?數據和填充字段 |
該段數據長度至少為 46 個字節,而最多不超過 1500 個字節。 整個以太網幀的數據長度最小為 64 字節,最多1518個字節。【不含前8個字節】 |
最小數據幀的設計原因和以太網電纜長度(以太網的最大長度限制為 2500m)有關,為的是讓兩個相距最遠的站點能夠感知到雙方的數據發生了碰撞;最遠兩端數據的往返時間就是爭用期,以太網設計者規定的爭用期是 51.2us ( 10M 以太網傳輸 64byte 數據的時間,該時間是有考慮到充足的裕量)。 |
太網長度為 1518,那有效傳輸效率=1460/1518=96% 通過比較,選擇較大的幀長度,有效傳輸效率更高。而更大的幀長度同時也會造成上述的問題,可能是基于這些考慮,選擇了一個折中的1518 字節。對應的 IP packet 就是 1500 字節。 |
4.4 校驗序列 |
CRC32 進行計算,得到一個 32 位的數,附加在數據和填充字段的結尾發送。 若不同則意味著該幀數據中肯定有至少 1 位數據的值在傳輸過程中發生了變化,整個這一幀會被舍棄。 |