<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PCI總線(xiàn)的DSP數據運算平臺設計

基于PCI總線(xiàn)的DSP數據運算平臺設計

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

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

本文引用地址:http://dyxdggzs.com/article/2846.htm

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

* PCI接口芯片的選擇;

* PCIDSP的接口設計;

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

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

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

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

綜合項目需求,成本以及開(kāi)發(fā)難易等幾個(gè)問(wèn)題來(lái)考慮,選擇了PLX9030芯片作為本設計的PCI運算板的接口芯片。

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

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

DSP與主機的數據交互是PCI運算平臺的設計關(guān)鍵。主機可以通過(guò)VC5402的主機接口中的三個(gè)HPI寄存器訪(fǎng)問(wèn)DSP芯片內16KDRAM。三個(gè)HPI寄存器的具體定義如下:

* HPIAHPI地址寄存器,存放當前所訪(fǎng)問(wèn)的DSP的內存地址;

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

* HPIDHPI數據寄存器,當前HPIA所在地址的數據;

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

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

圖中PLD內部的VHDL的核心部分代碼如下:

hcs <=not lad7;

has <='1';

hds1 <=wr;

hds2 <=rd;

hrw <=not lwr;

hcntl0 <=lad6;

hcntl1 <=lad5;

hbil <=lad4;

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

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

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

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

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

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

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

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

* 列舉設備;

* 找到所需設備;

* 列舉該設備所有資源;

* 鎖定設備資源;

* 訪(fǎng)問(wèn)設備資源;

* 解鎖設備資源,釋放設備。

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

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

2.選擇設備,根據設備號選中欲操作的設備。

device.BusNumber

=MINUS_ONE_LONG;

device.SlotNumber

=MINUS_ONE_LONG;

device.DeviceId

=MINUS_ONE_LONG;

device.VendorId

=MINUS_ONE_LONG;

device.SerialNumber[0]='国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放

<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>