吳杰
【摘 要】數據處理系統適合于車載、機載等惡劣環境下,運行多任務實時操作系統,完成信息層數據運算,以及高性能圖形顯示等多種應用。本文對于相關數據處理系統設計具有參考意義。
【關鍵詞】POWER PC;數據處理
中圖分類號: TP274.2 文獻標識碼: A 文章編號:2095-2457(2018)08-0004-004
Design of data processing system based on POWER PC
WU Jie
(The 20th Institute of China Electronics Technology Group Corporation, Xi'an 710068, China)
【Abstract】The data processing system is suitable for many applications,such as vehicle,airborne and other harsh environment,running multi task real-time operating system,complete data operation of information layer,and high performance graphics display. This paper has reference meaning for the design of related data processing system.
【Key words】POWER PC; Data processing
隨著嵌入式系統的廣泛應用,數據處理系統的擴展性和通用型越來越受到大家的關注。本文中的數據處理板核心處理芯片采用基于POWER PC架構的MPC8548芯片,具有處理速度快,通用接口豐富、工作溫度范圍大的特點;軟件部分選用多任務實時操作系統VxWorks,可以同時完成數據運算、高性能圖形顯示等多種工作,支持透明的底層硬件操作,實現軟件編寫與硬件設計分離,簡化了底層軟件設計,有很好的的擴展性和移植性。
1 系統設計
本設計中采用POWER PC作為核心處理芯片,實現多任務并行數據處理功能;CPU主控MPC8548為整個模塊數據處理中樞,處理外圍各種芯片采集的數據,并將必要的數據保存到非易失存儲器。系統將高性能 MPC8548與嵌入式顯示芯片SM722集成在一起,CPU通過PCI總線傳輸數據到顯卡,提供用戶交互界面;FPGA通過構建寄存器和雙口RAM實現接口通信和時序控制等功能;DSP完成浮點運算和數據處理的功能;話音電路完成話音編解碼和數模轉換功能。系統提供豐富的外部接口,包括串口(RS2232和RS422)、以太網接口、USB接口、LVDS總線接口以及VGA接口。系統設計框架如圖1所示。
2 硬件設計
2.1 主控芯片設計
本設計的POWER PC芯片選用Freescale公司的MPC8548處理器,該芯片是一款高性能、低功耗的32位RISC處理器。最高主頻超過800MHz,具有很強的定點和浮點計算能力。該處理器內部架構如圖2所示。
MPC8548處理器具有強大的e500 PowerPC內核、512KB的二級緩存,使得處理器的性能與I/O系統輸入之間能夠協調匹配。除了具有高性能的e500內核,MPC8548還具有1個64位、頻率為400MHz的DDR2 SDRAM存儲控制器、4個千兆以太網控制器、1個DUART、1個4通道的DMA控制器、1個本地總線控制器、2個I2C控制器和1個串行周邊接口 (SPI)。MPC8548還具有2個32位PCI控制器。MPC8548不僅擁有強大的數據處理能力,還具有很強的通信處理能力,可靠性高,抗惡劣環境能力好,特別適合對網絡性能要求較高及有多個接口的應用場合。
2.2 外部存儲設計
利用MPC8548 PCI橋,通過Silicon Motion的Sil0680A擴展出電子盤接口模塊,該芯片提供了PCI總線與IDE接口的橋接,它能接收來自PCI總線的命令去操作IDE接口,然后再通過SM223芯片接Flash芯片,實現板載8GB Flash空間。NAND FLASH芯片選用一片 K9WBG08U1M 芯片實現。
本處理系統的DDR內存擴展通過掛接 5片 MT47H64M16芯片實現。MPC8548內部集成了 DDR2存儲控制器,可以直接進行內存單元的行列訪問和控制。每個內存芯片有64M X 16bit的存儲空間,4片內存芯片拼接成 64bit位數據總線,構成512MByte的存儲空間;另一片內存芯片實現ECC糾錯,提高數據存取的可靠性。
Nor FLASH 的擴展由 Local BUS 接口上掛接存儲芯片實現。NOR FLASH 選用S29GL512P芯片,每片有512Mb的存儲空間,兩片組合成 128MByte 存儲空間。由于MPC8548的 Local BUS接口是地址數據復用,因此需要在local bus和flash芯片之間增加74LVT16373 器件完成地址數據信號鎖存,MPC8548的Local Address Latch Enable (LALE)信號完成鎖存使能控制,外部存儲擴展如圖3所示。
2.3 以太網接口設計
以太網功能模塊的實現主要依賴于MPC8548自帶的以太網控制器來實現兩路百兆以太網接口,在外圍配備 Marvell 88E1145 的物理層芯片來實現10\100 以太網接口。
2.4 串口設計
由于MPC8548只支持1路RS422串口,其他串口需要進行擴展,我們選擇了XR16L784芯片擴展出1路RS422串口和2路RS232串口。
2.5 顯示模塊設計
顯示模塊使用Silicon Motion的Lynx3DM顯卡芯片(簡稱SM722),SM722通過PCI總線連接到CPU,SM722對外輸出一路VGA信號和一路LVDS信號。
SM722(Lynx 3DM8+ )芯片集成128位 2D/3D行動繪圖引擎及8MB內建內存,能整合強化的多屏幕顯示及硬件加速的MPEG/DVD播放功能于單一基板中,為用戶提供了功能強大的圖形顯示系統。
2.6 USB接口設計
MPC8548沒有自帶USB接口模塊,在設計中使用PCI總線進行擴展,本系統采用了PHILIPS公司的ISP1561芯片擴展出了四路USB接口,其中兩路用于外接USB鼠標與鍵盤,另兩路留作USB接口。
2.8 FPGA設計
FPGA選用的是Xilinx公司目前主流的Virtex-4系列的LX40,大概等效400萬系統門,有較為充足的硬件資源自己的構建寄存器和控制邏輯。利用FPGA的雙口RAM,FPGA與PowerPC采用EDMA方式進行通信。FPGA與PowerPC采用I2C總線發送控制命令,實現對秒脈沖信號的處理、記數、收發存儲等功能。FPGA與話音電路通過內部寄存器完成數據傳輸。FPGA與外部設備通過高速LVDS總線進行通信,最高速率可達600Mbps。
2.9 DSP設計
DSP選用32位高速浮點型處理器TMS320C6713,時鐘最高頻率為300MHz,其內核采用超長指令字(VLIW)體系結構,單指令字長為32位,一個時鐘周期同時執行 8 條指令,總字長達到256位,其最大處理能力可以達到2400MIPS。內部分為 8 個功能單元,具有64 個 32bit 通用寄存器。具有功耗低、通用性好的特點。DSP的EMIF接口的 CE0 空間掛接 16MB SDRAM存儲數據; CE1 空間掛接 64MB FALSH 存儲程序; CE2 和 CE3 空間連接 FPGA,作為DSP與 FPGA之間的數據總線。DSP可以通過HPI接口從FPGA中動態加載程序 。 DSP 可以通過自身程序運行或寫 PWRD 控制字方式進入休眠狀態。休眠模式可以通過中斷喚醒,在FPGA中寫入一個喚醒指令,產生一個中斷信號送給 DSP。
2.10 話音電路設計
本系統的話音電路由2路模擬話音組成,每路包括話音模擬電路、A/D、 D/A、話音編解碼芯片。通過外部PTT信號實現發話控制。
2.11 復位電路設計
系統總共有上電復位、手動復位、軟件看門狗復位等三種復位方式。上電和掉電復位信號通過電源管理芯片產生;手動復位及外部復位均接入 CPLD, CPLD經過內部邏輯控制把復位信號送到 PowerPC、 DSP、 FPGA等芯片;CPLD 內部實現軟件看門狗,結合PowerPC 芯片自帶的看門狗電路,實現可靠的看門狗復位。
3 系統軟件設計
整個數據處理板的軟件主要由板級支持包(BSP)、VxWorks操作系統內核、系統引導代碼、應用程序四部分組成。首先在板級支持文件基礎上生成VxWorks操作系統映像(包含應用程序模塊),系統上電啟動后,引導程序將系統引導代碼和 操作系統映像從Flash拷至SDRAM中,引導代碼執行后跳轉到VxWorks映像執行。數據處理板既支持以太網口將生成的VxWorks映像下載到板上進行調試,也支持將VxWorks映像固化到板上電子盤中,從FLASH上啟動運行應用程序。操作簡單,現場調試和軟件升級尤為方便。軟件框圖如4所示。
3.1 板級支持包
BSP是針對目標系統所開發的啟動代碼和部分設備驅動程序的集合。最基本的BSP需支持處理機復位、初始化、驅動串口和必要的時鐘處理。BSP的主要功能在于配置系統硬件使其工作于正常的狀態,以及完成硬件與軟件之間的數據交互,為OS及上層應用程序提供一個與硬件無關的軟件平臺。因此從執行角度來說,其可以分為兩大部分:
目標系統啟動時的硬件初始化及操作系統引導例程,它只在系統啟動過程中執行一次;
目標板上控制硬件運行的設備驅動程序,由它來完成硬件與軟件之間的銜接。包含部分必要的設備驅動程序和相關設備的初始化操作。這部分可以根據用戶需要進行裁剪。
BSP在系統中的位置如圖5所示。
硬件初始化及操作系統引導具體是指從系統上電復位開始直到VxWorks開始初始化用戶應用時(即系統執行到usrAppInit函數處)的一段時間內系統所執行的過程。這個過程主要包括三個部分的工作。
CPU初始化:初始化CPU的內部寄存器(如狀態寄存器、控制寄存器、高速緩存等)。
目標機初始化:初始化控制芯片的寄存器(如BUS、DMA、DRAM)、I/O設備寄存器(驅動各設備),為整個軟件系統提供底層硬件環境的支持。
系統資源初始化:為操作系統及系統的正常運行做準備,進行資源初始化(如操作系統初始化、空間分配等)。
具體運行過程為:
系統上電之后,首先調用romInit()函數,禁止中斷,清除cache,設置堆棧啟動類型,初始化CPU基本寄存器,調用SDRAM初始化函數初始化,直接跳轉到romStart()函數,把代碼段和數據段從bootrom復制到RAM中運行,當中完成程序映象的解壓縮跳轉到usrInit()函數,執行VxWorks中的C語言代碼。執行操作系統內核所必須的初始化程序,完成Cache程序的初始化,系統的BSS段清零,初始化中斷向量表,最后進入到用戶程序入口usrAppInit(),進行應用程序的運行。
從圖中可以發現BSP不是一個設備驅動程序,因為設備驅動程序能夠訪問硬件設備(例如網絡設備驅動程序、SCSI設備驅動程序),同時相同類型設備的驅動程序,可以不作修改從一個目標環境中移植到另一個目標環境中(例如網卡驅動程序);而BSP則只能運行在指定設備的硬件環境中。
就數據處理板來說,BSP除完成MPC8548的初始化外,還需完成以下設備的管理和驅動工作:
(1)SM722顯示驅動:SM722提供了圖形顯示功能,其內部寄存器可通過映射到PCI尋址空間來進行訪問。
(2)網絡的訪問驅動:對MPC8548的寄存器進行配置,實現MPC8548的兩路網絡端口訪問。
(3)串口驅動:通過XR16L784實現了兩路RS232的發送與接收,并支持MPC8548通過中斷方式訪問XR16L784;由MPC8548的DUART口擴展出一路RS422,通過中斷控制數據發送與接收,從而實現UART的擴展。
(4)USB的驅動:MPC8548通過PCI擴展出的4路USB用于鼠標鍵盤接口,支持USB熱拔插。利用SM722提供的硬件光標功能,實現支持用戶可選的鼠標形狀。
(5)電子盤驅動:MPC8548主板采用通過PCI轉IDE芯片SIL0680外接IDE電子盤,電子盤驅動模塊主要完成了SIL0680芯片的驅動,實現了SIL0680寄存器設置,配置了SIL0680的PCI地址空間,并完成電子盤文件系統的初始化,將電子盤配置為dosFs文件格式,通過ATA的PIO或DMA訪問方式訪問電子盤。
3.2 VxWorks操作系統
VxWorks 是美國Wind River System 公司推出的一個嵌入式實時操作系統。具有良好的移植性、擴展性和通用性。首先,該系統十分靈活,具有功能強大的應用程序接口(API)函數;其次,該系統可裁減性強,用戶在使用操作系統時,并不是操作系統中的每一個部件都要用到,可以根據需要進行裁剪;再次,該系統可靠性很高,已經廣泛應用到航空、航天、通信等領域,成為實際上的工業標準和軍用標準。
本系統上所用的VxWorks5.5.1是在風河提供的集成開發環境Tornado2.2.1下編譯生成的。
4 典型應用實例
本文中的數據處理系統具有多任務處理能力強,處理延時小的特點,可以作為各種通信設備、信息處理設備的核心處理單元,這里以某型高速信息處理計算機(簡稱信息處理機)為例。
信息處理機主要完成負責消息協議轉換和處理、設備參數控制、消息統計和監控、設備狀態查詢等功能,由POWER PC數據處理板、時統處理板、底板和顯控模塊構成。設備組成如圖6所示。數據處理板和時統處理板通過底板互聯,數據處理板輸出LVDS顯示信號到顯控模塊,電源模塊為整個設備供電。顯控程序使用windml庫開發,當數據處理板的操作系統啟動正常后加載顯控模塊進行顯示。多任務處理的應用程序通過VxWorks的任務調度函數調配運行。系統運行界面和顯控界面如圖7和圖8所示。經測試,使用數據處理板的信息處理機的信息處理時延小于1ms,信息處理能力大于每秒500條。
5 結束語
基于MPC8548的數據處理系統具有數據處理能力強、接口擴展性強、軟件移植性好的特點,得到了廣泛的應用。本數據處理系統已應用于多型設備中,性能穩定可靠,滿足各種復雜場景的使用要求,也為其他數據處理系統的設計提供了參考。
【參考文獻】
[1]Freescale Semiconductor.MPC8548 PowerQUICCTMIII Integrated Processor Family Reference Manual[M].MPC8548ERM Datasheet. East Kilbride,USA:Freescale Semiconductor Inc,2007:1035-1222.
[2]王彥剛,呂遵明,萬留進.VxWorks系統的BSP設計與實現[J].計算機系統應用,2011,20(12)91-94.
[3]趙愛君.DDR SDRAM原理介紹及其MPC8548 DDR2控制器參數配置[A].2010中國儀器儀表學術、產業大會(論文集2)[C].2010.