【摘要】本文采用嵌入式Linux操作系統(tǒng)技術(shù),將數(shù)字廣播(DAB:Digital Audio Broadcasting)技術(shù)中的TPEG業(yè)務(wù)移植到嵌入式系統(tǒng)中并將其應(yīng)用在jpg圖片的接收、顯示功能中。裁剪了最小操作系統(tǒng),優(yōu)化了jpg圖片的解碼流程,使圖片顯示更流暢,接收的速度更快,信息種類更多,信息量更大,更新顯示時間可以縮短至10秒以內(nèi)。
【關(guān)鍵詞】PEG;嵌入式;移植
1.引言
DAB是在調(diào)幅AM和調(diào)頻FM之后的第三代無線廣播技術(shù),它可以傳輸音頻節(jié)目,同時還可以傳輸文字信息、圖片信息、計算機程序、網(wǎng)頁等任何形式的數(shù)據(jù)內(nèi)容。TPEG(Transport Protocol Expert Group)傳輸協(xié)議專家組數(shù)據(jù)業(yè)務(wù),能夠傳輸?shù)南⒎浅V泛,如電子地圖、旅游消息、天氣預(yù)報、交通路況、新聞消息和廣告宣傳等豐富多彩的節(jié)目內(nèi)容。
目前,實驗室開發(fā)的TPEG接收終端性能不盡人意,更新一張jpg圖片平均需要40秒鐘的時間,用于對實時性要求不高的數(shù)據(jù)業(yè)務(wù)傳輸能發(fā)揮應(yīng)有的功能,但是在更新時間要求比較苛刻,短時間內(nèi)需要接收大量的圖片信息的時候,該款接收終端就顯得力不從心了。
新設(shè)計的這款基于嵌入式arm-Linux構(gòu)架的接收終端,就是為解決短時間內(nèi)接收大量圖片數(shù)據(jù)業(yè)務(wù)要求而開發(fā)研制的一種便攜式接收終端,它具有操作簡單、反應(yīng)快、便于攜帶、即插即用等特點。采用實驗室成熟的信道解碼技術(shù),結(jié)合高速的arm11處理器、高效的Linux系統(tǒng),從而成功的解決了短時間內(nèi)接收大量信息這個瓶頸問題,不僅完美地解決接收數(shù)據(jù)的效率問題,同時也為后面的其他功能(比如音視頻節(jié)目)的研發(fā)提供了良好的平臺。
2.TPEG便攜式接收終端概述
本實驗室設(shè)計的TPEG數(shù)據(jù)業(yè)務(wù)接收終端主要
由射頻接收模塊、arm核心模塊、VGA顯示模塊組成。本文主要研究在TPEG便攜式接收終端中移植arm-Linux操作系統(tǒng)、優(yōu)化TPEG解碼流程,并使用解碼效率更高的jpg硬件解碼,實現(xiàn)短時間內(nèi)更新大量圖片信息的功能,經(jīng)過測試該款TPEG便攜式接收終端,使用TPEG便攜式接收終端更新一張圖片平均需要時間10秒鐘左右,短時間內(nèi)接收大量數(shù)據(jù)的能力大大提高。從而TPEG便攜式接收終端能在大量圖片及時性接收的場合下應(yīng)用和工作。
圖1 TPEG便攜式接收終端框架結(jié)構(gòu)
在圖1所示的終端框架結(jié)構(gòu)中,TPEG便攜式接收終端在核心控制模塊的控制下完成如下工作:
(1)配置射頻接收模塊基帶寄存器、接收頻率、數(shù)據(jù)碼率。
(2)加載SPI數(shù)據(jù)通信驅(qū)動、并配置驅(qū)動的運行模式、讀寫數(shù)據(jù)的碼率和最大傳輸速度和頻率。
(3)打開VGA顯示模塊的設(shè)備/dev/fb0,并初始化該顯示設(shè)備。
(4)核心模塊從射頻模塊中讀取接收到了的TPEG數(shù)據(jù)包并傳送給S3C6410主芯片進行硬解碼得到可以用于顯示的rgb數(shù)據(jù)。
(5)核心模塊控制VGA顯示模塊將解碼得到的rgb數(shù)據(jù)顯示在lcd顯示器、電視機等設(shè)備上。
本文意在將TPEG數(shù)據(jù)業(yè)務(wù)移植在便攜式嵌入式接收終端上,并加一應(yīng)用,如傳送大批量的圖片信息用于通知布告、天氣預(yù)報、商業(yè)廣告等。
3.Linux嵌入式系統(tǒng)的移植
3.1 嵌入式硬件環(huán)境
嵌入式硬件核心采用的是現(xiàn)在各大公司高校廣泛研發(fā)使用的ARM11嵌入式核心板,該嵌入式核心板的主處理器芯片是由三星公司生產(chǎn)的S3C6410芯片。該CPU基于ARM1176JZF-S核設(shè)計,內(nèi)部集成了強大的多媒體處理單元。
圖2 核心板的截圖
3.2 arm-Linux系統(tǒng)的構(gòu)建
在TPEG便攜式接收終端設(shè)計中,本文采用了Linux操作系統(tǒng),Linux是一個領(lǐng)先的操作系統(tǒng),是一種自由和開放源碼的類Unix操作系統(tǒng),因此它是一種可以無償使用的操作系統(tǒng)。Linux嵌入式系統(tǒng)的移植工作如下:
第一步:做好準(zhǔn)備工作,在臺式機上搭建一個Linux系統(tǒng)環(huán)境,本文采用的是Fedora9的操作系統(tǒng),該版本的操作系統(tǒng)廣泛應(yīng)用于嵌入式開發(fā),功能完善,bug較少。
第二步:建立交叉編譯環(huán)境,在Linux平臺下,要為開發(fā)板編譯內(nèi)核、圖形界面Qtopia、啟動引導(dǎo)boot loader,還有其他一些應(yīng)用程序,均需要交叉編譯工具鏈,本文使用的是arm-linux-gcc4.5.1,采用的是armv6指令集,支持硬浮點運算。
第三步:配置編譯支持NAND啟動的U- boot,根據(jù)不同的硬件環(huán)境需要使用不同的U- boot配置項,本文使用的硬件環(huán)境是256M的內(nèi)存和nand型flash,因此本文在編譯時調(diào)用config_nand-ram256的配置文件。
第四步:裁剪編譯內(nèi)核,前面幾步都是為這一步做的準(zhǔn)備,本文在這里采用的是linux-2.6.38版本的內(nèi)核。執(zhí)行命令#make menuconfig進行文件配置,除基本的核心組建外,根據(jù)自己的需要配置上具有個性化的Linux內(nèi)核,比如本文需要SPI驅(qū)動、串口設(shè)備驅(qū)動等,而不需要的網(wǎng)絡(luò)驅(qū)動、網(wǎng)絡(luò)服務(wù)等就可以不配置進內(nèi)核中。
第五步:燒寫Linux系統(tǒng),該款嵌入式核心板不僅支持USB下載功能的U-boot,還支持操作更為人性化的superboot,本文在支持典型FriendlyARM.ini配置文件中配置引導(dǎo)啟動文件Bootloader、個性化內(nèi)核zImage、控制臺參數(shù)ttySAC0,115200和UBIFS文件系統(tǒng)。
4.TPEG在嵌入式系統(tǒng)上的應(yīng)用
TPEG便攜式接收終端射頻部分將接收到的DAB信號在核心基帶芯片中進行信道解碼,解碼后得到的就是TPEG數(shù)據(jù)流。TPEG數(shù)據(jù)流是由一幀一幀的TPEG數(shù)據(jù)組成的,要順利實現(xiàn)TPEG數(shù)據(jù)解碼,應(yīng)先了解TPEG的幀結(jié)構(gòu)。TPEG幀結(jié)構(gòu)分為四層,分別是傳輸層,業(yè)務(wù)層,業(yè)務(wù)分量復(fù)合層和業(yè)務(wù)分量層,每一層都有CRC校驗,以此保證TPEG數(shù)據(jù)的可靠性。
圖3 TPEG數(shù)據(jù)幀結(jié)構(gòu)
TPEG傳輸層由同步字(Sync Word),字段長度信息(Field Length),CRC,幀類型(Frame Type)和業(yè)務(wù)幀構(gòu)成。
TPEG業(yè)務(wù)層主要存放TPEG業(yè)務(wù)的說明,例如該TPEG業(yè)務(wù)是否加密,該TPEG業(yè)務(wù)的服務(wù)提供商等信息。
TPEG業(yè)務(wù)分量復(fù)合層由不同的TPEG業(yè)務(wù)分量組成,TPEG數(shù)據(jù)幀能一次傳輸一個或多個TPEG應(yīng)用服務(wù),通常一幀TPEG數(shù)據(jù)存放一個TPEG應(yīng)用服務(wù)。
TPEG業(yè)務(wù)分量層主要傳輸TPEG內(nèi)容,例如文字信息和圖片信息[3]。
TPEG數(shù)據(jù)幀的解碼技術(shù)已經(jīng)成熟,工作重點在圖片硬件解碼流程中,S3C6410芯片具有硬件編解碼的能力,本文使用該芯片實現(xiàn)圖像的加速解碼。通常在嵌入式設(shè)備中解碼一幅高分辨率的照片需要較長的時間,而采用S3C610的圖像硬解碼,大大縮短解碼所需時間,從而可以流暢地進行圖片顯示。
圖4 硬解碼流程
在圖4中程序進行:
步驟1:首先調(diào)用SspSipJPEGDecodeInit進行初始化,會返回一個句柄(整型)。
步驟2:調(diào)用SspSipJPEGGetDecodeInBuf獲得輸入緩沖區(qū)的地址,該地址用于存放將要進行解碼的JPEG數(shù)據(jù),可直接讀取JPEG圖像文件的數(shù)據(jù),然后memcpy進這個緩沖區(qū)中即可。SspSipJPEGGetDecodeInBuf需要傳入一個參數(shù),指定要分配多少空間,一般指定為JPEG文件的大小。
步驟3:解碼之前,可調(diào)用SspSipJPEG SetConfig進行一些設(shè)置。
步驟4:然后調(diào)用SspSipJPEGDecodeExe進行解碼。
步驟5:解碼成功后,調(diào)用SspSipJPEGGet DecodeOutBuf得到輸出緩沖區(qū)的地址,緩沖區(qū)中存放著可直接用于顯示的圖像數(shù)據(jù),其格式是在編碼時確定的,比較常見的是YCbCr 4:2:2,因此,要顯示在屏幕上,還需要轉(zhuǎn)換成RGB565的格式。
步驟6:最后,調(diào)用SspSipJPEGEncode DeInit釋放資源。
5.測試與總結(jié)
本文設(shè)計的TPEG便攜式接收終端,經(jīng)過多次長時間的測試表明,該設(shè)計能實現(xiàn)在短時間內(nèi)接收大量的圖片信息并流暢地顯示在LCD液晶顯示器或電視機上。
該便攜式接收終端也可用來接收并播放交通信息、旅游信息和商場廣告等,實時傳輸性較強、接收信息量大,具有一定的社會意義和應(yīng)用價值。
參考文獻
[1]Transport Protocol Experts Group(TPEG)TPEG specifications-Part 1:Introduction,Numbering and Versions TPEG-INV/002[S].EBU/TPEG BPN027-1.2002-Oct-29.
[2]賀小盼,陸明瑩,韓川.DAB數(shù)據(jù)業(yè)務(wù)TPEG解碼的軟件實現(xiàn)[J].電聲技術(shù),2012,3.
[3]王國裕,周進,張紅升.數(shù)字廣播接收終端TPEG解碼功能的軟件實現(xiàn)[J].電子世界,2013,7.
[4]王國裕,韓川,賀小盼.數(shù)字音頻廣播TPEG-POI業(yè)務(wù)的研究和實現(xiàn)[J].廣東通信技術(shù),2012,1.
[5]陸明瑩,全明,王國裕,杜一江.“數(shù)字音頻廣播Slide Show業(yè)務(wù)的研究與實現(xiàn)[J].電子質(zhì)量,2012,3(300).