當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于W90N740的MEPG-2數(shù)字視頻編碼機(jī)

摘要:目前MPEG-2 over IP產(chǎn)品因其圖像質(zhì)量高,并采用以太網(wǎng)傳輸技術(shù)而在軌道交通、高速公路監(jiān)控領(lǐng)域中得到廣泛的應(yīng)用。本文介紹了一種基于W90N740微處理器的MPEG-2編碼機(jī),并從硬件和軟件兩個方面闡述了如何實現(xiàn)視頻圖像的傳輸和控制。 
關(guān)鍵詞:MPEG-2  W90N740  FPGA  uClinux

    隨著微電子技術(shù)和以太網(wǎng)技術(shù)的發(fā)展,MPEG-2產(chǎn)品正逐步從傳統(tǒng)的模擬傳輸,向采用IP/ATM傳輸發(fā)展。MPEG-2 over IP是采用以太網(wǎng)傳輸技術(shù),將MPEG-2視頻傳輸流(TS流)通過以太網(wǎng)進(jìn)行傳輸?shù)漠a(chǎn)品。

    如何更好將MPEG-2和以太網(wǎng)傳輸控制實現(xiàn)有機(jī)地結(jié)合起來,是研究實現(xiàn)MPEG-2 over IP的重點。本文圍繞著這個重點而展開。

1.系統(tǒng)工作原理
    典型的MPEG-2 over IP結(jié)構(gòu)如下圖1所示。MPEG-2 over IP主要包括MPEG-2編碼模塊和通信控制模塊。MPEG-2編碼模塊實現(xiàn)對模擬視音頻的PMEG-2壓縮編碼;通信控制模塊實現(xiàn)對MPEG-2編碼模塊的控制、MPEG-2 TS流的采集和在以太網(wǎng)上的傳輸。 

2.編碼機(jī)系統(tǒng)的實現(xiàn)
    根據(jù)典型的MPEG-2 over IP產(chǎn)品結(jié)構(gòu),將編碼機(jī)硬件體系設(shè)計分為MPEG-2編碼模塊和通信控制模塊兩個部分。

2.1.MPEG-2編碼模塊
2.1.1.MPEG-2編碼模塊的構(gòu)成
    MPEG-2編碼模塊采用日本富士通公司的MPEG-2編碼處理芯片MB86391、SAA7114視頻處理芯片、SC5340音頻處理芯片和Atmel公司的AVR 8位微處理器Atmega16等構(gòu)成。其原理圖如下圖2所示。


2.1.2.MB86391介紹
    MB86391的內(nèi)部框圖如圖3所示。它是在單一芯片中集合了音頻/視頻編碼。編碼使用富士通開發(fā)的高性能MPEG-2壓縮運(yùn)算法則。集合了內(nèi)部DPSRClite CPU處理的硬件和軟件。

    支持ISO/IEC 11172(MPEG-1)、ISO/IEC 13818(MPEG-2) 標(biāo)準(zhǔn)和MPEG-1音頻層-1/2編碼功能( ISO/IEC11172-3)。

    支持NTSC和PAL制式的視頻格式。視頻編碼最大輸出碼率可達(dá)20Mbps。視頻輸入接口采用8位并行接口,音頻采用串行接口。支持并行或者串行的主機(jī)接口。在串行主機(jī)接口模式下,其配置和執(zhí)行MPEG-2算法的firmware(固件)可通過串行主機(jī)接口下載。

2.1.3.MPEG-2編碼模塊的工作原理
    模擬視頻和音頻通過SAA7114視頻處理芯片、SC5340音頻處理芯片進(jìn)行模數(shù)轉(zhuǎn)換和處理,輸出給MPEG-2編碼芯片MB86391,MB86391芯片按MPEG-2視頻格式將數(shù)字視音頻作壓縮編碼處理,最后從MB86391的流輸出接口輸出。

    ATMEL公司的AVR 8位處理器ATmega16為編碼模塊的CPU,它通過串行總線來控制MB86391和為其下載firmware(MB86391的微碼,用于執(zhí)行編碼算法等);ATmega16通過I2C總線與SAA7114和SC5340相連接,完成對前端視音頻的控制調(diào)節(jié)。

    同時ATmega16也肩負(fù)著MPEG-2編碼模塊與通信控制模塊的通信控制任務(wù),它通過SPI總線與通信控制模塊連接。

    ATmega16在編碼模塊中主要為通信控制模塊和MB86391、SAA7114以及SC5340提供通信控制的橋梁。

2.2.通信控制模塊
    通信控制模塊是MPEG-2編碼機(jī)功能的核心。它主要實現(xiàn)對MPEG-2編碼模塊的控制和傳輸MPEG-2視頻數(shù)據(jù)流到以太網(wǎng)上的功能。通信控制模塊由Winbond公司的32位ARMTDMI核的微處理器W90N740、Lattice公司的FPGA  LFXP3C-5T組成。其原理圖如圖4所示。

                圖4:通信控制模塊框圖

2.2.1.W90N740的特點
    W90N740是臺灣華邦電子公司的一款基于ARM7TDMI核的32位微處理器,內(nèi)部功能框圖如圖5所示。

    該處理主要針對路由器網(wǎng)絡(luò)產(chǎn)品而設(shè)計,采用ARM7TDMI核,最高工作頻率可達(dá)80MHz。提供2個10/100M的以太MAC(媒體訪問控制器)、EBI(外部總線接口)總線、4個獨(dú)立可編程的外部中斷源、2個24位的定時計數(shù)器和一個24位的看門狗定時器,以及21個可編程通用I/O和一個UART接口。

    內(nèi)置的兩個以太網(wǎng)MAC控制器,每個MAC都有支持IEEE802.3以太網(wǎng)協(xié)以引擎和含有DMA控制器和收/發(fā)FIFO,支持媒質(zhì)獨(dú)立接口MII(Media Inde-pendent Interface)精簡媒質(zhì)獨(dú)立接口RMII(Reduced MII)。以太網(wǎng)MAC也支持長幀(長度大于1518字節(jié))和短幀(長度小于64字節(jié))兩種幀結(jié)構(gòu)。

    EBI控制器支持訪問片外SDRAM、RAM/SRAM、ROM/FLASH和I/O設(shè)備。提供支持達(dá)32M字節(jié)的ROM空間、2個最大為32M字節(jié)的SDRAM和4個32M的I/O設(shè)備空間。

    4個可編程的外部中斷源,可獨(dú)立配置電平觸發(fā)或者邊沿觸發(fā)方式。

    W90N740的特點非常適合于在MPEG-2 over IP產(chǎn)品中擔(dān)當(dāng)通信控制模塊的處理器。

2.2.2.MPEG-2編碼模塊的通信/控制
    MPEG-2編碼模塊和通信控制模塊的通信/控制設(shè)計為SPI接口。MPEG-2編碼模塊為從SPI,通信控制模塊為主SPI。W90N740本身沒有SPI總線接口。設(shè)計時,采用W90N740的通用I/O來模擬一個SPI的主控制器。

    同時,為了保證MPEG-2編碼模塊和通信控制模塊的同步,通行控制模塊為編碼模塊提供一個由W90N740的通用I/O控制的復(fù)位引腳,在通信控制模塊復(fù)位的情況下,讓編碼模塊也能復(fù)位。

2.2.3.TS流的采集
    在編碼機(jī)系統(tǒng)中,TS流的采集是一個重點。設(shè)計時使用FPGA設(shè)計異步FIFO將MB86391的輸出數(shù)據(jù)流和W90N740的EBI總線連接起來,實現(xiàn)TS流的采集。
其FPGA中的TS流采集部分如圖6所示。

    圖6的左端是異步FIOF的輸入控制部分。它與MPEG-2編碼模塊的MB86391的圖像數(shù)據(jù)流接口相連。MB86391工作在27M同步并行模式。其輸出壓縮編碼數(shù)據(jù)流的時序如圖7所示:BCLK為同步數(shù)據(jù)時鐘,頻率是圖像數(shù)據(jù)流的碼率的1/8;STEN是圖像數(shù)據(jù)流數(shù)據(jù)有效指示;TSPSSUNC是圖像數(shù)據(jù)流同步指示,當(dāng)一個TS流包(188字節(jié))的第一個字節(jié)是0x47時,它為高電平;STDATA是圖像數(shù)據(jù)流的數(shù)據(jù)。它們分別與圖6的TS clk、TS vaild、TS sync、TS D[7..0]相連,8位并行的TS流進(jìn)過“8bit to 32bit”部分轉(zhuǎn)換輸入到32位寬度的異步FIFO進(jìn)行緩存。

    圖6的右端是通信控制模塊獲取TS流的部分,它占用W90N740的EBI I/O設(shè)備接口bank0資源。EBI I/O設(shè)備接口bank0配置在32位寬度,以提高W90N740的采集數(shù)據(jù)的能力。當(dāng)FIFO中的數(shù)據(jù)緩存到設(shè)定的臨界值后,F(xiàn)IFO的flag信號將變?yōu)楦唠娖健Mㄟ^FIFO的flag信號產(chǎn)生送給W90N740的中斷申請nIRQ0,通知W90N740圖像數(shù)據(jù)準(zhǔn)備好了。

    W90N740的EBI I/O總線時序如圖8所示。利用W90N740的系統(tǒng)時鐘MCLK作為異步FIFO的讀時鐘rd clk;通過片選信號nECS0和讀選通信號nOE來產(chǎn)生異步FIFO的讀允許rd en。

    同時,圖6中“控制部分”除了根據(jù)W90N740的EBI I/O設(shè)備時序產(chǎn)生FIFO的讀時序外,它還用W90N740的EBI I/O設(shè)備接口和TS vaild信號來產(chǎn)生FIFO的復(fù)位,reset信號。 

    采用異步FIFO采集MPEG-2 TS流的設(shè)計,降低了圖像數(shù)據(jù)采集占用CPU的時間。為提高整個編碼機(jī)的性新能起到非常大的作用。

2.3.編碼機(jī)的軟件結(jié)構(gòu)
2.3.1.存儲器分配
    大多數(shù)的嵌入式系統(tǒng),采用Flash或者ROM等存儲器來存儲系統(tǒng)的軟件,為了提高系統(tǒng)的運(yùn)行速度,一般將程序軟件放入SDRAM、SRAM或者RAM等快速存儲器中運(yùn)行。

    在我們設(shè)計編碼機(jī)的也采用上面的方式來存儲和運(yùn)行程序代碼。為了降低對ROM存儲器的容量要求,將程序代碼采用壓縮方式都放置在16Mbit的FLAS中。其分配使用如表1所示。

2.3.2.軟件設(shè)計
    Linux操作系統(tǒng)是源代碼開放的多任務(wù)操作系統(tǒng),它具有完善的TCP/IP協(xié)議棧,支持多任務(wù),成為軟件設(shè)計的主選對象。

    uClinux是針對沒有MMU(內(nèi)存管理單元)的微處理器而設(shè)計的Linux操作系統(tǒng)。它繼承了Linux的絕大多功能,支持進(jìn)程、線程,TCP/IP協(xié)議棧功能強(qiáng)大。因此,軟件設(shè)計選用uClinux操作系統(tǒng)。

    在uClinux操作系統(tǒng)下,將軟件分為驅(qū)動和上層應(yīng)用兩個部分來設(shè)計。驅(qū)動負(fù)責(zé)提供上層應(yīng)用程序訪問底層硬件的接口。應(yīng)用軟件完成編碼機(jī)的功能。

    在uClinux中進(jìn)程和線程都是并行運(yùn)行的,設(shè)計時軟件按功能劃分為模塊,設(shè)計為進(jìn)城或者線程??紤]到進(jìn)程占用內(nèi)存資源漸多,而線程占用內(nèi)存資源少,因此、系統(tǒng)軟件結(jié)構(gòu)如圖9所示應(yīng)用軟件采用進(jìn)程和線程來設(shè)計。應(yīng)用軟件功能模塊如圖9所示。

                  圖9:編碼機(jī)軟件結(jié)構(gòu)   

    劃分進(jìn)程和線程是軟件設(shè)計的一個關(guān)鍵。分析Linux進(jìn)程和線程的特點,結(jié)合編碼機(jī)需要用軟件實現(xiàn)的功能,將初始化工作(如MPEG-2編碼模塊的初始化、以太網(wǎng)參數(shù)初始化)、條件工作功能(如編碼機(jī)參數(shù)配置、遠(yuǎn)程升級)設(shè)計為輔助進(jìn)程,這些進(jìn)程的運(yùn)行的時間短,只有在系統(tǒng)復(fù)位初始化或者條件控制下才運(yùn)行,并且會退出運(yùn)行。

    主進(jìn)程將是一個永遠(yuǎn)運(yùn)行的進(jìn)程,在這個進(jìn)程中將實現(xiàn)編碼的主要功能,如圖像數(shù)據(jù)流在網(wǎng)絡(luò)的傳輸、遠(yuǎn)程控制、用于與其它設(shè)備通信的RS-485/RS-232低速數(shù)據(jù)傳輸、編碼機(jī)的狀態(tài)監(jiān)測等。這些功能之間相互有著聯(lián)系,如遠(yuǎn)程控制可以查詢編碼機(jī)的狀態(tài),而編碼機(jī)的狀態(tài)隨時由編碼機(jī)的監(jiān)測更新。因此,將這些功能用線程來實現(xiàn),在主進(jìn)程中用全局變量來實現(xiàn)各個功能之間的聯(lián)系。

    編碼機(jī)的核心功能——TS流傳輸線程和遠(yuǎn)程控制命令處理線程的流程如下圖10所示。

                       圖10:部分線程流程
結(jié)  語
    通過實際設(shè)計表明,在MPEG-2 over IP編碼機(jī)設(shè)計中,采用W90N740作為CPU和uClinux操作系統(tǒng),使得設(shè)計簡單,靈活,已于維護(hù)。實際效果明顯,能實時傳輸10路4M碼率的MPEG-2圖像給不同的目的IP。

參考文獻(xiàn)
1.    Winbond electronics Corp.  W90N740CD/W90N740CDG data sheet.
2.    日本富士通.  MPEG2 1chip Audio/Video Encoder MB86391 Product Specification.
3.    馬忠梅、徐英慧.  ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)(第2版).   北京航空航天大學(xué)出版社.
4.    余兆明、李曉飛.  MPEG標(biāo)準(zhǔn)及其應(yīng)用.  北京郵電大學(xué)出版社.
5.    張輝.  GNU/Linux編程指南(第二版).  清華大學(xué)出版社.
6.    詹俊鵠、于衛(wèi)譯.  實戰(zhàn)Linux Socket 編程.  西安電子科技大學(xué)出版社








 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉