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

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

3天內不再提示

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

嵌入式USB開發(fā) ? 來源:嵌入式USB開發(fā) ? 作者:嵌入式USB開發(fā) ? 2023-08-30 09:37 ? 次閱讀

本文轉自公眾號歡迎關注

一.前言

以太網驅動的編寫與調試往往從MDIO接口開始,MDIO是MAC訪問PHY的接口。實現(xiàn)通過MDIO對PHY進行操作才能配置PHY,所以實現(xiàn)MDIO讀寫是第一步。DWC_ether_qos提供了SMA模塊,操作兩個寄存器即可實現(xiàn)PHY寄存器的讀寫,比較簡單方便,且支持C45和C22兩種模式,另外有比較靈活的配置參數(shù)后面會詳講。

二.SMA模塊介紹

DWC_ether_qos中SMA(Station Management Agent)是一種雙線站管理接口(MIM:Station Management interface),即MDIO管理接口,通過SMA模塊即MDIO接口可以訪問PHY的寄存器。

其具備以下特征:

l時鐘

IEEE 802.3中規(guī)定,MDC的最大操作頻率(gmi_MDC_o)是2.5MHz。在DWC_ether_qos中,gmii_mdc_o時鐘是從csr_i分頻得到的,通過MAC_MDIO_Address寄存器中的CR字段配置,

要注意該分頻值一般要使得MDC滿足不大于2.5MHz的要求。如果系統(tǒng)支持更高的頻率該分頻也可以分頻到大于2.5MHz的頻率。

l模式選擇:MAC_MDIO_Address 的C45E 配置使用C45還是C22格式。

l前導抑制:MAC_MDIO_Address的PSE控制是否發(fā)送只有一個bit的前導的幀。

l時鐘保持與連續(xù)傳輸:MAC_MDIO_Address 的NTC可以配置MDIO幀發(fā)送完后時鐘保持07個CLK。在此基礎上還可以配置MAC_MDIO_Address 的BTB使能連續(xù)傳輸,此時不等07個時鐘保持結束,Busy信號就會發(fā)送完幀后立即清除,軟件可以開始下一次傳輸,否則需要等到配置的0~7個保持時鐘之后Busy才會清除。BTB必須在NTC大于0時才能使能。

三. MDIO幀結構

MDIO幀的一些特征:

MDC一般是1MHz~2.5MHz。

MDIO引腳需要一個1.5k歐姆的上拉電阻,以在空閑和周轉期間保持MDIO高電平。

MDC下降沿修改數(shù)據(jù),上升沿鎖存數(shù)據(jù),這樣使得數(shù)據(jù)的建立和保持時間都是半個周期。

高位先發(fā)送,高字節(jié)先發(fā)送。

參考

IEEE 802.3,Section 22.2.4.5

**3.1 **Clause 45

SMA支持在該模式下操作時的讀后遞增地址。

MAC_MDIO_Address 的C45E 配置為1使用C45.

字段描述
IDLEgmii_mdc_o無時鐘,MDIO處于高阻態(tài)。通過外部MDIO上拉到高電平
PREAMBLE32 個連續(xù)的1,前導抑制模式則只有一個bit。
START包開始2’b00
OPCODE操作碼■ 2’b00 讀寫地址寄存器■ 2’b01 讀寫數(shù)據(jù), 讀寫完地址不遞增■ 2’b10 讀寫數(shù)據(jù),讀寫完地址自動遞增■ 2’b11 讀寫數(shù)據(jù),僅寫完地址自動遞增
PHY ADDR5-bit 的PHY地址,可以編碼最多32 個PHY。
DEV ADDR5-bit 設備地址可以編碼32個設備。
TATurnaround寄存器地址和幀的數(shù)據(jù)字段之間的2位時間間隔,以避免在讀取事務期間發(fā)生爭用?!?2’bZ0: 讀時 第一個bit MAC和PHY都處于高組態(tài),第二個bit是PHY拉低?!?2’b10: 寫時 10都是MAC驅動。Z 表示三態(tài)
DATA/ADDRESS16-bit 值: 對于地址周期(OPCODE = 2'b00), 表示下一個周期需要訪問的寄存器地址. 對于數(shù)據(jù)寫周期,表示需要寫入寄存器的數(shù)據(jù)內容. 對于read,post-read遞增幀,表示從PHY讀出的寄存器內容.

完成一次C45寄存器讀寫需要兩步,第一步發(fā)送地址包,第二步再讀寫

圖片

**3.2 ****Clause **22

MAC_MDIO_Address 的C45E 配置為0使用C22.

幀結構如下

字段描述
IDLEgmii_mdc_o無時鐘,MDIO處于高阻態(tài)。通過外部MDIO上拉到高電平。
PREAMBLE32 個連續(xù)的1,前導抑制模式則只有一個bit。
START包開始2’b01
OPCODE■ 2’b01 寫■ 2’b10 讀
PHY ADDR5-bit 的PHY地址,可以編碼最多32 個PHY。
REG ADDR5-bit 寄存器地址可以編碼32個寄存器。尋址對應指定MMD的某一個寄存器。
TATurnaround寄存器地址和幀的數(shù)據(jù)字段之間的2位時間間隔,以避免在讀取事務期間發(fā)生爭用。■ 2’bZ0: 讀時 第一個bit MAC和PHY都處于高組態(tài),第二個bit是PHY拉低。■ 2’b10: 寫時 10都是MAC驅動。Z 表示三態(tài)
DATA16-bit 值:■ 寫時DWC_ether_qos 驅動MDIO■ 讀時PHY 驅動MDIO

完成C22讀寫只需要一步

圖片

讀寫波形如下

圖片

3.3使用C22模式訪問C45寄存器

使用C22訪問C45寄存器

參考https://www.ieee802.org/3/efm/public/nov02/oam/pannell_oam_1_1102.pdf

用13號寄存器作為命令寄存器,14號寄存器作為寄存器/數(shù)據(jù)寄存器

圖片

圖片

步驟如下,分為4步完成:

1.C22模式寫寄存器13,高兩位FN為00,低5位DEV設備地址。

2.C22模式將16位寄存器地址寫入14號寄存器。

3.C22模式寫寄存器13,高兩位FN為01或者10或者11,低5位DEV設備地址。

4.讀:轉至步驟5。寫:轉至步驟6

5.C22模式讀14號寄存器的16位內容。

6.C22模式將16位寄存器內容寫入14號寄存器。

四.相關寄存器

MDIO操作僅需要兩個寄存器

MAC_MDIO_Address和MAC_MDIO_Data

4.1 MAC_MDIO_Address

Offset: 0x200

PSE[27]: bit27,置位則只發(fā)送1bit的前導,否則發(fā)送32位的前導

BTB **[26]: **bit26,NTC 不為0時生效,NTC為0時不能設置為1.

設置為1時,NTC不為0時,MDIO發(fā)送完幀不等NTC個時鐘就立即清除GB位,可以立即重新下一次讀寫。

設置為0,則等待NTC保持時鐘之后GB才清除。

**PA[25:21] **5位的PHY地址

RDA[22:16] 對于C22模式的寄存器地址,C45的設備地址MMD。

NTC[14:12] MDIO幀的發(fā)送完后,MDC再保持該配置個時鐘。

CR[11:8]:MDC時鐘選擇 一般配置為1~2.5MHz

0000: CSR clock = 60-100 MHz; MDC clock = CSR clock/42
0001: CSR clock = 100-150 MHz; MDC clock = CSR clock/62
0010: CSR clock = 20-35 MHz; MDC clock = CSR clock/16
0011: CSR clock = 35-60 MHz; MDC clock = CSR clock/26
0100: CSR clock = 150-250 MHz; MDC clock = CSR clock/102
0101: CSR clock = 250-300 MHz; MDC clock = CSR clock/124
0110, 0111: Reserved

1000: CSR clock/4
1001: CSR clock/6
1010: CSR clock/8
1011: CSR clock/10
1100: CSR clock/12
1101: CSR clock/14
1110: CSR clock/16
1111: CSR clock/18

SKAP[4]:只有C45E使能時才有,置位時不發(fā)送地址包

GOC_1_0[3:2]:

00: Reserved
01: Write
10: Post Read Increment Address for Clause 45 PHY
11: Read

C45E[1]: 使能C45模式

GB[0]: 軟件寫1觸發(fā)讀寫操作,讀寫完硬件清零。

4.2 MAC_MDIO_Data

Offset: 0x204

圖片

RA[31:16]:C45E模式時指定16位寄存器地址。

GD[15:0]:讀出或者寫入寄存器的16位值。

五.MDIO讀寫驅動

5.1 寄存器操作接口

實現(xiàn)基本的寄存器級別的操作接口,

后面再對關鍵參數(shù)MDC時鐘,NTC,PSE等測試,抓取波形進行驗證。

/*
 * GB_MASK bit0 置位,觸發(fā)MDIO操作, 操作完GB_MASK位硬件清零
 */
GMAC_INLINE int gmac_cfg_mdio_address(uint8_t id, uint8_t pse, uint8_t btb, uint8_t phyadd, 
                                    uint8_t reg_dev, uint8_t ntc, uint32_t csrclk,
                                    uint8_t skap, uint8_t cmd, uint8_t c45)
{
    (void)id;
    uint32_t tmp = 0;
    uint8_t csr = GMAC_CLK_60_100MHZ;
    if(csrclk >= 250000000ul)
    {
        csr = GMAC_CLK_250_300MHZ;
    }
    else if(csrclk >= 150000000ul)
    {
        csr = GMAC_CLK_150_250MHZ;
    }
    else if(csrclk >= 100000000ul)
    {
        csr = GMAC_CLK_100_150MHZ;
    }
    else if(csrclk >= 60000000ul)
    {
        csr = GMAC_CLK_60_100MHZ;
    }
    else if(csrclk >= 35000000ul)
    {
        csr = GMAC_CLK_35_60MHZ;
    }
    else
    {
        csr = GMAC_CLK_20_35MHZ;
    }
    tmp = ((uint32_t)csr < < CR_OFFSET) 
            | ((uint32_t)cmd < < GOC_0_OFFSET) 
            | (uint32_t)GB_MASK 
            | (((uint32_t)reg_dev < < RDA_OFFSET) & RDA_MASK) 
            | (((uint32_t)phyadd < < PA_OFFSET) & PA_MASK)
            | (((uint32_t)pse < < PSE_OFFSET) & PSE_MASK)
            | (((uint32_t)btb < < BTB_OFFSET) & BTB_MASK)
            | (((uint32_t)ntc < < NTC_OFFSET) & NTC_MASK)
            | (((uint32_t)skap < < SKAP_OFFSET) & SKAP_MASK)
            | (((uint32_t)c45 < < C45E_OFFSET) & C45E_MASK);
    GMAC_WRITE_REG(CFG_MAC_MDIO_ADDRESS_ADDR, tmp);
    return 0;
}


GMAC_INLINE int gmac_get_mdio_data(uint8_t id, uint16_t* data, uint16_t* regaddr)
{
    (void)id;
    uint32_t tmp = 0;
    tmp = GMAC_READ_REG(CFG_MAC_MDIO_DATA_ADDR);
    if(data != (void*)0)
    {
        *data = (tmp & GD_MASK) > > GD_OFFSET;
    }
    if(regaddr != (void*)0)
    {
        *regaddr = (tmp & REG_ADDR_MASK) > > REG_ADDR_OFFSET;
    }
    return 0;
}


GMAC_INLINE int gmac_set_mdio_data(uint8_t id, uint16_t data, uint16_t regaddr)
{
    (void)id;
    uint32_t tmp = 0;
    tmp = (((uint32_t)regaddr<

1 MDC時鐘

我這里時鐘是60MHz,設置CR為0,即分頻42,理論上60/42=1.429MHz

實測MDC頻率為1.449MHz

圖片

圖片

設置CR為3,即分頻26,理論上60/26=2.31MHz

實測MDC頻率為2.326MHz

圖片

圖片

2 NTC

NTC=0,幀發(fā)送完后MDC立即結束

圖片

圖片

NTC=7,幀發(fā)送完后MDC保持7個CLK

圖片

圖片

3 PSE

PSE=0,發(fā)送32個前導1

圖片

圖片

PSE=1,發(fā)送1個前導1,可以看到這個PHY是不支持前導抑制的,即發(fā)送1個前導時不能讀寫。

圖片

5.2 C22讀寫

驅動代碼如下

int iot_gmac_mdio_read(uint8_t id, uint8_t phyadd, uint8_t reg, uint16_t *data, uint32_t clk)
{
    int timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    gmac_cfg_mdio_address(id, 0, 0, phyadd, reg, 0, clk, 0, GMAC_CMD_PHY_RD, 0);


    timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    gmac_get_mdio_data(id, data, (void*)0);
    return 0;
}


int iot_gmac_mdio_write(uint8_t id, uint8_t phyadd, uint8_t reg, uint16_t data, uint32_t clk)
{
    int timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    gmac_set_mdio_data(id, data, 0);
    gmac_cfg_mdio_address(id, 0, 0, phyadd, reg, 0, clk, 0, GMAC_CMD_PHY_WR, 0);
    timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    return 0;
}

如下是往0號寄存器寫0x9040即Reset軟復位PHY

圖片

如下是讀0號寄存器為0x1040即Reset軟復位PHY完成,硬件自清零了Reset位。

圖片

5.3 C45讀寫

驅動代碼如下

int iot_gmac_mdio_readc45(uint8_t id, uint8_t phyadd, uint8_t dev, uint16_t reg, uint16_t *data, uint32_t clk)
{
    int timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }
    gmac_set_mdio_data(id, 0, reg);
    gmac_cfg_mdio_address(id, 0, 0, phyadd, dev, 0, clk, 0, GMAC_CMD_PHY_RD, 1);


    timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    gmac_get_mdio_data(id, data, (void*)0);
    return 0;
}


int iot_gmac_mdio_writec45(uint8_t id, uint8_t phyadd, uint8_t dev, uint16_t reg, uint16_t data, uint32_t clk)
{
    int timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    gmac_set_mdio_data(id, data, reg);
    gmac_cfg_mdio_address(id, 0, 0, phyadd, dev, 0, clk, 0, GMAC_CMD_PHY_WR, 1);
    timeout = IOT_GMAC_MDIO_TIMEOUT;
    while(gmac_is_mdio_busy(id) && (timeout-- > 0));
    if(timeout <= 0)
    {
        return -1;
    }


    return 0;
}

波形如下:兩個包,一個是地址包,一個是數(shù)據(jù)包

圖片

圖片

5.4 C22模式讀寫C45寄存器

以下是RTL8211F的MMD寄存器,不支持直接C45模式,但是支持C22模式讀C45寄存器,

通過13和14號寄存器實現(xiàn)。

圖片

驅動代碼如下

int dwc_mdio_c22readc45(uint8_t id, uint8_t phyadd, uint8_t dev, uint16_t reg, uint16_t *data, uint32_t clk)
{
    iot_gmac_mdio_write(id, phyadd, 13, (0< < 14) | dev, clk);
    iot_gmac_mdio_write(id, phyadd, 14, reg, clk);
    iot_gmac_mdio_write(id, phyadd, 13, (1u< < 14) | dev, clk);
    iot_gmac_mdio_read(id, phyadd, 14, data, clk);
    return 0;
}


int dwc_mdio_c22writec45(uint8_t id, uint8_t phyadd, uint8_t dev, uint16_t reg, uint16_t data, uint32_t clk)
{
    iot_gmac_mdio_write(id, phyadd, 13, (0< < 14) | dev, clk);
    iot_gmac_mdio_write(id, phyadd, 14, reg, clk);
    iot_gmac_mdio_write(id, phyadd, 13, (1u< < 14) | dev, clk);
    iot_gmac_mdio_write(id, phyadd, 14, data, clk);
    return 0;
}

測試代碼如下

uint16_t c45reg = 0;
    dwc_mdio_c22writec45(p_ctrl.unit,p_ctrl.phy_addr,3,0,1u< < 10,p_ctrl.clk);
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,3,0,&c45reg,p_ctrl.clk);
    printf("PC1R=%xrn",c45reg);
    c45reg = 0;
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,3,1,&c45reg,p_ctrl.clk);
    printf("PS1R=%xrn",c45reg);
    c45reg = 0;
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,3,20,&c45reg,p_ctrl.clk);
    printf("EEECR=%xrn",c45reg);
    c45reg = 0;
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,3,22,&c45reg,p_ctrl.clk);
    printf("EEEWER=%xrn",c45reg);
    c45reg = 0;
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,7,60,&c45reg,p_ctrl.clk);
    printf("EEEAR=%xrn",c45reg);
    c45reg = 0;
    dwc_mdio_c22readc45(p_ctrl.unit,p_ctrl.phy_addr,7,61,&c45reg,p_ctrl.clk);
    printf("EEELPAR=%xrn",c45reg);

打印結果如下

可以看到PC1R的bit10設置為了1,其他寄存器對照手冊可以看到都是默認值

圖片

波形如下

寫4步完成

圖片

讀4步完成

圖片

六. 總結

以太網驅動編寫調試的第一步都是調通MDIO接口,重點是要去抓取信號分析實際的波形,比如寄存器的每一個參數(shù)對應波形的什么變化,這在驅動編寫調試中很重要,一定要對寄存器每一個bit的功能都非常清晰。

審核編輯 黃宇

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

    關注

    8

    文章

    5303

    瀏覽量

    126642
  • 嵌入式
    +關注

    關注

    5082

    文章

    19123

    瀏覽量

    305146
  • 以太網
    +關注

    關注

    40

    文章

    5424

    瀏覽量

    171701
  • 寄存器
    +關注

    關注

    31

    文章

    5343

    瀏覽量

    120348
  • 驅動
    +關注

    關注

    12

    文章

    1840

    瀏覽量

    85289
收藏 人收藏

    評論

    相關推薦

    TOSUN 車載以太網仿真測試解決方案

    TOSUN車載以太網仿真測試解決方案隨著自動駕駛、車聯(lián)網和智能化系統(tǒng)的廣泛應用,車載電子組件和傳感器的數(shù)量與復雜性都在持續(xù)增加,為了滿足這些更為復雜性的需求,車載以太網作為一種新型車載網絡進入汽車網
    的頭像 發(fā)表于 12-07 01:07 ?446次閱讀
    TOSUN 車載<b class='flag-5'>以太網</b>仿真<b class='flag-5'>測試</b>解決方案

    聊一聊以太網發(fā)送描述符

    相對于其他總線,以太網的知識龐雜,當然,可獲取的資料也豐富。以太網的知識從驅動層到上層協(xié)議棧,很難一下消化,所以,不妨從點開始,不斷地拓展和鏈接,從而形成完整地以太網知識框架,進而更好
    的頭像 發(fā)表于 10-22 15:09 ?355次閱讀
    聊一聊<b class='flag-5'>以太網</b>發(fā)送描述符

    適用于工業(yè)應用的使用MDIO以太網PHY配置

    電子發(fā)燒友網站提供《適用于工業(yè)應用的使用MDIO以太網PHY配置.pdf》資料免費下載
    發(fā)表于 09-21 10:24 ?0次下載
    適用于工業(yè)應用的使用<b class='flag-5'>MDIO</b>的<b class='flag-5'>以太網</b>PHY配置

    Test House-第三方測試認證服務——以太網一致性PMA測試案例講解#車載以太網

    以太網
    北匯信息POLELINK
    發(fā)布于 :2024年08月19日 18:38:12

    車載以太網線束傳輸性能——汽車線束故障定位實際測試結果分析#車載以太網

    車載以太網
    北匯信息POLELINK
    發(fā)布于 :2024年08月16日 18:13:19

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

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

    Banana Pi BPI-M4 Berry 開源硬件開發(fā)以太網口和WiFi測試

    Banana Pi BPI-M4 Berry 開源硬件開發(fā)以太網口和WiFi測試
    的頭像 發(fā)表于 07-02 16:16 ?895次閱讀
    Banana Pi BPI-M4 Berry 開源硬件<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>以太網</b>口和WiFi<b class='flag-5'>測試</b>

    CANape&VN5620監(jiān)控記錄以太網數(shù)據(jù)操作演示#車載以太網 #CANape

    車載以太網
    北匯信息POLELINK
    發(fā)布于 :2024年06月11日 15:53:15

    工業(yè)以太網和普通以太網區(qū)別在哪

    工業(yè)以太網和普通以太網是兩種不同的以太網技術,它們在設計、性能、應用和可靠性等方面存在顯著差異。本文將詳細介紹這兩種以太網技術的區(qū)別。 設計差異 工業(yè)
    的頭像 發(fā)表于 06-11 10:30 ?2696次閱讀

    使用VN5620監(jiān)控記錄以太網總線數(shù)據(jù)#車載以太網 #CANape

    以太網硬件
    北匯信息POLELINK
    發(fā)布于 :2024年06月09日 16:45:04

    車載以太網硬件接口VN5620設備展示與介紹#車載以太網

    車載以太網
    北匯信息POLELINK
    發(fā)布于 :2024年05月31日 10:27:03

    車載以太網接口VN5650使用場景介紹#車載以太網

    以太網
    北匯信息POLELINK
    發(fā)布于 :2024年05月11日 17:58:05

    以太網交換芯片是什么 以太網交換芯片的作用有哪些

    以太網交換芯片是一種專門設計用于處理以太網數(shù)據(jù)包的集成電路,它是網絡交換機的核心組件。這種芯片負責在網絡中轉發(fā)數(shù)據(jù)包,確保數(shù)據(jù)能夠從源端口傳輸?shù)侥康亩丝凇?b class='flag-5'>以太網交換芯片的功能包括但不限于數(shù)據(jù)包的接收、過濾、轉發(fā)、錯誤檢測和處理,
    的頭像 發(fā)表于 03-21 16:14 ?1956次閱讀

    以太網MDIO協(xié)議工作原理與應用

    MDIO主機(即產生MDC時鐘的設備)通常被稱為STA(Station Management Entity),而MDIO從機通常被稱為MMD(MDIO Management Device)。通常STA都是MAC層器件的一部分,而
    發(fā)表于 02-27 09:32 ?3405次閱讀
    <b class='flag-5'>以太網</b>中<b class='flag-5'>MDIO</b>協(xié)議工作原理與應用

    汽車技術的未來:Netropy如何測試和確保汽車以太網的性能

    在汽車行業(yè)持續(xù)創(chuàng)新的今天,汽車以太網的性能和可靠性成為了關鍵焦點。如何測試和確保汽車以太網的性能?我們來看看BroadR-Reach技術如何革新車載網絡,并通過綜合性能測試來確保網絡在
    的頭像 發(fā)表于 01-20 08:04 ?545次閱讀
    汽車技術的未來:Netropy如何<b class='flag-5'>測試</b>和確保汽車<b class='flag-5'>以太網</b>的性能