《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > AMCCS5933 在PCI板卡設(shè)計(jì)中的應(yīng)用

AMCCS5933 在PCI板卡設(shè)計(jì)中的應(yīng)用

2009-05-04
作者:劉 勇, 吳清巍

  摘? 要: 介紹了PCI接口芯片AMCCS5933的工作原理,、功能特點(diǎn)以及在PCI板卡設(shè)計(jì)中的應(yīng)用,。

  關(guān)鍵詞: PCI接口芯片? AMCCS5933? PCI總線

?

  PCI總線是計(jì)算機(jī)主機(jī)中最常見的總線,。它是一種高性能的32/64位地址數(shù)據(jù)復(fù)用總線,,支持猝發(fā)傳輸,,傳輸峰值速率可達(dá)528MB/s,,而且還支持自動(dòng)配置,。由于PCI總線協(xié)議的復(fù)雜性,,其接口電路實(shí)現(xiàn)起來并不容易,。但采用通用PCI接口芯片卻能達(dá)到事半功倍的效果。PCI通用接口芯片對(duì)于PCI協(xié)議的良好支持及其提供給板卡設(shè)計(jì)者的良好接口都大大減小了PCI板卡設(shè)計(jì)者的工作量?,F(xiàn)有的PCI接口芯片主要有AMCC公司的 AMCCS59XX系列和PLXTECH公司的PLX系列,。本文將對(duì)AMCC公司的AMCCS5933芯片的原理及其在PCI板卡設(shè)計(jì)中的應(yīng)用進(jìn)行介紹。

1 工作原理

  AMCCS5933的原理框圖如圖1所示,。由圖1可知AMCCS5933起到的是一個(gè)橋路的作用,,即它是PCI總線與本地總線之間的一個(gè)橋路。

?

  AMCCS5933既可以作PCI從設(shè)備,,又可以作PCI主控設(shè)備,。PCI配置空間可以通過一EEPROM來配置。AMCCS5933為設(shè)計(jì)者提供了三種數(shù)據(jù)傳輸方式:PASS THRU方式,、FIFO方式和MAILBOX方式,。通過驅(qū)動(dòng)程序?qū)偩€控制寄存器設(shè)置來控制總線操作和數(shù)據(jù)的傳輸??偩€控制寄存器有兩組:PCI總線控制寄存器和本地總線控制寄存器,,分別用來控制PCI總線和本地總線的操作。

2 AMCCS5933 引腳

  AMCCS5933引腳圖如圖2所示,。

3 AMCCS5933在PCI板卡設(shè)計(jì)中的應(yīng)用

3.1 配置空間

  每一個(gè)PCI設(shè)備都要有相應(yīng)的配置空間,,AMCCS5933通過EEPROM來設(shè)置配置空間,AMCC公司提供一個(gè)NVBUILDER的軟件,,可以通過AMCCS5933對(duì)EEPROM進(jìn)行讀寫,。EEPROM可以為串行,也可以為8位并行,。設(shè)計(jì)者只需使用NVBUILD就可以完成PCI配置空間的設(shè)置,。

3.2 總線控制寄存器的訪問

  PCI總線控制寄存器只有主機(jī)才能訪問,主機(jī)通過PCI總線進(jìn)行I/O讀寫操作來訪問這些寄存器,。

本地總線控制寄存器只有本地邏輯才能訪問,,與其有關(guān)的引腳有ADR[6..2]、BE[3..0]#,、SELECT#,、WR#、RD#和數(shù)據(jù)地址總線DQ[31..0],。

  讀時(shí)序如圖3所示,,寫時(shí)序?qū)D中RD#替換為WR#即可。

?

  ADR[6..2]提供被訪問寄存器的地址,BE[3..0]#制定訪問是雙字中的哪些字節(jié),,WR#為寫使能,,RD#為讀使能,SELECT#為操作使能,,都為低電平有效,。

3.3 MAILBOX方式的使用

  AMCCS5933內(nèi)部有8個(gè)MAILBOX:4個(gè)輸出MAILBOX,四個(gè)輸入MAILBOX,。PCI方的輸入MAILBOX對(duì)應(yīng)于本地的輸出MAILBOX,,輸出MAILBOX則對(duì)應(yīng)于輸入MAILBOX。

  MAILBOX主要用于主機(jī)方與本地邏輯之間的通信,,例如傳輸一些自定義的控制字,、狀態(tài)信息等。

  主機(jī)對(duì)MAILBOX的訪問通過I/O讀寫來完成,,本地邏輯對(duì)MAILBOX的訪問則通過訪問本地控制寄存器的方式來完成,。

MIALBOX的空滿狀態(tài)由控制寄存器MBEF(PCI)和AMBEF(本地)來表征。

3.4 FIFO方式下的數(shù)據(jù)傳輸

3.4.1基本數(shù)據(jù)傳輸

  AMCCS5933內(nèi)部有兩個(gè)單向FIFO:輸出FIFO和輸入FIFO,,主機(jī)和本地邏輯可以以訪問控制寄存器的方式來訪問FIFO,,也可以通過WRFIFO#、RDFIFO#,、WFULL,、RDEMPTY、BPCLK這幾個(gè)引腳來直接讀寫FIFO,。在設(shè)計(jì)當(dāng)中一般采用后一種方法,。直接讀寫FIFO有兩種工作方式:同步方式和異步方式。在同步方式下,,WRFIFO#,、RDFIFO#為FIFO讀寫使能信號(hào),在BPCLK的上跳沿寫入和讀出數(shù)據(jù),,輸出引腳BPCLK輸出33MHz信號(hào),。在異步方式下,WRFIFO#,、RDFIFO#為FIFO讀寫信號(hào),。WRFULL為輸出FIFO滿信號(hào),RDEMPTY為輸入FIFO空信號(hào),。

3.4.2 DMA的實(shí)現(xiàn)

  在FIFO方式下可以實(shí)現(xiàn)DMA傳輸,。

  DMA傳輸?shù)膶?shí)現(xiàn)步驟:

  (1)通過NVBUILD軟件設(shè)置DMA傳輸?shù)目刂品綖橹鳈C(jī)或本地邏輯,以下假設(shè)為主機(jī)控制,。

  (2)設(shè)置有關(guān)的PCI總線控制寄存器,。

???? MWAR? DMA寫地址寄存器 ??填入接收數(shù)據(jù)存放的起始地址

???? MWTC? DMA寫計(jì)數(shù)器???????填入接收數(shù)據(jù)的字節(jié)數(shù)

???? MRAR? DMA 讀地址寄存器? 填入發(fā)送數(shù)據(jù)起始地址

???? MRTC? DMA? 讀計(jì)數(shù)器?????填入發(fā)送數(shù)據(jù)的字節(jié)數(shù)

  (3) 啟動(dòng)DMA傳輸

  通過設(shè)置MCSR寄存器啟動(dòng)DMA傳輸。

  由本地邏輯控制的DMA傳輸步驟,只需將控制方式改為本地邏輯控制,,然后由本地邏輯來設(shè)置相應(yīng)的寄存器,。

3.5 PASS THRU方式下的數(shù)據(jù)傳輸

  配置空間中的基址寄存器為PCI系統(tǒng)資源分配(內(nèi)存和I/O空間的分配)提供了一種機(jī)制,PCI設(shè)備在基址寄存器中填入所需資源的類型和大小,,基址寄存器的0位為1表示為內(nèi)存空間,,為0則表示為I/O空間,1,、2位則指定內(nèi)存或I/O空間是分配在1M地址以下,還是分配在任意地址空間,,3位表示能否預(yù)取,,4~31位表示所需分配的內(nèi)存或I/O空間的大小。PCI BIOS啟動(dòng)后讀取各個(gè)PCI設(shè)備配置空間中的基址寄存器,,獲取每個(gè)PCI設(shè)備分配所需的資源類型和大小等信息,,并且為這些PCI設(shè)備分配好所設(shè)定的資源,然后再將分配的內(nèi)存空間或地址空間的基地址回寫到PCI設(shè)備的各個(gè)基址寄存器中,。

  配置空間中有6個(gè)基址寄存器,,與PASS THRU方式有關(guān)的是基址寄存器1~4,基址寄存器0被指定為AMCCS5933分配I/O資源,,基址寄存器6保留不用,。

  PASS THRU 方式下的數(shù)據(jù)傳輸?shù)挠嘘P(guān)引腳:PTATN#、PTRDY#,、PTNUM[1:0],、PTBE[3:0]#、BE[3..0]#,、PTADR#,、  PTWR、PTBURST#,、DQ[31..0]

  PTNUM[1:0]表示由哪個(gè)基址寄存器所分配的內(nèi)存空間或I/O空間,。

  PASS THRU方式下的數(shù)據(jù)傳輸主要由AMCCS5933芯片與本地邏輯電路通過上述引腳信號(hào)的交互、握手來完成,,時(shí)序如圖4所示,。

?

  PASS THRU的握手時(shí)序可以通過可編程邏輯以同步狀態(tài)機(jī)的方式實(shí)現(xiàn),用ALTERA的AHDL硬件編程語言可以很容易地實(shí)現(xiàn)它,。

3.6 中斷的設(shè)置與產(chǎn)生

  AMCCS5933有兩個(gè)中斷引腳:INTA#和IRQ#,。INTA#為PCI總線信號(hào)用于產(chǎn)生系統(tǒng)PCI中斷,IRQ#是本地總線信號(hào)用于產(chǎn)生本地邏輯的中斷,。??

  MAILBOX的空滿變化,、DMA讀寫傳送的完成都可以產(chǎn)生中斷,中斷的使用方法如下:

  A PCI設(shè)備中斷INTA#

  (1)在配置空間中斷引腳寄存器填入中斷引腳,單功能設(shè)備選INTA#,。

  (2)從配置空間矢量寄存器中獲取中斷矢量,。

  (3)在PCI總線控制寄存器中,設(shè)置產(chǎn)生的條件,,如MAILBOX變滿產(chǎn)生中斷,、DMA寫完成產(chǎn)生中斷等。

  (4)在中斷處理程序中,,讀取PCI總線控制寄存器INTCSR和MBEF當(dāng)前值,,確定中斷源并做相應(yīng)中斷處理。

  (5)清中斷及退出中斷處理程序,,清中斷通過往INTCSR相應(yīng)的中斷標(biāo)志位寫“1”來完成,。

  B 本地設(shè)備中斷 IRQ#

  (1)在本地總線控制寄存器AINT中,設(shè)置產(chǎn)生的條件,,如MAILBOX變滿產(chǎn)生中斷 ,、DMA寫完成產(chǎn)生中斷等。

  (2)在本地中斷處理程序中,,讀取本地總線控制寄存器AINT和AMBEF當(dāng)前值,,確定中斷源并做相應(yīng)中斷處理。

  (3)清中斷并退出中斷處理程序,,清中斷通過往AINT相應(yīng)的中斷標(biāo)志位寫“1”來完成,。

4 PCB 板繪制要點(diǎn)

  (1)推薦采用四層板。

  (2)電源引腳加0.1μF電容濾波,。

  (3)AMCCS5933 PCI數(shù)據(jù)線與插口距離小于1.5英寸,。

  (4)AMCCS5933 PCI時(shí)鐘線與插口距離等于(2.5+或-0.1)英寸,且只能在PCB的同一層,。

  (5)AMCCS5933 其他PCI引腳與插口距離小于2英寸,。

?

參考文獻(xiàn)

1 PCI Local Bus Specification Revision 2.2.PCI Special Interest Group,1998

2 AMCC S5933 Controller Data Book.Applied Micro Circuits Corporation,,1997

3 李貴山,,戚德虎.PCI局部總線開發(fā)者指南.西安:西安電子科技大學(xué)出版社,1997

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。