专业
PCBA
样板贴片焊接。
麦斯艾姆为½提供
PCBA
样板贴片焊接、BGA 焊接、BGA 返修一站式服务。
价格便宜,质量½,交期快,只要
3
天,加急
1
天!
www.massembly.com
业务
QQ: 2258556834
STM32以太½硬件设计——PHY
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 */
专业
PCBA
样板贴片焊接。
麦斯艾姆为½提供
PCBA
样板贴片焊接、BGA 焊接、BGA 返修一站式服务。
价格便宜,质量½,交期快,只要
3
天,加急
1
天!
www.massembly.com
业务
QQ: 2258556834
#define PHY_LOOPBACK ((uint16_t)0x4000) /*!< Select loop-back mode */
#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200) /*!< Restart
auto-negotiation
function */
#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复½后自动将引脚电平读入指定的寄存器标志½,以相应的方
式工½。需要注意的有以下几项:
专业
PCBA
样板贴片焊接。
麦斯艾姆为½提供
PCBA
样板贴片焊接、BGA 焊接、BGA 返修一站式服务。
价格便宜,质量½,交期快,只要
3
天,加急
1
天!
www.massembly.com
业务
QQ: 2258556834
专业
PCBA
样板贴片焊接。
麦斯艾姆为½提供
PCBA
样板贴片焊接、BGA 焊接、BGA 返修一站式服务。
价格便宜,质量½,交期快,只要
3
天,加急
1
天!
www.massembly.com
业务
QQ: 2258556834
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
的参考手册,并在原理图
中标明所选定的工½方式以方便½件工程师编写驱动程序。
评论