基于PEX8311 PCIE總線的高速圖像采集系統(tǒng)設計
PEX8311提供完備的PCI—Express從設備支持,PCI-Express接口部分的信號線可以直接與PCI—Express連接器(俗稱金手指)連接。其中,REFCLK±是一組差分時鐘,它由系統(tǒng)主板提供。2個參考時鐘都要求保持在正常工作頻率100MHz的±300ppm之內。PRSNT1/PRSNT2信號線用于檢查附加卡是否插入連接器。此次設計中將PRSNT1和PRSNT2相連,這樣當接口板插入到PCI—Express連接器時就能進行存在檢測。PCI-Express接口部分原理圖,如圖2所示。本文引用地址:http://cafeforensic.com/article/194969.htm
3 系統(tǒng)軟件設計
3.1 FPGA邏輯程序
使用Verilog編寫FPGA邏輯控制程序,共有5個底層模塊和1個頂層模塊。每個模塊負責不同的功能。頂層模塊為PCIE_CAMLINK模塊,它通過調用其他模塊的功能來實現(xiàn)整個系統(tǒng)的功能;CAMLINK模塊用來控制Camera Link接口的讀寫;DoubleSdcon模塊用來控制SDRAM芯片的使能和讀寫,實現(xiàn)圖像的乒乓操作;FIFO模塊用來緩沖數(shù)據(jù)和匹配各芯片的工作速度;C_16450模塊進行串行到并行的轉換,完成對CamLink相機的控制;PEX8311-LOCAL模塊用來控制PCI—Express接口部分的讀寫,也就是對PEX8311芯片進行控制,對PEX8311的控制是實現(xiàn)PCI—Exp-ress總線的關鍵。
設計中是通過編寫狀態(tài)機(FSM,F(xiàn)inite State Machine)來對PEX8311的讀寫進行控制的。圖3為PEX8311的單周期讀寫的Verilog HDL語言時序控制狀態(tài)機設計。狀態(tài)0為空閑狀態(tài),如本地總線請求信號LHOLD被置為1,則轉到狀態(tài)1,否則停留在狀態(tài)0。狀態(tài)1為總線保持狀態(tài),在此狀態(tài)下應將本地總線響應信號LHOLDA置為1。如ADS信號為0且LW/R為1轉到狀態(tài)2;如ADS信號為0且LW/R和BLAST都為1轉到狀態(tài)3,為單周期讀狀態(tài)。狀態(tài)2為單周期寫狀態(tài),在此狀態(tài)下要置READY信號0,以表示寫數(shù)據(jù)有效,在BLAST為0時轉到狀態(tài)3。狀態(tài)3為讀寫完成操作狀態(tài),當LHOLD被置為0時,表明PEX8311不再請求本地總線,轉到狀態(tài)0,當BLAST為0且LHOLD為1時,表明PEX8311還要進行讀寫數(shù)據(jù),則轉到狀態(tài)1繼續(xù)。
3.2 驅動程序
PCI—E總線與PCI總線在軟件層是完全兼容的,因此PCI—E總線驅動程序的開發(fā)過程與PCI設備驅動程序的開發(fā)過程是一樣的。本設計使用VC++6.0和開發(fā)工具包Driver Studio(DS)進行驅動程序的開發(fā)。DS可以集成到Visual C++環(huán)境中,針對特定的應用生成相應的驅動程序框架,在編程中采用面向對象的編程方法,極大地提高了編程效率。
驅動程序主要完成的功能:1)設備的初始化,找到所要控制的硬件,在驅動程序對象中設置驅動程序分發(fā)例程的程序入口點,建立所有驅動程序對象或其他系統(tǒng)資源;2)創(chuàng)建設備對象,利用AddDevice函數(shù)創(chuàng)建了一個設備對象,并將其連接到以PD0為底的設備堆棧中;3)中斷的響應與處理,完成對外部硬件中斷的響應并將中斷信息傳遞給應用程序;4)DMA操作,完成DMA的讀寫操作并在DMA傳輸結束后產(chǎn)生DMA中斷,通過響應的DMA中斷,將傳輸?shù)臄?shù)據(jù)發(fā)送到外部總線或應用程序。
4 實驗結果
通過編寫上位機程序對系統(tǒng)的傳輸性能進行測試,測試的基本原理是上位機生成一批數(shù)據(jù)然后從計算機的PCI-Express接口寫到PEX8311再寫到FIFO,最后寫到SDBAM中,然后上位機再從SDRAM中讀回剛才寫入的數(shù)據(jù),比較讀和寫入的數(shù)據(jù)是否一致就能判斷系統(tǒng)的讀寫是否正確,并且測試數(shù)據(jù)的傳輸速率。經(jīng)過一段時間的測試,系統(tǒng)最大傳輸速度達到180 MB/s,滿足了本系統(tǒng)高速數(shù)據(jù)的傳輸要求。
5 結論
本文設計了基于PCI Express總線的CamLink接口的高速圖像采集系統(tǒng),在完成系統(tǒng)的硬件設計后,編寫了FPGA的邏輯控制程序,并開發(fā)了驅動程序和上位機應用程序。系統(tǒng)采用PCI Express總線實現(xiàn)硬件電路與計算機之間的高速數(shù)據(jù)傳輸。接口芯片采用PLX公司推出的第一款PCI Express橋接芯片PEX8311。實驗結果表明,設計的硬件系統(tǒng)滿足高速圖像傳輸?shù)囊?,并且性能穩(wěn)定。
評論