新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 基于Virtex-6的PCI Express高速采集卡設計

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

作者: 時間:2013-04-22 來源:網絡 收藏

b.JPG


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

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

c.JPG


初始化KMemoryRang類的操作是在驅動程序啟動例程中執(zhí)行的,主要執(zhí)行程序如下:
d.JPG
當驅動程序完成初始化時,應用端軟件將通過inb()和outb()等函數(shù)對外部硬件電路進行訪問,讀寫數(shù)據。



評論


相關推薦

技術專區(qū)

關閉