IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 以太网学习(1)--简介 -> 正文阅读

[嵌入式]以太网学习(1)--简介

目录

一、以太网简介

二、STM32MAC简介

三、 LAN8720简介

1)LAN8720地址设置

?3)LAN8720寄存器

四、以太网DMA描述符


学习教程以STM32F4XX硬件平台进行学习,这一章主要是讲硬件相关部分。

一、以太网简介

以太网是一种计算机局域网技术。是目前最广泛的局域网技术,他的传输介质可以是光纤或双绞线,简单来说,以太网就是一种在局域网中,把附近的所有设备都连接起来,使得他们之间可以进行通讯的技术。

以太网的基本特征是多个站点都连接在一个总线上,所有的工作站都在不断地向总线上发出监听信号,但是以太网在同一时刻只能由一个工作站在总线上进行传输,而其他的工作站必须等待其传输完成后才可以进行自己的传输。

以太网分为以下几种类型:

1)标准以太网(10Mbps)

2)快速以太网(100Mbps)

3)千兆以太网

4)万兆以太网

借助STM32以太网MAC内核,可以通过以太网按照IEEE802.3-2002标准进行收发数据。

二、STM32MAC简介

1)MAC内核特性

※ 支持外部PHY接口实现10/100Mbit/s数据传输速率

※ 通过符合IEEE802.3的MII/RMII接口与外部快速以太网PHY进行通信

※ 支持全双工和半双工操作

※ 可编程帧长度,支持最大16KB的巨型帧

※ 可编程帧间隔

※ 两组FIFO

※? 支持通过SMI接口配置和管理PHY设备

以太网的框图如下:

? ?MAC通过RMII/MII接口对外部PHY芯片进行数据的传输,通过SMI接口进行PHY芯片的配置和管理。

SMI接口:成为管理接口,程序中可以通过这个接口来访问PHY寄存器,SMI接口有两条线,数据线MDIO和时钟线MDC,该接口支持访问多达32个PHY.应用程序可以从32个PHY中选择一个PHY,然后从任意PHY包含的32个寄存器中选择一个寄存器,发送控制数据或接收状态信息,任意给定时间内只能对一个PHY中的一个寄存器进行寻址。

1)MDC:周期性时钟,提供以最大频率2.5Mhz传输数据时的参考时序,在空闲状态下,SMI管理接口将MDC时钟信号驱动为低电平。

2)MDIO:数据输入/输出比特流,用于通过MDC时钟信号从PHY设备同步传输状态信息。

?MII接口:介质独立接口(MII)定义了10Mbit/s和100Mbit/s的数据传输速率下AMC子层与PHY之间的互联。

? ? ?TX_CLK和RX_CLK为发送和接受连续时钟,当速率为10Mbit/s时为2.5Mhz,速率为100Mbit/s时为25Mhz.

? ? ?要生成TX_CLK和RX_CLK时钟,必须向外部PHY提供25Mhz时钟,通常我们使用25Mhz的晶振,也可以用TSM32f407的MCO引脚输出25Mhz的时钟。

RMII:精简介质独立接口,降低了10M/100Mbit/s下微控制器以太网外设与外部PHY间的引脚数,根据IEEE802.3标准,MII包括16个数据和控制信号的引脚,RMII规范将引脚数减少为7个。

不过RMII接口的参考时钟必须是50Mhz!!!!

实现以以太网通讯是基于MAC内核+外部PHY芯片来实现的,PHY芯片选择的是LAN8720芯片,下面来介绍i一下PHY芯片LAN8720.

三、 LAN8720简介

? ? ? ?LAN8720是低功耗的10/100M以太网PHY层芯片,I/O引脚电压符合IEEE802.3-2005标准.LAN8720支持通过RMII接口与以太网MAC层通信,内置10-BASE-T/100BASE-TX全双工传输模块,支持10Mbps和100Mbps.LAN8720可以通过自协商的方式与目的主机最佳的连接方式(速度和全双工模式)支持HP-Auto-MDIX自动翻转功能,无需更换网线即可将连接更改为直连或交叉连接。

※? 支持RMII接口以减少引脚数

※?支持全双工和半双工模式

※?可以使用25M晶振以降低成本

※?支持SMI串行管理接口

※?支持MAC接口

1)LAN8720地址设置

? ? ?前面说过SMI最多可以控制32个PHY芯片。LAN8720可以通过设置RXER/PHYAD0引脚来设置其PHY地址,默认情况下是0,地址设置如下表所示:

?2)nINT/REFCLKO配置

? ? ? nINTSEL引脚(2号引脚)用于设置nINT/REFCLKO引脚(14号引脚)的功能。nINTSEL配置如下表所示。我们STM32F407使用的是REF_CLKOUT模式。

?REF_CLK In模式:当工作在REF_CLK In模式时,50Mhz的外部时钟信号应接到LAN8720的XTAL1/CKIN引脚(5号引脚)和STM32F407的RMII_REF_CLK(PA1)引脚上,如下图所示:

?REF_CLK Out模式:为降低成本,LNA8720可以从外部的25Mhz的晶振中产生REF_CLK时钟。到要使用此功能时应工作在REF_CLK Out模式。

?3)LAN8720寄存器

? ? PHY是由IEEE802.3定义的,一般通过SMI接口对PHY进行管理和控制,也就是读写PHY内部寄存器。PHY寄存器的地址空间为5位,可以定义0~31共32个寄存器,但随着PHY芯片功能的增加,很多PHY芯片采用分页技术来扩展地址空间,定义更多的寄存器。IEEE802.3定义了0-15这16个寄存器的功能,16-31寄存器由芯片制造商自由定义。

?LAN8720有许多寄存器,在这里我们只介绍几个用到的寄存器(括号内为寄存器地址,此处使用十进制表示):BCR(0),BSR(1),PHY特殊功能寄存器(31)这三个寄存器。

BCR寄存器各个位如下所示

翻译如下:

?BSR寄存器各个位如下图所示

?翻译如下:

?PHY特殊功能寄存器(31)

翻译如下

? ? 在特殊功能寄存器中我们关心的是bit2-4这三位,因为这三位表示的连接的状态和速度?。

四、以太网DMA描述符

? ? ?F407有一个以太网专用的DMA,DMA可以在CPU完全不干预的情况下,通过描述符有效的将数据从源传送到目标,接收缓冲区和发送缓冲区的数据都可以通过以太网DMA来传送。

? ? 共有两个描述符:一个用于接收,一个用于发送,描述符是一种链表,最后一个描述符会指回第一个描述符以构成环形结构。描述符列表位于主机的物理存储空间,两个链表的基地址分别写入ETH_DMARDLAR寄存器和ETH_DMATDLAR寄存器中。每个描述符最多可指向两个缓冲区,描述符一共有两种结构:环形结构和链接结构

在ST提供的以太网驱动库stm32f4x7_eth.c中使用的是链式结构,链式结构如下

?描述符注意事项:

1、一个以太网数据包可以跨越一个或多个DMA描述符

2、一个DMA描述符只能用于一个以太网数据包

3、DMA描述列表中的最后一个描述符指向第一个,形成链式结构

? ? 描述符实际上就是一个结构体,在ST的以太网驱动库stm32f4x7_eth中有个结构体ETH_DMADESCTypeDef,这个结构体就是DMA描述符。描述符分为增强描述符和常规描述符,区别在于常规描述符只使用了结构体中前四个成员变量,在编程中通常使用常规描述符,所以只以常规描述符进行讲解。

下图是描述符的结构体组成:

?常规描述符和增强描述符又有发送描述符和接收描述符两种,下图是常规的Tx DMA描述符:

常规Rx DMA描述符结构如下所示:

? ? ?常规发送描述符和接收描述符都是由四个32位字组成,TDES0、TDES1、TDES2、TDES3.分别对应结构体的前四个成员。

具体寄存器中各个位详细说明参照stm32芯片数据手册中以太网相关寄存器说明。

下一章开始讲解以太网相关协议。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 21:07:25  更:2022-03-21 21:07:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:37:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码