新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PCI總線的高速CCD圖像存儲(chǔ)系統(tǒng)設(shè)計(jì)

        基于PCI總線的高速CCD圖像存儲(chǔ)系統(tǒng)設(shè)計(jì)

        作者: 時(shí)間:2013-02-05 來源:網(wǎng)絡(luò) 收藏

        4部分軟硬件程序設(shè)計(jì)

          PCI9054LocalBus硬件驅(qū)動(dòng)

          PCI9054局部總線是外設(shè)(FPGA)和9054之間通信的橋梁。9054圖像數(shù)據(jù)的采集需要使9054局部總線信號(hào)滿足一定的時(shí)序要求,保證數(shù)據(jù)傳輸?shù)耐剑葱枰狥PGA端硬件驅(qū)動(dòng)。驅(qū)動(dòng)是用VerilogHDL代碼編寫的一個(gè)狀態(tài)機(jī),代碼如下[2][4]:

          always@(posedgeCLK)

          begin

          casex(CurrentState)

          1‘b0:begin

          if(!LLADS_)

          beginLLREADY=1;CurrentState=1;end

          elsebeginLLREADY=0;end

          end

          1‘b1:begin

          if(LLBLAST_)//突發(fā)循環(huán)重復(fù)

          beginLLREADY=1;CurrentState=1;end

          else//最后一個(gè)循環(huán)

          beginLLREADY=0;CurrentState=0;end

          end

          default:

          CurrentState=0;

          Endcaseend

          assignLLREADY_=(LLREADY)?1‘b0:1‘b1;

          4.2PCI9054驅(qū)動(dòng)層和應(yīng)用層設(shè)計(jì)

          系統(tǒng)所用PCI采集卡非windows標(biāo)準(zhǔn)硬件,驅(qū)動(dòng)程序需要自行開發(fā),這里使用WDM編程。為了提高速度采用雙線程操作。由于寫磁盤比較慢,如果等寫完磁盤再讀localbus顯然效率太低,所以啟動(dòng)雙線程雙buffer讀寫數(shù)據(jù)[5]。

          部分程序代碼:

          BOOLGetData()

          {……

          //創(chuàng)建等待驅(qū)動(dòng)中斷線程以及寫文件線程

          hEvent_Disk=GreateEvent(NULL,TRUE,TRUE,NULL);hEvent_Mem=CreateEvent(NULL,TRUE,FALSE,NULL);

          _beginthread(WaitForDataThread,0,NULL);_beginthread(WriteDiskThread,0,NULL);

          //啟動(dòng)DMA傳輸

          SetDma();BlockDmaLocalToPci(dmabuffer,BLOCK_ONE_DMA);

          }

          voidWaitForDataThread(void*pParam)

          {}

          voidWriteDiskThread(void*pParam)

          {}

          4.3數(shù)據(jù)傳輸指令生成

          PC應(yīng)用程序產(chǎn)生數(shù)據(jù)傳輸指令,觸發(fā)數(shù)據(jù)傳輸。指令的產(chǎn)生是通過9054在PC端的底層驅(qū)動(dòng),設(shè)置9054LOCAL端USERO管腳電平,使FPGA進(jìn)入工作狀態(tài),并產(chǎn)生相機(jī)行觸發(fā)信號(hào)(EXSYNC),觸發(fā)相機(jī)拍照傳輸數(shù)據(jù)。USERO信號(hào)為高電平時(shí),F(xiàn)PGA和9054都處于等待狀態(tài);USERO下降沿觸發(fā)數(shù)據(jù)傳輸,使FPGA和9054進(jìn)入工作狀態(tài);數(shù)據(jù)傳輸完畢,USERO拉高。時(shí)序如圖3。


        圖3數(shù)據(jù)傳輸協(xié)議

        5系統(tǒng)測(cè)試及工程考慮

          本系統(tǒng)測(cè)試微機(jī)環(huán)境為:CPU,Pentium(R)4.2.40GHz;內(nèi)存,333MHz,512MB/s;北橋芯片,845PE;操作系統(tǒng),WindowsServer2003;SCSI硬盤空間,120G。

          系統(tǒng)測(cè)試結(jié)果:圖像單線穩(wěn)定存儲(chǔ)速率為37.2MB/s,流水線穩(wěn)定存儲(chǔ)速率為71.2MB/s;持續(xù)記錄時(shí)間為25分鐘。

          工程考慮:系統(tǒng)速度主要限制于兩個(gè)瓶頸,一是硬盤本身,二是。本系統(tǒng)雖然采用了高速硬盤,但還有一個(gè)操作效率的問題。數(shù)據(jù)從FPGA到PCI9054的傳輸介質(zhì)采用一般硬盤線,此類硬盤線的上限頻率為33M,限制數(shù)據(jù)采集速度;同時(shí)由于系統(tǒng)需要通過轉(zhuǎn)移數(shù)據(jù),而計(jì)算機(jī)的多為32位、33MHz的總線,這個(gè)總線的理論數(shù)據(jù)為132MB/s,當(dāng)總線上僅僅有一個(gè)設(shè)備時(shí),實(shí)測(cè)實(shí)際總線持續(xù)傳輸速率在100MB/s以下,當(dāng)總線上再掛載磁盤適配器時(shí),總線的數(shù)據(jù)傳輸速率會(huì)更低。系統(tǒng)穩(wěn)定性主要取決于FPGA內(nèi)部邏輯的容錯(cuò)性和微機(jī)的穩(wěn)定性。在高速存儲(chǔ)的環(huán)境下,微機(jī)系統(tǒng)容易死機(jī),因此微機(jī)選擇具有高穩(wěn)定性的WindowsServer2003操作系統(tǒng)作為圖像采集的存儲(chǔ)環(huán)境。

          本文作者創(chuàng)新點(diǎn)是利用FPGA和PCI9054完成了對(duì)高速、高分辨率圖像的采集存儲(chǔ)。

        參考文獻(xiàn):

          1.High-SpeedTDILineScanCamera-CameraUser’sManual.America:Dalsa,2002

          2.PCI9054DataBook.America:PLXTechnology,2000

          3.王洪迅等,高速偵察圖像數(shù)據(jù)的獲取與緩沖.微電子學(xué)與計(jì)算機(jī)[J].2004,10-1

          4.杜建國(guó),VerilogHDL硬件描述語言[M].北京:國(guó)防工業(yè)出版社,2004

          5.裴喜龍,基于PCI總線的高速數(shù)據(jù)采集卡系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).微計(jì)算機(jī)信息[J],2006,7-1:129-131


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 肥东县| 松滋市| 大理市| 从化市| 肥东县| 山东省| 万山特区| 迁安市| 车险| 略阳县| 青河县| 蒲城县| 临澧县| 邹平县| 赣州市| 麦盖提县| 乐山市| 海伦市| 宜宾县| 太和县| 班戈县| 通化市| 惠来县| 武山县| 郎溪县| 沙坪坝区| 台中县| 渑池县| 宁强县| 山西省| 淅川县| 望城县| 米易县| 天峨县| 谷城县| 临邑县| 绍兴市| 嵊泗县| 车险| 比如县| 德州市|