中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

STM32網絡中SMI接口有什么用

發布時間:2021-12-27 11:40:52 來源:億速云 閱讀:266 作者:小新 欄目:互聯網科技

小編給大家分享一下STM32網絡中SMI接口有什么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

01、以太網簡介

STM32F20X和STM32F21的以太網外設可接受和發送數據按照IEE802.3-2002標準。

以太網提供一個完整的、靈活的外設去滿足不同應用和要求。它支持與外部相連(PHY)的兩個標準的工業接口:默認情況使用在IEEE802.3規范中定義的獨立介質接口(MII)和精簡介質獨立接口(RMII)。它可以被用于大量的需求,例如開關(交換機)、網絡接口卡等等。

以太網滿足下列標準:

● IEEE 802.3-2002,用于以太網MAC。

● IEEE 1588-2008 標準,用于規定聯網時鐘同步的精度。

● AMBA 2.0,用于AHB 主/從端口。

● RMII 聯盟的 RMII規范。

02、STM32F207的ETH介紹

STM32F207支持MII接口和RMII接口。STM32F207以太網外設包括一個MAC802.3(介質訪問控制)和一個DMA控制器。它默認情況下支持MII和RMII接口,通過一個選擇位進行切換(參考SYSCFG_PMC寄存器)。

DMA控制器通過AHB主從接口和內核與內存相連。AHB主接口控制數據傳輸,AHB從接口用于訪問控制和狀態寄存器(CSR)空間。

在MAC內核發送數據之前,數據經過DMA的方式發送到FIFO中緩存。同樣的,接收FIFO存儲通過線路收到的以太網數據幀,直到這些數據幀通過DMA被傳輸到系統內存。

以太網外設也包括一個SMI,用于和外部PHY通訊。通過一組寄存器的配置,用戶可以選擇MAC和DMA控制器的不同模式和功能。

當使用以太網時,AHB時鐘必須至少25MHZ。

下面是ETH的框圖

STM32網絡中SMI接口有什么用

關于AHB的連接信息:

區域1:我們稱為SMI接口,用于配置外部PHY芯片。

區域2:是數據交換接口,也就是上面我們說的MII接口和RMII接口。

03、SMI接口

3.1、站管理接口:SMI

站管理接口允許任何PHY寄存器請求通過2線時鐘和數據線。這個接口支持最多到32個PHY。

應用程序可以從 32個 PHY中選擇一個PHY,然后從任意PHY 包含的32 個寄存器中選擇一個寄存器,發送控制數據或接收狀態信息。任意給定時間內只能對一個PHY 中的一個寄存器進行尋址。

MDC 時鐘線和 MDIO數據線在微控制器中均用作復用功能I/O:

MDC:周期性時鐘,提供以最大頻率2.5 MHz 傳輸數據時的參考時序。MDC的最短高電平時間和最短低電平時間必須均為160 ns。MDC的最小周期必須為400 ns。在空閑狀態下,SMI管理接口將 MDC時鐘信號驅動為低電平。

MDIO:數據輸入/輸出比特流,用于通過MDC 時鐘信號向/從PHY 設備同步傳輸狀態信息。

STM32網絡中SMI接口有什么用

3.2、SMI幀結構

下圖給出了讀操作和寫操作幀結構,位傳輸必須要求從左到右。

STM32網絡中SMI接口有什么用

Preamble32bit前導符):每個傳輸(讀或者寫)都必須以前導符開始,前導符是MDIO線上連續的32個邏輯’1’信號,和對應MDC線上的32個時鐘信號。這部分信號用于和PHY設備建立同步。

Start(起始符):幀的起始符定義為’01’,也就是MDIO線從邏輯’1’降到’0’再回到’1’,以標記傳輸的。

開始。

Operation(操作符):用于定義操作的類型:讀或者寫。

PADDRPHY的地址有5位,可以區分32個PHY。高位先被發送和接收。

RADDR寄存器的地址有5位,可以尋址32個獨立的寄存器。高位先被發送和接收。

TA2位的轉向符,插在RADDR和數據(DATA)之間,用于避免讀操作時發生沖突。讀操作時,在TA的這2位時間內,MAC控制器保持MDIO線的高阻狀態,PHY設備則先保持1位的高阻狀態,在第2位時輸出’0’信號。寫操作時,在TA的這2位時間內,MAC控制器驅動MDIO線輸出’10’信號,而PHY設置則保持高阻狀態。

DATA(數據)16位的數據域。最先發送和接收的是ETH_MIID寄存器的第15位。

空閑位:MDIO線保持在高阻狀態。取消所有的三態驅動,由PHY的上拉電阻保證MDIO線處于邏輯’1’。

3.3、SMI寫操作

當應用程序設置了MII寫和忙位(以太網MACMII地址寄存器(ETH_MACMIIAR)),SMI接口會向PHY傳 送 PHY地 址 和 PHY寄 存 器 地 址 ,然 后 傳 輸 數 據 (以 太 網 MAC MII 數據 寄 存器(ETH_MACMIIDR))。在SMI接口傳輸數據的過程中,不能修改MII地址寄存器和MII數據寄存器的內容;在此過程中(忙位為高),對MII地址寄存器或MII數據寄存器的寫操作將被忽視,并且不影響整個傳輸的正確完成。當完成寫操作時,SMI接口將清除忙位,告知應用程序。

下圖描述了寫操作時的幀格式。

STM32網絡中SMI接口有什么用

3.4、SMI讀操作

當程序把以太網MACMII地址寄存器(ETH_MACMIIAR)的MII忙位置為’1’,而保持MII寫位為’0’,SMI接口則發送PHY地址和PHY寄存器地址,執行讀PHY寄存器的操作。在整個傳輸過程中,應用程序不能修改MII地址寄存器和MII數據寄存器的內容。在傳輸過程中(忙位為高),對MII地址寄存器或者MII數據寄存器的寫操作將被忽視,并且不影響整個傳輸的正確完成。在讀操作完成后,SMI接口將清除忙位,并把從PHY讀回的數據更新到MII數據寄存器中。

下圖描述了讀操作的幀格式

STM32網絡中SMI接口有什么用

3.5、SMI時鐘選擇

MAC 啟動管理寫/讀操作。SMI時鐘是一個分頻時鐘,其時鐘源為應用時鐘(AHB時鐘)。分頻系數取決于MII地址寄存器中設置的時鐘范圍。這里既然說到了時鐘,就再次提一下上文提到的內容:當使用以太網時,AHB時鐘必須至少25MHZ。

STM32網絡中SMI接口有什么用

04、代碼

STM32的網口的SMI接口初始化是十分簡單的。

初始化GPIO。

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA |  RCC_AHB1Periph_GPIOC |RCC_AHB1Periph_GPIOF, ENABLE);

/* Enable SYSCFG clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);  
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_ETH);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource1, GPIO_AF_ETH);

因為SMI接口需要MAC配合,所以需要是使能MAC的時鐘。

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_ETH_MAC |RCC_AHB1Periph_ETH_MAC_Tx |RCC_AHB1Periph_ETH_MAC_Rx, ENABLE);

SMI接口的讀函數和寫函數。

uint16_t ETH_ReadPHYRegister(uint16_t PHYAddress, uint16_t PHYReg)
uint32_t ETH_WritePHYRegister(uint16_t PHYAddress, uint16_t PHYReg,uint16_t PHYValue)

以上是“STM32網絡中SMI接口有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇文区| 白朗县| 卢湾区| 广宁县| 双柏县| 清新县| 泗水县| 阳西县| 育儿| 柳河县| 开江县| 广灵县| 扶沟县| 兴隆县| 邳州市| 邵东县| 巧家县| 贞丰县| 墨脱县| 资兴市| 台前县| 张家界市| 洛川县| 喀什市| 左贡县| 汕头市| 灵璧县| 武乡县| 沾益县| 海门市| 林周县| 滁州市| 固原市| 长泰县| 贡嘎县| 左权县| 治县。| 康乐县| 阜城县| 南陵县| 蒙阴县|