国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 3772|回復: 0
打印 上一主題 下一主題

STM系列(5)--STM32 以太網硬件設計—PHY

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2017-2-24 11:40:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
關鍵詞: 融創芯城
融創芯城邀請注冊享好禮,2萬元獎金等你來瓜分,排行榜獎金活動將持續至2月28日,最后幾天,抓緊拉人注冊,享受做小股東的樂趣吧!!
OSI 的 7 層基準模型中PHY 屬于第一層——物理層。PHY 是數據鏈路層的媒體訪問控制部分和媒體的接口。PHY 對所有傳輸的數據只是進行編碼轉化,沒有對有效數據信號進行任何分析或改變,但是 MAC 所有的數據傳輸都必須經過PHY 發送和接收才能傳輸到目標MAC。

PHY 還可以完成連接判斷,自動協商以及沖突檢測。MAC 可以通過修改 PHY 的寄存器完成對自動協 商的監控,當然也可以讀取PHY 的寄存器來判斷PHY 的狀態。
.PHY 寄存器

IEEE802.3 標準中定義了 PHY 的基本寄存器,寄存器偏移 00h ~ 0fh。其中最重要的就是 BCR(Basic Control Register, offset: 00h),BSR(Basic Status Register, offset: 01h)。
MAC 通過 SMI 接口訪問 BCR 來控制 PHY 的工作模式,也可以通過訪問 BSR 來得知 PHY 的工作狀態。 需要注意的是,有 時 PHY 的工作速率和工作模式不一定是通過訪問 BSR 來得到的,因此在使用 STM32 MAC 外設與不同的 PHY 通訊時,可 能需要修改寄存器定義。以下是 ST 所提供的驅動中關于 PHY 寄存器的定義(節選自 stm32f4xx_hal_conf.h)。

/* Section 3: Common PHY Registers */
#define PHY_BCR             ((uint16_t)0x00)          /*!< Transceiver Basic Control Register */
#define PHY_BSR             ((uint16_t)0x01)          /*!< Transceiver Basic Status Register */

#define PHY_RESET           ((uint16_t)0x8000)        /*!< PHY Reset */
#define PHY_LOOPBACK        ((uint16_t)0x4000) /*!< Select loop-back mode */
#define PHY_RESTART_AUTONEGOTIATION    ((uint16_t)0x0200)     /*!< Restart auto-negotiationfunction */

#define PHY_POWERDOWN               ((uint16_t)0x0800)        /*!< Select the power down mode */
#define PHY_AUTONEGO_COMPLETE     ((uint16_t)0x0020)      /*!< Auto-Negotiation process completed*/

/* Section 4: Extended PHY Registers */
#define   PHY_SR           ((uint16_t)0x10)    /*!< PHY status register Offset */ #define   PHY_LINK_STATUS   ((uint16_t)0x0001) /*!< PHY Link mask */
#define   PHY_SPEED_STATUS  ((uint16_t)0x0002) /*!< PHY Speed mask */
#define   PHY_DUPLEX_STATUS ((uint16_t)0x0004) /*!< PHY Duplex mask */

二.PHY AutoStrapping


現在的多數 PHY 都具有 AutoStrapping 功能,即可以在硬件設計時,通過上下拉電阻設定某些引腳的電平,PHY 復位后自動 將引腳電平讀入指定的寄存器標志位,以相應的方式工作。需要注意的有以下幾項:
1.PHY 寄存器地址
SMI 接口訪問 PHY 時除了需要 PHY 的寄存器偏移,也需要 PHY 的地址,這個地址是在 AutoStrapping 中指定的。當然,隨 后也可以通過 SMI 接口軟件修改 PHY 的寄存器地址。

/**
* @brief Reads a PHY register
* @param heth: pointer to a ETH_HandleTypeDef structure that contains
* the configuration information for ETHERNET module
* @param PHYReg: PHY register address, is the index of one of the 32 PHY register.
* This parameter can be one of the following values:
* PHY_BCR: Transceiver Basic Control Register,
* PHY_BSR: Transceiver Basic Status Register.
* More PHY register could be read depending on the used PHY
* @param RegValue: PHY register value
* @retval HAL status
*/
HAL_StatusTypeDef HAL_ETH_ReadPHYRegister(ETH_HandleTypeDef *heth, uint16_t PHYReg, uint32_t *RegValue)

2.工作模式
工作模式首先需要注意的是是否使能自動協商功能,自動協商遵循的原則就是雙方尋找最快的方式。 也可以在不使能自動協 商的情況下直接指定 PHY 的工作模式(例如半雙工 10Mbits/s)。在 ST 的 驅動中,為了準確的獲得此信息,通過 SMI 接口 讀取寄存器標志位。
3. LED 接口
PHY 中一般都包括指示 LED,用來指示鏈接狀態和 Activity 情況。這些也是可以在此項中設置的。
  
4. 其它
此外,PHY 的 AutoStrapping 中一般還具有 Loopback 等功能。
三. 總結

MAC 和 PHY 并不困難,在應用時,硬件工程師應該閱讀 PHY 的參考手冊,并在原理圖中標明所 選定的工作方式以方便軟件工程師編寫驅動程序。

文章來源:微信公眾號   融創芯城(一站式電子元器件、PCB、PCBA購買服務平臺,項目眾包平臺,方案共享平臺)


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 蜜桃五月天 | 欧美中文字幕在线视频 | 四虎中文字幕 | 天堂网www在线资源 天堂网www在线观看 | 四虎一区二区三区 | 两个人在线观看免费下载 | 最近日本中文字幕免费完整 | 中文字幕一区2区 | 一级毛片黄片 | h在线视频免费观看完整版 h在线视频 | 青青草tv| 高清国产激情视频在线观看 | 日韩在线无| 国产真实乱人视频在线看 | 欧美一区二区三区成人看不卡 | 在线一区视频 | 国产欧美精品一区二区三区四区 | 久久国产自偷自免费一区100 | 香蕉国产线观看 | 日韩欧美中文字幕在线观看 | 99在线在线视频免费视频观看 | 国产精品国产三级国产普通 | 我和闺蜜小敏在ktv被八人伦 | 99爱视频在线 | 亚洲视频五区 | 狠狠色综合网 | 亚洲日本欧美 | 欧日韩在线不卡视频 | 国产精品自产拍在线观看2019 | 成人在线不卡 | 在线日本视频 | 午夜精品成年片色多多 | 久久免费看片 | 四虎4hu永久在线观看 | 97成人资源 | 国产四虎精品8848hh | 亚洲黄色一级毛片 | 日韩免费一区二区 | 肉与灵电视剧在线观看 | 极品在线 | 欧美成人午夜视频在线观看 |