基于PCIE總線(xiàn)的多DSP系統接口設計和驅動(dòng)開(kāi)發(fā)
應用程序可以用標準的Win32API函數與驅動(dòng)程序建立通信。在應用程序中首先用設備GUID接口或符號鏈接名打開(kāi)設備,實(shí)際上應用程序調用了Win32API函數CreateFile。若成功打開(kāi)將返回設備的有效句柄,應用程序獲得有效句柄后就可以和驅動(dòng)程序交換數據。打開(kāi)設備后應用程序可以用函數DevieeloControl與驅動(dòng)程序通信,這個(gè)函數包括從驅動(dòng)程序讀數據和寫(xiě)數據。完成硬件操作后用CloseHandle函數關(guān)閉該設備。
3.3 PCI Express總線(xiàn)介紹
PCIE總線(xiàn)是Intel公司提出的第3代I/O總線(xiàn)。PCIE總線(xiàn)采用雙工串行傳輸模式,速度快,低功耗,擴展靈活,軟件層與PCI兼容,具有數據包和層協(xié)議架構。
PCI Express協(xié)議定義了4層結構:物理層,數據鏈路層和事務(wù)處理層,軟件層。PCI Express系統體系結構如圖3所示。每個(gè)層次按照協(xié)議中規定的內容,完成相應的數據處理功能。PCIE軟件層保持與PCI總線(xiàn)兼容,軟件兼容包括器件的初始化、自動(dòng)配置和器件的運行。事務(wù)處理層接收來(lái)自軟件層或應用層的讀寫(xiě)請求,并構造響應數據包并傳給數據鏈路層。數據鏈路層的主要作用是確保數據鏈路包在數據鏈路層上的可靠傳送。物理層負責接口和設備間的連接,它在兩個(gè)PCI Express模塊之間的鏈路層間傳輸數據包。
3.4 驅動(dòng)開(kāi)發(fā)實(shí)例
3.4.1 PCIE接口模塊
PCI Express接口模塊通過(guò)調用IP核技術(shù)實(shí)現,它接口模塊的結構如圖4所示。PCI Express通信協(xié)議以及DMA的實(shí)現等是在FPGA內實(shí)現的,整個(gè)模塊用到了Hard IP核和DMA IP核。
Hard IP核用來(lái)處理PCI Express協(xié)議相關(guān)的事務(wù);DMAIP核用作DMA控制器;DMA控制器通過(guò)控制與DMA相關(guān)的寄存器,設定讀寫(xiě)操作的地址范圍和大小,來(lái)完成DMA數據讀寫(xiě)操作。DMA管理模塊控制兩個(gè)獨立的DMA通道,分別用來(lái)從主機內存讀取數據和將數據寫(xiě)入主機內存。
評論