打印
[STM32F7]

转:STM系列(5)--STM32 以太网硬件设计—PHY

[复制链接]
1614|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
milktea718|  楼主 | 2016-6-29 15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 的参考手册,并在原理图中标明所 选定的工作方式以方便软件工程师编写驱动程序。

重要通知 - 请仔细阅读
意法半导体公司及其子公司(“ST”)保留随时对ST 产品和/ 或本文档进行变更、更正、增强、修改和改进的权利,恕不另行通知。买方订货之前应获取关于ST 产品的最新信息。ST 产品的销售依照订单确认时的相关ST 销售条款。
买方自行负责对ST 产品的选择和使用, ST 概不承担与应用协助或买方产品设计相关的任何责任。
ST 不对任何知识产权进行任何明示或默示的授权或许可。
转售的ST 产品如有不同于此处提供的信息的规定,将导致ST 针对该产品授予的任何保证失效。
ST 和ST 徽标是ST 的商标。所有其他产品或服务名称均为其各自所有者的财产。
本文档中的信息取代本文档所有早期版本中提供的信息。

©2015 STMicroelectronics - 保留所有权利


【 更多技术**持续更新中...欢迎关注了解




**来源:微信公众号  融创芯城

(一站式电子元器件样品,PCB,PCBA,技术支持服务网站)
沙发
mmuuss586| | 2016-6-29 15:48 | 只看该作者
谢谢分享;

使用特权

评论回复
板凳
milktea718|  楼主 | 2016-6-30 17:37 | 只看该作者

使用特权

评论回复
地板
黑猫警长不吃糖| | 2016-7-20 15:13 | 只看该作者
挺好的**

使用特权

评论回复
5
天灵灵地灵灵| | 2016-7-20 23:43 | 只看该作者
非常好的**,可以用网络做高级应用了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:资深FAE工程师顾问群:499391543;微信:融创芯城

4

主题

33

帖子

2

粉丝