DSP课程设计报告.docx

上传人:b****6 文档编号:15457356 上传时间:2023-07-04 格式:DOCX 页数:17 大小:25.05KB
下载 相关 举报
DSP课程设计报告.docx_第1页
第1页 / 共17页
DSP课程设计报告.docx_第2页
第2页 / 共17页
DSP课程设计报告.docx_第3页
第3页 / 共17页
DSP课程设计报告.docx_第4页
第4页 / 共17页
DSP课程设计报告.docx_第5页
第5页 / 共17页
DSP课程设计报告.docx_第6页
第6页 / 共17页
DSP课程设计报告.docx_第7页
第7页 / 共17页
DSP课程设计报告.docx_第8页
第8页 / 共17页
DSP课程设计报告.docx_第9页
第9页 / 共17页
DSP课程设计报告.docx_第10页
第10页 / 共17页
DSP课程设计报告.docx_第11页
第11页 / 共17页
DSP课程设计报告.docx_第12页
第12页 / 共17页
DSP课程设计报告.docx_第13页
第13页 / 共17页
DSP课程设计报告.docx_第14页
第14页 / 共17页
DSP课程设计报告.docx_第15页
第15页 / 共17页
DSP课程设计报告.docx_第16页
第16页 / 共17页
DSP课程设计报告.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

DSP课程设计报告.docx

《DSP课程设计报告.docx》由会员分享,可在线阅读,更多相关《DSP课程设计报告.docx(17页珍藏版)》请在冰点文库上搜索。

DSP课程设计报告.docx

DSP课程设计报告

DSP课程设计报告

  南京邮电大学

  实验报告

  实验名称  DSP课程设计  

  课程名称______DSP课程设计  

  班级学号____  _______

  姓  名_______  ____________

  开课时间20XX/20XX学年,第1学期

  实验一、EMIF接口上的I/O接口扩展

  一.实验目的

  了解ICETEK-VC5509-A板在TMS320VC5509DSP外部扩展存储空间上的扩展。

了解ICETEK-VC5509-A板上指示灯扩展原理。

学习在C语言中使用扩展的控制寄存器的方法。

  二.实验原理

  1.TMS320VC5509DSP的EMIF接口:

  存储器扩展接口(EMIF)是DSP扩展片外资源的主要接口,它提供了一组控制信号和地址、

  数据线,可以扩展各类存储器和寄存器映射的外设。

  -ICETEK-VC5509-A评估板在EMIF接口上除了扩展了片外SDRAM外,还扩展了指示灯、

  DIP开关和D/A设备。

具体扩展地址如下:

400800-400802h:

D/A转换控制寄存器400000-400000h:

板上DIP开关控制寄存器400001-400001h:

板上指示灯控制寄存器

  -与ICETEK-VC5509-A评估板连接的ICETEK-CTR显示控制模块也使用扩展空间控制主要

  设备:

  602800-602800h:

读-键盘扫描值,写-液晶控制寄存器600801-600801h:

液晶辅助控制寄存器602801-600802h:

液晶显示数据寄存器

  602802-602802h:

发光二极管显示阵列控制寄存器2.指示灯扩展原理

  3.实验程序流程图:

  三.部分程序代码

  //定义指示灯寄存器地址和寄存器类型

  #defineLBDS(*((unsignedint*)0x400001))//子程序接口

  voidDelay(unsignedintnDelay);//延时子程序inti;main{

  unsignedintuLED[4]={1,2,4,8};//控制字,逐位置1:

0001B0010B0100B1000B

  CLK_init;  //初始化DSP运行时钟SDRAM_init;  //初始化EMIF接口while

(1){

  for(i=0;i=0;i--){

  LBDS=uLED[i];//反向顺序送控制字  Delay(32);//延时【延时256->32】}}

  }

  四.实验结果

  映射在扩展存储器空间地址上的指示灯寄存器在设置时是低4位有效的,数据的最低位对应指示灯D1,次低位对应D2,...依次类推。

LED指示灯D1→D2→D3→D4→D3→D2→D1循环依次点亮。

  五.实验小结

  通过本次实验,我们了解到了ICETEK-VC5509-A板在TMS320VC5509DSP外部扩展存储空间上的扩展,了解了ICETEK-VC5509-A板上指示灯扩展原理。

实验过程中需要注意或者说是需要重点了解的是控制字的写入,改变控制字就可以控制不同灯的闪烁,例如要使D1、D2灯同时闪烁,控制字就可写为3,即0011B。

  实验二、定时器的使用

  一.实验目的

  通过实验熟悉VC5509A的定时器;掌握VC5509A定时器的控制方法;

  掌握VC5509A的中断结构和对中断的处理流程;

  学会C语言中断程序设计,以及运用中断程序控制程序流程。

  二.实验原理

  1.通用定时器介绍及其控制方法

  TMS320VC5509A内部有两个20位通用定时器:

*每个通用定时器包括:

  -一个16位的减计数的计数器TIM;-一个16位的定时器周期寄存器PRD;-一个16位的定时器控制寄存器TCR;-一个16位的定时器预定标寄存器PSCR;*PSCR寄存器说明:

  PSC:

4位的预定标值,与TIM共同组成20位的定时计数器.

  TDDR:

预定标周期寄存器(在需要时重装入PSC的值)TCR寄存器说明2.中断程序设计:

  -程序中应包含中断向量表,VC5509A默认向量表从程序区0地址开始存放,根据IPVD和

  IPVH的值确定向量表的实际地址。

  -注意观察程序中INTR_init函数的定义部分,其中IPVD和IPVH的值都为0x0d0;同时观察配置文件中的VECT段描述中o=0x0d000。

  -向量表中每项为8个字,存放一个跳转指令,跳转指令中的地址为相应服务程序入口地址。

  第一个向量表的首项为复位向量,即CPU复位操作完成后自动进入执行的程序入口。

-服务程序在服务操作完成后,清除相应中断标志,返回,完成一次中断服务。

  三.实验结果

  LED指示灯D1在定时器的定时中断中按照设计定时闪烁。

将*prd0=0x0ffff改为*prd0=0x0fff时,指示灯闪烁的频率变大。

  四.实验小结

  通过本次实验,我们学会了定时器的使用,并通过控制指示灯来观察中断的进行,掌握VC5509A的中断结构和对中断的处理流程。

在实验中发现改变PRD的值会使得指示灯的闪烁频率发生变化,通过学习知道中断的次数关于PRD和TDDR的公式即为

  Inputclockrate。

  (TDDR1)(PDR1)

  实验三、中断的使用

  一.实验目的

  1.通过实验熟悉VC5509A的中断响应过程。

  2.学会C语言中断程序设计,以及运用中断程序控制程序流程。

  二.实验原理

  1.中断及中断处理过程:

⑴中断简介:

  中断是一种硬件或软件驱动的信号,DSP在接到此信号时,将当前程序悬挂起来,转

  去执行另外一个任务,这个任务我们称为中断服务程序(ISR)。

TMS320C55x(C55x)DSP可支持32个ISR,可硬件或软件触发。

所有的C55x中断,可以分成可屏蔽中断和不可屏蔽中断两种,软件中断是不可屏蔽的。

⑵DSP处理中断的步骤:

  ①接收中断请求。

请求软件或硬件发出。

  ②响应中断请求。

对于可屏蔽中断,需要满足若干条件,才发生响应;而对于不可屏蔽中

  断,则立即响应。

  ③准备执行中断服务程序。

  -完成当前正在执行的指令;将进入流水线但还未解码的指令清除。

-自动保存若干寄存器的值到数据堆栈和系统堆栈。

  -取得用户定义的中断向量表中当前中断向量,中断向量指向中断服务程序入口。

④执行中断服务程序。

中断服务程序包含中断返回指令,这样返回时可以出栈以前保存的

  关键寄存器数据,从而恢复中断服务程序执行前的现场。

⑶中断向量表:

  中断向量表的地址可以用户指定。

⑷外中断:

  TMS320C5509可以响应INT0-INT4五个外中断。

2.ICETEK-CTR板的键盘接口:

  显示/控制模块ICETEK-CTR通过接口P8连接小键盘,接收小键盘传送的扫描码,并在每

  个扫描码结束后保存,同时向DSP的INT2发送中断信号;当DSP读键盘时将扫描码送到

  数据总线上。

小键盘上每次按下一个键将产生2个扫描码、2次中断。

3.程序编制:

  一个不含中断处理程序的工程通过改写加入中断处理程序部分大致需要如下操作(假设使

  用INT2):

  ⑴编制中断服务程序:

可以用C语言程序实现,编写单独的一个函数XINT,此函数使用interrupt修饰,没有参数和返回值。

  ⑵构造中断向量表:

可以用汇编语言构造,编写一个汇编语言模块程序,在程序

  头上声明段名为“.vectors”;定义外部标号_XINT,于汇编语言要使用C语言程序中定义的标号XINT,需要在这个标号前加底线;在中断向量表该中断对应位置(int2)写汇编语言语句跳转语句。

  ⑶修改连接命令文件:

在MEMORY小节中开辟单独的地址段用以存放中断向量表;在SECTIONS小节中指定.vectors段到前步开设的内存段中。

  ⑷主程序中进行初始化设置:

定位中断向量表,使能中断,清中断等。

4.实验程序流程图:

  三.部分程序代码

  voidInitMcBSP;

  voidINTR_init(void);voidTIME_init(void);intnCount;main{

  nCount=0;CLK_init;SDRAM_init;INTR_init;InitCTR;InitMcBSP;

  CTRGR=2;//使能IOwhile

(1){}}

  voidInitMcBSP{

  //IOPin:

S15

  //_=0,=1,=1,=0/1SPCR2_1&=0x0fffe;PCR1|=0x2800;}

  voidinterruptXINT{

  nCount++;nCount%=2;if(nCount==0)PCR1^=8;}

  voidINTR_init(void){

  IVPD=0x80;IVPH=0x80;IER0=8;DBIER0=8;IFR0=0xffff;

  asm(\}

  四.实验结果

  通过实验可以发现,每次按下键盘均会发生两次中断,当按下键不放时会产生连续的中断;只有在外中断发生时,XINT函数才会被执行。

  五.实验小结

  通过本次实验,我们熟悉VC5509A的中断响应过程,并学会C语言中断程序设计,以及运用中断程序控制程序流程。

实验过程中发现,当按住任意键不放时,指示灯会不停地闪烁即发生连续的中断,而每次按下键盘时会发生两次中断。

  实验四、步进电机控制

  一.实验目的

  通过实验学习使用5509DSP的扩展I/O端口控制外围设备信息的方法,掌握使用5509DSP通用计时器的控制原理及中断服务程序的编程方法;了解步进电机的控制方法。

  二.实验原理

  1.EMIF接口:

  TMS320C5509DSP的扩展存储器接口(EMIF)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。

这一接口提供地址连线、数据连线和一组控制线。

ICETEK-VC5509-A将这些扩展线引到了板上的扩展插座上供扩展使用。

  2.步进电机是DSP通用I/O管脚输出直接控制。

步进电机的起动频率大于500PPS(拍每秒),空载运行频率大于900PPS。

5509A的通用I/O口S22控制电机的转动频率,S14控制转动方向。

  3.控制的方法是使用DSP通用定时器设置S22以一定的频率改变高低状态,输出方波,设置S14为高电平则顺时针转动,低电平为逆时针转动。

  三.部分程序代码

  voidINTR_init(void);voidTIME_init(void);

  intnCount,nStep,nAddStep;unsignedintuTimPrd0;

  unsignedintpwm2[8]={0x86,0x87,0x83,0x8b,0x89,0x8d,0x8c,0x8e};main{

  intsEnd;

  unsignedchardbScanCode,tKey;

  nCount=0;nStep=1;sEnd=1,nAddStep=1;uTimPrd0=0x1002;CLK_init;

  SDRAM_init;InitCTR;CTRLR=0x0c2;TIME_init;INTR_init;do{

  if(nCount>16){

  nCount=0;

  dbScanCode=GetKey;  

  //ScanforKeyboardinput

  tKey=CTRCLKEY;//ClearKeyboardscanbufferif(dbScanCode!

=0&&dbScanCode!

=0x0ff){

  switch(dbScanCode){

  caseSCANCODE_Enter:

//ExitProgram  sEnd=0;  break;

  caseSCANCODE_4:

  //MotorTurnForward  nAddStep=1;  break;

  caseSCANCODE_6:

  //MotorTurnBackward  nAddStep=-1;  break;

  caseSCANCODE_Minus:

//MotorSpeedDown  uTimPrd0+=0x800;  if(uTimPrd0>=0x8000)  uTimPrd0=0x8002;  asm(\TIME_init;

  asm(\break;

  caseSCANCODE_Plus:

  //MotorSpeedup  uTimPrd0-=0x800;  if(uTimPrd07)nStep=0;nCount++;}

  voidINTR_init(void){

  IVPD=0x80;IVPH=0x80;IER0=0x10;DBIER0=0x10;IFR0=0xffff;

  asm(\}

  voidTIME_init(void){

  tim0=(unsignedint*)0x1000;  prd0=(unsignedint*)0x1001;  tcr0=(unsignedint*)0x1002;  prsc0=(unsignedint*)0x1003;  *tcr0=0x04f0;  *tim0=0x0;

  *prd0=uTimPrd0;  *prsc0=2;  *tcr0=0x00e0;}

  四.实验结果

  可以看到显示/控制模块上的电机指针在转动,使用“4”和“6”键可控制其转动方向,用“+”和“-”键可微调速度。

如果“4”是顺时针旋转,则“6”就是逆时针旋转,“+”可以增加旋转速度,“-”是减小速度,但是变化都是很微小。

  五.实验小结

  通过实验学习使用5509DSP的扩展I/O端口控制外围设备信息的方法,掌握使用

  5509DSP通用计时器的控制原理及中断服务程序的编程方法;了解步进电机的控制方法。

  实验五、多路信号混频

  一.实验目的

  掌握A/D转换的基本过程和程序处理过程;学习通过对采样值进行计算产生混频波形。

  二.实验原理

  1.模数转换工作过程:

  -模数转换模块接到启动转换信号后,按照设置进行相应通道的数据采样转换。

-经过一个采样时间的延迟后,将采样结果放入AD数据寄存器中保存。

-等待下一个启动信号。

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

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

一般采用中断方式启动转换或保存结

  果,这样在CPU忙于其他工作时可以少占用处理时间。

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

于TMS320VC5509DSP片内的A/D转换精度是10位的,转换结果(16位)的最高位(第15位)表示转换值是否有效(0有效),第14-12位表示转换的通道号,低10位为转换数值,所以在保留时应注意取出结果的低10位,再根据高4位进行相应保存。

  4.混频波形产生:

  将接收到的两路AD采集信号进行相加,并对结果的幅度进行限制,从而产生混合后的输出

  波形。

实验中采用了同相位混频方法,也可修改程序完成异相混频法。

5.源程序及注释:

  本实验程序在主循环中对AD进行连续采样,每次采样首先设置AD转换控制寄存器(ADCCTL),发送转换通道号和启动命令,然后循环等待转换结果,最后将结果保存。

于需要进行实时混频,所以交替转换通道0和通道1(ICETEK-VC5509-EDU实验箱上ADCIN2和ADCIN3)。

  三.部分程序代码

  voidInitADC;

  voidwait(unsignedintcycles);voidEnableAPLL();

  unsignedintnADC0[256],nADC1[256],nMixing[256];main{

  inti;

  unsignedintuWork;  EnableAPLL;SDRAM_init;InitCTR;

  InitADC;  PLL_Init(144);while

(1){

  for(i=0;i>=1;  //限幅,混频后仍然产生12位数据//uWork=(nADC0[i]+nADC1[i]*3);//uWork>>=2;

  nMixing[i]=uWork;}

  }  //在此加软件断点}

  voidInitADC{

  ADCCLKCTL=0x23;//4MHzADCLKADCCLKDIV=0x4f00;}

  voidwait(unsignedintcycles){

  inti;

  for(i=0;i

  四.实验结果

  五.实验体会

  掌握A/D转换的基本过程和程序处理过程;学习通过对采样值进行计算产生混频波形。

  实验六、异步串口通信

  一.实验目的

  了解ICETEK-VC5509-A评估板上扩展标准RS-232串行通信接口的原理和方法。

学会对串行通信芯片的配置编程。

学习设计异步通信程序。

  二.实验原理

  1.ICETEK-VC5509-A板异步串口设计。

  在板上加上16C550、Max232和驱动电路部分即可。

驱动电路主要完成将输出的电

  平转换成异步串口的工作电平,转换电平的工作MAX232芯片完成,但于它是5V器件所以它同DSP间的信号线必须有电平转换,此板采用的是74LVC245。

  2.串行通信接口设置。

  内部生成的串行时钟系统时钟SYSCLK频率和波特率选择寄存器决定。

串行通信接口使

  用16位波特率选择寄存器,数据传输的速度可以被编程为65000多种不同的方式。

  不同通信模式下的串行通信接口异步波特率下列方法决定:

-BRR=1—65535时的串行通信接口异步波特率:

  串行通信接口异步波特率=SYSCLK/[(BRR+1)*8]。

其中,BRR=SYSCLK/(SCI异步波特率*8)-1;

  -BRR=0时的串行通信接口异步波特率:

  串行通信接口异步波特率=SYSCLK/16。

这里BRR等于波特率选择寄存器的16位值。

3.实验程序流程图:

  三.实验结果

  通过DSP传送到PC机上的信息,可以看出:

串口正确工作。

我们在“发送的字符/数据”栏中输入一些要发送到DSP的字符串,例如“Hello,man!

”,以“.”字符结尾,然后单击“手动发送”按钮后,在“串口调试助手”的接收窗口中可看到“oh,yousayHello,man!

”的回答。

  五.实验体会

  通过本次实验,我们了解了ICETEK-VC5509-A评估板上扩展标准RS-232串行通信接口的原理和方法。

学会对串行通信芯片的配置编程。

学习设计异步通信程序。

  

  综合设计2:

LCD液晶显示

  一.实验原理

  1.EMIF接口:

  TMS320C5509DSP的扩展存储器接口(EMIF)用来与大多数外围设备进行连接,典型应用如

  连接片外扩展存储器等。

这一接口提供地址连线、数据连线和一组控制线。

ICETEK-VC5509-A将这些扩展线引到了板上的扩展插座上供扩展使用。

  2.液晶显示模块的访问、控制是5509ADSP对扩展接口的操作完成。

  控制口的寻址:

命令控制接口的地址为0x602800,数据控制接口的地址为0x602801和0x600802,辅助控制接口的地址为0x600801。

3.显示控制方法:

  液晶显示模块中有两片显示缓冲存储器,分别对应屏幕显示的象素,向其中写入数值将改变

  显示,写入“1”则显示一点,写入“0”则不显示。

其地址与象素的对应方式如下:

  

  -发送控制命令:

向液晶显示模块发送控制命令的方法是通过向命令控制接口写入命令控制字,然后再向辅助控制接口写入0。

下面给出的是基本命令字、解释和C语言控制语句

  举例:

  .显示开关:

0x3f打开显示;0x3e关闭显示;

  .设置显示起始行:

0x0c0+起始行取值,其中起始行取值为0至63;.设置操作页:

0x0b8+页号,其中页号取值为0-7;.设置操作列:

0x40+列号,其中列号为取值为0-63;

  -写显示数据:

在使用命令控制字选择操作位置(页数、列数)之后,可以将待显示的数据

  写

  入液晶显示模块的缓存。

将数据发送到相应数据控制I/O接口即可。

4.液晶显示器与DSP的连接:

  5.数据信号的传送:

  于液晶显示模块相对运行在高主频下的DSP属于较为慢速设备,连接时需要考虑数据线上信号的等待问题;

  电平转换:

于DSP为设备,而液晶显示模块属于5V设备,所以在连接控制线、数据线时需要加电平隔离和转换设备,如:

ICETEK-CTR板上使用了74LS245。

  6.实验程序流程图:

  二.实验要求概述

  本实验通过对液晶显示屏的显示行、列、页的设置,并编写相关的序号和姓名代码,运用液晶显示模块的命令控制接口、数据控制接口以及辅助控制接口等地址,和左屏、右屏运用的不同方法实现在液晶显示屏上显示我们的学号及姓名。

  三.关键部分程序代码

  1.控制显示内容:

#include\

  //Variables程晓涛

  unsignedcharlcdbuf[9]={'B','0','8','0','2','1','5','2','8'};unsignedcharLine1=

  {0x04,0x03,0x00,0xFF,0x00,0x41,0x44,0x44,0x44,0x7F,0x44,0x44,0x44,0x44,0x40,0x00,

  0x00,0x0F,0x04,0x04,0x4F,0x21,0x19,0x07,0x01,0x01,0x3F,0x41,0x40,0x41,0x71,0x00,

  0x04,0xFC,0x03,0x20,0x18,0x06,0x01,0x02,0x0A,0x52,0x82,0x7F,0x02,0x02,0x02,0x00};

  unsignedcharLine2=

  {0x10,0x12,0xD2,0xFE,0x91,0x11,0x80,0xBF,0xA1,0xA1,0xA1,0xA1,0xBF,0x80,0x00

  ,0x00,

  0x00,0xFE,0x42,0x42,0xFE,0x00,0x84,0x84,0x47,0x5C,0x24,0x64,0x94,0x04,0xC0,0

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

当前位置:首页 > 考试认证 > 司法考试

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

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