新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ADSP系列數(shù)字信號處理器件的應(yīng)用

ADSP系列數(shù)字信號處理器件的應(yīng)用

作者: 時(shí)間:2006-05-07 來源:網(wǎng)絡(luò) 收藏

摘要:A是AD公司生產(chǎn)的浮點(diǎn)式系列產(chǎn)品,文中對幾種A系列產(chǎn)品的特點(diǎn)作了綜合描述,指出了它們各自系列的特性和數(shù)據(jù)處理能力。最后給出了ADSP系列產(chǎn)品應(yīng)用于數(shù)字濾波器的實(shí)現(xiàn)方法和程序。

本文引用地址:http://m.butianyuan.cn/article/242353.htm

關(guān)鍵詞:超哈佛結(jié)構(gòu) ADSP 多功能指令 自動(dòng)緩沖 數(shù)字濾波器

DSP(Digital Signal Processing)芯片也稱器,它是一種特別適合于進(jìn)行運(yùn)算的微處理器,其主要特點(diǎn)是能夠?qū)崟r(shí)快速地實(shí)現(xiàn)各種算法。自1980年以來,DSP芯片得到了突飛猛進(jìn)的發(fā)展,現(xiàn)在DSP芯片的應(yīng)用越來越廣泛。美國模擬器件公司(Analog Devisces,簡稱AD)是設(shè)計(jì)和制造DSP芯片的主要廠商之一。近年來,該公司相繼推出了一系列具有自己特點(diǎn)的DSP芯征,其中有定點(diǎn)DSP芯片ADSP2100/2100A/2101/2103/2105、ADSP2111/2115、ADSP216X以及ADSP2171/2181以用浮點(diǎn)DSP芯片ADSP21000/21020、ADSP2106等。

1 浮點(diǎn)式ADSP芯片的特性

1.1 ADSP2100浮點(diǎn)芯征特性

ADSP21000系列浮點(diǎn)芯片有如下特性:

●快速算術(shù)處理能力

乘法器和ALU、數(shù)據(jù)地址產(chǎn)生器(以下稱DAGs)、程序序列產(chǎn)生器可并行操作;

●可在單周期內(nèi)完成兩個(gè)片外存儲(chǔ)器的讀取操作

并行的DAGs能使兩個(gè)存儲(chǔ)器的讀/寫操作在一個(gè)周期內(nèi)完成;

●動(dòng)態(tài)擴(kuò)展范圍

●32/40位IEEE標(biāo)準(zhǔn)浮點(diǎn)動(dòng)態(tài)范圍為10E-38~10E+38,具有32位定點(diǎn)MACs及80位累加器;

●可硬件支持環(huán)形緩沖尋址,DAGs支持對兩個(gè)存儲(chǔ)器的環(huán)形緩沖和取模尋址;

●硬件無開銷循環(huán),嵌套可達(dá)6層。

1.2 ADSP2106X浮點(diǎn)芯片特性

ADSP2106X是高性能的浮點(diǎn)DSP芯片,采用超哈佛結(jié)構(gòu),具有四條獨(dú)立總線(兩條數(shù)據(jù)總線、一條程序總線和一條I/O總線)。它不僅具有ADSP21000系列高性能的核心處理器,而且在結(jié)構(gòu)上增加了以上幾個(gè)部分;

●具有大容量的高效片內(nèi)存儲(chǔ)器系統(tǒng),其中ADSP21060有4M位片內(nèi)存儲(chǔ)器;而ADSP21062和ADSP21061分別有2M和1M位片內(nèi)存儲(chǔ)器;

●內(nèi)含DMA控制器和I/O處理器,允許靈活且無開銷的高速數(shù)據(jù)傳輸,其速率為240Mbytes/s;

●可提供與16位32位處理器的接口;

●具有兩個(gè)40Mbit/s的多通道串行口。

2 ADSP芯征處理能力

ADSP系列器件具有很強(qiáng)的運(yùn)算能力、尋址能力和I/O操作能力,因而有著很高的性能。ADSP器件在常用的券積、濾、FFT以矩陣運(yùn)算等方面效果較好。若用高級語言調(diào)用DSP板專用ADSP程序模塊,其運(yùn)算速度可提高2-3個(gè)數(shù)量級。ADSP系列器件采用CMOS工藝,因而具有較低的功耗。另外,它們的指令全部兼容,并且在芯片上集成了完整的串行口硬件,從而使功能更加強(qiáng)大。

2.1 運(yùn)算能力

一個(gè)性能優(yōu)良的DSP處理器必須能在單周期內(nèi)完成乘與累加運(yùn)算與其它運(yùn)算和邏輯操作的組合。ADSP系列器件因?yàn)槠鋬?nèi)有三個(gè)獨(dú)立的計(jì)算單元ALU、MAC和桶形移位器,并經(jīng)結(jié)果總線相連,且任一單元的輸出寄存器均可直接作為其它單元的輸入而被處理,因此,ADSP器件能在一個(gè)周期內(nèi)完成對兩處存儲(chǔ)器的讀/寫操作。此外,ALU和MAC還可直接與程序存儲(chǔ)器及數(shù)據(jù)存儲(chǔ)器相連,每個(gè)運(yùn)算單元都有很強(qiáng)的獨(dú)立性,允許任意的計(jì)算次序,從而避免了重新排序給育種員帶來的額外工作。

2.2 數(shù)據(jù)尋址能力

一個(gè)優(yōu)秀的DSP處理器必須能在同一單周期內(nèi)從兩個(gè)不同的存儲(chǔ)空間存取兩個(gè)操作數(shù),典型況是一個(gè)系數(shù)和一個(gè)數(shù)據(jù)字。ADSP系列有兩個(gè)獨(dú)立的地址發(fā)生器,一個(gè)用于從程序存儲(chǔ)器獲取數(shù)據(jù)的地址,另一個(gè)則用于數(shù)據(jù)存儲(chǔ)器。每個(gè)地址發(fā)生器有8個(gè)I(Index)寄器存放地址指針和8個(gè)M(Modify)寄存器修改地址,同時(shí)具有8個(gè)L(Length)寄存器存儲(chǔ)循環(huán)緩沖器尋址的緩沖區(qū)長度。

當(dāng)一個(gè)地址被送到地址總線時(shí),地址發(fā)生器將該地址作碼位反轉(zhuǎn),并為FFT提供了零額外開銷的碼位反轉(zhuǎn)。循環(huán)緩沖是由地址發(fā)生器硬件支持的,對于全部8個(gè)循環(huán)緩沖器,地址發(fā)生器可同時(shí)維持其中的4個(gè)。循環(huán)緩沖器的內(nèi)容可放置在數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器中,并把緩沖區(qū)長度加載到長度寄存器中。當(dāng)?shù)刂分羔樳_(dá)到或超過緩沖區(qū)邊界時(shí)會(huì)被模邏輯檢測到并自動(dòng)完成指針回繞工作,在緩沖區(qū)可作前向或后向操作,其步長為任意值,但必須小于緩沖區(qū)長度。直接尋址舉例如下:

MXO=DM(標(biāo)號);

指令24位寬度,指令中可指定一個(gè)14位地址(標(biāo)號)。

間接尋址舉例:

寄存器=DM(I0,M3);

由數(shù)據(jù)存儲(chǔ)器加載寄存器,并用M3修改I0。

2.3 程序定序能力

程序定序效率主要集中在兩方面:第一是循環(huán)執(zhí)行;第二是如何處理循環(huán)轉(zhuǎn)移和條件轉(zhuǎn)移。

ADSP系列的程序定序器支持零額外開銷的“DO UNTIL”循環(huán)。該處理器利用計(jì)數(shù)堆棧、環(huán)堆棧和循環(huán)比較可以確定是否應(yīng)終止一個(gè)循環(huán),并轉(zhuǎn)到下一條指令而不需額外開銷周期。

下例是一個(gè)3條指令的循環(huán)程序,它被設(shè)計(jì)成重復(fù)100次:

CNTR=100;

DO label UNTIL CE

First instruction of Loop

Second instruction of Loop

Label:Last instruction of loop;

First instruction outside Loop;

該程序的循環(huán)機(jī)理是自動(dòng)的,其堆棧和計(jì)數(shù)器的操作及程序流程均由定序器邏輯來處理??芍С?級循環(huán)嵌套(浮點(diǎn)DSP支持6級循環(huán)嵌套),如矩陣操作、二維處理以及FFI這樣的常用算法,都得益于循環(huán)嵌套能力。

ADSP系列有許條件指令,其中大部分運(yùn)算指令、跳轉(zhuǎn)、子程序調(diào)用、中斷或子程序返回都是有條件的。踱定序器在運(yùn)行時(shí),不需額外開銷就可確定該條件是否滿足,并確定采取什么行動(dòng)。

有關(guān)條件指令的用法舉例如下:

IF Condition JUMP Label;

IF Condition JUMP I4;

IF Condition CALL Label;

I4表示于間接跳轉(zhuǎn)的地址發(fā)生器寄存器;Condition是指處理器16個(gè)運(yùn)算條件中的任一個(gè);Label是指任一地址或程序存儲(chǔ)空間的標(biāo)號。

在中斷發(fā)生或子程序調(diào)用時(shí),處理器狀態(tài)能自動(dòng)保存在服務(wù)子程序中,無需狀態(tài)引退和恢復(fù)。

2.4 I/O操作能力

ADSP2111/2101可與單字節(jié)寬EPROM直接接口,能有效地引導(dǎo)加載程序而無需附加任何部件。被引導(dǎo)的存儲(chǔ)空間由一個(gè)外部64×8位的空間組成,它分為8頁(8k×8位)。復(fù)位時(shí),零引導(dǎo)頁被自動(dòng)傳到ADSP2111/2101的內(nèi)部RAM中。

它的串行口能以該處理器的速度全速操作,其發(fā)送字和接收字的寬度可編程,能設(shè)為3到16的任意數(shù)值。串行口還允許自動(dòng)緩沖。在規(guī)定好緩沖區(qū)長度、緩沖區(qū)首地址和修改值后,它便能自動(dòng)更新地址。當(dāng)每個(gè)字通過串行口被傳送時(shí),數(shù)據(jù)被自動(dòng)讀出或?qū)懭爰拇嫫鳎鵁o需產(chǎn)生中斷。另外,ADSP2111/2101還具有如下特點(diǎn):

●每個(gè)串行口具有獨(dú)立的發(fā)送和接收硬件。采用雙緩沖寄存器,可在一個(gè)時(shí)鐘周期內(nèi)同時(shí)完成壓擴(kuò),從而實(shí)現(xiàn)全雙工,μ律和A律壓擴(kuò)功能可任意選擇。

●接口靈活。每個(gè)串行口均工作在自己的串行口時(shí)鐘SCLK下,SCLK和幀同步信號既可由外部輸入,也可內(nèi)部產(chǎn)生。數(shù)據(jù)字長在3-16bit之間變。

●使用獨(dú)立的收、發(fā)幀信號定義串行數(shù)據(jù)字的傳輸開始,可選擇需不需要幀同步,長幀還是短幀,電平觸發(fā)還是邊沿觸發(fā)。

●自動(dòng)緩沖功能。當(dāng)設(shè)定為自動(dòng)緩沖模式后,串行口會(huì)自動(dòng)接收發(fā)送一整塊的數(shù)據(jù),不需要軟件開銷,僅當(dāng)緩沖區(qū)的指針產(chǎn)生回繞時(shí)產(chǎn)生一個(gè)中斷請求。

●多路能力。SPORT0具有多路選擇接收和發(fā)送功能,可從24或32路時(shí)分復(fù)用比特流中選取某時(shí)隙的有效數(shù)據(jù)字。

每個(gè)串行口各有五條引腳與外圍電路連接。SCLK(時(shí)鐘)、RFS(接收幀同步)、TFS(發(fā)送幀同步)、DR(數(shù)據(jù)接收)和DT(數(shù)據(jù)發(fā)送)。

2.5 ADSP2106X的DMA處理能力

ADSP2106X的片內(nèi)Direct Memory Access(DMA)功能可提供一種進(jìn)行整塊數(shù)據(jù)傳輸?shù)臋C(jī)制。這使得ADSP2106X的內(nèi)部存儲(chǔ)器和外部存儲(chǔ)器、外設(shè)或主處理器、串行口之間能夠進(jìn)行DMA傳輸。外部存儲(chǔ)器和外設(shè)之間也能進(jìn)行DMA傳輸。在數(shù)據(jù)傳輸過程中,ADSP2106X的片內(nèi)DMA控制器發(fā)揮著關(guān)鍵作用。DMA控制器可獨(dú)立操作,且核心處理器不可見。它允許核心處理器在運(yùn)行程序和指令的同時(shí)進(jìn)行DMA數(shù)據(jù)傳輸,以減輕核心處理器在數(shù)據(jù)傳輸過程中的壓力。

3 數(shù)字模型的建立和算法的實(shí)現(xiàn)

為實(shí)現(xiàn)對某特定頻率的濾波,程序中共使用了兩種數(shù)字模型。(采用的是ADSP21XX定點(diǎn)處理器)。

3.1 諧振器合成濾波器

對某特定頻率進(jìn)行濾波的諧振器合成濾波器是利用對前兩個(gè)數(shù)據(jù)和當(dāng)前數(shù)據(jù)的相關(guān)性來實(shí)現(xiàn)的。這在算法實(shí)現(xiàn)上要比以往的FFT、IIR等傳統(tǒng)濾波器容量得多,其主要優(yōu)點(diǎn)是節(jié)省指令。對某頻率數(shù)據(jù)的處理如圖1所示。圖中Ya的取得與前N個(gè)數(shù)據(jù)相關(guān),其算式為:

Ya=X(n)-RNX(n-N);

Yb與前n-2個(gè)數(shù)據(jù)相關(guān),其算式為:

Yb=Ya(n)-Rya(n-2);

對于Yn的獲得則通過一個(gè)揩振器對Yb進(jìn)行處理,其處理算式為:

Yn=∑Yb(n)+Yc(n-1)×2cos(2kπ/N)-Ryc(n-2)

其中N值取決于所要求的帶寬和采產(chǎn)頻率。由于我們處理的是PCM脈碼信號,故取采樣頻率f0=8kc,根據(jù)實(shí)際情況,建議取帶寬為50Hz為佳。

則有:

N=f0/△f=8kc/25=320

關(guān)于系數(shù)R的取值,可取經(jīng)驗(yàn)值0.99。然后將R和cos的乘積作成一個(gè)固定系數(shù)。對應(yīng)于700、900、1100、1300、1500、1700六個(gè)基準(zhǔn)頻率的值分別為0X6C0C、0C605C、0X524C、0X4236、0X327E、0X1D95。

采用ADSP匯編語言來實(shí)現(xiàn)這一設(shè)計(jì)的程序如下:

mx0=dm(i3,m0);

my0=dm(const-r);

mr=mx0×my0(ss);

ar=ay0-mr1;

ay0=ar; {Yb}

cntr=6;

do result until ce;

mx0=dm(i2,m1);

my0=dm(const-rs);

mr=mx0×my0(ss);

mx0=dm(i2,m2);

my0=pm(i5,m5);

af=ay0-mr1;

mr=ay0-mr1;

mr=mx0×my0(ss);

ar=mr1+af; {Yn}

dm(i2,m1)=mx0;

result:dm(i2,m1)=ar;

圖2為用700Hz程序運(yùn)行時(shí),在示波器上所看見的波形。

3.2 水缸判別

對濾波器濾出的數(shù)據(jù)進(jìn)行水缸積累,使之達(dá)到一種動(dòng)態(tài)平衡,讓其在有數(shù)據(jù)時(shí)水缸漸滿,無數(shù)據(jù)時(shí)水缸不變。這時(shí)有:

A=Yc(M+A-A)M

其中M的取值取決于所要計(jì)算的數(shù)據(jù)的多少,本程序中取M=128;圖3為700Hz的水缸判別圖。

當(dāng)曲線超過A時(shí),表示數(shù)據(jù)已有,在A和B之間的數(shù)據(jù)表示700Hz的頻率已捕獲。對不同值的信號可調(diào)節(jié)A、B的值,使它們達(dá)到一種公共值。

用ADSP匯編語言來實(shí)現(xiàn)這一設(shè)計(jì)的程序如下:

(對700Hz,采用8kc采樣)

AR=DM(I2,M3);

AR=ABS AR;

AY0=DY(I1,M0);

AR=AR-AY0;

SR=ASHIFT AR BY-6(LO);

AR=SR0+AY0;

DM(I1,M3)=AR;

AR=AR-AY1;

IF GT JUMP判別處理;

該算法可用于對某些特定頻率的濾波,這在實(shí)際工作中效果非常明顯。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉