OMAP5910實時圖像系統(tǒng)中的DMA數據傳輸
引言
實時圖像處理系統(tǒng)的顯著特點是數據量大,有效地處理和傳輸圖像數據是實現實時圖像處理系統(tǒng)的關鍵,ti公司推出了高性能多媒體雙核處理器omap5910,是將高性能、低功耗的tms320c55x
dsp與控制性能很強的arm925微處理器集成到同一芯片器件中如何有效地發(fā)揮雙核的優(yōu)勢,合理利用omap5910的各種內存配置dma控制器實時、高效傳輸大規(guī)模的圖像數據是本文研究的重點。
1 omap5910的內存管理
由于omap5910支持多種內存,因此在設計dma傳輸方案時,必須對omap5910的內存管理有一個詳細的了解。
omap5910的mpu存儲器片內集成了192kb的sram,dsp存儲器片內集成了64kb的雙向daram,96kb的單向saram,32kb的程序存儲器pdrom,mpu和dsp子系統(tǒng)的存儲器映射情況如圖1所示[1]。通過emiff和emifs接口,omap5910可以訪問片外存儲器,但訪問片外存儲器的速度與訪問片內存儲器的速度差別很大。
omap5910的片內存儲器主要由存儲器管理單元tc管理。tc管理mpu、dsp、dma以及局部總線對omap5910系統(tǒng)存儲資源(sram、sdram、flash、rom等)的訪問,它的主要功能是確保處理器能夠高效訪外部存儲區(qū),避免產生瓶頸現象而降低片上處理速度,tc通過3種不同的接口-emifs、emiff或imif,支持處理器或dma單元對存儲器的訪問.其中emifs接口提供對flash、sram或rom的訪問,emiff接口提供對sdram的訪問,imif接口提供對omap5910片內192kb
sram的訪問,3種接口是完全獨立的[2],從任何一個處理器或dma單元都可以同時訪問。
arm核訪問dsp核的數據或內存空間,需要arm和dsp之間進行通信,主要有3種方式支持內部雙核間的通信,第1種方式通過雙核共享郵箱寄存器mailbox來實現,arm和dsp均可以通過mailbox觸發(fā)對方中斷,并同時傳遞兩個16位的參數,以通知對方自己的狀態(tài)或傳遞某種請求,第2種方式是mpui方式,arm通過主機接口獲得對dsp存儲空間和i/o空間的訪問權,由arm完成數據在雙核間的搬移,第3種方式是設置dsp的mmu,將dsp的外部存儲空間映射到omap5910系統(tǒng)存儲資源中,共享dsp的地址空間,由dsp完成雙核間的數據搬移。
2 omap5910的dma控制器
omap5910的dma控制器對實時圖像處理系統(tǒng)非常重要,它可以在沒有cpu參與的情況下完成映射存儲空間中數據搬移,靈活的使用dma控制器可以大大提高數據傳輸效率。
omap5910的dma控制器進行通用功能傳輸時的特點如下:
1)單通道分割操作,具有通用和專用信道,不同的硬件資源端口。所有的數據交換都通過請求(request)、準備就緒(ready)、中止(abort)信號進行握手。dma信道是時分復用的,其傳輸的基本流程如圖2所示。
2)多幀傳輸。傳輸的每個數塊可以有多個數據幀。傳輸的數據大小為8位、16位和32位。可按字節(jié)打包、拆包、并對傳輸的字節(jié)計數??稍L問所有的存儲器地址空間(物理地址映射和i/o空間)。
3)dma的讀、寫和幀操作都有中斷觸發(fā),每個dma物理通道都可以產生一個中斷,使處理器對本次傳輸的狀態(tài)作出反應,所有的dma中斷都是電平中斷[4]。
4)后臺傳輸、高吞吐率,dma可獨立于cpu工作和以pcu時鐘速度進行數據吞吐。
實時圖像處理系統(tǒng)的圖像數據很大,同時圖像處理過程中也也會產生大量的中間數據,而omap5910的片內資源有限,不能容納幀的圖像數據和中間數據,所以大量的圖像數據必須存儲在片外存儲器中,為了保證系統(tǒng)的實時性,由dma負責完成數據在不同存儲空間的搬移,不必占用cpu的時鐘周期,避免cpu大部分時間堵塞在對外存的訪問上,同時dma對數據重排功能可以優(yōu)化圖像數據在內存中的存儲,這不僅可以提高內部存儲空間的利用效率,而且可以提高數據的傳輸速率。
3 omap5910內、外存儲器數據交換分析
一個完整的實時圖像處理不僅能對圖像進行實時采集,還能對圖像進行實時處理,該實時圖像處理系統(tǒng)主要由圖像傳感器、a/d轉換器,復雜可編程邏輯器件fpga、omap5910雙核處理器,圖像顯示設備等構成。該系統(tǒng)的主要功能是fpga實時接收紅外焦平面陣列傳感器輸出的14位視頻信號,降頻后由omap5910的dsp處理器執(zhí)行圖像處理算法,同時,omap5910的arm處理器執(zhí)行復雜控制指令,再由fpga緩存,經d/a變換合成10位視頻信號輸出,另外,omap5910的arm處理器通過接口接收計算機的控制指令。
按照人眼的視覺要求,成像系統(tǒng)每秒鐘至少要采集和處理25幀圖像數據,才能避免圖像實時顯示時的視覺閃爍感,。對于320×240的點陣圖像,a/d為14位,每幀采集數據為320×240×14位=1
mb,按實時性的要求,進行處理和顯示數據的速度為320×240×14位×25幀/s=3.125mb/s,即需要在64μs內完成讀1行(320像素)和寫1行(346象素)的操作,只有這樣圖像才不失連續(xù)性。
為了保證圖像處理和顯示的實時性,應充分利用omap5910的各數據傳輸通道,omap5910的片內、外存儲器的數據傳輸,如圖3所示,圖中給出了omap5910處理實時圖像時的所有數據傳輸通道,他們的傳輸速率與存儲器的類型有關。為了充分認識omap5910的數據傳輸通道的性能,筆者做了一系列的實驗,設置系統(tǒng)時鐘為150mhz,工作模式設為全同步模式,使能ca
che的前提下,詳細測試了各傳輸通道傳輸1幀數據所用的時間,如表1所列。以此為依據來優(yōu)化數據的傳輸。
4 dma方式數據傳輸優(yōu)化方案
在詳細分析各數據傳導的數據傳輸速率性能的基礎,本文提出了一種dma方式的數據傳輸優(yōu)化方案,把整幀劃分成多個塊,omap5910待處理的圖像數據完全放在omap5910的片內數據存儲器中進行處理,既減少了與外存的大量交互,又充分利用了片內的高速存儲資源,在內外存之間的數據傳輸使用dma在后臺進行操作,大大提高omap5910的工作效率。
4.1 數據流程
a/d采樣的數據首先存放在外部緩沖中,當采集到一定的數據量后,由復雜可編程邏輯器件觸發(fā)arm dma讀取數據,依次輸入兩幀圖像保存在sdram中,從外掛flash中取得進行圖像處理所需的參數a、b值保存在sdram中,與輸出幀存以8行為塊單位,觸發(fā)dsp
dma將塊數據從omap5910的外部緩存區(qū)sdram搬運到dsp核的雙向內部緩存區(qū)daram,以供dsp核進行計算。有關dma方式傳輸的特點,dsp核進行計算的同時,dsp
dma搬運上一塊的圖像數據(8行)到sdram,arm核接收到輸出行數據后,觸發(fā)arm dma把數據搬移到fpga控制外部存儲區(qū),數據流程如圖4所示。
由于omap5910內部和外部都采用雙緩沖機制,因此arm核和dsp核處理的dma傳輸上一幀數據的同時,不影響dma進行當前幀數據的傳輸。這樣整個系統(tǒng)中a/d數據的采集,dma數據的傳輸及cpu數據的計算達到了高度的并行性。
4.2 操作時序
從數據傳輸的操作時序上,可以看出該優(yōu)化方案另一個優(yōu)勢,將原來的幾個輸入過程(每個輸入過程指的是輸入1行像素)合并為1個輸入過程(1次輸入幾行像素),并且將原來集中完成的輸出過程分散到輸入過程中間完成,進一步提高的性能。
具體配置操作為:omap5910中arm dma讀過程1次輸入12行數據,用20次將1幀圖像輸入到sdram中。arm dma的寫過程在讀過程中間啟動。即1幀中的第1次dma讀過程結束的中斷中啟動行號和幀號的添加以及
dma的寫過程,這一次只寫2行,在1幀中的第2次到第20次dma讀過程結束的中斷中啟動寫過程,每次寫15行,其操作時序圖5所示。
具體的時間計算是:讀12行數據為17.07μs×12=204.84μs,寫15行數據為27.68μs×15=415.2μs,1次讀寫及中斷的處理所需時間為204.84μs+415.2μs≈700μs,1次讀寫及中斷的處理允許時間為68μs×12=816μs。經計算700μ<816μs,能夠保證實時圖像處理系統(tǒng)的實時性。
5 優(yōu)化方案中的代碼設計與實現
5.1 arm端的主程序
arm核主要實現omap5910系統(tǒng)的配置,與fpga接口的數據輸入/輸出,與sdram的數據保存、幀模式的控制與轉換等優(yōu)化方案的功能[5]。
5.2 dsp端的主程序
dsp核主要實現dsp dma在i sram和daram之間數據的輸入/輸出,紅外圖像的兩點校正算法和疵點剔除等算法,以及紅外圖像的亮度和對比度參數的計算等功能[6]。
5.3 調試與配置dma通道的經驗總結
1)測試dma通道的數據傳輸是否正確,可編寫sdram到sdram的內部dma數據搬移測試程序來初步測試dma通道的初始設置和數據傳輸是否正確。
2)測試dma與fpga接口數據的傳輸速率,示波器讀取讀信號或寫信號的效率時,應注意查看讀信號和寫信號的個數是否是傳輸數據的個數。
3)測試dma的外部中斷,外部中斷的引腳是復用引腳,應提前設置此引腳。
4)測試dma操作的讀操作和寫操作的相互配合,查看輸出的傳輸是否正確。
5)使用指定內存不同的數據測試視頻圖像的輸出是否正確。
6)dma中斷的觸發(fā)事件是上升沿有效。
7)為保證dma傳輸數據的完整性,要對dma的優(yōu)先級進行設置。
結語
實時圖像處理系統(tǒng)實現了此數據傳輸的優(yōu)化方案,實時顯示圖像的速度為25幀/s,圖像的視覺效果比較理想,通過靈活地控制dma,不僅能夠提高圖像數據的傳輸效率,而且能夠充分發(fā)揮omap5910的高速性能。
評論