- 相關推薦
PCI總線協議的FPGA實現及驅動設計
摘要:采用FPGA技術,在ALTERA公司的FLEX6000系列芯片上實現了從設備模式PCI總線的簡化協議,并給出了Windows9x系統下的虛擬設備驅動程序,提供了與應用程序的接口。實現結果表明:該設備結構靈活,功能可靠,有利于與其它模塊實現單片集成應用。本系統已應用在數據采集和處理、圖像處理等方面。目前,許多公司都提出了新型的計算機高速總線,如Arapahoe總線標準和HyperTransport技術,但各協議互不兼容,沒有形成統一標準。作為傳統的通用局部總線,PCI總線仍然占據著主流個人電腦市場,具有頑強的生命力。
現在市面上存在著各種PCI接口芯片,如AMCC公司的S5933,PLX的9080系列等。專用芯片可以實現完整的PCI主設備與從設備模式的接口功能,將復雜的PCI總線接口轉化相對簡單的用戶接口,但系統結構受接口芯片的限制,不能靈活地設計目標系統,且成本較高。本文使用符合PCI電氣特性的FPGA芯片進行簡化的PCI接口邏輯設計,實現了33MHz、32位數據寬度的PCI從設備模塊的接口功能,節約了系統的邏輯資源,且可以將其它用戶邏輯集成在同一塊芯片,降低了成本,增加了設計的靈活性。另外,還給出了Windows9x系統下的設備驅動程序,可以與應用程序接口,形成一個完整的系統。目前,本系統已經被印染企業應用在數據采集和處理等方面。
1 系統構成與功能描述
系統的總體框圖如圖1所示。
由圖1可見,系統的硬件平臺為一塊PCI卡。此卡的結構十分簡潔,主要由FPGA芯片、RAM芯片和輸出接口三部分組成。其中,FPGA芯片集成了PCI接口模塊和數據處理模塊。PCI接口模塊實現了33MHz工作時鐘、32位總線寬度的接口功能,支持I/O空間、內存空間及配置空間的讀寫和PCI中斷功能。由于簡化的PCI接口占用的邏輯資源較少,可在同一塊芯片中集成其他用戶邏輯。作為一個應用實例,本文加入了一個數據處理模塊,對PCI接口傳送來的數據進行處理,通過片外的輸出接口輸出到下位機。RAM芯片為數據處理提供緩存功能。
2 從設備模式下的簡化PCI協議的實現
為了實現PCI接口的基本功能,必須完成以下幾個模塊:
(1)PCI配置空間設置。PCI協議支持三種地址空間:I/O空間、內存空間和配置空間。配置空間提供了支持PCI設備自動配置的機制,是必需的。
(2)PCI從設備狀態機。PCI總線狀態機是具有PCI總線的計算機系統狀態流,是由一個已知狀態到另一個狀態的條件、時序的描述。這是PCI接口設計中最基本也是最重要的部分。
(3)地址譯碼和命令譯碼。地址譯碼用來確定PCI設備是否應當響應當前總線的操作;命令譯碼則用來指示PCI設備根據不同的總線命令作出相應的動作。
本文采用ALTERA公司的Max PlusII軟件平臺,硬件描述語言使用ALTERA HDL語言,也可以方便地轉換民VHDL或VerilogHDL語言。在此之前,先引入PCI總線信號的定義。
2.1 總線信號定義
根據PCI總線協議2.2版,從設備模式下PCI接口至少包含47根引腳。圖2給出了按功能劃分的引腳分布,左邊是必需引腳。右邊是可選引腳。為簡化起見,本文采用了如下引腳,其他引腳均不使能或置為高阻態。
(1)由系統提供的33MHz的同步時鐘信號CLK和復位信號RST#(#表示低電平有效);
(2)關于數據傳輸的核心信號:32位地址/數據復用線AD[31:0]、總線命令/字節使能復用線C/BE[3:0]#和偶校驗信號PAR;
(3)接口控制信號FRAME#、TRDY#、IRDY#、STOP#、DEVSEL#和IDSEL。其中,FRAME#為數據傳輸起止信號,TRDY#為主設備準備好信號,IRDY#為從設備準備好信號,STOP#為從設備停止請求信號,DEVSEL#為設備選擇信號,IDSEL為配置空間讀寫時的片選信號;
(4)中斷引腳INTA#。
為簡化PCI協議,本文只實現了最重要的總線命令,表1給出了所支持的總線命令對應的C/BE[3:0]#編碼值。
表1 支持的總線命令
0011
0110
0111
1010
1011I/O讀
I/O寫
存儲器讀
存儲器寫
配置空間讀
配置空間寫
2.2 配置空間設置
配置空間大小為256字節,前64字節必需,記錄了PCI設備的基本住處,比較重要的有:
(1)VendorID、DeviceID和Class Code域:分別表示設備的生產廠商、設備編號和類型;
(2)Command和Status域:分別給出了對PCI設備的控制命令和當前狀態;
(3)Base Adress Register域:指示此PCI設備按I/O方式還是內存方式進行讀寫以及需要的地址空間大;
(4)Interrupt Line和Interrupt Pin域:分別指明了設備使用的斷號和中斷引腳。
在對配置空間的訪問中,用AD[7:2]尋址一個雙字DWORD。在本設計中,配置空間設置如表2所示。
2.3 簡化的從設備狀態機
在PCI協議中,標準的從設備狀態機包含五種狀態,而且各狀態的跳轉條件比較復雜。本文在不違反PCI協議的前提下,簡化了從設備的狀態機,如圖3所示。
圖3中,狀態轉移條件信號a、b、c定義如下:a代表配置空間訪問條件,b代表I/O空間或內存空間訪問條件,c代表總線傳輸開始條件。這三個條件的實現由后面的命令譯碼模塊給出。
表2 配置空間設置(均為十六進制)
【PCI總線協議的FPGA實現及驅動設計】相關文章:
基于PCI總線的CAN卡的設計與實現03-18
MPC8272總線與DSP HPI總線接口的FPGA實現03-07
高速PCI總線接口模塊設計03-08
談DSP HPI總線與MPC8272總線接口的FPGA實現03-08
基于PCI總線的雷達視頻采集方案03-19
高速PCI總線接口卡的開發03-18