TS101S型DSP與PCI總線的簡(jiǎn)易接口設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:介紹Analog Device公司的TS101S型DSP與PCI的接口方式,分析其硬件組成及工作方式,給出TS101S與PCI9054型總線接口電路實(shí)現(xiàn)接口的硬件原理。
關(guān)鍵詞:數(shù)字信號(hào)處理器 TS101S PCI9054 接口
1 引言
DSP+PCI數(shù)字信號(hào)處理方案可利用PC的強(qiáng)大功能實(shí)現(xiàn)對(duì)DSP的操作控制、數(shù)據(jù)分析和操作監(jiān)視等。例如系統(tǒng)無(wú)需再有專(zhuān)門(mén)的人機(jī)界面(如鍵盤(pán)、監(jiān)視屏),只需將數(shù)據(jù)上傳至PC中顯示即可。也可將PC作為主控機(jī)實(shí)現(xiàn)對(duì)數(shù)據(jù)流上下行的控制和工作模式選擇等。DSP+PCI方案能充分滿足數(shù)字圖像、語(yǔ)音處理、高速實(shí)時(shí)數(shù)據(jù)處理等領(lǐng)域的應(yīng)用,為DSP系統(tǒng)的低成本實(shí)現(xiàn)提供了解決方案。
2 TS101S型DSP介紹
本系統(tǒng)采用美國(guó)Analog Device公司的高性能TIGER SHARC 101S(簡(jiǎn)稱TS101S)作為主處理器。TS101S處理器劫持32bit和64bit浮點(diǎn),以及8、16、32和64bit定點(diǎn)處理。它的靜態(tài)超量結(jié)構(gòu)使其每周期能執(zhí)行多達(dá)4條指令,進(jìn)行24個(gè)16bit定點(diǎn)運(yùn)算和6個(gè)浮點(diǎn)運(yùn)行。其內(nèi)部有3條相互獨(dú)立的128bit寬數(shù)據(jù)總線,每條連接3個(gè)2Mbit內(nèi)部存儲(chǔ)塊中的一個(gè),提供4字節(jié)的數(shù)據(jù)、指令、I/O訪問(wèn)和14.4Gbyte/s的內(nèi)部存儲(chǔ)帶寬。以300MHz時(shí)鐘運(yùn)行時(shí),其內(nèi)核指令周期為3.3ns。在發(fā)揮其單指令多數(shù)據(jù)特點(diǎn)后,TS101S每秒可以進(jìn)行了24億次40bitMAC運(yùn)算或6億次80bitMAC運(yùn)算。以300MHz時(shí)鐘運(yùn)行時(shí),完成1024點(diǎn)復(fù)數(shù)FFT(基2)僅需32.78μs,1024點(diǎn)輸入50抽頭FIR需91.67μs。TS101S有強(qiáng)大的鏈路口傳輸功能,每個(gè)鏈路口傳輸速度達(dá)到250Mbyte/s??偟逆溌窋?shù)據(jù)率達(dá)1Gbyte/s(4個(gè)鏈路口),超過(guò)了外部口的傳輸速率(800Mbyte/s)。
3 PCI介紹
PCI(Peripheral Component Interconnect)總線是一種不依附于某個(gè)具體處理器的高性能局部總線,因此開(kāi)發(fā)PCI設(shè)備可獨(dú)立于處理器,具體由一個(gè)橋接電路(PCI橋)實(shí)現(xiàn)對(duì)這一層的管理,并實(shí)現(xiàn)上下之間的接口數(shù)據(jù)傳送??梢园裀CI橋描述為實(shí)現(xiàn)通用總線與PCI總線的地址映射、協(xié)議轉(zhuǎn)換、數(shù)據(jù)緩存等功能的邏輯接口。
3.1 PCI橋的實(shí)現(xiàn)
開(kāi)發(fā)者可以根據(jù)PCI總線規(guī)范所定義的電氣特性、時(shí)序要求來(lái)進(jìn)行接口設(shè)計(jì)。一種方式是使用可編程邏輯器件(FPGA/CPLD)根據(jù)實(shí)際需要的功能來(lái)設(shè)計(jì),這種方式的成本低、靈活性高,但需要對(duì)PCI總線協(xié)議有充分的掌握,或者需要生產(chǎn)可編程邏輯器件的廠商提供PCI接口功能模塊。由于PCI總線的規(guī)范較復(fù)雜,一般用戶都會(huì)選擇專(zhuān)用的PCI接口電路,無(wú)需詳細(xì)理解底層的PCI總線協(xié)議,而只理解到應(yīng)用層即可。因此,本文介紹的系統(tǒng)采用后一種方案,PCI接口電路采用現(xiàn)在市場(chǎng)上使用較普通的PLX公司的PCI9054。
3.2 PCI9054
PCI9054采用先進(jìn)的PLX數(shù)據(jù)流水線結(jié)構(gòu)技術(shù),是32位、33MHz的PCI總線主I/O加速器,符合PCI本地總線規(guī)范2.2版,有M、C、J三種模式。針對(duì)不同的處理器及局總線特性可選,盡量減少中間邏輯;具有可選的串行E2PROM接口,本地總線時(shí)鐘可和PCI時(shí)鐘異步。PCI9054內(nèi)部有6種可編程的FIFO,以實(shí)現(xiàn)零等待突發(fā)傳輸及本地總線和PCI總線之間的異步操作,支持主模式、從模式、DMA傳輸方式,功能強(qiáng)大,可應(yīng)用于適配卡和嵌入式系統(tǒng)。
4 DSP+PCI應(yīng)用實(shí)例
DSP+PCI數(shù)字信號(hào)處理系統(tǒng)的組成如圖1所示。模塊信號(hào)先輸入模/數(shù)轉(zhuǎn)換器,然后經(jīng)過(guò)由CPLD鎖存數(shù)據(jù)到DSP1,經(jīng)鏈路口到DSP2,數(shù)據(jù)處理完后再通過(guò)PCI9054把數(shù)據(jù)傳到PC。此外CPLD還作為PCI9054與TS101S的接口邏輯轉(zhuǎn)換。采用PCI9054與單個(gè)TS101S之間放置雙口RAM作為緩存的接口方式。DSP采用EPROM加載方案。
本系統(tǒng)的特點(diǎn)是以盡量簡(jiǎn)單的方式來(lái)實(shí)現(xiàn)系統(tǒng)功能,因此采用了DSP間鏈路的口互連方式,這樣一來(lái),每對(duì)鏈路口互連僅需10條信號(hào)線,而采用總線互連方式時(shí)需超過(guò)100條信號(hào)線,可大大簡(jiǎn)化PCB板的復(fù)雜度。二個(gè)DSP間保留2個(gè)鏈路通道,總數(shù)據(jù)速率可達(dá)500Mbyte/s。路口互連是ADSP系統(tǒng)的特有功能,也是ADSP處理器能以低成本組成多片高性能信號(hào)處理機(jī)的主要原因。
4.1 TS101S與PCI9054的接口
由于TS101S沒(méi)有專(zhuān)門(mén)的PCI接口,而PCI9054也僅在M模式下才能實(shí)現(xiàn)與MPC850或Power QUICC等Motrola電路的無(wú)縫連接,因此,TS101S與PCI9054之間需要可編程邏輯器件進(jìn)行邏輯轉(zhuǎn)換。出于對(duì)研制周期的考慮,采用一種較為簡(jiǎn)便的通信方式:在DSP與PCI橋間插入一個(gè)雙口RAM,雙口RAM一端的地址數(shù)據(jù)線接ISI101S,另一端的地址數(shù)據(jù)線接PCI9054。通過(guò)雙口RAM轉(zhuǎn)換數(shù)據(jù),并作為公共訪問(wèn)緩沖區(qū)。這樣,PCI橋與DSP之間的訪問(wèn)成為間接,可以大大削彈對(duì)PCI的時(shí)序要求,DSP與PCI之間只需少量的信號(hào)通過(guò)CPLD來(lái)實(shí)現(xiàn)邏輯轉(zhuǎn)換,而無(wú)需總線仲裁,這種方式的時(shí)序簡(jiǎn)單,控制信號(hào)較少,DSP與CPLD編程簡(jiǎn)單,應(yīng)用更為方便。雙口RAM的型號(hào)為IDT70261,容量為16k×16bit。
PCI9054的工作方式為從模式,驅(qū)動(dòng)方為PC,數(shù)字信號(hào)處理機(jī)作為L(zhǎng)OCAL端的主機(jī),中間由公用的雙口RAM進(jìn)行讀寫(xiě)操作。在時(shí)序上,只需幾個(gè)簡(jiǎn)單的控制信號(hào)進(jìn)行握手即可實(shí)現(xiàn)雙向數(shù)據(jù)傳輸。由PC主動(dòng)發(fā)出讀寫(xiě)命令,可根據(jù)需要實(shí)現(xiàn)單字節(jié)讀寫(xiě),在大多數(shù)系統(tǒng)中,這種方式已經(jīng)滿足要求。具體的接口電路如圖2所示。
PIC9054局部總線側(cè)的信號(hào)功能如下所述。
LHOLD:總線請(qǐng)求信號(hào),由PCI9054驅(qū)動(dòng),高電平有效,有效時(shí)表明其正在使用本地總線。
LHOLDA:總線請(qǐng)求應(yīng)答,由LOCAL端設(shè)備驅(qū)動(dòng),在LHOLD有效后一個(gè)周期有效,直至LHOLD無(wú)效后才無(wú)效,以向PCI9054表明LOCAL端未占用總線。
ADS:地址閾門(mén)信號(hào),低電平有效,表明一個(gè)總線訪問(wèn)周期的開(kāi)始,第一個(gè)時(shí)鐘有效,持續(xù)一個(gè)LCLK,此后地址線有效。
USERo:用戶輸出信號(hào),由PCI9054驅(qū)動(dòng),引入CPLD,作為DSP的外部中斷請(qǐng)求。
USERi:用戶輸入信號(hào),由外部設(shè)備驅(qū)動(dòng),PCI9054可查詢到外部設(shè)備發(fā)出的信號(hào)。
LW/R:讀寫(xiě)信號(hào),由PCI9054驅(qū)動(dòng)。
READY:從模式下為輸入信號(hào),當(dāng)一個(gè)訪問(wèn)周期結(jié)束時(shí),LOCAL端的設(shè)備要向PCI9054發(fā)出READY信號(hào),表明完成本次訪問(wèn),可開(kāi)始下一輪訪問(wèn)。
4.2 系統(tǒng)工作方式
由于本系統(tǒng)采用RAM緩沖方式,因此PCI9054和DSP間只需握手信號(hào)即可。通過(guò)DSP的外部中斷IRQ和標(biāo)志引腳FLAG,以及PCI9054的用戶輸入/輸出USERi/USERo相互配合實(shí)現(xiàn)握手,可實(shí)現(xiàn)基本的單字節(jié)讀寫(xiě),如果需要更復(fù)雜的功能,可以加上控制字來(lái)實(shí)現(xiàn)。地址映射是雙口RAM的數(shù)據(jù)寬度為16位,PCI9054地址的LA1-LA14分別接RAM的ADD0-ADD13,PCI映射空間的偏移地址為0-7FFEH,偶地址有效。LA15引入CPLD后可作為雙口RAM的片選信號(hào)。
建立通訊的過(guò)程是PCI9054發(fā)送LHOLD信號(hào),CPLD返回LHOLDA信號(hào);PCI9054發(fā)出ADS信號(hào),表示一次讀寫(xiě)操作開(kāi)始,此時(shí)CPLD鎖存讀寫(xiě)信號(hào)LW/R,并轉(zhuǎn)換為RAM的R/W或OE信號(hào);CPLD給PCI9054發(fā)送READY無(wú)效信號(hào),使其保持等待狀態(tài)。
信號(hào)握手的實(shí)現(xiàn)過(guò)程是:
PCI9054向RAM寫(xiě)數(shù)據(jù)→PCI9054通過(guò)USER0發(fā)出握手請(qǐng)求到CPLD→CPLD向DSP的IRQ發(fā)出中斷信號(hào)→DSP響應(yīng)中斷→DSP讀RAM數(shù)據(jù)。
DSP向RAM寫(xiě)數(shù)據(jù)→DSP通過(guò)FLAG發(fā)出握手請(qǐng)求到CPLD→CPLD向PCI9054的USERi發(fā)出中斷信號(hào)→PCI9054查詢到中斷→PCI9054或RAM數(shù)據(jù)。時(shí)序如圖3所示。
圖3
CPLD的程序如下:
Library IEEE;
Use IEEE.STD_LOGIC_1164.all;
Use IEEE.STD_LOGIC_unsigned.all;
Use IEEE.std_logic_arith.all;
ENTITY PCI IS
PORT(
ADS:IN STD_LOGIC;
LCLK:IN STD_LOGIC;
LWR:IN STD_LOGIC;
LHOLD:IN STD_LOGIC;
LHOLDA:OUT STD_LOGIC;
READY:OUT STD_LOGIC;
OE:OUT STD_LOGIC;
RW:OUT STD_LOGIC);
END PCI;
ARCHITECTURE PCI_arch OF PCI IS
SIGNAL signal_0:STD_LOGIC;
BEGIN
PROCESS(LCLK)
BEGIN
IF LCLK'EVENT AND LCLK='1'THEN
IF LHOLD='1'THEN
IF ADS='0'THEN
Signal_0<='1';
ELSIF ADS='1'THEN
Signal_0<='0';
END IF;
END IF;
END IF;
IF LCLK'EVENT AND LCLK='1'THEN
IF LHOLD='1'THEN
IF LWR='0'THEN
OE<='0';
RW<='1';
ELSIF LWR='1'THEN
OE<='1';
RW<='0';
END IF;
END IF;
END IF;
IF LCLK'EVENT AND LCLK='0'THEN
IF LHOLD='1'THEN
IF signal_0='1'THEN
READY<='0';
ELSIF signal_0='0'THEN
READY<='1';
END IF;
END IF;
END IF;
END PROCESS;
PROCESS(LCLK,LHOLD)
BEGIN
IF LCLK'EVENT AND LCLK='0'THEN
IF LHOLD='1'THEN
LHOLDA<='1';
ELSIF LHOLD='0'THEN
LHOLDA<='0';
END IF;
END IF;
END PROCESS;
END PCI_arch;
5 結(jié)束語(yǔ)
本文介紹的DSP與PCI總線的接 接方案靈活簡(jiǎn)單,減小了布板的復(fù)雜度,簡(jiǎn)化了PCI總線要求的時(shí)序,縮短了開(kāi)發(fā)周期。采用該方案設(shè)計(jì)的數(shù)據(jù)處理系統(tǒng)工作穩(wěn)定,已應(yīng)用在低頻信號(hào)檢測(cè)領(lǐng)域中。