一種64位高速PCI總線接口的設(shè)計(jì)與實(shí)現(xiàn)
摘要:設(shè)計(jì)了一種基于PCD656的高速PCI總線接口,數(shù)據(jù)傳輸主要為DMA方式。文中介紹了PCI9656的內(nèi)部結(jié)構(gòu)和功能,討論了其WDM驅(qū)動(dòng)開(kāi)發(fā)過(guò)程,分析了其局部總線在進(jìn)行DMA傳輸時(shí)的配置時(shí)序,提出了一些設(shè)計(jì)中需要注意的問(wèn)題。實(shí)際應(yīng)用結(jié)果表明,該總線接口性能穩(wěn)定且優(yōu)良,可以應(yīng)用于高速數(shù)據(jù)傳輸系統(tǒng)。
關(guān)鍵詞:PCI9656;PCI總線接口;WDM驅(qū)動(dòng)開(kāi)發(fā);DMA傳輸
現(xiàn)代雷達(dá)信號(hào)處理具有數(shù)據(jù)量大、實(shí)時(shí)性高等特點(diǎn),而總線傳輸?shù)男蕸Q定了系統(tǒng)的性能,目前普遍使用標(biāo)準(zhǔn)化的PCI總線技術(shù),以便升級(jí)更新。為加快產(chǎn)品開(kāi)發(fā)和降低設(shè)計(jì)難度,一般有兩種解決方法:采用通用的PCI芯片或IP核。目前常用的PCI芯片如PCD054、PCD052等雖然性能穩(wěn)定、使用方便,但它們只適用33 MHz、32位總線接口,受時(shí)序設(shè)計(jì)和應(yīng)用程序效率等影響,總線傳輸速度約穩(wěn)定在70 MB·s-1;使用IP核雖可以兼容66 Hz、64位總線且節(jié)省板卡面積,但其價(jià)格昂貴不利于高校及中小企業(yè)推廣使用。而PCI9656適用于66 MHz、64位的PCI總線,因此逐漸成為總線開(kāi)發(fā)的主流元器件,使得總線傳輸速度達(dá)到了150 MB·s-1甚至更高。
本文利用高效PCI芯片和FPGA設(shè)計(jì)了一款64位總線傳輸接口電路,傳輸速度達(dá)到212 MB·s-1,較以往總線傳輸速度有了較大地提高,滿足了目前高速數(shù)據(jù)傳輸系統(tǒng)的要求。
1 PCI總線接口架構(gòu)
本系統(tǒng)主要由PCI9656和FPGA構(gòu)成,系統(tǒng)框圖如圖1所示。當(dāng)主機(jī)發(fā)起讀寫(xiě)操作時(shí)PCI9656需要響應(yīng)其操作,并將相應(yīng)命令發(fā)送到FPGA進(jìn)行處理,F(xiàn)PGA進(jìn)行處理后將數(shù)據(jù)和命令通過(guò)PCI9656回傳給主機(jī)。PCI9656與主機(jī)之間的通信需要相應(yīng)的設(shè)備驅(qū)動(dòng)程序支持,而FPGA響應(yīng)主機(jī)命令則需要配置相應(yīng)的局部時(shí)序。因此,本設(shè)計(jì)主要的工作為設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)和FPGA局部時(shí)序的設(shè)計(jì)。
2 PCI9656性能概述
PCI9656是PLX公司推出的一款兼容32位和64位PCI總線標(biāo)準(zhǔn)的橋接芯片,采用PLX數(shù)據(jù)流水線結(jié)構(gòu)(Data Pipe Architecture),內(nèi)部配有DMA控制器、可編程主模式傳輸及從模式傳輸;內(nèi)部有PCI優(yōu)先判決器,可以支持外部7個(gè)外部主控器;可由本地中斷信號(hào)LINTi和LINTo生成一個(gè)PCI中斷信號(hào)INTA;本地時(shí)鐘獨(dú)立于PCI時(shí)鐘工作;支持位寬為8位、16位和32位的66,MHz本地總線。PCI9656寄存器與PCI9054寄存器兼容,可容易地進(jìn)行基于32位PCI總線與基于64位PCI總線的軟件移植。
PCI 9656具有6條獨(dú)立的數(shù)據(jù)通道,分別支持Direct Master、Direct Slave以及DMA功能模式下的數(shù)據(jù)傳輸。
(1)Direct Master模式。用于局部總線到PCI(CompactPCI)的數(shù)據(jù)傳輸,主控設(shè)備在局部總線端。16 QWord(128 Byte)和32 QWords(256Byte)的FIFO各應(yīng)用于數(shù)據(jù)的讀、寫(xiě)通道。
(2)Direct Slave模式。用于PCI(CompactPCI)到局部總線的數(shù)據(jù)傳輸,主控設(shè)備在PCI端。16QWords(128 Byte)和32 QWords(256 Byte)的FIFO各應(yīng)用于數(shù)據(jù)的讀、寫(xiě)通道。
(3)DMA模式。DMA傳輸時(shí)PCI9656同時(shí)是PCI和局部總線的主控設(shè)備,PCI 9656有兩條DMA通道(Channel 0、Channel 1),每條通道都由一DMA控制器和32 QWords(256 Byte)雙向FIFO組成。其DMA方式有常規(guī)的塊模式(Block Mode)、集散模式(Scatter/Gather Mode)和命令模式(Demand Mode)。
在局部總線端,根據(jù)不同的處理器PCI9656有3種工作模式。
(1)M模式。支持Motorola 32 bit的處理器,提供了可與MPC850/860 PowerQUICC直接相連的接口。
(2)C模式。適合大多數(shù)處理器的通用模式,比如常用的FPGA,在本設(shè)計(jì)中采用此模式。
(3)J模式。與C模式類似,但其地址線與數(shù)據(jù)線復(fù)用。
評(píng)論