技術頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術頻道 > 技術百科 > 基于嵌入式Linux的PMP系統(tǒng)設計與實現(xiàn)

基于嵌入式Linux的PMP系統(tǒng)設計與實現(xiàn)

時間:2007-07-09 15:16:00來源:lihan

導語:?便攜式多媒體播放器(PMP),也就是通常人們所說的MP4,已成為繼MP3以后消費類產(chǎn)品的一個新熱點。
PMP系統(tǒng)簡介 便攜式多媒體播放器(PMP),也就是通常人們所說的MP4,已成為繼MP3以后消費類產(chǎn)品的一個新熱點。PMP的主要優(yōu)點是:攜帶方便,能夠直接播放高品質(zhì)音/視頻文件;也可以瀏覽圖片,以及作為移動硬盤、數(shù)字銀行使用;此外,還有FM、游戲等功能。PMP播放器不僅需要對機體大小有所限制,更重要的是需要一種壓縮效率更高、畫面質(zhì)量更高的視頻壓縮技術,以及相關編解碼芯片。本文介紹了此PMP系統(tǒng)的軟、硬件設計,重點在軟件設計,此PMP系統(tǒng)方案現(xiàn)在已經(jīng)進入量產(chǎn)階段。 PMP系統(tǒng)的硬件設計 現(xiàn)階段PMP內(nèi)部核心架構,大多都是采用CPU搭配DSP的方式。其中,DSP負責編/解碼工作;CPU則是針對文件管理、存取,以及使用接口、周邊組件的控制等進行處理。另外,還需考慮整合硬盤、存儲卡及LCD顯示屏等組件,以及與外部USB接口、操控按鈕間的搭配等問題。 為符合上述要求,PMP的設計需要內(nèi)建視頻編/解碼芯片,作為模擬與數(shù)字兩種信號間轉(zhuǎn)換之用。另外,設計還需要考慮:用來連接視頻譯碼器與DSP的總線;LCD顯示屏的驅(qū)動電路;IDE接口與硬盤控制芯片間的溝通等。 [ALIGN=CENTER] 圖 1 DM320的結構圖[/ALIGN] 本系統(tǒng)整體方案是建立在TI DM320基礎之上的。DM320 是一款支持視頻編/解碼的帶有雙CPU核的處理器。針對多媒體器件做專門的處理, 它可以直接支持視頻輸入/輸出, 可以方便的擴展音頻的輸入/輸出, 支持USB ,SDRAM,FLASH,CF/SD/MMC/MS/MS Pro 接口。DM320的結構圖,如圖1所示。 TI DM320將C5409與ARM926整合,即將CPU與DSP同時集成在DM320核心內(nèi)。芯片采用32MB或64MB容量的SDRAM,以及4MB的閃存,用作加載與存放操作系統(tǒng)。DM320本身已內(nèi)建LCD控制器、USB2.0 OTG接口控制器,同時讓CCIR-656格式信號經(jīng)由總線在視頻譯碼芯片與DM320間傳送。由于NTSC/PAL編碼器也被整合在其中,因此也可直接進行復合視頻輸出。 [ALIGN=CENTER] 圖2 DM320硬件系統(tǒng)的整體框架圖[/ALIGN] 另一方面,DM320還可支持CCD/CMOS感光組件的連接,使得未來PMP要導入DSC、DV等更為容易。對于存儲卡的兼容性部分,除現(xiàn)階段主流的CF、SD及MMC外,還包括Memory Stick。此外,此芯片還提供2組RS232串行端口、1組JTAG接口,能支持更多的外圍設備。DM320硬件系統(tǒng)的整體框架圖,如圖2所示。 [ALIGN=CENTER] 圖3 PMP軟件設計框圖[/ALIGN] PMP系統(tǒng)的軟件設計    因為要兼顧到高質(zhì)量的音視頻效果、多種外設和有限的系統(tǒng)資源,PMP軟件系統(tǒng)的設計變得相對復雜。系統(tǒng)設計將軟件分為三層結構,如圖3所示。 該系統(tǒng)的最底層是操作系統(tǒng)層,其中包括bootloader引導程序,主要完成系統(tǒng)從FLASH的啟動,LOGO的顯示,以及OS的引導。嵌入式Linux主要包括適合在TI DM320上運行的Linux操作系統(tǒng),以及各種外圍設備的驅(qū)動程序。第2層為CODEC和MMI核層,MMI核包括第3層主GUI和各種應用程序所依賴的各種框架結構和數(shù)據(jù)結構,如窗口管理,定時器管理等。CODEC部分包括音頻的編解碼程序(主要由ARM實現(xiàn))和圖像的編解碼程序(主要由DSP實現(xiàn))。最上層為主GUI和各種應用程序。應用程序包括:FileManager(用來瀏覽存儲器中的文件),VideoPlayer(播放視頻文件),AudioPlayer(播放音頻文件),ImageViewer(瀏覽圖片),F(xiàn)M(收音機),Games(游戲),Resumes(重新播放音/視頻文件)。 嵌入式Linux操作系統(tǒng)    本系統(tǒng)采用的Linux內(nèi)核是對從Internet上下載比較穩(wěn)定的Arm-Linux內(nèi)核進行相應的修改,并編寫相關外圍設備的驅(qū)動程序,使之成為一個適合TI DM320開發(fā)的操作系統(tǒng)環(huán)境。之所以稱為嵌入式,是因為其操作系統(tǒng)運行的環(huán)境并不是普通的PC,而且嵌入在非PC構架的電子設備中。 關于內(nèi)核修改Kconfig文件    Kconfig文件是用來對你所要加載內(nèi)核內(nèi)容進行配置的文件。比如,當在控制臺上敲入make menuconfig,就會看到內(nèi)核配置的窗口,可對其中的內(nèi)容進行選擇。選擇[*]表示把此內(nèi)容編入內(nèi)核,選擇[M]表示把此內(nèi)容當成模塊編譯。Linux支持動態(tài)加載內(nèi)核模塊的功能,甚至可以在運行操作系統(tǒng)一段時間后再加載內(nèi)核模塊。由于DM320框架并未列入內(nèi)核中,所以我們需要把DM320框架加入內(nèi)核。首先,就要在內(nèi)核目錄下./arch/arm/Kconfig加入DM320的配置選項,這樣才能在執(zhí)行make menuconfig配置內(nèi)核時看到DM320框架。修改的部分內(nèi)容如下所示:   choice   prompt "ARM system type"   default ARCH_DM320_20 file://在配置ARM系統(tǒng)時,默認的就是DM320框架。   source "arch/arm/mach-dm320-20/Kconfig"把DM320框架下的配置選項也引入。   同時,去掉其他CPU框架。如:   #source "arch/arm/mach-clps711x/Kconfig"   #source "arch/arm/mach-integrator/Kconfig"   其中,“#”表示此行內(nèi)容為注釋內(nèi)容。   最后,就是要把內(nèi)核配置選項中對DM320開發(fā)有用的項選進來。比如:   source "drivers/char/Kconfig"   if (!ARCH_DM320_20)   source "sound/Kconfig"   endif file://選擇開發(fā)字符設備的驅(qū)動,而不需要聲音的支持。   因為要把CODEC編入內(nèi)核,所以我們還要加入支持CODEC的配置選項:   source "codecs/modules/Kconfig" 同時,如果我們要加入一個新外圍設備,也需要在Kconfig文件中加入對應的內(nèi)容。比如說,要加入一個三星的4英寸TFT LCD的驅(qū)動,我們可以修改./drivers/char/Kconfig文件,并加入以下內(nèi)容:   config DM320_SAMSUNG_ 4_LCD   tristate "DM320 SAMSUNG 4.0 inch 16:9 TFT LCD"   depends on ARCH_DM320_20 && BOARD_400H   default y   help   This driver provides support for SAMSUNG 4.0‘ 16:9 TFT LCD for DM320. 其中,config DM320_SAMSUNG_4_LCD表示增加一個新的配置入口。一旦這個配置選項被選中就會在./include/Linux/autoconf.h:有:#define CONFIG_DM320_SAMSUNG_4_LCD 1的定義。 這樣的話,我們在整個內(nèi)核源碼樹中都可以使用CONFIG_DM320_SAMSUNG_4_LCD來進行特定的選擇。 在tristate "DM320 SAMSUNG 4.0 inch 16:9 TFT LCD"中,引號里的內(nèi)容為出現(xiàn)在配置選項中的提示文字。tristate表示三態(tài),意思是除了可以選擇[*]、[ ]外,還可以選擇[M],表示把當前內(nèi)容當成模塊編譯。 depends on ARCH_DM320_20 && BOARD_400H表示如果前面配置平臺框架時選擇了ARCH_DM320_20,并在選擇型號時選擇了BOARD_400H,我們就可以看到這個對于三星4英寸TFT LCD的配置選項。 default y表示默認把此驅(qū)動編入內(nèi)核。help的內(nèi)容為當我們對內(nèi)核進行配置時,選幫助所看到的內(nèi)容。 Makefile文件    簡單地說,Makefile是用來進行項目配置和管理的。我們要把Linux編譯、鏈接最后生成可執(zhí)行的內(nèi)核映像,Makefile文件是必不可少的。 在該PMP設計開發(fā)中,只需要把外設驅(qū)動模塊加入相應的內(nèi)核源碼樹就可以完成對Makefile文件的修改。以加入三星4英寸TFT LCD驅(qū)動為例,只需要在./drivers/char/Makefile加入如下內(nèi)容即可:   obj-$(CONFIG_DM320_ SAMSUNG_4_LCD)+= dm320_lcd_samsung4.o PMP系統(tǒng)設計中兩個必須的驅(qū)動以及要注意的問題 LCD驅(qū)動程序    在一個PMP設備中,LCD顯示屏是必備的。在LCD驅(qū)動程序的設計過程中,主要是要選好時鐘源、分頻系數(shù)以及時鐘極性。比如在DM320中,時鐘控制器有以下幾個外部輸入:PCLK、SYSCLK、MXI、M48XI,其中除了M48XI外其余均選擇27M外部晶振。LCD的時鐘頻率DCLK在本系統(tǒng)中是由VENC(Video Encoder Clock)確定,而VENC又可以通過系統(tǒng)的PLL分頻而確定,所以說首先要選好時鐘源和恰當?shù)姆诸l系數(shù),然后通過設置VENC的寄存器就可以設置時鐘的極性。 FrameBuffer驅(qū)動    FrameBuffer是把顯存抽象成一個設備,通過對這個設備的讀寫就等同于直接對顯存進行操作。這種操作是抽象的、統(tǒng)一的。用戶不必關心顯存的物理位置、換頁機制等具體細節(jié),這些都是由FrameBuffer設備驅(qū)動程序來完成的。 FrameBuffer對應的源文件在Linux/drivers/video/目錄下。全部的抽象設備文件作為fbcon.c與各種顯卡驅(qū)動程序相關的源文件放在該目錄下,如筆者所進行的針對DM320的FrameBuffer源文件dm320fb.c。在源文件我們要設置相應屏幕的長、寬以及每一個像素點的位數(shù)等等,還有一些與DM320 OSD(On-Screen Display)相關的寄存器的設置。因為涉及內(nèi)容較多,在此不再贅述。 結語    本PMP方案設計的產(chǎn)品已經(jīng)進入量產(chǎn)階段,經(jīng)過大量的用戶測試,證實了整個設計是切實可行的。同時,其設計思路對于其他類似產(chǎn)品如車載GPS,都有一定的參考價值。 參考文獻:    1. Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman,LINUX DEVICE DRIVERS. O‘REILLY ,東南大學出版社(影印版),2005年6月第1版 2.Texas Instruments, TMS320DM320 CPU and Peripherals Vol-1a 3. 譚磊, 基于嵌入式LINUX的智能手機系統(tǒng)設計,電子技術應用,2004年第12期 4. 倪繼利,Linux內(nèi)核分析及編程 電子工業(yè)出版社,2005年9月第1次印刷

標簽:

點贊

分享到:

上一篇:PLC控制步進電機

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網(wǎng)站簡介|會員服務|聯(lián)系方式|幫助信息|版權信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務平臺

網(wǎng)站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號