日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

用MAXQ結(jié)合MAC進(jìn)行控制和數(shù)字信號(hào)處理

出處:taoest 發(fā)布于:2007-04-29 09:33:43

用MAXQ結(jié)合MAC進(jìn)行控制和數(shù)字信號(hào)處理

Maxim北京辦事處

MAXQ簡(jiǎn)介

MAXQ系列微控制器是高性能的16位RISC器件,專門為低噪聲操作而設(shè)計(jì),是用電池供電的混合信號(hào)應(yīng)用的理想器件。MAXQ將高的模擬功能與數(shù)字元件集成在一起,減少了設(shè)計(jì)中的芯片數(shù)目。MAXQ采用Harvard存儲(chǔ)器結(jié)構(gòu),將數(shù)據(jù)、代碼與寄存器空間安排在不同的總線上。這種存儲(chǔ)器結(jié)構(gòu)的主要優(yōu)點(diǎn)是具有靈活的字長(zhǎng),系統(tǒng)與外設(shè)寄存器可以是8位或16位。由于MAXQ的指令字是16位的,微控制器通常具有16位指令總線。Harvard結(jié)構(gòu)的另一個(gè)優(yōu)點(diǎn)是始終利用寄存器來(lái)訪問(wèn)存儲(chǔ)器,這樣便可以用直接存取的方式訪問(wèn)外設(shè),例如模數(shù)轉(zhuǎn)換器(ADC)與硬件協(xié)處理器等。MAXQ2000是MAXQ系列微控制器中的款產(chǎn)品,它集成了16位CPU、64KB閃存、2KB SRAM和4 36字段的LCD控制器。


對(duì)控制應(yīng)用和數(shù)字信號(hào)處理都有要求時(shí)出現(xiàn)的難題

傳統(tǒng)微控制器(MCU)與數(shù)字信號(hào)處理器(DSP)通常被認(rèn)為是微型計(jì)算機(jī)領(lǐng)域中兩個(gè)互不兼容的機(jī)種。MCU適用于需要對(duì)非同步過(guò)程實(shí)現(xiàn)低延遲響應(yīng)的控制應(yīng)用,DSP則在高強(qiáng)度數(shù)學(xué)計(jì)算方面表現(xiàn)卓越。當(dāng)然,也可以用MCU進(jìn)行紛繁復(fù)雜的算術(shù)運(yùn)算,但是由于絕大多數(shù)MCU的算術(shù)邏輯單元(ALU)每次執(zhí)行一項(xiàng)運(yùn)算,其運(yùn)算速度與DSP相比大大減慢。同理,因?yàn)閮?nèi)部架構(gòu)的原因,DSP也不適用于控制應(yīng)用。

隨著在控制應(yīng)用中增加少量信號(hào)處理功能的實(shí)際應(yīng)用越來(lái)越多,在DSP與傳統(tǒng)MCU之間進(jìn)行選擇變得越來(lái)越困難。在此類應(yīng)用中,將DSP代碼嵌入到MCU中的解決方法具有一定的吸引力。但是采用這種方法后,應(yīng)用程序的大部分時(shí)間都花在執(zhí)行DSP函數(shù)上了,而控制應(yīng)用不得不有所犧牲。MAXQ架構(gòu)的出現(xiàn),解決了這個(gè)問(wèn)題。在模塊化的MAXQ架構(gòu)中,可以很容易地集成乘法-累加單元(MAC)。使用了硬件MAC后,16 16位的乘法-累加運(yùn)算可在一個(gè)周期內(nèi)實(shí)現(xiàn),而不影響控制處理器上的任務(wù)執(zhí)行。下面舉例說(shuō)明如何使用MAXQ微控制器中的MAC模塊解決實(shí)際問(wèn)題。


MAC模塊與MAXQ結(jié)合使用

對(duì)DSP來(lái)說(shuō),基本的應(yīng)用是對(duì)模擬信號(hào)進(jìn)行濾波。在濾波應(yīng)用中,將經(jīng)過(guò)適當(dāng)調(diào)制的模擬信號(hào)提供給ADC,在數(shù)字域中對(duì)采樣得到的數(shù)據(jù)流進(jìn)行濾波。常規(guī)濾波器的執(zhí)行過(guò)程可以用如下公式實(shí)現(xiàn):

式中bi和ai分別是系統(tǒng)前饋與反饋?lái)憫?yīng)的特征值。根據(jù)ai和bi的值,可以將數(shù)字濾波器分成有限沖擊響應(yīng)(FIR)濾波器和無(wú)限沖擊響應(yīng)(IIR)濾波器兩大類。當(dāng)系統(tǒng)不包含任何反饋元素時(shí)(即所有ai=0),濾波器為FIR型,其方程為:

而當(dāng)ai和bi的元素都不為0時(shí),濾波器為IIR型。

由公式(2)知,F(xiàn)IR型濾波器的主要數(shù)學(xué)運(yùn)算是將每個(gè)采樣輸入與常數(shù)相乘,然后將每個(gè)乘積累加,共進(jìn)行n次,可以用如下C語(yǔ)言程序段來(lái)說(shuō)明:

y[n]=0;
for(i=0;i小于n;i++)
y[n]+=x[i]*b[i]

對(duì)帶乘法器單元的微處理器,可以根據(jù)以下偽碼來(lái)實(shí)現(xiàn):

move ptr0, #x ;Primary data pointer -> samples
move ptr1, #b ;Secondary DP -> coefficients
move ctr, #n ;Loop counter gets number of samples
move result, #0 ;Clear result register

ACC_LOOP:

move acc, @ptr0 ;Get a sample
mul @ptr1 ;Multiply by coefficient
add result ;Add to previous result
move result, acc ;...and save the result back
inc ptr0 ;Point to next sample
inc ptr1 ;Point to next coefficient
dec ctr ;Decrement loop counter
jump nz, ACC_LOOP ;Jump if there are more samples
end

這樣,盡管有一個(gè)乘法器,乘法與累加的循環(huán)也需要12條指令以及(假定是單周期運(yùn)行的單元與乘法器)4+ 8n個(gè)周期。而在MAXQ的乘法-累加單元中完成相同的操作,代碼空間從12個(gè)字縮減到9個(gè)字,運(yùn)行時(shí)間從4+ 8n個(gè)周期減少到4 +5n個(gè)周期,其代碼實(shí)現(xiàn)如下:

move DP[0], #x ; DP[0] -> x[0]
move DP[1], #b ; DP[1] -> b[0]
move LC[0], #loop_cnt ; LC[0] -> number of samples
move MCNT, #INIT_MAC ; Initialize MAC unit

MAC_LOOP:

move DP[0], DP[0] ; Activate DP[0]
move MA, @DP[0]++ ; Get sample into MAC
move DP[1], DP[1] ; Activate DP[1]
move MB, @DP[1]++ ; Get coeff into MAC and multiply
djnz LC[0], MAC_LOOP

需要注意的是,在MAXQ乘法-累加單元中,當(dāng)?shù)诙€(gè)操作數(shù)裝入該單元時(shí),請(qǐng)求的運(yùn)算自動(dòng)執(zhí)行,其結(jié)果存儲(chǔ)在MC寄存器中。還應(yīng)當(dāng)注意的是,在傳統(tǒng)方法中每個(gè)基本運(yùn)算后都必須進(jìn)行溢出檢測(cè),而MC寄存器的長(zhǎng)度是40位,在溢出前可以累加大量32位的乘法計(jì)算結(jié)果,這是對(duì)傳統(tǒng)方法的改善。為了說(shuō)明如何在信號(hào)處理流程中高效使用MAC,現(xiàn)列舉一個(gè)用于雙音多頻(DTMF)收發(fā)器的簡(jiǎn)單應(yīng)用。


DTMF概述

DTMF(Dual tone multitre-quency)雙音多頻是用于電話網(wǎng)絡(luò)中的信令技術(shù),用來(lái)從網(wǎng)絡(luò)終端(電話或其他設(shè)備)向交換機(jī)傳送地址信息。其機(jī)理是使用兩組各四路獨(dú)立音調(diào),互相之間沒(méi)有諧波相關(guān)關(guān)系,例如“低頻組”(低于1 kHz)與“高頻組”(高于1 kHz)。電話鍵盤上的每個(gè)數(shù)字都剛好可以用一路低頻組音調(diào)和一路高頻組音調(diào)來(lái)表示。圖1給出了這些音調(diào)的分配。

DTMF收發(fā)器的音調(diào)編碼器

DTMF收發(fā)器的編碼器部分簡(jiǎn)單明了,即需要兩個(gè)數(shù)字正弦振蕩器,每個(gè)振蕩器都可以調(diào)諧到四個(gè)低頻組頻率或高頻組頻率之一。

解決數(shù)字合成正弦波問(wèn)題的方法很多。

產(chǎn)生正弦波的方法之一是完全避免數(shù)字合成問(wèn)題,只對(duì)端口引腳產(chǎn)生的方波進(jìn)行較強(qiáng)的濾波。盡管這種方法在很多應(yīng)用中都比較有效,但是該技術(shù)達(dá)不到Bellcore(貝爾通信研究所)對(duì)正弦波頻譜純度的要求。第二種方法是利用速查表來(lái)產(chǎn)生正弦波。在這種方法中,將一路正弦波的1/4存儲(chǔ)在一張ROM表中,這張表根據(jù)預(yù)先計(jì)算的間隔采樣來(lái)生成所需要的波形。不過(guò),要生成一個(gè)分辨率足夠高、能夠滿足頻譜要求的1/4正弦表,需要很大的存儲(chǔ)量,所以這種方法通常不被采用。另外一個(gè)相對(duì)較好的方法就是使用遞歸數(shù)字諧振器來(lái)產(chǎn)生正弦波。

遞歸數(shù)字諧振器產(chǎn)生的正弦波如圖2所示。該諧振器用雙極點(diǎn)濾波器來(lái)實(shí)現(xiàn),可用以下差分方程描述:


其中k為常數(shù),其定義為:

由于DTMF撥號(hào)盤只需要少量音調(diào),k的8個(gè)數(shù)值可以預(yù)先計(jì)算,并存儲(chǔ)在ROM中。例如,在8 kHz的采樣速率下產(chǎn)生行頻為770 Hz音調(diào)所需的常數(shù)為:

還有一個(gè)數(shù)值必須計(jì)算,即振蕩器開(kāi)始運(yùn)行所需的初始脈沖。很明顯,若Xn-1與Xn-2都為0,隨后的每個(gè)Xn都將為0。為了啟動(dòng)振蕩器,將Xn-1設(shè)置為0,并將Xn-2設(shè)置為:

在本例中,假定需要單位正弦波,則(6)式可簡(jiǎn)化為:

很容易將上述過(guò)程用代碼表示:初始化兩個(gè)中間變量X1、 X2。X1初始化為0,而X2裝入初始激勵(lì)數(shù)值(以上(7)式已計(jì)算)啟動(dòng)振蕩。執(zhí)行以下操作產(chǎn)生正弦波的采樣:

X0=k*X1-X2;
X2=X1;
X1=X0;

每個(gè)新的正弦值都用乘法與減法來(lái)計(jì)算。使用MAXQ微控制器上的單周期硬件MAC,正弦波可以用如下代碼產(chǎn)生:

move DP[0], #X1 ; DP[0] -> X1
move MCNT, #INIT_MAC ; Initialize MAC unit
move MA, #k ; MA=k
move MB, @DP[0]++ ; MB=X1, MC=k*X1, point to X2
move MA, #-1 ; MA=-1
move MB, @DP[0]-- ; MB=X2, MC=k*X1-X2, point to X1
nop ; wait for result
move @--DP[0], MC ; Store result at X0

DTMF音調(diào)的檢測(cè)

由于只需要檢測(cè)少量頻率,因此可以使用改進(jìn)的Goertzel算法。該Goertzel算法比一般的DFT(離散式傅立葉變換)機(jī)制更有效,并提供對(duì)頻段內(nèi)信號(hào)的可靠檢測(cè)。圖3是用簡(jiǎn)單二階濾波器實(shí)現(xiàn)Goertzel算法的示意圖。

為了用Goertzel算法檢測(cè)特定頻率的音調(diào),必須先計(jì)算常數(shù)k。對(duì)DTMF檢測(cè)器,該常數(shù)可以在編譯時(shí)計(jì)算,所有的音調(diào)頻率都已明確指定。k值可按公式(4)計(jì)算。

首先,將三個(gè)中間變量(D0、D1與D2)初始化為0。現(xiàn)在,對(duì)接收到的每個(gè)采樣值X,按以下公式計(jì)算:

在獲得了足夠數(shù)量的采樣值后(若采樣速率為8 kHz,通常為205),使用計(jì)算出的D1與D2計(jì)算下式:

這樣P中就包含了輸入信號(hào)X中測(cè)試頻率的平方冪(D12與D22)。為了解碼全部四列DTMF,每個(gè)采樣將通過(guò)8個(gè)濾波器完成。每個(gè)濾波器將有自己的k值和一組中間變量。由于每個(gè)變量都是16位的,整個(gè)算法將需要48個(gè)字節(jié)的中間存儲(chǔ)。

一旦計(jì)算了不同音調(diào)頻率的P值,高頻組與低頻組中的一路音調(diào)將比其他音調(diào)的數(shù)值高出兩倍以上,而通常其幅度高出一個(gè)數(shù)量級(jí)。圖4是提供給解碼器的采樣輸入信號(hào),X的值分別為852 Hz和1 336 Hz。圖5給出了Goertzel算法的檢測(cè)結(jié)果。若信號(hào)頻譜達(dá)不到這個(gè)標(biāo)準(zhǔn),有兩種可能情況,要么是信號(hào)中沒(méi)有DTMF能量,要么是噪聲太大阻斷了信號(hào)。

說(shuō)明該算法的電子表格以及配備了MAC的MAXQ處理器的實(shí)例代碼在網(wǎng)站www.maxim-ic.com/MAXQ_DTMF上有說(shuō)明。

結(jié)論

MAXQ微控制器與其MAC單元相結(jié)合,在傳統(tǒng)MCU與DSP之間架起了橋梁,很好地解決了控制應(yīng)用與需要少量信號(hào)處理并存系統(tǒng)的技術(shù)問(wèn)題。添加了硬件MAC之后,MAXQ微控制器將過(guò)去16位微控制器的信號(hào)處理能力提高到了新水平。單周期的MAC還提供了常用函數(shù),使實(shí)時(shí)信號(hào)處理成為可能。



  
關(guān)鍵詞:用MAXQ結(jié)合MAC進(jìn)行控制和數(shù)字信號(hào)處理MAXIM

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

Maxim (美信)緊缺芯片IC「MAX333AEWP 」開(kāi)箱,中遠(yuǎn)亞電子實(shí)拍!
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!