久久久91-久久久91精品国产一区二区-久久久91精品国产一区二区三区-久久久999国产精品-久久久999久久久精品

ABB
關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
橫河電機(jī)25年9月
工業(yè)智能邊緣計(jì)算2025年會(huì)
2025工業(yè)安全大會(huì)
CAIAC 2025
OICT公益講堂
當(dāng)前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

案例頻道

基于數(shù)字電視系統(tǒng)的嵌入式linux操作系統(tǒng)實(shí)現(xiàn)
  • 企業(yè):控制網(wǎng)     領(lǐng)域:機(jī)器視覺(jué)     行業(yè):水利    
  • 點(diǎn)擊數(shù):3103     發(fā)布時(shí)間:2007-06-16 23:11:31
  • 分享到:
數(shù)字電視系統(tǒng)是多功能多任務(wù)的系統(tǒng),因此必須為該系統(tǒng)配置一個(gè)操作系統(tǒng)。作為一個(gè)開(kāi)源的操作系統(tǒng),嵌入式linux具有很多的優(yōu)點(diǎn)。本文通過(guò)修改嵌入式linux內(nèi)核與交叉開(kāi)發(fā)環(huán)境,并編寫(xiě)設(shè)備驅(qū)動(dòng)程序,配置系統(tǒng)存儲(chǔ)器映射單元,為整個(gè)控制系統(tǒng)提供了良好的運(yùn)行環(huán)境。



1. 簡(jiǎn)介:

    數(shù)字電視是在電視信號(hào)產(chǎn)生后的處理、傳送、接收、記錄等過(guò)程都采用數(shù)字技術(shù)的電視。在設(shè)計(jì)數(shù)字電視系統(tǒng)時(shí),應(yīng)用于傳統(tǒng)模擬電視系統(tǒng)中的硬件,不能滿(mǎn)足音頻、視頻和數(shù)據(jù)處理等功能的需要,因此,數(shù)字電視系統(tǒng)需要更高性能的處理器和大規(guī)模的存儲(chǔ)器。嵌入式操作系統(tǒng)可以有效的管理這些硬件資源。

    本文將嵌入式linux操作系統(tǒng)移植到一個(gè)數(shù)字電視上,使其能夠接收數(shù)字廣播節(jié)目。為了將操作系統(tǒng)移植到數(shù)字電視系統(tǒng)上,需要修改內(nèi)核和交叉開(kāi)發(fā)環(huán)境,重新設(shè)計(jì)基本的設(shè)備驅(qū)動(dòng),配置系統(tǒng)的存儲(chǔ)器映像以便加載內(nèi)核到主存儲(chǔ)器中,并且設(shè)計(jì)一個(gè)總線(xiàn)接口設(shè)備的驅(qū)動(dòng)程序來(lái)控制整個(gè)系統(tǒng)。

2. 數(shù)字電視操作系統(tǒng)

    數(shù)字電視比模擬電視能夠提供更優(yōu)質(zhì)的電視圖像和更多的視頻服務(wù)。它采用改進(jìn)的掃描線(xiàn)和水平清晰度獲得高質(zhì)量的視頻效果,同時(shí)采用AC3或MPEG2壓縮技術(shù)來(lái)獲得高質(zhì)量的音頻效果。數(shù)字電視的節(jié)目不但便于存儲(chǔ),而且還可以通過(guò)眾多的媒介進(jìn)行傳播。因此,數(shù)字電視系統(tǒng)需要處理大量的數(shù)據(jù)。如在EPG(電子節(jié)目指南)服務(wù)中,被提取出來(lái)的數(shù)據(jù)被修改并存儲(chǔ)后作為一個(gè)畫(huà)面打印至OSD(屏幕菜單式調(diào)節(jié))界面,在這個(gè)過(guò)程中需要靠操作系統(tǒng)來(lái)不斷地接收到被篩選、存儲(chǔ)后的信號(hào),同時(shí)產(chǎn)生屏幕畫(huà)面。

    市場(chǎng)上的數(shù)字電視系統(tǒng)包括如pSOSTM (Windriver Inc.)等的商業(yè)操作系統(tǒng),這些系統(tǒng)具有高可靠性和最優(yōu)化的特點(diǎn),但要支付昂貴的版稅。如果在數(shù)字電視系統(tǒng)中使用嵌入式linux操作系統(tǒng),則不用支付版稅費(fèi)用。嵌入式linux操作系統(tǒng)還有其他一些優(yōu)點(diǎn),如有開(kāi)放源代碼的設(shè)備驅(qū)動(dòng)程序及應(yīng)用程序的存在,大大縮短了開(kāi)發(fā)時(shí)間;利用shell、文件系統(tǒng)及模塊功能方便了開(kāi)發(fā)環(huán)境的配置;許多問(wèn)題可以在開(kāi)源社區(qū)得到快速解決等。

3. 商業(yè)數(shù)字電視系統(tǒng)
 
    數(shù)字電視的結(jié)構(gòu)

    數(shù)字電視系統(tǒng)包括數(shù)字處理模塊、視頻處理模塊、射頻模塊、LCD驅(qū)動(dòng)模塊和模擬輸出模塊,其結(jié)構(gòu)如圖1所示。

    數(shù)字處理模塊負(fù)責(zé)控制其它模塊和執(zhí)行程序。它由MCU、SDRAM、FLASH存儲(chǔ)器、UART、I2C總線(xiàn)接口構(gòu)成。視頻處理模塊把從射頻模塊捕獲的數(shù)據(jù)解碼生成視頻、音頻和文本消息。它由一個(gè)信號(hào)處理單元(SPU)和一個(gè)SDRAM構(gòu)成,SDRAM中包含被顯示的數(shù)據(jù)幀。射頻模塊接收數(shù)字廣播信號(hào),并且將該信號(hào)解調(diào)成數(shù)據(jù)流。LCD驅(qū)動(dòng)模塊控制LCD面板。模擬輸出模塊控制視頻-音頻信號(hào)輸出和輸出信號(hào)。數(shù)字處理模塊通過(guò)I2C總線(xiàn),控制射頻模塊、LCD模塊和模擬輸出模塊,同時(shí)通過(guò)DMA控制視頻處理模塊。
 
    硬件構(gòu)成

    在數(shù)字電視系統(tǒng)中,數(shù)字處理模塊的核心是ARM7TDMITM,它不包括MMU(存儲(chǔ)器管理單元)。在數(shù)字電視系統(tǒng)中MCU只支持大端格式[5],存儲(chǔ)器映射由MCU內(nèi)的系統(tǒng)管理寄存器來(lái)配置,在系統(tǒng)運(yùn)行之前,嵌入式linux內(nèi)核運(yùn)行在flashROM中,當(dāng)系統(tǒng)運(yùn)行時(shí),內(nèi)核被拷入ram中。除了ROM和RAM外,外設(shè)也經(jīng)常被使用。這些設(shè)備被映射到一個(gè)線(xiàn)性存儲(chǔ)器映射單元,且可以按同樣的方式尋址。。MCU的中斷控制器包括21個(gè)中斷資源(其中17個(gè)來(lái)自?xún)?nèi)部設(shè)備,4個(gè)來(lái)自外部設(shè)備)。數(shù)字處理模塊中的定時(shí)器是一個(gè)32位的間隔模式定時(shí)器。在系統(tǒng)中用串口設(shè)備如UART(通用異步收發(fā)器)來(lái)打印啟動(dòng)過(guò)程中的消息和程序出錯(cuò)信息,由于射頻模塊、LCD驅(qū)動(dòng)模塊、模擬輸出模塊都是由MCU通過(guò)I2C總線(xiàn)控制,因此,在MCU和I2C串行總線(xiàn)之間需要一個(gè)接口。在這里使用PCF8584 (Philips Inc.)。圖2描述了MCU和I2C總線(xiàn)之間的連接。



圖2  MCU和I2C總線(xiàn)之間的連接

4.linux系統(tǒng)移植 

    在這一部分中,我們將解釋linux操作系統(tǒng)的移植順序。包括修改內(nèi)核初始化代碼和編寫(xiě)設(shè)備驅(qū)動(dòng)程序。

    4.1重建內(nèi)核初始化代碼

    為了將linux內(nèi)核加載到嵌入式系統(tǒng)中,有必要修改與硬件相關(guān)的內(nèi)核初始化代碼。這個(gè)過(guò)程包括設(shè)置存儲(chǔ)器映射以便加載內(nèi)核映像,以及為支持內(nèi)核的運(yùn)行而修改設(shè)備驅(qū)動(dòng)程序。

    4.1.1設(shè)置存儲(chǔ)器映射

    Linux內(nèi)核映像是一種壓縮文件,存放在flash存儲(chǔ)器中,執(zhí)行時(shí)被拷貝到SDRAM中并解壓。圖3描述了內(nèi)存映像的加載順序。


    系統(tǒng)復(fù)位時(shí),CPU只能接受flash ROM空間的代碼,同時(shí)執(zhí)行位于flash ROM底層的bootloader,它負(fù)責(zé)從主機(jī)端下載代碼并且將代碼存儲(chǔ)到flashROM中。

    1)bootloader將主機(jī)的linux內(nèi)核拷貝到數(shù)字處理模塊上的SDRAM中。

    2)SDRAM中被下載的linux內(nèi)核映像被存儲(chǔ)在flash ROM中位于bootloader頂層的空間中。

    3)系統(tǒng)初始化,同時(shí),bootloader調(diào)用linux映像內(nèi)的一段執(zhí)行代碼(head.o),將全部flash ROM空間中的內(nèi)容拷貝到SDRAM中。

    4)CPU利用系統(tǒng)管理寄存器,將flash ROM中的初始地址空間與SDRAM的初始地址空間相交換。
當(dāng)flash ROM中的映像被加載到SDRAM之后,無(wú)需改變程序計(jì)數(shù)器就可以執(zhí)行代碼(head.o)。圖4中顯示了最終的存儲(chǔ)器映射。

    拷貝到SDRAM中的linux映像可解壓執(zhí)行,為了完成釋放功能,需要一些存儲(chǔ)器空間,例如符號(hào)開(kāi)始段、用戶(hù)堆棧、分配的內(nèi)存等。在這些空間中,一個(gè)壓縮的linux內(nèi)核映像被解壓工具釋放出來(lái),被釋放的代碼位于被分配的內(nèi)存空間的下一地址。

    4.1.2 內(nèi)核需要的設(shè)備

    內(nèi)核需要的基本設(shè)備包括中斷控制器、定時(shí)器和控制臺(tái)設(shè)備。這些設(shè)備被映像到MCU的內(nèi)部寄存器中,通過(guò)修改內(nèi)部寄存器而提供必要的功能。

    4.2設(shè)備驅(qū)動(dòng)的設(shè)計(jì)

    數(shù)字電視系統(tǒng)包括視頻處理設(shè)備和模擬輸出設(shè)備以及內(nèi)核所必須的設(shè)備,本文為I2C總線(xiàn)接口(PCF8584)設(shè)計(jì)一個(gè)設(shè)備驅(qū)動(dòng)。PCF8584設(shè)備驅(qū)動(dòng)包括接口模塊、內(nèi)核模塊、算法模塊、適配器模塊,如圖5所示。

    接口模塊提供設(shè)備驅(qū)動(dòng)程序與應(yīng)用程序之間的接口,定義設(shè)備文件操作(open, read, write, ioctl,release)以及初始化設(shè)備文件(/dev/i2c0);內(nèi)核模塊用來(lái)增加或移除適配器、定義I2C總線(xiàn)的功能以及初始化包含系統(tǒng)信息的文件系統(tǒng)(/proc);算法模塊用來(lái)初始化PCF8584設(shè)備以及定義PCF8584的函數(shù)(i2c_start,i2c_stop(), wait_for_pin());適配器模塊通過(guò)被映射到MCU的存儲(chǔ)器地址將數(shù)據(jù)傳送到MCU。

    為了驅(qū)動(dòng)PCF8584接口設(shè)備,需要對(duì)模塊進(jìn)行初始化。在通常的linux系統(tǒng)中,設(shè)備驅(qū)動(dòng)在運(yùn)行時(shí)載入和初始化,而在嵌入式linux系統(tǒng)中,設(shè)備驅(qū)動(dòng)將在啟動(dòng)階段被加載和初始化。4個(gè)模塊的初始化程序被存儲(chǔ)在“.init”段的“_init”處,由“do_initcalls()”函數(shù)在啟動(dòng)時(shí)調(diào)用執(zhí)行。控制數(shù)據(jù)從接口模塊開(kāi)始,依次經(jīng)內(nèi)核模塊、算法模塊、適配器模塊傳送。接口模塊接收應(yīng)用程序的請(qǐng)求(open, write, read, ioctl),調(diào)用內(nèi)核模塊的接口程序(master_send(), master_receive(),transfer()),同時(shí)傳遞參數(shù)。內(nèi)核模塊將從地址、標(biāo)記位、信息長(zhǎng)度等數(shù)據(jù)傳送到算法模塊。算法模塊檢查I2C總線(xiàn)的狀態(tài)和從地址,設(shè)置PCF8584的控制寄存器。最后,適配器模塊從被映射到外部總線(xiàn)的地址空間中讀寫(xiě)數(shù)據(jù)。

5.系統(tǒng)構(gòu)建

    為了移植linux操作系統(tǒng),我們首先在主機(jī)端安裝一個(gè)交叉開(kāi)發(fā)環(huán)境,然后在供測(cè)試的目標(biāo)板上安裝一個(gè)測(cè)試環(huán)境,測(cè)試好后,再移植到數(shù)字電視系統(tǒng)上。

    5.1安裝交叉開(kāi)發(fā)環(huán)境

    在裁減和定制Linux,運(yùn)用于你的嵌入式系統(tǒng)之前,由于一般嵌入式開(kāi)發(fā)系統(tǒng)存儲(chǔ)大小有限,通常需要在強(qiáng)大的pc機(jī)上建立一個(gè)用于目標(biāo)機(jī)的交叉編譯環(huán)境。這是一套編譯器、連接器和libc庫(kù)等組成的開(kāi)發(fā)環(huán)境。圖6描述了交叉開(kāi)發(fā)環(huán)境的安裝過(guò)程。

    要制作二進(jìn)制linux映像文件,首先應(yīng)制作二進(jìn)制連接器、匯編器和其它目標(biāo)工具。然后,用 make menuconfig配置內(nèi)核,此時(shí)在內(nèi)核目錄中將生成include/linux/version.h 和 include/linux/autoconf.h 文件。注意,由于數(shù)字電視系統(tǒng)的MCU只支持大端存儲(chǔ)器格式,所以,應(yīng)在內(nèi)核庫(kù)中做相應(yīng)修改。第三步是制作交叉編譯器(gcc)和c庫(kù)(glibc)。由于兩者是相互依賴(lài)的關(guān)系,可以先制作一個(gè)不帶glibc的gcc,然后用交叉編譯器創(chuàng)建一個(gè)glibc,再重新編譯這個(gè)帶glibc的gcc。第四步,由于移植好的linux運(yùn)行在只讀存儲(chǔ)器中,所以需要安裝用于制作二進(jìn)制文件系統(tǒng)映像的工具(genromfs),和一個(gè)用于將elf格式(通用文件格式)轉(zhuǎn)換為flt格式(扁平格式)的工具。

    5.2開(kāi)發(fā)環(huán)境

    系統(tǒng)開(kāi)發(fā)環(huán)境包括測(cè)試板的SNDS100TM(Samsung)、用于遠(yuǎn)程調(diào)試的JEENITM (Jtag EmbeddedICE Ethernet Interface)、數(shù)字電視機(jī)主板等。表1列出了開(kāi)發(fā)環(huán)境的各個(gè)部分。
表1 開(kāi)發(fā)環(huán)境
 組成部分 功能
測(cè)試板
 三星 s3c4510B (ARM 7TDMI),16M字節(jié)的SDRAM, 1M字節(jié)的flashROM, LED, RJ45連接器. 網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)板

數(shù)字電視主板 三星s3c4500(ARM 7TDMI),16M字節(jié)的SDRAM, 8M字節(jié)的flashROM, pcf8584, SPU (LG electronics),32M字節(jié)SDRAM. 數(shù)字處理模塊
JEENITM EPI, 兩個(gè)硬件斷點(diǎn),以太網(wǎng)主機(jī)接口,內(nèi)部的ARM 710A高速緩沖存儲(chǔ)器 遠(yuǎn)端調(diào)試環(huán)境
軟件
 gcc-2.95.3, glibc-2.1.3, binutils-2.12, genromfs-0.5.1, elf2flt, gdb-5.0, ADS(ARMTM Developer Suite),evaluation ver. 1.1 交叉開(kāi)發(fā)和調(diào)試的工具

    在主機(jī)中制作一個(gè)二進(jìn)制的linux內(nèi)核映像,將其通過(guò)串口線(xiàn)傳送到開(kāi)發(fā)板上。利用JEENI來(lái)安裝遠(yuǎn)端調(diào)試環(huán)境。由于flash ROM中的boot塊被保護(hù),不能修改,因此我們需要將它與數(shù)字電視主板分開(kāi),在flash ROM中燒入一個(gè)bootloader后再安裝到主板上。

    通過(guò)這一實(shí)驗(yàn),可以通過(guò)PCF8584控制音頻輸出。也就是說(shuō),I2C總線(xiàn)的從設(shè)備將數(shù)字信號(hào)轉(zhuǎn)換為音頻輸出信號(hào)。最終,我們可以聽(tīng)到蜂鳴聲,也可以通過(guò)數(shù)字示波器來(lái)檢測(cè)I2C總線(xiàn)信號(hào)。

參考文獻(xiàn)

[1] Korea Broadcasting System 2001th annual report-data broadcasting

http://tri.kbs.co.kr/pdf/publish/01/6.pdf
.

[2] Digital Video Broadcasting (DVB): Specification for Service Information (SI) in DVB systems, ETSI EN 300 468 V1.5.1.

[3] ATSC Digital Television Standard, Rev.B, ATSC Standard A/53B with Amendment 1.

[4] 田澤,于敦山,盛世敏.ARM SoC體系結(jié)構(gòu).北京:北京航空航天大學(xué)出版社,2003

[5] s3c4510B用戶(hù)手冊(cè),
http://www.samsung.com/Products/Semiconductor/SystemLSI/Networks/Personal/NTASSP/CommunicationProcessor/S3C4510B/um_s3c4510b_rev1.pdf

[6] Embedded Linux/Microcontroller Project,
http://www.uclinux.org/description.

[7] Sang-Pil Moon, Joo-Won Kim, Kuk-Ho Bae, Jae-Cheon Lee,Dae-Wha Seo. Embedded Linux Implementation on a Commercial Digital TV System.Consumer Electronics, IEEE Transactions on Volume 49,Issue 4, Nov. 2003

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線(xiàn)反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話(huà):
郵件:
主站蜘蛛池模板: 一级特黄网站| 国产自愉自愉全免费高清| 久久精品综合免费观看| 在线观看一区二区三区四区| 日韩在线 | 中文| 亚洲精品国产经典一区二区 | 亚洲精品老司机福利在线播放| 尤物精品在线观看| 亚洲国产激情在线一区| 欧美一区二区三区在线| 成人免费xxx色视频| 美女久久久久久久久久久| 亚洲国产成人久久综合一区| 99精选视频| 久久99热国产这有精品| 日韩欧美三级视频| 亚洲精品99久久久久中文字幕| 免费的黄视频| 欧美精品片| 麻豆传媒免费视频| 国产精彩视频在线观看免费蜜芽| 久久免费视频精品| 青草国产| 99热在线获取最新地址| 久久福利一区二区| 日韩视频在线观看中字| 亚洲天堂一区二区三区四区| 成人免费国产欧美日韩你懂的| 欧美一级毛片无遮| 欧美成人手机在线视频| 国产一级爱片在线播放| 黄色一级片免费网站| 精品一区二区影院在线| 三级毛片基地| 亚洲国产精品乱码在线观看97| 91日韩视频| 巨大巨粗巨长 黑人长吊视频| 日韩高清特级特黄毛片| 日韩精品中文字幕在线| 手机在线一区二区三区| 可以看的毛片|