基于高速A/D轉換器的視頻數(shù)據(jù)采集系統(tǒng)
摘要:針對視頻采集系統(tǒng)需要對攝像頭輸出的復合視頻信號進行快速轉化、采樣、存儲的要求,設計基于高速A/D轉換器TLC551O的視頻采集系統(tǒng)。模擬視頻信號通過A/D轉換器轉化為8位灰度值,16位微處理器MC9S12DG128B通過普通IO口,控制FIFO存儲器uPD42280寫入和讀取A/D轉換結果,實現(xiàn)視頻圖像數(shù)據(jù)的高精度采集。分析了主要芯片的工作原理及時序,描述了軟件控制圖像數(shù)據(jù)采集流程。并將采得數(shù)據(jù)經(jīng)過處理,與實際圖像對比。實驗結果表明,該系統(tǒng)在單行掃描時問50μs內(nèi)能采集160個以上的有效像素點,成像質量高,能滿足簡單圖像處理算法對數(shù)據(jù)的要求。
關鍵詞:A/D轉換器;FIFO存儲器;時序;視頻圖像數(shù)據(jù)
國內(nèi)外的視頻圖像采集方法很多,基本分為兩大類:自動圖像采集和基于處理器的圖像采集。自動圖像采集多采用專門的視頻解碼芯片,如SAA7113,TVP5150等,自動完成模數(shù)轉化,并輸出行、場信號以實現(xiàn)存儲器地址產(chǎn)生,一般以DSP為主處理器,除了對采集模式進行初始化設置外,主處理器不參與采集過程。這種方法的優(yōu)點是采集不占用CPU的時間,實時性較好,適合于對圖像數(shù)據(jù)的精度要求較高和算法復雜的場合,如車道識別、車輛識別等方向的應用。但是該方案對處理器的速度有很高的要求,成本較高,且電路復雜?;谔幚砥鞯膱D像采集則采用視頻同步信號分離芯片產(chǎn)生行、場中斷信號,用微處理器內(nèi)部的A/D轉換器實現(xiàn)圖像的采集。圖像的采集過程在CPU控制下完成,由CPU啟動A/D轉換,得到轉換數(shù)據(jù)。該方案的特點是電路簡單,成本低,易于實現(xiàn),能滿足簡單圖像采集系統(tǒng)的需要。但數(shù)據(jù)采集占用CPU時間,采集速度受微處理器A/D轉化時間限制。
本文提出了基于獨立的高速A/D轉換器TLC5510的視頻采集系統(tǒng)設計方案,能高速采集較高精度的視頻數(shù)據(jù),可適用于智能車比賽、室內(nèi)導盲、車隊仿真平臺、移動機器人平臺等道路環(huán)境相對單一。圖像處理算法簡單的場合。
1 系統(tǒng)架構
本系統(tǒng)主要適用于符合PAL制式的模擬攝像頭輸出視頻信號的采集。一般的模擬攝像頭的主要工作原理是:按一定的分辨率,以隔行掃描的方式采樣圖像上的點,當掃描到某點時,就通過圖像傳感芯片將該點處圖像的灰度轉換成與灰度成一一對應的電壓值,然后將此電壓值通過視頻信號端輸出。同時,視頻信號端輸出還隱含了場同步信號、行同步信號、奇偶場同步信號等信息,因此實際輸出的是復合視頻信號。
本系統(tǒng)采用MC9S12DGl28B作為處理器,針對信號特點,主要設計思想如下:首先,通過專門的視頻同步信號分離芯片LM1881提取復合視頻信號的行同步脈沖、消隱脈沖和場同步脈沖,并將它們轉換成數(shù)字式電平直接輸給單片機的中斷口作為控制信號。同時采用高速A/D轉換器TLC5510對視頻信號進行A/D轉換,使視頻電壓模擬信號轉換為代表圖像灰度的數(shù)字信號輸出。接著采用FIFO存儲器uPD42280作為視頻數(shù)據(jù)的緩存,在行中斷服務函數(shù)中對其進行寫控制,將A/D轉換數(shù)據(jù)寫入其內(nèi)存中。最后,當一場圖像結束時,在場中斷服務函數(shù)中通過單片機的8位IO口將視頻數(shù)據(jù)讀回。為了保證數(shù)據(jù)的穩(wěn)定,在單片機與FIFO存儲器之間加了一級74HC245,作為數(shù)據(jù)緩沖。為保證采集同步,LC5510 uPD42280和74HC245采用同一有源晶振作為轉換和讀寫的時鐘源。本系統(tǒng)框架如圖1所示。
2 系統(tǒng)硬件設計
視頻采集系統(tǒng)一場圖像時間內(nèi)的采集數(shù)據(jù)量決定了成像質量,也就是常說的分辨率或者叫像素。按照我國PAL制式的信號特點,每秒掃描25幀圖像,每一幀圖像又分奇偶兩場,那么,一場圖像的掃描時間就是20 ms。目前市場上的攝像頭,不管是CCD或是CMOS成像的,縱向分辨率基本都在400線的以上。因此推得單行視頻信號的持續(xù)時間小于20 ms/400=50μs左右。那么,如何在50μs內(nèi)對視頻信號進行快速地A/D轉換,得到更多的灰度值數(shù)據(jù),以提高橫向分辨率就成為視頻采集系統(tǒng)設計的關鍵問題。
2.1 高速A/D轉換器
TLC5510是美國TI公司生產(chǎn)CMOS,8位高阻抗并行的模數(shù)轉換器件(ADC)。它采用+5 V單電源工作,能提供的最大采樣率為20 MSPS。TLC-551O的滿輸入量程是2 V,TLC551OA的滿輸入量程是4 V。TLC5510采用了半閃速結構及CMOS工藝,所以大大減少了器件中比較器的數(shù)量,并在高速轉換的同時能夠保持較低的功耗。在推薦的工作條件下,TLC5510的功耗僅為130 mW。
TLC5510模數(shù)轉換器內(nèi)含時鐘發(fā)生器、內(nèi)部基準電壓分壓器、1套高4位采樣比較器、編碼器、鎖存器、2套低4位采樣比較器、編碼器和1個低4位鎖存器等電路。TLC5510的外部時鐘信號CLK通過其內(nèi)部的時鐘發(fā)生器可產(chǎn)生3路內(nèi)部時鐘,以驅動3組采樣比較器?;鶞孰妷悍謮浩鲃t可用來為這3組比較器提供基準電壓。輸出A/D信號的高4位由高4位編碼器直接提供,而低4位的采樣數(shù)據(jù)則由2個低4位的編碼器交替提供。 TLC551O的工作時序如圖2所示。時鐘信號CLK在每一個下降沿采集模擬輸入信號。第N次采集的數(shù)據(jù)經(jīng)過2.5個時鐘周期的延遲后送到內(nèi)部數(shù)據(jù)總線上。此時如果輸出使能端OE有效,則數(shù)據(jù)可送至8位數(shù)據(jù)總線上。
TLC5510不僅具有高速的A/D轉換功能,還帶有內(nèi)部采樣和保持電路,從而大大簡化了外圍電路的設計。只需要使用內(nèi)部基準電阻和VDDA構成基準分壓器即可實現(xiàn)2V的滿量程轉換范圍。因為正常的復合視頻信號最大電壓值不超過2V,所以在本系統(tǒng)設計過程中,將TLC5510的REF-BS端短接至REFB端,REFTS端短接至REFT端,從而獲得2V基準電壓。視屏信號從ANALOGIN引腳輸入,同時采用4MHz的有源晶振提供時鐘信號。通過計算可知,該芯片在單行視頻信號掃描時間內(nèi)可進行200次的A/D轉換,對于簡單圖像算法而言,橫向分辨率已完全能夠滿足要求。如果提高TLC5510工作時鐘頻率,可以繼續(xù)提高橫向分辨率。若使TLC5510工作在極限情況下(20 MHz的采樣率),橫向分辨率可達到約800個點,也就是30萬像素以上。上電以后,由于將TLC5510的OE引腳接到GND,芯片始終處于低有效狀態(tài),所以A/D轉換將持續(xù)工作。8位數(shù)據(jù)輸出直接接到下一級FIFO存儲器的輸入,由處理器決定存儲器是否將A/D轉換數(shù)據(jù)寫入。
具體的應用電路如圖3所示。需要注意的是,因為TLC5510的AGND引腳和DGND引腳在內(nèi)部沒有連接,所以在外部需要連接。建議采用電感或磁珠連接,用以去除模擬地對數(shù)字信號的噪聲。同時,在VDDA與AGND,VDDD與DGND引腳之間,應分別使用0.1 μF的電容去耦,建議使用陶瓷電容,并配以10 μF以上的鉭電容儲能。
2.2 FIFO存儲器
uPD42280是一種2 Mbit的雙口FIFO(先入先出)存儲器。在本系統(tǒng)中作為A/D轉換數(shù)據(jù)的緩存,容量大且性價比較高,能滿足一幀圖像數(shù)據(jù)約25萬個像素點存儲的要求。A/D轉換數(shù)據(jù)按照一定的時鐘節(jié)拍順序寫入或讀出,它的讀寫時鐘速率最高可達33 MHz。uPD42280本身的數(shù)據(jù)是8 bit并行輸入輸出,通過控制它的WE引腳、WRST引腳、RE引腳和RRST引腳的電平高低,實現(xiàn)數(shù)據(jù)的寫入和讀取。圖4為uPD42280的讀、寫周期時序。
在寫控制周期,WE若處于低有效狀態(tài)(WRST此時為高電平),數(shù)據(jù)在下一周期上升沿到來前寫入存儲器地址中;WE若處于高禁能狀態(tài)。寫入暫停,寫地址指針保持。在WE處于低有效狀態(tài)時。若WRST處于低電平,則寫地址指針將從當前地址回到地址0,WRST回復高電平后,數(shù)據(jù)也將從地址0開始寫入。在讀控制周期,RE若處于低有效狀態(tài)(RRST此時為高電平),數(shù)據(jù)在下一周期上升沿到時被讀?。籖E若處于高禁能狀態(tài),讀取暫停,讀地址指針保持。在RE處于低有效狀態(tài)時,若RRST處于低電平,則讀地址指針將從當前地址回到地址0,RRST回復高電平后,數(shù)據(jù)也將從地址0開始讀取。
在本系統(tǒng)中,uPD42280的讀寫時鐘與TLC5510的工作時鐘使用同一信號源(4 MHz),既保證了FIFO的寫操作與A/D轉換操作的同步,避免出現(xiàn)數(shù)據(jù)漏接或混接現(xiàn)象,又可以使數(shù)據(jù)讀取時,讀取速率僅由處理器IO口的讀取時間決定。通過處理器IO口控制讀、寫使能信號,讀、寫地址復位信號,可完成一幀圖像數(shù)據(jù)的讀寫和更新。在處理器的總線頻率為32 MHz時,單行視屏信號掃描時間內(nèi)(約50 us),IO口最終可讀入約190個有效像素的灰度值。去除行消隱區(qū)和圖像中心對正需要省略的點,本系統(tǒng)每行視頻信號可采集到的有效像素點為160個。
需要注意的是,uPD42280本身外圍電路很簡單,只需要在電源與地之間加1個去耦電容即可。但是由于FIFO存儲器有別于RAM,是不能進行內(nèi)部尋址操作的,只能是簡單的地址復位。所以在軟件控制時一定要注意邏輯,嚴格按照讀寫時序去控制4個引腳,才能保證一場圖像的完整寫入和讀取。
本系統(tǒng)創(chuàng)新之處在于將高速A/D轉換器TLC5510與FIFO存儲器uPD42280聯(lián)合使用,實現(xiàn)視頻信號的轉換和數(shù)據(jù)存儲。這樣做使得整個前端的轉換和存儲完全由幾個IO口控制,對單片機本身的性能要求低、資源要求少,僅僅用到了單片機的兩路中斷和多路普通IO口。這樣的設計使得本系統(tǒng)移植性很強,可用于多種單片機或DSP。并且這兩款核心器件都是8 bit并行數(shù)據(jù)輸入輸出,速度很快,可以實現(xiàn)視頻數(shù)據(jù)的高速傳輸。
3 軟件流程
軟件部分主要包括初始化、寫操作、讀操作和圖像處理。首先將處理器的IO口,中斷口初始化,PORTB8位作為數(shù)據(jù)入口,輸入使能;PORTK0~PORTK3作為存儲器的讀寫使能和地址控制線,輸出使能,PORTJ0、PORTJ1分別響應行、場中斷,上升沿觸發(fā)。
主函數(shù)是一個無限循環(huán),不斷檢測圖像是否采集完成,如果采集完成則進行圖像處理,然后作出相應的控制輸出。場中斷服務函數(shù)的主要功能是將行計數(shù)器清零,寫地址回零,為新一幀圖像作準備。行中斷服務函數(shù)主要功能是行計數(shù)器自加,用以判斷圖像當前的行數(shù)。判斷采集是否開始,控制寫入使能,判斷采集是否結束,控制寫入禁能,控制讀取地址回零,讀取使能,將數(shù)據(jù)經(jīng)過一級緩沖,通過8位數(shù)據(jù)總線讀入單片機的二維數(shù)組中,并通知主函數(shù)圖像數(shù)據(jù)準備好了。具體流程如圖5所示。
4 實驗數(shù)據(jù)
實驗環(huán)境是白底黑線的模型跑道,一場圖像數(shù)據(jù)的實際采集像素點為160個x20行,圖像處理的算法主要是邊緣檢測和一次線性插值,目的是得到跑道的中心線軌跡。圖6所示為單行A/D轉換數(shù)據(jù),其中灰度值高的對應白板,灰度值低的對應黑線,橫坐標為每個采樣點在實際圖像中的X軸的比例坐標,量綱是1。
圖7所示為該系統(tǒng)對不同道路類型的識別情況,上邊是攝像頭拍攝的實際圖像,下邊是圖像數(shù)據(jù)經(jīng)邊緣檢測和線性插值處理之后得到的中心線軌跡。橫坐標為每行中心線在實際圖像中的X軸的比例坐標,縱坐標為每行中心線在實際圖像中的Y軸的比例坐標,量綱為1。該橫、縱坐標可以通過對圖像的實際測量標定得到現(xiàn)實世界的二維坐標。再將對應值存入單片機一個靜態(tài)的二維數(shù)組中,控制需要時通過查表提取使用;也可以根據(jù)三維坐標變化計算得出。
可以看出,在跑道中心線軌跡與實際圖像符合得較好。曲線的軌跡能很好地反映跑道特征,從而較為容易地判斷跑道類型,為下一步控制策略提供了可靠的信息依據(jù)。
5 結論
本文提出基于高速A/D轉換器TLC5510和FIFO存儲器uPD42102的視頻采集系統(tǒng),為普通單片機實現(xiàn)視頻信號的高速、高精度采集提供了一種新思路。該系統(tǒng)電路簡單穩(wěn)定,移植性較強,對徽處理器要求低,可適用于絕大多數(shù)CCD或CMOS攝像頭輸出的復合視頻信號采集。實驗證明,該系統(tǒng)可以為圖像處理提供可靠的前端硬件平臺。