DSPAD采集与显示Word下载.docx

上传人:b****6 文档编号:8434451 上传时间:2023-05-11 格式:DOCX 页数:11 大小:51.91KB
下载 相关 举报
DSPAD采集与显示Word下载.docx_第1页
第1页 / 共11页
DSPAD采集与显示Word下载.docx_第2页
第2页 / 共11页
DSPAD采集与显示Word下载.docx_第3页
第3页 / 共11页
DSPAD采集与显示Word下载.docx_第4页
第4页 / 共11页
DSPAD采集与显示Word下载.docx_第5页
第5页 / 共11页
DSPAD采集与显示Word下载.docx_第6页
第6页 / 共11页
DSPAD采集与显示Word下载.docx_第7页
第7页 / 共11页
DSPAD采集与显示Word下载.docx_第8页
第8页 / 共11页
DSPAD采集与显示Word下载.docx_第9页
第9页 / 共11页
DSPAD采集与显示Word下载.docx_第10页
第10页 / 共11页
DSPAD采集与显示Word下载.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

DSPAD采集与显示Word下载.docx

《DSPAD采集与显示Word下载.docx》由会员分享,可在线阅读,更多相关《DSPAD采集与显示Word下载.docx(11页珍藏版)》请在冰点文库上搜索。

DSPAD采集与显示Word下载.docx

本实验采用ICETEK-CT控R制板。

5.TI的DSP开发集成环境CodeComposerStudio。

本实验采用CCS2.21for'

C5000。

6.仿真器驱动程序。

7.实验程序及相关文档。

三.实验设备

通用计算机一台,ICETEK-VC5509-ED实U验箱。

四.实验原理

1.将从信号源获取的模拟信号经过A/D转换后,再进行FFT变换,然后输出。

2.TMS320VC5509A模数转换模块特性:

内置采样和保持的10位模数转换模块ADC,最小转换时间为500ns,最大采样率为21.5kHz。

有2个模拟输入通道(AIN0—AIN1)。

采样和保持获取时间窗口有单独的预定标控制。

3.模数转换工作过程:

模数转换模块接到启动转换信号后,开始转换第一个通道的数据。

经过一个采样时间的延迟后,将采样结果放入转换结果寄存器保存。

转换结束,设置标志。

等待下一个启动信号。

4.模数转换的程序控制:

模数转换相对于计算机来说是一个较为缓慢的过程。

一般采用中断方式启

动转换或保存结果,这样在CPU忙于其他工作时可以少占用处理时间。

设计转换程序应首先考虑处理过程如何与模数转换的时间相匹配,根据实际需要选择适当的触发转换的手段,也要能及时地保存结果。

由于TMS320VC5509ADSP芯片内的A/D转换精度是10位的,转换结果的低

10位为所需数值,所以在保留时应注意将结果的高6位去除,取出低10位有效数字。

5.FFT的原理和参数生成公式

FFT并不是一种新的变换,它是离散傅立叶变换(DFT)的一种快速算法。

由于我们在计算DFT时一次复数乘法需用四次实数乘法和二次实数加法;

一次复数加法则需二次实数加法。

每运算一个X(k)需要4N次复数乘法及2N+2(N-1)=2

(2N-1)次实数加法。

所以整个DFT运算总共需要4N^2次实数乘法和N*2(2N-1=2N(2N-1次实数加法。

如此一来,计算时乘法次数和加法次数都是和N^2成正比的,当N很大时,运算量是可观的,因而需要改进对DFT的算法减少运算速度。

我们先设序列长度为N=2^L,L为整数。

将N=2^L的序列x(n(n=0,1,⋯⋯,N-1,按N的奇偶分成两组,也就是说我们将一个N点的DFT分解成两个N/2点的DFT,他们又重新组合成一个如下式所表达的N点DFT:

一般来说,输入被假定为连续的。

当输入为纯粹的实数的时候,我们就可以利用左右对称的特性更好的计算DFT

我们称这样的RFFT优化算法是包装算法:

首先2N点实数的连续输入称为“进包”。

其次N点的FFT被连续运行。

最后作为结果产生的N点的合成输出是“打开”成为最初的与DFT相符合的2N点输入。

使用这一思想,我们可以划分FFT的大小,它有一半花费在包装输入O(N)的操作和打开输出上。

这样的RFFT算法和一般的FFT算法同样迅速,计算速度几乎都达到了两次DFT的连续输入。

6.液晶显示屏的结构

实验箱左上方有一个长方形液晶屏,由64×

128个点阵构成。

显示时,每个

点阵对应一个2进制数,数为0,显示一点;

为1,则不显示。

通过不同位置显

示与不显示,可以显示数字、图形、汉字等。

每个点阵对应的2进制数,64×

128

个点阵,则对应64×

128bit空间

1)将液晶分为两块:

左半屏和右半屏,每块64×

64

2)每列64个点阵,8个点阵为一部分,分为8部分,用一个byte控制一个部分,这个byte中哪个bit为1,则显示;

为0,则不显示。

3)每个半屏分为8页,64列。

4)通过向某行的相邻8列输入显码,则可以显示数字

五.总体设计方案

1.【系统总体设计思路】本系统实现对输入的方波、正弦波、三角波等信号采集,经过AD转换后,对这些数字信号处理,最后通过LCD显示出来,达到基本的示波器的效果。

总体设计思路如图所示。

系统包括信号源、控制器模块TMS320VC5509A、信号检测采集模块、显示模块四部分。

1.2【功能描述】通过信号源输入的方波、正弦波、三角波等信号采集,经过

AD转换后,对这些数字信号处理,最后通过LCD显示出来,达到基本的示波器的效果。

之后,通过对信号进行FFT变换,将其显示出来,同时显示波形的最大值/峰峰值,以及XY坐标网格。

1.3【模块操作】

AD采集部分:

1.设置通道0信号源类型为正弦波,采集通道0的128个数据,并用Graph图

形窗口观察。

2.对采集到的128个数据进行FFT,得到其幅频特性数据,并用Graph图形窗

口观察。

(额外验证的内容)

3.分别改变波形类型为:

三角波和方波,重复步骤1,2。

4.设置波形类型为正弦波,改变波形的频率和振幅,重复步骤1、2,至少实

3个不同频率和3个不同振幅。

显示部分:

1.将采集到的128列数据进行处理,进行运算。

2.将二维数组显示在64*128的LCD上,显码数组。

1.4【结构框图】

系统由TMS320VC5509为ACPU的控制器、LCD显示模块、信号源输入、AD采集转换等模块构成。

六.实验结论

1.三角波

2.正弦波

七.相关代码

AD采集命令:

voidInitADC(;

voidwait(unsignedintcycles;

voidInitADC(

{

ADCCLKCTL=0x23;

//4MHzADCLK

ADCCLKDIV=0x4f00;

}

voidwait(unsignedintcycles

inti;

for(i=0;

i<

cycles;

i++{}

LCD显示左半屏:

LCD是64*128的点阵,通过对LCD显示阵列的分析,由于输入信号的幅度范围是0~1024,故用1024/16,得到1个点阵代表64个幅度值,记为buffer,然后用buffer%8,得到该列的页数,而用buffer/8得到余数就是在页数上的具体点阵位

buffer=nADC[j]/16;

m=buffer/8;

n=buffer%8;

LCD显示右半屏:

对数据个数进行判断,若个数大于等于64,则设置起始列的位置为CTRLCDCMDR=LCDCMDVERADDRESS+j-64;

选择显示FFT的频谱图将采集到的信号进行FFT变换后,得到FFT频谱图voidInitForFFT(

for(i=0;

i

{sin_tab[i]=sin(PI*2*i/SAMPLENUMBER;

cos_tab[i]=cos(PI*2*i/SAMPLENUMBER;

voidFFT(floatdataR[SAMPLENUMBER],floatdataI[SAMPLENUMBER]得到的FFT频谱图,送入LCD显示,显示方法同ADC-LCD显示。

3.3程序代码:

#include"

myapp.h"

ICETEK-VC5509-EDU.h"

scancode.h"

#include

#definePI3.1415926#defineSAMPLENUMBER128#defineLCDDELAY1voidInitForFFT(;

voidlcd(;

//intINPUT[SAMPLENUMBER];

intDATA[SAMPLENUMBER];

floatfWaveR[SAMPLENUMBER],fWaveI[SAMPLENUMBER],w[SAMPLENUMBER];

floatsin_tab[SAMPLENUMBER],cos_tab[SAMPLENUMBER];

voidInitForFFT(;

voidFFT(floatdataR[SAMPLENUMBER],floatdataI[SAMPLENUMBER];

voidInitADC(;

unsignedintnADC[128];

main(

intj;

unsignedintuWork;

InitForFFT(;

CLK_init(;

SDRAM_init(;

InitCTR(;

//CloseCTR(;

SetDSPPLL(SPEED144MHz;

TurnOnLCD(;

//打开显示屏

LCDCLS(;

//清除显示内存

while(1

//AD

for(j=0;

j<

128;

j++//采集128个数据

ADCCTL=0x8000;

//启动AD转换,通道0

do

uWork=ADCDATA;

}while(uWork&

0x8000;

nADC[j]=uWork&

0x0fff;

lcd(;

{fWaveR[i]=nADC[i];

fWaveI[i]=0.0f;

w[i]=0.0f;

}

FFT(fWaveR,fWaveI;

//对采集到的数据进行FFT处理for(i=0;

DATA[i]=w[i];

asm("

nop"

;

voidFFT(floatdataR[SAMPLENUMBER],floatdataI[SAMPLENUMBER]//FFT处理函数

intx0,x1,x2,x3,x4,x5,x6,xx;

inti,j,k,b,p,L;

floatTR,TI,temp;

x0=x1=x2=x3=x4=x5=x6=0;

x0=i&

0x01;

x1=(i/2&

x2=(i/4&

x3=(i/8&

x4=(i/16&

x5=(i/32&

x6=(i/64&

xx=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6;

dataI[xx]=dataR[i];

dataR[i]=dataI[i];

dataI[i]=0;

for(L=1;

L<

=7;

L++

{/*for(1*/b=1;

i=L-1;

while(i>

b=b*2;

i--;

}/*b=2^(L-1*/

=b-1;

j++/*for(2*/

p=1;

i=7-L;

0/*p=pow(2,7-L*j;

*/

p=p*2;

p=p*j;

for(k=j;

k<

k=k+2*b/*for(3*/

TR=dataR[k];

TI=dataI[k];

temp=dataR[k+b];

dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p];

dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p];

dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p];

dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*cos_tab[p];

}/*ENDfor(3*/

}/*ENDfor(2*/

}/*ENDfor(1*/

w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i];

voidInitForFFT(

sin_tab[i]=sin(PI*2*i/SAMPLENUMBER;

voidlcd(//LCD显示函数

intj,buffer,m,n;

设置显示起始行

CTRLCDCMDR=LCDCMDSTARTLINE;

//

Delay(LCDDELAY;

CTRLCDCR=0;

for(j=0;

j++//对128列数据进行显示

//得到以16压缩后的信号幅值m=buffer/8;

//得到页数n=buffer%8;

//余数为具体页数内的点阵位置if(j<

CTRLCDCMDR=LCDCMDVERADDRESS+j;

//起始列=0Delay(LCDDELAY;

CTRLCDCMDR=LCDCMDPAGE+7-m;

//设置操作页=0Delay(LCDDELAY;

CTRLCDLCR=ledkey[0][n];

//页内的点阵位置Delay(LCDDELAY;

Delay(512;

else

CTRLCDCMDR=LCDCMDVERADDRESS+j-64;

CTRLCDCMDR=LCDCMDPAGE+7-m;

CTRLCDRCR=ledkey[0][n];

voidLCDCLS(//刷新清屏函数

inti,j;

LCDCMD(LCDCMDSTARTLINE;

i<

8;

i++

LCDCMD(LCDCMDPAGE+i;

LCDCMD(LCDCMDVERADDRESS;

64;

j++

LCDWriteLeft(0;

//左半屏刷新

Delay(1;

LCDCMD(LCDCMDVERADDRESS;

for(j=0;

LCDWriteRight(0;

//右半屏刷新

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2