專利名稱:一種圖像數(shù)據(jù)的圖像處理裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理與圖像采集,圖像通信領(lǐng)域,尤其涉及基于可編程邏輯門陣 列FPGA與數(shù)字信號處理器DSP實現(xiàn)的Camera link接口類型的圖像數(shù)據(jù)的高速實時采集, 基于外部存儲器接口 EMIF和千兆網(wǎng)收發(fā)模塊Ethernet MAC的高速實時傳輸與顯示裝置。
背景技術(shù):
在傳統(tǒng)的圖像處理中,圖像采集往往是其中的第一個環(huán)節(jié),一般的采集裝置是圖 像采集卡與個人計算機配合使用,把采集卡插入到個人計算機的PCI插槽,將采集到的圖 像數(shù)據(jù)存儲到個人計算機的硬盤上,然后再對采集到的圖像進行分析與處理,包括圖像增 強,圖像壓縮,圖像通信等處理方式。這樣的采集裝置有以下幾個不足空間體積大,已不能 適應(yīng)電子設(shè)備小型化的發(fā)展趨勢;非實時性,采集到的圖像要先轉(zhuǎn)存到硬盤上,一般是事后 從硬盤讀取數(shù)據(jù),對數(shù)據(jù)進行分析,不利于現(xiàn)場分析與調(diào)試;帶寬有限,一般計算機的PCI 插槽只有32位寬度,頻率也只有33MHz,以80%的利用率計算,只有約ΙΟΟΜΒ/s的帶寬,已 不滿足高幀頻,高分辨率的圖像數(shù)據(jù)的實時采集;設(shè)備升級繁瑣,如果要升級圖像采集及傳 輸顯示設(shè)備,需同時更換采集卡與計算機,費時費力,且性價比不高。
發(fā)明內(nèi)容
針對傳統(tǒng)圖像采集,傳輸與顯示系統(tǒng)的不足,本發(fā)明的目的是提供一種基于可編 程邏輯門陣列 FPGA (Field programmable gate array)和數(shù)字信號處理器 DSP (Digital Signal Processor)作為實現(xiàn)平臺,實現(xiàn)圖像數(shù)據(jù)的高速實時采集,傳輸與顯示。為實現(xiàn)所述目的,本發(fā)明的一種圖像數(shù)據(jù)的圖像處理裝置由C⑶相機、可編程邏 輯門陣列、數(shù)字信號處理器、數(shù)據(jù)組合模塊和顯示模塊組成,所述可編程邏輯門陣列含有依 序串聯(lián)連接的圖像數(shù)據(jù)采集模塊、緩存模塊和傳輸模塊;所述數(shù)字信號處理器含有依序串 聯(lián)連接的接收數(shù)據(jù)模塊、數(shù)據(jù)搬移模塊和千兆網(wǎng)發(fā)送模塊,其中可編程邏輯門陣列與C⑶相機連接,C⑶相機攝取的圖像數(shù)據(jù)通過Camera link接 口不斷的進入到可編程邏輯門陣列內(nèi)的圖像采集模塊,圖像數(shù)據(jù)采集模塊將實時采集到的 圖像有效數(shù)據(jù)放入緩存模塊中,當(dāng)緩存模塊中的圖像有效數(shù)據(jù)量達到某一數(shù)值時,將調(diào)用 傳輸模塊輸出圖像有效數(shù)據(jù);數(shù)字信號處理器的輸入端與可編程邏輯門陣列的輸出端連接,圖像有效數(shù)據(jù)傳輸 到數(shù)字信號處理器輸入端的接收數(shù)據(jù)模塊,接收數(shù)據(jù)模塊負責(zé)接收從可編程邏輯門陣列傳 輸過來的圖像有效數(shù)據(jù),并通過數(shù)據(jù)搬移模塊,將圖像有效數(shù)據(jù)從外部存儲器接口的地址 區(qū)間搬移到數(shù)字信號處理器的片外內(nèi)存雙倍動態(tài)存儲器中,當(dāng)搬移完成一幀后,千兆網(wǎng)發(fā) 送模塊發(fā)送圖像有效數(shù)據(jù);數(shù)據(jù)組合模塊與數(shù)字信號處理器的千兆網(wǎng)發(fā)送模塊連接,接收圖像有效數(shù)據(jù),對 圖像有效數(shù)據(jù)進行移位、組合,組合成圖像顯示模塊需要的格式;顯示模塊與數(shù)據(jù)組合模塊連接,用于接收并顯示組合后的圖像數(shù)據(jù)。
優(yōu)選實施例,所述可編程邏輯門陣列,采集具有Camera link接口類型的不同幀 頻、不同分辨率的CCD相機的數(shù)據(jù);CCD相機通過MDR26連接器和可編程邏輯門陣列相連, 在可編程邏輯門陣列設(shè)置不同的幀頻和分辨率,可編程邏輯門陣列中的數(shù)據(jù)采集模塊實時 采集任何幀頻和分辨率的CCD相機的數(shù)據(jù)。優(yōu)選實施例,基于可編程邏輯門陣列與數(shù)字信號處理器實現(xiàn)實時傳輸平臺,通過 外部存儲器接口傳輸數(shù)據(jù),將可編程邏輯門陣列作為外部存儲器接口的主設(shè)備,數(shù)字信號 處理器作為外部存儲器接口的從設(shè)備;外部存儲器接口可配置為8位、16位、32位或64位 寬度,外部存儲器接口配置為同步方式。優(yōu)選實施例,所述的實時傳輸平臺還包含二個通用輸入輸出管腳,其中第一通用 輸入輸出管腳用于幀信號的傳輸,第二通用輸入輸出管腳用于采集緩存模塊的可讀標(biāo)志的 傳輸;通過所述通用輸入輸出管腳保證圖像數(shù)據(jù)的對齊。優(yōu)選實施例,數(shù)字信號處理器通過千兆網(wǎng)發(fā)送模塊將圖像數(shù)據(jù)傳輸給數(shù)據(jù)組合模 塊。優(yōu)選實施例,顯示模塊實時接收通過千兆網(wǎng)發(fā)送模塊傳輸進來的數(shù)據(jù),由于CCD 相機具有不同的深度級,因此,需要經(jīng)過移位,進行數(shù)據(jù)組合,才能顯示在計算機的屏幕上。本發(fā)明提供的裝置與傳統(tǒng)方法相比有以下幾個優(yōu)點空間體積小通過可編程邏輯門陣列FPGA與數(shù)字信號處理器DSP實現(xiàn)的圖像采 集,傳輸與顯示裝置是嵌入式系統(tǒng),嵌入式系統(tǒng)的優(yōu)點之一就是體積小,可裁減。在這種裝 置上,只保留與圖像采集,傳輸和顯示有關(guān)的功能與器件,其它無關(guān)的器件盡可悉數(shù)去掉。實時性可編程邏輯門陣列FPGA有豐富的資源,通過這些資源,完全可以實現(xiàn)圖 像的實時采集,實時傳輸,實時顯示,利于現(xiàn)場分析與調(diào)試。帶寬高可編程邏輯門陣列FPGA內(nèi)實現(xiàn)采集所用到的片內(nèi)存儲器,可支持到 450MB/S的讀寫速度,當(dāng)采集的相機速度還大于此速度時,可以通過并行實例化多個存儲器 并行工作,可以匹配高幀頻,高分辨率的圖像數(shù)據(jù)。用于傳輸?shù)紻SP的外部存儲器接口 EMIF 為64位寬度,頻率可支持到125Mhz,這樣就能提供2GB/s的帶寬,可滿足圖像的實時傳輸。升級簡單嵌入式系統(tǒng)可認為系統(tǒng)由硬件和軟件二個平臺組成,通常只需要在軟 件程序編寫時,只要將設(shè)備工作的頻率提高,就可以提高整個嵌入式系統(tǒng)的帶寬,以進行升 級。不需要重新定制PCB電路板,減少了工程開發(fā)的周期。
圖1示出本發(fā)明的圖像數(shù)據(jù)的處理裝置的結(jié)構(gòu)示意圖;圖中標(biāo)號說明1CCD相機
2可編程邏輯門陣列
21圖像數(shù)據(jù)采集模塊
22采集緩存模塊
23傳輸模塊
3數(shù)字信號處理器
31接收數(shù)據(jù)模塊
32數(shù)據(jù)搬移模塊33千兆網(wǎng)發(fā)送模塊4數(shù)據(jù)組合模塊5顯示模塊
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照 附圖,對本發(fā)明進一步詳細說明。本發(fā)明所描述的方法通過可編程邏輯門陣列2(FPGA)與數(shù)字信號處理器3 (DSP) 之間的外部存儲器接口(EMIF)與二個通用輸入輸出管腳(GPIO)信號來實現(xiàn),將可編程邏 輯門陣列2配置為主設(shè)備(Master),將數(shù)字信號處理器3配置為從設(shè)備(Slave),組成一種 主從式的結(jié)構(gòu),這樣,可編程邏輯門陣列2可以產(chǎn)生寫請求,將數(shù)據(jù)寫入到數(shù)字信號處理器 3。外部存儲器接口選用同步方式,這樣可以簡化電路,減少可編程邏輯門陣列2內(nèi)所占用 的資源。如圖1示出了一種圖像處理的處理裝置,由該裝置由CXD相機1、可編程邏輯門陣 列2、數(shù)字信號處理器3、數(shù)據(jù)組合模塊4和顯示模塊5組成,所述可編程邏輯門陣列2含有 依序串聯(lián)連接的圖像數(shù)據(jù)采集模塊21、緩存模塊22和傳輸模塊23,所述數(shù)字信號處理器3 含有依序串聯(lián)連接的接收數(shù)據(jù)模塊31、數(shù)據(jù)搬移模塊32和千兆網(wǎng)發(fā)送模塊33,其中可編程邏輯門陣列2與CXD相機1連接,CXD相機1的圖像數(shù)據(jù)通過Camera link 接口不斷的進入到可編程邏輯門陣列2內(nèi)的圖像采集模塊21,圖像采集模塊21將實時采集 到的圖像有效數(shù)據(jù)放入緩存模塊22,當(dāng)緩存模塊22中的圖像有效數(shù)據(jù)量達到某一數(shù)值時, 將調(diào)用可編程邏輯門陣列2與數(shù)字信號處理器3之間的傳輸模塊23輸出圖像有效數(shù)據(jù);數(shù) 字信號處理器3的輸入端與可編程邏輯門陣列2的輸出端連接,把圖像有效數(shù)據(jù)傳輸?shù)綌?shù) 字信號處理器3。數(shù)字信號處理器3的接收數(shù)據(jù)模塊31負責(zé)接收從可編程邏輯門陣列2傳 輸進來的圖像有效數(shù)據(jù),并檢測場、行信號,并通過數(shù)據(jù)搬移模塊32,將圖像有效數(shù)據(jù)從外 部存儲器接口的地址區(qū)間搬移到數(shù)字信號處理器3的片外內(nèi)存雙倍動態(tài)存儲器DDR2中,當(dāng) 搬移完成一幀后,千兆網(wǎng)發(fā)送模塊33發(fā)送圖像有效數(shù)據(jù);數(shù)據(jù)組合模塊4與數(shù)字信號處理 器3的千兆網(wǎng)發(fā)送模塊33連接,接收圖像有效數(shù)據(jù),把圖像數(shù)據(jù)進行移位、組合,組合成圖 像顯示模塊5需要的圖像數(shù)據(jù)格式;顯示模塊5與數(shù)據(jù)組合模塊4連接,用于接收并顯示組 合后的圖像數(shù)據(jù)。由于圖像傳輸所用到的數(shù)字信號處理器3、數(shù)據(jù)組合模塊4、顯示模塊5以 及數(shù)字信號處理器3依序串聯(lián)連接的接收數(shù)據(jù)模塊31、數(shù)據(jù)搬移模塊32和千兆網(wǎng)發(fā)送模塊 33是一套完整的傳輸系統(tǒng),而圖像原始數(shù)據(jù)記錄系統(tǒng)不使用這些資源,因此,文中所設(shè)計的 傳輸系統(tǒng)可與圖像記錄系統(tǒng)都作為圖像采集后的一個功能模塊,并不影響原始圖像數(shù)據(jù)的 記錄。當(dāng)CXD相機1工作后,數(shù)據(jù)會不斷的通過Camera link協(xié)議進入到圖像數(shù)據(jù)采集 模塊21,圖像數(shù)據(jù)采集模塊21根據(jù)CCD相機1的行、場同步信號產(chǎn)生圖像數(shù)據(jù)有效信號, 并將此信號送給緩存模塊22。同時,將圖像數(shù)據(jù)有效信號賦給通用輸入輸出管腳GPIOJt 為中斷或查詢,提供給數(shù)字信號處理器3,以使數(shù)字信號處理器3檢測到此圖像數(shù)據(jù)有效信 號,使圖像數(shù)據(jù)得以對齊。
緩存模塊22是用FPGA片內(nèi)存儲器(BRAM)生成的一個深度為1K、寫入寬度為64 位、讀出寬度為64位的先進先出緩存FIFO。從圖像數(shù)據(jù)采集模塊21傳送過來的行、場同 步信號相與后,作為此FIFO的寫使能信號,將有效數(shù)據(jù)寫入到FIFO中。FIFO的輸出信號 rd_data_count作為從可編程邏輯門陣列2發(fā)送給數(shù)字信號處理器3的控制信號,當(dāng)rd_ data_count大于某一數(shù)值時,這一數(shù)值是根據(jù)圖像分辨率可調(diào)的,設(shè)為300,將一個通用輸 入輸出管腳GPIO拉高,供DSP查詢,表示FIFO可讀,即將一幀內(nèi)有效的行數(shù)據(jù)讀到DSP中。 若將FIFO的數(shù)據(jù)讀出,還需要一個讀使能信號,由于外部存儲器接口的讀使能、地址選通、 片選信號為低有效,而FIFO的讀使能為高有效,因此,將外部存儲器接口的讀使能、地址選 通、片選信號取反再相與后,才能作為FIFO的讀使能信號??删幊踢壿嬮T陣列2與數(shù)字信號處理器3之間數(shù)據(jù)的傳輸模塊23由一個外部存 儲器接口,二個通用輸入輸出管腳信號組成。外部存儲器接口用于數(shù)據(jù)傳輸,而通用輸入輸 出管腳信號用于控制信號傳輸。即外部存儲器接口用于將采集到的圖像數(shù)據(jù)傳輸,而通用 輸入輸出管腳用于傳輸行信號和場信號。數(shù)字信號處理器3的接收數(shù)據(jù)模塊31負責(zé)檢測行、場有效信號,并接收從外部存 儲器接口傳輸進來的圖像數(shù)據(jù)。數(shù)字信號處理器3要查詢通用輸入輸出管腳的場信號,當(dāng) 檢測到此信號有效時,再檢測通用輸入輸出管腳的行信號,若通用輸入輸出管腳的行信號 也有效,方能將FIFO中的數(shù)據(jù)讀出,檢測場信號和行信號的目的是保證圖像幀的對齊。數(shù)字信號處理器3的數(shù)據(jù)搬移模塊32負責(zé)在DSP內(nèi)進行數(shù)據(jù)搬移。由于在 DSP內(nèi),各種外設(shè)接口是以存儲器地址映射的方式組織的,外部存儲器接口分為4個區(qū) 間,每個區(qū)間對應(yīng)一個片選信號,如外部存儲器接口片選使能信號CE2(chip eable)對 應(yīng)的地址空間為0ΧΑ0000000——0XA07FFFFF,外部存儲器接口片選使能信號CE3對應(yīng)的 地址空間為0ΧΒ0000000-—0XB07FFFFF,外部存儲器接口片選使能信號CE4對應(yīng)的地址 空間為0XC0000000――0XC07FFFFF,外部存儲器接口片選使能信號CE5對應(yīng)的地址空間 為0XD0000000——0XD07FFFFF,每個區(qū)間均為2MB。由于圖像數(shù)據(jù)是連續(xù)的從FPGA傳 送到DSP,因此,若不及時的將數(shù)據(jù)搬移,當(dāng)外部存儲器接口區(qū)間寫滿后,后續(xù)的數(shù)據(jù)會沖 掉前面寫入的數(shù)據(jù)。因此,需要在外部存儲器接口區(qū)間寫滿前,將此區(qū)間內(nèi)的數(shù)據(jù)進行搬 移。本發(fā)明將數(shù)據(jù)搬移到DSP的雙倍動態(tài)存儲器DDR2中,DDR2內(nèi)存對應(yīng)的地址空間為 0ΧΕ0000000-—0XFFFFFFFF,在DDR2內(nèi)存中分配可以存放一幀圖像大小的空間,用到暫存 從外部存儲器接口 EMIF區(qū)間搬移過來的圖像數(shù)據(jù),當(dāng)數(shù)據(jù)量達到一幀時,將這一幀圖像的 起始地址傳給DSP的千兆網(wǎng)發(fā)送模塊33。千兆網(wǎng)發(fā)送模塊33負責(zé)把數(shù)據(jù)從數(shù)字信號處理器3發(fā)送到個人計算機。由于此網(wǎng) 絡(luò)接口是多任務(wù)的,因此要用到DSP的實時系統(tǒng)內(nèi)核BIOS (basic input/output system)。 通過DSP的BIOS這樣一個基本的操作系統(tǒng),完成DSP網(wǎng)絡(luò)接口的初始化,并及時將數(shù)據(jù) 發(fā)送。這里,需要將DSP的網(wǎng)絡(luò)地址配置為192. 168. 0.40,個人計算機的網(wǎng)絡(luò)地址配置為 192. 168. 0. 100.數(shù)據(jù)組合模塊4是個人計算機上對從網(wǎng)絡(luò)上接收到的數(shù)據(jù)進行組合。由于CXD相 機1可能是8位、10位、12位、甚至14位的深度,因此,必須根據(jù)顯示的需要,對數(shù)據(jù)進行組 合,此時,可從圖像數(shù)據(jù)的最高位開始選取,選擇8位或其它位數(shù)。顯示模塊5將組合后的數(shù)據(jù)進行顯示,這一部分是在個人計算機上實現(xiàn)。
由于不同的CCD相機1具有不同的深度級別,不失一般性,以下實施方式設(shè)定相機 深度級別為10位,二路輸出,但并不局限于10位,二路輸出,本發(fā)明可以適用于其它任何深 度級別,單路或多路輸出的相機。步驟1 配置外部存儲器接口的工作時鐘。外部存儲器接口可支持多個工作時鐘, 在DSP的寄存器中是通過PLL Controller Divider 4Register來設(shè)置的。將此寄存器中的 D4EN位置1,使能PLL Controller Divider 4 Register,開始測試時,可將外部存儲器接口 的工作時鐘調(diào)低,以免造成FPGA不必要的數(shù)據(jù)錯亂,等二者連接建立并正常通信時,再將 工作頻率調(diào)高??稍O(shè)外部存儲器接口的工作頻率為IOOMHz,即將PLLController Divider 4 RegisterRATIO的值設(shè)為5。這一工作是在DSP的GEL文件中設(shè)置的。步驟2 測試外部存儲器接口的工作時鐘。為保證FPGA能正常工作在DSP設(shè)置的 工作時鐘,必須在FPGA內(nèi)對外部存儲器接口工作時鐘進行測試,看時鐘是否穩(wěn)定。測試可 通過在FPGA內(nèi)將輸入的工作時鐘管腳引出到一個通用測試管腳上,用示波器進行測量,看 工作時間是否為步驟1設(shè)置的IOOMhz。步驟3 將采集的數(shù)據(jù)重新組合。本發(fā)明將二路輸出的CXD相機1數(shù)據(jù)按一路處 理,只需要將CCD相機的分辨率減少一半即可,不影響圖像數(shù)據(jù)的采集。由于10位深度的 CCD相機所占數(shù)據(jù)通路為12位,二路輸出則為24位,而DSP操作的地址是按字節(jié),或字,或 雙字進行對齊的,所以,在傳輸給DSP之間,需要將24位的圖像數(shù)據(jù)重新組合成為DSP可以 進行對齊操作的寬度,外部存儲器接口寬度可支持到64位寬度,因此,需要將CCD相機輸入 的24位數(shù)據(jù)組合為64位寬度。根據(jù)24與64的最小公倍數(shù),需要將8個24位數(shù)據(jù)重新組 合為3個64位數(shù)據(jù)。在FPGA中,通過一個計數(shù)器對24位數(shù)據(jù)進行計數(shù),當(dāng)計數(shù)器從0累 加到7時,表示已經(jīng)接收了 8個24位數(shù)據(jù),將這8個24位數(shù)據(jù),首先組成一個192位寬度 的數(shù)據(jù),然后再分別取這192位寬度數(shù)據(jù)的高、中、低64位,即完成將寬度為24位的數(shù)據(jù)組 合為寬度為64位的數(shù)據(jù)。步驟4 產(chǎn)生采集緩存模塊22。本發(fā)明采用Xilinx公司提供的核生成器(Core_ generator)工具來生成一個FIFO。FIFO的寬度設(shè)置為64位,深度為1024。此FIFO選用 block RAM實現(xiàn),輸入和輸出時鐘不同,需要有空標(biāo)志empty,滿標(biāo)志full 二個信號,設(shè)置 FIFO的初始值為十六進制的0XA5,以便于后續(xù)測試。步驟5 將組合后的64位寬度數(shù)據(jù)作為采集緩存模塊22的數(shù)據(jù)輸入,接到FIFO的 數(shù)據(jù)輸入din端口。步驟6 產(chǎn)生采集緩存模塊22的寫使能信號。CXD相機1工作后,有行信號、場信 號、及數(shù)據(jù)有效信號。只有在數(shù)據(jù)有效時才能將數(shù)據(jù)寫入采集緩存模塊22。因此要正確的 產(chǎn)生采集緩存模塊22的寫使能信號,即在幀內(nèi),行有效時,才能寫入采集緩存模塊22,因此 需要將場信號,行信號相與,作為采集緩存模塊22的寫使能信號。步驟7 產(chǎn)生采集緩存模塊22的復(fù)位信號。步驟2中產(chǎn)生的FIFO需要一個復(fù)位信 號,使FIFO完成清零操作。若將FIFO —直寫入,而沒有復(fù)位信號,會造成FIFO寫滿,后續(xù) 采集的C⑶相機1的數(shù)據(jù)就不能再寫入到FIFO中,會造成采集的數(shù)據(jù)圖像丟失。因此,需 要一個復(fù)位信號。復(fù)位信號可由CCD相機1的場信號,即幀有效信號產(chǎn)生,當(dāng)寫完一幀時, 產(chǎn)生一個復(fù)位信號,使FIFO回到初始狀態(tài),準(zhǔn)備接收下一幀。因此,此復(fù)位信號應(yīng)是場間信 號,即幀無效信號。
步驟8 將采集緩存模塊22的輸出數(shù)據(jù)端口接到外部存儲器接口上,以使采集緩 存模塊22中的數(shù)據(jù)可以傳輸給數(shù)字信號處理器3。步驟9 產(chǎn)生采集緩存模塊22的讀出使能信號。只有當(dāng)讀出使能模塊有效時,才 能將FIFO中的數(shù)據(jù)讀出到外部存儲器接口上。由于DSP已將FPGA配置成DSP的一個外部 存儲器接口存儲區(qū)域,因此,需將DSP輸送給FPGA的控制信號進行組合,才能正確訪問此區(qū) 域。由于將FPGA配置為同步方式,因此需將外部存儲器接口的讀使能、地址選通信號、片選 信號組合成FIFO的讀使能信號,因為外部存儲器接口的控制信號是低有效,而FIFO的讀使 能為高有效,需將組合信號取反。步驟10 產(chǎn)生采集緩存模塊22的可讀標(biāo)志信號。步驟9中產(chǎn)生的是采集緩存模 塊22的讀出使能信號,即當(dāng)其有效時,數(shù)據(jù)便可讀出。那采集緩存模塊22何時可讀,應(yīng)該 何時將讀出使能信號拉高?這是步驟10需要解決的問題。采集緩存模塊22-FIF0本身有 二個計數(shù)器,wr_data_count表示已寫入FIFO的數(shù)據(jù)量,rd_data_count表示FIFO中還剩 余的數(shù)據(jù)量。此時可用rd_data_Coimt來控制FIFO可讀標(biāo)志。在場內(nèi),也就是幀有效信號 內(nèi),若rd_data_COunt大于300,將可讀標(biāo)志拉高,可讀標(biāo)志要通知DSP,因此,可用一個通用 輸入輸出管腳信號表示,由于圖像數(shù)據(jù)可能不是300的整數(shù)倍,因此,在幀無效期間,需將 FIFO中還剩余的數(shù)據(jù)讀出,此時,不能用rd_data_COunt大于300作為判斷條件,因為剩余 的數(shù)據(jù)量可能不足300個,必須用rd_data_Coimt大于0作為判斷條件,也即只要當(dāng)FIFO 還有數(shù)據(jù)時,就必須將FIFO讀出并讀空,這樣,才能保證采集數(shù)據(jù)的不丟失。步驟11 產(chǎn)生幀有效信號。外部存儲器接口傳輸?shù)氖菆D像數(shù)據(jù),因此需要有幀的 對齊操作,防止數(shù)據(jù)的錯位。此處可通過一個通用輸入輸出管腳實現(xiàn),可以直接將CCD相機 1的場有效信號接到此通用輸入輸出管腳(GPIO)信號上,供DSP查詢或觸發(fā)中斷。步驟12 =DSP使能外部存儲器接口,通用輸入輸出管腳。可通過TI公司提供的庫 函數(shù)或直接操作外部存儲器接口,通用輸入輸出管腳對應(yīng)的寄存器實現(xiàn)。步驟13 將外部存儲器接口與FPGA內(nèi)的FIFO相連。DSP配置外部存儲器接口方 式。外部存儲器接口可支持二種接口方式即同步接口方式和異步接口方式。同步接口方式 適用于 SBSRAM,ZBT SRAM,F(xiàn)IF0 接 口等。異步接 口方式適用于 SRAM,EPR0M,flash memory, ASIC接口等。異步接口的邏輯要復(fù)雜一些,因此,為了減少FPGA內(nèi)所用資源,本發(fā)明將外部 存儲器接口配置為同步接口方式。將FPGA可認為是接到DSP上的一個FIFO。步驟14 配置外部存儲器接口數(shù)據(jù)寬度。外部存儲器接口可支持8位、16位、32 位、64位數(shù)據(jù)寬度,為了達到最大帶寬,本發(fā)明將外部存儲器接口帶寬配置為64位。需要將 配置寄存器 CEn Configuration Register (CEnCFG)的 ASIZE 值置 3。步驟15:配置外部存儲器接口的其它參數(shù)。其它參數(shù)可選用默認設(shè)置。步驟16:配置通用輸入輸出管腳信號。由于通用輸入輸出管腳是由FPGA觸發(fā), DSP只是查詢通用輸入輸出管腳的狀態(tài),因此需在DSP內(nèi)將通用輸入輸出管腳配置為輸入 信號,通過設(shè)置通用輸入輸出管腳的方向寄存器Direction Register實現(xiàn)。步驟17 產(chǎn)生模擬相機數(shù)據(jù)。由于真實的CCD相機1的數(shù)據(jù)是沒有規(guī)律的,因此, 為了調(diào)試,可先產(chǎn)生模擬相機數(shù)據(jù)。本發(fā)明用從1開始累加的方法,將數(shù)據(jù)寫入到采集緩存 模塊22。步驟18 檢測FPGA與DSP之間的外部存儲器接口能否正常通信。完成步驟1到步驟17后,可以訪問外部存儲器接口映射的地址空間。先檢測到采集緩存模塊22的可讀 標(biāo)志,即通用輸入輸出管腳時,查看外部存儲器接口中對應(yīng)的數(shù)據(jù),是否為步驟17設(shè)置的 累加形式。若是,則二者的通信已建立,可以進行數(shù)據(jù)傳輸。步驟19:檢測整幀圖像。在步驟18正確的情況下,可以進行此步操作。由于要用 到數(shù)據(jù)搬移模塊,可以先用內(nèi)存拷貝函數(shù)memcpy進行操作,若用memcpy得到正確數(shù)據(jù)后, 可以再換作內(nèi)存直接訪問EDMA(Enhanced direct memory access)傳輸,以提高速度。首 先將外部存儲器接口映射地址區(qū)間的數(shù)據(jù)搬移到DSP的片外內(nèi)存DDR2中,以防止采集的后 續(xù)數(shù)據(jù)將外部存儲器接口區(qū)間中還沒有進行搬移的數(shù)據(jù)覆蓋,每次進行數(shù)據(jù)搬移時,需計 算好外部存儲器接口的地址偏移,防止引起不必要的數(shù)據(jù)錯位。當(dāng)搬移完一幀圖像后,有二 種方式檢測整幀圖像,可以用DSP開發(fā)環(huán)境提供的菜單viewOgraph,或是將數(shù)據(jù)通過網(wǎng)絡(luò) 傳輸?shù)接嬎銠C上進行顯示。此處,選擇第一種。步驟20 連接DSP與PC機的網(wǎng)絡(luò)。利用TI公司提供的庫函數(shù)在DSP內(nèi)編寫函數(shù), 在計算機上,用Visual C++開發(fā)基于嵌套字socket通信的網(wǎng)絡(luò)連接。步驟21 執(zhí)行步驟19和步驟20,將采集到的圖像通過網(wǎng)絡(luò)傳輸?shù)接嬎銠C上.步驟22 將計算機進行數(shù)據(jù)組合。由于數(shù)據(jù)深度級別可能不是8位,為了在計算 機上顯示和人眼觀察,此處需要對數(shù)據(jù)進行移位操作,即只取數(shù)據(jù)的高8位進行顯示,稱之 為數(shù)據(jù)組合。步驟23 顯示組合后的數(shù)據(jù)。通過Visual C++開發(fā)環(huán)境,生成一個MFC的顯示窗 口,顯示組合后的圖像數(shù)據(jù)。步驟24 連續(xù)顯示。在步驟19和步驟23中,調(diào)試時是以幀為單位的靜態(tài)圖像,還 不能連續(xù)的采集,傳輸,顯示圖像,因此,需要將程序進行改進,以達到使采集的數(shù)據(jù)連續(xù)到 達計算機進行顯示。此處,可通過一個while語句來實現(xiàn),在while循環(huán)體內(nèi),數(shù)據(jù)搬移與 網(wǎng)絡(luò)傳輸是二個子函數(shù)即可。步驟25 連續(xù)檢測圖像。由于在步驟17中產(chǎn)生的模擬相機數(shù)據(jù)是有規(guī)律的,并且 是周期性的,因此,可以在PC機顯示時觀察到有規(guī)律的圖像。步驟26 在保證步驟1到步驟25均得到正確執(zhí)行后,可以將模擬的相機數(shù)據(jù)換成 真實的相機數(shù)據(jù),此處,只需要修改采集緩存模塊22的數(shù)據(jù)輸入端口,其余信號不變。附表1為FPGA占用資源情況
資源名稱使用量對應(yīng)的總資源量所占比重Slice Flip Flops1,13427,3924%4input LUTs712273922%RAMB16s2113615%BUFGMUXs31618%
9 可見本發(fā)明所占用的資源少,這有利于在資源的限的嵌入式系統(tǒng)上實現(xiàn)。實驗測 得FPGA與DSP之間通過外部存儲器接口傳輸時,有效帶寬約為320MB/S??蓾M足大部分實 時傳輸需求,另外,通過外部存儲器接口實現(xiàn)的傳輸系統(tǒng)帶寬并不局限于此,因為相機采集 的速度有限,若相機采集的數(shù)據(jù)量更大,理論上可以達到更高的帶寬。以上所述,僅為本發(fā)明中的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任 何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可理解想到的變換或替換,都應(yīng)涵蓋在 本發(fā)明的包含范圍之內(nèi),因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求書的保護范圍為準(zhǔn)。
權(quán)利要求
一種圖像數(shù)據(jù)的圖像處理裝置,其特征在于,該裝置由CCD相機、可編程邏輯門陣列、數(shù)字信號處理器、數(shù)據(jù)組合模塊和顯示模塊組成,所述可編程邏輯門陣列含有依序串聯(lián)連接的圖像數(shù)據(jù)采集模塊、緩存模塊和傳輸模塊;所述數(shù)字信號處理器含有依序串聯(lián)連接的接收數(shù)據(jù)模塊、數(shù)據(jù)搬移模塊和千兆網(wǎng)發(fā)送模塊,其中可編程邏輯門陣列與CCD相機連接,CCD相機攝取的圖像數(shù)據(jù)通過Camera link接口不斷的進入到可編程邏輯門陣列內(nèi)的圖像采集模塊,圖像數(shù)據(jù)采集模塊將實時采集到的圖像有效數(shù)據(jù)放入緩存模塊中,當(dāng)緩存模塊中的圖像有效數(shù)據(jù)量達到某一數(shù)值時,將調(diào)用傳輸模塊輸出圖像有效數(shù)據(jù);數(shù)字信號處理器的輸入端與可編程邏輯門陣列的輸出端連接,把圖像有效數(shù)據(jù)傳輸?shù)綌?shù)字信號處理器輸入端的接收數(shù)據(jù)模塊,接收數(shù)據(jù)模塊負責(zé)接收從可編程邏輯門陣列傳輸過來的圖像有效數(shù)據(jù),并通過數(shù)據(jù)搬移模塊,將圖像有效數(shù)據(jù)從外部存儲器接口的地址區(qū)間搬移到數(shù)字信號處理器的片外內(nèi)存雙倍動態(tài)存儲器中,當(dāng)搬移完成一幀后,千兆網(wǎng)發(fā)送模塊發(fā)送圖像有效數(shù)據(jù);數(shù)據(jù)組合模塊與數(shù)字信號處理器的千兆網(wǎng)發(fā)送模塊連接,接收圖像有效數(shù)據(jù),對圖像有效數(shù)據(jù)進行移位、組合,組合成圖像顯示模塊需要的圖像數(shù)據(jù)格式;顯示模塊與數(shù)據(jù)組合模塊連接,用于接收并顯示組合后的圖像數(shù)據(jù)。
2.如權(quán)利要求1所述的圖像數(shù)據(jù)的圖像處理裝置,其特征在于,所述可編程邏輯門陣 列,采集具有Camera link接口類型的不同幀頻、不同分辨率的CCD相機的數(shù)據(jù);CCD相機 通過MDR26連接器和可編程邏輯門陣列相連,在可編程邏輯門陣列設(shè)置不同的幀頻和分辨 率,可編程邏輯門陣列中的數(shù)據(jù)采集模塊實時采集任何幀頻和分辨率的CCD相機的數(shù)據(jù)。
3.如權(quán)利要求1所述的圖像數(shù)據(jù)的圖像處理裝置,其特征在于,基于可編程邏輯門陣 列與數(shù)字信號處理器實現(xiàn)實時傳輸平臺,通過外部存儲器接口傳輸數(shù)據(jù),將可編程邏輯門 陣列作為外部存儲器接口的主設(shè)備,數(shù)字信號處理器作為外部存儲器接口 EMIF的從設(shè)備; 外部存儲器接口 EMIF可配置為8位、16位、32位或64位寬度,外部存儲器接口配置為同步 方式。
4.如權(quán)利要求1所述的圖像數(shù)據(jù)的圖像處理裝置,其特征在于,所述的實時傳輸平臺 還包含二個通用輸入輸出管腳,第一通用輸入輸出管腳用于幀信號的傳輸,第二通用輸入 輸出管腳用于采集緩存模塊的可讀標(biāo)志的傳輸;通過所述通用輸入輸出管腳保證圖像數(shù)據(jù) 的對齊。
5.如權(quán)利要求1所述的圖像數(shù)據(jù)的圖像處理裝置,其特征在于,數(shù)字信號處理器通過 千兆網(wǎng)發(fā)送模塊將圖像數(shù)據(jù)傳輸給數(shù)據(jù)組合模塊4.
6.如權(quán)利要求1所述的圖像數(shù)據(jù)的圖像處理裝置,其特征在于,顯示模塊實時接收通 過千兆網(wǎng)發(fā)送模塊傳輸進來的數(shù)據(jù),由于CCD相機具有不同的深度級,因此,需要經(jīng)過移 位,進行數(shù)據(jù)組合,才能顯示在計算機的屏幕上。
全文摘要
本發(fā)明提供一種圖像數(shù)據(jù)的圖像處理裝置包括CCD相機、可編程邏輯門陣列、數(shù)字信號處理器、數(shù)據(jù)組合模塊和顯示模塊組成,可編程邏輯門陣列與CCD相機連接,數(shù)字信號處理器的輸入端與可編程邏輯門陣列的輸出端連接,數(shù)據(jù)組合模塊與數(shù)字信號處理器的千兆網(wǎng)發(fā)送模塊連接,顯示模塊與數(shù)據(jù)組合模塊連接,通過軟件設(shè)置,該裝置可以實時、高速采集具有Camera link接口,不同幀頻,不同分辨率的CCD相機數(shù)據(jù),并將采集的數(shù)據(jù)實時傳輸與顯示,便于現(xiàn)場診斷和調(diào)試,同時,該裝置還有小型化,實時性,高帶寬,升級簡單的優(yōu)點。
文檔編號G06T1/00GK101916428SQ20101025822
公開日2010年12月15日 申請日期2010年8月18日 優(yōu)先權(quán)日2010年8月18日
發(fā)明者任國強, 吳勤章, 姚俊, 張峰, 韓文俊 申請人:中國科學(xué)院光電技術(shù)研究所