stm32 DM9162 网络编程实现

 1、stm32 网络

     stm32 包含物理链路层及以上层(网络层、传输层、应用层)这些。

           其中MAC,即媒体访问控制(MAC,Media Access Control),又称作介质访问控制,简称MAC,是局域网中数据链路层的下层部分,提供地址及媒体访问的控制方式,使得不同设备或网络上的节点可以在多点的网络上通信,而不会互相冲突,上述的特性在局域网中格外重要。

     PHY是物理层,

      PHY(Port Physical Layer),可称之为端口物理层,是一个对OSI模型物理层的简称。现在常用于STM32的有DP83848,LAN8270,DM9161/9162等。这些PHY芯片都大同小异,基本寄存器都是一样的,只有扩展寄存和厂商专门设置的寄存器不同。

     物理层与物理链路层通过MII 和 RMII 连接通讯

 RMII的引脚的说明如下:

  • TX_CLK:数据发送时钟线。标称速率为 10Mbit/s 时为 2.5MHz;速率为 100Mbit/s 时为 25MHz。 RMII 接口没有该线。

  • RX_CLK:数据接收时钟线。标称速率为 10Mbit/s 时为 2.5MHz;速率为 100Mbit/s 时为 25MHz。 RMII 接口没有该线。

  • TX_EN:数据发送使能。在整个数据发送过程保存有效电平。

  • TXD[3:0]或 TXD[1:0]:数据发送数据线。对于 MII 有 4 位, RMII 只有 2 位。只有在TX_EN 处于有效电平数据线才有效。

  • CRS:载波侦听信号,由 PHY 芯片负责驱动,当发送或接收介质处于非空闲状态时使能该信号。在全双工模式该信号线无效。

  • COL:冲突检测信号,由 PHY 芯片负责驱动,检测到介质上存在冲突后该线被使能,并且保持至冲突解除。在全双工模式该信号线无效。

  • RXD[3:0]或 RXD[1:0]:数据接收数据线,由 PHY 芯片负责驱动。对于 MII 有 4 位,RMII 只有 2 位。在 MII 模式,当 RX_DV 禁止、 RX_ER 使能时,特定的 RXD[3:0]值用于传输来自 PHY 的特定信息。

  • RX_DV:接收数据有效信号,功能类似 TX_EN,只不过用于数据接收,由 PHY 芯片负责驱动。对于 RMII 接口,是把 CRS 和 RX_DV 整合成 CRS_DV 信号线,当介质处于不同状态时会自切换该信号状态。

  • RX_ER:接收错误信号线,由 PHY 驱动,向 MAC 控制器报告在帧某处检测到错误。

  • REF_CLK:仅用于 RMII 接口,由外部时钟源提供 50MHz 参考时钟。因为要达到 100Mbit/s 传输速度, MII 和 RMII 数据线数量不同,使用 MII 和 RMII 在时钟线的设计是完全不同的。对于 MII 接口,一般是外部为 PHY 提供 25MHz 时钟源,再由 PHY 提供 TX_CLK 和 RX_CLK 时钟。对于 RMII 接口,一般需要外部直接提供 50MHz时钟源,同时接入 MAC 和 PHY。

   

  1. MDC引脚(Management Data Clock):

    • MDC引脚是用于管理数据交换的时钟信号。它提供了与MDIO引脚一起使用的时钟信号,用于同步主控制器与DM9162之间的数据传输。
    • MDC引脚的时钟频率是由主控制器控制的,并且必须与MDIO引脚的数据传输同步。
  2. MDIO引脚(Management Data Input/Output):

    • MDIO引脚是用于主控制器与DM9162之间进行管理和配置数据交换的双向通信引脚。
    • 通过MDIO引脚,主控制器可以向DM9162发送配置和控制命令,以设置以太网PHY的工作模式、速率、自动协商等参数。
    • 同样地,DM9162通过MDIO引脚向主控制器返回状态信息、配置确认等数据。

MDC和MDIO引脚的联合使用允许主控制器与DM9162之间进行以太网PHY的管理和配置,包括速率、协商、状态监测等。这种通信是通过主控制器与DM9162之间的简单串行接口完成的,其中MDC提供时钟同步,MDIO提供数据传输。

 

 

参考链接:

https://doc.embedfire.com/net/lwip/zh/latest/doc/chapter3/chapter3.html

posted @ 2023-06-12 11:59  cogitoergosum  阅读(674)  评论(0编辑  收藏  举报