MPC755是Freescale公司開發的PowerPC系列微處理器中具有卓越性能的G3代產品。本文介紹了以MPC755為核心的嵌入式計算機系統的結構框架、主要芯片、地址空間分配、實現難點,以及系統的調試方法和啟動過程。該嵌入式系統處理能力優越,內核最高處理能力可達733MIPS,可用于語音處理、路由器、無線接入、VoIP、軟交換等。
伴隨著信息化時代的來臨,嵌入式系統在通信中的應用越來越廣泛,人們對帶寬的需求越來越高,而新業務要求嵌入式系統具備更強的處理能力。本文以MPC755為核心,構建了一個功能強大、高度模塊化、實時性強、具備高度可擴展性的嵌入式計算機系統,可用于語音處理、路由器、無線接入、VoIP、軟交換等眾多場合。因為MPC755具有并行執行數條指令、簡單指令的快速執行、流水線操作等優點,所以該系統處理能力優越,內核最高處理能力可達733MIPS。通過主/PCI橋MPC107擴展了多種通訊協議處理接口,符合多種RTOS(實時操作系統,如VxWorks、嵌入式Linux等)對其運行平臺的要求。
MPC755處理器
MPC755是一種32位超標量微處理器,遵循了PowerPC處理器架構,有著與PowerPC完全相同的指令集。芯片集成了6個獨立的執行單元(2個整數單元、1個加載/存儲單元、1個雙精度浮點單元、1個系統寄存器單元和1個跳轉處理單元),在一個時鐘周期內最多可以同時執行6條指令。
MPC755內嵌了獨立的32K字節指令和數據高速緩存,以及指令和數據內存管理單元(MMU)。L2 Cache(二級高速緩存)控制單元最大可外接1M字節SRAM,用作二級高速緩存。總線接口單元向外引出60X總線,可以外接具有60X總線的設備。當內核工作在400MHz時,性能高達733MIPS。MPC755還包含了一個性能監視器、一個遵循IEEE1149.1標準的JTAG調試接口、以及溫度管理單元等(MPC755功能結構見圖1)。
MPC755在引腳定義和軟件代碼上都向下兼容,核心電壓為2.0V,I/O電壓3.3V/1.8V可選。MPC755內核的最高頻率是400MHz。系統時鐘通過SYSCLK0引腳輸入,經過PLL電路倍頻,產生內核時鐘,即主頻。引腳PLL_CFG[0:3]在系統上電時的配置值(本設計中是0b'1010) 決定了倍頻系數。
系統總體設計
MPC755的接口擴展主要依賴于主/PCI橋--MPC107。MPC755本身只外接了二級緩存,以提高系統性能。而其它接口都從MPC107引出,包括一個串口,一個10M/100M自適應網口,I2C口等。串口和網口符合多種RTOS對運行平臺的要求,且在硬件上滿足了嵌入式系統的兩種主要調試手段(串口調試和以太網調試),應用開發相當容易。PMC槽使系統具備較強的現場可擴展性,可滿足不同的應用需求。
1. MPC107
MPC107是Freescale公司開發的一種高性能、高帶寬的PCI橋接芯片。圖3顯示了MPC107的基本結構。MPC107一側是60X總線接口,總線寬度32位/64位可選,最高頻率100MHz,另一側是PCI總線接口。芯片內部集成了存儲器控制器、DMA控制器、可編程中斷控制器、4個定時器、I2C控制器、消息單元(I2O)、PCI仲裁器、看門狗電路、動態電源管理單元,PCI總線性能監視單元、JTAG接口等。
存儲器控制器共有12個片選空間,其中8個RAM片選空間,CS[0:7]。每個片選空間的時序可編程,可支持FPM DRAM、EDO DRAM或SDRAM,最大可外接1GB RAM。另4個是ROM片選空間,RCS[0:3],支持8位、32位、64位接口寬度,最大可外接144MB ROM。
2. 存儲器
本系統在CS0空間中擴展128MB的SDRAM,用5片256M位(16M(16位)SDRAM拼成,其中一片用作ECC,其余4片用作系統內存。
Flash選用了Intel公司的28F016S3,2M字節。因為系統啟動時,必須從RCS0上的設備讀取啟動代碼,因此,Flash的片選連接到RCS0上。
At24C04是512字節的EEPROM,通過I2C總線連接到MPC107,用于存儲系統信息,例如,產品名稱、版本號、網口的物理地址等。
二級高速緩存選用了IDT公司的IDT71V35761,每片128K(36位,共2片,組合成128K×72位,其中64位是數據線,另外8位是校驗信號。芯片的最高頻率為200MHz。二級高速緩存的使用極大地提高了系統性能,使MPC755如虎添翼。
3. 串口
TL16C550是RS-232串口控制芯片,接在RCS1空間,MAX3221是電平轉換芯片。串口的工作模式由軟件決定,既可工作于中斷模式,也可工作于輪詢模式。在調試的時候,串口用于輸出調試信息和接收外部命令。在實際應用中,串口可以作為系統和用戶的交流窗口,用戶通過串口來掌握或改變系統的運行情況。
4. PCI設備
本系統中,PCI采用MPC107內部仲裁器,總線工作于33MHz。系統的網口芯片選用了Intel82559,這是一款具有PCI接口的,將物理層和鏈路層集成在一起的10M/100M自適應網口芯片,可減少電路板空間和走線數量。變壓器選用了Pulse公司的H1012。網口可工作于全雙工或者半雙工模式。
另外,PCI1410A是連接PCI總線和CF卡的一種接口芯片。CF卡具有攜帶方便、易于升級、存儲量大、抗震性好等優點。在本設計中,CF卡主要用于保存應用軟件、用戶數據備份等。而且,在今后的系統維護和軟件升級中,技術人員只需要更換CF卡或者升級CF卡中的軟件,十分方便。設計選用了SanDisk公司的型號為SDCFB-64-101的CF卡,64M字節容量,幾何尺寸為36.4mm×42.8mm×3mm。
PMC插槽用于擴展PCI插卡,增加系統功能。例如,如果系統需要增加一個網口,只要在PMC槽上插入一塊具有PMC接口的網卡就可以了。
5. 時鐘
M41T81是ST公司生產的一款時鐘芯片。在本設計中,為系統提供時鐘,因為在電信、網絡等許多應用場合,系統必須提供時間信息。M41T81具有I2C接口,兩種供電模式:在系統上電時,由電路板上的3.3V電源供電;系統斷電時,自動切換到外接電池供電。電池供電時的電流很小,僅為1(A。
地址空間分配
在PCI主設備模式下,MPC107支持兩種地址空間分配方案:Map A和Map B。在PCI從設備模式下,MPC107只支持Map B。選擇哪種地址分配方案是由上電啟動時,引腳SDBA0的高低來決定的,如果為高,則選用Map B,否則,選用Map A。在本系統中,MPC107工作于PCI主設備模式,選用了Map B地址空間分配方案。
在Map B地址空間分配方案中,整個32位(4G)地址空間被分為4大塊:本地存儲空間、PCI存儲空間、PCI I/O空間、系統ROM空間。
在本系統中,128MB SDRAM的基地址是0000_0000,2MB Flash的基地址是FFE0_0000,串口控制芯片TL16C550的基地址是:7C00_0000,64M CF卡的訪問地址是8000_0000。
設計關鍵
1. 時鐘
時鐘信號是本設計的一大關鍵。整個系統只有一個時鐘輸入:OSC_IN,33MHz,輸入到MPC107,經過MPC107的FO緩存產生5個同步的PCI時鐘信號,其中3個PCI時鐘輸送給PCI設備,1個保留,另一個PCI時鐘作為系統時鐘(PCISYNC_OUT),輸送到PLL和DLL(延時鎖相環)模塊,經過鎖相和倍頻,分別產生CPU時鐘(CPU_CLK0)、4個SDRAM(SDRAM_CLKx)時鐘、和一個回饋時鐘(SDRAM_SYNC)。CPU_CLK0輸送給MPC755。
MPC107的DLL模塊類似于PLL,但是它能夠把一個時鐘周期分為128個離散的間隔。在PCB布線時,SDRAM時鐘的走線是等長的。DLL檢測SDRAM_SYNC時鐘從輸出到輸入的時延,這個時延就相當于SDRAM_CLK的時延。通過調整SDRAM_SYNC時鐘的時延,可以方便地增加或者減少SDRAM_CLK時鐘的延遲。一般情況下,走線16.5cm相當于時延1000ps。
本設計中,CPU_CLK0走線長度、SDRAM_SYNC的走線長度和SDRAM_CLK時鐘的走線長度三者相等。PCISYNC_OUT到PCISYNC_IN的走線長度和PCICLK的走線長度相等。
MPC755通過對CPU_CLK0時鐘倍頻,獲得內核主頻。二級高速緩存的時鐘是由MPC755對內核主頻分配所得,分頻系數由L2CR寄存器的L2CLK位決定,可以是1、1.5、2、2.5、3(本系統選擇了2.5)。一般的,分配系數的選擇要根據外部Cache的性能、MPC755的內核工作頻率和DLL的調整能力決定。L2 Cache最小的工作頻率是80MHz。分頻后的時鐘經過片內的DLL電路調整,輸送到二級緩存。但是,L2SYNC_OUT作為反饋時鐘又輸入到L2SYNC_IN,返回路徑長度必須是L2CLK_OUTA走線長度的二分之一,這樣CPU就能夠保證輸入到L2 Cache的時鐘信號上升沿是和L2接口的時鐘信號上升沿對齊的。
2. 高速布線
MPC107的PLL外部電路必須盡可能地靠近MPC107。網口芯<