前言 嵌入式技術(shù)是21世紀最具生命力的新技術(shù)之一,經(jīng)過(guò)近幾年的快速發(fā)展,已經(jīng)成為電子信息產(chǎn)業(yè)中最具增長(cháng)力的一個(gè)分支,隨著(zhù)手機、掌上電腦、 GPS、電視機頂盒、高清播放器等新興產(chǎn)品的大量應用,展現了嵌入式技術(shù)的活力,其中高清播放類(lèi)的多媒體產(chǎn)品越來(lái)越多的應用,本項目將根據具體的硬件來(lái)定制對應兼容的 Windows CE操作系統。由于 MIPS內核處理器具有體積小、高性能、低功耗、低成本等一系列優(yōu)點(diǎn),而且微處理器SMP8634的內核具有高清解碼芯片,所以本項目采用基于32位MIPS核的微處理器SMP8634與Windows CE相結合共同構建了一個(gè)多媒體嵌入式系統。特別目前網(wǎng)絡(luò )已經(jīng)遍及千家萬(wàn)戶(hù),人們可以很方便的使用網(wǎng)絡(luò ),如果多媒體播放器具備網(wǎng)絡(luò )傳輸播放高清視頻的功能,將能夠大大的拓展多媒體播放器的用途。 1 嵌入式Windows CE多媒體操作系統的硬件平臺概述 (1)MIPS微處理器 MIPS是世界上很流行的一種RISC處理器。MIPS的意思是“無(wú)內部互鎖流水級的微處理器”(Microprocessor without interlocked piped stages),其機制是盡量利用軟件辦法避免流水線(xiàn)中的數據相關(guān)問(wèn)題。MIPS微處理器是目前僅次于ARM的用的最多的處理器之一,其應用覆蓋了游戲機,路由器,激光打印機及掌上電腦等方面。 SMP8634是Sigma Designs公司推出的新一代功能強大的 SoC芯片,其CPU內核是由MIPS公司設計的MIPSII RISC處理器核。SMP8634高清芯片包含了一塊 mips 300MHZ的CPU,兩個(gè)解碼芯片,可以同時(shí)解碼兩路高清。多用于高清解碼和數字機頂盒等產(chǎn)品上。本方案選用該處理器就是由于其視頻,圖像處理能力強大。 (2) 基于MIPS 核的微控制器SMP8634系統存儲器 系統存儲器主要有NOR FLASH和SDRAM 兩大部分組成。本系統采用了64M的NOR FLASH和256M的DRAM。 (3)系統擴展功能模塊 因為是開(kāi)發(fā)多媒體播放器,其擴展的功能模塊都是根據視頻解碼得輸入輸出需求來(lái)擴展的,具體的見(jiàn)硬件原理圖(1)。 ![]() 圖(1) SMP8634硬件原理圖 2 嵌入式Windows CE系統定制概述 (1)為什么要用 Windows CE系統 嵌入式操作系統目前有幾種,像Linux,VxWorks,PalmOS,Neculeus等。這些嵌入式操作各自有其特點(diǎn),本項目選擇 Windows CE是因為多媒體產(chǎn)品一般都是大眾消費類(lèi)產(chǎn)品,這就要求操作系統要美觀(guān),易操作;大家習慣了臺式電腦上的 Windows操作系統,而 Windows CE與 Windows操作起來(lái)比較接近,讓初次使用者容易很快上手。Windows CE操作系統也有其不足的地方,如源碼未完全開(kāi)發(fā),版權費等都是需要考慮到的問(wèn)題。在本項目中綜合考慮最終選擇了 Windows CE操作系統。 (2)內核定制平臺 Platform Builder的安裝與升級 Windows CE具有組件可定制性,可以根據項目的需要定制所需的組件。我們采用的是Platform Builder4.0版本。在裝有 Windows XP SP2系統的開(kāi)發(fā)機上安裝好 PlatformBuilder。 接著(zhù)就要配置成多媒體的操作系統,這就必須到微軟的網(wǎng)站下載升級包。在本項目中,相應的我們選擇了 07年和 08年全年升級包,同時(shí)還要下載兩個(gè)多媒體包并安裝好升級包。接著(zhù)安裝此開(kāi)發(fā)板的BSP,再將 BSP相應的.CEC文件拷貝到“\WINCE500\PUBLIC\COMMON\OAK\CATALOG\CEC”目錄中,這樣在 PB的配置組件目錄中將會(huì )有第三方組件選擇的條目。 (3) BootLoader BootLoader目前用的比較多的是U-Boot,而且 U-Boot也支持 MIPS架構,但是我們這里采用 MIPS公司開(kāi)發(fā)的YAMON。由于用 YAMON作為 BootLoader的比較少,下面就詳細分析如何通過(guò) YAMON將程序下到開(kāi)發(fā)板的 flash中去,如果我們想要將文件“file0.bin”寫(xiě)入flash中的地址0位置: a、通過(guò) x86 linux中的uuencode命令將.bin文件轉換成.bin.uuencode文件 >uuencode file0.bin x > file0.bin.uuencode b、在 YAMON中輸入命令:YAMON>load uu 0xb0100000 C、到此,YAMON是一直等待來(lái)自串口的文件,使用 TeraTerm,選擇“File->Send File”,將“file0.bin.uuencode”文件通過(guò)串口發(fā)至 SMP8634開(kāi)發(fā)板上。 d、當下載完成以后,接收到的文件大小會(huì )在 YAMON中給出。 e、比較報告中的文件和 file0.bin文件的大小是否一致。 在做這項工作時(shí)應該非常的仔細,如果中間過(guò)程出問(wèn)題,可能會(huì )將 YAMON損壞并使目標板不能啟動(dòng)。在這步完成后就開(kāi)發(fā)機可以通過(guò)串口線(xiàn)來(lái)和目標板進(jìn)行通信了。 (4)嵌入式多媒體操作系統 Windows CE組件定制 根據硬件擴展模塊,必須為操作系統添加新的組件,而該組件已經(jīng)在前面的多媒體升級包中一起添加到了Platform Builder開(kāi)發(fā)平臺上。該操作系統應具有如下特征: GDI輸出;DirectDraw的DDI支持;HD GDI和Video的輸出,LVDS輸出;IR控制,COM串口輸入,IIC,mini-PCI;硬盤(pán),USB存儲設備;以太網(wǎng),RTL8139和 SMP8634 MAC ETH兩個(gè)設備,TCP/IP;視頻解碼;圖形解碼,硬件 JPEG解碼;系統 WAV音頻輸出;網(wǎng)絡(luò )多媒體支持;Web服務(wù)器等。以上組件都是在定制中添加的,確定好這些組件就可以進(jìn)行系統的定制了,首先運行 Platform Builder工具,建立一個(gè)新的工程,選擇“SMP863X:MIPSII”BSP,在工程模板中選擇“Networked Media Device”,接下來(lái)就可以按照需求來(lái)選擇組件定制操作系統。在配置完成后,添加了 KERNELNOSHAREETH,BSP_NOSHAREETH,BSP_KEYBD_NOP,BSP_SMP863X_IR四個(gè)環(huán)境變量,并將環(huán)境變量的值全部設定為1。完成此步驟后,運行菜單中的“Build OS->Build and Sysgen”生成 NK.bin文件。但是此時(shí)的操作系統還不支持多媒體,必須將多媒體包添加到文件夾“WINCE500\PBWorkspace\(工程名)\SMP863X_MIPSII_Release”中。 為了使多媒體包的文件生效還必須分別修改 platform.bib,config.bib以及platform.reg注冊表文件。首先修改 platform.bib文件,在“;@CESYSGEN IF CE_MODUELS_DEVICE”這行加入KdbNopUS.dll,capsrc863x.dll等多媒體包里的 dll文件的設置,該項設置主要是在編譯操作系統的時(shí)候,編譯器可以自動(dòng)的找到這些 dll文件,并將其一起編譯進(jìn)系統中,格式如下: KdbNopUS.dll $(_FLATRELEASEDIR)\ KdbNopUS.dll NK SH 在config.bib文件中主要是內存的分配,根據硬件要求其具體修改如下: SMP863X 90202800 01B00800 RESERVED ; 27M for SMP863X driver NK 91D10000 02A00000 RAMIMAGE ; 42M for NK.BIN image RAM 94710000 032F0000 RAM ; 50M for CE applications 此兩文件修改完后保存退出。而 platform.reg則根據添加的多媒體包添加相應的設置,具體略過(guò)。三個(gè)文件修改完成后,運行“Build OS---Make Run-Time Image”菜單命令,可生成新的 nk.bin文件,具有多媒體特征的系統配置完成。 3 內核文件 NK.bin的下載 (1) 配置網(wǎng)絡(luò ) 要通過(guò)以太網(wǎng)下載 Windows CE運行時(shí)映像,還要配置以太網(wǎng)網(wǎng)絡(luò )連接?赏ㄟ^(guò)HUB連接開(kāi)發(fā)機與目標機,如圖( 2)所示。把目標機與開(kāi)發(fā)機都連接到HUB上。如果這樣配置網(wǎng)絡(luò ),通常同一網(wǎng)段內還會(huì )有一個(gè)DHCP服務(wù)器。這樣,目標板就可以通過(guò)DHCP服務(wù)獲得IP地址,進(jìn)行下載。由于在下載過(guò)程中,通常要開(kāi)發(fā)機上的終端程序通過(guò)串口連接目標板,對下載過(guò)程進(jìn)行控制,同時(shí)輸出調試信息。Windows上自帶了終端工具“超級終端”。超級終端可以用串口連接開(kāi)發(fā)機與目標板,并且通過(guò)超級終端發(fā)送控制命令。 ![]() 圖(2) 網(wǎng)絡(luò )連接 (2) 下載運行映像 網(wǎng)絡(luò )配置好后,在超級終端上按任意鍵可以進(jìn)入設置菜單。選擇好相應的設置后,退出菜單,這時(shí)候網(wǎng)絡(luò )已經(jīng)連接好了。打開(kāi) Platform Builder菜單上的 “Target->Connectivity Options…”設定好下載,傳輸設置后,在運行“Target->Attach Device”,此時(shí)開(kāi)發(fā)機開(kāi)始將編譯好的 NK.bin文件下載到目標板上。當下載完成后,目標板的屏幕上將會(huì )顯示出漂亮的 Windows CE界面。至此,整個(gè)系統構建完成。 4 結束語(yǔ) 本文主要介紹了嵌入式 MIPS核心微處理器的 SMP8634開(kāi)發(fā)板的硬件平臺架構和 Windows CE操作系統的定制與移植。經(jīng)過(guò)實(shí)驗證明,Windows CE操作系統能夠很好的在此開(kāi)發(fā)板上運行及調試。在該套軟硬件設備上開(kāi)發(fā)出各種應用程序后,就形成了一個(gè)完善的多媒體產(chǎn)品了。本文的創(chuàng )新點(diǎn)是在目前網(wǎng)絡(luò )應用的高速發(fā)展下,本系統不僅能播放硬盤(pán)等存儲介質(zhì)中的多媒體文件,還可以接入網(wǎng)絡(luò )播放視頻圖片等,能更好的共享網(wǎng)絡(luò )上數量豐富的高清視頻,圖片等信息,這些優(yōu)勢使其在消費類(lèi)產(chǎn)品中的應用前景將會(huì )非常廣闊。 作者:陳征,孫麗華 來(lái)源:《微計算機信息》(嵌入式與SOC)2009年第6-2期 |