當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]通過使用Sigma Design公司的EM8560嵌入式數(shù)字圖像處理器及Altera的FPGA與Lattice的cPLD,解決處理器外部總線接口速度對系統(tǒng)性能的限制問題;從系統(tǒng)組成、系統(tǒng)工作原理和實現(xiàn)方法以及改進后的系統(tǒng)性能分析三部分來說明。

    目前,嵌入式系統(tǒng)已經(jīng)廣泛應(yīng)用于通信、消費類電子產(chǎn)品等許多領(lǐng)域。然而,在許多應(yīng)用中,處理器的接口總線速度成為制約系統(tǒng)性能的瓶頸。本文將以嵌入式實時視頻數(shù)據(jù)存儲系統(tǒng)為例,說明如何利用FPGA作為嵌入式處理器的數(shù)據(jù)協(xié)處理器,利用CPLD進行主處理器與協(xié)處理器之間數(shù)據(jù)通信的方案來解決處理器接口總線速度對系統(tǒng)性能的影響。該方案對解決類似的問題具有一定的參考作用。

1 系統(tǒng)組成 
    如圖l所示,系統(tǒng)主要由4部分組成:嵌入式處理器、CPLD、FPGA及視頻圖像壓縮輸入部分。
(1)嵌入式處理器

    采用Sigma Design生產(chǎn)的雙核結(jié)構(gòu)的數(shù)字圖像處理芯片EM8560。它內(nèi)嵌ARM7 TDMI內(nèi)核和一個MEPG RJSC解碼引擎,支持許多音/視頻解碼標準,如VCD、DVD-Video、AC-3.AAC以及MP3;支持AVI.IS0 MPEG-4、DivX格式以及靜態(tài)JPEG圖像;內(nèi)置8KB指令Cache和8KB數(shù)據(jù)Cache及8KB SRAM,片外最大支持32位16 M B SDRAM系統(tǒng)內(nèi)存和最大16 32位8MB F1ash;I/O接口部分支持標準IDE (ATA/ATAPI-4/Ultra DMA)接口,支持16位地址/數(shù)據(jù)LocalBus總線。該總線采用異步方式進行數(shù)據(jù)傳輸,因此數(shù)據(jù)傳輸速率低,可靠傳輸1KB數(shù)據(jù)一般需用時100 us左右。

(2)FPGA與CPLD 


    采用Lattice的CPLD和A1tera的Cyclone FPGA,要求CPLD的引腳到引腳延時盡量小,來滿足兩片SDRAM數(shù)據(jù)切換的要求。

(3)視頻圖像壓縮輸入部分
 
    視頻A/D及編碼部分采用Philips公司的SAA7114芯片,將輸入模擬信號轉(zhuǎn)換為ITU 656格式數(shù)字圖像數(shù)據(jù)。MPEG.4編碼壓縮部分采用Intime公司的IME6400編碼芯片,將數(shù)字圖像數(shù)據(jù)壓縮為MPEG-4的圖像數(shù)據(jù)輸出。其中IME6400輸出接口有1KB的壓縮數(shù)據(jù)輸出緩沖區(qū)。該緩沖區(qū)數(shù)據(jù)最大保持時間為400 u s,即若在400 u s內(nèi)不取完緩沖區(qū)數(shù)據(jù),后來的壓縮編碼數(shù)據(jù)就會沖掉前面壓縮的數(shù)據(jù),造成視頻數(shù)據(jù)的丟失。




2 系統(tǒng)原理與實現(xiàn) 
    為了說明本設(shè)計如何利用FPGA和CPLD來解決慢速總線Local Bus對擴充系統(tǒng)性能的瓶頸限制,下面將分兩部分來說明。

(1)Local Bus總線速度對系統(tǒng)性能的影響 


    由圖1中虛線處所示,本系統(tǒng)的設(shè)計思想是將多路輸入視頻數(shù)據(jù)經(jīng)過壓縮編碼后通過Local Bus總線輸入到嵌入式處理器EM8560的內(nèi)存中,再從內(nèi)存寫入IDE硬盤上進行存儲。這也是EM8560設(shè)計的一個主要功能。但是,這種設(shè)計由于受到Local Bus總線速度的制約,一般只能輸入兩路分辨率為D1的數(shù)字視頻圖像,要如框圖中增加為4路、8路或更多路數(shù)據(jù)輸入是不可能的。首先,MPEG-4編碼芯片IME6400的1KB輸出數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)最多只能保持400 u s時間。400 us時間一到,IME6400將會向緩沖區(qū)寫入新的數(shù)據(jù);如果舊數(shù)據(jù)讀不完,就會丟失數(shù)據(jù)。其次,Local Bus數(shù)據(jù)傳輸率低,IME6400通過向EM8560發(fā)中斷到EM8560,通過Local Bus將IME6400 1KB輸出緩沖區(qū)的數(shù)據(jù)讀入需要100 us時間。最后,由于Local Bus總線接口內(nèi)部不具有真正的DMA控制器,所以數(shù)據(jù)的傳輸需要占用處理器CPU的時間。如果EM8560正在將內(nèi)存中數(shù)據(jù)向硬盤中寫操作,IME6400中斷到來,這時處理器要停止當(dāng)前的寫硬盤工作,執(zhí)行中斷處理程序,花100 us左右時間讀入IME6400的編碼數(shù)據(jù);如果在這100 us內(nèi),又有一片IME6400的編碼數(shù)據(jù)滿發(fā)出中斷,則處理器讀完當(dāng)前片的數(shù)據(jù)后又要去讀另一片的數(shù)據(jù);如果另一片IME6400在內(nèi)存中的數(shù)據(jù)還沒有寫入硬盤,則新數(shù)據(jù)將會覆蓋原來的數(shù)據(jù),造成視頻數(shù)據(jù)的丟失。同時,如果輸入超過2片,那CPU幾乎都在中斷的觸發(fā)下讀數(shù)據(jù),無時間寫硬盤,造成視頻數(shù)據(jù)的丟失,也無時間去做其它的事情,這顯然是不行的。因此,要想用這種設(shè)計在400 u s內(nèi)傳輸4路圖像或更多路圖像數(shù)據(jù)到EM8560內(nèi)存中是不能實現(xiàn)的。

(2)解決LocaI Bus總線速度對系統(tǒng)性能的影響 


    在嵌入式系統(tǒng)中,處理器外部總線的主要目的是將外部的數(shù)據(jù)塊輸入到處理器內(nèi)部緩存中,外部總線速度一般是不會超過處理器訪問它的外存(如SDRAM)的速度,否則會引起數(shù)據(jù)內(nèi)部擁塞而丟失數(shù)據(jù)。因此,在一些需要傳輸大量數(shù)據(jù)到處理器內(nèi)存的嵌入式系統(tǒng)中,能否使從外部輸入到內(nèi)存的數(shù)據(jù)以處理器訪問內(nèi)存的速率在處理器外部直接放入外存呢?答案是肯定的。我們可以通過CPLD和FPGA來實現(xiàn),如系統(tǒng)框圖中所示。下面說明這樣實現(xiàn)的方法。 首先,就處理器內(nèi)部來講,一般嵌入式處理器將它的片外物理存儲空間映射到內(nèi)存地址空間的高端。EM8560處理器就是這樣映射的,如圖2所示。 



    當(dāng)系統(tǒng)啟動時,引導(dǎo)程序?qū)⒉僮飨到y(tǒng)從Flash中引入SDRAM中的低2M×32位內(nèi)存中, 即操作系統(tǒng)獲得系統(tǒng)控制權(quán)后只在sDRAM的兩個低BANK內(nèi)運行。這時不訪問兩個高BANK。因為將兩個高BANK作為輸入視頻數(shù)據(jù)緩沖區(qū),只有當(dāng)緩沖區(qū)滿要將數(shù)據(jù)寫入硬盤時才訪問兩個高BANK,因此,用兩片SDRAM分別作為一片SDRAM的兩個高BANK和兩個低BANK使用。高片SDRAM用來存放輸入視頻數(shù)據(jù),由FPGA直接寫入;低片sDRAM運行操作系統(tǒng)和系統(tǒng)程序。這樣可以把外部輸入的視頻數(shù)據(jù)不通過Local Bus總線直接輸入到內(nèi)存。在輸入到內(nèi)存的過程中,CPU是不參與傳輸數(shù)據(jù)的。值的注意的是:高片中只用了兩個高BANK,低片中只用了兩個低BANK。 

    其次,我們已經(jīng)把一片SDRAM用兩片來代替,分別為外部輸入數(shù)據(jù)緩存和系統(tǒng)程序運行空間;可是對CPU來講,它認為它的外存只有一片,它從兩個高BANK取數(shù)時認為是從同一片SDRAM的兩個高BANK取數(shù),因此,需要在CPU訪問兩個高BANK時將數(shù)據(jù)線、地址線和控制線切換到高片SDRAM;反之,在CPU訪問兩個低BANK時,將數(shù)據(jù)線、地址線及控制線切換到低片SDRAM。這個切換是無法用EM8500的CS來完成的。因為它只有一個CS信號,只允許掛一片SDRAM。所以,我們用CPLD來完成這個切換工作。CPLD根據(jù)輸入到它的SDRAM地址線和控制線,在CPU發(fā)布ACTTIVE命令時,根據(jù)地址線中的兩位BANK地址線確定是訪問兩個高BANK還是訪問兩個低BANK,如果是訪問兩個低BANK,CPLD輸出控制信號,關(guān)斷連到高片SDRAM數(shù)據(jù)線和地址命令線的兩個高速數(shù)據(jù)開關(guān),同時打開連到低片SDRAM的高速數(shù)據(jù)開關(guān),這樣CPU就訪問低片SDRAM;反之,如果CPU要訪問兩個高BANK,則CPLD輸出控制信號,關(guān)斷低片數(shù)據(jù)線上的開關(guān),同時打開高片SDRAM數(shù)據(jù)線和地址命令線上的開關(guān),這時CPU訪問高片SDRAM;如果CPU要訪問FPGA中映射的寄存器,則所有的開關(guān)都關(guān)斷,這時CPU可以從FPGA中讀入數(shù)據(jù)。因此,通過CPLD就完成了CPU訪問FPGA以及兩片SDRAM之間的數(shù)據(jù)切換。 

    第三,我們來看看FPGA如何將外部輸入視頻數(shù)據(jù)直接輸入到處理器內(nèi)存中兩個高BANK的數(shù)據(jù)緩沖區(qū)中。當(dāng)IME6400輸出緩沖區(qū)的編碼壓縮數(shù)據(jù)滿時,它向FPGA發(fā)中斷,而不是向CPU發(fā)中斷。FPGA收到中斷后,將IME6400來的數(shù)據(jù)放入它自己的緩沖區(qū)。由于FPGA內(nèi)部嵌入的存儲空間小,要緩沖多路視頻數(shù)據(jù)流是不夠的,所以外加一片SDRAM作為FPGA自己的緩存。新加這片緩存最大的好處是可以緩存更多路的視頻數(shù)據(jù),并且每路視頻數(shù)據(jù)的緩存大小可以自己指定,相當(dāng)于擴展了IME6400輸出BUFFER的空間,因此減少了向CPU發(fā)中斷的次數(shù)。當(dāng)FPGA緩存中存儲的某一路數(shù)據(jù)滿時,F(xiàn)PGA向CPU發(fā)中斷,CPU進入中斷服務(wù)程序。在中斷服務(wù)程序中,CPU是不訪問高片SDRAM的。這時CPU會讀FPGA中特定的寄存器,根據(jù)寄存器的值判斷FPGA是否已經(jīng)把它的緩存中的視頻數(shù)據(jù)輸入到高片SDRAM中。如果輸入結(jié)束,F(xiàn)PGA修改寄存器的值,通知CPU數(shù)據(jù)輸入完畢,然后CPU退出中斷處理程序,執(zhí)行其它操作。這樣,F(xiàn)PGA就將多路視頻數(shù)據(jù)經(jīng)過緩存后以內(nèi)存總線的速度轉(zhuǎn)入處理器內(nèi)部緩存的地址空間中。值得說明的是:FPGA與IME6400輸入視頻部分的傳輸速度是比較低的,而FPGA從它的緩存中將數(shù)據(jù)傳到高片sDRAM中的速度是比較高的,是以內(nèi)存總線接口的同步時鐘傳輸?shù)摹?BR>
3 改進的系統(tǒng)性能分析 

   
首先,對于CPU所要訪問的外部設(shè)備,通過加入FPGA的緩存,等價于增大了外部設(shè)備輸出數(shù)據(jù)緩沖區(qū)的空間,并且該空間的大小可以通過改變FPGA的緩存來任意改變,大大減小了頻繁地向CPU發(fā)中斷的次數(shù)。例如,一片IME6400的1KB輸出數(shù)據(jù)緩沖區(qū)滿,就要發(fā)出中斷信號,要求主機在400 us內(nèi)讀空緩沖區(qū)中的數(shù)據(jù)。如果中斷信號發(fā)往CPU,則IME6400滿1KB就中斷CPU一次;如果將中斷信號發(fā)往FPGA,則FPGA會將這1KB數(shù)據(jù)先放到自己的緩存中,等到積累到一定大小,比如16KB、32KB時,再由FPGA向CPU發(fā)中斷,進行高速數(shù)據(jù)拷貝,大大減小了系統(tǒng)中斷次數(shù)。其次,由于數(shù)據(jù)的輸入由Local Bus總線改為由FPGA緩存以后再高速輸入,這就大大增加了輸入視頻數(shù)據(jù)的通道數(shù),即能掛更多的IME6400。原來用Local Bus從IME6400中讀lKB數(shù)據(jù)需要100 u s左右時間,現(xiàn)在通過FPGA讀只用不到25 u s的時間,相當(dāng)于原來所用時間的1/5。這就允許在400 us內(nèi)增加更多的通道數(shù),由原來最大的兩路可以擴充到四路、八路、十路等等,大大改善了系統(tǒng)性能。 

    值得注意的是:以上系統(tǒng)性能的改進是犧牲了兩片SDRAM部分空間換得的。在低片sDRAM中只用了兩個低BANK,在高片SDRAM中只用了兩個高BANK。當(dāng)然這種劃分也可以不相等,視具體情況而定。 

    綜上所述,對于那些由于受到總線速度制約的嵌入式系統(tǒng)來講,上述方案具有一定的參考價值。 

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(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)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

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

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(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 手機 衛(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ā)展策略,塑強核心競爭優(yōu)勢...

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

北京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ù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

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