<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PCI總線的DSP數(shù)據(jù)運(yùn)算平臺(tái)設(shè)計(jì)

          基于PCI總線的DSP數(shù)據(jù)運(yùn)算平臺(tái)設(shè)計(jì)

          作者:清華大學(xué)自動(dòng)化系 黃迅 時(shí)間:2001-06-15 來源: 收藏

          隨著DSP的性能不斷提高,其應(yīng)用領(lǐng)域也不斷擴(kuò)大。由于DSP的硬件結(jié)構(gòu)對(duì)于數(shù)字信號(hào)處理特別適用,同時(shí),PCI總線的高帶寬,動(dòng)態(tài)配置,大的地址空間等諸多特點(diǎn),使得在PCPCI總線完全取代ISA總線已經(jīng)是大勢(shì)所趨,目前新一代的主板上面已經(jīng)幾乎不提供ISA槽。為了科學(xué)研究以及實(shí)際應(yīng)用的需要,我們開發(fā)了基于PCI總線的DSP數(shù)據(jù)運(yùn)算系統(tǒng),主機(jī)程序通過PCI總線與DSP交換數(shù)據(jù),可以提供高速實(shí)時(shí)的數(shù)據(jù)運(yùn)算能力。系統(tǒng)可以廣泛的應(yīng)用在語音處理,數(shù)字加密,圖像處理,多路數(shù)據(jù)流復(fù)用等實(shí)際應(yīng)用中。

          本文引用地址:http://www.ex-cimer.com/article/2846.htm

          基于PCI總線的DSP數(shù)據(jù)運(yùn)算平臺(tái)整個(gè)的運(yùn)作流程是這樣的:PC端運(yùn)行服務(wù)器程序,與DSP上運(yùn)行的客戶機(jī)程序通過PCI總線進(jìn)行數(shù)據(jù)交換,通信由程序中設(shè)計(jì)的信號(hào)燈或者硬件中斷。PC端的服務(wù)器程序通過PCI總線有訪問整個(gè)DSP內(nèi)部的存儲(chǔ)器內(nèi)容的能力,將所需要運(yùn)算的數(shù)據(jù)送給DSP運(yùn)算,設(shè)置信號(hào)燈,當(dāng)DSP運(yùn)算完成后則取消信號(hào)燈或者中斷主機(jī),主機(jī)將運(yùn)算完的數(shù)據(jù)取回。所需要解決的問題主要有:

          * PCI接口芯片的選擇;

          * PCIDSP的接口設(shè)計(jì);

          *DSP系統(tǒng)的自舉裝入(BootLoad);

          * 主機(jī)與DSP通信驅(qū)動(dòng)軟件的編制。

          目前PCI接口卡的設(shè)計(jì)一般有兩種方法,第一種是基于將PCI接口完全集成到ASIC中,這樣做的好處是集成度高,量產(chǎn)的生產(chǎn)成本低,直接用成熟的IP核,但是對(duì)于普通的開發(fā)者來說購買現(xiàn)成的PCI控制器的IP的價(jià)格昂貴,難以接受。當(dāng)然也可以自己根據(jù)PCI協(xié)議在FPGA中實(shí)現(xiàn)PCI總線接口控制器,但是由于PCI總線協(xié)議自身的復(fù)雜性,要想在短期內(nèi)做到操作穩(wěn)定,難度很大。所以一般開發(fā)PCI接口卡的時(shí)候都使用現(xiàn)成的PCI接口芯片。目前市場(chǎng)上面的PCI接口芯片有不同公司的多種型號(hào)產(chǎn)品,不同的產(chǎn)品價(jià)位相差很大,而且功能與使用的復(fù)雜性也有很大不同。我們?cè)谠O(shè)計(jì)前,要廣泛的調(diào)研,根據(jù)項(xiàng)目需求選擇合適的PCI接口芯片來設(shè)計(jì)系統(tǒng),就會(huì)事半功倍。

          目前市場(chǎng)上常見的有AMCC,PLXCYPRESS等公司的橋芯片,各個(gè)型號(hào)的PCI接口芯片的比較如表1所示:

          綜合項(xiàng)目需求,成本以及開發(fā)難易等幾個(gè)問題來考慮,選擇了PLX9030芯片作為本設(shè)計(jì)的PCI運(yùn)算板的接口芯片。

          TMS320VC5402TI公司的5000平臺(tái)中力推的一款芯片,主頻可達(dá)100MHz,批量?jī)r(jià)格僅5美元,片上資源有40ALU,17×17乘法器,4K×16ROM,16K×16bitSARAM8位擴(kuò)展主機(jī)接口(HPI),6DMA控制器,兩個(gè)多通道帶緩存串口(MCBSP),兩個(gè)16位定時(shí)器。稱得上價(jià)格低廉,性能優(yōu)異,在嵌入式領(lǐng)域,無線設(shè)備,數(shù)字運(yùn)算等領(lǐng)域得到了廣泛的應(yīng)用。

          VC5402的引腳大多數(shù)有內(nèi)部的斯密特觸發(fā)器以及上拉電阻,對(duì)于設(shè)計(jì)者來說外部電路設(shè)計(jì)相對(duì)簡(jiǎn)單,不用作特別的處理,但是中斷源輸入必須從外部接上拉電阻。

          DSP與主機(jī)的數(shù)據(jù)交互是PCI運(yùn)算平臺(tái)的設(shè)計(jì)關(guān)鍵。主機(jī)可以通過VC5402的主機(jī)接口中的三個(gè)HPI寄存器訪問DSP芯片內(nèi)16KDRAM。三個(gè)HPI寄存器的具體定義如下:

          * HPIAHPI地址寄存器,存放當(dāng)前所訪問的DSP的內(nèi)存地址;

          * HPICHPI控制寄存器,包括HPI的控制與狀態(tài)位;

          * HPIDHPI數(shù)據(jù)寄存器,當(dāng)前HPIA所在地址的數(shù)據(jù);

          主機(jī)要讀取DSP中某個(gè)地址的數(shù)據(jù)時(shí),首先向HPIA中送入所需訪問的地址,然后讀取HPID的內(nèi)容即可;同樣,主機(jī)要向DSP中某個(gè)地址寫入數(shù)據(jù)的話,首先向HPIA中送入所需訪問的地址,然后將數(shù)據(jù)寫入HPID就可以了。

          HPI寄存器由HDS1, HDS2地址線選擇,結(jié)合HRW,HAS只要很少的邏輯就可與主機(jī)接口。主機(jī)通過PCI總線接口芯片訪問DSP,只需要做一些有效電平的轉(zhuǎn)換即可。單個(gè)VC5402PLX9030接口芯片通過HPI連接的示意圖如圖1所示。

          圖中PLD內(nèi)部的VHDL的核心部分代碼如下:

          hcs <=not lad7;

          has <='1';

          hds1 <=wr;

          hds2 <=rd;

          hrw <=not lwr;

          hcntl0 <=lad6;

          hcntl1 <=lad5;

          hbil <=lad4;

          讀者可以從這段代碼看出,PLD主要的功能僅僅是地址譯碼以及電平的轉(zhuǎn)換。

          由于一般的PCI接口芯片都提供了大量的局部端地址線(lad,Local Address and Data),所以多片DSP與主機(jī)接口也是很容易實(shí)現(xiàn)的,只要用PCI接口芯片的不同的局部端地址線來選通不同的DSP。多個(gè)VC5402PLX9030接口芯片通過HPI連接的示意圖如圖2所示。

          所謂自舉,就是系統(tǒng)上電后程序指針自動(dòng)跳到程序起始處開始執(zhí)行。

          VC5402內(nèi)部4KROM只有在量產(chǎn)的時(shí)候做掩膜才是經(jīng)濟(jì)上可行的,而且用戶程序一旦超過4K,就必須將程序存在外部掉電非易失的器件里面,如EEPROM,Flash或者通過主機(jī)下載程序。VC5402上電后調(diào)用片內(nèi)ROM里面出廠時(shí)已經(jīng)固化的BootLoad程序,從外部讀入用戶程序然后執(zhí)行之。下文介紹兩種常用的的系統(tǒng)自舉裝入的方法。

          由于主機(jī)通過HPI口可以訪問DSP的片內(nèi)SRAM資源,故而也可以在系統(tǒng)上電的時(shí)刻將程序由主機(jī)載入DSP,具體做法與第三節(jié)所講的主機(jī)與DSP通信流程相同。在硬件上需要將DSPINT2HPI的中斷輸出HINT直接相連以選中HPI自舉模式。HPI方式簡(jiǎn)單方便,不必外接掉電非易失的器件,對(duì)于基于主機(jī)的DSP信號(hào)處理板不失為一種理想的自舉裝入方式。

          在非基于主機(jī)的DSP系統(tǒng)中,或者當(dāng)程序的二進(jìn)制代碼大小超過DSP的片內(nèi)的SRAM的容量的時(shí)候,這時(shí)候只能選擇將程序固化外部掉電非易失的器件中。由于Flash(閃速存儲(chǔ)器)容量大,價(jià)格便宜,可以在線編程以動(dòng)態(tài)的更新數(shù)據(jù),一般選擇Flash作為固化程序的器件。由于Flash的種類很多,在選擇Flash的時(shí)候可根據(jù)系統(tǒng)工作電壓,容量,在線編程的難易等幾個(gè)指標(biāo)來選擇器件。

          如果直接通過DDK來訪問PCI設(shè)備,對(duì)于硬件開發(fā)者來說需要了解大量的Windows底層的知識(shí),不利于項(xiàng)目的快速進(jìn)展,而對(duì)于專業(yè)的軟件開發(fā)者來說,又不熟悉具體的硬件系統(tǒng),對(duì)于驅(qū)動(dòng)程序的操作對(duì)象不了解。為了解決這個(gè)問題,PLX公司專門推出了軟件開發(fā)包(SDK),利用這個(gè)工具能夠方便快速的開發(fā)出基于PLXPCI接口芯片設(shè)備的Windows驅(qū)動(dòng)程序。利用PLX SDK開發(fā)設(shè)備驅(qū)動(dòng)程序,不需要熟悉操作系統(tǒng)的內(nèi)核知識(shí),整個(gè)驅(qū)動(dòng)程序中的所有API應(yīng)用程序接口函數(shù)都是工作在用戶態(tài)下的,通過與SDKPLXSDK.DLLPLX.SYS文件的交互來達(dá)到驅(qū)動(dòng)硬件的目的。

          PCI設(shè)備的驅(qū)動(dòng)程序的流程為:

          * 列舉設(shè)備;

          * 找到所需設(shè)備;

          * 列舉該設(shè)備所有資源;

          * 鎖定設(shè)備資源;

          * 訪問設(shè)備資源;

          * 解鎖設(shè)備資源,釋放設(shè)備。

          PLX SDK用API函數(shù)來實(shí)現(xiàn)以上的功能,通過下面一個(gè)簡(jiǎn)單的程序就可以訪問DSP片內(nèi)SRAM,并且介紹一些常用函數(shù)的使用。

          1.列舉設(shè)備,找到所有使用PLX接口芯片的設(shè)備。

          2.選擇設(shè)備,根據(jù)設(shè)備號(hào)選中欲操作的設(shè)備。

          device.BusNumber

          =MINUS_ONE_LONG;

          device.SlotNumber

          =MINUS_ONE_LONG;

          device.DeviceId

          =MINUS_ONE_LONG;

          device.VendorId

          =MINUS_ONE_LONG;

          device.SerialNumber[0]='看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();