DSP课程设计报告

DSP课程设计报告
DSP课程设计报告

西南科技大学

课程设计报告

课程名称:DSP系统设计·

\

设计题目:通信计数器

专业班级:

学生姓名:

学生学号:

设计时间: 2010-04-12~2010-04-23

指导教师:

一.前言

DSP在图形图像处理、高精度测量控制、高性能仪器仪表等众多领域得到越来越广的应用,实际运用中,通常须将DSP采集处理后的数据传送到PC机,然后进行存储和处理。

TL16C550是一个标准的串口芯片,在板上加上16C550和MAX232以及驱动电路,就可以实现pc机与dsp间的串口通信。对TL16C550的操作主要是通过设置其寄存器来实现的,这11个寄存器通过TMS320VC5509的三个地址线和线路控制寄存器中的DLAB位对它们进行寻址。并且通过控制指示灯的点亮情况来计数所通信的句子数,指示灯的点亮情况以二进制形式来计数。

二.设计思路及框图

要用中断方式来实现异步串口通信,就要在初始化TL16C550寄存器的时候使中断使能寄存器LER的接收中断使能位置1,初始化中断向量表。在接收缓存区接收到数据的时候进入中断函数,再通过调用显示程序在PC 机上显示接收到的数据。LBDS指示灯有四个,可以表示四位二进制数。

发光二极管共阴极连接,接收到高电平就会发光。通过程序将值赋给LBDS,对应的二极管发光,指示灯被点亮。所以定义一个变量来计数发送的信息中“.”的数量,在显示数据的时候将这个值赋给LBDS,相应的灯就会被点亮,达到计数的效果。

用查询法将通信信息发送到TL16C550的发送缓冲寄存器,在接受端利用中断方式接受DSP发送过来的信息,并且定义一个变量来计数发送的信息中“.”的数量,在接收数据的同时根据计数情况点亮LBDS指示灯。具体可用如下框图表示。

三.!

四.硬件设计(算法原理)

(一)、TL16C550是一个标准的串口芯片,它的引脚图如下表示,各主要引脚的功能说明如下:

A0~A2:片内寄存器的选择信号;D0~D7:双向8位数据线;CS0,CS1,CS2:输入片选信号,当CS0=CS1=1且CS2=0时,TL16C550被选中;ADS非:地址选通信号,该引脚有效时,片选信号(CS0,CS1,CS2)及寄存器选择信号(A0~A2)可直接驱动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脚(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,寄存器占用TMS320VC5509的八个地址单元,串口中断与TMS320VC5509的INT0连接。可以使用TMS320VC5509的中断0响应串口中断。TL16C550有11个寄存器,通过TMS320VC5509的三个地址线和线路控制寄存器中的DLAB 位对它们进行寻址。驱动电路主要完成将输出的0—的电平转换成异步串口通信的工作电平,转换的工作由MAX232芯片完成,但由于他是5V 器件,所以它同dsp 间的信号线必须有电平转换,此版采用的是74LVC245。TL16C550的SN 为串行数据输入引脚,SOUT 为串行数据输出引脚,这两条信号线连接到MAX232上,可用下图所示的框图表示。

PC 机

MAX232

TL16C550

74LVC245

LBDS 指示灯有四个,可以表示四位二进制数。发光二极管共阴极连接,接收到高电平就会发光。通过程序将值赋给LBDS ,对应的二极管发光,指示灯被点亮。

五. \

六.

软件设计

为了激活扩展口的串口通信功能,需要对TL16C550进行一系列的操作: (1) 设置波特率:波特率除数寄存器为16位,由高8位(DLM )和低8位

(DLL )组成。除数的值可由UART 的工作时钟和波特率共同确定,计

算公式为:除数/(期望的波特率*16)。

(2)设置通信参数:通信双方除了速度匹配之外、还必须使用相同的数据格式,这包括数据位长度、停止位长度、使用何种校验方式等,这些

参数通过对线路控制寄存器LCR赋值来设置。另外,还需设置发送和

接受的波特率以及中断方式等。

在本次设计中采用c语言编写dsp对TL16C550的初始化等,在进行程序编写前:

(1)、我们首先定义相关的寄存器变量:

#define UART_BASE_ADDR 0x400400 为结束标志,并且计数所遇到的“.”的个数。由以下程序实现:

void interrupt Uart_Rx()

?

{

char Rdata;

Rdata = RBR;

cBuffer[mm]=Rdata;

if ( Rdata=='.' )

{

bReceive=1; 为结束

num++; 的个数

nLen=mm+1;

cBuffer[nLen]='\0';

}

mm++;

mm%=16;

(5)、显示接收到的数据,并根据前面的计数情况点亮相应的LBDS灯。由以下程序实现:

void xianshi(char *add,int nn)

{

int aa;

for(aa=0;aa<=nn;aa++)

UART_trasmit(*(add++));

}

num加一,最后将num的值赋给lbds点亮相应的指示灯

相关主题
相关文档
最新文档