《DSP课程设计报告.pdf》由会员分享,可在线阅读,更多相关《DSP课程设计报告.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 西南科技大学 课程设计报告 课程名称:DSP 系统设计 设计题目:通信计数器 专业班级:学生姓名:学生学号:设计时间:2010-04-122010-04-23 指导教师:一 前言 DSP 在图形图像处理、高精度测量控制、高性能仪器仪表等众多领域得到越来越广的应用,实际运用中,通常须将 DSP 采集处理后的数据传送到PC 机,然后进行存储和处理。TL16C550 是一个标准的串口芯片,在板上加上 16C550 和 MAX232 以及驱动电路,就可以实现 pc 机与 dsp 间的串口通信。对 TL16C550 的操作主要是通过设置其寄存器来实现的,这 11 个寄存器通过 TMS320VC5509
2、 的三个地址线和线路控制寄存器中的 DLAB 位对它们进行寻址。并且通过控制指示灯的点亮情况来计数所通信的句子数,指示灯的点亮情况以二进制形式来计数。二 设计思路及框图 要用中断方式来实现异步串口通信,就要在初始化 TL16C550 寄存器的时候使中断使能寄存器 LER 的接收中断使能位置 1,初始化中断向量表。在接收缓存区接收到数据的时候进入中断函数,再通过调用显示程序在 PC机上显示接收到的数据。LBDS 指示灯有四个,可以表示四位二进制数。发光二极管共阴极连接,接收到高电平就会发光。通过程序将值赋给LBDS,对应的二极管发光,指示灯被点亮。所以定义一个变量来计数发送的信息中“.”的数量,
3、在显示数据的时候将这个值赋给 LBDS,相应的灯就会被点亮,达到计数的效果。用查询法将通信信息发送到 TL16C550 的发送缓冲寄存器,在接受端利用中断方式接受 DSP 发送过来的信息,并且定义一个变量来计数发送的信息中“.”的数量,在接收数据的同时根据计数情况点亮 LBDS 指示灯。具体可用如下框图表示。用查询法从DSP向PC机发送信息Pc机端用中断方式接收DSP发送来的信息,并且计数所发信息中”.”的个数根据“.”的计数情况以二进制形式点亮LBDS指示灯 三!四 硬件设计(算法原理)(一)、TL16C550 是一个标准的串口芯片,它的引脚图如下表示,各主要引脚的功能说明如下:A0A2:片
4、内寄存器的选择信号;D0D7:双向 8 位数据线;CS0,CS1,CS2:输入片选信号,当 CS0=CS1=1 且 CS2=0 时,TL16C550 被选中;ADS 非:地址选通信号,该引脚有效时,片选信号(CS0,CS1,CS2)及寄存器选择信号(A0A2)可直接驱动 TL16C550 内部的选择逻辑;SN,SOUT:串行数据输入与串行数据输出;MR:主设备复位信号;NTRPT:中断信号,共有 4种情况可以触发中断。(二)、MAX232 芯片是美信公司专门为电脑的 RS-232 标准串口设计的接口电路,使用+5v 单电源供电。内部结构基本可分三个部分:第一部分是电荷泵电路。由 1、2、3、4
5、、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
6、输入转换成 TTL/CMOS 数据后从 R1OUT、R2OUT 输出。第三部分是供电。15 脚 GND、16 脚 VCC(+5v)。具体引脚图如下所示:通过在 Dsp 板子上加上 TL16C550 和 MAX232 以及驱动电路,实现 pc 机与dsp 间的串口通信,TL16C550 是一个标准的串口芯片,它的控制寄存器基地址位 0 x400200,寄存器占用 TMS320VC5509 的八个地址单元,串口中断与 TMS320VC5509 的 INT0 连接。可以使用 TMS320VC5509 的中断 0 响应串口中断。TL16C550 有 11 个寄存器,通过 TMS320VC5509 的三
7、个地址线和线路控制寄存器中的 DLAB 位对它们进行寻址。驱动电路主要完成将输出的 0的电平转换成异步串口通信的工作电平,转换的工作由 MAX232 芯片完成,但由于他是 5V 器件,所以它同 dsp 间的信号线必须有电平转换,此版采用的是 74LVC245。TL16C550 的 SN 为串行数据输入引脚,SOUT 为串行数据输出引脚,这两条信号线连接到 MAX232 上,可用下图所示的框图表示。PC机MAX232TL16C55074LVC245 LBDS 指示灯有四个,可以表示四位二进制数。发光二极管共阴极连接,接收到高电平就会发光。通过程序将值赋给 LBDS,对应的二极管发光,指示灯被点亮
8、。五 六 软件设计 为了激活扩展口的串口通信功能,需要对 TL16C550 进行一系列的操作:(1)设置波特率:波特率除数寄存器为 16 位,由高 8 位(DLM)和低 8 位(DLL)组成。除数的值可由 UART 的工作时钟和波特率共同确定,计 算公式为:除数/(期望的波特率*16)。(2)设置通信参数:通信双方除了速度匹配之外、还必须使用相同的数据格式,这包括数据位长度、停止位长度、使用何种校验方式等,这些参数通过对线路控制寄存器 LCR 赋值来设置。另外,还需设置发送和接受的波特率以及中断方式等。在本次设计中采用 c 语言编写 dsp 对 TL16C550 的初始化等,在进行程序编写前:
9、(1)、我们首先定义相关的寄存器变量:#define UART_BASE_ADDR 0 x400400 为结束标志,并且计数所遇到的“.”的个数。由以下程序实现: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+);开始相关寄存器定义系统初始化判断线路状态寄存器LSR是否为使能发送数据进入中断程序是结束否中断程序开始接收数据到定义的存储器,以“.”结束,并计数“.”的个数num判断线路状态寄存器LSR是否使能接收数据并显示,根据num的值点亮相应的LBDS灯中断程序返回是否num 加一,最后将 num 的值赋给 lbds 点亮相应的指示灯