基于 S3C2440 的嵌入式多媒體控制器設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
根據(jù)當(dāng)今移動(dòng)終端設(shè)備多功能、低功耗、易于移植的要求,分別從硬件和軟件系統(tǒng) 2 方面提出了一種基于三星μS3C2440 芯片的嵌入式多媒體娛樂(lè)控制器的解決方案,同時(shí)介紹了利用 CLinux 構(gòu)造嵌入式系統(tǒng)的方法,并提出了基于MiniGUI開發(fā)多媒體娛樂(lè)軟件的基本方案。通過(guò)測(cè)試,系統(tǒng)能夠滿足用戶在文字、音視頻處理以及常用有線、無(wú)線數(shù)據(jù)交換等多方面的要求。
由于移動(dòng)通信技術(shù)的高速發(fā)展,移動(dòng)電話早已超出原有的進(jìn)行語(yǔ)音通信的領(lǐng)域,正逐步成為手持娛樂(lè)終端的中心。手機(jī)用戶希望自己的手機(jī)在完成通信基本功能的同時(shí)還能作為 PDA、MP3 播放器、數(shù)碼相機(jī)、攝像機(jī)、視頻播放機(jī)等。因此,設(shè)計(jì)出多功能、低功耗的多媒體終端至關(guān)重要。ARM+Linux系統(tǒng)具有低功耗、易移植、便于定制的特點(diǎn),所以我們采用其作為系統(tǒng)設(shè)計(jì)的理想平臺(tái)。
系統(tǒng)設(shè)計(jì)
本方案由硬件系統(tǒng)和軟件系統(tǒng)2 部分構(gòu)成,其中硬件系統(tǒng)采用三星的具有 ARM920T 核的 16/32 位多功能、低功耗的嵌入式處理器 S3C2440。S3C2440 是韓國(guó)三星公司推出的一款高檔的,可用于手持設(shè)備、智能家電等便攜產(chǎn)品開發(fā)的嵌入式微處理器,其主頻處理速度達(dá)到400 MHz,完全可以滿足音頻和視頻的處理要求。其主控制芯片及豐富的外圍接口電路可用于創(chuàng)建連接各類設(shè)備的集成化驅(qū)動(dòng)程
序和協(xié)議堆棧,如讀寫 USB 的接口、MMC/ CF 多媒體卡接口、AC97 音頻接口、無(wú)線網(wǎng)絡(luò)接口、IrDA 紅外接口等,給用戶提供了多種與其他系統(tǒng)進(jìn)行信息交互的功能,可以自由地實(shí)現(xiàn)文字、聲音和圖像資料的交換。軟件系統(tǒng)包括μCLinux操作系統(tǒng)、圖形用戶接口 GUI,方便用戶根據(jù)自身的需要,開發(fā)相應(yīng)的多媒體應(yīng)用程序。uCLinux 操作系統(tǒng)高效穩(wěn)定,提供了完成嵌入功能的基本地內(nèi)核,能夠處理嵌入式任務(wù)和用戶界面,更由于其開發(fā)源碼、定制方便以及易于移植,并不需要 MMU 的支持,可廣泛地用于各種嵌入式系統(tǒng)中。
1 硬件系統(tǒng)
硬件系統(tǒng)S3C2440構(gòu)成核心電路系統(tǒng),該芯片采用RISC結(jié)構(gòu),除具有一般嵌入式芯片所具有的總線,SDRAM控制器以外,還具有豐富的擴(kuò)展功能接口,內(nèi)部集成了TFT/ STN LCD和觸摸屏控制器、 USB Slave ,USB Host , Ir2DA紅外接口、 SD & MMC存儲(chǔ)卡接口、 AC97數(shù)字音頻接口等大量的功能模塊。同時(shí),通過(guò)外擴(kuò)的PCI總線,使得系統(tǒng)具有很強(qiáng)的擴(kuò)展和升級(jí)能力,提供了極其豐富的人機(jī)交互接口。該芯片采用1. 2 V的工作電壓,功耗很低,能夠滿足消費(fèi)類電子電源對(duì)功耗的要求。同時(shí),電源管理模塊能夠提供系統(tǒng)多種電壓供電,包括芯片內(nèi)核電壓采用1. 8 V供電,芯片的I/ O部分采用3. 3 V供電,而片外的一些常規(guī)集成電路又采用5 V供電。智能電源管理模塊很好地解決了對(duì)系統(tǒng)各個(gè)部分供電要求的不同,降低了功耗,減少了不同電源之間的干擾噪聲,提高了系統(tǒng)的集成度。由于S3C2440芯片內(nèi)部沒(méi)有實(shí)現(xiàn)PCI總線,為了使系統(tǒng)具有更強(qiáng)的擴(kuò)展和升級(jí)能力,通過(guò)外圍的PCI總線控制器芯片實(shí)現(xiàn)系統(tǒng)總線的擴(kuò)展。該芯片支持PCI2. 1協(xié)議規(guī)范,在33 MHz的總線時(shí)鐘頻率下,其峰值傳輸速度可達(dá)133 MB/ s ,完全可以滿足數(shù)據(jù)傳輸?shù)囊?。通過(guò)PCI總線實(shí)現(xiàn)藍(lán)牙接口和無(wú)線網(wǎng)絡(luò)接口,滿足用戶遠(yuǎn)距離數(shù)據(jù)傳輸和無(wú)線網(wǎng)絡(luò)的要求。同時(shí),系統(tǒng)可以連接2.5英寸或者1. 8英寸的小型硬盤,實(shí)現(xiàn)用戶信息的移動(dòng)存儲(chǔ),用戶可以根據(jù)需要擴(kuò)大存儲(chǔ)容量。由于在系統(tǒng)中采用了PCI總線控制器,擴(kuò)展出了PCI總線,使得系統(tǒng)在某種意義上相當(dāng)于一臺(tái)小型PC機(jī),用戶可以很方便地進(jìn)行硬件系統(tǒng)的擴(kuò)展和升級(jí)。為了滿足有些場(chǎng)合的人機(jī)交互,不同于一般的PC機(jī)系統(tǒng),要求快捷、 方便的操作要求,我們采用6. 4英寸高亮度彩色TFT LCD觸摸屏,用戶與上層多媒體處理軟件的交互直接通過(guò)觸摸屏方式實(shí)現(xiàn),提供了良好的人機(jī)接口。
圖1為系統(tǒng)的硬件結(jié)構(gòu)框圖。
SHAPE *
MERGEFORMAT
嵌入式多媒體控制器硬件結(jié)構(gòu)框圖
2、軟件部分
軟件系統(tǒng)由μCLinux 操作系統(tǒng)、 嵌入式圖形用戶界面支持系統(tǒng) MiniGUI構(gòu)成。 μCLinux操作系統(tǒng)包括引導(dǎo)裝載程序、 嵌入式Linux 內(nèi)核、 必要的設(shè)備驅(qū)動(dòng)程序、 文件系統(tǒng)J FFS2 等,具有高度模塊化、 易于定制、 可移植性好等優(yōu)點(diǎn)。引導(dǎo)裝載程序Boot Loader 是系統(tǒng)加電后運(yùn)行的第一段軟件代碼。通過(guò)這段小程序,可以初始化硬件設(shè)備、 建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。每種不同的 CPU 體系結(jié)構(gòu)都有不同的 Boot Loader ,Boot Loader 是嚴(yán)重依賴于硬件而實(shí)現(xiàn)的。本系統(tǒng)采用基于ARM920T核的Boot Loader ,且根據(jù)系統(tǒng)硬件設(shè)備的實(shí)際配置修改了Boot Loader 的源程序,使他能夠運(yùn)行到我們的系統(tǒng)上。所設(shè)計(jì)的系統(tǒng)提供了最大128 M可選的 SDRAM和最大128 M可選的 FLASH存儲(chǔ)器,系統(tǒng)運(yùn)行小型的,經(jīng)過(guò)裁剪的Linux 微內(nèi)核。微內(nèi)核由內(nèi)存管理、 進(jìn)程管理和事務(wù)處理構(gòu)成,包括了所有核心的操作系統(tǒng)功能在內(nèi)。μCLinux 操作系統(tǒng)本身的微內(nèi)核體系結(jié)構(gòu)相當(dāng)簡(jiǎn)單,系統(tǒng)要求的網(wǎng)絡(luò)協(xié)議和文件系統(tǒng)以模塊形式置于微內(nèi)核的上層,驅(qū)動(dòng)程序和其他部件可在運(yùn)行時(shí)作為可加載模塊編譯或是添加到內(nèi)核,這為構(gòu)造定制的可嵌入系統(tǒng)提供了高度模塊化的構(gòu)件方法。用戶可以結(jié)合定制的驅(qū)動(dòng)程序和應(yīng)用程序來(lái)實(shí)現(xiàn)自己的附加功能,大大減小了內(nèi)核的體積,便于維護(hù)和移植。其中,采用J FFS2 日志閃存文件系統(tǒng)管理非易失性存儲(chǔ)中的結(jié)構(gòu)化文件數(shù)據(jù),J FFS2 是專門為像閃存芯片那樣的嵌入式設(shè)備創(chuàng)建的,所以他的整個(gè)設(shè)計(jì)提供了更好的閃存管理,為掉電或系統(tǒng)崩潰等突發(fā)事件提供了很好的數(shù)據(jù)保護(hù)機(jī)制。
MiniGUI 是一種面向嵌入式系統(tǒng)或?qū)崟r(shí)系統(tǒng)的圖形用戶界面支持系統(tǒng),是遵循 L GPL 條款的純自由軟件,提供了完備的多窗口機(jī)制,多字符集和多字體支持,BMP , GIF ,J PEG,PCX,TGA 等常見(jiàn)圖像文件的支持等。他是建立在比較成熟的圖形引擎之上的,比如 SVGALib 和 LibGGI ,系統(tǒng)開發(fā)的重點(diǎn)在于窗口系統(tǒng)、 圖形接口之上,MiniGUI提供了大量的圖形應(yīng)用編程接口,包含全部功能的庫(kù)文件大小僅為 300 k左右,特別適合用在嵌入式系統(tǒng)上開發(fā)控制臺(tái)圖形用戶界面的應(yīng)用程序。同時(shí),由于圖形抽象層( GAL)和輸入抽象層( IAL)概念的引入,將底層圖形硬件和上層的圖形操作和輸入處理分離開來(lái),大大提高了 MiniGUI 的可移植性。利用 GAL 和 IAL ,MiniGUI可以在許多圖形引擎上運(yùn)行,可以很方便地移植到基于ARM920T核的S3C2440系統(tǒng)上。
3 、多媒體娛樂(lè)應(yīng)用軟件的方案設(shè)計(jì)
基于 MiniGUI的嵌入式娛樂(lè)系統(tǒng)軟件,應(yīng)該最大限度滿足視聽娛樂(lè)的要求。能提供視頻播放、 音頻播放等多媒體處理軟件,個(gè)人信息管理軟件及無(wú)線網(wǎng)絡(luò)服務(wù)。其中,音頻應(yīng)能支持 MP3 ,WMA , WAV 等格式,視頻支持 AVI(XviD &DivX4. 0 &5. 0)格式。個(gè)人信息管理程序提供備忘錄、 記事本、 名片夾等多種功能。無(wú)線網(wǎng)絡(luò)服務(wù)提供全功能的 Web 瀏覽器。用戶通過(guò)觸摸屏與應(yīng)用軟件進(jìn)行交互,提供了友好的人機(jī)界面。
圖2 基于 MiniGUI的多媒體處理軟件架構(gòu)
SHAPE * MERGEFORMAT
基于 MiniGUI的多媒體處理軟件架構(gòu)該系統(tǒng)中的所有應(yīng)用程序都以J FFS2 進(jìn)程的形式執(zhí)行,MiniGUI提供應(yīng)用程序管理功能。所有的應(yīng)用程序都運(yùn)行在同一個(gè)地址空間,這樣大大提高了程序之間的通訊效率。當(dāng)應(yīng)用程序之間需要通訊時(shí),可以通過(guò) MiniGUI 提供的 request/ response 接口實(shí)現(xiàn)。我們使用消息驅(qū)動(dòng)作為應(yīng)用程序的創(chuàng)建構(gòu)架,觸摸屏的按擊由 MiniGUI支持系統(tǒng),窗口管理器收集,將其以事先約定的格式翻譯為特定消息,每一個(gè)多媒體處理應(yīng)用程序都包含有自己的消息隊(duì)列,支持系統(tǒng)將消息發(fā)送到應(yīng)用程序的消息隊(duì)列中,應(yīng)用程序建立一個(gè)消息循環(huán),在這個(gè)循環(huán)中讀取消息,應(yīng)用程序同時(shí)提供一個(gè)處理消息的標(biāo)準(zhǔn)函數(shù),在消息循環(huán)中,系統(tǒng)調(diào)用此函數(shù),在此函數(shù)中處理相應(yīng)的消息,完成用戶的請(qǐng)求。
圖3 基于消息驅(qū)動(dòng)的應(yīng)用程序框架
SHAPE * MERGEFORMAT
更多計(jì)算機(jī)與外設(shè)信息請(qǐng)關(guān)注:21ic計(jì)算機(jī)與外設(shè)頻道