點(diǎn)擊上方藍(lán)字關(guān)注我們
引言
圖像信息的獲取和傳輸是圖像處理系統(tǒng)的重要組成部分,直接影響圖像處理系統(tǒng)的性能。圖像信息的采集包括對(duì)圖像數(shù)據(jù)、各種附帶參數(shù)信息以及狀態(tài)控制信號(hào)的采集,一般圖像信號(hào)和狀態(tài)參數(shù)信號(hào)以及控制信號(hào)是獨(dú)立產(chǎn)生的,因此需要設(shè)計(jì)一種系統(tǒng)能夠?qū)⑼獠吭O(shè)備產(chǎn)生的圖像數(shù)據(jù)和狀態(tài)控制信號(hào)同步采集,并能長(zhǎng)距離高速傳輸,綜合考慮到圖像采集系統(tǒng)所要求的實(shí)時(shí)性,可靠性,以及FPGA在數(shù)字電路的設(shè)計(jì)中的優(yōu)勢(shì),為此本文討論了一種利用FPGA實(shí)現(xiàn)基于LVDS的圖像數(shù)據(jù)采集傳輸技術(shù)。
系統(tǒng)設(shè)計(jì)
高速圖像數(shù)據(jù)的采集傳輸系統(tǒng)如圖1 所示,主要包括圖像數(shù)據(jù)源的形成、數(shù)據(jù)信息的處理和緩存以及幀數(shù)據(jù)的轉(zhuǎn)發(fā)三部分。其中,圖像數(shù)據(jù)源的形成過(guò)程中,成像設(shè)備作為圖像數(shù)據(jù)的來(lái)源,它為系統(tǒng)提供高分辨率的可見光和紅外圖像,考慮系統(tǒng)的實(shí)時(shí)性和高可靠性因素,采用LVDS傳輸接口實(shí)現(xiàn)數(shù)據(jù)長(zhǎng)距離高速傳輸,解決了傳輸瓶頸問(wèn)題,圖像數(shù)據(jù)在進(jìn)入FPGA之前需通過(guò)數(shù)據(jù)格式轉(zhuǎn)換接口(采用MAX9218實(shí)現(xiàn))將串行的數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)并緩存。
數(shù)據(jù)信息的處理由協(xié)處理器FPGA完成,主要包括圖像數(shù)據(jù)及相關(guān)參數(shù)信息的采集、緩存、組幀和圖像數(shù)據(jù)的轉(zhuǎn)發(fā)。其中圖像數(shù)據(jù)的組幀過(guò)程最為復(fù)雜, FPGA根據(jù)圖像源中幀同步、行同步、圖像選擇信號(hào)接收解串圖像,存儲(chǔ)至緩存區(qū),并將圖像附帶的參數(shù)信息寫入緩存后部,經(jīng)組幀狀態(tài)機(jī)形成所需的圖像數(shù)據(jù)幀。
圖像數(shù)據(jù)幀形成后,轉(zhuǎn)發(fā)存儲(chǔ)至乒乓結(jié)構(gòu)的幀存儲(chǔ)器,其容量為:512×512×8bit=2Mb。同時(shí)硬件邏輯自動(dòng)將圖像和配套參數(shù)信息數(shù)據(jù)通過(guò)LVDS圖像發(fā)送接口發(fā)送至數(shù)據(jù)鏈,圖像數(shù)據(jù)再次以串行的LVDS方式傳輸?shù)胶罄m(xù)設(shè)備進(jìn)行處理。
系統(tǒng)實(shí)現(xiàn)
FPGA及外圍硬件電路
在接口轉(zhuǎn)換電路模塊中,圖像數(shù)據(jù)接收端和發(fā)送端均需采用LVDS串行方式進(jìn)行傳輸,所以在接收端將串行輸入的數(shù)據(jù)并行接收進(jìn)FPGA進(jìn)行處理和在發(fā)送端將并行的數(shù)據(jù)串行輸出時(shí),需要進(jìn)行并串和串并轉(zhuǎn)換。
本設(shè)計(jì)選用MAXIM公司點(diǎn)對(duì)點(diǎn)LVDS串行/解串器芯片MAX9247/MAX9218實(shí)現(xiàn)數(shù)據(jù)收發(fā)。
在MAX9218接收端,需要進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,將串行數(shù)據(jù)源變成并行格式供FPGA處理,同樣在圖像數(shù)據(jù)鏈路終端發(fā)送方MAX9247對(duì)輸入的圖像數(shù)據(jù)也有特定的時(shí)序要求,涉及到數(shù)據(jù)位和控制位的交替?zhèn)鬏?,需要由FPGA完成數(shù)據(jù)格式的轉(zhuǎn)換, 并產(chǎn)生相應(yīng)的控制信號(hào)DE_IN。
可編程器件FPGA選用Xilinx公司Virtex-4系列XC4VLX25。實(shí)現(xiàn)的功能主要是:根據(jù)輸入的行幀同步,采圖像同步和圖像選擇信號(hào)來(lái)實(shí)現(xiàn)圖像數(shù)據(jù)的接收,并緩存到FPGA內(nèi)部的接收RxFIFO中,進(jìn)行幀頭幀尾識(shí)別、時(shí)序轉(zhuǎn)換,控制信號(hào)的生成,并且根據(jù)自定義的通訊協(xié)議,從數(shù)據(jù)流中分解出數(shù)據(jù)幀,同時(shí)將原始圖像數(shù)據(jù)和狀態(tài)數(shù)據(jù)打包到同一幀數(shù)據(jù)包中,輸出至數(shù)據(jù)鏈路終端。
圖像數(shù)據(jù)鏈路層
由圖3數(shù)據(jù)的流向來(lái)分析,從LVDS接口板輸出的串行圖像數(shù)據(jù)由14個(gè)數(shù)據(jù)位(數(shù)字圖像數(shù)據(jù)為D0--D13,低位在前高位在后)、幀同步、行同步、時(shí)鐘同步、圖像選擇信號(hào)、采圖同步信號(hào)組成。圖像數(shù)據(jù)同步時(shí)鐘采用7.375MHz,DE_IN由圖像的幀同步信號(hào)產(chǎn)生,幀、行同步均為高電平有效,圖像選擇信號(hào)用來(lái)區(qū)分紅外和可見光圖像,紅外圖像為256×320b,可見光圖像為512×512b,19位圖像數(shù)據(jù)信號(hào)經(jīng)過(guò)MAX9218解串后的數(shù)據(jù)和控制位接入FPGA。
FPGA設(shè)計(jì)時(shí),針對(duì)紅外和可見光兩種不同類型的圖像數(shù)據(jù)進(jìn)行采集傳輸,設(shè)置一個(gè)模式寄存器ModeReg來(lái)實(shí)現(xiàn)圖像選擇,可以填0或1,用來(lái)區(qū)分紅外和可見光,當(dāng)采集可見光時(shí),每輸出一幀有效圖像數(shù)據(jù),需輸出兩個(gè)幀信號(hào),第一幀內(nèi)(A幀)只輸出采圖同步信號(hào),不輸出圖像數(shù)據(jù)、行信號(hào)等,第二幀(B幀)中不輸出采圖同步信號(hào),只輸出圖像數(shù)據(jù)、行信號(hào)等;當(dāng)采集紅外圖像時(shí),只需輸出一幀,圖像選擇信號(hào)在第一個(gè)幀信號(hào)的下降沿跳變,至第二個(gè)幀信號(hào)下降沿有效,高電平表示紅外圖像,低電平表示可見光圖像。具體時(shí)序參考圖3。
經(jīng)過(guò)FPGA組幀完成的幀數(shù)據(jù)同時(shí)要轉(zhuǎn)發(fā)到終端數(shù)據(jù)鏈路和外部幀存儲(chǔ)器中,供后續(xù)設(shè)備調(diào)用。為了實(shí)現(xiàn)后續(xù)設(shè)備提取圖像信息時(shí)的實(shí)時(shí)性,外部存儲(chǔ)模塊采用由乒乓開關(guān)控制的兩個(gè)片外幀存儲(chǔ)器,應(yīng)用FPGA實(shí)現(xiàn)雙幀存交替切換,將圖像數(shù)據(jù)存儲(chǔ)在兩個(gè)獨(dú)立的FIFO中,F(xiàn)IFO采用IDT公司的IDT72V2103,此器件快速的存取允許圖像實(shí)時(shí)存儲(chǔ)轉(zhuǎn)發(fā)。在FPGA的控制下,F(xiàn)IFO空間的一幀數(shù)據(jù)送出后,然后開始將FIFO1 空間的數(shù)據(jù)送出,同時(shí)又向FIFO中寫入下一幀數(shù)據(jù),這樣可以保證后續(xù)圖像處理設(shè)備不間斷的提取圖像數(shù)據(jù),以實(shí)現(xiàn)快速處理,提高工作效率。
組幀狀態(tài)機(jī)
狀態(tài)機(jī)在FPGA內(nèi)部設(shè)計(jì)成兩部分,為組幀狀態(tài)機(jī)(外圈)和組行狀態(tài)機(jī)(內(nèi)圈)。其中組幀狀態(tài)機(jī)各狀態(tài)轉(zhuǎn)移順序及條件見圖4,各狀態(tài)占用時(shí)間可以通過(guò)組行狀態(tài)機(jī)中的行計(jì)數(shù)來(lái)控制,近而可以完成不同大小規(guī)格的圖像的接收。組幀狀態(tài)機(jī)共有6個(gè)狀態(tài)。
state0:空閑狀態(tài)(系統(tǒng)復(fù)位)。state1:幀有效期開始到行有效期開始之間的延時(shí)。state2:圖像幀有效期,state3:圖像參數(shù)幀有效期。state4:行有效期結(jié)束到幀有效期結(jié)束之間的延時(shí)。state5:幀無(wú)效期。Reset為輸入的狀態(tài)機(jī)復(fù)位信號(hào),在系統(tǒng)復(fù)位狀態(tài),如果用來(lái)啟動(dòng)狀態(tài)機(jī)的信號(hào)StartMakeFrame = 1,狀態(tài)機(jī)開始工作,進(jìn)入系統(tǒng)下一狀態(tài),組幀狀態(tài)機(jī)在各狀態(tài)轉(zhuǎn)移條件滿足時(shí),依次進(jìn)入下一狀態(tài),否則,保持在原狀態(tài)。
組行狀態(tài)機(jī)共有3個(gè)狀態(tài)。
stML_Idle:空閑狀態(tài)。stML_High:行有效期。stML_Low:行無(wú)效期。在外圈組幀狀態(tài)機(jī)的每個(gè)狀態(tài)中,包含n個(gè)組行狀態(tài),所包含的組行狀態(tài)機(jī)中的行數(shù)即組幀狀態(tài)機(jī)各狀態(tài)所占用時(shí)間,組行狀態(tài)機(jī)和組幀狀態(tài)機(jī)啟動(dòng)條件一致,同時(shí)啟動(dòng)。
以采集可見光圖像數(shù)據(jù)為例,上電復(fù)位期間系統(tǒng)處于states0狀態(tài),狀態(tài)機(jī)用外部輸入的7.375MHz時(shí)鐘同步整個(gè)運(yùn)行過(guò)程,圖像的幀、行、圖像數(shù)據(jù)等信號(hào)在同步時(shí)鐘的下降沿跳變,上升沿鎖存。一幀圖像數(shù)據(jù)的大小為512×512bit,并將圖像附帶的參數(shù)信息寫入圖像數(shù)據(jù)后一行(即513行),在幀有效期間(states1、 states2、 states3狀態(tài)),CLK 信號(hào)作為行計(jì)數(shù)器的時(shí)鐘,每幀圖像在行有效之前有1行無(wú)效圖像信號(hào)(states1), 在states2狀態(tài)下,控制采集一幀中的前512行,在states3狀態(tài)下,采集圖象的參數(shù)信息,將圖像數(shù)據(jù)和狀態(tài)參數(shù)組合為統(tǒng)一的數(shù)據(jù)幀,采集完一幀圖像數(shù)據(jù)后等待下一個(gè)幀同步信號(hào)的到來(lái)。在行有效期(stML_High)控制采集一行中的512個(gè)像素點(diǎn)數(shù)據(jù),在CLK信號(hào)的上升沿進(jìn)行計(jì)數(shù), 在數(shù)據(jù)有效期間采集完512個(gè)像素點(diǎn),等待下一個(gè)行同步信號(hào)的到來(lái),按同樣方式對(duì)下一行512像素點(diǎn)數(shù)據(jù)進(jìn)行采集,直至采集完一幀中的512行。
系統(tǒng)仿真
在該系統(tǒng)中,狀態(tài)機(jī)設(shè)計(jì)是難點(diǎn),圖5是運(yùn)用Active-HDL7.1仿真工具的狀態(tài)機(jī)仿真結(jié)果,仿真時(shí),采用7.375MHz時(shí)鐘同步,狀態(tài)機(jī)啟動(dòng)后,計(jì)數(shù)寄存器里的數(shù)據(jù)遞減,進(jìn)而產(chǎn)生各狀態(tài)轉(zhuǎn)移滿足的條件,以此實(shí)現(xiàn)狀態(tài)機(jī)的翻轉(zhuǎn)。
在Active-HDL7.1中編寫TestBench文件時(shí),通過(guò)向組幀狀態(tài)機(jī)計(jì)數(shù)寄存器寫數(shù),來(lái)控制各狀態(tài)所占用的時(shí)間,利用 StartMakeFrame信號(hào)高電平啟動(dòng)狀態(tài)機(jī),各狀態(tài)發(fā)生翻轉(zhuǎn)時(shí),狀態(tài)完成標(biāo)志就產(chǎn)生產(chǎn)生高電平跳變。
根據(jù)圖5的仿真結(jié)果,可以看出組幀狀態(tài)機(jī)工作正常,所有的邏輯關(guān)系也都驗(yàn)證無(wú)誤。
結(jié)語(yǔ)
本文采用FPGA設(shè)計(jì)實(shí)現(xiàn)高速圖像采集系統(tǒng),并采用LVDS接口實(shí)現(xiàn)接收與發(fā)送,各種模塊之間通過(guò)緩存實(shí)現(xiàn)通信,避免圖像的丟失;采集的圖像類型和圖像尺寸可以通過(guò)軟件重新配置FPGA進(jìn)行調(diào)整??傊?,基于FPGA 的高速專用圖像采集系統(tǒng)電路集成度高、信噪比高、功耗低、成本低、速度快以及接口方便,所設(shè)計(jì)系統(tǒng)采用兩幀切換存儲(chǔ)方式,使得后續(xù)的其它圖像處理模塊能夠與圖像采集模塊并行工作,為圖像處理器的高度集成化實(shí)現(xiàn)提供了可能性。
歡迎加入至芯科技FPGA微信學(xué)習(xí)交流群,這里有一群優(yōu)秀的FPGA工程師、學(xué)生、老師、這里FPGA技術(shù)交流學(xué)習(xí)氛圍濃厚、相互分享、相互幫助、叫上小伙伴一起加入吧!
點(diǎn)個(gè)在看你最好看
原文標(biāo)題:利用FPGA設(shè)計(jì)基于LVDS的圖像數(shù)據(jù)采集傳輸系統(tǒng)
文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
FPGA
+關(guān)注
關(guān)注
1625文章
21620瀏覽量
601232
原文標(biāo)題:利用FPGA設(shè)計(jì)基于LVDS的圖像數(shù)據(jù)采集傳輸系統(tǒng)
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論