STM32移植lwip之硬件连接

一直以来都想写一些帖子和博客,但对于刚毕业迷茫的我就是狠不下心来,一番准备之后,决定把前几天学习的一些东西写下来,作为一个记录的开始。
前段日子接触了关于lwip在stm32上面的移植,建立tcp服务器与tcp客户端,以及搭建最简单的web服务器等,我打算分开来一篇篇条理性地记录下来。


stm32建立tcp的硬件基础

每次博客的记录我都想有个目标,以便以后翻阅都能带个目标性地去看。
本篇目标:能够了解stm32的数据是怎么通过网卡和端口连接到PC机的,是建立在哪些硬件基础上的呢?


硬件电路包括:

  1. stm32f407zg(MAC)
  2. smsc lan9303(PHY)
  3. hr681680(网络隔离变压器)
  4. rj45(水晶接头)

依次来看看上面几个芯片的作用

  • stm32f4系列自带MAC控制器,而lan9303在这里就是一个PHY芯片(也叫物理接口收发器),他们之间用接线更少的RMII接口相连,他们组成了数据收发的重要部分。
  • hr681680是一个网络隔离变压器,主要功能是为了隔离,防止网络接头连接的另一端地线电位不同而引起的不可预计的后果(干扰,损坏等等)。
  • rj45水晶头就是平时连接网线的接头,也有器件把网络隔离变压器和水晶头做在一起的。

重点还是看MAC和PHY之间的工作过程!
RMII接口(借鉴一下官方数据手册)
RMII接口(借鉴一下官方数据手册)
主要看MAC与PHY连接的几根线:

  • RMII_TX_EN:数据发送使能
  • RMII_TXD[1:0]:发送数据引脚,共两位
  • RMII_RXD[1:0]:接收数据引脚,共两位
  • RMII_CRX_DV:这个引脚的电平由RX_DV和CRS两个信号合成,比较复杂
  • RMII_REF_CLK:外部时钟源提供的50MHz的时钟信号
  • MDIO:PHY管理接口的双向数据总线
  • MDC:PHY管理接口的同步时钟

当完成对STM32F4的MAC控制器和PHY芯片寄存器的配置后,他们之间的连接就真正建立起来了。
整个一条回路:

  • STM32的DMA控制器 <—> RMII_TXD/RMII_RXD <—> PHY芯片
  • PHY芯片 <—> PHY芯片的Tx+/Tx-、Rx+/Rx- <—> HR681680隔离芯片
  • HR681680隔离芯片 <—> Tx+/Tx-、Rx+/Rx- <—> RJ45水晶头
  • RJ45水晶头 <—> 网线 <—> PC机

接下来就是创建工程,移植lwip到stm32上,建立stm32与pc机的以太网连接。

猜你喜欢

转载自blog.csdn.net/q361750389/article/details/52712645