DSP课设报告成品.docx
- 文档编号:4279610
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:28
- 大小:113.80KB
DSP课设报告成品.docx
《DSP课设报告成品.docx》由会员分享,可在线阅读,更多相关《DSP课设报告成品.docx(28页珍藏版)》请在冰豆网上搜索。
DSP课设报告成品
北华航天工业学院
课程设计报告(论文)
设计课题:
DSP串口数据采集发送及
FIR滤波器的DSP实现
专业班级:
B10231
学生姓名:
指导教师:
设计时间:
2013年6月
北华航天工业学院电子工程系
数字信号处理与DSP课程设计课程设计任务书
姓名:
专业:
通信工程
班级:
B10231
指导教师:
职称:
教授
学号:
课程设计题目:
DSP串口数据采集发送及FIR滤波器的DSP实现
设计要求:
C语言编程产生滤波器模拟输入4KHz方波或三角波信号;设计一数字滤波器,经滤波后分别得到4KHz正弦波信号。
由实验箱信号发生器产生4KHz的模拟方波或三角波信号,然后进行AD转换,采样频率为64KHz,对采样数字信号进行数字滤波得到正弦波信号,存放在内存单元中观察这些数据的波形,并通过串口DAC转换后输出,在示波器上观察输出信号。
*DSP最小系统及ADC、DAC设计原理图。
所需仪器设备:
电脑,DSP实验箱(含硬件仿真器),示波器。
成果验收形式:
演示,在CCS中及在示波器上观测到正确输出信号
参考文献:
1.《DSP与通信技术应用综合实验指导书》南京恒缔缔科技有限公司
2.《DSP原理及应用》邹彦主编电子工业出版社
3.《DSP原理及应用》李利等编著,中国水利水电出版社
时间
安排
(一)第一周的工作安排(2013年6月17日----2013年6月21日):
1.全体学生集中,介绍和说明本次综合课程设计的目的、实施方法和要完成的任务内容;
2.给学生一些本次综合课程设计相关参考资料;引导学生进行扩展设计和应用;(讨论:
如何得到4KHz正弦波,由方波和三角波得到正弦波的不同,哪种效果好?
)
3.学生自己完成:
应用MATLAB设计滤波器;C语言编程产生滤波器模拟输入4KHz方波信号;滤波器的DSP编程实现。
教师只是进行辅导答疑。
4.以具体任务为主线和示例,引导学生学习和掌握DSP最小系统设计,多通道串口、ADC、DAC原理及接口设计。
(二)第二周的工作安排(2013年6月24日----2013年6月28日):
1.各小组宣讲小组设计方案(阶段验收)(周一、周二)
针对课题涉及到的软件、硬件设计各部分,抽签决定宣讲的小组,其他组同学可以向该小组成员提问,并给该小组成员打分。
(讨论专题:
C语言编程、matlab滤波器设计、FIR滤波器的DSP实现、IIR滤波器的DSP实现-直接型、级联型、系数量化溢出处理、串口工作原理、TLV1572工作原理、TLC5617工作原理、串口数据的采集和发送编程、最小系统硬件设计、ADC及DAC通道硬件设计)
教师提问点评,给小组成员打分。
2.指导学生完成整个设计任务:
在ADDA程序中插入设计好的数字滤波器,对采样的数字方波信号进行数字滤波。
并将滤波后的信号通过串口DAC转换后输出,在示波器上观察得到正确输出信号。
(周三、周四)
3.最后一天验收学生的课程设计成果(周五)
指导教师:
教研室主任:
2013年6月28日
注:
本表下发学生一份,指导教师一份,栏目不够时请另附页。
课程设计任务书装订于设计计算说明书(或论文)封面之后,目录页之前。
内容摘要
本报告通过对A/D转换芯片TLV1572和D/A转换芯片TLC5617的工作原理、TMS320C5402多通道缓冲串口(McBSP)接收发送数据过程及FIR、IIR滤波器的DSP实现方法的研究,提出了A/D、D/A转换器与TMS320C5402多通道缓冲串口软硬件接口实现方法,及由4KHz方波信号经滤波后分别得到4KHz及8KHz正弦波信号的方法。
根据选用的DSP芯片TMS320C5402,给出其最小系统硬件设计原理图。
索引关键词:
数字信号处理器数字滤波器多通道缓冲串口
目录
一概述…………………………………………………………………………1
二方案设计与论证………………………………………………………………1
三单元程序设计与参数计算……………………………………………………1
3.1.FIR低通滤波器系数…………………………………………………………………1
3.2模拟方波………………………………………………………………………………2
3.3循环缓冲区法FIR滤波器……………………………………………………………4
3.4线性缓冲区法FIR滤波器……………………………………………………………6
3.5串口………………………………………………………………………………7
3.5硬件实现设计…………………………………………………………………………9
四仿真结果………………………………………………………………………12
五结论……………………………………………………………………………12
六心得体会………………………………………………………………………12
七参考文献………………………………………………………………………13
一、概述
数字信号处理是将信号以数字方式表示并处理的理论和技术。
数字信号处理与模拟信号处理是信号处理的子集。
数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。
因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。
而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。
FIR(FiniteImpulseResponse)滤波器:
有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
TMS320C5402(简称C5402)提供了2个支持高速、全双工、带缓冲、多种数据格式等优点的多通道缓冲串行口McBSP。
MCBSP分为数据通路和控制通路。
通信数据通过McBSP的数据发送(DX)引脚发送,通过数据接收(DR)引脚接收。
时钟和帧同步控制信息通过CLKX、CLKR、FSX和FSR给出。
C54xx通过16位宽可访问控制寄存器经外部外设总线与McBSP通信。
CPU或MDA控制器从数据接收寄存器(DRR[1,2])中读取接收待的数据,并把要发送的数据写到数据发送寄存器(DXR[1,2])中;然后,写到DXR[1,2]中的数据通过发送移位寄存器(XSR[1,2])从DX引脚移出。
类似地,DR引脚上的接收数据被移入到接收移位寄存器(RSR[1,2]),并被复制到接收缓冲接存器(RBR[1,2])中;然后,(RBR[1,2])被复制到DRR[1,2],则CPU或DMA控制器即可通过(DRR[1,2])获得接收数据。
这样,便可实现同时移动内部和外部帧同步脉冲有效表示传输的开始。
本次课设就是用DSP的多通道缓冲串行口接收数据,在通过FIR滤波后,输出出去。
2、方案设计与论证
C语言编程产生滤波器模拟输入4KHz方波信号;设计一个FIR滤波器,经FIR滤波后得到4KHz的正弦波信号。
FIR滤波器的DSP编程采用分别采用线性缓冲区法和循环缓冲区法。
由实验箱信号发生器产生4KHz的模拟方波信号,然后进行AD转换,采样频率为32KHz,对采样数字信号进行数字滤波得到4KHz的正弦波信号,存放在内存单元中观察这些数据的波形,并通过串口DAC转换后输出,在示波器上观察输出信号。
三、单元程序设计与参数计算
3.1设计一个FIR低通滤波器,通带边界频率为6500Hz,通带波纹小于1dB;阻带边界频率为2000Hz,阻带衰减大于40dB;采样频率为32000Hz。
FIR滤波器的设计可以用MATLAB窗函数法进行,例如选择Hamming窗,其程序为:
b=fir1(16,6500/32000*2);
在DSP汇编语言中,不能直接输入十进制小数,在MATLAB中进行如下转换:
h=round(b*2^15);
则将系数转换为Q15的定点小数形式,为
h=
-748136775-1303-1581251096451333096452510-1581-13037536781-74
3.2用C语言实现C语言编程产生滤波器模拟输入4KHz方波信号或者三角波信号。
程序如下:
方案一:
#include
#include
#include
voidmain()
{
inti;
intvalue=1;
intf[256];
FILE*fp;
if((fp=fopen("iiirin.inc","wt"))==NULL)
{
printf("can'topenfile!
\n");
return;
}
for(i=0;i<256;i++)
{
if(i%8==0)
value*=-1;
f[i]=value;
fprintf(fp,".word%1d\n",(long)(f[i]*32768/2));}
fclose(fp);
}
方案二:
#include
#include
voidmain()
{
inti,k;
intj;
doublef[256];
FILE*fp;
if((fp=fopen("iirin.inc","wt"))==NULL)
{
printf("can'topenfile!
\n");
return;
}
for(j=0;j<=15;j++)
{
for(i=0;i<=15;i++)
{m=0
n=7
k=i+16*j;
if(i%16<=7)f[k]=m++;
elsef[k]=n--;
fprintf(fp,".word%1d\n",(long)(f[k]*32768/2));}}
fclose(fp);
}
方案三:
c语言产生三角波:
#include
#include
voidmain()
{
inti,k,m,n;
intj;
doublef[256];
FILE*fp;
if((fp=fopen("iirin.inc","wt"))==NULL)
{
printf("can'topenfile!
\n");
return;
}
for(j=0;j<=15;j++)
{m=0;n=7;
for(i=0;i<=15;i++)
{
k=i+16*j;
if(i%16<=7)f[k]=m++;
elsef[k]=n--;
fprintf(fp,".word%1d\n",(long)(f[k]*32768/10));}}
fclose(fp);
}
该程序将产生名为firin.inc的输入信号数据文件。
在DSP汇编语言程序中通过.copy汇编命令将生成的数据文件firin.inc拷贝到汇编程序中,作为FIR滤波器的输入数据。
3.3应用循环缓冲区法编程实现FIR滤波器
程序如下:
.mmregs
.defstart,_c_int00
INDEX.set-1
KS.set256;模拟输入数据缓冲区大小
N.set17
COEF_FIR.sect"COEF_FIR";FIR滤波器系数
.word-74
.word81
.word367
.word75
.word-1303
.word-1581
.word2510
.word9645
.word13330
.word9645
.word2510
.word-1581
.word-1303
.word75
.word367
.word81
.word-74
.data
INPUT.copy"firin.inc";模拟输入在数据存储区0x2400
OUTPUT.space256*16;输出数据在数据区0x2500
b.usect"FIR_COEF",N
x.usect"FIR_BFR",N
.text
_c_int00
bstart
nop
nop
start:
ssbxFRCT
STM#b,AR5
RPT#N-1;将FIR系数从程序存储器移动到数据存储器
MVPDCOEF_FIR,*AR5+;
STM#INDEX,AR0
STM#x,AR4
RPTZA,#N-1
STLA,*AR4+;将数据循环缓冲区清零
STM#(x+N-1),AR4;数据缓冲区指针指向x[n-(N-1)]
STM#b+N-1,AR5;FIR系数表指针
FIR_TASK:
STM#INPUT,AR6
STM#OUTPUT,AR7
STM#KS-1,BRC
RPTBDLOOP-1
STM#N,BK;FIR循环缓冲区大小
LD*AR6+,A;装载输入数据
FIR_FILTER:
STLA,*AR4+0%
RPTZA,#N-1
MAC*AR4+0%,*AR5+0%,A
STHA,*AR7+
LOOP:
EENDBEEND
.end
-mxunhuan.map
-oxunhuan.out
MEMORY
{
PAGE0:
ROM1(RIX):
ORIGIN=0080H,LENGTH=100H
PAGE1:
INTRAM1(RW):
ORIGIN=2400H,LENGTH=0200H
INTRAM2(RW):
ORIGIN=2600H,LENGTH=0100H
INTRAM3(RW):
ORIGIN=2700H,LENGTH=0100H
}
SECTIONS
{
.text:
{}>ROM1PAGE0
.data:
{}>INTRAM1PAGE1
FIR_COEF:
{}>INTRAM2PAGE1
FIR_BFR:
{}>INTRAM3PAGE1
}
3.4应用线性缓冲区法编程实现FIR滤波器
程序如下:
.mmregs
.globalstart
.defstart,_c_int00
KS.set256
COFF_FIR.sect"COFF_FIR";FIR滤波器系数
.word-74
.word81
.word367
.word75
.word-1303
.word-1581
.word2510
.word9645
.word13330
.word9645
.word2510
.word-1581
.word-1303
.word75
.word367
.word81
.word-74
.data
INPUT.copy"firin.inc"
OUTPUT.space16*256
x.usect"x",17
.text
_c_int00
bstart
nop
nop
start:
SSBXFRCT
STM#INPUT,AR6
STM#x,AR4
RPTZA,#16
STLA,*AR4+
STM#x,AR2
STM#OUTPUT,AR7
STM#KS-1,BRC
RPTBLOOP-1
LD*AR6+,A
STLA,*AR2
STM#(x+16),AR2
RPTZA,#16
MACD*AR2-,COFF_FIR,A
STHA,*AR7+
MAR*AR2+
LOOP:
EENDBEEND
.end
-mxianxingfir.map
-oxianxingfir.out
MEMORY
{
PAGE0:
ROM1(RIX):
ORIGIN=0080H,LENGTH=100H
PAGE1:
INTRAM1(RW):
ORIGIN=2400H,LENGTH=0200H
INTRAM2(RW):
ORIGIN=2600H,LENGTH=0100H
INTRAM3(RW):
ORIGIN=2700H,LENGTH=0100H
}
SECTIONS
{
.text:
{}>ROM1PAGE0
.data:
{}>INTRAM1PAGE1
x:
{}>INTRAM2PAGE1
b:
{}>INTRAM3PAGE1
}
3.5串口
注释:
McBSP原理框图
数据发送过程:
①CPU通过外设总线,将数据写入数据发送寄存器DXR[1,2];
②McBSP串口将DXR[1,2]中的发送数据传送到发送移位寄存器XSR[1,2]中;
③通过发送移位寄存器XSR[1,2],将数据经DX引脚移出发送。
2)数据接收过程:
①McBSP串口通过DR引脚,将接收数据移入接收移位数据寄存器RSR[1,2]中;
②将RSR[1,2]中的接收数据拷贝到接收缓冲寄存器RBR[1,2];
③将RBR[1,2]中的接收数据复制到数据接收寄存器DRR[1,2];
④CPU或DMA控制器从DRR[1,2]中读出数据。
3)、McBSP串口复位
McBSP串行口有两种复位方式。
通过芯片复位端复位。
当=0时,引发的串口发送器、接收器、采样率发生器复位。
当=1时芯片复位完成后,串口仍然处于复位状态,此时、、和均为0。
利用串口控制寄存器的控制位复位。
控制寄存器SPCR1中位可对串口接收器进行复位,控制寄存器SPCR2中的和位可分别对串口发送器和采样率发生器进行复位。
(课本231页,表7.3,14)
4)、复位后串口的初始化
当串口复位后,可进行串行口初始化,其步骤如下:
①对串口控制寄存器SPCR[1,2]中复位位置0,使XRST=RRST=FRST=0。
如果刚刚复位完毕,不必进行这一步操作;
②按照表7.3.14中串口复位要求,对McBSP的寄存器进行编程配置;
③等待2个时钟周期,以保证适当的内部同步;
④按照写DXR的要求,给出数据;
⑤设定XRST=1,RRST=1使串口处于使能状态。
注意此时SRCR[1,2]所写的值应该仅仅将复位改变到1,寄存器中的其余位与步骤2相同;
⑥如果要求内部帧同步信号,则设定FRST=1;
⑦等待2个时钟周期后,接收器和发送器激活。
上述步骤可用于正常工作情况下发送器和接收器的复位。
3.6硬件实现
程序如下:
.mmregs
.def_c_int00
TMP.set6Ah
AK_SPCR11.set0000000000100001b
AK_SPCR21.set0000001011000001b
AK_RCR11.set0000000001000000b
AK_RCR21.set0000000001000000b
AK_XCR11.set0000000001000000b
AK_XCR21.set0000000001000000b
AK_SRGR11.set0000000000010011b
AK_SRGR21.set0011000000111111b
;;
AK_PCR1.set0000101000000000b
SPSA1.set48h
McBSP1.set49h
DXR11.set43h
DXR21.set42h
DRR11.set41h
DRR21.set40h
SPCR11.set00h
SPCR21.set01h
RCR11.set02h
RCR21.set03h
XCR11.set04h
XCR21.set05h
PCR1.set0Eh
SRGR11.set06h
SRGR21.set07h
DK_SPCR10.set0001100010100001b
DK_SPCR20.set0000001011100001b
DK_RCR10.set0000000001000000b
DK_RCR20.set0000000001000000b
DK_XCR10.set0000000001000000b
DK_XCR20.set0000000001000000b
DK_SRGR10.set0000111100010011b
DK_SRGR20.set0011000000111111b
;;
DK_PCR0.set0000101000001111b
SPSA0.set38h
McBSP0.set39h
DXR10.set23h
DXR20.set22h
DRR10.set21h
DRR20.set20h
SPCR10.set00h
SPCR20.set01h
RCR10.set02h
RCR20.set03h
XCR10.set04h
XCR20.set05h
PCR0.set0Eh
SRGR10.set06h
SRGR20.set07h
**************滤波器设置***************
N.set38
INDEX.set-1
.data
COFFTAB.usect"FIR_COFF",N
DATABUF.usect"FIR_BFR",N
*****************************************
FIRCOFF.sect"FIRCOFF"
.word-83
.word-96
.word-58
.word44
.word190
.word323
.word369
.word259
.word-28
.word-441
.word-845
.word-1054
.word-881
.word-208
.word959
.word2468
.word404
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 报告 成品