<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è) > 測試測量 > 設計應用 > 基于PEX8311 PCIE總線(xiàn)的高速圖像采集系統設計

基于PEX8311 PCIE總線(xiàn)的高速圖像采集系統設計

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

提供完備的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

b.JPG



3 系統軟件設計
3.1 FPGA邏輯程序
使用Verilog編寫(xiě)FPGA邏輯控制程序,共有5個(gè)底層模塊和1個(gè)頂層模塊。每個(gè)模塊負責不同的功能。頂層模塊為_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相機的控制;-LOCAL模塊用來(lái)控制PCI—Express接口部分的讀寫(xiě),也就是對芯片進(jìn)行控制,對PEX8311的控制是實(shí)現PCI—Exp-ress的關(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),如本地請求信號LHOLD被置為1,則轉到狀態(tài)1,否則停留在狀態(tài)0。狀態(tài)1為保持狀態(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繼續。

c.JPG


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)足高速圖像傳輸的要求,并且性能穩定。


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

關(guān)鍵詞: 8311 PCIE PEX 總線(xiàn)

評論


相關(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>