MPC8250处理器及其在宽带接入中的应用
摘要:MPC8250是Motorola公司推出的高性能32位嵌入式微处理器MPC82XX系列中的一种,本文介绍MPC8250的结构与特点,并与MPC860的特点进行对比,在此基础之上分析MPC8250应用于宽带接入产品的优势所在。最后提出一种充分利用MPC8250优点的接入路由器硬件设计方案。
关键词:嵌入式处理器 MPC8250 接入路由器
1 MPC8250简介
MPC8250是Motorla公司在嵌入式徽顺MPC860基础之上推出的MPC82XX系列微处理器中的一种。MPC82XX系列保留了MPC860的嵌入式PowerPC内核和通信处理模块CPM并存的体系结构,同时进一步提高了工作频率、集成了更多的外围器件、提供了丰富的总线接口。其中,MPC8250没有集成在一数据通信设备中不常使用、而且较为昂贵的ATM处理模块,进一步降低了成本。MPC8250的内部结构基于PowerQUICC结构,主要由PowerPC内核、系统接口单元SIU、通信处理单元CPM构成。它支持60x总线,其数据线为64位,地址线为32位;支持PCI/LOCAL总线,其数据线为32位,地址线为32位。内核工作时钟最高300MHz,CPU工作时钟最高200MHz。内部结构如图1所示。
①PowerPC内核:完成中央处理器的功能,执行高层程序偌,它与SIU和CPM通过独立的指令Cache和数据Cache通信,通过MMU对存储器进行管理。
②系统接口单元SIU:包括CPU的复位、中断控制器、时钟配置等功能。内部包括60x总线控制器、PCI/LOCAL总线到60x总线的桥接器、存储器控制器、时钟控制器等。MPC8250的存储控制器部分集成了SDRAM控制器,通过设置寄存器即可完成与SDRAM的接口配置,与MPC860配置UPM表的方式相比,极大地降低了开发的复杂度。
javascript:window.open(this.src);" style="cursor:pointer;"/>
③通信处理单元CPU:CPM可与内核并行工作,处理通信控制中的底层任务。内部包括32位RISC通信控制器、DMA通道、用于内部交换数据的32KB双口RAM、中断控制器、波特率发生器、计数器等。CPM部分还集成了4个时分复用TDM接口、3个媒体无关接口MII和非时分复用串行接口NMSI三种物理层接口,它们之间的选择由串行接口SI模块控制。CPM部分最主要的功能模块是它所集成的大量可同时使用的通信控制单元,包括:
*1个多通道通信控制器MCC,可工作于HDLC模式,物理层接口为TDM方式,最多可以同时与4个TDM接口相连;
*3个快速通信控制器FCC,可工作于HDLC、10M/100Mbit/s以太网和透明模式,物理层接口为TDM或MII方式,当物理层工作于TDM方式时,最高可以支持T3/E3速率;
*4个串行通信控制器SCC,可工作于HDLC、UART、同步UART、BISYNC、10Mbit/s以太网、AppleTalk、透明模式,物理层接口为TDM或NMSI方式;
*2个串行管理控制器SMC,可工作于UART或透明方式,物理层接口为TDM或NMSI方式;
*1个I2C控制器;
*1个SPI控制器。
2 MPC8250与MPC860的对比
现有的很多宽带接入产品多是以Motorola公司的PowerQUICC系列CPU MPC860为核心构建的。与MPC8250相比,除了通信控制单元类型不够丰富、存储控制器的UPM方式开发难度高等缺点之外,另一个显著的劣热是工作时钟频率低。这不仅制约了系统的处理能力,也增加了软件开发的难度。表1简要对比了MPC8250与MPC860的特点。
表1 MPC8250与MPC860的对比
MPC8250 | MPC860 | |
内核工作时钟 | 300MHz | 50MHz |
CPM工作时钟 | 200MHz | 50MHz |
总线数据宽度 | 64bit | 32bit |
PCI总线支持 | 有 | 无 |
存储器控制器个数 | 12 | 8 |
MCC | 1 | 无 |
FCC | 3 | 无 |
SCC | 4 | 4 |
SMC | 2 | 2 |
3 MPC8250在宽带接入中的应用
在目前的宽宽带接入中,一个显著的特点就是硬件接口和协议类型均呈现出多样化、复杂化的特征,这就对宽带接入产品提出了更高的要求。一方面,要在面积有限的电路板上支持更多类型的接口;另一方面,要处理更多、更复杂的通信协议。以宽带执着入中常见的接入路由器为例,一般需要提供以下功能:
①对内提供2个100Mbit/s以太网接口;
②对外应提供各种类型的广域网接口模块;
③支持PPP、PPPoE、LAPB等链路层协议;
④支持IP、IPX等网络层协议;
⑤支持RIP、OSPF、BGP等路由协议;
④支持组插、安全管理、VPN等机制。
可见,接入路由器以及类似的家庭网关、宽带接入集线路等设备的特点是不仅硬件接口多;而且由于协议众多,需要处理器具有相当的处理能力。
MPC8250本身即可通过内部集成的FCC支持3个100Mbit/s以太网接口或E1/E3接口,内部还集成了PCI总线控制器,因此可以减少使用外围扩展芯片;而且被减少的外围扩展芯片:PCI桥芯片和100Mbit/s以太网MAC芯片是硬件设计使用外扩芯片中引脚较多、接口较复杂的芯片。同时MPC8250还提供了4个SCC,可用于提供数据速率较低的通信接口,如10Mbit/s以太网接口、E1接口、ISDN PRI/BRI接口、X.25接口等。此外,MPC8250内核的工作时钟和CPM工作时钟均达到了百MHz级别。可见,将MPC8250用于宽带接入产品的设计可以充分利用MPC8250的优点,提供更为强大的处理能力,并在提高硬件集成度、降低软件开发难度的同时降低硬件成本。
javascript:window.open(this.src);" style="cursor:pointer;"/>
4 基于MPC8250的接入路由器设计
根据上文对接入路由器的功能分析,接入器由器的硬件主要由中央处理器、广域网接口模块、局域网(以太网)接口模块、维护、调试接口模块、内存SDRAM、引导Flash等同部分构成。其中:MPC8250可通过内部集成的FCC支持2个100Mbit/s以太网接口,由于FCC支持标准的MII接口,因此可以直接与以太网的物理层收发器相连接;MPC8250内部集成了PCI总线控制器,可以用于提供与加密模块的接口;同时MPC8250仍然保留了4个SCC,可用于提供广域网接口;由于内部的SMC不提供Modem控制信号,因此为了支持远程拨号维护,扩串口控制芯片;此外,SDRAM、Flash、Bootrom、NVRAM等器件均通过60x总线与MPC8250连接。基于MPC8250的接入路由器内部硬件结构如图2所示。
除MPC8250外各模块设计说明如下:
①总线驱动:由于MPC8250的总线驱动能力有限,而60x总线上器件较多,除SDRAM与MPC8250直接相连外,其它器件与MPC8250的物理距离均较远,因此采用74LVC245提供数据总线的驱动,采用74LVTH244提供地址总线的驱动,采用74LVTH244为走线较长的总线控制信号(部分片选、R/W、OE等)提供总线驱动。
②广域网接口卡:主要完成电平转换功能,以PCMCIA插卡的形式提供。其中SCC1、SCC2对应插卡1,SCC3、SCC4对应插卡2,插卡可以是多协议串口卡、ISDN PRI接口卡、E1接口卡等。如果是多协议串口卡则一块插卡提供两路广域网接口,即SCC1、SCC2通过插卡1分别对应一路广域网接口。此时SCC1、SCC2的物理层接口均应工作在NMSI方式;如果是ISDN PRI或E1/T1接口卡则一块插卡提供一路扩域网接口,此时SCC1、SCC2的物理层接口均应工作在TDM方式。
③网络加密模块:以PMC插卡形式提供,提供用于VPN的加密/解密功能。
④以太网物理层接口芯片:完成以太网线路侧与以太网MAC收发器之间的电平转换、保护等功能,遵循与MAC层之间的MII接口规范,与MPC8250的FCC通过MII接口直接相连。javascript:window.open(this.src);" style="cursor:pointer;"/>
⑤串口通信芯片:由于MPC8250内部SMC接口的UART方式没有Modem控制信号,无法支持远程拨号连接,因此,需要扩展串口通信芯片,使用双路UART收发器实现。常见的双路UART收发器均支持硬件流控,内部带有FIFO的缓存,支持DMA方式。两路UART中:一路用做本地维护串口同时在开发过程中用做调试串口;一路用做远程维护串口。串口通信芯片与MPC8250以60x总线相连。
⑥SDRAM:用于存放用户的数据和代码,为程序的运行和保存临时文件提供空间。采用商用的168引脚的64/128Mbyte内存条,与MPC8259以60x总线相连。数据宽度为64位。MPC825提供了SDRAM控制器,与MPC860的UPM表编程相比,只需进行寄存器的设置,降低了开发的难度。
⑦Flash:用于存储操作系统内核、文件系统映像和用户程序文件。与MPC8250以60x总线相连,设计为类似SDRAM内存条的Flash插卡形式,可支持8/16/32MB不同大小的Flash插卡。数据宽度为32位。
⑧Bootrom:存储操作系统内的引导程序与MPC8250以60x总线相连。Bootrom实际上也是一块Flash芯片,大小为512KB,数据宽度为8位。
⑨NVRAM:保存系统和用户的配置文件,与MPC8250以60x总线相连,大小为64/128KB。
⑩EPLD:给出必须的逻辑控制信号、时序调整信号、译码片选信号等,要用Altera、Xilinx等公司的产品。
5 MPC8250与Flash的接口设计
在接入路由器的设计中,要求兼容8/16/32MB不同大小的Flash插卡,即在驱动程序中应能检测出不同大小的Flash插卡,而Flash插槽的数据总线宽度为32位。因此使用4片16位的Flash,以存储器扩展的方式完成MPC8250与Flash的接口设计,如图3所示。
Chip1、Chip3、Chip2、Chip4为4片Flash芯片。其中Chip1与Chip3、Chip2与Chip4分别对应数据线的低16位和高16位,Chip1与Chip2、Chip3与Chip4分别构成2个存储器Bank,对应MPC8250的2个片选CS3和CS4。由于构成的是32位Flash插卡,最大32MB,因此使用MPC8250的地址线A[8~29]与Flash插槽的A[21~0]相连,假设Flash的地址空间为0xF0000000~0xf1ffffff,那么当分别使用8/16/32MB大小的Flash插卡时,以INTEL的28F系列Flash为例,每个存储器Bank的地址空间分配如表2所列。
表2 Flash地址空间的分配
Flash插卡大小 | 芯片使用 | 芯片型号 | Bank1地址空间 | Bank2地址空间 |
8MB | 4×2MB | 28F160 | 0xf0000000~0xf03fffff | 0xf1000000~0xf13fffff |
16MB | 4×4MB | 28F320 | 0xf0000000~0xf07fffff | 0xf1000000~0xf17fffff |
32MB | 4×8MB | 28F640 | 0xf0000000~0xf0ffffff | 0xf1000000~0x0xf1ffffff |
在驱动程序的初始化过程中,可分别在2个存储器Bank的起始地址0xf0000000和0xf1000000处读取芯片的制造商标识和芯片标识,以此确定所使用的Flash芯片,从而确定Flash插卡的大小,然后即可按上表确定的地址空间使用Flash,这样就实现了对Flash插卡大小的自动检测。而且如果在某一个存储器Bank的高/低16位读出了不合法的制造商标识或芯片标识,即可认为此芯片异常,在开机自检时报告。
结语
从以上的设计不难看出,MPC8250用于宽带接入产品的设计具有显著的优点:
芯片数量少,芯片间接口少,前期设计和后续开发的复杂度低;
芯片数量减少降低了硬件成本;
MPC8250的工作时钟最高达到300MHz,处理机能力显著提高。