<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PCI總線(xiàn)的高速CCD圖像存儲系統設計

基于PCI總線(xiàn)的高速CCD圖像存儲系統設計

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

4部分軟硬件程序設計

  PCI9054LocalBus硬件驅動(dòng)

  PCI9054局部總線(xiàn)是外設(FPGA)和9054之間通信的橋梁。9054圖像數據的采集需要使9054局部總線(xiàn)信號滿(mǎn)足一定的時(shí)序要求,保證數據傳輸的同步,即需要FPGA端硬件驅動(dòng)。驅動(dòng)是用VerilogHDL代碼編寫(xiě)的一個(gè)狀態(tài)機,代碼如下[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)重復

  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驅動(dòng)層和應用層設計

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

  部分程序代碼:

  BOOLGetData()

 ?。?/P>

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

  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);

 ?。?/P>

  voidWaitForDataThread(void*pParam)

 ?。?/P>

  voidWriteDiskThread(void*pParam)

 ?。?/P>

  4.3數據傳輸指令生成

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


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

5系統測試及工程考慮

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

  系統測試結果:圖像單線(xiàn)穩定存儲速率為37.2MB/s,流水線(xiàn)穩定存儲速率為71.2MB/s;持續記錄時(shí)間為25分鐘。

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

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

參考文獻:

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

  2.PCI9054DataBook.America:PLXTechnology,2000

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

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

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


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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>