0101以太网简介
stm32f20x和stm32f21的以太网外设可接受和发送数据按照iee802.3-2002标准。
以太网提供一个完整的、灵活的外设去满足不同应用和要求。它支持与外部相连(phy)的两个标准的工业接口:默认情况使用在ieee802.3规范中定义的独立介质接口(mii)和精简介质独立接口(rmii)。它可以被用于大量的需求,例如开关(交换机)、网络接口卡等等。
以太网满足下列标准:
● ieee 802.3-2002,用于以太网mac。
● ieee 1588-2008 标准,用于规定联网时钟同步的精度。
● amba 2.0,用于ahb 主/从端口。
● rmii 联盟的 rmii规范。
02 stm32f207的eth介绍
stm32f207支持mii接口和rmii接口。stm32f207以太网外设包括一个mac802.3(介质访问控制)和一个dma控制器。它默认情况下支持mii和rmii接口,通过一个选择位进行切换(参考syscfg_pmc寄存器)。
dma控制器通过ahb主从接口和内核与内存相连。ahb主接口控制数据传输,ahb从接口用于访问控制和状态寄存器(csr)空间。
在mac内核发送数据之前,数据经过dma的方式发送到fifo中缓存。同样的,接收fifo存储通过线路收到的以太网数据帧,直到这些数据帧通过dma被传输到系统内存。
以太网外设也包括一个smi,用于和外部phy通讯。通过一组寄存器的配置,用户可以选择mac和dma控制器的不同模式和功能。
当使用以太网时,ahb时钟必须至少25mhz。
下面是eth的框图
关于ahb的连接信息:
区域1:我们称为smi接口,用于配置外部phy芯片。
区域2:是数据交换接口,也就是上面我们说的mii接口和rmii接口。
03 smi接口
3.1、站管理接口:smi
站管理接口允许任何phy寄存器请求通过2线时钟和数据线。这个接口支持最多到32个phy。
应用程序可以从 32个 phy中选择一个phy,然后从任意phy 包含的32 个寄存器中选择一个寄存器,发送控制数据或接收状态信息。任意给定时间内只能对一个phy 中的一个寄存器进行寻址。
mdc 时钟线和 mdio数据线在微控制器中均用作复用功能i/o:
mdc:周期性时钟,提供以最大频率2.5 mhz 传输数据时的参考时序。mdc的最短高电平时间和最短低电平时间必须均为160 ns。mdc的最小周期必须为400 ns。在空闲状态下,smi管理接口将 mdc时钟信号驱动为低电平。
mdio:数据输入/输出比特流,用于通过mdc 时钟信号向/从phy 设备同步传输状态信息。
3.2、smi帧结构
下图给出了读操作和写操作帧结构,位传输必须要求从左到右。
preamble(32bit前导符):每个传输(读或者写)都必须以前导符开始,前导符是mdio线上连续的32个逻辑’1’信号,和对应mdc线上的32个时钟信号。这部分信号用于和phy设备建立同步。
start(起始符):帧的起始符定义为’01’,也就是mdio线从逻辑’1’降到’0’再回到’1’,以标记传输的。
开始。
operation(操作符):用于定义操作的类型:读或者写。
paddr:phy的地址有5位,可以区分32个phy。高位先被发送和接收。
raddr:寄存器的地址有5位,可以寻址32个独立的寄存器。高位先被发送和接收。
ta:2位的转向符,插在raddr和数据(data)之间,用于避免读操作时发生冲突。读操作时,在ta的这2位时间内,mac控制器保持mdio线的高阻状态,phy设备则先保持1位的高阻状态,在第2位时输出’0’信号。写操作时,在ta的这2位时间内,mac控制器驱动mdio线输出’10’信号,而phy设置则保持高阻状态。
data(数据):16位的数据域。最先发送和接收的是eth_miid寄存器的第15位。
空闲位:mdio线保持在高阻状态。取消所有的三态驱动,由phy的上拉电阻保证mdio线处于逻辑’1’。
3.3、smi写操作
当应用程序设置了mii写和忙位(以太网macmii地址寄存器(eth_macmiiar)),smi接口会向phy传 送 phy地 址 和 phy寄 存 器 地 址 ,然 后 传 输 数 据 (以 太 网 mac mii 数据 寄 存器(eth_macmiidr))。在smi接口传输数据的过程中,不能修改mii地址寄存器和mii数据寄存器的内容;在此过程中(忙位为高),对mii地址寄存器或mii数据寄存器的写操作将被忽视,并且不影响整个传输的正确完成。当完成写操作时,smi接口将清除忙位,告知应用程序。
下图描述了写操作时的帧格式。
3.4、smi读操作
当程序把以太网macmii地址寄存器(eth_macmiiar)的mii忙位置为’1’,而保持mii写位为’0’,smi接口则发送phy地址和phy寄存器地址,执行读phy寄存器的操作。在整个传输过程中,应用程序不能修改mii地址寄存器和mii数据寄存器的内容。在传输过程中(忙位为高),对mii地址寄存器或者mii数据寄存器的写操作将被忽视,并且不影响整个传输的正确完成。在读操作完成后,smi接口将清除忙位,并把从phy读回的数据更新到mii数据寄存器中。
下图描述了读操作的帧格式
3.5、smi时钟选择
mac 启动管理写/读操作。smi时钟是一个分频时钟,其时钟源为应用时钟(ahb时钟)。分频系数取决于mii地址寄存器中设置的时钟范围。这里既然说到了时钟,就再次提一下上文提到的内容:当使用以太网时,ahb时钟必须至少25mhz。
04 代码
原文标题:stm32网络之smi接口
文章出处:【微信公众号:嵌入式arm】欢迎添加关注!文章转载请注明出处。
以“智·变”为主题的2020 Navigate领航者峰会召开
防爆电机的启动方式有哪些
PC电脑液晶面板的价格持续上涨
2017年动力锂电池出货量排名_第一居然不是比亚迪
华为发布业界首款面向AI时代的数据中心交换机
0101以太网简介以及SMI接口
ESG投资热度持续升温,海尔智家的“远见与格局
关于光伏系统接地的问题的介绍分析
基于S3C2410和CH7004的嵌入式系统VGA接口设计
高亮度白光LED灯制作
京东方王东升:物联网有三大技术挑战
谷歌自研芯片并非要摆脱高通,后续产品会继续搭载骁龙芯片
OPPO R19性能大爆料 弹出式镜头或有复生的希望
ARM针对台积电16FFC工艺的ARM Cortex-A73 推出POP IP
I2C和I3C关于功耗和传输速率的对比
智引未来!利尔达成功入选首批“5G应用解决方案供应商推荐名录”名单
变电所电能管理系统的设计和应用说明
谷歌董事长:不久后中国将在AI领域全面超越美国
苹果自动驾驶黑科技盘点
让AI走进千家万户 讯飞消费者产品618优惠剧透