基于PCI軟“核”的PCI總線接口設計與實現
PCI總線是通過主橋電路掛接在Host CPU上的局部總線,典型的PCI局部總線系統結構如圖1所示。PCI的外部設備既可以作為PCI總線目標設備(Slave),實現基本的傳送要求,也可以作為PCI總線的主控設備(Master),訪問其他PCI總線設備及系統的其他資源。用戶在實際應用中可以根據實際需求來設計設備的功能。
由于PCI總線規(guī)范[1]定義了嚴格的電氣特性和時序要求,因而開發(fā)基于PCI總線的接口卡有一定的難度。它要求在接口卡和終端設備之間有一個總線接口控制器,以解碼PCI總線線范并完成數據傳送,這需要開發(fā)人員對PCI總線規(guī)范有深刻的理解并具有較高的計算機開水平。開發(fā)PCI接口大體有兩種方式:使用專用的PCI接口芯片和可編程器件。如果使用ASIC廠家提供的專用接口芯片,用戶使用到的只是部分PCI接口功能,會造成了一定的資源浪費,而且芯片價格高,不經濟。使用可編程器件設計,將廠家提供的PCI軟“核”引入可編程器件中,根據插卡的功能進行最優(yōu)化,不必實現所有的PCI功能機以將PCI插卡的用戶邏輯與PCI接口邏輯集成在一個芯片上,實現緊湊的系統設計。當系統升級時,只需更改可編程器件的邏輯,無需更新PCB版圖。許多可編程器件產生廠商都提供經過測試的PCI接口功能模塊,如Xilinx公司的LogiCore,Altera公司的AMPP(Altera Megafunction Partners Prongam)。下面介紹用Xilinx公司的LogiCore來實現控制連接在PCI局部總線上的外設。
1 Xilinx公司的LogiCore簡介
Xilinx公司的LogiCore邏輯框圖如圖2所示??梢钥闯?,該LogiCore的功能是將左邊復雜的PCI接口轉換成右邊的用戶接口信號:周期控制信號(包括用于配置PCI接口的信號CEG[255:0])、從設備控制信號、主設備控制信號、狀態(tài)機信號等。其主要的功能是起一個橋梁作用,完成用戶設備與PCI總線的信息傳送,并且可以在Bus Master方式下直接訪問系統主存儲器。圖2的LogiCorem邏輯框圖只給出Xilinx的LogiCore中與PCI Master控制器有關的關鍵信號?,F在就以上信號進行介紹:
PCI Host 端總線接口:
AD[31:0] 時分復用地址/數據信號,在幀信號有效的一個時鐘AD[31:0]上的信號為地址信號。
C/BE[3:0] 命令/字節(jié)使能信號,在幀信號有效的第一個節(jié)拍,指示總線作業(yè)類型。
FRAMF 由總線上設備驅動,指明傳輸的起始時間和終止時間,在該信號有效期間表示總線傳輸開始,當該信號無效時,傳輸的是最后一個數據節(jié)拍。
IRDY 由總線主設備驅動,讀操作時表示總線傳輸開始,當該信號無效時,傳輸的最后一個數據節(jié)拍。
IRDY 由總線主設備驅動,讀操作時表示已準備好接受數據,寫操作時表示有效數據已經在數據上。
TRDY 由從設備驅動,讀操作時從設備正在把有效數據放在數據總線上;寫操作時表示從設備準備接受來自Host的數據。
DEBSEL 譯碼出的地址在該設備的地址范圍內時,則該信號有效。
IDSEL 配置讀、寫期間由Host發(fā)出的片選信號。
STOP 從設備向Host表示停止目前信號的傳送。
PAR 奇偶校驗信號,它通過AD[31:0]和C/BE[3:0]進行奇偶校驗。
PERR 該信號只報告數據奇偶校驗錯。
SERR 該信號只報靠地址奇偶校驗錯,或者特殊命令序列中的數據奇偶校驗錯。
INTR_A 表示PCI設備請求中斷。
REQ 表示總線主設備向仲裁器發(fā)出要占用PCI總線的請求。
User端總線接口:
ADIO[31:0] 地址數據復用總線,該總線由三態(tài)緩沖器驅動。
ADDR[31:0] 在地址周期,輸出PCI總線當前作業(yè)的起始地址。
DEVSEL_USR 是DEVSEL信號的“克隆”版本。
相關推薦
-
-
-
hbu2009 | 2014-03-24
-
-
zqh1630 | 2013-03-11
-
xiaotaoqi637 | 2013-12-24
-
-
-
-
-
-
落月風情 | 2013-08-15
-
四弦 | 2012-04-21
-
評論