基于OMAP的3G無(wú)線終端處理器系統(tǒng)的硬件研究與開(kāi)發(fā)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:在深入理解ARM和TMSC320C5000在參與基于OMAP5910的3G無(wú)線終端的多媒體應(yīng)用平臺(tái)硬件系統(tǒng)設(shè)計(jì)基本原則的基礎(chǔ)上,文章畫出一個(gè)硬件系統(tǒng)原理圖和印刷電路板圖;各種功能模塊進(jìn)行測(cè)試和調(diào)試;完成與CPLD相關(guān)的硬件語(yǔ)言設(shè)計(jì)和調(diào)試,在QuartusII軟件下用VerilogHDL編寫;在掌握Linux操作系統(tǒng)及嵌入式操作系統(tǒng)的移植和開(kāi)發(fā)及Linux下的驅(qū)動(dòng)程序開(kāi)發(fā)的基礎(chǔ)上,完成DSP、Camera、觸摸屏等底層驅(qū)動(dòng)程序的開(kāi)發(fā);完成Microwindow下頂層用戶界面和JPEG等應(yīng)用程序的開(kāi)發(fā),和Linux驅(qū)動(dòng)程序開(kāi)發(fā)。
關(guān)鍵詞:3G;OMAP5910;Linux;Microwindows;MP3;MPEG-4;JPEG
0 前言
3G或第三代移動(dòng)通信系統(tǒng)可以提供各類高品質(zhì)的多媒體服務(wù),它能夠處理圖像、音樂(lè)、視頻流和其他形式的媒體,包括網(wǎng)頁(yè)瀏覽,電話會(huì)議、電視電話、在線游戲,和其他信息服務(wù)。
1 OMAP5910處理器介紹
OMAP5910是針對(duì)高度集成的通用OMAP處理器的嵌入式應(yīng)用的應(yīng)用程序的第一個(gè)目標(biāo)。它的應(yīng)用是無(wú)線領(lǐng)域之外,能夠互連計(jì)算、嵌入式計(jì)算、遠(yuǎn)程計(jì)算和新興的計(jì)算一體化。不僅適合于2.5G/3G手機(jī)和PDA市場(chǎng),也將OMAP平臺(tái)固有的優(yōu)勢(shì)進(jìn)一步擴(kuò)大,可用于數(shù)字媒體、生物識(shí)別、定位服務(wù)、新類型游戲和電信、商業(yè)和工業(yè)應(yīng)用領(lǐng)域。
2 硬件系統(tǒng)的設(shè)計(jì)
整個(gè)系統(tǒng)的硬件可以分為兩個(gè)模塊:處理器模塊和外設(shè)模塊。處理器模塊運(yùn)行嵌入式Linux的實(shí)時(shí)操作系統(tǒng)和應(yīng)用程序,以及周邊外設(shè)模塊和通信,是完全控制整個(gè)系統(tǒng)的核心。外設(shè)模塊是一組以上的外圍設(shè)備,包括電源、音頻和視頻系統(tǒng)。
2.1 處理器模塊
進(jìn)一步細(xì)分為處理器、JTAG和內(nèi)存模塊。
處理器:OMAP5910處理器是整個(gè)系統(tǒng)中的仲裁者和決策者,是相機(jī)、手機(jī)(包括圖像采集,像素插值的RGB轉(zhuǎn)換和JPEG壓縮),視頻,MPEG-4壓縮的靈魂。
JTAG接口:用于完成處理器的調(diào)試和診斷。
內(nèi)存:內(nèi)存模塊完成多媒體數(shù)據(jù)(包括捕獲靜止圖像,視頻圖像,音頻和視頻壓縮流和解碼幀,參考幀,顯示幀等)和其他數(shù)據(jù)的存儲(chǔ)。
2.2 嵌入式操作系統(tǒng)
后PC時(shí)代,越來(lái)越多的人接觸到一個(gè)新的概念一嵌入式系統(tǒng)。嵌入式產(chǎn)品被發(fā)現(xiàn)在人們的日常生活,從手機(jī)、個(gè)人數(shù)字助理(_PDA)、家用空調(diào)、冰箱、波音飛機(jī)、小型車,甚至巡航導(dǎo)彈武庫(kù)。數(shù)字化時(shí)代的標(biāo)志不再是一個(gè)單一的PC,而是嵌入式系統(tǒng)的不同模式。
嵌入式Linux因?yàn)楸阋?、功能?qiáng)大、易于移植等特點(diǎn)被被廣泛采用,成為新興的力量,在這個(gè)系統(tǒng)中使用的操作系統(tǒng)版本是PATCHVERSIO N21。
3 交叉編譯環(huán)境的建立
交叉編譯環(huán)境的作用是為OMAP5910編譯程序可以識(shí)別的對(duì)象代碼。建立的步驟:解壓、安裝、并設(shè)置環(huán)境變量。
服務(wù)器使用gcc linux交叉編譯器,ARM-LINUX-glibc.tar.bz20到~Linux-glibc.tar.bz2的復(fù)雜設(shè)置根目錄和提取焦油jxv路徑上的交叉編譯環(huán)境/ARM-linwc glibc.tar.bz2此命令在/usr目錄安裝的ANM交叉編譯器的/usr/本地/bin目錄的安裝elfZcoff工具。然后在PATH變量中添加一個(gè)PATH=$PATHausrlarmlbin補(bǔ)充letclprofile文件的位置。這充分建立了良好的ARM-LINUX交叉編譯環(huán)境。
4 內(nèi)核的移植
移植必須先了解源代碼的核心結(jié)構(gòu)。
arch:包含多種架構(gòu)CPU的代碼,如archlarim目錄下面包含的是專門針對(duì)arm的代碼,比如說(shuō)arch/axm/kernellhead-armv.S,我們的目標(biāo)系統(tǒng)的內(nèi)核啟動(dòng)就是從這個(gè)文件里面開(kāi)始運(yùn)行的。
documentation:與內(nèi)核有關(guān)的各種文檔,有一些是比較有用的,像device.txt是各種類型器件的設(shè)備描述文件。
drivers:這個(gè)目錄是各種設(shè)備驅(qū)動(dòng)程序。以后提到的LCD、camera、DSP、USB以及觸摸屏的驅(qū)動(dòng)程序都在該目錄下。
fs:這個(gè)目錄包含各種文件系統(tǒng)。
include:這個(gè)目錄下面是各種頭文件。
init:這個(gè)目錄下主要是linux的主函數(shù)文件~.c文件,linux的主流程就在這個(gè)文件里面實(shí)現(xiàn),main里的start-kernel是內(nèi)核的入口。
ipc:這個(gè)目錄下主要是進(jìn)程間通信的一些實(shí)現(xiàn)代碼。
kernel:這個(gè)目錄下面是內(nèi)核的一些核心文件。
Iib:這個(gè)目錄下是一些通用的庫(kù)函數(shù)。
mm:這個(gè)目錄下主要是內(nèi)存管理的代碼。
net:這個(gè)目錄下包含了liuux對(duì)網(wǎng)絡(luò)的支持,各種協(xié)議的實(shí)現(xiàn)都在該目錄下面。
scripts:這個(gè)目錄下主要是一些腳本文件,通過(guò)與這些文件的交互對(duì)內(nèi)核進(jìn)行配置。
5 設(shè)備驅(qū)動(dòng)程序介紹
設(shè)備驅(qū)動(dòng)程序是內(nèi)核的Linux操作系統(tǒng)和硬件系統(tǒng),應(yīng)用程序屏蔽硬件細(xì)節(jié)之間的接口。在此應(yīng)用程序看來(lái),硬件設(shè)備只是一個(gè)設(shè)備文件,應(yīng)用程序可以在操作普通文件的硬件設(shè)備上操作。Linux操作系統(tǒng),設(shè)備分為字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備三種。
5.1 字符型設(shè)備驅(qū)動(dòng)的框架
嵌入式Linux設(shè)備管理和文件系統(tǒng),再與以文檔的形式存儲(chǔ)在/dev目錄中的各種設(shè)備緊密連接,稱為設(shè)備文件。完成設(shè)備操作,運(yùn)行定期的數(shù)據(jù)文件相同的設(shè)備文件。為了管理這些設(shè)備,系統(tǒng)設(shè)備數(shù)量,每個(gè)設(shè)備被分為主要設(shè)備數(shù)量和設(shè)備數(shù)量。主要設(shè)備用來(lái)區(qū)分不同類型的設(shè)備,從設(shè)備號(hào)用來(lái)區(qū)分同一類型的多個(gè)設(shè)備。
6 總結(jié)
設(shè)計(jì)完成了基于OMAP5910的3G無(wú)線終端的多媒體應(yīng)用平臺(tái)的硬件系統(tǒng)。繪制了硬件系統(tǒng)的原理圖和印制電路板圖;對(duì)各功能模塊進(jìn)行測(cè)試和調(diào)試;完成與CPLD相關(guān)的硬件語(yǔ)言設(shè)計(jì)和調(diào)試,在QuartusII軟件下用VerilogHDL編寫;在掌握l(shuí)inux操作系統(tǒng)及嵌入式操作系統(tǒng)的移植和開(kāi)發(fā)及Linux下的驅(qū)動(dòng)程序開(kāi)發(fā)的基礎(chǔ)上,完成DSP、Camera、觸摸屏等底層驅(qū)動(dòng)程序的開(kāi)發(fā):完成Microwindow下頂層用戶界面和JPEG等應(yīng)用程序的開(kāi)發(fā)。