新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于PCI總線的高速CCD圖像存儲系統設計

        基于PCI總線的高速CCD圖像存儲系統設計

        作者: 時間:2013-02-05 來源:網絡 收藏

        4部分軟硬件程序設計

          PCI9054LocalBus硬件驅動

          PCI9054局部總線是外設(FPGA)和9054之間通信的橋梁。9054圖像數據的采集需要使9054局部總線信號滿足一定的時序要求,保證數據傳輸的同步,即需要FPGA端硬件驅動。驅動是用VerilogHDL代碼編寫的一個狀態機,代碼如下[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_)//突發循環重復

          beginLLREADY=1;CurrentState=1;end

          else//最后一個循環

          beginLLREADY=0;CurrentState=0;end

          end

          default:

          CurrentState=0;

          Endcaseend

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

          4.2PCI9054驅動層和應用層設計

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

          部分程序代碼:

          BOOLGetData()

         ?。?/P>

          //創建等待驅動中斷線程以及寫文件線程

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

         ?。?/P>

          voidWaitForDataThread(void*pParam)

          {}

          voidWriteDiskThread(void*pParam)

          {}

          4.3數據傳輸指令生成

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


        圖3數據傳輸協議

        5系統測試及工程考慮

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

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

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

          本文作者創新點是利用FPGA和PCI9054完成了對高速、高分辨率圖像的采集存儲。

        參考文獻:

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

          2.PCI9054DataBook.America:PLXTechnology,2000

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

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

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 友谊县| 繁昌县| 枝江市| 蓬莱市| 开江县| 利辛县| 海丰县| 灵川县| 阜新市| 高安市| 横山县| 陆河县| 张家口市| 鹤峰县| 枝江市| 自贡市| 宾阳县| 宁都县| 天长市| 北辰区| 丰台区| 安龙县| 文山县| 宁都县| 湖口县| 武安市| 田林县| 常山县| 榆中县| 嘉兴市| 台东县| 泗阳县| 房山区| 漳浦县| 涪陵区| 昭觉县| 托克逊县| 万年县| 开封县| 米易县| 宁明县|