成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

STM32網(wǎng)絡之SMI接口

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

[[377132]]

 01以太網(wǎng)簡介

STM32F20X和STM32F21的以太網(wǎng)外設可接受和發(fā)送數(shù)據(jù)按照IEE802.3-2002標準。

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

以太網(wǎng)滿足下列標準:

  • IEEE 802.3-2002,用于以太網(wǎng)MAC。
  • IEEE 1588-2008 標準,用于規(guī)定聯(lián)網(wǎng)時鐘同步的精度。
  • AMBA 2.0,用于AHB 主/從端口。
  • RMII 聯(lián)盟的 RMII規(guī)范。

02STM32F207的ETH介紹

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

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

在MAC內(nèi)核發(fā)送數(shù)據(jù)之前,數(shù)據(jù)經(jīng)過DMA的方式發(fā)送到FIFO中緩存。同樣的,接收FIFO存儲通過線路收到的以太網(wǎng)數(shù)據(jù)幀,直到這些數(shù)據(jù)幀通過DMA被傳輸?shù)较到y(tǒng)內(nèi)存。

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

當使用以太網(wǎng)時,AHB時鐘必須至少25MHZ。

下面是ETH的框圖


 

 

關于AHB的連接信息:

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

區(qū)域2:是數(shù)據(jù)交換接口,也就是上面我們說的MII接口和RMII接口。

03SMI接口

3.1、站管理接口:SMI

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

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

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

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

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


 

 

3.2、SMI幀結構

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

 

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

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

開始。

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

PADDR:PHY的地址有5位,可以區(qū)分32個PHY。高位先被發(fā)送和接收。

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

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

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

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

3.3、SMI寫操作

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

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

 

3.4、SMI讀操作

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

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

 

3.5、SMI時鐘選擇

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

 

04代碼

STM32的網(wǎng)口的MII接口初始化是十分簡單的。

初始化GPIO。

  1. RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA |  RCC_AHB1Periph_GPIOC |RCC_AHB1Periph_GPIOF, ENABLE); 
  2.  
  3. /* Enable SYSCFG clock */ 
  4. RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);   
  5. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; 
  6. GPIO_Init(GPIOA, &GPIO_InitStructure); 
  7. GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_ETH); 
  8.  
  9. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; 
  10. GPIO_Init(GPIOC, &GPIO_InitStructure); 
  11. GPIO_PinAFConfig(GPIOC, GPIO_PinSource1, GPIO_AF_ETH); 

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

  1. RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_ETH_MAC |RCC_AHB1Periph_ETH_MAC_Tx |RCC_AHB1Periph_ETH_MAC_Rx, ENABLE); 

MII接口的讀函數(shù)和寫函數(shù)。

  1. ETH_ReadPHYRegister(uint16_t PHYAddress, uint16_t PHYReg) 
  2. uint32_t ETH_WritePHYRegister(uint16_t PHYAddress, uint16_t PHYReg,uint16_t PHYValue) 

 本文轉載自微信公眾號「知曉編程」,可以通過以下二維碼關注。轉載本文請聯(lián)系知曉編程公眾號。

 

責任編輯:武曉燕 來源: 知曉編程
相關推薦

2021-02-05 08:41:44

STM32網(wǎng)絡中斷

2021-02-03 13:04:24

STM32網(wǎng)絡控制器

2021-02-26 08:46:46

PHY寄存器網(wǎng)絡

2021-05-20 07:26:22

DMASTM32數(shù)據(jù)

2021-05-06 08:54:39

串口DMASTM32

2021-06-26 07:50:20

STM32串口開發(fā)環(huán)形緩沖區(qū)

2021-08-26 06:29:47

STM32DWT數(shù)據(jù)觀察點觸發(fā)

2010-04-22 16:05:46

網(wǎng)絡負載均衡配置

2021-12-22 06:56:07

STM32C語言內(nèi)存

2022-10-10 08:24:15

編程數(shù)據(jù)邏輯語句

2012-01-11 09:41:00

網(wǎng)絡虛擬化數(shù)據(jù)中心網(wǎng)絡架構

2021-08-31 08:01:40

STM32DSP指令

2011-08-03 14:33:54

IOS4.2 HTTP 請求

2022-01-07 08:24:13

STM32枚舉結構體

2011-07-25 10:15:27

2021-04-22 08:39:23

哈佛結構馮洛伊曼結構ARM架構

2020-12-22 14:03:07

網(wǎng)絡安全物聯(lián)網(wǎng)

2022-07-25 14:31:55

LiteOS開發(fā)工具

2019-01-24 16:27:28

2020-08-06 08:15:02

網(wǎng)絡安全新基建技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品被 | 一区二区三区电影网 | 欧美高清一级片 | 狠狠的操| 最新av在线网址 | av在线免费观看网站 | 久久久久国产一区二区三区 | 最新av中文字幕 | 狠狠干网站 | 亚洲免费婷婷 | 中文字幕在线视频免费观看 | 免费观看一级黄色录像 | 日本在线视频一区二区 | 国产精品一区二区三区久久 | 2018天天干天天操 | 日韩人体在线 | 日韩中文视频 | 污视频免费在线观看 | 夏同学福利网 | 日本视频中文字幕 | 午夜三区| 日韩中文字幕在线视频 | 成年人精品视频在线观看 | 一a一片一级一片啪啪 | 在线观看日本网站 | 国产精品美女久久久久aⅴ国产馆 | 在线成人免费视频 | 成人性生交a做片 | 成人精品久久日伦片大全免费 | 日韩欧美手机在线 | 中文字幕11页 | 国产中文在线 | 成人毛片网站 | 国产激情视频在线观看 | 99国产精品99久久久久久粉嫩 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 亚洲国产欧美精品 | 国产成人精品久久久 | 91麻豆精品一区二区三区 | 成人精品在线观看 | 午夜免费看 |