[转]stm32-以太网

TCP/IP详解

1、互联网模型

OSI模型和TCP/IP模型可参见:TCP/IP四层模型与OSI参考模型

TCP/IP工作原理:TCP/IP详解学习笔记

概念:

IP:网络上每一个节点都必须有一个独立的Internet地址(也叫做IP地址)。现在,通常使用的IP地址是一个32bit的数字,也就是我们常说的IPv4标准,这32bit的数字分成四组,也就是常见的255.255.255.255的样式。IPv4标准上,地址被分为五类,我们常用的是B类地址。具体的分类请参考其他文档。需要注意的是IP地址是网络号+主机号的组合,这非常重要。 IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输。要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制–这被认为是上层协议–TCP或UDP要做的事情。所以这也就出现了TCP是一个可靠的协议,而UDP就没有那么可靠的区别。

IP协议帧详见:IP协议帧格式

IP地址详见:详解IP地址

关于路由器表原理:IP路由和路由表

这里注意IP协议帧和IP地址是两个不同的概念,前者是对数据的封装,后者代表了地址(网络ID+主机ID),如何分离网络ID和主机ID则靠子网掩码来区分。

ARP:地址解析协议,是用IP地址换MAC地址的一种协议。最特殊的情况是目的主机和主机直连,那么主机根本不用寻找路由,直接把数据传递过去就可以了。至于是怎么直接传递的,这就要靠ARP协议了。

RARP:逆地址解析协议,在tcp/ip协议的后面章节会介绍它们(在局域网里面用ARP协议可以很容易的搞瘫痪网络哦)

网络数据封装

2、LAN8720芯片

开发板原理图部分:

电路原理图

LAN8720芯片有32个寄存器,前16个由IEEE820.3规定,后16个由厂家规定,下图的特殊功能寄存器就是由厂家规定:

特殊功能寄存器

stm32官方库使用的不是LAN8720芯片,因此移植时候需要修改stm32f4XX_eth_conf.h:

#define PHY_SR                 ((uint16_t)0x1F) /* PHY status register Offset */#define PHY_SPEED_STATUS       ((uint16_t)0x0004)/* PHY Speed mask */#define PHY_DUPLEX_STATUS       ((uint16_t)0x0010)  /* PHY Duplex mask */

PHY_SPEED_STATUS,PHY_DUPLEX_STATUS其实是一个掩码,功能是取出特殊寄存器中4:2中的第2位和第4位,以确定PHY芯片的工作模式和速率。

SMI帧管理:用以在一个时间对一个PHY的一个寄存器进行读写

RMII和MII介绍参见:RMII和MII接口区别

显然,我们的开发板用的是RMII精简接口。

嵌入式上移植的也一般都是LwIP(轻量级TCP/IP协议栈)

---------------------
作者:Musing_jk
来源:CSDN
原文:https://blog.csdn.net/weixin_37058227/article/details/80712755
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值