完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一. 概念性错误
88E6122是一个switch(交换)芯片,并不是一个单纯的PHY芯片。 图1. 88E6122芯片的框架图 从图1我们可以看出:88E6122包含有6个千兆以太网转换PORT口,集成了2个10/100/1000Mbps三重速率的以太网发送器(PHY),1个(G)MII接口,3个SERDES接口用来连接外部Marvell PHY设备或者其他SGMII设备。 对Switch的配置主要包含以下几个方面:
(1)Switch全局配置 Switch全局配置就是对Switch Global Control Register进行配置,主要配置88E6122芯片是否使能PPU(PHY Polling Unit),为何要配置PPU的使能?那是因为如果使能了PPU,PPU将拥有外部PHY和内部PHY的寄存器的全部入口控制权,此时软件将无法对PHY寄存器进行任何的操作。如果需要利用软件来对PHY进行配置,就必须关闭PPU的使能。 (2)SERDES配置 SERDES是Switch端的串并转换器,与DSP侧的SERDES直连,需要配置Extended PHY Specific Control 2 Register (switch端SGMII输出电压幅值。。。),配置Control Register寄存器(配置SERDES是否为loopback模式,双工模式,速率选择等等,是否开启自动协商,如果开启自动协商,那么双工模式、速率选择就不必通过软件来配置)。 (3) PORT口配置 对PORT口的配置就是对MAC Forcing Control Register进行配置,主要配置PORT口的速率,强制连接,强制双工以及使能PCS带内自动协商功能,此处的PORT口的速率应该要与SERDES的接口速率保持一致。 (4)PHY配置 对内部PHY的配置就是对Control Register -- copper进行配置,配置PHY是否loopback,速率档,双工模式,自动协商等功能。 二、DSP与Switch的硬件连接 DSP的EMAC模块主要构成如下图2所示: 图2 DSP EMAC模块组成框图 由图2可知,EMAC主要包含EMAC模块、MDIO模块、控制模块组成,EMAC模块主要负责以太网数据通道的建立,MDIO模块主要负责配置外围PHY的寄存器。EMAC模块包含SGMII接口和SERDES接口,与之连接的也必须是SGMII接口。88E6122包含有3个SGMII接口,分别为4、5、6端口。 图3 DSP 与Switch芯片的数据接口 目前基带板的设计是让DSP1与Switch的PORT 4口相连,DSP2与Switch的PORT 5口相连,FPGA与PORT 6口相连。88E6122的MDIO_CPU、MDC_CPU与DSP的MDIO接口相连,DSP可以通过MDIO接口实现对Switch的配置。 图4 DSP 与Switch芯片的控制接口 三、88E6122芯片资料解读 88E6122芯片的寄存器具备两种地址模式,Multi-chip Addressing Mode与Single-chip Addressing Mode,根据硬件配置ADDR[4:0]的引脚电平值,来判断采用的是哪种模式,在基带板V30中采用的是Single-chip Addressing Mode,地址映射表如图5所示,其中横坐标是SMI 设备地址,也就是代码中的PHY number,纵坐标就是寄存器地址。由于88E6122只有2个PHY,6个PORT,3个SERDES,所以其与SMI地址的对应关系为:
图5 88E6122设备寄存器映射图 对于PORT、SERDES、GLOBAL寄存器的配置,就可以直接利用对应的SMI地址和寄存器地址实现,但对于PHY的配置有点不同,IEEE只给PHY定义了32个寄存器地址空间,这32个寄存器空间是基本固定的,一些PHY厂家会通过页机制实现外扩的寄存器空间。88E6122芯片也采用的页机制来外扩寄存器空间,PHY寄存器的结构如图6所示: 图6 PHY寄存器映射图 根据图6可知,对于Register0 - Register15而言,并不区分当前页,所以直接利用SMI设备地址和寄存器地址就可以实现对寄存器的配置。但是从Register16开始,后面的寄存器在不同的页上,代表的是不同的寄存器。所以此时,就需要指定当前页后,再进行寄存器配置。通过对Page Address寄存器进行写操作,来指定当前页。例如: phy_setReg(0x1, 22, 0x3); 表示的就是通过对Page Address寄存器写入3,将当前页置为3,接着再对寄存器的操作就是操作的第三页上的寄存器,例如: phy_setReg(0x1, 16, 0xN); 表示的就是对LED[3:0] Function Control Register的操作,而不是对寄存器Copper Specific Control Register1的操作。 四、Switch的配置流程 对于88E6122芯片,需要对其四个模块的寄存器进行配置,配置流程如下: MDIO_CONTROL = 0x4000001f; // Enable MII interface phy_setReg(27, 4, 0x0081); //对全局寄存器进行配置 phy_setReg(0xc, 26, 0x47); // 对SERDES进行配置 phy_setReg(0xc, 0, 0x8140); phy_setReg(0x14, 0x1, 0x043e); //对PORT口进行配置 phy_setReg(1, 0, 0x8140); // 对PHY进行配置 phy_wait( 4000000 ); //等待建立连接 注意:在配置Switch前需要对其进行复位操作,否则Switch的状态会出现异常 配置完成后,Switch正常工作时的状态寄存器如下:
五、调试方法 SERDES是与DSP侧连接的端口,读取SERDES状态寄存器可以知道Switch与DSP之间的连接状态;PHY是连接外部其他PHY设备的接口,通过获取PHY的状态来判断Switch与外部其他PHY设备的连接情况(如PC机)。数据在Switch中的流向如图7所示。 图7 数据在Switch中的流向 |
||
|
||
只有小组成员才能发言,加入小组>>
4768个成员聚集在这个小组
加入小组3413 浏览 0 评论
航顺(HK)联合电子发烧友推出“近距离体验高性能Cortex-M3,免费申请价值288元评估板
4327 浏览 1 评论
4367 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-24 08:47 , Processed in 0.449064 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191