当前位置:文档之家› K60-Enthernet(中文)

K60-Enthernet(中文)

K60-Enthernet(中文)
K60-Enthernet(中文)

第44章10/100-Mbps 以太网物理层

通信(Ethernet MAC ,ENET)

44.1 导言

MAC-NET的核心在于通过10/100 MAC连接,实现了第3层网络加速功能。这些功能为客户端应用提供线速服务,被设计用来加速处理各种通用网络协议,例如IP,TCP,UDP和ICMP。

说明

关于任何特殊功能实现的内容,详情参见设备的芯片配置章节。

44.1.1 概述

核心实现了符合IEEE802.3-2002标准的双倍速10/100 Mbps Ethernet MAC。MAC层提供了符合半双工或全双工的10/100Mbps Ethernet LAN。

MAC的工作是可以完全被程序控制的,并且可以在NIC(Network Interface Card,网络通信接口卡),桥接或开关中应用。核心实现了基于IETF RFC 2819的远程网络监控(remote network monitoring ,RMON)的计数器。

核心还实现了一个硬件加速块,以优化网络提供IP和TCP,UDP,ICMP 协议服务功能的网络控制器的性能。加速块在硬件中起到关键功能,此功能一般通过大型软件在高层实现。

核心实现了可编程的嵌入式FIFO,它可以为低损流控制的接收路径进行缓存。

增强版的电源管理功能可以进行异常包检测,也可以对掉电模式进行编程。

对于工业用途的自动化应用,IEEE 1588标准正在成为以太网中精确时间同步的主要技术。它为分布的控制节点克服以太网的缺陷提供了精确的时钟同步信号。

使用IEEE 1588的可编程的10/100 Ethernet MAC集成了一个有时间戳的标准的IEEE802.3 Ethernet MAC。

44.1.2 特性

MAC-NET核心包含下列特性。

44.1.2.1 Ethernet MAC特性

实现了全部802.3的功能,包含首部/SFD的生成,帧框架的生成,CRC的

生成与检验。

动态配置支持10/100 Mbps工作。

支持10/100 Mbps全双工并可配置为半双工工作。

支持AMD异常包检测并为节点远程电源管理产生中断。

可以无缝连接到商用以太网PHY设备,通过:

一个4位的工作在25MHz的介质无关接口(Medium Independent Interface ,MII),或

一个2位的工作在50MHz精简的MII(Reduced MII ,RMII)。

面向用户应用的简单的64位FIFO接口

CRC-32检验在全速下可以选择到客户端的帧检测序列(frame check sequence,FCS)位段的方向。

CRC-32的产生添加到传输或面向用于应用,提供了基于每一帧的可选择的FCS。

当工作在全双工模式下

实现了自动暂停帧(802.3 x31A)的产生与结束,提供了流控制,而不需要用户程序的介入。

暂停数量用于动态地配置产生暂停帧。

暂停帧的生成也提高了用户程序的控制能力,用户程序提供了丰富的通信流控制。

可根据用户应用选择接收暂停帧的方向。

实现了标准流控制机制。

在半双工模式,提供了完全的冲突支持,包括拥塞,补偿和自动重发。

支持基于IEEE 802.1Q的标记的VLAN帧。

可编程的MAC地址:在传输中插入;若不匹配接收地址检测则抛弃(除非是广播或暂停帧)

可编程的不规则模式支持接收设备的部分MAC目标地址检测。

多播和单播地址过滤接收基于64个入口的哈希表格,它减少了更高层的处理负担。

可编程的最大帧长度支持任何标准或自定义的帧长度。

帧堵塞和错误(顺序,CRC,长度)统计描述符及暂停帧提供了IEEE802.3基本和必要的管理信息数据库(management information database ,MIB)包和远程网络镜像(RFC 2819)。

简单的握手用户应用FIFO接口,它拥有完全的可编程的深度和阈值。

单独的状态字可以用于用户接口的每个接收帧,提供帧信息如帧长度,帧类型,VLAN标记和错误信息。

多个内部回环选项。

对于PHY设备的配置与管理的MDIO主机端口,拥有两个可编程的MDIO 基地址。

支持老版本的FEC缓冲描述符。

44.1.2.2 IP协议性能优化功能

只工作在TCP/IP和UDP/IP及ICMP/IP协议数据或IP头。

使能线速处理。

支持Ipv4和Ipv6。

明确的其他类型和协议的帧的传输。

支持VLAN标记过的帧,基于IEEE802.1q关于明确的VLAN标记和控制段的方向。

自动进行IP首部和负载(协议专用)校验和的计算和接收检验。

自动进行IP首部和负载(协议专用)校验和的生成和自动插入每帧基础模块的配置传输。

支持IP和TCP,UDP,ICMP数据校验和的生成和检验。

完整的头部功能选项支持Ipv4和TCP协议头部。

对于Ipv6的支持限制于只有基本头部的数据包。包含扩展头部的数据包可以被明确地不被修改/无检测通过。

统计信息关于接收的IP和协议错误。

可配置的自动的抛弃错误帧。

可配置的自动的主机到网络(host-to-network ,RX)和网络到主机(network-to-host ,TX)字节命令转换为帧内部的IP和TCP/UDP/ICMP首部。

在接收短IP数据报时可配置移除填充。

可配置以太网负载序列以允许32位的字信任的首部和负载处理。

可编程的存储转发操作,包含时与钟和速度分离的FIFO。

44.1.2.3 IEEE 1588特性

支持所有的IEEE 1588帧

参考时钟可以根据网络速度被独立地关闭

软件可编程生成和处理帧的精确的时间戳

计时镜像可以校准系统和计时精确度管理

可编程中断产生的外部事件的精确的时间戳

外部系统控制的可编程的时间和中断的产生

硬件及软件可控制的的计时器同步

4通道IEEE 1588计时器,均通过1588计时器支持输入捕捉和输出比较44.1.3 框图

图44-1 10/100 Ethernet MAC-NET核心框图

44.2 外部引脚说明

44.3 存储映射/寄存器定义

保留位应被写0,并且在读时被忽略,以允许以后扩展。

未使用的的寄存器读为0,并且写无效。

下表中总结了以太网寄存器。

表44-1 寄存器映射摘要

ENET存储映射

44.3.1 中断事件寄存器(ENET_EIR)

当一个事件发生,在EIR中一个位被置1,若在中断屏蔽寄存器(EIMR)的对应位也被置1,将产生一个中断。写1到EIR位中将清0;写0无效。此寄存器在硬件复位时被清0。

地址:ENET_EIR –400C_0000h 基址+ 4h 偏移量= 400C_0004h

ENET_EIR各段说明

44.3.2 中断屏蔽寄存器(ENET_EIMR)

EIMR控制哪些中断事件被允许产生实际中断。硬件复位将清0此寄存器。若EIR和EIMR寄存器中的对应位被置1,则产生一个中断。中断信号保持直到写1清0到EIR位或写0到EIMR位。

地址:ENET_EIMR –400C_0000h 基址+ 8h 偏移量= 400C_0008h

44.3.3 接收描述符激活寄存器(ENET_RDAR)

RDAR是一个命令寄存器,由用户写入,指示接收描述符令牌被更改(以空位置位驱动产生的空接收缓冲器)。

当此寄存器被写入,RDAR位被置1。它独立于用户实际写入的数据。当被置位时,MAC获得接收描述符令牌,并且处理接收帧(ECR[ETHER_EN]也被置1)。在MAC获得空标志未置位的接收描述符之后,MAC对RDAR位清0并且停止接收描述符令牌的获取,直到用户重新配置此位,表示另外的描述符被放入到接收描述符令牌中。

RDAR寄存器在复位时被清0,此时ECR[ETHER_EN]从1变为0,或ECR[RESET]被置1。

地址:ENET_RDAR –400C_0000h 基址+ 10h 偏移量= 400C_0010h

ENET_RDAR各段说明

44.3.4 发送描述符激活寄存器(ENET_TDAR)

TDAR是一个命令寄存器,由用户写入,指示接收描述符令牌被更改(以空位置位驱动产生的空接收缓冲器)。

当此寄存器被写入,TDAR位被置1。它独立于用户实际写入的数据。当被置位时,MAC获得接收描述符令牌,并且处理接收帧(ECR[ETHER_EN]也被置1)。在MAC获得空标志未置位的接收描述符之后,MAC清0TDAR并且停止接收描述符令牌的获取,直到用户重新配置此位,表示另外的描述符被放入到接收描述符令牌中。

TDAR寄存器在复位时被清0,此时ECR[ETHER_EN]从1变为0,或ECR[RESET]被置1。

地址:ENET_TDAR –400C_0000h 基址+ 14h 偏移量= 400C_0014h

ENET_TDAR各段说明

44.3.5 以太网控制寄存器(ENET_ECR)

ECR是一个用户读/写的寄存器,也可以通过硬件选择此寄存器的段。它控制很多以太网MAC的高级功能,包括通过EN_1588位支持原来的FEC。

地址:ENET_ECR –400C_0000h 基址+ 24h 偏移量= 400C_0024h

ENET_ECR各段说明

44.3.6 MII 管理帧寄存器 (ENET_MMFR)

写MMFR 将触发一个配置帧发送到PHY 设备,除非MSCR 被编程清0。 若MSCR 在写MMFR 期间从0变为非0,一个MII 帧被产生,同时数据被预先写入到

MMFR

。若当前MSCR 为0,则允许MMFR 和MSCR 的编程顺序不分先后。

在运行中产生帧,若MMFR 寄存器被写入,则帧内容被改变。若在运行中产生帧,程序需使用EIR[MII]中断标志位来避免写入MMFR 寄存器。 地址:ENET_MMFR – 400C_0000h 基址 + 40h 偏移量 = 400C_0040h

ENET_MMFR 各段说明

44.3.7 MII速度控制寄存器(ENET_MSCR)

MSCR对MII时钟频率(MDC引脚)进行控制,并且允许声明MII管理帧的首部。

MII_SPEED段必须被编程写入一个值,才能提供一个小于等于2.5MHz的MDC频率,以符合IEEE802.3 MII的要求。MII_SPEED需被设置为一个非0值作为读或写管理帧的源。在管理帧完成之后,MSCR寄存器可以被选择清0以关闭MDC。MDC引脚产生一个50%占空比周期信号,除非MII_SPEED在工作是被变更(变更在一个MDC上升沿或下降沿之后开始作用)。

若内部模块时钟为25MHz,编程此寄存器为0x0000_0004将会使得MDC 的状态由下面的公式计算得出。

25 MHz / ((4 + 1) x 2) = 2.5 MHz

下表显示了对MII_SPEED最合适的值,以产生内部模块时钟。

表44-10 MSCR编程样例

地址:ENET_MSCR –400C_0000h 基址+ 44h 偏移量= 400C_0044h

ENET_MSCR各段说明

44.3.8 MIB 控制寄存器(ENET_MIBC)

MIBC 是一个可读/可写寄存器,它控制及反映MIB 模块的状态。访问此寄存器来禁止MIB 模块工作或清除MIB 计数器。MIB_DIS

位复位为1。 地址:ENET_MIBC – 400C_0000h 基址 + 64h 偏移量 = 400C_0064h

ENET_MIBC 各段说明

44.3.9 接收控制寄存器(ENET_RCR)

地址:ENET_RCR –400C_0000h 基址+ 84h 偏移量= 400C_0084h

ENET_RCR各段说明

44.3.10 发送控制寄存器(ENET_TCR)

TCR 是一个可读/可写寄存器,配置发送模块。此寄存器在系统复位时被清0。PDEN 只有在ECR[ETHER_EN]被清0是才能被改变。

地址:ENET_TCR – 400C_0000h 基址 + C4h 偏移量 = 400C_00C4h

ENET_TCR 各段说明

相关主题
文本预览
相关文档 最新文档