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