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