实验六 数据的采集.docx
《实验六 数据的采集.docx》由会员分享,可在线阅读,更多相关《实验六 数据的采集.docx(13页珍藏版)》请在冰豆网上搜索。
实验六数据的采集
贵州大学实验报告
学院:
电气工程学院专业:
电子信息工程班级
姓名
学号
实验组
实验时间
指导教师
成绩
实验项目名称
数据采集
实验目的
(1)了解模拟信号到数字信号的转换
(2)熟悉DSP对数据的保存方法
(3)熟悉CCS对数据的分析能力
实验要求
根据本实验的特点、要求和具体条件,采用集中讲授和学生动手的形式
实验原理
DSP的应用系统一般包括模数转换器(AD)、信号处理芯片(DSP)、数模转换器(DA)、等主要器件,典型的数字信号处理系统如下图1所示:
该系统首先将模拟信号(实验时可以由信号发生器产生),经过一个或多个硬件滤波,或其他的信号预处理,到达AD,结果AD转换成数字信号,传输到DSP,DSP对这个信号进行采集、处理、分析,如果有必要再经过DA,转换成模拟信号输出,试验中可以由示波器察看输出的信号波形。
在DSP系统中,首要的就是数据采集。
实验中,我们选择对一个确定的信号进行采样,然后将采样后的数据从DA输出,从DA的输出使用示波器察看输出后的波形。
关于AD转换器的采样频率必须对于信号频率的2倍。
根据香农采样定理:
如果AD转换器的输入信号具有有限带宽,并且有直到的频率分量,则只需要AD转换器的采样周期T满足如下条件:
,信号就可以完全从采样信号中恢复出来。
反之,如果采样频率低于信号频率的2倍,基本上不能恢复原始信号。
在实际的情况中,一般的情况下首先要使模拟信号通过一个截至频率不高于的低通滤波器,使其成为一个限带信号,其中为原始信号频率,然后对其进行采样就可以保证信号无混叠失真,该低通滤波器又叫抗混叠滤波器。
实验仪器
北京闻亭公司5410USBEVM
装有CCS软件的电脑一台
示波器一台
实验步骤
•1)将闻亭公司的“DSP开发系统驱动程序”光盘放进驱动,进入WT_EPP目录,根据选用的DSP选择不同的驱动程序,由于本实验采用TMS320C54X系列芯片,则进入CCS5000DVR目录,点击SetupCC54X。
•
(2)点击“next”直到出现“finish”为止。
安装结束,桌面上会出现SDConfig的图标。
•(3)点击SDConfig图标,进行设置。
将“378”/“EMU”/“nameofhardware”改为“XDS510PP”。
•(4)在CCS中写入程序如下:
.title"AD.asm"
.mmregs
.defmain
.defcpu_to_codec_ch1
spsa0.set38h;缓冲串口0子地址地址寄存器
spcd0.set39h;缓冲串口0子数据地址寄存器
drr21.set40h;缓冲串口0数据接受寄存器1
drr11.set41h;缓冲串口0数据接受寄存器2
dxr21.set42h;缓冲串口0数据发送寄存器1
dxr11.set43h;缓冲串口0数据发送寄存器2
spcr10.set00h;定义缓冲串口0寄存器的地址
spcr20.set01h
rcr10.set02h
rcr20.set03h
xcr10.set04h
xcr20.set05h
srgr10.set06h
srgr20.set07h
mcr10.set08h
mcr20.set09h
rcera0.set0ah
rcerb0.set0bh
xcera0.set0ch
xcerb0.set0dh
pcr0.set0eh
main:
ld#0h,dp
ssbxintm
ssbxsxm
st#0h,61h
st#2491h,swwsr
st#0ffe0h,pmst
st#0f007h,clkmd
st#1h,60h
dss_init:
rsbxcpl
nop
nop
nop
ld#0h,dp;初始化dp指针
ssbxintm
ssbxsxm
stmspcr10,spsa0;初始化缓冲串口0的寄存器
stm0h,spcd0
stmspcr20,spsa0
stm200h,spcd0
stmpcr0,spsa0
stm0ch,spcd0
stmspcr10,spsa0
stm0h,spcd0
stmspcr20,spsa0
stm0h,spcd0
stmrcr10,spsa0
stm40h,spcd0
stmrcr20,spsa0
stm4h,spcd0
stmxcr10,spsa0
stm40h,spcd0
stmxcr20,spsa0
stm4h,spcd0
nop
ld#64h,a
stm8h,ar0
rpt*ar0
nop
andm0ff3fh,54h
stm0h,23h
stm0h,spsa0
nop
stm1h,spcd0
nop
stm1h,spsa0
nop
stm201h,spcd0
nop
ld#64h,a
stm8h,ar0
rpt*ar0
nop
rpt*ar0
nop
andm0ff3fh,54h
stm0h,23h
stm0h,spsa0
nop
stm1h,spcd0
nop
stm1h,spsa0
nop
stm201h,spcd0
nop
ld#64h,a
stm8h,ar0
rpt*ar0
nop
aic_init:
stm0h,imr
orm10h,imr;开缓冲串口0接受中断
stm0ffffh,ifr;清所有中断
stm1h,23h
waitr1:
;设置AD50的内部寄存器
stm0h,spsa0
nop
ldmspcd0,a
nop
nop
nop
and#2h,0,a,a
bcwaitr1,aeq
stm301h,23h
waitr2:
stm0h,spsa0
nop
ldmspcd0,a
nop
nop
nop
and#2h,0,a,a
bcwaitr2,aeq
stm1h,23h
waitr3:
stm0h,spsa0
nop
ldmspcd0,a
nop
nop
nop
and#2h,0,a,a
bcwaitr3,aeq
stm401h,23h
waitr4:
stm0h,spsa0
nop
ldmspcd0,a
nop
nop
nop
and#2h,0,a,a
bcwaitr4,aeq
lddxr,a
stlma,23h
stlma,23h
rsbxintm
nop
nop
nop
js:
;等待中断
nop
callcpu_to_codec_ch1
rpt#4500
nop
nop
bjs
cpu_to_codec_ch1:
;中段服务子程序
st#1h,61h
ldmdxr,a
stla,23h
ret
.end
中断矢量程序如下:
.sect".vectors";定义段的名称为vectors
.mmregs
.refmain;程序入口地址
.refcpu_to_codec_ch1
rs:
;复位引起的中断
bdmain;程序无条件跳到入口起始点
stm4000h,sp;设置堆栈大小
nmi:
;使能NMI中断
RETE
NOP
NOP
NOP
sint17.space4*16;程序内部的软件中断
sint18.space4*16
sint19.space4*16
sint20.space4*16
sint21.space4*16
sint22.space4*16
sint23.space4*16
sint24.space4*16
sint25.space4*16
sint26.space4*16
sint27.space4*16
sint28.space4*16
sint29.space4*16
sint30.space4*16
int0:
RETE;外部中断0
NOP
NOP
NOP
int1:
RETE;外部中断1
NOP
NOP
NOP
int2:
RETE;外部中断2
NOP
NOP
NOP
TINT0:
RETE;定时器中断
NOP
NOP
NOP
brint0:
RETE;MCBSP串口接收中断0
NOP
NOP
NOP
bxint0:
RETE;MCBSP串口发送中断0
NOP
NOP
NOP
DMAC0:
RETE;DMA0中断0
NOP
NOP
NOP
DMAC1:
RETE;DMA1中断1
NOP
NOP
NOP
int3:
RETE;外部中断3
NOP
NOP
NOP
HPINT:
RETE;HPI中断
NOP
NOP
NOP
DMAC2:
RETE;DMA2中断2
NOP
NOP
NOP
BXINT1:
RETE;MCBSP发送中断1
NOP
NOP
NOP
DMAC4:
RETE;DMA4中断
NOP
NOP
NOP
DMAC5:
RETE;DMA5中断
NOP
NOP
NOP
.end
DMAC2:
RETE;DMA2中断2
NOP
NOP
NOP
BXINT1:
RETE;MCBSP发送中断1
NOP
NOP
NOP
DMAC4:
RETE;DMA4中断
NOP
NOP
NOP
DMAC5:
RETE;DMA5中断
NOP
NOP
NOP
.end
配置文件如下:
MEMORY
{
PAGE0:
EPROG:
origin=0x1400,len=0x7c00
VECT:
origin=0xff80,len=0x80
PAGE1:
USERREGS:
origin=0x60,len=0x1c
BIOSREGS:
origin=0x7c,len=0x4
IDATA:
origin=0x80,len=0x1380
EDATA:
origin=0x1400,len=0x8000
EDATA1:
origin=0x9400,len=0x4c00
}
SECTIONS
{
.vectors:
{}>VECTPAGE0
.sysregs:
{}>BIOSREGSPAGE1
.trcinit:
{}>EPROGPAGE0
.gblinit:
{}>EPROGPAGE0
frt:
{}>EPROGPAGE0
.text:
{}>EPROGPAGE0
.cinit:
{}>EPROGPAGE0
.pinit:
{}>EPROGPAGE0
.sysinit:
{}>EPROGPAGE0
.bss:
{}>IDATAPAGE1
.far:
{}>IDATAPAGE1
.const:
{}>IDATAPAGE1
.switch:
{}>IDATAPAGE1
.sysmem:
{}>IDATAPAGE1
.cio:
{}>IDATAPAGE1
.MEM$obj:
{}>IDATAPAGE1
.sysheap:
{}>IDATAPAGE1
.stack:
{}>IDATAPAGE1
}
实验内容
本实验要求使用AD将模拟信号转换成数字信号,使用DSP对转换后的数字信号读取并保存,并利用CCS对这些采集到的数据进行分析。
实验数据
由函数信号发生器产生观察到的输入波形
采样后输出波形
实验总结
经采集过后的波形与原波形相比,有少许纹波,即采样后的输出波形与原波形有少许失真
指导教师意见
签名:
年月日