关闭

一篇就够系列之Ethernet网卡驱动开发

本文介绍了STM32以太网的移植关键,包括硬件初始化如DMA、MAC控制器等,以及LWIP协议栈的工作原理。强调了明确程序层次边界和理解API接口的重要性。同时,详细阐述了ETH框图中的数据发送与接收过程,以及SMI接口、MII/RMII接口的操作。最后提到了MAC、DMA和LWIP的底层驱动编写流程。

        明确程序层次间的边界,是程序移植成功的要点,当然,做到明确的前提是明确每层涉及的具体内容,这样才能明白这一层的诉求是什么,也就是API接口的含义。

        比如ETH的组成,所涉及的外设包括DMA、MAC控制器、接口选择控制器、复用IO接口以及外部PHY芯片,底层的硬件初始化,就是对这些外设的初始化。

        LWIP协议栈,本质就是一套应用软件,此协议必回调用底层ETH的初始化、HAL库提供的操作函数,对于协议栈出现的结构体,必回申请一部分内存空间使用,明确这些要素,移植的相关操作便会清晰明了。

相关概念

        描述符

        描述一个事物的数据结构,在C语言中就是struct,在java中就是class。

ETH框图

        在进行数据发送时,首先将数据由系统存储器以 DMA 的方式送至发送 FIFO (Tx FIFO) 进行缓冲,再通过 MAC 内核发送。同样,接收 FIFO (Rx FIFO) 则存储通过线路接收的以太网帧,直到这些帧通过 DMA 传送到系统存储器。

        以太网外设还包括用于与外部 PHY 通信的 SMI。通过一组配置寄存器,用户可以为 MAC 控制器和 DMA 控制器选择所需模式和功能。

        使用以太网,AHB频率至少25M。

ETH相关接口

SMI接口写操作

        操作MAC中的寄存器,使其触发对PHY芯片的写操作。

        使用到的具体寄存器名称为以太网 MAC MII 地址寄存器 (ETH_MACMIIAR)。

SMI接口读操作

        操作方式与写操作类似。

SMI接口的时钟

        最终来源于AHB,是否分频由MAC的寄存器控制。

MII/SMII接口

         SYSCFG_PMC 寄存器进行配置,外部芯片需要通过SMI接口配置。

MII接口时钟

        MCU的MCO引脚输出时钟,另一种使用25M晶振。

RMII接口时钟

        使用外部 50 MHz 时钟驱动 PHY ,另一种使用嵌入式 PLL 生成 50 MHz 频率信号来驱动 PHY。

ETH相关功能(MAC 802.3 )

        802.3主要规范了MAC数据的帧格式。

帧数据发送/接收

        DMA控制发送路径上的所有事务。

        MAC接收的帧会推入RX FIFO。FIFO接收到64字节或者完整数据包时,数据将弹出,然后DMA向AHB发起传输。

        详细发送和接收的细节可参考《STM32F4xx中文参考手册》。

MAC的其它功能

        比如中断、过滤功能、MAC的回送模式、MAC管理计数器(MMC)、电源管理(PMT)、精密时间协议(PTP)等功能,在操作中若有涉及可查询手册。

 ETH相关功能(DMA控制器操作)

        DMA控制器为操作路径的最前端,驱动程序的设计也是围绕其进行。MCU与DMA之间通信数据为以下两种:

  •         控制和状态寄存器(CSR)
  •         描述符列表(即一系列的struct)和数据缓冲区

ETH底层驱动编写

MAC

DMA

RMII与MII的选择

IO引脚的配置

LWIP移植

操作接口移植

数据管理移植

登录后您可以享受以下权益:

×
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡姆图拉夫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

举报

选择你想要举报的内容(必选)
  • 内容涉黄
  • 政治相关
  • 内容抄袭
  • 涉嫌广告
  • 内容侵权
  • 侮辱谩骂
  • 样式问题
  • 其他
点击体验
DeepSeekR1满血版
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回顶部
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1