盧博,王軍
(重慶郵電大學 信號與信息處理重慶市重點實驗室,重慶 400065)
?
異步FIFO在DSP圖像采集系統(tǒng)中的應(yīng)用
盧博,王軍
(重慶郵電大學 信號與信息處理重慶市重點實驗室,重慶 400065)
本文利用異步FIFO芯片作為TVP5150與DSP之間的緩沖,可以進行穩(wěn)定的數(shù)據(jù)傳輸,并且簡化了設(shè)計難度。以TI公司的TMS320VC5509A作為DSP圖像處理器件,F(xiàn)IFO芯片采用可以存儲一幀圖像的AL422B。TVP5150作為視頻解碼芯片,利用CPLD完成邏輯控制功能。給出了系統(tǒng)的整體架構(gòu),重點介紹了FIFO的特點,F(xiàn)IFO與TVP5150之間的硬件接口電路,F(xiàn)IFO與DSP之間的硬件接口電路,以及FIFO的讀寫指針復位和讀寫使能的控制。軟件采用C語言對DSP進行編程,在CCS中進行在線仿真,完成對整個系統(tǒng)的采集與處理控制,不僅增強了程序的易讀性,而且增強了系統(tǒng)的可移植性。
異步FIFO;TVP5150;DSP;中斷;CPLD
基于DSP的圖像采集與處理系統(tǒng)與傳統(tǒng)的PC端的系統(tǒng)相比,具有功耗低、攜帶方便、處理速度快的特點,被廣泛使用在圖像采集與處理領(lǐng)域。DSP(Digital Signal Processor)芯片也稱數(shù)字信號處理器,是TI公司推出的專用于數(shù)字信號處理系統(tǒng)中進行算法處理的微處理器器件。DSP采用哈佛結(jié)構(gòu)總線設(shè)計,程序存儲器和數(shù)據(jù)存儲器分開,取值和數(shù)據(jù)訪問可以同時進行。DSP還使用流水線操作,使得多條指令重疊進行操作,可以有效地提高指令執(zhí)行效率。此外,DSP還擁有獨立的硬件乘法器,在處理濾波、卷積等運算時具有很快的速度,因此,DSP特別適合在圖像采集與處理系統(tǒng)中作為核心器件[1]。視頻采集端的視頻解碼芯片使用TVP5150,將采集到的模擬圖像信號轉(zhuǎn)換成數(shù)字圖像信號。
圖1 系統(tǒng)整體架構(gòu)
本系統(tǒng)是基于DSP的數(shù)字圖像處理系統(tǒng),總體結(jié)構(gòu)設(shè)計如圖1所示。首先CCD攝像機拍攝視頻圖像,輸出標準PAL制式視頻信號,輸入到視頻解碼芯片TVP5150中,TVP5150將模擬圖像信號轉(zhuǎn)換為數(shù)字圖像信號送入FIFO中,本系統(tǒng)采用AL422B。DSP通過EMIF接口從FIFO中讀取圖像數(shù)據(jù)并存入存儲器,圖像數(shù)據(jù)經(jīng)過DSP中算法處理后,通過仿真器傳輸?shù)絇C機上進行顯示。其中,CPLD負責FIFO的讀寫指針復位和讀寫使能控制等工作。
FIFO(First In First Out)是一種先進先出的數(shù)據(jù)緩存器。FIFO與其他存儲器的區(qū)別是沒有讀寫地址線,操作可以變得很簡單,而且,它只能將數(shù)據(jù)順序?qū)懭?,并且順序讀出[2]。此外,F(xiàn)IFO還具有以下一些特點:
① 對連續(xù)的數(shù)據(jù)進行緩存,防止數(shù)據(jù)的丟失。
② 可以對數(shù)據(jù)進行集中存儲,使CPU總線避免頻繁的操作。
③ 允許系統(tǒng)進行高速的DMA操作,即可以不通過CPU的干預,直接進行數(shù)據(jù)存儲,節(jié)約了使用CPU的時間,使系統(tǒng)的效率大大提高。
FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀寫時鐘必須是同一個時鐘,而異步FIFO可以接受一種時鐘寫入數(shù)據(jù),另一種時鐘讀出數(shù)據(jù),也就是讀寫時鐘可以不一致,能夠相互獨立。
由于本系統(tǒng)中TVP5150送數(shù)據(jù)到DSP時,TVP5150的寫時鐘和DSP的讀時鐘是不一樣的。TVP5150的輸出時鐘是27 MHz,數(shù)據(jù)位為8位寬度,那么每秒的數(shù)據(jù)量就是216 Mbps,而DSP的輸出時鐘很難匹配27 MHz的時鐘頻率,設(shè)置為33 MHz,8位數(shù)據(jù)寬度,那么最大傳輸速率為264 Mbps。顯然,兩者的數(shù)據(jù)傳輸量在單位時間內(nèi)是不一樣的,如果這時不經(jīng)過任何緩存就進行數(shù)據(jù)間的相互傳輸,系統(tǒng)無法同步操作,并且會進入一種亞穩(wěn)定狀態(tài),從而整個系統(tǒng)功能失常。為了避免亞穩(wěn)定狀態(tài)以實現(xiàn)系統(tǒng)數(shù)據(jù)的高速穩(wěn)定的傳輸,本系統(tǒng)使用了異步FIFO作為解決方案,且采用AL422B作為異步FIFO存儲器,容量為3MB(393 216字節(jié)×8位),可以存儲PAL制式一幀圖形的信息。它的一些技術(shù)指標如下:
① 支持VGA、CCIR、NTSC、PAL和HDTV制式的視頻信號;
② 獨立的讀寫操作,可以接受不同的I/O速率;
③ 讀或?qū)懼芷跒?0 ns;
④ 訪問時間為15 ns;
⑤ 輸出使能控制;
⑥ 具有DRAM自刷新功能;
⑦ 3.3 V或5.0 V供電。
2.1 TVP5150與AL422B的接口實現(xiàn)
在本系統(tǒng)中,TVP5150的數(shù)據(jù)輸出端要與AL422B的數(shù)據(jù)寫入端相連,AL422B的數(shù)據(jù)讀出端要與DSP的數(shù)據(jù)輸入端相連。首先介紹TVP5150與AL422B之間的硬件連接,TVP5150的數(shù)據(jù)總線可以與AL422B的寫入端的數(shù)據(jù)總線直接進行連接。
TVP5150的輸出時鐘需要進行二分頻并移相半個時鐘周期,然后與AL422B的寫時鐘WCK連接,因為我們只需要獲取灰度圖像,這樣做可以將彩色部分的圖像濾除并且可以減少數(shù)據(jù)量。
TVP5150與AL422B接口如圖2所示。
圖2 TVP5150與AL422B硬件接口
2.2 TMS320VC5509A與AL422B的接口實現(xiàn)
圖3 TMS320VC5509A與AL422B硬件接口
軟件部分分為兩部分,分別是DSP內(nèi)的程序設(shè)計和CPLD中的組合邏輯。
3.1 DSP主程序
程序流程圖如圖4所示。
圖4 程序流程圖
3.1.1 主函數(shù)初始化
主函數(shù)需要對時鐘頻率、中斷函數(shù)、EMIF外部存儲器接口、I2C總線、TVP5150視頻配置、AL422B的寫指針復位進行初始化。
其中,AL422B的初始化采用TMS320VC5509A的GPIO口GPIO0、GPIO1、GPIO2發(fā)送邏輯電平到CPLD,然后由CPLD發(fā)送命令控制 AL422B的讀寫指針復位與讀寫使能。
3.1.2 初始化TVP5150
TVP5150是視頻解碼芯片,要求其模擬輸入是PAL制信號,轉(zhuǎn)換為8位的YUV4:2:2格式的數(shù)字輸出信號。DSP需要通過GPIO口對TVP5150進行復位,方法類似于AL422B的寫指針復位控制。DSP還需要通過I2C總線控制TVP5150的寄存器,TVP5150寄存器的配置如下:
① 雜項控制寄存器:地址0x03,設(shè)置為0x0f。
② 輸出和數(shù)據(jù)比率選擇寄存器:地址0x0d,設(shè)置為0x40。
③ 配置復用引腳寄存器:地址0x0f,設(shè)置為0x0a。
④ 有效像素開始高位寄存器:地址0x11,設(shè)置為0x4d。
⑤ 有效像素開始低位寄存器:地址0x12,設(shè)置為0x02。
⑥ 有效像素結(jié)束低位寄存器:地址0x13,設(shè)置為0xe4。
⑦ 有效像素結(jié)束低位寄存器:地址0x14,設(shè)置為0x02。
經(jīng)過寄存器配置,使得場消隱信號VBLK、像素有效信號AVID、場同步信號VSYNC、奇偶場標志位信號FID、輸出時鐘SCLK輸出有效,數(shù)據(jù)總線激活,并將采集到的圖像裁剪成150×300的圖像。
在初始化程序后,執(zhí)行while死循環(huán),等待中斷的到來。
3.1.3 中斷函數(shù)
這里,我們使用的處理算法為圖像的邊緣檢測法,處理完成后在CCS中進行顯示,并觀察算法處理結(jié)果。
最后,進行寫指針復位,準備下一次的圖像采集。需要注意的是,由于圖像在傳輸過程中奇偶場是分開傳輸?shù)模現(xiàn)IFO中只存儲奇場的一部分圖像,而完整的圖像是由奇場和偶場共同組成的,所以獲得的圖像顯示的是一幀圖像壓縮一半的結(jié)果,圖像是失真的。但是,我們只觀察算法的處理結(jié)果,因此沒有進行圖像的完整顯示。
3.2 CPLD程序
當VSYNC由高電平變?yōu)榈碗娖綍r,輸出的是有效視頻信號,同時當VBLK為低電平、AVID為高電平時,TVP5150輸出有效視頻數(shù)據(jù)。
因為偶數(shù)場是從一行的中間開始掃描的,如果不設(shè)置FID信號,最后采集到的圖像可能是偶場信號,也可能是奇場信號,那么,在CCS中顯示的圖像有可能是完整的,也可能顯示的是左右顛倒的圖像,剛好錯開半行的圖像。所以,設(shè)置FID信號為0,采集奇場的信號。
因為要采集一幅150×300的圖像,需要在CPLD中設(shè)置一個計數(shù)器對采集到的像素進行計數(shù),由AL422B的寫時鐘WCK作為計數(shù)器的時鐘信號,當計數(shù)到45 000后觸發(fā)DSP外部中斷2,同時將計數(shù)器清零。
利用設(shè)計的系統(tǒng)進行實物圖像的采集,圖5(a)為采集的實驗室的辦公座椅場景,圖5(b)為使用邊緣檢測算法來對采集到的圖像進行的邊緣處理[6]。
邊緣檢測能夠突出圖像的邊緣特征,使觀察者一目了然,并且蘊含了豐富的內(nèi)在信息(方向、階躍性質(zhì)和形狀等)。
圖5 邊緣檢測對比圖
[1] 代少升,黃俊.TMS320C55x DSP原理及其應(yīng)用[M].北京:高等教育出版社,2010.
[2] 肖靜嫻,戴亞文.基于FPGA的異步FIFO緩存設(shè)計[J].電子測量技術(shù),2009,32(11):92-94.
[3] 黃再銀.視頻幀存儲器AL422B及其應(yīng)用[J].中國有線電視,2003(1):59-60.
[4] 王凱.基于TVP5150的視頻LCD顯示設(shè)計[J].電子設(shè)計工程,2011,19(1):178-181.
[5] 周委,陳思平,趙文龍,等.FPGA設(shè)計并實現(xiàn)多DSP嵌入式系統(tǒng)[J].電子技術(shù)應(yīng)用,2008(6):39-42.
[6] 段瑞玲,李慶祥,李玉和.圖像邊緣檢測方法研究綜述[J].光學技術(shù),2005,31(3):415-419.
盧博(碩士研究生),主要研究方向為圖像處理、嵌入式技術(shù)等。
Application of Asynchronous FIFO in DSP Image Acquisition System
Lu Bo, Wang Jun
(Chongqing Key Laboratory of Signal and Information Processing,Chongqing University of Posts and Telecommunications, Chongqing 400065,China)
In order to make the date transmission stable and simplify the design difficulty,the paper uses an asynchronous FIFO chip as a buffer between TVP5150 and DSP.The system takes TMS320VC5509A as the image processing device, and adopts AL422B which can store one frame image as the FIFO chip.The design uses TVP5150 as a video decoder chip,and completes the logic control function by CPLD.This paper introduces the following contents such as the overall architecture of the system, the characteristics of FIFO,the hardware interface circuit between FIFO and TVP5150 as well as FIFO and DSP,the reset of read/write pointer and the enable control of read/write of the FIFO. The software adopts C language programming for DSP and makes the online simulation in CCS to complete the control of the entire system acquiring and processing.Using C language not only enhances the readability of the program but also strengthens the portability of the system.
asynchronous FIFO;TVP5150;DSP;interrupt;CPLD
TP316
A
迪娜
2014-07-21)