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

下载本文档

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

文档简介

1、题目题目系(部)专业(班级)姓名学号指导教师起止日期长沙学院DSP 原 理 及 应 用 课程设计说明书基于DSP的串口通信模块设计电信系电子1班2014/12/1-2014/12/5DSP 原理及应用课程设计任务书系(部):电子与通信工程系专业:11 级电子信息工程指导教师:课题名称基于DSP的串口通信模块设计(1)课题内容:掌握DSP与PC机串口通信技术及其程序编写。在板上加上 16C550、Max232和驱动电路部分即可。驱动电路主要完成将UART输出的 0-3.3V电平转换成异步串口电平的工作。转换电平的工作由MAX232芯片 完成,但由于它是5V器件所以它同DSP间的信号线必须有电平转

2、换,此板 采用的是74LVC245。(2)要求:DSP硬件设计与仿真;DSP的C语言复杂程序设计;DSP算法 设计与系统方案设计;DSP硬件测试与调试;提交一份完整的课程设计资料, 包括设计原理、程序设计、程序分析、仿真分析、硬件测试、调试过程,参 考文献、设计总结等。1、DSP硬件设计与仿真;2、DSP的C语言复杂程序设计;3、DSP硬件测试与调试;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、 仿真分析、调试过程,参考文献、设计总结等。进 度 安 排起止日期(或时间量)设计内容(或预期目标)备注第天课题介绍,答疑,收集材料第二天设计方案论证第三天程序设计第四天程序调试

3、、仿真第五天系统测试并编写设计说明书教研室意见年 月曰系(部)主 管领导意见年 月曰长沙学院课程设计鉴定表姓名学号专业电子信息工程班级电子1班设计题目基于DSP的串口通信模块设计指导教师指导教师意见:评定成绩:教师签名:日期:答辩小组意见:评定成绩:答辩小组长签名:日期:教研室意见:最终评定等级:教研室主任签名:日期:说明课程设计成绩分“优秀” “良好”、“中等”、“及格”、“不及格”五等。基于 DSP 的串口通信模块设计一、引言串口是计算机上一种非常通用通信设备的协议,同时也是仪器仪表设备通用的通信协议,也还可以用 来获取远程采集设备的数据。串口通信的概念非常简单,串口按位发送和接收字节。可

4、以在使用一根线发 送数据的同时用另一根线接收数据,它很简单并且能够实现远距离通信。本文主要研究的是基于DSP串口通信在TMS320F2812 SCI 口的设计与实现。而DSP是一种独特的微处 理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1 的数字信号。再 对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它 不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是 数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特 色。DSP 优点主要如下所示:对

5、元件值的容限不敏感,受温度、环境等外部参与影响小;容易实现集成;VLSI可以分时复用,共享 处理器;方便调整处理器的系数实现自适应滤波;可实现模拟处理不能实现的功能:线性相位、多抽样率 处理、级联、易于存储等;可用于频率非常低的信号。二、设计介绍1、 McBSP 设置DSP的McBSP通过3种信号实现同步通信:数据、帧同步和时钟。异步通信发送和接收各在一条线 上进行,具有自己的帧时序。UART的通信时钟由使用的通信波特率(每秒传输的数据位个数)决定,通常为2400, 9600, 19200等。 DSP与UART异步通信时,由于DSP的内部时钟频率通常都不是UART时钟频率的整数位,因而会造成

6、双方通信时数据位的偏移,为了尽量减小这种偏移,McBSP的串口时钟需要正确的设置时钟频率以达到与 UART波特率相匹配。数据包(PKTBITS )由起始位、数据位、奇偶校验位和停止位组成,起始位为1位,停止位通常为1,1.5, 2位,数据数通常为8位,如何使用校验,那么数据包还包括1位校验位。以上数据位中,每1位都被DSP 以 16倍波特率的时钟频率过采样。发送时,为保证UART能收到半个停止位,需要将DSP的McBSP发送端口设置为2相的数据帧。第 1 相为 16位的数据字,第2相为 8位的数据字。那么第1 相数据长度为(起始位+数据位+校验位)个字, 第2相长度为停止位的字长。发送时的总帧

7、长(TxPKTBITS)为这两相的总字长。接收数据包格式与发送 相似,其结构如图2所示oDSP的串口发送引脚与外部串口设备的接收引脚相连,不使用FSX引脚和CLKX 引脚。接收时,McBSP通过接收帧同步信号引脚(FSR)检测数据的到来,根据帧同步信号的不同,帧同步 信号可配置成上升沿触发或下降沿触发,由于UART的起始位为低电平,因此使用下降沿触发。将UART 发送数据信号与McBSP的数据接收引脚DR和FSR相连,实现用UART的发送信号触发McBSP的接收帧同步信号。在McBSP接收一帧数据期间,为了防止下降沿再次触发一帧数据接收,McBSP应该设置为 接收数据包期间忽略帧同步信号。图

8、1 UART 接收数据包的帧格式接收完一帧数据后,需要对数据解码,收于DSP发送和接收时钟是UART串口时钟频率的16位,因此每 个UART数据位对应于DSP中1个16位字(停止位对应8位字)。在McBSP接收寄存器中将接收帧设 置为2相,第1相16位字,字长为RxPKTBITS(起始位+数据位+校验位),第2相为8位字,对应于停 止位字数。此外,接收帧延时值应该设置为1 位。2、 McBSP 时钟采样率设置McBSP与UART通信时,McBSP接收到一帧的帧同步信号后,该帧期间之后出现的帧同步信号将被忽略。 为了获得最大数据流量,一帧数据发送结束时,其停止位后紧接着为起始位,帧同步信号的检测

9、依赖于停 止位到起始位的下降沿。为了正确检测到帧同步信号,高电平应该至少保持一个时钟周期以上时间。 理想情况下,串口时钟信号边沿与数据位边沿精确对应,此时,每个数据位对应 16 倍时钟周期。起始位 和串口时钟的下降沿偏最小,如图3所示。图2 McBSP串口时钟与UART时钟精确同步时的时序正常通信时,McBSP的帧同步信号与UART串口的时钟之间会有一定的偏差,如图所示。图3 McbSP串口时钟与UART时钟存在偏差时的时序存在偏差时,为保证McBSP能检测到接收到信号的下降沿,McBSP的串口采样时钟频率必须准确设置。 其设置方法如公式1、2所示。其中,DIV是McBSP寄存中串口采样时钟分

10、频值,DSPCLK是DSP的CPU时钟频率, baudrate 为通信波特率。buadwt銘buadwt銘(16xTBITS+3)1)WK (FMS那-阿F肋划 电、(16 心比矗 3)通信波特率为19200, DSP时钟频率为75MHz,接收数据包为10位(1位起始位,8位数据位,无校验, 1位停止位:PKTBITS=10,RxPKTBITS=9.5),根据公式1计算得DIV,由于分频值DIV为整数,因此 取DIV。根据公式2计算得DIV,取整后得DIV。取DIV最佳值为244。3、 DMA 设置UART通信时,DSP发送和接收到的数据存储在数据存储器中,为了实现DSP的高速处理,减少DSP

11、 响应McBSP数据寄存器中断的次数。发送和接收数据与McBSP发送和接收寄存器DXR和DRR之间的数 据传输通过DMA通道完成。这里以使用DMA通道4和通道5为例,其中,DMA通道4作为数据接收通 道,DMA通道5做为数据发送通道。将通道4和通道5的同步事件分别设置为McBSP串口接收事件和串 口发送事件,DMA通道4的源地址为McBSP的接收寄存器DRR地址,目的地址为数据存储器中存放接 收数据的变量地址;DMA通道5的源地址为数据存储器中待发的数据,目的地址为McBSP的DXR寄存 器地址。每当McBSP接收到数据时,会触发DMA通道4将接收到的数据拷贝到DSP数据存储器的相应 置,同时

12、目的地址指针自动加1;发送数据时,DMA通道5将待发送数据拷贝到DXR,将数据依次发出。 发送数据时,待发字符被打包成适于UART接收的数据格式,以发送16进制无符号数0 xAA为例,首先 发送起始位,然后是数据位最低位,最后发送停止位。该数值在数据存储器中按地址由低到高的存放格式为:0 x0000, 0 x0000, OxFFFF, 0 x0000, OxFFFF, 0 x0000, OxFFFF, 0 x0000, OxFFFF, OxFFFF。 接收到数据后,取过采样到的每个16 位二进制数据字的中间四位,若中间四位中1 的个数不小于 3,则表 示收到当前的UART数据位值为1;若中间四

13、位中0的个数不小于3,则表示收到当前的UART数据位值 为 0。否则认为数据传输出错。4 、程序设计#define FCR#define LCR在 McBSP 和 DMA 寄存器设置正确的基础上,利用 TI 公司提供的 Code Composer Studio 集成开发环境 编写了 #define FCR#define LCR在 McBSP 和 DMA 寄存器设置正确的基础上,利用 TI 公司提供的 Code Composer Studio 集成开发环境 编写了 UART串口通信软件,软件开发中使用了 CSL (片上支持库),使整个开发过程快速、直观、具有 很强的可读性。程序流程如图所示:#d

14、efine MCR#define LSR#define MSR#define SCR#define DLL#define DLMport2002 port2003 port2004 port2005 port2006 port2007 port2000 port2001void wait(int nWait);char cString17= Hello PC!,Over| ,cReceive,cBuffer17,cAnswer16=Oh,you say; int bReceive,nLen;main() unsigned int uWork; int i,k;bReceive=0;LCR =

15、0 x80;DLL = 0 x18;DLM = 0 x00;LCR = 0 x03;FCR = 0 x01;MCR = 0 x20;IER = 0 x00;while ( 1 )if ( bReceive=0 )for ( i=0;i16;i+ )do uWork=LSR; while ( uWork&0 x040 != 0 x040 );THR=cStringi;wait(1024);elsefor ( i=0;i10;i+ )do uWork=LSR; while ( uWork&0 x040 != 0 x040 );THR=cAnsweri;wait(1024);douWork=LSR;

16、 while ( uWork&0 x040 != 0 x040 );THR=;for ( i=0;inLen;i+ )do uWork=LSR; while ( uWork&0 x040 != 0 x040 ); THR=cBufferi;wait(1024);douWork=LSR; while ( uWork&0 x040 != 0 x040 );THR=; wait(1024); for ( i=9;i16;i+ ) do uWork=LSR; while ( uWork&0 x040 != 0 x040 ); THR=cStringi;wait(1024);k=0; bReceive=

17、0;while ( 1 )douWork=LSR; while ( (uWork&1)=0 ); cReceive=RBR; cBufferk=cReceive&0 x0ff;if ( cReceive=. ) cBufferk+1=0; nLen=k+1; bReceive=1; break;k+; k%=16;void wait(int nWait)int i,j,k=0;for ( i=0;inWait;i+ ) for ( j=0;j64;j+ ) k+;四、心得体会在设计的过程中遇到问题,可以说得是困难重重,这毕竟是第一次综合应用DSP技术来做设计,难免 会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够 深刻,掌握得不够牢固通过这次设计之后,得以把以前所学过的知识重新温故。这次毕业设

温馨提示

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

评论

0/150

提交评论