當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于嵌入式Linux的PMP系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

摘  要:本文介紹了以TI的DM320為主芯片,基于嵌入式Linux的PMP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。設(shè)計(jì)實(shí)現(xiàn)包括軟件和硬件兩個(gè)部分,其中重點(diǎn)在軟件部分。采用本設(shè)計(jì)方案的PMP系統(tǒng)可以實(shí)現(xiàn)高質(zhì)量的音頻、圖片、視頻效果,以及其他一些輔助功能。
關(guān)鍵詞:PMP;嵌入式Linux;音/視頻編解碼

PMP系統(tǒng)簡(jiǎn)介
    便攜式多媒體播放器(PMP),也就是通常人們所說(shuō)的MP4,已成為繼MP3以后消費(fèi)類(lèi)產(chǎn)品的一個(gè)新熱點(diǎn)。PMP的主要優(yōu)點(diǎn)是:攜帶方便,能夠直接播放高品質(zhì)音/視頻文件;也可以瀏覽圖片,以及作為移動(dòng)硬盤(pán)、數(shù)字銀行使用;此外,還有FM、游戲等功能。PMP播放器不僅需要對(duì)機(jī)體大小有所限制,更重要的是需要一種壓縮效率更高、畫(huà)面質(zhì)量更高的視頻壓縮技術(shù),以及相關(guān)編解碼芯片。本文介紹了此PMP系統(tǒng)的軟、硬件設(shè)計(jì),重點(diǎn)在軟件設(shè)計(jì),此PMP系統(tǒng)方案現(xiàn)在已經(jīng)進(jìn)入量產(chǎn)階段。
  
PMP系統(tǒng)的硬件設(shè)計(jì)
    現(xiàn)階段PMP內(nèi)部核心架構(gòu),大多都是采用CPU搭配DSP的方式。其中,DSP負(fù)責(zé)編/解碼工作;CPU則是針對(duì)文件管理、存取,以及使用接口、周邊組件的控制等進(jìn)行處理。另外,還需考慮整合硬盤(pán)、存儲(chǔ)卡及LCD顯示屏等組件,以及與外部USB接口、操控按鈕間的搭配等問(wèn)題。

    為符合上述要求,PMP的設(shè)計(jì)需要內(nèi)建視頻編/解碼芯片,作為模擬與數(shù)字兩種信號(hào)間轉(zhuǎn)換之用。另外,設(shè)計(jì)還需要考慮:用來(lái)連接視頻譯碼器與DSP的總線(xiàn);LCD顯示屏的驅(qū)動(dòng)電路;IDE接口與硬盤(pán)控制芯片間的溝通等。


圖1 DM320的結(jié)構(gòu)圖

    本系統(tǒng)整體方案是建立在TI DM320基礎(chǔ)之上的。DM320 是一款支持視頻編/解碼的帶有雙CPU核的處理器。針對(duì)多媒體器件做專(zhuān)門(mén)的處理, 它可以直接支持視頻輸入/輸出, 可以方便的擴(kuò)展音頻的輸入/輸出, 支持USB ,SDRAM,FLASH,CF/SD/MMC/MS/MS Pro 接口。DM320的結(jié)構(gòu)圖,如圖1所示。

    TI DM320將C5409與ARM926整合,即將CPU與DSP同時(shí)集成在DM320核心內(nèi)。芯片采用32MB或64MB容量的SDRAM,以及4MB的閃存,用作加載與存放操作系統(tǒng)。DM320本身已內(nèi)建LCD控制器、USB2.0 OTG接口控制器,同時(shí)讓CCIR-656格式信號(hào)經(jīng)由總線(xiàn)在視頻譯碼芯片與DM320間傳送。由于NTSC/PAL編碼器也被整合在其中,因此也可直接進(jìn)行復(fù)合視頻輸出。


圖2   DM320硬件系統(tǒng)的整體框架圖

    另一方面,DM320還可支持CCD/CMOS感光組件的連接,使得未來(lái)PMP要導(dǎo)入DSC、DV等更為容易。對(duì)于存儲(chǔ)卡的兼容性部分,除現(xiàn)階段主流的CF、SD及MMC外,還包括Memory Stick。此外,此芯片還提供2組RS232串行端口、1組JTAG接口,能支持更多的外圍設(shè)備。DM320硬件系統(tǒng)的整體框架圖,如圖2所示。


圖3 PMP軟件設(shè)計(jì)框圖

PMP系統(tǒng)的軟件設(shè)計(jì)
    因?yàn)橐骖櫟礁哔|(zhì)量的音視頻效果、多種外設(shè)和有限的系統(tǒng)資源,PMP軟件系統(tǒng)的設(shè)計(jì)變得相對(duì)復(fù)雜。系統(tǒng)設(shè)計(jì)將軟件分為三層結(jié)構(gòu),如圖3所示。

    該系統(tǒng)的最底層是操作系統(tǒng)層,其中包括bootloader引導(dǎo)程序,主要完成系統(tǒng)從FLASH的啟動(dòng),LOGO的顯示,以及OS的引導(dǎo)。嵌入式Linux主要包括適合在TI DM320上運(yùn)行的Linux操作系統(tǒng),以及各種外圍設(shè)備的驅(qū)動(dòng)程序。第2層為CODEC和MMI核層,MMI核包括第3層主GUI和各種應(yīng)用程序所依賴(lài)的各種框架結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),如窗口管理,定時(shí)器管理等。CODEC部分包括音頻的編解碼程序(主要由ARM實(shí)現(xiàn))和圖像的編解碼程序(主要由DSP實(shí)現(xiàn))。最上層為主GUI和各種應(yīng)用程序。應(yīng)用程序包括:FileManager(用來(lái)瀏覽存儲(chǔ)器中的文件),VideoPlayer(播放視頻文件),AudioPlayer(播放音頻文件),ImageViewer(瀏覽圖片),F(xiàn)M(收音機(jī)),Games(游戲),Resumes(重新播放音/視頻文件)。

嵌入式Linux操作系統(tǒng)
    本系統(tǒng)采用的Linux內(nèi)核是對(duì)從Internet上下載比較穩(wěn)定的Arm-Linux內(nèi)核進(jìn)行相應(yīng)的修改,并編寫(xiě)相關(guān)外圍設(shè)備的驅(qū)動(dòng)程序,使之成為一個(gè)適合TI DM320開(kāi)發(fā)的操作系統(tǒng)環(huán)境。之所以稱(chēng)為嵌入式,是因?yàn)槠洳僮飨到y(tǒng)運(yùn)行的環(huán)境并不是普通的PC,而且嵌入在非PC構(gòu)架的電子設(shè)備中。

關(guān)于內(nèi)核修改Kconfig文件
    Kconfig文件是用來(lái)對(duì)你所要加載內(nèi)核內(nèi)容進(jìn)行配置的文件。比如,當(dāng)在控制臺(tái)上敲入make menuconfig,就會(huì)看到內(nèi)核配置的窗口,可對(duì)其中的內(nèi)容進(jìn)行選擇。選擇[*]表示把此內(nèi)容編入內(nèi)核,選擇[M]表示把此內(nèi)容當(dāng)成模塊編譯。Linux支持動(dòng)態(tài)加載內(nèi)核模塊的功能,甚至可以在運(yùn)行操作系統(tǒng)一段時(shí)間后再加載內(nèi)核模塊。由于DM320框架并未列入內(nèi)核中,所以我們需要把DM320框架加入內(nèi)核。首先,就要在內(nèi)核目錄下./arch/arm/Kconfig加入DM320的配置選項(xiàng),這樣才能在執(zhí)行make menuconfig配置內(nèi)核時(shí)看到DM320框架。修改的部分內(nèi)容如下所示:

choice
prompt "ARM system type"
default ARCH_DM320_20 file://在配置ARM系統(tǒng)時(shí),默認(rèn)的就是DM320框架。
source "arch/arm/mach-dm320-20/Kconfig"把DM320框架下的配置選項(xiàng)也引入。
  
    同時(shí),去掉其他CPU框架。如:
#source "arch/arm/mach-clps711x/Kconfig"
#source "arch/arm/mach-integrator/Kconfig"
其中,“#”表示此行內(nèi)容為注釋內(nèi)容。

    最后,就是要把內(nèi)核配置選項(xiàng)中對(duì)DM320開(kāi)發(fā)有用的項(xiàng)選進(jìn)來(lái)。比如:
source "drivers/char/Kconfig"
if (!ARCH_DM320_20)
source "sound/Kconfig"
endif file://選擇開(kāi)發(fā)字符設(shè)備的驅(qū)動(dòng),而不需要聲音的支持。

    因?yàn)橐袰ODEC編入內(nèi)核,所以我們還要加入支持CODEC的配置選項(xiàng):
source "codecs/modules/Kconfig"

    同時(shí),如果我們要加入一個(gè)新外圍設(shè)備,也需要在Kconfig文件中加入對(duì)應(yīng)的內(nèi)容。比如說(shuō),要加入一個(gè)三星的4英寸TFT LCD的驅(qū)動(dòng),我們可以修改./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表示增加一個(gè)新的配置入口。一旦這個(gè)配置選項(xiàng)被選中就會(huì)在./include/linux/autoconf.h:有:#define CONFIG_DM320_SAMSUNG_4_LCD 1的定義。

    這樣的話(huà),我們?cè)谡麄€(gè)內(nèi)核源碼樹(shù)中都可以使用CONFIG_DM320_SAMSUNG_4_LCD來(lái)進(jìn)行特定的選擇。

    在tristate "DM320 SAMSUNG 4.0 inch 16:9 TFT LCD"中,引號(hào)里的內(nèi)容為出現(xiàn)在配置選項(xiàng)中的提示文字。tristate表示三態(tài),意思是除了可以選擇[*]、[ ]外,還可以選擇[M],表示把當(dāng)前內(nèi)容當(dāng)成模塊編譯。

    depends on ARCH_DM320_20 && BOARD_400H表示如果前面配置平臺(tái)框架時(shí)選擇了ARCH_DM320_20,并在選擇型號(hào)時(shí)選擇了BOARD_400H,我們就可以看到這個(gè)對(duì)于三星4英寸TFT LCD的配置選項(xiàng)。

    default y表示默認(rèn)把此驅(qū)動(dòng)編入內(nèi)核。help的內(nèi)容為當(dāng)我們對(duì)內(nèi)核進(jìn)行配置時(shí),選幫助所看到的內(nèi)容。

Makefile文件
    簡(jiǎn)單地說(shuō),Makefile是用來(lái)進(jìn)行項(xiàng)目配置和管理的。我們要把Linux編譯、鏈接最后生成可執(zhí)行的內(nèi)核映像,Makefile文件是必不可少的。

    在該P(yáng)MP設(shè)計(jì)開(kāi)發(fā)中,只需要把外設(shè)驅(qū)動(dòng)模塊加入相應(yīng)的內(nèi)核源碼樹(shù)就可以完成對(duì)Makefile文件的修改。以加入三星4英寸TFT LCD驅(qū)動(dòng)為例,只需要在./drivers/char/Makefile加入如下內(nèi)容即可:
obj-$(CONFIG_DM320_ SAMSUNG_4_LCD)  += dm320_lcd_samsung4.o

PMP系統(tǒng)設(shè)計(jì)中兩個(gè)必須的驅(qū)動(dòng)以及要注意的問(wèn)題
LCD驅(qū)動(dòng)程序
    在一個(gè)PMP設(shè)備中,LCD顯示屏是必備的。在LCD驅(qū)動(dòng)程序的設(shè)計(jì)過(guò)程中,主要是要選好時(shí)鐘源、分頻系數(shù)以及時(shí)鐘極性。比如在DM320中,時(shí)鐘控制器有以下幾個(gè)外部輸入:PCLK、SYSCLK、MXI、M48XI,其中除了M48XI外其余均選擇27M外部晶振。LCD的時(shí)鐘頻率DCLK在本系統(tǒng)中是由VENC(Video Encoder Clock)確定,而VENC又可以通過(guò)系統(tǒng)的PLL分頻而確定,所以說(shuō)首先要選好時(shí)鐘源和恰當(dāng)?shù)姆诸l系數(shù),然后通過(guò)設(shè)置VENC的寄存器就可以設(shè)置時(shí)鐘的極性。

FrameBuffer驅(qū)動(dòng)
    FrameBuffer是把顯存抽象成一個(gè)設(shè)備,通過(guò)對(duì)這個(gè)設(shè)備的讀寫(xiě)就等同于直接對(duì)顯存進(jìn)行操作。這種操作是抽象的、統(tǒng)一的。用戶(hù)不必關(guān)心顯存的物理位置、換頁(yè)機(jī)制等具體細(xì)節(jié),這些都是由FrameBuffer設(shè)備驅(qū)動(dòng)程序來(lái)完成的。 FrameBuffer對(duì)應(yīng)的源文件在linux/drivers/video/目錄下。全部的抽象設(shè)備文件作為fbcon.c與各種顯卡驅(qū)動(dòng)程序相關(guān)的源文件放在該目錄下,如筆者所進(jìn)行的針對(duì)DM320的FrameBuffer源文件dm320fb.c。在源文件我們要設(shè)置相應(yīng)屏幕的長(zhǎng)、寬以及每一個(gè)像素點(diǎn)的位數(shù)等等,還有一些與DM320 OSD(On-Screen Display)相關(guān)的寄存器的設(shè)置。因?yàn)樯婕皟?nèi)容較多,在此不再贅述。
  
結(jié)語(yǔ)
    本PMP方案設(shè)計(jì)的產(chǎn)品已經(jīng)進(jìn)入量產(chǎn)階段,經(jīng)過(guò)大量的用戶(hù)測(cè)試,證實(shí)了整個(gè)設(shè)計(jì)是切實(shí)可行的。同時(shí),其設(shè)計(jì)思路對(duì)于其他類(lèi)似產(chǎn)品如車(chē)載GPS,都有一定的參考價(jià)值。

參考文獻(xiàn):
1. Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman,LINUX DEVICE DRIVERS. O'REILLY ,東南大學(xué)出版社(影印版),2005年6月第1版
2.Texas Instruments, TMS320DM320 CPU and Peripherals Vol-1a
3. 譚磊, 基于嵌入式LINUX 的智能手機(jī)系統(tǒng)設(shè)計(jì),電子技術(shù)應(yīng)用,2004年第12期
4. 倪繼利,Linux內(nèi)核分析及編程 電子工業(yè)出版社,2005年9月第1次印刷

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉