STM32F4-ETH通信学习笔记:lwIP配置与应用指南
7、CSMA/CD 冲突检测:
8、MAC 子层:
MAC 数据包、MAC 数据包格式、
MAC 地址:MAC 地址由 48 位数字组成,它是网卡的物理地址,在以太网传输的最底层, 就是根据 MAC 地址来收发数据的。部分 MAC 地址用于广播和多播,在同一个网络里不能 有两个相同的 MAC 地址。PC 的网卡在出厂时已经设置好了 MAC 地址,但也可以通过一 些软件来进行修改,在嵌入式的以太网控制器中可由程序进行配置。数据包中的 DA 是目 标地址,SA 是源地址。
9、TCP/IP 协议栈:
为什么需要协议栈?
10、各网络层的功能:
10.1:LLC 层:处理传输错误;调节数据流,协调收发数据双方速度,防止发送方发送得太快而接收方 丢失数据。主要使用数据链路协议。
10.2:网络层:本层也被称为 IP 层。LLC 层负责把数据从线的一端传输到另一端,但很多时候不同的 设备位于不同的网络中 (并不是简单的网线的两头)。此时就需要网络层来解决子网路由拓扑问 题、路径选择问题。在这一层主要有 IP 协议、ICMP 协议。
10.3:传输层:由网络层处理好了网络传输的路径问题后,端到端的路径就建立起来了。传输层就负责 处理端到端的通讯。在这一层中主要有 TCP、UDP 协议
10.4:应用层:经过前面三层的处理,通讯完全建立。应用层可以通过调用传输层的接口来编写特定的 应用程序。而 TCP/IP 协议一般也会包含一些简单的应用程序如 Telnet 远程登录、FTP 文件传输、 SMTP 邮件传输协议。
11、以太网外设 (ETH)
STM32F4xx 系列控制器内部集成了一个以太网外设,它实际是一个通过 DMA 控制器进行介质 访问控制 (MAC),它的功能就是实现 MAC 层的任务。借助以太网外设,STM32F4xx 控制器可以 通过 ETH 外设按照 IEEE 802.3-2002 标准发送和接收 MAC 数据包。ETH 内部自带专用的 DMA 控制器用于 MAC,ETH 支持两个工业标准接口介质独立接口 (MII) 和简化介质独立接口 (RMII) 用于与外部 PHY 芯片连接。MII 和 RMII 接口用于 MAC 数据包传输,ETH 还集成了站管理接口 (SMI) 接口专门用于与外部 PHY 通信,用于访问 PHY 芯片寄存器。 物理层定义了以太网使用的传输介质、传输速度、数据编码方式和冲突检测机制,PHY 芯片是 物理层功能实现的实体,生活中常用水晶头网线 + 水晶头插座 +PHY 组合构成了物理层。
12、SMI 接口:
12.1:SMI 是 MAC 内核访问 PHY 寄存器标志接口,它由两根线组成,数据线 MDIO 和时钟线 MDC。 SMI 支持访问 32 个 PHY,这在设备需要多个网口时非常有用,不过一般设备都只使用一个 PHY。 PHY 芯片内部一般都有 32 个 16 位的寄存器,用于配置 PHY 芯片属性、工作环境、状态指示等 等,当然很多 PHY 芯片并没有使用到所有寄存器位。MAC 内核就是通过 SMI 向 PHY 的寄存器 写入数据或从 PHY 寄存器读取 PHY 状态,一次只能对一个 PHY 的其中一个寄存器进行访问。 SMI 最大通信频率为 2.5MHz,通过控制以太网 MAC MII 地址寄存器 (ETH_MACMIIAR) 的 CR 位可选择时钟频率。
12.2:SMI 帧格式
12.3:SMI 读写操作
12.4:MII 和 RMII 接口 介质独立接口 (MII) 用于连接 MAC 控制器和 PHY 芯片,提供数据传输路径。RMII 接口是 MII 接口的简化版本,MII 需要 16 根通信线,RMII 只需 7 根通信,在功能上是相同的。图 36_1_8 为 MII 接口连接示意图,图 36_1_9 为 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。
LAN8720A、DP83848C
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数嵌入式工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!! (备注:嵌入式)
最后
资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!
t=“img” style=“zoom: 67%;” />
最后
资料整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!
更多资料点击此处获qu!!
作者:2401_84010497