物联网lwIP网络开发学习笔记——以太网基础

本文深入探讨了物联网中的 lwIP 网络开发,重点讲解了以太网硬件设计,包括物理层接口、MII 协议、STM32以太网连接以及PHY的信号解释。同时,介绍了MAC802.3帧格式、FIFO、DMA和TCP/IP协议簇,如ARP、ICMP、DHCP和DNS等。
摘要由CSDN通过智能技术生成

loT

loT网络架构
TCP/IP协议簇
lwIP协议栈:栈是指实现协议的源代码

C/S架构 vs B/S架构

osi模型7层
TCP/IP模型

以太网硬件设计

物理层接口
在这里插入图片描述
MCU/CPU通过MAC层使用MII/RMII/SNI协议和物理层进行通信
Magnetics-网络变压器
STM32以太网连接图

MII_TX_CLK:发送数据使用的时钟信号,对于10M位/s的数据传输,此时钟为2.5MHz,对于100M位/s的数据传输,此时钟为25MHz。
MII_RX_CLK:接收数据使用的时钟信号,对于10M位/s的数据传输,此时钟为2.5MHz,对于100M位/s的数据传输,此时钟为25MHz。
MII_TX_EN:传输使能信号,此信号必需与数据前导符的起始位同步出现,并在传输完毕前一直保持。
MII_TXD[3:0]:发送数据线,每次传输4位数据,数据在MII_TX_EN信号有效时有效。MII_TXD[0]是数据的最低位,MII_TXD[3]是最高位。当MII_TX_EN信号无效时,PHY忽略传输的数据。
MII_CRS:载波侦听信号,仅工作在半双工模式下,由PHY控制,当发送或接收的介质非空闲时,使能此信号。 PHY必需保证MII_CRS信号在发生冲突的整个时间段内都保持有效,不需要此信号与发送/接收的时钟同步。
MII_COL:冲突检测信号,仅工作在半双工模式下,由PHY控制,当检测到介质发生冲突时,使能此信号,并且在整个冲突的持续时间内,保持此信号有效。此信号不需要和发送/接收的时钟同步。
MII_RXD[3:0]:接收数据线,每次接收4位数据,数据在MII_RX_DV信号有效时有效。MII_RXD[0]是数据的最低位,MII_RXD[3]是最高位。当MII_RX_EN无效,而MII_RX_ER有效时,MII_RXD[3:0]数据值代表特定的信息
MII_RX_DV:接收数据使能信号,由PHY控制,当PHY准备好数据供MAC接收时,使能该信号。此信号必需和帧数据的首位同步出现,并保持有效直到数据传输完成。在传送最后4位数据后的第一个时钟之前,此信号必需变为无效状态。为了正确的接收一个帧,有效电平不能滞后于数据线上的SFD位出现。
MII_RX_ER:接收出错信号,保持一个或多个时钟周期(MII_RX_CLK)的有效状态,表明MAC在接收过程中检测到错误。具体错误原因需配合MII_RX_DV的状态及MII_RXD[3:0]的数据值。

以太网接口框图
一个 25Mhz 外部晶振 MII接口
在这里插入图片描述
一个 25Mhz 外部晶振 + 一个50Mhz外部晶振 RMII接口
在这里插入图片描述
一个50Mhz外部晶振 RMII接口
在这里插入图片描述
一个 25Mhz 外部晶振 RMII接口
在这里插入图片描述
DP83848CVV功能框图
在这里插入图片描述
PHY REGISTER
在这里插入图片描述
开发板原理图分析
在这里插入图片描述
在这里插入图片描述
以太网外设逻辑框图
在这里插入图片描述

MAC802.3
MAC帧格式
在这里插入图片描述

帧填充和CRC计算
在这里插入图片描述

以太网外设FIFO&DMA
在这里插入图片描述

FIFO
在这里插入图片描述
DMA
在这里插入图片描述

DMA描述符结构-采用链接结构
在这里插入图片描述

DMA描述符格式
在这里插入图片描述
在这里插入图片描述
链模式机制
在这里插入图片描述

以太网外设初始化
在这里插入图片描述

TCP/IP协议簇

ARP协议
为什么需要ARP
在这里插入图片描述

ARP协议工作原理
在这里插入图片描述

ARP流程
在这里插入图片描述

ARP协议测试

C:\Windows\system32>arp -help

显示和修改地址解析协议(ARP)使用的“IP 到物理”地址转换表。

ARP -s inet_addr eth_addr [if_addr]
ARP -d inet_addr [if_addr]
ARP -a [inet_addr] [-N if_addr] [-v]

  -a            通过询问当前协议数据,显示当前 ARP 项。
                如果指定 inet_addr,则只显示指定计算机
                的 IP 地址和物理地址。如果不止一个网络
                接口使用 ARP,则显示每个 ARP 表的项。
  -g            与 -a 相同。
  -v            在详细模式下显示当前 ARP 项。所有无效项
                和环回接口上的项都将显示。
  inet_addr     指定 Internet 地址。
  -N if_addr    显示 if_addr 指定的网络接口的 ARP 项。
  -d            删除 inet_addr 指定的主机。inet_addr 可
                以是通配符 *,以删除所有主机。
  -s            添加主机并且将 Internet 地址 inet_addr
                与物理地址 eth_addr 相关联。物理地址是用
                连字符分隔的 6 个十六进制字节。该项是永久的。
  eth_addr      指定物理地址。
  if_addr       如果存在,此项指定地址转换表应修改的接口
                的 Internet 地址。如果不存在,则使用第一
                个适用的接口。
示例:
  > arp -s 157.55.85.212   00-aa-00-62-c6-09.... 添加静态项。
  > arp -a                                  .... 显示 ARP 表。

ICMP协议
在这里插入图片描述

ping和网络诊断
在这里插入图片描述

ping命令

C:\Windows\system32>ping

用法: ping [-t] 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值