技術頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術頻道 > 技術百科 > 基于PCI總線的高速CCD圖像存儲系統(tǒng)設計

基于PCI總線的高速CCD圖像存儲系統(tǒng)設計

時間:2008-12-18 14:38:02來源:ronggang

導語:?對高速相機接口進行分析,提出了一種基于PCI總線的高速CCD圖像采集存儲方案。這種方案首先利用FPGA預處理CCD圖像數(shù)據(jù),以保證數(shù)據(jù)同步和數(shù)據(jù)位數(shù)匹配
摘 要: 對高速相機接口進行分析,提出了一種基于PCI總線的高速CCD圖像采集存儲方案。這種方案首先利用FPGA預處理CCD圖像數(shù)據(jù),以保證數(shù)據(jù)同步和數(shù)據(jù)位數(shù)匹配;然后通過PCI9054采集數(shù)據(jù);最后,數(shù)據(jù)通過流水線方式存儲于SCSI硬盤陣列。系統(tǒng)測試結(jié)果表明,該方案構(gòu)建了一個實時性強、操控方便的高速圖像采集系統(tǒng)。 關鍵詞: 高速相機,F(xiàn)PGA,PCI總線,硬盤陣列 [b][align=center] High-speed CCD Image Storage System Design Based on PCI Bus Cao-Qi, Bi Du-yan , Wang Hong-xun[/align][/b] Abstract: By analyzing the interface of high-speed camera, a scheme collecting high-speed CCD image based on PCI bus was addressed. First of all, to guarantee the synchronization of data and the match of bits number, the scheme utilized FPGA to preprocess the data of CCD image. Then, PCI9054 collected the image data .At last, SCSI Hard Disk Array stored the image data by way of the pipeline fashion. The test result the scheme constructed high performance and easily manipulated real-time system on high-speed image collection. Keyword: High-speed camera, FPGA, PCI Bus, Hard Disk Array 1 引言   偵察與監(jiān)視在軍事斗爭中的地位舉足輕重。在各種偵察/監(jiān)視技術中,航空偵察占有重要的地位,可見光偵察是一種重要的偵察形式,無人偵察機顯示出了廣闊的發(fā)展前景,現(xiàn)代科學技術的發(fā)展為現(xiàn)代航空偵察與監(jiān)視技術帶來了新的發(fā)展契機。   航空偵察一個主要的途徑就是利用高性能高速攝像機進行航空拍照,采集各種圖像信息。然而,數(shù)字化的偵察圖像分辨率高、信息量大,使后續(xù)的處理、傳輸、存儲等過程的實現(xiàn)變得極為困難,從而給機載圖像/視頻系統(tǒng)的設計與實現(xiàn)帶來了巨大的挑戰(zhàn)。為了解決這些問題,本文基于某型高速相機,利用低成本FPGA,構(gòu)建了一個高性能的圖像采集存儲系統(tǒng),完成對高分辨率、高幀率偵察圖像的采集和存儲。 2 某型高速相機簡介   系統(tǒng)選擇的高速相機是一款高分辨率、高速度線掃數(shù)字相機,其圖像傳感器采用先進的CCD(Charge-Coupled Device)圖像傳感器,采用了世界尖端水平的高靈敏度掃描成像技術——高速率的TDI(Time Delay and Integration)技術、多重曝光技術并加強藍色響應,從而使該型相機可提供比單輸出線掃相機更好的靈敏度特性,總的數(shù)據(jù)傳輸率可高達200MB/s。   相機接口主要包括后面板上的六個接口:其中四個為數(shù)據(jù)輸出接口,每個接口包括16位數(shù)據(jù)信號,1位數(shù)據(jù)同步信號,1位同步時鐘信號,信號的電平輸出格式為LVDS電平格式;另外兩個接口分別為控制信號接口和電源接口。在控制信號的作用下,相機同步輸出包含同步時鐘信號(STROBE)和水平同步信號(LVAL)在內(nèi)的 8×8bit標準的灰度圖像數(shù)據(jù),圖像分辨率可選擇為4096×30`72(本系統(tǒng)采用分辨率)和2048×3072。   相機控制接口信號中,行觸發(fā)信號(EXSYNC)至關重要。它負責圖像數(shù)據(jù)的觸發(fā)輸出,行觸發(fā)信號的上升沿觸發(fā)數(shù)據(jù)并指示數(shù)據(jù)有效。相機觸發(fā)要求此信號存在下降沿,最小觸發(fā)頻率為300HZ。 3 系統(tǒng)硬件設計及工作原理   本設計硬件系統(tǒng)主要包括電平轉(zhuǎn)換,數(shù)據(jù)接收預處理和數(shù)據(jù)采集存儲三個部分。圖1為系統(tǒng)硬件原理框圖。在總線結(jié)構(gòu)上,系統(tǒng)采用了滿足高速數(shù)據(jù)傳輸?shù)腜CI總線結(jié)構(gòu),PCI9054是PLX公司推出的一種32位33MHz的PCI總線主控I/O加速器,它采用多種先進技術,使復雜的PCI接口應用設計變得相對簡單。   從資源和成本方面考慮,F(xiàn)PGA選用Altera公司的低成本Cyclone系列芯片-EP1C6Q240C8。存儲介質(zhì)則選用SCSI磁盤陣列,它能滿足高速、大數(shù)據(jù)量的存儲。 [align=center] 圖1 系統(tǒng)原理框圖[/align]   系統(tǒng)工作原理:   系統(tǒng)上電,首先完成一系列初始化工作:PC通過底層驅(qū)動配置PCI9054的寄存器,使之處于正常工作模式(C模式)[2]; FPGA上電,配置用戶電路(此時,F(xiàn)PGA內(nèi)部邏輯和PCI9054都處于等待狀態(tài))。   PC應用程序啟動后,向PCI9054發(fā)送數(shù)據(jù)傳輸指令,PCI9054收到數(shù)據(jù)傳輸指令,通過LOCAL BUS通知FPGA開始工作:FPGA產(chǎn)生行觸發(fā)信號(EXSYNC),觸發(fā)相機進行拍照、傳輸數(shù)據(jù)。然后,PCI9054進入工作狀態(tài),開始采集數(shù)據(jù),并將數(shù)據(jù)存儲到磁盤陣列。FPGA內(nèi)部邏輯和PC應用程序通過行計數(shù)判斷一幀圖像傳輸完畢,相繼進入等待狀態(tài)。但是,PC應用程序在接收完一幀圖像,進入等待狀態(tài)后,延續(xù)一定時間,會自動觸發(fā)下一個數(shù)據(jù)傳輸指令通知FPGA開始下一幀圖像傳輸。   電平格式轉(zhuǎn)換   PCI9054芯片電平格式為3.3V LVTTL格式,相機輸出信號的電平格式為LVDS格式,基于系統(tǒng)總體需要,有必要在進行圖像預處理前將LVDS相機輸出信號轉(zhuǎn)換成LVTTL格式電平。   數(shù)據(jù)接收預處理   FPGA完成圖像預處理功能。FPGA是以并行運算為主導的芯片,處理速度更快。數(shù)據(jù)預處理過程包括:數(shù)據(jù)緩沖、位并轉(zhuǎn)換。   數(shù)據(jù)緩沖[3]:相機利用4個通道輸出圖像數(shù)據(jù),每個端口的數(shù)據(jù)傳輸以本端口時鐘為參考,傳輸過程中由于各種差異如傳輸電纜的長度不同,使得各個端口的時鐘信號產(chǎn)生相對的相位漂移,從而使四個端口數(shù)據(jù)輸出不完全同步,這不利于圖像數(shù)據(jù)的同步采集。為消除數(shù)據(jù)異步,F(xiàn)PGA內(nèi)部設計了由4個FIFO組成的數(shù)據(jù)緩沖器組。每個端口的有效數(shù)據(jù)寬度為16bit,傳送一行4096個數(shù)據(jù)需用512個時鐘周期,因此FIFO深度設為512個字。相機送來的4個LVAL信號為各對應通道寫使能信號, 4個STROBE信號作為對應通道寫時鐘。FIFO輸出端采用系統(tǒng)時鐘(15MHz)作為統(tǒng)一的數(shù)據(jù)同步時鐘,并設計一個讀請求信號,當FIFO半滿時讀取數(shù)據(jù),經(jīng)過緩存的數(shù)據(jù)以與系統(tǒng)時鐘同步的64bit寬度格式輸出。   位并轉(zhuǎn)換:PCI9054芯片LOCAL端的有效數(shù)據(jù)位數(shù)有兩種選擇:8bit和32bit(可更改9054寄存器設置,為了保證數(shù)據(jù)采集速度,本系統(tǒng)設置為32bit)。但是相機的輸出數(shù)據(jù)通過緩沖之后仍然為64bit,為了滿足PCI9054數(shù)據(jù)采集位數(shù)要求,必須將64bit數(shù)據(jù)進行位并轉(zhuǎn)換,變成32bit傳輸。本系   統(tǒng)設計在FPGA內(nèi)部將數(shù)據(jù)的高32bit和低32bit分別送入二選一BUSMUX的輸入端,系統(tǒng)時鐘的電平選   擇數(shù)據(jù)輸出。64bit數(shù)據(jù)轉(zhuǎn)化成32bit數(shù)據(jù)傳輸,但數(shù)據(jù)率變成原來的兩倍(30M/s)。   數(shù)據(jù)采集存儲   對于整個系統(tǒng)來說,存儲系統(tǒng)的持續(xù)存儲速度是個至關重要的參數(shù)。數(shù)據(jù)的采集存儲采用微機為主體,在其PCI總線上掛載一塊SCSI的接口卡和9054接口卡,9054接口卡用于數(shù)據(jù)采集,SCSI接口卡上掛載兩個SCSI硬盤,組成RAID-0的硬盤陣列,這樣可以大大提高硬盤的持續(xù)存儲速度。利用PCI9054進行數(shù)據(jù)采集時,數(shù)據(jù)的傳輸路徑為:PCI總線-內(nèi)存-硬盤陣列?,F(xiàn)有兩種傳輸方案可供選擇:第一種為單線采集存儲,顯然,這種方案會降低數(shù)據(jù)的的采集速度。本系統(tǒng)選用第二種方案:流水線存儲,如圖2所示。理論上,流水線方式的數(shù)據(jù)采集速度應該是單線采集的兩倍。 [align=center] 圖2 流水線存儲時序示意圖[/align] 4 部分軟硬件程序設計   PCI9054 Local Bus 硬件驅(qū)動   PCI9054局部總線是外設(FPGA)和9054之間通信的橋梁。9054圖像數(shù)據(jù)的采集需要使9054局部總線信號滿足一定的時序要求,保證數(shù)據(jù)傳輸?shù)耐?,即需要FPGA端硬件驅(qū)動。驅(qū)動是用Verilog HDL代碼編寫的一個狀態(tài)機,代碼如下[2][4]:   always @ (posedge CLK)   begin   casex (CurrentState)   1‘b0: begin   if (!LLADS_)   begin LLREADY <= 1; CurrentState <= 1; end   else begin LLREADY <= 0; end   end   1‘b1: begin   if (LLBLAST_) //突發(fā)循環(huán)重復   begin LLREADY <= 1; CurrentState <= 1; end   else //最后一個循環(huán)   begin LLREADY <= 0; CurrentState <= 0; end   end   default:   CurrentState <= 0;   Endcase end   assign LLREADY_ = (LLREADY) ? 1‘b0 : 1‘b1;   4.2 PCI9054驅(qū)動層和應用層設計   系統(tǒng)所用PCI采集卡非windows標準硬件,驅(qū)動程序需要自行開發(fā),這里使用WDM編程。為了提高速度采用雙線程操作。由于寫磁盤比較慢,如果等寫完磁盤再讀local bus顯然效率太低,所以啟動雙線程雙buffer讀寫數(shù)據(jù)[5]。   部分程序代碼:   BOOL GetData()  ?。?……   //創(chuàng)建等待驅(qū)動中斷線程以及寫文件線程   hEvent_Disk=GreateEvent(NULL,TRUE,TRUE,NULL); hEvent_Mem = CreateEvent(NULL,TRUE,FALSE,NULL);   _beginthread(WaitForDataThread,0,NULL); _beginthread(WriteDiskThread,0,NULL);   //啟動DMA傳輸   SetDma(); BlockDmaLocalToPci(dmabuffer, BLOCK_ONE_DMA);  ?。?   void WaitForDataThread(void * pParam)   {}   void WriteDiskThread(void * pParam)  ?。?   4.3 數(shù)據(jù)傳輸指令生成   PC應用程序產(chǎn)生數(shù)據(jù)傳輸指令,觸發(fā)數(shù)據(jù)傳輸。指令的產(chǎn)生是通過9054在PC端的底層驅(qū)動,設置9054 LOCAL端USERO管腳電平,使FPGA進入工作狀態(tài),并產(chǎn)生相機行觸發(fā)信號(EXSYNC),觸發(fā)相機拍照傳輸數(shù)據(jù)。USERO信號為高電平時,F(xiàn)PGA和9054都處于等待狀態(tài);USERO下降沿觸發(fā)數(shù)據(jù)傳輸,使FPGA和9054進入工作狀態(tài);數(shù)據(jù)傳輸完畢,USERO拉高。時序如圖3。 [align=center] 圖3 數(shù)據(jù)傳輸協(xié)議[/align] 5 系統(tǒng)測試及工程考慮   本系統(tǒng)測試微機環(huán)境為:CPU,Pentium(R) 4. 2.40GHz;內(nèi)存,333MHz,512MB/s;北橋芯片,845PE;操作系統(tǒng),Windows Server 2003;SCSI硬盤空間,120G。   系統(tǒng)測試結(jié)果:圖像單線穩(wěn)定存儲速率為37.2 MB/s ,流水線穩(wěn)定存儲速率為71.2MB/s;持續(xù)記錄時間為25分鐘。   工程考慮:系統(tǒng)速度主要限制于兩個瓶頸,一是硬盤本身,二是PCI總線。本系統(tǒng)雖然采用了高速硬盤,但還有一個操作效率的問題。數(shù)據(jù)從FPGA到PCI9054的傳輸介質(zhì)采用一般硬盤線,此類硬盤線的上限頻率為33M,限制數(shù)據(jù)采集速度;同時由于系統(tǒng)需要通過PCI總線轉(zhuǎn)移數(shù)據(jù),而計算機的PCI總線多為32位、33MHz的總線,這個總線的理論數(shù)據(jù)為132MB/s,當總線上僅僅有一個設備時,實測實際總線持續(xù)傳輸速率在100MB/s以下,當總線上再掛載磁盤適配器時,總線的數(shù)據(jù)傳輸速率會更低。系統(tǒng)穩(wěn)定性主要取決于FPGA內(nèi)部邏輯的容錯性和微機的穩(wěn)定性。在高速存儲的環(huán)境下,微機系統(tǒng)容易死機,因此微機選擇具有高穩(wěn)定性的Windows Server 2003操作系統(tǒng)作為圖像采集的存儲環(huán)境。   本文作者創(chuàng)新點是利用FPGA和PCI9054完成了對高速、高分辨率圖像的采集存儲。 參考文獻:   1.High-Speed TDI Line Scan Camera-Camera User’s Manual. America: Dalsa, 2002   2.PCI 9054 Data Book. America: PLX Technology, 2000   3.王洪迅等,高速偵察圖像數(shù)據(jù)的獲取與緩沖. 微電子學與計算機[J].2004,10-1   4.杜建國,Verilog HDL 硬件描述語言[M].北京:國防工業(yè)出版社,2004   5.裴喜龍,基于PCI總線的高速數(shù)據(jù)采集卡系統(tǒng)設計與實現(xiàn).微計算機信息[J],2006,7-1:129-131

標簽:

點贊

分享到:

上一篇:高速電機變頻器的設計與實現(xiàn)

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網(wǎng)站簡介|會員服務|聯(lián)系方式|幫助信息|版權信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務平臺

網(wǎng)站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號