MPC8250處理器及其在寬帶接入中的應(yīng)用
關(guān)鍵詞:嵌入式處理器 MPC8250 接入路由器
1 MPC8250簡(jiǎn)介
MPC8250是Motorla公司在嵌入式徽順MPC860基礎(chǔ)之上推出的MPC82XX系列微處理器中的一種。MPC82XX系列保留了MPC860的嵌入式PowerPC內(nèi)核和通信處理模塊CPM并存的體系結(jié)構(gòu),同時(shí)進(jìn)一步提高了工作頻率、集成了更多的外圍器件、提供了豐富的總線接口。其中,MPC8250沒(méi)有集成在一數(shù)據(jù)通信設(shè)備中不常使用、而且較為昂貴的ATM處理模塊,進(jìn)一步降低了成本。MPC8250的內(nèi)部結(jié)構(gòu)基于PowerQUICC結(jié)構(gòu),主要由PowerPC內(nèi)核、系統(tǒng)接口單元SIU、通信處理單元CPM構(gòu)成。它支持60x總線,其數(shù)據(jù)線為64位,地址線為32位;支持PCI/LOCAL總線,其數(shù)據(jù)線為32位,地址線為32位。內(nèi)核工作時(shí)鐘最高300MHz,CPU工作時(shí)鐘最高200MHz。內(nèi)部結(jié)構(gòu)如圖1所示。
①PowerPC內(nèi)核:完成中央處理器的功能,執(zhí)行高層程序偌,它與SIU和CPM通過(guò)獨(dú)立的指令Cache和數(shù)據(jù)Cache通信,通過(guò)MMU對(duì)存儲(chǔ)器進(jìn)行管理。
②系統(tǒng)接口單元SIU:包括CPU的復(fù)位、中斷控制器、時(shí)鐘配置等功能。內(nèi)部包括60x總線控制器、PCI/LOCAL總線到60x總線的橋接器、存儲(chǔ)器控制器、時(shí)鐘控制器等。MPC8250的存儲(chǔ)控制器部分集成了SDRAM控制器,通過(guò)設(shè)置寄存器即可完成與SDRAM的接口配置,與MPC860配置UPM表的方式相比,極大地降低了開(kāi)發(fā)的復(fù)雜度。
③通信處理單元CPU:CPM可與內(nèi)核并行工作,處理通信控制中的底層任務(wù)。內(nèi)部包括32位RISC通信控制器、DMA通道、用于內(nèi)部交換數(shù)據(jù)的32KB雙口RAM、中斷控制器、波特率發(fā)生器、計(jì)數(shù)器等。CPM部分還集成了4個(gè)時(shí)分復(fù)用TDM接口、3個(gè)媒體無(wú)關(guān)接口MII和非時(shí)分復(fù)用串行接口NMSI三種物理層接口,它們之間的選擇由串行接口SI模塊控制。CPM部分最主要的功能模塊是它所集成的大量可同時(shí)使用的通信控制單元,包括:
*1個(gè)多通道通信控制器MCC,可工作于HDLC模式,物理層接口為TDM方式,最多可以同時(shí)與4個(gè)TDM接口相連;
*3個(gè)快速通信控制器FCC,可工作于HDLC、10M/100Mbit/s以太網(wǎng)和透明模式,物理層接口為TDM或MII方式,當(dāng)物理層工作于TDM方式時(shí),最高可以支持T3/E3速率;
*4個(gè)串行通信控制器SCC,可工作于HDLC、UART、同步UART、BISYNC、10Mbit/s以太網(wǎng)、AppleTalk、透明模式,物理層接口為TDM或NMSI方式;
*2個(gè)串行管理控制器SMC,可工作于UART或透明方式,物理層接口為TDM或NMSI方式;
*1個(gè)I2C控制器;
*1個(gè)SPI控制器。
2 MPC8250與MPC860的對(duì)比
現(xiàn)有的很多寬帶接入產(chǎn)品多是以Motorola公司的PowerQUICC系列CPU MPC860為核心構(gòu)建的。與MPC8250相比,除了通信控制單元類型不夠豐富、存儲(chǔ)控制器的UPM方式開(kāi)發(fā)難度高等缺點(diǎn)之外,另一個(gè)顯著的劣熱是工作時(shí)鐘頻率低。這不僅制約了系統(tǒng)的處理能力,也增加了軟件開(kāi)發(fā)的難度。表1簡(jiǎn)要對(duì)比了MPC8250與MPC860的特點(diǎn)。
表1 MPC8250與MPC860的對(duì)比
MPC8250 | MPC860 | |
內(nèi)核工作時(shí)鐘 | 300MHz | 50MHz |
CPM工作時(shí)鐘 | 200MHz | 50MHz |
總線數(shù)據(jù)寬度 | 64bit | 32bit |
PCI總線支持 | 有 | 無(wú) |
存儲(chǔ)器控制器個(gè)數(shù) | 12 | 8 |
MCC | 1 | 無(wú) |
FCC | 3 | 無(wú) |
SCC | 4 | 4 |
SMC | 2 | 2 |
在目前的寬寬帶接入中,一個(gè)顯著的特點(diǎn)就是硬件接口和協(xié)議類型均呈現(xiàn)出多樣化、復(fù)雜化的特征,這就對(duì)寬帶接入產(chǎn)品提出了更高的要求。一方面,要在面積有限的電路板上支持更多類型的接口;另一方面,要處理更多、更復(fù)雜的通信協(xié)議。以寬帶執(zhí)著入中常見(jiàn)的接入路由器為例,一般需要提供以下功能:
①對(duì)內(nèi)提供2個(gè)100Mbit/s以太網(wǎng)接口;
②對(duì)外應(yīng)提供各種類型的廣域網(wǎng)接口模塊;
③支持PPP、PPPoE、LAPB等鏈路層協(xié)議;
④支持IP、IPX等網(wǎng)絡(luò)層協(xié)議;
⑤支持RIP、OSPF、BGP等路由協(xié)議;
④支持組插、安全管理、VPN等機(jī)制。
可見(jiàn),接入路由器以及類似的家庭網(wǎng)關(guān)、寬帶接入集線路等設(shè)備的特點(diǎn)是不僅硬件接口多;而且由于協(xié)議眾多,需要處理器具有相當(dāng)?shù)奶幚砟芰Α?/P>
MPC8250本身即可通過(guò)內(nèi)部集成的FCC支持3個(gè)100Mbit/s以太網(wǎng)接口或E1/E3接口,內(nèi)部還集成了PCI總線控制器,因此可以減少使用外圍擴(kuò)展芯片;而且被減少的外圍擴(kuò)展芯片:PCI橋芯片和100Mbit/s以太網(wǎng)MAC芯片是硬件設(shè)計(jì)使用外擴(kuò)芯片中引腳較多、接口較復(fù)雜的芯片。同時(shí)MPC8250還提供了4個(gè)SCC,可用于提供數(shù)據(jù)速率較低的通信接口,如10Mbit/s以太網(wǎng)接口、E1接口、ISDN PRI/BRI接口、X.25接口等。此外,MPC8250內(nèi)核的工作時(shí)鐘和CPM工作時(shí)鐘均達(dá)到了百M(fèi)Hz級(jí)別??梢?jiàn),將MPC8250用于寬帶接入產(chǎn)品的設(shè)計(jì)可以充分利用MPC8250的優(yōu)點(diǎn),提供更為強(qiáng)大的處理能力,并在提高硬件集成度、降低軟件開(kāi)發(fā)難度的同時(shí)降低硬件成本。
4 基于MPC8250的接入路由器設(shè)計(jì)
根據(jù)上文對(duì)接入路由器的功能分析,接入器由器的硬件主要由中央處理器、廣域網(wǎng)接口模塊、局域網(wǎng)(以太網(wǎng))接口模塊、維護(hù)、調(diào)試接口模塊、內(nèi)存SDRAM、引導(dǎo)Flash等同部分構(gòu)成。其中:MPC8250可通過(guò)內(nèi)部集成的FCC支持2個(gè)100Mbit/s以太網(wǎng)接口,由于FCC支持標(biāo)準(zhǔn)的MII接口,因此可以直接與以太網(wǎng)的物理層收發(fā)器相連接;MPC8250內(nèi)部集成了PCI總線控制器,可以用于提供與加密模塊的接口;同時(shí)MPC8250仍然保留了4個(gè)SCC,可用于提供廣域網(wǎng)接口;由于內(nèi)部的SMC不提供Modem控制信號(hào),因此為了支持遠(yuǎn)程撥號(hào)維護(hù),擴(kuò)串口控制芯片;此外,SDRAM、Flash、Bootrom、NVRAM等器件均通過(guò)60x總線與MPC8250連接?;贛PC8250的接入路由器內(nèi)部硬件結(jié)構(gòu)如圖2所示。
除MPC8250外各模塊設(shè)計(jì)說(shuō)明如下:
①總線驅(qū)動(dòng):由于MPC8250的總線驅(qū)動(dòng)能力有限,而60x總線上器件較多,除SDRAM與MPC8250直接相連外,其它器件與MPC8250的物理距離均較遠(yuǎn),因此采用74LVC245提供數(shù)據(jù)總線的驅(qū)動(dòng),采用74LVTH244提供地址總線的驅(qū)動(dòng),采用74LVTH244為走線較長(zhǎng)的總線控制信號(hào)(部分片選、R/W、OE等)提供總線驅(qū)動(dòng)。
②廣域網(wǎng)接口卡:主要完成電平轉(zhuǎn)換功能,以PCMCIA插卡的形式提供。其中SCC1、SCC2對(duì)應(yīng)插卡1,SCC3、SCC4對(duì)應(yīng)插卡2,插卡可以是多協(xié)議串口卡、ISDN PRI接口卡、E1接口卡等。如果是多協(xié)議串口卡則一塊插卡提供兩路廣域網(wǎng)接口,即SCC1、SCC2通過(guò)插卡1分別對(duì)應(yīng)一路廣域網(wǎng)接口。此時(shí)SCC1、SCC2的物理層接口均應(yīng)工作在NMSI方式;如果是ISDN PRI或E1/T1接口卡則一塊插卡提供一路擴(kuò)域網(wǎng)接口,此時(shí)SCC1、SCC2的物理層接口均應(yīng)工作在TDM方式。
③網(wǎng)絡(luò)加密模塊:以PMC插卡形式提供,提供用于VPN的加密/解密功能。
④以太網(wǎng)物理層接口芯片:完成以太網(wǎng)線路側(cè)與以太網(wǎng)MAC收發(fā)器之間的電平轉(zhuǎn)換、保護(hù)等功能,遵循與MAC層之間的MII接口規(guī)范,與MPC8250的FCC通過(guò)MII接口直接相連。
⑤串口通信芯片:由于MPC8250內(nèi)部SMC接口的UART方式?jīng)]有Modem控制信號(hào),無(wú)法支持遠(yuǎn)程撥號(hào)連接,因此,需要擴(kuò)展串口通信芯片,使用雙路UART收發(fā)器實(shí)現(xiàn)。常見(jiàn)的雙路UART收發(fā)器均支持硬件流控,內(nèi)部帶有FIFO的緩存,支持DMA方式。兩路UART中:一路用做本地維護(hù)串口同時(shí)在開(kāi)發(fā)過(guò)程中用做調(diào)試串口;一路用做遠(yuǎn)程維護(hù)串口。串口通信芯片與MPC8250以60x總線相連。
⑥SDRAM:用于存放用戶的數(shù)據(jù)和代碼,為程序的運(yùn)行和保存臨時(shí)文件提供空間。采用商用的168引腳的64/128Mbyte內(nèi)存條,與MPC8259以60x總線相連。數(shù)據(jù)寬度為64位。MPC825提供了SDRAM控制器,與MPC860的UPM表編程相比,只需進(jìn)行寄存器的設(shè)置,降低了開(kāi)發(fā)的難度。
⑦Flash:用于存儲(chǔ)操作系統(tǒng)內(nèi)核、文件系統(tǒng)映像和用戶程序文件。與MPC8250以60x總線相連,設(shè)計(jì)為類似SDRAM內(nèi)存條的Flash插卡形式,可支持8/16/32MB不同大小的Flash插卡。數(shù)據(jù)寬度為32位。
⑧Bootrom:存儲(chǔ)操作系統(tǒng)內(nèi)的引導(dǎo)程序與MPC8250以60x總線相連。Bootrom實(shí)際上也是一塊Flash芯片,大小為512KB,數(shù)據(jù)寬度為8位。
⑨NVRAM:保存系統(tǒng)和用戶的配置文件,與MPC8250以60x總線相連,大小為64/128KB。
⑩EPLD:給出必須的邏輯控制信號(hào)、時(shí)序調(diào)整信號(hào)、譯碼片選信號(hào)等,要用Altera、Xilinx等公司的產(chǎn)品。
5 MPC8250與Flash的接口設(shè)計(jì)
在接入路由器的設(shè)計(jì)中,要求兼容8/16/32MB不同大小的Flash插卡,即在驅(qū)動(dòng)程序中應(yīng)能檢測(cè)出不同大小的Flash插卡,而Flash插槽的數(shù)據(jù)總線寬度為32位。因此使用4片16位的Flash,以存儲(chǔ)器擴(kuò)展的方式完成MPC8250與Flash的接口設(shè)計(jì),如圖3所示。
Chip1、Chip3、Chip2、Chip4為4片F(xiàn)lash芯片。其中Chip1與Chip3、Chip2與Chip4分別對(duì)應(yīng)數(shù)據(jù)線的低16位和高16位,Chip1與Chip2、Chip3與Chip4分別構(gòu)成2個(gè)存儲(chǔ)器Bank,對(duì)應(yīng)MPC8250的2個(gè)片選CS3和CS4。由于構(gòu)成的是32位Flash插卡,最大32MB,因此使用MPC8250的地址線A[8~29]與Flash插槽的A[21~0]相連,假設(shè)Flash的地址空間為0xF0000000~0xf1ffffff,那么當(dāng)分別使用8/16/32MB大小的Flash插卡時(shí),以INTEL的28F系列Flash為例,每個(gè)存儲(chǔ)器Bank的地址空間分配如表2所列。
表2 Flash地址空間的分配
Flash插卡大小 | 芯片使用 | 芯片型號(hào) | Bank1地址空間 | Bank2地址空間 |
8MB | 42MB | 28F160 | 0xf0000000~0xf03fffff | 0xf1000000~0xf13fffff |
16MB | 44MB | 28F320 | 0xf0000000~0xf07fffff | 0xf1000000~0xf17fffff |
32MB | 48MB | 28F640 | 0xf0000000~0xf0ffffff | 0xf1000000~0x0xf1ffffff |
在驅(qū)動(dòng)程序的初始化過(guò)程中,可分別在2個(gè)存儲(chǔ)器Bank的起始地址0xf0000000和0xf1000000處讀取芯片的制造商標(biāo)識(shí)和芯片標(biāo)識(shí),以此確定所使用的Flash芯片,從而確定Flash插卡的大小,然后即可按上表確定的地址空間使用Flash,這樣就實(shí)現(xiàn)了對(duì)Flash插卡大小的自動(dòng)檢測(cè)。而且如果在某一個(gè)存儲(chǔ)器Bank的高/低16位讀出了不合法的制造商標(biāo)識(shí)或芯片標(biāo)識(shí),即可認(rèn)為此芯片異常,在開(kāi)機(jī)自檢時(shí)報(bào)告。
結(jié)語(yǔ)
從以上的設(shè)計(jì)不難看出,MPC8250用于寬帶接入產(chǎn)品的設(shè)計(jì)具有顯著的優(yōu)點(diǎn):
芯片數(shù)量少,芯片間接口少,前期設(shè)計(jì)和后續(xù)開(kāi)發(fā)的復(fù)雜度低;
芯片數(shù)量減少降低了硬件成本;
MPC8250的工作時(shí)鐘最高達(dá)到300MHz,處理機(jī)能力顯著提高。
評(píng)論