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