stm32F107+dp83848 RMII工作模式 +lwip

stm32f107为核心——基于ARM的Cortex-M3内核,最高工作频率为72MHz,内置高速存储器,具有丰富的增强I/O端口和外设资源:其内部虽然包含了以太网MAC控制器(RJ-45网络接口)——MAC 是 Media Access Control 的缩写,即媒体访问控制子层协议。该协议位于 OSI 七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。但并未提供物理层接口美国国家半导体生产的10/100Mb/s以太网接口芯片DP83848功耗低、单路高速、性价比高,具有通用的网络接口——PHY 是物理接口收发器,可简化软硬件开发流程。以太网本质上是一个物理层标准,要实现网络传输,需要有高层协议的支持,软件实现lwip协议栈,技术成熟,方案灵活,便于移植。(本博文简单介绍一下相关的概念)
有关 MAC、PHY 和 MII

以太网(Ethernet)是一种计算机局域网组网技术,基于 IEEE 制定的 IEEE 802.3 标准,它规定了包括物理层的连线、电信号和介质访问层协议的内容。以太网是当前应用最普遍的局域网技术。Ethernet 的接口实质是 MAC 通过 MII 总线控制 PHY 的过程。(1)MAC 是 Media Access Control 的缩写,即媒体访问控制子层协议。该协议位于 OSI 七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。在发送数据时候,MAC 协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息, 最终将数据以及控制信息以规定的格式发送到物理层; 在接收数据的时候, MAC协议首先判断输入的信息并是否发生传输错误,如果没有错误,则去掉控制信息发送至 LLC 层。以太网 MAC 由IEEE-802.3 以太网标准定义。

(2)RMII(Reduced Media Independant Interface)简化媒体独立接口,是标准的以太网接口之一, 比 MII 有更少的 I/O。 RMII 口是用 2 根线来传输数据。MII/RMII 只是一种接口, 对于 10M 线速,MII 的时钟是 2.5M, RMII 则是 5M; 对于 100M 线速, MII 的时钟是 25M,RMII 则是 50M。以太网帧的格式为:前导符+开始位+目的 mac 地址+源 mac 地址+类型/长度+数据+padding(optional)+32bitCRC,如果有 vlan,则要在类型/长度后面加上 2 个字节的 vlan tag,其中 12bit 来表示 vlan id,另外 4bit 表示数据的优先级!

(3)PHY 是物理接口收发器,它实现物理层。包括 MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物
理介质附加)子层、PMD(物理介质相关)子层、MDI 子层。100BaseTX 采用 4B/5B 编码。PHY 在发送数据时,收到 MAC 过来的数据(对 PHY 来说,没有帧的概念,对它来说,都是数据而不管什么地址,数据还是 CRC),每 4bit 就增加 1bit 的检错码,然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送出去。收数据时的流程反之。PHY 还有个重要的功能就是实现 CSMA/CD 的部分功能。它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机时间后将送数据出去。如果两个碰巧同时送出了数据,那样必将造成冲突,这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时重新发送数据。这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的, 而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突。通信速率通过双方协商,协商的结果是两个设备中能同时支持的最大速度和最好的双工模式。这个技术被称为 Auto Negotiation 或 NWAY。


-

你可能感兴趣的:(有线网络)