91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

STM32以太網MAC Loopback的實現(xiàn)

STM32單片機 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2020-12-29 10:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STM32 以太網 MAC Loopback的實現(xiàn)

前言

在STM32以太網調試中經常會遇到“設備接收不到數據”,或者“設備發(fā)出的數據對端設備收不到”之類的問題。遇到這類問題首先要做的是定位問題發(fā)生的部位,這樣做的好處就是可以指明下一步調試的方向,縮小分析的范圍。以下圖為例我們做個簡單的說明,設備A和設備B通過以太網通信,現(xiàn)發(fā)現(xiàn)設備B無法接收設備A發(fā)送的消息,問題可能出現(xiàn)在幾個地方:

應用層的程序,或者協(xié)議棧出錯,數據根本沒有到STM32以太網外設。這種情況我們在調試的時候,在以太網輸出函數low_level_output中打個斷點就可以檢查出來。

STM32以太網MAC出現(xiàn)問題,沒有把數據發(fā)送出去。對于這種情況,可以通過STM32以太網的MAC loopback功能來檢查MAC的收發(fā)是否正常。

STM32以太網MAC和外部PHY之間的通信出現(xiàn)問題??梢酝ㄟ^PHY提供的loopback功能來檢查。

設備A端的收發(fā)沒有問題,問題可能出現(xiàn)在線路上或者設備B。可以通過在網口的接線上做網線交叉,也就是將RJ-45接口中TX+與RX+連接,TX-與RX-連接,來進行檢查。

本文將主要介紹上面提到的STM32 MAC loopback方法。

MAC loopback模式

MAC loopback模式的使能很簡單,將ETH_MACCR寄存器的LM位置位就可以了。

MAC loopback模式使能后,MAC發(fā)送的數據幀通過MII接口發(fā)送給外部PHY的同時也發(fā)送到MAC接收端。這里需要注意的是STM32 MAC loopback模式只支持在MII接口下工作。

但要正確的接收到loopback的數據,還需要注意一下幾個地方:

MAC loopback模式下,MII接口的接收時鐘(RX_CLK)和發(fā)送時鐘(TX_CLK)還需要外部PHY來提供,所以PHY的初始化不能省。

以太網幀中的目標MAC地址應該和源MAC地址一樣,或者設定為廣播地址(FFFFFF:FF),否則MAC默認將會過濾接收到的數據?;蛘邔TH_MACFFR寄存器的RA置位,以接收所有的以太網幀。

對于F7,H7這類帶有cache的MCU型號,需要注意接收/發(fā)送描述符和接收/發(fā)送buffer的地址,以及cache屬性。因為這部分存放在SRAM的數據CPU和以太網DMA都會去讀寫,如果使能cache(回寫)可能會出現(xiàn)數據不一致的情況。也不能將其定義在STM32F769的DTCM RAM區(qū)域。

MAC loopback例程

例程說明

本文基于STM32F769I-EVAL板提供了一個以太網外設測試工程。工程中沒有用到TCP/IP協(xié)議棧,只通過STM32F7的HAL驅動層,實現(xiàn)了以太網MAC層的數據收發(fā),同時也實現(xiàn)了MAC loopback的功能。這個測試工程的目的是,檢測STM32以太網外設的配置是否正確,工作是否正常。

這個例程提供兩種工作模式:

正常模式

在這種模式下,可以正常與另一個設備(PC或者其他的開發(fā)板)通信,也就是可以發(fā)送和接收以太網幀。用戶可以發(fā)送自定義的以太網幀數據,程序會自動構建以太網幀并發(fā)送。因為沒有實現(xiàn)任何TCP/IP協(xié)議,如果想發(fā)送IP包或者TCP/UDP包,就需要自己先按照這些包的格式構建好數據。

MAC loopback模式

在這種模式下,STM32F769I-EVAL板子發(fā)送的數據被直接送回到MII接口的接收端。如果此時網口還連接到另一個設備的話,該設備也是可以接收到數據的。

例程配置

打開例程后,先要做以下的配置:

設置目標MAC地址(dst_addr)

如果發(fā)送廣播,dst_addr設置為FFFFFF:FF。如果在MAC loopback模式下,dst_addr設置成和src_addr一樣。

定義幀數據的類型(frame_type)

可以發(fā)送自定義的幀數據類型,或者通用的預先定義好的幀數據類型。比如,如果發(fā)送的是IPv4的數據,frame_type就是0x0800;如果發(fā)送自定義的類型,則可以使用未被分配的數值。在這個demo中,用的是0x0601。

初始化要發(fā)送的數據buffer

要發(fā)送的數據保存在teststring數組中。請注意,這個數組里只保存應用層要發(fā)送的數據,也就是以太網幀格式的數據段,不包括目標/源MAC地址,以太網幀數據類型和CRC校驗碼。

如果不使能MAC loopback功能,則在main.h中注釋掉MAC_LOOPBACK_ENABLE宏

修改好以上的參數后,重新編譯燒錄后運行。

每次按下USER按鍵,觸發(fā)一次數據發(fā)送。接收到的數據保存在rxbuffer,并且板子上的LD1燈會改變一次狀態(tài)。

正常模式演示

在正常模式下,為了演示方便我們使用PC與STM32F769I-EVAL連接,在PC上運行XCAP來發(fā)送/接收以太網幀數據。

MAC例程端的配置如下:

1. 接收數據測試

打開xcap,構造一個發(fā)給STM32F769I-EVAL板的以太網幀。

目標MAC地址:020000:00

Frame Type: Custom(0x0601)

數據:10字節(jié),0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55

在xcap中,選擇創(chuàng)建好的報文,點擊發(fā)送。

53cb2c7e-48bf-11eb-8b86-12bb97331649.jpg

這時就可以在Wireshark里捕獲的數據包中看到剛剛發(fā)送出去的這個。

53eb941e-48bf-11eb-8b86-12bb97331649.jpg

同時在STM32F769I-EVAL板這邊也收到數據。

544b3d2e-48bf-11eb-8b86-12bb97331649.png

2.發(fā)送數據測試

按下板上的USER按鍵,觸發(fā)一次發(fā)送。

此時運行在PC端的Wireshark可以捕獲到STM32F769I-EVAL開發(fā)板發(fā)送的數據

547b7124-48bf-11eb-8b86-12bb97331649.jpg

MAC loopback模式演示

定義MAC_LOOPBACK_ENABLE宏,重新編譯下載。

按下板上的USER按鍵,觸發(fā)一次發(fā)送,數據被loopback到接收端。

查看rxbuffer接收到的數據:

54a33ba0-48bf-11eb-8b86-12bb97331649.png

責任編輯:xj

原文標題:工程師筆記 | STM32以太網 MAC Loopback的實現(xiàn)

文章出處:【微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

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

    關注

    41

    文章

    6006

    瀏覽量

    180926
  • STM32
    +關注

    關注

    2310

    文章

    11162

    瀏覽量

    373539
  • Mac
    Mac
    +關注

    關注

    0

    文章

    1128

    瀏覽量

    55348

原文標題:工程師筆記 | STM32以太網 MAC Loopback的實現(xiàn)

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    KSZ8841-16M/-32M:單端口以太網MAC控制器的技術剖析與應用前景

    KSZ8841-16M/-32M:單端口以太網MAC控制器的技術剖析與應用前景 在當今數字化時代,以太網技術在各個領域都發(fā)揮著至關重要的作用。Microchip推出的KSZ8841-16M/-32M
    的頭像 發(fā)表于 03-03 16:25 ?100次閱讀

    車載以太網協(xié)議轉換器操作教程# 車載以太網# 轉換器# 硬件# 教程# 汽車# 技術# 操作

    車載以太網
    康謀自動駕駛
    發(fā)布于 :2026年01月28日 11:19:40

    KSZ8841-16M/-32M:單端口以太網MAC控制器的卓越之選

    KSZ8841-16M/-32M:單端口以太網MAC控制器的卓越之選 在當今數字化飛速發(fā)展的時代,以太網技術在各類電子設備中扮演著至關重要的角色。KSZ8841-16M/-32M這一單端口以太
    的頭像 發(fā)表于 12-29 15:15 ?254次閱讀

    ProfiNet嵌入式板卡,主流替代可實現(xiàn)ProfiNet工業(yè)以太網的應用實例

    ProfiNet嵌入式板卡,主流替代可實現(xiàn)ProfiNet工業(yè)以太網的應用實例
    的頭像 發(fā)表于 12-01 17:11 ?1126次閱讀
    ProfiNet嵌入式板卡,主流替代可<b class='flag-5'>實現(xiàn)</b>ProfiNet工業(yè)<b class='flag-5'>以太網</b>的應用實例

    以太網通訊在FPGA上的實現(xiàn)

    數據量達到幾十,甚至成百上千個字節(jié)。下圖為以太網通過UDP傳輸單包數據的格式,可以看出,以太網的數據包就是對各層協(xié)議的逐層封裝來實現(xiàn)數據的傳輸。本項目實現(xiàn)內容主要包括
    發(fā)表于 10-30 07:45

    以太網模塊被忽視的角落 #電磁兼容EMC #電子工程師 #電子元器件 #磁珠 #濾波電容 #以太網

    以太網
    深圳市韜略科技有限公司
    發(fā)布于 :2025年07月25日 17:35:35

    Analog Devices Inc. ADIN1110低功耗10BASE-T1L以太網MAC-PHY數據手冊

    Analog Devices Inc. ADIN1110低功耗10BASE-T1L以太網MAC-PHY集成了以太網PHY內核、MAC、所有相關模擬電路、輸入和輸出時鐘緩沖。ADIN11
    的頭像 發(fā)表于 07-02 11:20 ?1647次閱讀
    Analog Devices Inc. ADIN1110低功耗10BASE-T1L<b class='flag-5'>以太網</b><b class='flag-5'>MAC</b>-PHY數據手冊

    以太網入門:從零開始,掌握以太網基礎知識!

    以太網作為現(xiàn)代通信技術的基石,其重要性不言而喻。無論是日常網絡應用,還是AI對高速大帶寬網絡的需求,以太網都扮演著不可或缺的角色。本文將從零開始,帶您了解以太網的基礎知識,幫助您快速入門。什么是
    的頭像 發(fā)表于 06-09 14:00 ?4117次閱讀
    <b class='flag-5'>以太網</b>入門:從零開始,掌握<b class='flag-5'>以太網</b>基礎知識!

    Microchip LAN9211-ABZJ 集成 10/100 以太網 PHY的以太網控制器

    Microchip LAN9211-ABZJ 集成 10/100 以太網 PHY的以太網控制器
    的頭像 發(fā)表于 06-04 14:56 ?1130次閱讀
    Microchip LAN9211-ABZJ 集成 10/100 <b class='flag-5'>以太網</b> PHY的<b class='flag-5'>以太網</b>控制器

    ADIN1110可靠的工業(yè)低功耗10BASE-T1L 以太網 MAC-PHY技術手冊

    ADIN1110是一款面向工業(yè)以太網應用的超低功耗單端口10BASE-T1L收發(fā)器,符合IEEE^?^ 802.3cg-2019 ^?^ 以太網標準,支持長程10 Mb/s單對以太網(SPE
    的頭像 發(fā)表于 05-15 11:53 ?1632次閱讀
    ADIN1110可靠的工業(yè)低功耗10BASE-T1L <b class='flag-5'>以太網</b> <b class='flag-5'>MAC</b>-PHY技術手冊

    雙通道CAN轉以太網#CAN轉以太網#三格電子

    以太網
    三格電子科技
    發(fā)布于 :2025年05月12日 13:17:05

    串口轉以太網芯片選型指南:2025十大以太網模塊品牌盤點與應用方案解析

    隨著物聯(lián)網(IoT)、工業(yè)自動化和智能設備的廣泛普及,串口轉以太網技術的需求持續(xù)增長。串口轉以太網芯片作為實現(xiàn)串口設備聯(lián)網的核心組件,在工業(yè)控制、數據采集、智能家居等領域起到了至關重要的作用。然而
    的頭像 發(fā)表于 04-09 15:30 ?2032次閱讀

    廣成科技CAN轉以太網模塊的作用和應用

    CAN轉以太網模塊是一類能夠將CAN總線數據轉換為以太網數據的設備,通常用于實現(xiàn)CAN總線與以太網總線之間的互聯(lián)互通。在智能鎖柜和智能文件交換箱中,CAN轉
    的頭像 發(fā)表于 03-20 13:58 ?1385次閱讀
    廣成科技CAN轉<b class='flag-5'>以太網</b>模塊的作用和應用

    請問MAC回環(huán)或以太網PHY芯片回環(huán)怎么實現(xiàn)?

    MAC回環(huán)或以太網PHY芯片回環(huán)怎么實現(xiàn)?
    發(fā)表于 03-12 06:05