使用BCM56500实现板级高性能交换型路由器(图)
[09-12 16:28:14] 来源:http://www.88dzw.com 单片机学习 阅读:8434次
文章摘要:板级高端口密度LAN Switch硬件设计图2 交换板硬件结构图 图2是LAN switch交换板的硬件结构,其硬件电路由CPU控制单元(子卡)、交换单元、物理层芯片单元、RJ45/光接口单元、CPU连接器单元、时钟单元、电源单元组成。在设计中采用了一片BCM56500实现24个千兆数据端口,采用一片BCM5464物理层芯片和一片BCM5461 物理层芯片来提供不同类型的数据端口。使用BCM5464接出4个千兆电接口(SGMII接口)接入前面板,使用BCM5461接出1路千兆电接口(SGMII接口)作为板内使用。使用BCM56500的SERDES接口接出2路千兆光接口接入前面板,另外使用1路
使用BCM56500实现板级高性能交换型路由器(图),标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com板级高端口密度LAN Switch硬件设计
图2 交换板硬件结构图
图2是LAN switch交换板的硬件结构,其硬件电路由CPU控制单元(子卡)、交换单元、物理层芯片单元、RJ45/光接口单元、CPU连接器单元、时钟单元、电源单元组成。
在设计中采用了一片BCM56500实现24个千兆数据端口,采用一片BCM5464物理层芯片和一片BCM5461 物理层芯片来提供不同类型的数据端口。使用BCM5464接出4个千兆电接口(SGMII接口)接入前面板,使用BCM5461接出1路千兆电接口(SGMII接口)作为板内使用。使用BCM56500的SERDES接口接出2路千兆光接口接入前面板,另外使用1路SERDES接口也作为板内使用,其余16路千兆端口使用SERDES接口接入系统背板,供系统其他板卡上联作为星型数据总线。BCM5464是BroadCom公司的4端口千兆物理层芯片,BCM5461是BroadCom公司的单端口千兆物理层芯片。
在硬件设计中,交换单元选用了BCM56500,通过PCI接口与CPU控制单元相连,以实现对交换芯片的配置管理和快速通信。设计中的实际连接如图3所示。其中由于系统中只有1个PCI从设备,设备号采用PCI_AD[31]线上的信号来选中,因此实际连线中CPU的IDSEL直接连接PCI_AD[31]即可。在PCI驱动软件中,要保证使用硬件相应的设备号进行选中和配置。
图3 系统PCI连接图
LAN Switch的软件启动和硬件初始化过程
LAN Switch采用WindRiver公司VxWorks操作系统。在CPU最小系统(CPU+SDRAM+Flash+串口)完成启动后,需要通过PCI总线对LAN Switch交换部分进行初始化,主要步骤如下。
(1)由于BCM56500工作在little endian模式,而MPC8245工作在big endian模式,因此需要对头模式进行设置(可以使用字节位移指令或者对CONFIG_ADDR和CONFIG_DATA在访问前进行字节交换);
(2)根据硬件连接选择PCI设备的设备号,配置交换芯片BCM56500的PCI基地址和窗口大小;
(3)通过PCI总线使用交换芯片BCM56500的CPU管理接口确定交换芯片的型号,然后根据不同的芯片类型进行初始化和DMA通道的配置;
(4)挂接交换芯片的驱动程序和各种API,完成LAN switch的初始化过程。
其中第三、第四步骤需要Broadcom公司的软件开发支持包(SDK)支持,直接从程序中调用Boradcom的初始化程序,可以保证正常完成初始化和加载驱动程序。
以下对PCI驱动的设计配置和SDK做进一步的说明。
前面已经说明了对于BCM56500的IDSEL信号已经确定,设计中使用VxWorks的标准PCI驱动程序,对于BCM56500的PCI挂接例程如下。
(1)在bootROM中用sysHwInit()调用sysPciAutoConfig(),对PCI_SYSTEM结构进行实例化;
(2)同样在sysHwInit()中,使用pciConfigOutLong()对BCM56500的基地址和窗口大小进行配置,然后使用pciConfigOutByte()挂接BCM56500的中断至CPU的外部中断向量表;
(3)至此,PCI配置完成。通过BCM56500的S_Channel可以配置BCM56500中的各个寄存器和表项。S_Channel的消息传递有特殊的格式和规范,一般通过Broadcom公司提供的软件开发支持包(SDK)中自带的标准函数来进行配置。
本设计使用Broadcom公司5.2.3版的SDK。SDK的设计严格分层,自下而上分成操作系统(RTOS)、操作系统适配层(SAL)、芯片系统层(SOC)、分发层(Dispatch)和BCM的应用接口层(API层)。由于SDK支持Broadcom公司的几乎所有交换芯片,因此在使用SDK的时候,在使用API之前需要进行芯片查询,按照搜索到的芯片挂接相对应的API。整个的芯片查询和挂接API的过程,使用SDK实现相当方便。初始化SDK的API的过程如下。
《使用BCM56500实现板级高性能交换型路由器(图)》相关文章
- › 使用BCM56500实现板级高性能交换型路由器(图)
- 在百度中搜索相关文章:使用BCM56500实现板级高性能交换型路由器(图)
- 在谷歌中搜索相关文章:使用BCM56500实现板级高性能交换型路由器(图)
- 在soso中搜索相关文章:使用BCM56500实现板级高性能交换型路由器(图)
- 在搜狗中搜索相关文章:使用BCM56500实现板级高性能交换型路由器(图)