BCM5615
来源:华强电子网
作者:华仔
浏览:498
时间:2016-08-10 14:18
标签:
摘要:
嵌入式处理器mpc8245简介 mpc8245由一个外设逻辑块和一个32位超标量体系结构powerpc处理器内核构成。在外设逻辑块中集成了一个pci桥、duart、内存控制器、dma控制器、epic中断控制器、一个消息单元和一个i2c控制器。处理器内核支持浮点运算和内存管理,具有16kb指令高速缓存(cache), 16kb数据cache和电源管理特性。mpc8245内含一外设逻辑总线,用于连接处
嵌入式处理器mpc8245简介 mpc8245由一个外设逻辑块和一个32位超标量体系结构powerpc处理器内核构成。在外设逻辑块中集成了一个pci桥、duart、内存控制器、dma控制器、epic中断控制器、一个消息单元和一个i2c控制器。处理器内核支持浮点运算和内存管理,具有16kb指令高速缓存(cache), 16kb数据cache和电源管理特性。mpc8245内含一外设逻辑总线,用于连接处理器内核和外设逻辑块。处理器内核可在多种不同的频率下工作。mpc8245既可用作 pci host,也可用作pci代理控制器。支持多达2gb的sdram;支持1"8 组的4mb, 16mb, 64mb, 128mb, 或256mb存储器。时钟电路mpc8245输入时钟由33mhz的的晶振通过零延时缓冲器产生四路时钟信号,一路作为mpc8245的pci总线时钟和内核的输入时钟,系统时钟信号osc_in未用,需要接地。mpc8245的引脚pll_cfg[0:4]用于配置倍频因子,经过内部倍频器,产生sdram时钟和166mhz的cpu内核时钟。一路作为rtl8139的pci总线时钟,一路作为bcm5615的pci总线时钟。pci总线接口pci总线工作在33mhz,设计中要保证pci时钟的时钟相位偏移小于2ns,否则,系统可能无法正常工作。mpc8245作为pci 主处理器,rtl8139和bcm5615的req#、gnt#分别连到mpc8245的req[0:1]#、gnt[0::1]#,由mpc8245来实现总线的仲裁。利用地址线ad31,ad30来决定rtl8139、bcm5615的idsel, 实现pci总线配置访问时对rtl8139、bcm5615的片选。这种方法会使ad31,ad30线上增加一个负载,因此将它们的idsel通过1k?电阻耦合到ad31、ad30上来解决负载加重的问题。pci总线的控制信号都要求有上拉电阻,保证它们在没有驱动设备驱动总线的情况下仍然具有稳定的值,因而 frame#、trdy#、irdy#、devsel#、stop#、serr#和perr#这些信号使用10k?电阻上拉。flash在mpc8245 中,rom/flash被分为2 个bank ,bank0 的地址为0xff800000"0xffffffff ,片选为/rcs0, rcs0接存储代码的存储器片选;bank1 的地址为0xff000000"0xff7fffff,片选为/rcs1。 rom/flash/sram 工作在不同的数据宽度(8位,16位,32位,64位)地址总线下,复位时,mpc8245的引脚mdl0、/foe决定启动数据位宽度;复位后,硬件复位配置字决定数据的宽度。本设计中选择512kb的flash作为bootloader代码存储器,系统工作在8位模式,对应的地址为0xff800000"0xff87ffff。选用两片am29lv320b分别作为bootloader/linux内核和文件存储器,am29lv320b是32 mb、单3.3v电源供电的闪存,编程和擦写电压由内部产生,与jedec单电源闪存标准兼容;可组成4m×8bit或2m×16bit的存储器。可用标准eprom编程器进行编程;存取时间最短为70ns;独立的片选(ce#)、写使能(we#) 和输出使能(oe#)控制,可减小对总线的压力。片选rcs1、rcs2分别选择两片flash,rcs1选中的flash对应的地址为0xff000000"0xff3fffff,rcs2选中的flash地址由编程决定。跳线j1用来将rcs0接到flash1,rcs1接到flash0,这样在bootloader代码运行后,将bootloader代码、linux内核代码都烧到flash1,节约一片512kb的flash,同时留下rcs2、rcs3片选信号,留作以后扩展flash用。sdram32mb的sdram由两片hy57v283220t组成。mpc8245的sdram接口 使用一个片选信号cs1,同时作为两片hy57v 283220t的片选,构成64位数据的sdram。 hy57v283220t是4 bank×1m×32bit的cmos sdram,单3.3±0.3v电源供电,所有引脚与lvttl接口兼容,所有输入和输出都以系统时钟的上升沿为参考。c*ole和ems接口电路串行通信通过max232芯片实现,工作在3.3v工作电压,它的体积比较小,工作稳定。通过串口可实现对onu的网络管理。使用常用的phy芯片rtl8139扩展一个10mbps网口,使得在bootloader代码引导系统后,通过该网口下载linux内核代码,系统运行后通过该网口对onu进行web管理。交换模块接口设计以太网交换模块由1个bcm5615交换芯片、3个bcm5228b phy芯片、1个bcm5221phy芯片、1个hdmp-1636a千兆serdes和sdram芯片组成。该模块提供1个千兆光口(1000base-lx),25个百兆光口(100base-fx),是实现onu功能的核心部分。一个千兆口作为pon的接收端口,接收olt广播发送的数据包;另一个千兆口连接成百兆口,作为pon的发送端口,向olt发送数据,该端口发射的是特殊波长的光。通过特殊的交换机制来实现onu与olt的连接。bcm5615芯片简介bcm5615是集成多层交换芯片,是以太网交换模块的核心。它具有24个10/100mbps和2个10/100/1000mbps以太网口;具有2层和3层交换和2"7层过滤功能;可实现全线速交换,交换速率达670万包/秒;支持ieee 802.1q.d;具有256kb的内部数据包存储器,可以用sdram扩展64mb外部数据包存储器。本设计选用3片bcm5228b来提供24个phy端口。bcm5228b是物理层器件,单片内包含8个独立的phy(端口)。bcm5615通过串行mii管理接口管理3个 bcm5228b芯片的24个phy端口,系统对bcm5228b的访问就是通过转化为bcm5615的串行mii管理接口上的操作来实现的。bcm5228b每个phy端口的管理地址由phyadd[4::0]引脚设置,若bcm5228b的phyadd[4::0]为phyad,则每片8个端口对应的管理地址分别为addr=phyad+ portx,portx为每个phy端口的编号。时钟电路bcm5615的芯核时钟由133mhz的晶振产生,设计pcb时,应尽量靠近bcm5615的时钟输入引脚,bcm5615的gmii时钟与mii时钟均为125mhz,由125mhz的晶振通过74lcx245缓冲后产生四路125mhz的时钟源,输入到bcm5615的gmii_clkin引脚和3片bcm5228的ref_clk引脚。注意连接到bcm5228b的时钟线应该等长,不管千兆口是否使用,gmii_clkin的时钟都必须提供。系统复位电路系统复位电路采用imp811复位芯片,通过74lcx245缓冲后产生多路复位信号,分别接到各个芯片的复位引脚。为了可靠复位,要求复位信号的上升沿不能有振荡现象发生。系统软件设计本文选择linux作为操作系统,使用broadcom公司提供的软件开发包sdk开发bcm5615的驱动程序。ppcboot是独立于其它软件的,它只负责初始化并配置有关硬件,然后调用linux内核映像引导操作系统运行,其它软件分为用户空间程序和内核空间程序两大部分。在内核空间运行嵌入式linux操作系统、bcm5615驱动程序、rtl8139网口驱动程序、实现stp的stp内核模块、为方便整个软件系统设计和实现而采用的虚拟设备vnd和vcd。它们之间的接口关系是:linux提供内核api给bcm5615驱动和其它linux可动态加载内核模块,如stp、vnd、vcd、rtl8139网卡驱动等。asic驱动asic 驱动主要是完成对bcm5615的初始化和配置工作,并为上层服务提供接口。其中sal 层的目的就是把操作系统所提供的各种服务映射为驱动程序本身的api。第二层即中间层,也可以说是整个驱动程序的核心层,它建立在sal 之上,其设计目标主要是提供底层寄存器和存储器的访问、pci 总线操作、dma 操作以及中断处理函数等。驱动程序的顶层是api层,它建立在drv层之上,是对drv 有关部分的封装,从而为上层的其他软件模块提供各种服务,其他模块通过调用这一层的函数来访问和控制asic。asic 驱动提供的api 对用户进程来说是无法直接调用的,因此本文设计了一个虚拟的字符设备(tty),并编写其驱动程序,同时在/dev 目录下用mknod 命令建立相对应的字符设备文件。对操作系统来说,bcm5615的26 个端口对应于一个物理pci 设备,即asic,它们共享一个pci通道和地址空间。这给那些与网络设备紧密相关的软件带来不少麻烦,因此可以把26 个端口设计成26 个虚拟网络设备(vnd)并编写其驱动程序。因此,snmpd 和生成树协议软件所看到的是26 个虚拟网卡,和普通的网卡并无区别。onu硬件系统设计系统硬件由嵌入式控制模块和网络交换模块两部分构成。嵌入式控制模块是onu的控制和管理核心,它为嵌入式linux操作系统的运行提供硬件平台,通过它来实现对网络交换模块的控制与配置,实现网络交换模块的正常运行。网络交换模块提供以太帧的交换与转发功能,嵌入式控制模块通过pci总线与网络交换模块进行通信,访问网络交换模块内部各芯片的寄存器,对各芯片进行配置并获取各个芯片的状态信息。网络交换模块内部的交换芯片bcm5615将嵌入式控制模块对它的访问,转换为自己对网络交换模块内部各芯片的访问,这样就实现了嵌入式控制模块对网络交换模块内部各芯片的管理。;