張利平
(中國(guó)西南電子技術(shù)研究所,成都 610036)
近年來(lái),隨著大規(guī)模集成電路技術(shù)的成熟和發(fā)展,涌現(xiàn)出了許多功能強(qiáng)大的CPU處理器,POWERPC 即是其中的佼佼者,其產(chǎn)品線廣、性價(jià)比高、溫度范圍廣、集成度高以及功耗低等優(yōu)點(diǎn),正好滿足現(xiàn)代高性能嵌入式設(shè)備的要求。POWERPC 搭載LINUX 內(nèi)核,也可以滿足絕大多數(shù)環(huán)境條件下的實(shí)時(shí)性要求。這里就以MPC8536為核心,構(gòu)建了一個(gè)高性能的雷達(dá)通用數(shù)據(jù)處理平臺(tái),在不改變系統(tǒng)硬件的條件下,僅對(duì)軟件進(jìn)行更新,即可實(shí)現(xiàn)多功能性。基于通用處理平臺(tái)的設(shè)計(jì)還可以擴(kuò)展到后續(xù)任務(wù)如SAR 數(shù)據(jù)傳輸、雷達(dá)組網(wǎng)、雷達(dá)信號(hào)處理、大型數(shù)據(jù)鏈等多種用途,具有廣闊的應(yīng)用前景。
MPC8536 是Motorola 公司的高性能嵌入式微處理器芯片。該芯片內(nèi)部集成了控制領(lǐng)域常用的外圍組件,特別適合通信和網(wǎng)絡(luò)設(shè)備的開發(fā)。MPC8536 采用E500 核結(jié)構(gòu),連同極高的網(wǎng)絡(luò)、USB、PCIE和SATA 設(shè)備集成度,為用戶提供了便捷的設(shè)計(jì)方案來(lái)建立高性能通用平臺(tái)。其內(nèi)部結(jié)構(gòu)如圖1所示。
由圖1 可知,MPC8536 已經(jīng)跨越了純粹處理器的范疇,是一個(gè)高度集成的主控處理模塊,并且還具有以下特點(diǎn):
(1)具有高性能E500 內(nèi)核,CPU 頻率最高達(dá)1.5 GHz(2400MIPs);
(2)高度集成的內(nèi)部控制器,如內(nèi)存、PCIE、USB、SATA、以太網(wǎng)等,外圍電路設(shè)計(jì)簡(jiǎn)單;
圖1 MPC8536的內(nèi)部結(jié)構(gòu)
(3)低功耗,10W的典型功耗遠(yuǎn)優(yōu)于X86 系列產(chǎn)品,且可以通過(guò)動(dòng)態(tài)電源管理,控制靜態(tài)和動(dòng)態(tài)功率模式下的功耗;
(4)可運(yùn)行嵌入式操作系統(tǒng)(LINUX、VXWORKS),便于多任務(wù)管理和調(diào)度,實(shí)時(shí)性強(qiáng)。
系統(tǒng)的硬件部分主要包括MPC8536 微處理器模塊、DDR2 控制模塊、電源復(fù)位和時(shí)鐘模塊、存儲(chǔ)器模塊、千兆以太網(wǎng)模塊、PCI/PCIE 控制模塊、串行口控制模塊、CPLD 控制邏輯、USB 控制模塊、SATA 控制模塊。系統(tǒng)硬件設(shè)計(jì)框圖如圖2所示。
考慮到功耗太大不利于散熱進(jìn)而影響系統(tǒng)穩(wěn)定性,所以在芯片的選擇上全部采用低功耗芯片。平臺(tái)總共需要4 種電源,分別為1.1 V、1.2 V、2.5 V和3.3 V。其中MPC8536所需的電壓由TI的開關(guān)電源TPS54910和LT1963AEST-2.5 提供,VSC8224所需的1.2 V 由TPS54312 提供。所選的芯片均能滿足最大電流要求,且電源輸出效率較高。在實(shí)際應(yīng)用中,編程人員還可以利用軟件啟動(dòng)MPC8536的各種節(jié)能模式,平均系統(tǒng)功耗測(cè)試值小于15W。
系統(tǒng)時(shí)鐘電路分為3 部分,一是由33.33 MHz 晶振作為參考時(shí)鐘,通過(guò)一個(gè)時(shí)鐘分頻芯片,分別送給CPU、CPLD和PCI 設(shè)備;另外選取一個(gè)14.31818 MHz的晶振,輸入給ICS9FG108,分頻輸出PCIE 差分時(shí)鐘;最后采用一個(gè)24 MHz的時(shí)鐘,作為USB3300的輸入,控制USB 設(shè)備。
系統(tǒng)復(fù)位模塊采用的是MAXIM的電源監(jiān)控芯片MAX16006。該芯片體積小、功耗低,可以通過(guò)配置同時(shí)監(jiān)控8 種等級(jí)的電壓,完全滿足電壓監(jiān)控要求。
MPC8536 含有2個(gè)千兆以太網(wǎng)控制器,均可用作高速以太網(wǎng)接口。本系統(tǒng)采用VITESSE 公司的VSC8224芯片,加上脈沖變壓器,就可以構(gòu)造1000M/100M 自適應(yīng)以太網(wǎng)。由于VSC8224 帶一路光纖輸出,所以本系統(tǒng)提供了兩種網(wǎng)絡(luò)模式選擇。在某些對(duì)電磁干擾要求嚴(yán)格的環(huán)境條件下(如機(jī)載環(huán)境),采用光纖網(wǎng)絡(luò)通信,可以減少電磁干擾,保證整機(jī)電磁兼容。
MPC8536 自帶了2個(gè)USB 控制器,采用SMSC 公司的USB3300 加上LM3526M 電源管理芯片即可支持USB2.0 協(xié)議,實(shí)現(xiàn)外接鼠標(biāo)、鍵盤、U 盤等接口。
圖2 嵌入式通用處理平臺(tái)系統(tǒng)框圖
MPC8536 內(nèi)部含有7個(gè)存儲(chǔ)器控制單元,可以對(duì)各種存儲(chǔ)外設(shè)進(jìn)行管理。通過(guò)對(duì)每個(gè)存儲(chǔ)器體的獨(dú)立寄存器BRx和ORx 進(jìn)行編程控制,可以實(shí)現(xiàn)對(duì)NORFLASH、NANDFLASH 等外設(shè)的讀寫操作。本系統(tǒng)的存儲(chǔ)器模塊劃分為2個(gè)部分,即系統(tǒng)映像(NORFLASH)和應(yīng)用程序(NANDFLASH)。由于嵌入式LINUX 操作系統(tǒng)一般體積較小,一片16M的NORFLASH 即可完成存儲(chǔ)功能,故選用SPANSION的16 位總線存儲(chǔ)芯片S29GL128N90TFIR1,用于完成U-BOOT和系統(tǒng)映像的存儲(chǔ)。分配片選信號(hào)CS0,通過(guò)編程BR0和OR0 設(shè)置地址映射為0xAF000000~0xB0000000。
NANDFLASH 用于存放應(yīng)用程序以及其他需要存儲(chǔ)的大量數(shù)據(jù)。本系統(tǒng)采用三星的1G 容量芯片K9NBG08U5A,該芯片可以通過(guò)8 位的IO 口傳輸?shù)刂泛蛿?shù)據(jù),并且管腳兼容性好,可擴(kuò)展存儲(chǔ)容量。分配片選信號(hào)CS1,通過(guò)編程BR1和OR1 設(shè)置地址映射為0xBFFFFFFF~0xFFFFFFFF。另外,通過(guò)MPC8536 自帶的MMC/SD 控制器和SATA 控制器,實(shí)現(xiàn)對(duì)SD 卡和SATA 接口的連接,作為大量實(shí)時(shí)數(shù)據(jù)的存儲(chǔ)(如雷達(dá)SAR 圖像)。
作為通用處理平臺(tái),必須要有高速總線和外部相連,MPC8536 自帶的PCI/PCIE 控制器正好滿足使用需求。方案設(shè)計(jì)時(shí)考慮將PCI 總線引到PMC 結(jié)構(gòu)的接插件上,PCIE 總線引到XMC 結(jié)構(gòu)的接插件上,方便進(jìn)行功能擴(kuò)展(如顯卡、數(shù)據(jù)處理等)。
系統(tǒng)上電時(shí),MPC8536 需要采樣復(fù)位配置字,以決定其啟動(dòng)和工作方式。本系統(tǒng)通過(guò)CPLD 邏輯來(lái)完成上電復(fù)位配置字的采樣,可以方便地對(duì)CPU 進(jìn)行配置,如設(shè)置工作頻率、配置總線和智能電源管理等。其自帶的串口模塊可以通過(guò)外接MAX3233E來(lái)實(shí)現(xiàn)RS232 接口,標(biāo)準(zhǔn)的I2C 總線也可以和低速外部設(shè)備互聯(lián)。
U-BOOT 是操作系統(tǒng)運(yùn)行前執(zhí)行的第一段程序,其作用是初始化硬件設(shè)備,建立內(nèi)存空間映射表,為內(nèi)核調(diào)用建立環(huán)境。系統(tǒng)采用最新的U-BOOT1.3.4,其中就包含了MPC8536的啟動(dòng)代碼。根據(jù)硬件情況對(duì)源代碼作如下修改:
(1)Include/configs/MPC8536DS.h
#define CONFIG_BOARD_SYS_CLK 33330000//設(shè)置系統(tǒng)輸入時(shí)鐘為33MHz;
#define CONFIG_SYS_FLASH_BASE 0xAF000000//設(shè)置FLASH 起始地址;
#define CONFIG_MAX_FLASH_BANKS 1//設(shè)置FLASH 只劃分一個(gè)bank;
#undef CONFIG_EEPROM //無(wú)EEPROM 配置;
#define TSEC1_PHY_ADDR 1//分配第一個(gè)千兆網(wǎng)絡(luò)地址;
#define TSEC2_PHY_ADDR 0//分配第二個(gè)千兆網(wǎng)絡(luò)地址;
(2)Board/freescale/mpc8536ds/sdram.c
根據(jù)自身內(nèi)存情況,在sdram_setup()函數(shù)中,添加對(duì)DDR2 控制寄存器時(shí)序的配置。
ddr->timing_cfg_3=0x00020000;
ddr->timing_cfg_1=0x4c47d432;
ddr->timing_cfg_2=0x331848ce;
將以上代碼修改完畢后,編譯生成U-BOOT.bin文件,通過(guò)BDI2000 寫入NORFLASH,重新加電后串口即可輸出啟動(dòng)信息。啟動(dòng)畫面如圖3所示。
操作系統(tǒng)選用LINUX 搭載最新2.6 內(nèi)核,完全可以滿足各種條件的應(yīng)用要求。由于LINUX 系統(tǒng)具有安全性高、開放源代碼、實(shí)時(shí)性高等優(yōu)點(diǎn),已經(jīng)在軍事和民用設(shè)備中得到廣泛應(yīng)用。使用標(biāo)準(zhǔn)C/C++編程語(yǔ)言就可以便捷的開發(fā)雷達(dá)信息處理應(yīng)用軟件,在ELDK4.2 環(huán)境下完成代碼的編寫、編譯和調(diào)試。采用C/C++語(yǔ)言編寫的代碼具有易讀、重用性高等優(yōu)點(diǎn),降低了開發(fā)難度,極大提升了開發(fā)效率。
2.6 內(nèi)核已經(jīng)支持MPC8536處理器和大部分外設(shè),只需要根據(jù)平臺(tái)實(shí)際情況,將LINUX 源代碼中發(fā)布的MPC8536DS 開發(fā)板代碼進(jìn)行修改與裁剪即可。內(nèi)核移植的步驟如下:
(1)修改頂層Makefile 增加編譯選項(xiàng)
ARCH:=powerpc//選擇POWERPC 架構(gòu);
(2)源代碼的修改
由于系統(tǒng)硬件配置和FREESCALE的開發(fā)板有較大差異,所以需要對(duì)部分代碼進(jìn)行修改。如關(guān)鍵的網(wǎng)絡(luò)地址的配置、時(shí)鐘頻率的配置等;
(3)內(nèi)核的裁減
# make menuconfig //裁減掉內(nèi)核中所有與本系統(tǒng)無(wú)關(guān)的模塊;
圖3 U-BOOT 啟動(dòng)畫面
# make //編譯完成后生成內(nèi)核映像uImage;
(4)文件系統(tǒng)的實(shí)現(xiàn)
系統(tǒng)在調(diào)試階段采用的是NFS 文件系統(tǒng),通過(guò)tftp 進(jìn)行網(wǎng)絡(luò)加載,實(shí)現(xiàn)階段是將RAMDISK 根文件系統(tǒng)寫入NORFLASH 進(jìn)行自動(dòng)加載。NFS的實(shí)現(xiàn)較為簡(jiǎn)單,在ELDK4.2 交叉開發(fā)環(huán)境中,PPC_85XX 目錄下即提供了一個(gè)NFS 根文件系統(tǒng)。只要主機(jī)提供了NFS服務(wù),目標(biāo)機(jī)即可通過(guò)tftp 進(jìn)行引導(dǎo)。RAMDISK根文件系統(tǒng)的制作流程如下:
*創(chuàng)建根文件系統(tǒng)文件夾;
*創(chuàng)建各種必要的系統(tǒng)文件;
*創(chuàng)建設(shè)備節(jié)點(diǎn);
*建立與啟動(dòng)相關(guān)的配置文件;
*安裝庫(kù)文件glibc;
*編譯busybox,安裝系統(tǒng)和應(yīng)用軟件。
在調(diào)試過(guò)程中,發(fā)現(xiàn)U-BOOT的移植過(guò)程非常關(guān)鍵,應(yīng)該根據(jù)硬件配置對(duì)源代碼進(jìn)行修改。DDR2 寄存器需要根據(jù)實(shí)際PCB 布線來(lái)對(duì)時(shí)序進(jìn)行微調(diào),否則會(huì)導(dǎo)致系統(tǒng)不穩(wěn)定或者根本無(wú)法啟動(dòng)。PCB 布板時(shí)要注意電源與信號(hào)的分層隔離。PCIE 高速差分信號(hào)線均需要進(jìn)行等長(zhǎng)設(shè)計(jì),盡量從頂層或底層走線并保證地層的包裹。
在實(shí)際應(yīng)用中,本平臺(tái)主要完成的是雷達(dá)目標(biāo)數(shù)據(jù)的解析工作。首先通過(guò)PCIE 總線接收多塊雷達(dá)信號(hào)處理板送出的目標(biāo)信息,然后通過(guò)優(yōu)化算法對(duì)數(shù)據(jù)進(jìn)行分類解析,最后將需要的目標(biāo)信息通過(guò)光纖網(wǎng)絡(luò)送到綜顯進(jìn)行顯示。在本系統(tǒng)中,要求數(shù)據(jù)處理平臺(tái)能夠以較短的時(shí)間響應(yīng)多塊信號(hào)處理板的中斷請(qǐng)求,并從大量目標(biāo)數(shù)據(jù)中提取需要的目標(biāo)信息,實(shí)時(shí)地傳送給綜顯進(jìn)行顯示。
這里對(duì)系統(tǒng)中關(guān)鍵的中斷響應(yīng)和內(nèi)存拷貝兩項(xiàng)指標(biāo)進(jìn)行了測(cè)試,測(cè)試結(jié)果如表1。
表1 中斷響應(yīng)和內(nèi)存拷貝耗時(shí)
筆者將本平臺(tái)和曾使用的ADSP-TS201信號(hào)處理芯片進(jìn)行對(duì)比測(cè)試時(shí)發(fā)現(xiàn),當(dāng)采用雷達(dá)信號(hào)處理常用的浮點(diǎn)復(fù)數(shù)FFT 運(yùn)算作為測(cè)試算法時(shí),MPC8536的運(yùn)算性能還優(yōu)于ADSP-TS201。運(yùn)算速度對(duì)比見表2。
表2 MPC8536與ADSP-TS201 性能對(duì)比
可見,雖然功耗略高于ADSP-TS201,但是MPC8536搭載LINUX 操作系統(tǒng),已經(jīng)可以勝任專業(yè)DSP的信號(hào)處理工作。LINUX 操作系統(tǒng)下的中斷響應(yīng)時(shí)間和內(nèi)存讀寫速度也滿足絕大多數(shù)環(huán)境條件的應(yīng)用。雷達(dá)通用數(shù)據(jù)處理平臺(tái)采用了LINUX 操作系統(tǒng)作任務(wù)管理的設(shè)計(jì),應(yīng)用靈活,開發(fā)調(diào)試方便,更能滿足現(xiàn)代雷達(dá)對(duì)多任務(wù)、多功能的實(shí)際需求。
隨著高性能通用處理器技術(shù)的飛速發(fā)展,基于POWERPC+LINUX 實(shí)時(shí)操作系統(tǒng)的雷達(dá)通用數(shù)據(jù)處理平臺(tái)將成為發(fā)展趨勢(shì)。本文介紹的即是其中一種應(yīng)用于雷達(dá)設(shè)備中的通用數(shù)據(jù)處理平臺(tái)的設(shè)計(jì)方法。該平臺(tái)以Motorola 公司的高性能通信處理器MPC8536為核心,具有低成本、高性能、通用性好等優(yōu)點(diǎn)。平臺(tái)支持的多種通用數(shù)據(jù)接口加上LINUX 系統(tǒng)的穩(wěn)定性,將可以適應(yīng)不同的應(yīng)用環(huán)境。在測(cè)試中發(fā)現(xiàn),MPC8536 已具備較高的信號(hào)處理能力,可以在以后的應(yīng)用中嘗試進(jìn)行簡(jiǎn)單信號(hào)處理算法設(shè)計(jì),通過(guò)操作系統(tǒng)這種多任務(wù)的管理方式對(duì)信號(hào)處理流程進(jìn)行優(yōu)化,達(dá)到提升整體系統(tǒng)性能的目的。此通用數(shù)據(jù)處理平臺(tái)已經(jīng)成功應(yīng)用于某型號(hào)雷達(dá)設(shè)備中。本平臺(tái)的研制成功,也為下一代的雷達(dá)系統(tǒng)設(shè)計(jì)提供了借鑒,具有較大參考價(jià)值。
[1]MPC8536E PowerQUICC III.Integrated Processor Reference Manual Rev.0 10/2008.
[2]MPC8536E PowerQUICC.III Bring-Up Guide Rev.0,02/2009.
[3]韋東山.嵌入式Linux 應(yīng)用開發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2009.
[4]Alessamdro Rubini.linux 設(shè)備驅(qū)動(dòng)程序[M](第4 版).北京:中國(guó)電力出版社,2000.
[5]于明儉,陳向陽(yáng),方漢.Linux 程序設(shè)計(jì)權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2001.