MAXQ7654在信號濾波中的應(yīng)用
發(fā)布時間:2007/9/7 0:00:00 訪問次數(shù):1611
本文描述的應(yīng)用旨在展示MAXQ7654的混合信號特性。微控制器利用一個I)AC產(chǎn)生帶噪聲的正弦波。DA(:輸出被接入一個ADC輸入通道進行采樣。得到的采樣通過一個簡易的有限激勵響應(yīng)(FIR)濾波器,以衰減信號中的高頻分量,從而在第二個DAC產(chǎn)生連續(xù)和光滑的正弦波輸出。利用豐富的模擬和數(shù)字外設(shè),在很多有意義的應(yīng)用中都可施展MAXQ7654的能力。本文聚焦于MAXQ7654的信號處理能力,主要展示其ADC、DAC和硬件乘加單元。采用IAR編譯器和MAXQ7654評估板(EV kit),通過一個應(yīng)用實例說明如何從充滿噪聲的正弦波中濾出干凈的低頻信號。本應(yīng)用的源代碼、項目文件和原理圖可在www.maxim—ic.com/MAXQ7654 Fiher下載。
1 集成的模擬功能和外設(shè)使信號濾波
MAXQ7654集成了16通道、12位ADC,完成一次轉(zhuǎn)換僅需16個時鐘周期。時鐘頻率為8MHz(最大值)時,每秒可完成500 000次采樣。測量單端模擬信號時可對多達16路信號進行采樣,測量差分信號時可對多達8路輸入信號進行采樣。該ADC也可進行溫度測量--MAXQ7654內(nèi)含溫度傳感器,可讀取芯片(管芯)溫度。MAXQ7654包括一個用于信號處理硬件乘加單元。它能在一個周期中進行二個16位乘法,并且還有可選的累加器功能,可工作于帶符號或無符號模式。這樣一來簡化了FIR和IIR濾波器的實現(xiàn);每個濾波因數(shù)只需3個機器周期的處理,其中包括調(diào)用濾波器的開銷。JT7AG調(diào)試引擎是MAXQ平臺公用的,當(dāng)應(yīng)用程序在目標硬件上運行時,利用它可完成寄存器和存儲器的讀、寫操作。采用.JTAG后還省掉了昂貴的仿真器。主要的C編譯器提供商,如Rowley、IAR和Python均支持MAXQ7654及其調(diào)試功能。
MAXQ平臺的一個新增外設(shè)是控制器局域網(wǎng)(CAN)2.0B接口,它是常用于工業(yè)和汽車領(lǐng)域的通信協(xié)議。MAXQ7654的CAN控制器支持15個消息中心,比特率高達1Mb/s。當(dāng)收到或發(fā)出消息后以中斷形式通知系統(tǒng)。SPI?接口支持從機或主機模式,可進行8位或16位數(shù)據(jù)傳輸。SPI常見于小型電路,如可編程充電器、數(shù)字電位器、DAC、ADC和存儲器。MAXQ7654.有4個多功能定時器。這些定時器采用8位或16位計數(shù)方式,支持周期性中斷、脈寬調(diào)制、捕獲及比較功能的自動重裝載。
2 濾波應(yīng)用的軟件架構(gòu)
定時器產(chǎn)生中斷時第一個DAC輸出帶噪聲的正弦波,以確保輸出采樣具有固定的間隔。設(shè)計用于生成正弦波的代碼涉及復(fù)雜的浮點計算,實現(xiàn)的運算量很大?紤]到正弦波數(shù)據(jù)是周期性重復(fù)出現(xiàn)的。重新計算那些不會隨時間改變的正弦波數(shù)據(jù)會造成資源浪費,因此,在應(yīng)用程序一開始就預(yù)先算出一組正弦波數(shù)據(jù)。在正弦波數(shù)據(jù)初始化之后,定時器產(chǎn)生周期性中斷。定時器中斷程序代碼中的一個偽隨機數(shù)產(chǎn)生器用來產(chǎn)生噪聲,噪聲被直接疊加到干凈的正弦波數(shù)據(jù)中,結(jié)果被傳給DAC產(chǎn)生輸出信號。為了保持演示程序代碼的簡潔,在用于產(chǎn)生輸出正弦波的定時中斷中同時對模擬輸入信號進行采樣。當(dāng)讀取輸入采樣后,采樣信號通過簡易的FIR濾波軟件處理,為使效率最大化,該濾波軟件用匯編語言來實現(xiàn)。濾波后的采樣信號隨后從第2個DAC輸出。用示波器來比較二個DAC的輸出,可以發(fā)現(xiàn)一條正弦曲波較為粗糙,帶有噪聲,而另一條正弦比較干凈,由于FIR濾波器的長度有限,因而帶有輕微的相位延遲。
3 噪聲正弦波的生成和采樣
定時器中斷程序代碼如下,程序開始時已預(yù)先計算好正弦波數(shù)據(jù),本段代碼將其轉(zhuǎn)換為噪聲正弦波數(shù)據(jù)。
sample=static-sin-data[sinindex++];
sinnoise=((sinnoise^0x5C)*31)+0xabcd;
thisnoise=sinnoise;
if(thisnoise&Ox01)
{
thisnoise=thisnoise&0xlff;
}
else
{
thisnoise=-1*(thisnoise&Oxlff);
}
sample+=thisnoise;
if(sample<0)
sample=sample*-1;
if(sample>4095)
sample=8192-sample;
DACll=sample; //Send value to DAC#1
if(sinindex>:SIN_WAVE_STEPS)
sinindex=0:
sinnoise變量用來存儲偽隨機噪聲(可能是正的或負的)。噪聲被疊加到干凈的正弦波數(shù)據(jù)后,所產(chǎn)生的噪聲正弦波數(shù)據(jù)被直接賦給DACll寄存器以進行數(shù)/模轉(zhuǎn)換。從ADC讀取采樣數(shù)據(jù)的過程幾乎同樣簡單。設(shè)置完ADC的采樣輸入引腳后,軟件可通過查詢BUSY位或者使能中斷來獲知轉(zhuǎn)換已經(jīng)結(jié)束。本實例代碼使用了查詢方式。
inputsample=ADC_Convert_Poll(AIN0 | START CON
V | CONTINUOUS);
unsigned int ADC_Convert_Poll(unsigned int Con-
trol_Reg)
{
ACNT=Control Reg;//Set the ADC parameters
while(ACNT_bit.ADCBY==1); //Wait till
ADC is not busy
return ADCD; //Return the ADC result
}
注意,MAXQ7654中ADC的采樣率是500ks/s。在8MHz時鐘下,只需等待16個時鐘周期便可完成一次轉(zhuǎn)換。
4 簡單的數(shù)字濾波器設(shè)計
本應(yīng)用所產(chǎn)生的波形中包含一個強低頻信號和大量的高頻噪聲。用一個簡單的低通濾波器可凈高精度的浮點濾波
本文描述的應(yīng)用旨在展示MAXQ7654的混合信號特性。微控制器利用一個I)AC產(chǎn)生帶噪聲的正弦波。DA(:輸出被接入一個ADC輸入通道進行采樣。得到的采樣通過一個簡易的有限激勵響應(yīng)(FIR)濾波器,以衰減信號中的高頻分量,從而在第二個DAC產(chǎn)生連續(xù)和光滑的正弦波輸出。利用豐富的模擬和數(shù)字外設(shè),在很多有意義的應(yīng)用中都可施展MAXQ7654的能力。本文聚焦于MAXQ7654的信號處理能力,主要展示其ADC、DAC和硬件乘加單元。采用IAR編譯器和MAXQ7654評估板(EV kit),通過一個應(yīng)用實例說明如何從充滿噪聲的正弦波中濾出干凈的低頻信號。本應(yīng)用的源代碼、項目文件和原理圖可在www.maxim—ic.com/MAXQ7654 Fiher下載。
1 集成的模擬功能和外設(shè)使信號濾波
MAXQ7654集成了16通道、12位ADC,完成一次轉(zhuǎn)換僅需16個時鐘周期。時鐘頻率為8MHz(最大值)時,每秒可完成500 000次采樣。測量單端模擬信號時可對多達16路信號進行采樣,測量差分信號時可對多達8路輸入信號進行采樣。該ADC也可進行溫度測量--MAXQ7654內(nèi)含溫度傳感器,可讀取芯片(管芯)溫度。MAXQ7654包括一個用于信號處理硬件乘加單元。它能在一個周期中進行二個16位乘法,并且還有可選的累加器功能,可工作于帶符號或無符號模式。這樣一來簡化了FIR和IIR濾波器的實現(xiàn);每個濾波因數(shù)只需3個機器周期的處理,其中包括調(diào)用濾波器的開銷。JT7AG調(diào)試引擎是MAXQ平臺公用的,當(dāng)應(yīng)用程序在目標硬件上運行時,利用它可完成寄存器和存儲器的讀、寫操作。采用.JTAG后還省掉了昂貴的仿真器。主要的C編譯器提供商,如Rowley、IAR和Python均支持MAXQ7654及其調(diào)試功能。
MAXQ平臺的一個新增外設(shè)是控制器局域網(wǎng)(CAN)2.0B接口,它是常用于工業(yè)和汽車領(lǐng)域的通信協(xié)議。MAXQ7654的CAN控制器支持15個消息中心,比特率高達1Mb/s。當(dāng)收到或發(fā)出消息后以中斷形式通知系統(tǒng)。SPI?接口支持從機或主機模式,可進行8位或16位數(shù)據(jù)傳輸。SPI常見于小型電路,如可編程充電器、數(shù)字電位器、DAC、ADC和存儲器。MAXQ7654.有4個多功能定時器。這些定時器采用8位或16位計數(shù)方式,支持周期性中斷、脈寬調(diào)制、捕獲及比較功能的自動重裝載。
2 濾波應(yīng)用的軟件架構(gòu)
定時器產(chǎn)生中斷時第一個DAC輸出帶噪聲的正弦波,以確保輸出采樣具有固定的間隔。設(shè)計用于生成正弦波的代碼涉及復(fù)雜的浮點計算,實現(xiàn)的運算量很大。考慮到正弦波數(shù)據(jù)是周期性重復(fù)出現(xiàn)的。重新計算那些不會隨時間改變的正弦波數(shù)據(jù)會造成資源浪費,因此,在應(yīng)用程序一開始就預(yù)先算出一組正弦波數(shù)據(jù)。在正弦波數(shù)據(jù)初始化之后,定時器產(chǎn)生周期性中斷。定時器中斷程序代碼中的一個偽隨機數(shù)產(chǎn)生器用來產(chǎn)生噪聲,噪聲被直接疊加到干凈的正弦波數(shù)據(jù)中,結(jié)果被傳給DAC產(chǎn)生輸出信號。為了保持演示程序代碼的簡潔,在用于產(chǎn)生輸出正弦波的定時中斷中同時對模擬輸入信號進行采樣。當(dāng)讀取輸入采樣后,采樣信號通過簡易的FIR濾波軟件處理,為使效率最大化,該濾波軟件用匯編語言來實現(xiàn)。濾波后的采樣信號隨后從第2個DAC輸出。用示波器來比較二個DAC的輸出,可以發(fā)現(xiàn)一條正弦曲波較為粗糙,帶有噪聲,而另一條正弦比較干凈,由于FIR濾波器的長度有限,因而帶有輕微的相位延遲。
3 噪聲正弦波的生成和采樣
定時器中斷程序代碼如下,程序開始時已預(yù)先計算好正弦波數(shù)據(jù),本段代碼將其轉(zhuǎn)換為噪聲正弦波數(shù)據(jù)。
sample=static-sin-data[sinindex++];
sinnoise=((sinnoise^0x5C)*31)+0xabcd;
thisnoise=sinnoise;
if(thisnoise&Ox01)
{
thisnoise=thisnoise&0xlff;
}
else
{
thisnoise=-1*(thisnoise&Oxlff);
}
sample+=thisnoise;
if(sample<0)
sample=sample*-1;
if(sample>4095)
sample=8192-sample;
DACll=sample; //Send value to DAC#1
if(sinindex>:SIN_WAVE_STEPS)
sinindex=0:
sinnoise變量用來存儲偽隨機噪聲(可能是正的或負的)。噪聲被疊加到干凈的正弦波數(shù)據(jù)后,所產(chǎn)生的噪聲正弦波數(shù)據(jù)被直接賦給DACll寄存器以進行數(shù)/模轉(zhuǎn)換。從ADC讀取采樣數(shù)據(jù)的過程幾乎同樣簡單。設(shè)置完ADC的采樣輸入引腳后,軟件可通過查詢BUSY位或者使能中斷來獲知轉(zhuǎn)換已經(jīng)結(jié)束。本實例代碼使用了查詢方式。
inputsample=ADC_Convert_Poll(AIN0 | START CON
V | CONTINUOUS);
unsigned int ADC_Convert_Poll(unsigned int Con-
trol_Reg)
{
ACNT=Control Reg;//Set the ADC parameters
while(ACNT_bit.ADCBY==1); //Wait till
ADC is not busy
return ADCD; //Return the ADC result
}
注意,MAXQ7654中ADC的采樣率是500ks/s。在8MHz時鐘下,只需等待16個時鐘周期便可完成一次轉(zhuǎn)換。
4 簡單的數(shù)字濾波器設(shè)計
本應(yīng)用所產(chǎn)生的波形中包含一個強低頻信號和大量的高頻噪聲。用一個簡單的低通濾波器可凈高精度的浮點濾波
熱門點擊
- OrCAD/PSpice9偏壓點和直流掃描分
- 16位Σ-ΔA/D轉(zhuǎn)換器AD7705與微控制
- 一種增大放大器增益的方法
- 基于FCHIP2指紋芯片的應(yīng)用方案
- PCB線路板抄板方法及步驟
- 用于清除數(shù)據(jù)噪聲的簡單數(shù)字濾波器
- 用AD7008構(gòu)成可程控正弦波信號發(fā)生器
- 基于Nios的掌紋鑒別系統(tǒng)設(shè)計與實現(xiàn)
- MAXQ7654在信號濾波中的應(yīng)用
- Actel推出新款低成本CorePWM組件
推薦技術(shù)資料
- 泰克新發(fā)布的DSA830
- 泰克新發(fā)布的DSA8300在一臺儀器中同時實現(xiàn)時域和頻域分析,DS... [詳細]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究