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