STM32以太网通信 |
您所在的位置:网站首页 › 以太网布线问题 › STM32以太网通信 |
通过 DMA 控制器进行介质访问控制 (MAC)
STM32F4xx系列控制器内部集成了一个以太网外设,它实际上是一个通过DMA控制器进行介质访问控制(MAC),它的功能就是实现MAC 层的任务。 借助以太网外设,STM32F4xx 控制器可以通过ETH 外设按照IEEE 802.3-2002 标准发送和接收MAC 数据包。 ETH 内部自带专用的DMA 控制器用于MAC,ETH 支持两个工业标准接口介质独立接口(MII)和简化介质独立接口(RMII)用于与外部PHY 芯片连接。MII 和RMII 接口用于MAC数据包传输,ETH 还集成了站管理接口(SMI)接口专门用于与外部PHY 通信,用于访问PHY 芯片寄存器。 物理层定义了以太网使用的传输介质、传输速度、数据编码方式和冲突检测机制,PHY 芯片是物理层功能实现的实体,生活中常用水晶头网线+水晶头插座+PHY 组合构成了物理层。 ETH 有专用的DMA 控制器,它通过AHB 主从接口与内核和存储器相连,AHB 主接口用于控制数据传输,而AHB 从接口用于访问“控制与状态寄存器”(CSR)空间。在进行数据发送是,先将数据有存储器以DMA 传输到发送TX FIFO 进行缓冲,然后由MAC 内核发送;接收数据时,RX FIFO 先接收以太网数据帧,再由DMA 传输至存储器。ETH 系 统功能框图如下。 介质独立接口(MII)用于连接MAC 控制器和PHY 芯片,提供数据传输路径。RMII 接口是MII 接口的简化版本,MII 需要16 根通信线,RMII 只需7 根通信,在功能上是相同。 因为要达到100Mbit/s 传输速度,MII 和RMII 数据线数量不同,使用MII 和RMII 在时钟线的设计是完全不同的。对于MII 接口,一般是外部为PHY 提供25MHz 时钟源,再由PHY 提供TX_CLK 和RX_CLK 时钟。对于RMII 接口,一般需要外部直接提供50MHz时钟源,同时接入MAC 和PHY。 ETH 外设负责MAC 数据包的发送和接收。利用DMA从系统寄存器得到数据包数据内容,ETH 外设自动填充完成MAC数据包的封装,然后通过PHY发送出去。在检测到有MAC数据包需要接收时, ETH 外设控制数据接收,并解封MAC数据包得到解封后的数据,通过DMA传输到系统寄存器内。 MAC 802.3 帧格式:MAC 数据帧发送全部由DMA控制,从系统存储器读取的以太网帧由DMA 推入FIFO,然后将帧弹出并传输到MAC 内核。帧传输结束后,从MAC 内核获取发送状态并传回DMA。在检测到SOF(Start Of Frame)时,MAC 接收数据并开始MII 发送。在EOF(End Of Frame)传输到MAC 内核后,内核将完成正常的发送,然后将发送状态返回给DMA。 2. MAC 数据包接收MAC 接收到的数据包填充RX FIFO,达到FIFO 设定阈值后请求DMA 传输。在默认直通模式下,当FIFO 接收到64 个字节(使用ETH_DMAOMR 寄存器中的RTC 位配置)或完整的数据包时,数据将弹出,其可用性将通知给DMA。DMA 向AHB 接口发起传输后,数据传输将从FIFO 持续进行,直到传输完整个数据包。完成EOF 帧的传输后,状态字将弹出并发送到DMA 控制器。在Rx FIFO 存储转发模式(通过ETH_DMAOMR 寄存器中的RSF 位配置)下,仅在帧完全写入Rx FIFO 后才可读出帧。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |