什么是PCI總線?其接口芯片的應(yīng)用
PCI (Peripheral Component Interconnect)總線是一種高性能局部總線,是為了滿足外設(shè)間以及外設(shè)與主機(jī)間高速數(shù)據(jù)傳輸而提出來(lái)的。在數(shù)字圖形、圖像和語(yǔ)音處理,以及高速實(shí)時(shí)數(shù)據(jù)采集與處理等對(duì)數(shù)據(jù)傳輸率要求較高的應(yīng)用中,采用PCI總線來(lái)進(jìn)行數(shù)據(jù)傳輸,可以解決原有的標(biāo)準(zhǔn)總線數(shù)據(jù)傳輸率低帶來(lái)的瓶頸問(wèn)題。 1 PCI局部總線特點(diǎn) * 傳輸率高:在33MHz的時(shí)鐘頻率下,對(duì)于32位的PCI總線,峰值數(shù)據(jù)傳輸可以達(dá)到132MB/s;64位的PCI總線可達(dá)264MB/s。對(duì)于64位的66MHz時(shí)鐘的PCI總線,可以達(dá)到528MB/s,遠(yuǎn)遠(yuǎn)大于標(biāo)準(zhǔn)ISA的5MB/s和EISA的33MB/s傳輸率。 *線性突發(fā)傳輸:減少了地址操作,更有效地利用總線的帶寬來(lái)傳輸數(shù)據(jù),可以確保總線滿載數(shù)據(jù)。 *采用獨(dú)立于處理器的結(jié)構(gòu):圖為PCI總線開(kāi)發(fā)的設(shè)備是針對(duì)PCI的,不受處理器的限制,所以PCI設(shè)備的設(shè)計(jì)獨(dú)立于處理器的升級(jí)。 *自動(dòng)配置功能:每個(gè)PCI設(shè)備有256字節(jié)的配置寄存器,可以實(shí)現(xiàn)設(shè)備的即插即用。 *軟件透明:在與PCI設(shè)備通信時(shí),軟件驅(qū)動(dòng)程序使用相同的命令集和狀態(tài)定義。 2 PCI接口的兩種設(shè)計(jì)方法 PCI 接口的設(shè)計(jì)必須符合PCI總線規(guī)范定義的電氣特性和時(shí)序要求。有兩種PCI接口的實(shí)現(xiàn)方案:使用可編程邏輯器件(FPGA或CPLD)和專用PCI接口芯片。使用可編程邏輯器件,可以選擇實(shí)現(xiàn)部分PCI規(guī)范的一個(gè)子集,這種方法比較靈活,但開(kāi)發(fā)難度大,開(kāi)發(fā)周期長(zhǎng)。采用專用PCI接口芯片,可以縮短開(kāi)發(fā)周期,降低開(kāi)發(fā)難度。 3 CY7C90449PV介紹 CY7C09449PV 是Cypress公司推出的PCI主/從接口芯片,符合PCI2.2規(guī)范,可以直接與很多微處理器進(jìn)行無(wú)縫連接。CY7C9449V提供16KB的雙端口共享存儲(chǔ)器(SRAM),用來(lái)在PCI總線和局部處理器間傳輸數(shù)據(jù);I2O消息傳輸單元具有4個(gè)32位FIFO,用來(lái)實(shí)現(xiàn)消息隊(duì)列和中斷功能;局部總線時(shí)鐘最大50MHz,單一3.3V電源供電;對(duì)3.3V和5V的PCI信號(hào)兼容,使用160引腳的TQFP封裝。 3.1 CY7C09449PV結(jié)構(gòu) CY7C09449PV的結(jié)構(gòu)如圖1所示。 3.2 功能模塊介紹 CY7C09449PV 提供64字節(jié)的PCI頭標(biāo)區(qū)配置寄存器空間。其中Vender ID、Device ID、Revision ID、;Header Type、Class Code用于設(shè)備的識(shí)別。命令寄存器(Command)包含設(shè)備控制位,包括允許存儲(chǔ)器讀寫(xiě)響應(yīng)、I/O讀寫(xiě)響應(yīng)等。狀態(tài)寄存器(Status)用于記錄 PCI總線相關(guān)事件的狀態(tài)信息。基址寄存器0(BAR0)提供設(shè)備在PCI存儲(chǔ)空間起始地址,31~15可讀寫(xiě),通知系統(tǒng)BIOS此設(shè)備所要求的PCI存儲(chǔ)空間為32KB,任何對(duì)31~15位與BAR0相符合的PCI存儲(chǔ)空間訪問(wèn)的,CY7C09449PV都會(huì)影響并接受傳輸。基址寄存器1(BAR1)是 CY7C09449PV的I/O指針空間的地址。 CY7C09449PV 提供PCI總線接口、局部處理器總線接口和I2C串行EEPROM接口,以及內(nèi)部16KB雙端口SRAM、I2O消息傳輸單元和控制寄存器。數(shù)據(jù)的傳輸可以在PCI總線和局部處理器總線間進(jìn)行。PCI總線和局部總線都能通過(guò)操作寄存器對(duì)I2C接口進(jìn)行操作。 PCI 總線和局部處理器總線間可以通過(guò)共享的雙端口存儲(chǔ)器進(jìn)行數(shù)據(jù)交換。由于共享存儲(chǔ)器是“臨界資源”,CY7C09449PV在仲裁寄存器(CRB_FLAGS)中,為PCI總線和局部處理器部各提供了4個(gè)仲裁檔志位(L0,P0,L1,P1,L2,P2,P3,P3),來(lái)對(duì)共享存儲(chǔ)器進(jìn)行并發(fā)互斥訪問(wèn)。對(duì)了實(shí)現(xiàn)線性突發(fā)傳輸,提供了DMA控制寄存器,PCI總線和局部處理器總線都能通過(guò)DMA控制寄存器,來(lái)啟動(dòng)突發(fā)傳輸。為了保證對(duì)DMA 控制器的互斥訪問(wèn),DMA控制寄存器也提供了仲裁標(biāo)志位。CY7C09449PV為局部處理器提供了一個(gè)映射到整個(gè)PCI地址空間的8KB存儲(chǔ)器窗口。通過(guò)這個(gè)窗口,局部處理器可以不經(jīng)過(guò)共享存儲(chǔ)器,直接對(duì)PCI地址空間進(jìn)行訪問(wèn),直接訪問(wèn)寄存器(DAHBASE)負(fù)責(zé)對(duì)這個(gè)窗口的操作。 CY7C09449PV的I2O消息傳輸單元具有符合智能I/O(Intelligent I/O)1.5規(guī)范的消息隊(duì)列和斷功能,由4個(gè)深度為32的32位FIFO(Inbound Free/Post,Outbound Free/Post)和共享存儲(chǔ)器來(lái)實(shí)現(xiàn)。這4個(gè)FIFO也能用作通用FIFO。 PCI總線和局部處理器間的消息也能通過(guò)郵箱來(lái)傳輸。主機(jī)通過(guò)寫(xiě)Host to Local Data Mailbox(HLDATA)郵箱寄存器,向局部處理器傳送消息數(shù)據(jù),并產(chǎn)生中斷標(biāo)志位,等局部處理器讀取消息數(shù)據(jù)后,中斷標(biāo)志位自動(dòng)復(fù)位。局部處理器能通過(guò)寫(xiě)(Local To Host Data Maibox)郵箱寄存器,向主機(jī)發(fā)送消息數(shù)據(jù),并產(chǎn)生中斷標(biāo)志位。主機(jī)讀取消息數(shù)據(jù)后,標(biāo)志位自動(dòng)復(fù)位。 通過(guò)I2C接口連接EEPROM,可以保存CY7C09449PV的初始化數(shù)據(jù)。這些數(shù)據(jù)包括PCI總線和局部處理器總線的配置信息。在復(fù)位完成后, PY7C09449PV在響應(yīng)PCI總線和局部總線交易以前自動(dòng)下載這些數(shù)據(jù),進(jìn)行初始化操作。通過(guò)I2C控制寄存器組可以對(duì)I2C端口進(jìn)行讀寫(xiě)。I2C 控制寄存器組包括3個(gè)寄存器:I2C命令寄存器(NVCMD)、I2C讀數(shù)據(jù)寄存器(NVREAD)、I2C狀態(tài)寄存器(NVSTAT)。 CY7C09449PV 的中斷控制器為PCI總線和局部處理器總線分別提供了獨(dú)立的中斷掩碼和命令/狀態(tài)寄存器:HINT(主機(jī)中斷控制和狀態(tài)寄存器)、LINT(局部處理中斷控制和狀態(tài)處理器)。中斷源有:DMA完成、郵箱、FIFO非空、FIFO溢出等,以及1個(gè)外部中斷引腳。內(nèi)部資源如表1所列。 4 基于PCI與C32數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案 C32是一種32位的浮點(diǎn)DSP,具有較高的性價(jià)比,在實(shí)時(shí)數(shù)據(jù)采集與高速信號(hào)處理中得到了廣泛的應(yīng)用。使用CY7C09449PV作為接口芯片,可以實(shí)現(xiàn)PCI總線與基于C32的DSP系統(tǒng)的連接。 將CY7C09449PV 的RSTOUTD引腳與C32的復(fù)位信號(hào)相連,可以實(shí)現(xiàn)主機(jī)對(duì)C32進(jìn)行復(fù)位。I2C接口引腳要接2.2KΩ到10kΩ的上位電阻。接口輸入引腳在不用時(shí),要上拉到高電平或接地。圖2中的PLD實(shí)現(xiàn)C32對(duì)CY7C9449PV和A/D轉(zhuǎn)換器的片選,以及C32的復(fù)位BOOT LOADER所需的信號(hào)邏輯。EPROM存儲(chǔ)C32程序,SRAM存放數(shù)據(jù)和運(yùn)行時(shí)的程序,EEPROM存入CY7C09449PV的初始化信息。 系統(tǒng)結(jié)構(gòu)如圖2所示。 采集到的數(shù)據(jù)有兩種方案進(jìn)行傳輸,使用FIFO或DMA。FIFO傳輸可以保證順序的傳輸,但傳輸效率低,適用于速率要求較低的應(yīng)用。使用DMA進(jìn)行傳輸,能充分利用PCI總線PCI總線的突發(fā)傳輸能力,適用于對(duì)傳輸率要求較高的情況。共享存儲(chǔ)器分為模塊A和模塊B。DSP先把采集到的數(shù)據(jù)寫(xiě)入模塊A,等數(shù)據(jù)寫(xiě)滿后,啟動(dòng)模塊A的DMA傳輸;同時(shí)將接下來(lái)采集到的數(shù)據(jù)寫(xiě)入模塊B,等模塊B數(shù)據(jù)裝滿后,啟動(dòng)模塊B的DMA傳輸,這樣循環(huán)下云,可以使數(shù)據(jù)的采集和DMA傳輸并行進(jìn)行。
表1 CY7C9449PV內(nèi)部資源存儲(chǔ)映射存儲(chǔ)模塊 偏移地址[14:0] 大小/KB I2O寄存器
操作寄存器
保留空間
PCI直接訪問(wèn)窗口
共享雙端口存儲(chǔ)器0x0000-0x03FF
0x4000-0x07FF
0x0800-0x1FFF
0x2000-0x3FFF
0x4000-0x7FFF1
1
6
8
16
評(píng)論