<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è) > 測試測量 > 設計應用 > 基于Virtex-6的PCI Express高速采集卡設計

基于Virtex-6的PCI Express高速采集卡設計

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

b.JPG


Xilinx公司所提供的 解決方案,遵守了E分層協(xié)議標準,從完成對接收的數據進(jìn)行分層打包,通過(guò)E接口與計算機通信。分層傳輸過(guò)程如圖3所示。
其中處理層主要是接受從軟件層送來(lái)的讀寫(xiě)請求,并且建立一個(gè)請求包傳輸到數據鏈路層。作為事務(wù)層和物理層之間的接口,數據鏈路層通過(guò)維護鏈路活躍狀態(tài)信息、流控制初始化和流控制來(lái)確保數據的完整性、數據包的有序性和數據傳輸的可靠性。物理層位于PCIE結構的最底層,主要實(shí)現鏈路的建立、通路的分配、時(shí)鐘的編碼和并行數據與串行數據的之間的轉換。在初始化階段,在無(wú)需固件或操作系統軟件的介入下,物理層建立狀況狀態(tài)機通過(guò)檢測、配置和輪詢(xún)來(lái)協(xié)商可用的通道數目和雙方的工作頻率。
2.2 高速傳輸實(shí)現
作為采集卡數據傳輸主控,FPGA內部實(shí)現了高速數據傳輸DMA控制操作。為了接收上位機發(fā)出的DMA控制命令,系統首先必須分配一定大小的FPGA內部Block RAM用作DMA控制寄存器,在驅動(dòng)程序的映射下,該Block RAM在采集卡插入系統是會(huì )被映射到主機內存空間,于是主機只需訪(fǎng)問(wèn)映射好的內存空間即可實(shí)現對FPGA內部控制寄存器的訪(fǎng)問(wèn)。
當系統啟動(dòng)傳輸時(shí),上位機首先將DMA傳輸的目的地址寫(xiě)入相應的DMA控制寄存器。在接收到采集命令后,采集卡開(kāi)始接收外部數據,并對數據進(jìn)行解碼、整形,按順序將數據依次通過(guò)高速FIFO送入外部SDRAM進(jìn)行緩存。當SDRAM數據有效后,通過(guò)觸發(fā)信號啟動(dòng)DMA傳輸,DMA控制器將申請從SDRAM中將數據寫(xiě)入到數據發(fā)送FIFO,由發(fā)送模塊將發(fā)送數據FIFO中的數據按照Endpoint Block Plus核的事務(wù)(TRN)接口的格式提交給IP核,由IP核按照PCI 總線(xiàn)規范將數據傳至FPGA的GTP收發(fā)器,GTP收發(fā)器直接連接了PCI-E的差分數據傳輸對,于是通過(guò)PCI-E x8通道將數據以DMA方式直接存入主機物理內存中。當存完一個(gè)數據包后發(fā)出中斷消息通知主機上層應用程序處理數據以及將物理內存中的數據轉存至硬盤(pán),之后即進(jìn)入下一個(gè)數據包的傳輸,如此反復,直到收到主機的停止DMA傳輸命令,即完成當前幀的采集和傳輸并停止下一幀的采集和傳輸。

3 PCI 采集卡驅動(dòng)設計
本系統驅動(dòng)程序在Windows XP操作系統下,應用微軟公司的Driver Studio平臺進(jìn)行開(kāi)發(fā)。Driver Studio平臺提供了驅動(dòng)程序開(kāi)發(fā)所需的WDM(Windows Driver Mode,Windows驅動(dòng)程序模型),包括VtoolsD、DriverWorks、DriverNetWorks和SoftICE等開(kāi)發(fā)工具,應用該平臺開(kāi)發(fā)降低了驅動(dòng)程序開(kāi)發(fā)的難度,同時(shí)了提高了代碼的可靠性。
3.1 硬件驅動(dòng)
驅動(dòng)程序對外部硬件的訪(fǎng)問(wèn)是通過(guò)DriverWorks提供的2個(gè)類(lèi)來(lái)實(shí)現的,其中,KioRang類(lèi)實(shí)現對I/O映射芯片的訪(fǎng)問(wèn),KMemoryRang類(lèi)實(shí)現對內存映射芯片的訪(fǎng)問(wèn)。本系統選擇了KMemoryRang完成PCIExpress硬件的訪(fǎng)問(wèn),主要調用函數如表1所示。

c.JPG


初始化KMemoryRang類(lèi)的操作是在驅動(dòng)程序啟動(dòng)例程中執行的,主要執行程序如下:
d.JPG
當驅動(dòng)程序完成初始化時(shí),應用端軟件將通過(guò)inb()和outb()等函數對外部硬件電路進(jìn)行訪(fǎng)問(wèn),讀寫(xiě)數據。



關(guān)鍵詞: Express Virtex PCI 高速采集

評論


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