99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32以太網(wǎng)MAC Loopback的實(shí)現(xiàn)

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

掃碼添加小助手

加入工程師交流群

STM32 以太網(wǎng) MAC Loopback的實(shí)現(xiàn)

前言

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

應(yīng)用層的程序,或者協(xié)議棧出錯(cuò),數(shù)據(jù)根本沒有到STM32以太網(wǎng)外設(shè)。這種情況我們?cè)谡{(diào)試的時(shí)候,在以太網(wǎng)輸出函數(shù)low_level_output中打個(gè)斷點(diǎn)就可以檢查出來(lái)。

STM32以太網(wǎng)MAC出現(xiàn)問(wèn)題,沒有把數(shù)據(jù)發(fā)送出去。對(duì)于這種情況,可以通過(guò)STM32以太網(wǎng)的MAC loopback功能來(lái)檢查MAC的收發(fā)是否正常。

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

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

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

MAC loopback模式

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

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

但要正確的接收到loopback的數(shù)據(jù),還需要注意一下幾個(gè)地方:

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

以太網(wǎng)幀中的目標(biāo)MAC地址應(yīng)該和源MAC地址一樣,或者設(shè)定為廣播地址(FFFFFF:FF),否則MAC默認(rèn)將會(huì)過(guò)濾接收到的數(shù)據(jù)?;蛘邔TH_MACFFR寄存器的RA置位,以接收所有的以太網(wǎng)幀。

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

MAC loopback例程

例程說(shuō)明

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

這個(gè)例程提供兩種工作模式:

正常模式

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

MAC loopback模式

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

例程配置

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

設(shè)置目標(biāo)MAC地址(dst_addr)

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

定義幀數(shù)據(jù)的類型(frame_type)

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

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

要發(fā)送的數(shù)據(jù)保存在teststring數(shù)組中。請(qǐng)注意,這個(gè)數(shù)組里只保存應(yīng)用層要發(fā)送的數(shù)據(jù),也就是以太網(wǎng)幀格式的數(shù)據(jù)段,不包括目標(biāo)/源MAC地址,以太網(wǎng)幀數(shù)據(jù)類型和CRC校驗(yàn)碼。

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

修改好以上的參數(shù)后,重新編譯燒錄后運(yùn)行。

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

正常模式演示

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

MAC例程端的配置如下:

1. 接收數(shù)據(jù)測(cè)試

打開xcap,構(gòu)造一個(gè)發(fā)給STM32F769I-EVAL板的以太網(wǎng)幀。

目標(biāo)MAC地址:020000:00

Frame Type: Custom(0x0601)

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

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

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

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

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

同時(shí)在STM32F769I-EVAL板這邊也收到數(shù)據(jù)。

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

2.發(fā)送數(shù)據(jù)測(cè)試

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

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

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

MAC loopback模式演示

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

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

查看rxbuffer接收到的數(shù)據(jù):

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

責(zé)任編輯:xj

原文標(biāo)題:工程師筆記 | STM32以太網(wǎng) MAC Loopback的實(shí)現(xiàn)

文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    41

    文章

    5635

    瀏覽量

    175961
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364993
  • Mac
    Mac
    +關(guān)注

    關(guān)注

    0

    文章

    1117

    瀏覽量

    53113

原文標(biāo)題:工程師筆記 | STM32以太網(wǎng) MAC Loopback的實(shí)現(xiàn)

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Analog Devices Inc. ADIN1110低功耗10BASE-T1L以太網(wǎng)MAC-PHY數(shù)據(jù)手冊(cè)

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

    以太網(wǎng)入門:從零開始,掌握以太網(wǎng)基礎(chǔ)知識(shí)!

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

    雙通道CAN轉(zhuǎn)以太網(wǎng)#CAN轉(zhuǎn)以太網(wǎng)#三格電子

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

    廣成科技CAN轉(zhuǎn)以太網(wǎng)模塊的作用和應(yīng)用

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

    請(qǐng)問(wèn)MAC回環(huán)或以太網(wǎng)PHY芯片回環(huán)怎么實(shí)現(xiàn)

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

    單對(duì)以太網(wǎng)供電技術(shù)的演進(jìn)和應(yīng)用

    單對(duì)以太網(wǎng)(SPE)是一種新興的以太網(wǎng)通信標(biāo)準(zhǔn),與通常使用四對(duì)線的傳統(tǒng)以太網(wǎng)不同,它只使用一對(duì)線進(jìn)行數(shù)據(jù)傳輸。對(duì)于那些空間和重量受限的應(yīng)用,例如汽車、工業(yè)和物聯(lián)網(wǎng)(IoT)設(shè)備,這是一項(xiàng)非常實(shí)用的技術(shù)。如果通過(guò)此方式還能
    的頭像 發(fā)表于 01-15 14:17 ?2251次閱讀
    單對(duì)<b class='flag-5'>以太網(wǎng)</b>供電技術(shù)的演進(jìn)和應(yīng)用

    以太網(wǎng)和TCP/IP的關(guān)系解析

    在現(xiàn)代計(jì)算機(jī)網(wǎng)絡(luò)中,以太網(wǎng)和TCP/IP協(xié)議棧是構(gòu)建網(wǎng)絡(luò)通信的基礎(chǔ)。以太網(wǎng)定義了局域網(wǎng)(LAN)中的數(shù)據(jù)鏈路層和物理層的技術(shù)標(biāo)準(zhǔn),而TCP/IP協(xié)議棧則涵蓋了從網(wǎng)絡(luò)層到應(yīng)用層的一系列協(xié)議,用于
    的頭像 發(fā)表于 11-08 09:21 ?2384次閱讀

    以太網(wǎng)協(xié)議的種類和特點(diǎn)

    (DIX Ethernet) 定義 :以太網(wǎng)II是由DEC、Intel和Xerox(DIX)聯(lián)合定義的,是最早的以太網(wǎng)標(biāo)準(zhǔn)。 特點(diǎn) :使用MAC地址進(jìn)行設(shè)備間的通信,幀結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn)
    的頭像 發(fā)表于 11-08 09:10 ?3431次閱讀

    工業(yè)以太網(wǎng)的應(yīng)用場(chǎng)景分析

    隨著工業(yè)4.0和智能制造的興起,工業(yè)以太網(wǎng)作為連接工業(yè)設(shè)備、實(shí)現(xiàn)自動(dòng)化和智能化的關(guān)鍵技術(shù),其應(yīng)用場(chǎng)景日益廣泛。 工業(yè)以太網(wǎng)的特點(diǎn) 高可靠性 :工業(yè)以太網(wǎng)設(shè)備通常采用堅(jiān)固的外殼和接口,能
    的頭像 發(fā)表于 11-07 14:26 ?2156次閱讀

    以太網(wǎng)的傳輸介質(zhì)和工作模式

    以太網(wǎng)是一種廣泛應(yīng)用的局域網(wǎng)(LAN)技術(shù),它通過(guò)特定的傳輸介質(zhì)和工作模式,在多個(gè)設(shè)備之間高效地傳輸數(shù)據(jù)。本文將從以太網(wǎng)的傳輸介質(zhì)和工作模式兩個(gè)方面進(jìn)行詳細(xì)闡述,幫助讀者深入了解以太網(wǎng)
    的頭像 發(fā)表于 10-08 10:07 ?2133次閱讀

    以太網(wǎng)幀格式和功能詳解

    以太網(wǎng)幀(Ethernet Frame)是以太網(wǎng)(Ethernet)協(xié)議用于在局域網(wǎng)(LAN)中傳輸數(shù)據(jù)的基本單位。理解以太網(wǎng)幀的結(jié)構(gòu)和傳輸過(guò)程對(duì)于掌握局域網(wǎng)通信的原理至關(guān)重要。以下將
    的頭像 發(fā)表于 10-08 10:03 ?3960次閱讀

    以太網(wǎng)幀結(jié)構(gòu)是怎樣的

    以太網(wǎng)幀(Ethernet Frame)是以太網(wǎng)(Ethernet)協(xié)議用于在局域網(wǎng)(LAN)中傳輸數(shù)據(jù)的基本單位。理解以太網(wǎng)幀的結(jié)構(gòu)對(duì)于掌握局域網(wǎng)通信的原理至關(guān)重要。
    的頭像 發(fā)表于 10-08 10:00 ?2907次閱讀

    以太網(wǎng)端口的類型和特性

    以太網(wǎng)端口,即以太網(wǎng)接口,是網(wǎng)絡(luò)中用于連接設(shè)備并進(jìn)行數(shù)據(jù)交換的端口。它基于IEEE 802.3標(biāo)準(zhǔn),并使用以太網(wǎng)協(xié)議進(jìn)行數(shù)據(jù)傳輸。以太網(wǎng)端口在局域網(wǎng)
    的頭像 發(fā)表于 08-07 15:27 ?3234次閱讀

    車載以太網(wǎng)與傳統(tǒng)以太網(wǎng)的區(qū)別

    車載以太網(wǎng)與傳統(tǒng)以太網(wǎng)在多個(gè)方面存在顯著的差異,這些差異主要體現(xiàn)在傳輸速率、實(shí)時(shí)性、可靠性、物理層標(biāo)準(zhǔn)、應(yīng)用場(chǎng)景以及技術(shù)發(fā)展等方面。
    的頭像 發(fā)表于 07-25 11:12 ?3411次閱讀

    車載以太網(wǎng)的優(yōu)勢(shì)和應(yīng)用

    車載以太網(wǎng)作為一種新興的車載網(wǎng)絡(luò)技術(shù),正在逐漸成為汽車行業(yè)中的關(guān)鍵技術(shù)之一。其優(yōu)勢(shì)在于高帶寬、低延遲、高可靠性以及良好的兼容性和拓展性,這些特點(diǎn)使得車載以太網(wǎng)在車輛通信和控制系統(tǒng)中具有廣泛的應(yīng)用前景。以下將詳細(xì)闡述車載以太網(wǎng)的優(yōu)
    的頭像 發(fā)表于 07-25 11:08 ?1573次閱讀