14-LWIP-基于Freertos全程讲解

P1-概念

:LWIP可以云台接入,无线网关,远程模块,工业控制器,嵌入式NAT无线路由器,网络摄像头...

TCP/IP模型-

应用层(http,Mqtt,NTP,FTP),

传输层(TCP,UDP-分片/重组),

网络层(IP,ARP-获取主机的MAC地址,ICMP),

链路层(也可叫做网络连接层),物理层(PHY芯片)。

★其中,分片意思是如果有要传1500个数据,那一次性不能直接传1500个,那么久需要分三次包传输,每个包是500个数据。然后重组就是把这些分包的东西重新拼在一起成一个大数据。

★TCP的传输只能在传输层,不能在网络层。能否ping通,就要看ICMP协议。

★链路层主要分为数据链路层(是由STM32的MAC地址来实现的)和物理层(板载PHY芯片实现)。数据通过应用层,传输层,网络层随后传到网卡,网卡再把数据传到内部网络中,然后网络要传给用户的话,也是要经过这些层。

就像一个三角形,发送端要封装发送到网络,网络在最底下,在去网络的过程,一步步数据加应用层首部-TCP/UDP首部-IP首部-MAC首部,最后到物理层。然后到底部,再往金字塔顶端的接收方过程再一步步解封。

★故可总结:LWIP+MAC内核+PHY芯片=实现TCP/IP协议栈。(LWIP是实现了)

★应用层,是数据选择什么协议发;传输层,选择什么协议传输;网络层,检测,例如:双方是否互通(ICMP,ping,查询报文)、获取对方MAC地址(ARP协议)、是否分包(处理UDP数据包,如果大于1500,那就必须分包)。

★在网-数交互接口中,有个netf,就是网卡。我们系统可以板载多种系统比如WIFI,以太网以及其他网络接口。sys_arh是应用在OS工程当中的,里面有IPS机制例如信号量、邮箱、互斥锁。

★数据链路层主要是为了添加控制信息,由STM32内置MAC实现。随后通过介质接口(RMII,MII)来传递到PHY(把以太网帧转化成光信号或电信号比特流从而发送到网络中)。

★数据包解析,应用在各层,使用了pbuf这样的高效数据包管理机制。

只有在OS环境下,才能使用NETCONN编程和SOCKET编程。裸机下,只能使用RAW编程。

★PHY芯片是使用LAN8720A和YT8512C。

P2-MAC简介(Mac:Media Acess Control 媒介访问控制)

★背景:STM32自带有10/100M bit/s的以太网MAC内核,它提供地址及媒体访问的控制方式。

MAC介绍:ST的ETH框架(以太网框架):以太网DMA数据包以DMA方式发送/接收。

★SMI站管理接口:允许应用程序通过STM32的时钟线和数据线访问任意PHY寄存器,最多接受32个PHY访问。(32对PHY的是MDC,外部和32双向的是MDIC)

★每一个PHY芯片对应一个地址,就可以根据地址来对应配置和管理。MDIO的时序和帧结构,根据24.25引脚的电平来进行;

MDC的时钟来源:AHB时钟树分频而来。

P3-介质接口MII,RMII:

★用于MAC内核中的以太网帧与外接的PHY互联,支持10/100M bit/s。两个接口都能支持,区别主要是:io接线数量,参考时钟,发送的位宽。

MDC、MDIO是SMI的站管理接口,而SMI是配置和管理PHY,英文全称Management Data Clock和Management Data Input/Output,是以太网标准IEEE802.3中专门用于MAC和PYH之间管理的串行接口总线,其中MDC是总线时钟信号,MDIO为数据线。

该接口主要用于MAC控制器对PYH层的状态读取和设置、获取链路状态,控制物理层协商等操作。该接口只负责控制信号不会被数据信号所影响,因为MDIO总线连接是在独立开MAC的,在STA上面的。

★MII的时钟参考来源是MCO输出25M和外部晶振输出25M,两者选其一即可。RMII是MCO和外部晶振输出是50M(必须同时提供PHY和MAC)。

★MII接口中的TX_CLK和RX_CLK两根线是与MAC或者PHY数据传输速率挂钩的,比如数据传输速率是10M,那么那两根线的速率是2.5M,因为线上面每次只能传输4个字节,所以等聚合到PHY的时候才能一次性全部发送。故此,如果是100M,那么两根线就是25M。

★MII接口一个周期的收发位宽是4位数据,RMII则是2位。

P4-PHY简介(Physical Interface Transceiver物理层接口收发器):

★LAN8720A和YT8512C,这两款以太网PHY层芯片,支持MII和RMII与以太网MAC层通信,主持Auto MDIX自动翻转功能,无需更换网线即可将连接更改为直线或者交叉连接。(因为每一个以太网产品的连接方式不一样)

★SMI站管理接口通过PHY地址来访问特定的PHY芯片,它可以管理32个PHY地址。LAN8720的PHY地址设置中,PHYAD0的引脚就是芯片的第十号引脚所设置的电平默认是低电平,所以它的PHY地址是0x00。

★一般用户只操作BCR和BSR寄存器,通过网速及双工模式来设置BCR的bit8和bit13。

★RMII1模式:PHY芯片外接25Mhz,经过内部pll则有50Mhz,所以必须外部提供MAC内核。而RMII2模式则在外部提供25Mhz,phy的15脚号(TXC)芯片输出50Mhz。而这两种都是8和12脚的电平决定

P7-以太网DMA描述符:

★网络和MAC内核之间的交流包都是通过以太网DMA,接收发送分别存入到TXFIFO和RXFIFO,然后交流的之间有个缓冲区,而以太网DMA描述符是管理这个缓冲区的,而描述符指向哪个缓冲区,就数据往哪发往哪传收。常规描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值