Hi3516A开发--以太网

Hi3516A 网络接口支持 RGMII/RMII/MII 三种模式,下面一一来介绍:

一、RGMII

一般用于MAC和PHY之间的通信。 同时兼容MII所规定的10/100 Mbps工作方式,支持传输速率:10M/100M/1000Mb/s ,其对应clk 信号分别为:2.5MHz/25MHz/125MHz。
发送器:
◎ GTX_CLK——吉比特TX..信号的 时钟信号(125MHz)
◎ TXD[3..0]——被发送数据
◎ TX_CTL——发送控制
注:在千兆速率下,向PHY提供GTX_CLK信号,TXD、TXEN、TXER信号与此时钟信号同步。否则,在10/100M速率下,PHY提供 TXCLK时钟信号,其它信号与此信号同步。其 工作频率为25MHz(100M网络)或2.5MHz(10M网络)。
接收器:
◎ RX_CLK——接收 时钟信号(从收到的数据中提取,因此与GTXCLK无关联)
◎ RXD[3..0]——接收数据
◎ RX_CTL——接收控制
◎ COL—— 冲突检测(仅用于半双工状态)
◎ CRS—— 载波监听
管理配置(控制和状态信息):
◎ MDC——配置接口时钟
◎ MDIO——配置接口I/O
RGMII接口相对于GMII接口,在TXD和RXD上总共减少8根数据线。
Hi3516A开发--以太网_第1张图片 二、RMII
TXD[1:0]:数据发送信号线,数据位宽为2,是MII接口的一半;
RXD[1:0]:数据接收信号线,数据位宽为2,是MII接口的一半;
TX_EN(Transmit Enable):数据发送使能信号,与MII接口中的该信号线功能一样;
RX_ER(Receive Error):数据接收错误提示信号,与MII接口中的该信号线功能一样;
CLK_REF:是由外部时钟源提供的50MHz参考时钟,与MII接口不同,MII接口中的接收时钟和发送时钟是分开的,而且都是由PHY芯片提供给MAC芯片的。
这里需要注意的是,由于数据接收时钟是由外部晶振提供而不是由载波信号提取的,所以在PHY层芯片内的数据接收部分需要设计一个FIFO,用来协调两个不同的时钟,在发送接收的数据时提供缓冲。PHY层芯片的发送部分则不需要FIFO,它直接将接收到的数据发送到MAC就可以了。
CRS_DV:此信号是由MII接口中的RX_DV和CRS两个信号合并而成。当介质不空闲时,CRS_DV和RE_CLK相异步的方式给出。当CRS比RX_DV早结束时(即载波消失而队列中还有数据要传输时),就会出现CRS_DV在半位元组的边界以25MHz/2.5MHz的频率在0、1之间的来回切换。因此,MAC能够从 CRS_DV中精确的恢复出RX_DV和CRS。
在100Mbps速率时,TX/RX每个时钟周期采样一个数据;在10Mbps速率时,TX/RX每隔10个周期采样一个数据,因而TX/RX数据需要在数据线上保留10个周期,相当于一个数据发送10次。
当PHY层芯片收到有效的载波信号后,CRS_DV信号变为有效,此时如果FIFO中还没有数据,则它会发送出全0的数据给MAC,然后当FIFO中填入有效的数据帧,数据帧的开头是“101010---”交叉的前导码,当数据中出现“01”的比特时,代表正式数据传输开始,MAC芯片检测到这一变化,从而开始接收数据。
当外部载波信号消失后,CRS_DV会变为无效,但如果FIFO中还有数据要发送时,CRS_DV在下一周期又会变为有效,然后再无效再有效,直到FIFO中数据发送完为止。在接收过程中如果出现无效的载波信号或者无效的数据编码,则RX_ER会变为有效,表示物理层芯片接收出错。
Hi3516A开发--以太网_第2张图片

三、MII
MII即媒体独立接口,也叫介质无关接口。它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口(图1)。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。[1] 
RXD(Receive Data)[3:0]:数据接收信号,共4根信号线;
TX_ER(Transmit Error):  发送数据错误提示信号,同步于TX_CLK,高电平有效,表示TX_ER有效期内传输的数据无效。对于10Mbps速率下, TX_ER不起作用;
RX_ER(Receive Error):  接收数据错误提示信号,同步于RX_CLK,高电平有效,表示RX_ER有效期内传输的数据无效。对于10Mbps速率下, RX_ER不起作用;
TX_EN(Transmit Enable): 发送使能信号,只有在TX_EN有效期内传的数据才有效;
RX_DV(Reveive Data Valid): 接收数据有效信号,作用类型于发送通道的TX_EN;
TX_CLK:发送参考时钟,100Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHz。注意,TX_CLK时钟的方向是从PHY侧指向MAC侧的,因此此时钟是由PHY提供的。
RX_CLK:接收数据参考时钟,100Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHz。RX_CLK也是由PHY侧提供的。
CRS:Carrier Sense,载波侦测信号,不需要同步于参考时钟,只要有数据传输,CRS就有效,另外,CRS只有PHY在半双工模式下有效;
COL:Collision Detectd,冲突检测信号,不需要同步于参考时钟,只有PHY在半双工模式下有效。
Hi3516A开发--以太网_第3张图片
四、关于MAC和PHY的
参看:关于以太网的MAC和PHY
MAC就是媒体接入控制器 。以太网MAC由IEEE-802.3以太网标准定义。它实现了一个数据链路层。最新的MAC同时支持10Mbps和100Mbps两种速率。通常情况下,它实现MII接口。
PHY是物理接口收发器,它实现物理层。IEEE-802.3标准定义了以太网PHY。它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范。
网卡工作在osi的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为MAC控制器。很多网卡的这两个部分是做到一起的。他们之间的关系是pci总线接mac总线,mac接phy,phy接网线(当然也不是直接接上的,还有一个变压装置)。
PHY和MAC之间是如何传送数据和相互沟通的。通过IEEE定义的标准的MII/GigaMII(Media Independed Interfade,介质独立界面)界面连接MAC和PHY。这个界面是IEEE定义的。MII界面传递了网络的所有数据和数据的控制。
五、关于千兆网和百兆网
参看:百兆网线和千兆网线有什么区别
          以太网pcb布线(转发)
          以太网接口PCB设计经验分享
千兆和百兆主要指的是网络中的传输速度。百兆以太网模式下,MDI是2对差分线,千兆模式下是4对差分线。在部分PHY芯片的Datasheet或者应用手册中会给出MII/RMM/GMII/RGMII接口,MDI接口的等长规则。
下面以RTL8201为例,详细描述以太网接口的有关布局布线问题。
一、布局
 1、RJ45和变压器之间的距离应当尽可能的缩短. 
2、RTL8201的复位信号Rtset信号(RTL8201 pin 28)应当尽可能靠近RTL8021,并且,如果可能的话应当远离TX+/-,RX+/-, 和时钟信号。
3、RTL8201的晶体不应该放置在靠近I/O端口、电路板边缘和其他的高频设备、走线或磁性元件周围. 
4、RTL8201和变压器之间的距离也应该尽可能的短。为了实际操作的方便,这一点经常被放弃。但是,保持Tx±, Rx± 信号走线的对称性是非常重要的,而且RTL8201和变压器之间的距离需要保持在一个合理的范围内,最大约10~12cm。
5、Tx+ and Tx- (Rx+ and Rx-) 信号走线长度差应当保持在2cm之内。 
Hi3516A开发--以太网_第4张图片
二、布线
1、走线的长度不应当超过该信号的最高次谐波(大约10th)波长的1/20。例如: 25M的时钟走线不应该超过30cm,125M信号走线不应该超过12cm (Tx±, Rx±)。
2、电源信号的走线(退耦电容走线,电源线,地线)应该保持短而宽。退耦电容上的过孔直径最好稍大一点。
3、每一个电容都应当有一个独立的过孔到地。
4、退耦电容应当放在靠近IC的正端(电源),走线要短。每一个RTL8201 模拟电源端都需要退耦电容(pin 32, 36, 48).每一个RTL8201 数字电源最好也配一个退耦电容。
5、Tx±, Rx±布线应当注意以下几点 :
(1)Tx+, Tx- 应当尽可能的等长,Rx+, Rx- s应当尽可能的等长;
(2)Tx±和 Rx±走线之间的距离满足下图 :
(3)Rx± 最好不要有过孔, Rx± 布线在元件侧等。
注意:千兆以太网PCB走线,不可有过孔。四对差分线要等长。
考虑到EMC,RJ45应该与金属机壳有所隔离,还有布线的是否禁止在金属部分打过孔,金属部分区域布线不可走顶层,要走内层。

在Hi3516A开发板上使用千兆以太网芯片RTL8211E_VB,我们看一下它的原理图:Hi3516A开发--以太网_第5张图片Hi3516A开发--以太网_第6张图片Hi3516A开发--以太网_第7张图片
六、PHY 地址配置
Hi3516A DMEB 板上 PHY 地址默认为 1,当选用不同的 PHY 地址时须在 U-boot 和Kernel 下更改 PHY 地址配置。
a. U-boot 下配置方式
U-boot 下可通过更改 U-boot 配置文件中宏定义 CONFIG_HIGMAC_PHY1_ADDR的值来配置不同的 PHY 地址。 Hi3516A 的 U-boot 包含以下两个配置文件,两者须同时更改。
include/configs/hi3516a.h
include/configs/hi3516a_spinand.h
b. Kernel 下配置方式
在 Kernel 下可通过以下内核配置选项配置 PHY 地址。
Device Drivers
[*] Network device support --->
[*] Ethernet driver support --->
<*> hieth gmac family network device support --->
(1) hieth-gmac phy0 addr
七、PHY 接口模式配置
Hi3516A 的 GMAC 模块支持 PHY 接口模式有 rgmii、 rmii 和 mii,发布包中默认配置为 rgmii,若需配置成 rmii 或 mii,需要在 boot 和 kernel 下修改配置
a. U-boot 下通过环境变量设置
setenv mdio_intf mii 或者 setenv mdio_intf rmii
b. Kernel 下通过 menuconfig 配置
Device Drivers
[*] Network device support --->
[*] Ethernet driver support --->
<*> hieth gmac family network device support --->
(6) hieth-gmac phy0 interface mode
其中, 1 代表 mii, 5 代表 rmii, 6 代表 rgmii,若管脚复用有变化,请重新配置管脚复用关系。
八、测试传输速度
参看:linux下怎么判断网卡速率?
          Hi3516A开发--ethtool安装和使用
测试网络速度可使用指令:
ethtool eth0     或     mii-tool -v eth0
也可以查看:
      cat /sys/class/net/eth0/speed
windows下:
Hi3516A开发--以太网_第8张图片

你可能感兴趣的:(Hi3516A开发,Hi3516A开发)