DSP课程设计报告(总8页_第1页
DSP课程设计报告(总8页_第2页
DSP课程设计报告(总8页_第3页
DSP课程设计报告(总8页_第4页
DSP课程设计报告(总8页_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西南科技大学课程设计报告课程名称:DSP系统设计设计题目: 通信计数器 专业班级: 学生姓名: 学生学号: 设计时间: 2010-04-122010-04-23 指导教师: 一 前言DSP在图形图像处理、高精度测量控制、高性能仪器仪表等众多领域得到越来越广的应用,实际运用中,通常须将DSP采集处理后的数据传送到PC机,然后进行存储和处理。TL16C550是一个标准的串口芯片,在板上加上16C550和MAX232以及驱动电路,就可以实现pc机与dsp间的串口通信。对TL16C550的操作主要是通过设置其寄存器来实现的,这11个寄存器通过TMS320VC5509的三个地址线和线路控制寄存器中的DL

2、AB位对它们进行寻址。并且通过控制指示灯的点亮情况来计数所通信的句子数,指示灯的点亮情况以二进制形式来计数。二 设计思路及框图要用中断方式来实现异步串口通信,就要在初始化TL16C550寄存器的时候使中断使能寄存器LER的接收中断使能位置1,初始化中断向量表。在接收缓存区接收到数据的时候进入中断函数,再通过调用显示程序在PC机上显示接收到的数据。LBDS指示灯有四个,可以表示四位二进制数。发光二极管共阴极连接,接收到高电平就会发光。通过程序将值赋给LBDS,对应的二极管发光,指示灯被点亮。所以定义一个变量来计数发送的信息中“.”的数量,在显示数据的时候将这个值赋给LBDS,相应的灯就会被点亮,

3、达到计数的效果。用查询法将通信信息发送到TL16C550的发送缓冲寄存器,在接受端利用中断方式接受DSP发送过来的信息,并且定义一个变量来计数发送的信息中“.”的数量,在接收数据的同时根据计数情况点亮LBDS指示灯。具体可用如下框图表示。三 硬件设计(算法原理)(一)、TL16C550是一个标准的串口芯片,它的引脚图如下表示,各主要引脚的功能说明如下: A0A2:片内寄存器的选择信号;D0D7:双向8位数据线;CS0,CS1,CS2:输入片选信号,当CS0=CS1=1且CS2=0时,TL16C550被选中;ADS非:地址选通信号,该引脚有效时,片选信号(CS0,CS1,CS2)及寄存器选择信号

4、(A0A2)可直接驱动TL16C550内部的选择逻辑;SN,SOUT:串行数据输入与串行数据输出;MR:主设备复位信号;NTRPT:中断信号,共有4种情况可以触发中断。(二)、MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。内部结构基本可分三个部分: 第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。 第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。 其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(

5、T1OUT)为第一数据通道。 8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。 TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。第三部分是供电。15脚GND、16脚VCC(+5v)。具体引脚图如下所示: 通过在Dsp板子上加上TL16C550和MAX232以及驱动电路,实现pc机与dsp间的串口通信,TL16C550是一个标准的串口芯片,它的控制寄存器基地址位0x400200,寄存

6、器占用TMS320VC5509的八个地址单元,串口中断与TMS320VC5509的INT0连接。可以使用TMS320VC5509的中断0响应串口中断。TL16C550有11个寄存器,通过TMS320VC5509的三个地址线和线路控制寄存器中的DLAB位对它们进行寻址。驱动电路主要完成将输出的03.3V的电平转换成异步串口通信的工作电平,转换的工作由MAX232芯片完成,但由于他是5V器件,所以它同dsp间的信号线必须有电平转换,此版采用的是74LVC245。TL16C550的SN为串行数据输入引脚,SOUT为串行数据输出引脚,这两条信号线连接到MAX232上,可用下图所示的框图表示。LBDS指

7、示灯有四个,可以表示四位二进制数。发光二极管共阴极连接,接收到高电平就会发光。通过程序将值赋给LBDS,对应的二极管发光,指示灯被点亮。四 软件设计为了激活扩展口的串口通信功能,需要对TL16C550进行一系列的操作:(1) 设置波特率:波特率除数寄存器为16位,由高8位(DLM)和低8位(DLL)组成。除数的值可由UART的工作时钟和波特率共同确定,计算公式为:除数/(期望的波特率*16)。(2) 设置通信参数:通信双方除了速度匹配之外、还必须使用相同的数据格式,这包括数据位长度、停止位长度、使用何种校验方式等,这些参数通过对线路控制寄存器LCR赋值来设置。另外,还需设置发送和接受的波特率以

8、及中断方式等。在本次设计中采用c语言编写dsp对TL16C550的初始化等,在进行程序编写前:(1)、我们首先定义相关的寄存器变量:#define UART_BASE_ADDR0x400400 /片选基地址#define RBR*(int *)(UART_BASE_ADDR+0) /接受缓冲寄存器地址,只读#define THR*(int *)(UART_BASE_ADDR+0) /发送保持寄存器地址,只写#define IER*(int *)(UART_BASE_ADDR+1) /中断使能寄存器地址,读写#define IIR*(int *)(UART_BASE_ADDR+2) /中断标志寄

9、存器地址,只读#define FCR*(int *)(UART_BASE_ADDR+2) /FIFO控制寄存器地址,只写#define LCR*(int *)(UART_BASE_ADDR+3) /线路控制寄存器地址,读写#define MCR *(int *)(UART_BASE_ADDR+4) /MODEM控制寄存器地址,读写#define LSR*(int *)(UART_BASE_ADDR+5) /线路状态寄存器地址,只读#define MSR*(int *)(UART_BASE_ADDR+6) / MODEM状态寄存器地址,只读#define SCR*(int *)(UART_BAS

10、E_ADDR+7) /暂存寄存器地址,读写#define DLL*(int *)(UART_BASE_ADDR+0) /低位除数寄存器地址,读写#define DLM*(int *)(UART_BASE_ADDR+1) /高位除数寄存器地址,读写(2)、完成系统的初始化,包括DSP时钟、EMIF、TL16C550的各寄存器的初始化。调用以下初始化函数:void INTR_init( void ) /中断向量表初始化IVPD=0xd0; /IVDP为DSP中断向量指针,指向256字节大小的程序空间中的中断向量表(IV0IV15和IV24IV31),这些中断向量供DSP专用。IVPH=0xd0;

11、/IVPH为主机中断向量指针,指向256字节大小的程序空间中的中断向量表(IV16IV23),这些中断向量供DSP和主机共享使用。IER0=0x04; /中断使能寄存器,通过设置IER0的位为1打开相应的可屏蔽中断,置0关闭相应的可屏蔽。DBIER0 =0x10; /调试中断使能寄存器IFR0=0xffff; /中断标志寄存器的初始化,置1表示与中断向量X关联的中断未决asm( BCLR INTM);void EMIF_init(void) /外部存储器接口初始化 ioport unsigned int *ce21 =(unsigned int *)0x809; *ce21 = 0x1fff;

12、void CLK_init( void ) /时钟初始化 ioport unsigned int *clkmd; clkmd=(unsigned int *)0x1c00; *clkmd = 0x21f3;void TMCR_reset( void ) /时钟设置 ioport unsigned int *TMCR_MGS3=(unsigned int *)0x07FE; ioport unsigned int *TMCR_MM =(unsigned int *)0x07FF; *TMCR_MGS3 =0x510; *TMCR_MM =0x000;void UART_init( void )

13、/ TL16C550寄存器的初始化LCR = 0x80; DLL = 0x18; DLM = 0x00; LCR = 0x03; FCR = 0x01;MCR = 0x20;IER = 0x01; / IER 为中断使能寄存器,第一位是接收中断使能位,置1表示接收中断使能 (3)、判断线路状态寄存器是否使能,若是则开始发送数据,否则继续等待,由以下程序实现:void UART_trasmit(char data)unsigned int uWork;do uWork=LSR; while ( uWork&0x040 != 0x040 ); / LSR为线路状态寄存器,第7位为1表示发送保持寄存

14、器空,可以发送数据THR=data;wait(12);(4)、进入中断程序接收数据,以“.”为结束标志,并且计数所遇到的“.”的个数。由以下程序实现:void interrupt Uart_Rx()char Rdata;Rdata = RBR; cBuffermm=Rdata; if ( Rdata=. )bReceive=1; /以“.”为结束num+; /计数所有的“.”的个数nLen=mm+1;cBuffernLen=0; mm+;mm%=16;(5)、显示接收到的数据,并根据前面的计数情况点亮相应的LBDS灯。由以下程序实现:void xianshi(char *add,int nn)int aa;for(aa=0;aa=nn;aa+)UART_trasmit(*(add+); /一位一位的显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论