《dsp与计算机的异步串行通信课程设计方案论文 .docx》由会员分享,可在线阅读,更多相关《dsp与计算机的异步串行通信课程设计方案论文 .docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结目 录1 概述. 12 设计总体方案 . 23 设计详细原理 . .33.1TL16C550 简介33.1.1 TL16C550 的特点 33.1.2 TL16C550 的引脚功能 33.1.3 TL16C550 的内部寄存器 43.2 TMS320VC5402 简介 .53.3 TMS320VC5402 与 PC异 步 串 行 通 信 硬 件 电 路 原理 53.4 TMS320VC5402 与 PC异 步 串 行 通 信 软 件 设 计 原理 64 设计步骤和过程 . 74.1 硬件电路设计 74.2 软件设计 85 调试与运行结果 106 心得体会 11参考文献 .12附
2、录. 13可编辑资料 - - - 欢迎下载精品名师归纳总结1 概述数字信号处理器由于具有高性能和灵敏可编程的优点而得到广泛的应用,在许多应用系统中 ,实现 DSP 与 PC 机之间有效牢靠的通信是系统设计的重要部分。一般来说,通信可以分为串行和并行两种方式。相对于并行方式而言,串行通信具有电路结构简洁、 通信距离远和成本较低等优点,因而在许多数据交换量不大的系统中得到了广泛的应用,行数据传输又可分为同步和异步两种模式,本次课程设计,综合运用数字信号处 理、DSP 技术课程以及其他有关先修课程的理论和生产实际学问去分析和解决DSP 与运算机的异步串行通信。数字信号处理器 DSP近年来广泛应用于通
3、信、图像处理、仪器外表等方面。DSP在数值处理方面运算才能强、处理速度快。在通信方面,不同型号的DSP 有不同的处理方式。以 TMS320VC5402以下简称 5402为例,它没有特的的 UART 接口,但有 2 个多通道缓冲串口。为了实现串行通信,许多情形下都用软件对5402 的 MCBSP 口编程来模拟异步串口。许多学者曾对应用MCBSP 口实现串口进行过争论,萁硬件上依靠三个独立的信号数据、帧同步、时钟来收发数据。软件上就是通过编程模拟时钟的时序。这种方法软件编程比较复杂设计者对通讯协议特殊明白才行,且占用很大的系统资源。本文提出接受特的的异步通信芯片TLl6C550 来扩展 5402
4、的串口,可以躲开上述方法的缺点,使 DSP 器件实现稳固、精确的串行通信。并将介绍5402 和 PC 机之间通过 16C550 进行串行通信的详细实现方法。该方案其有很强的灵敏性和有用性,适用于许多需要进行串口通信的场合。2 课程设计总体方案数字信号处理器 DSP以其强大的数据处理才能广泛应用于高速数字信号处理。但其通信接口的把握才能较弱。例如TMS320VC54 系列 DSP 只有同步串口,通常仅与具有同步通信接口的外设通信。当DSP 构成一个独立的处理单元时,往往需要与一些具有异步通信接口的外设如 PC机交换数据。通常解决 DSP 与 PC 机之间通信的方式有两种:一种是利用DSP 的通用
5、 IO 口 X F 和 BIO 构成串口,由软件设定通信波特率和握手方式。这种方式编程复杂,并且占用大量 CPU 时间,通信速率慢。另一种是通过专用的异步通信器件实现DSP 与 PC 机的高 速数 据 通 信 。 本 课程 设计 接受 TI公 司 的异 步 通 信器 件 TL16C550 实 现TMS320VC5402 串口通信,该设计系统编程简洁,具有较强的灵敏性和有用性,适用可编辑资料 - - - 欢迎下载精品名师归纳总结于实时通信应用。TMS320VC5402 与 PC 机通过 TL16C550 扩展 RS232 串口实现串行通信,其总体方案如图 1.1 所示。可编辑资料 - - - 欢
6、迎下载精品名师归纳总结3.1 TL16C550 简介图 2.1 TMS320VC5402 与 PC 机串行通信方案3 课程设计详细原理可编辑资料 - - - 欢迎下载精品名师归纳总结3.1.1 TL16C550 的特点TL16C550 是 TI 公司的异步通信器件,具有以下特点:(1) 供电电压为 5V 或 3.3V。(2) 时钟频率高达 16MH z,通信时波特率最高可达1M ,可编程设定波特率发生器。(3) 具有标准的异步通信位,可选择5、6、7、8 位串行数据位,可设置奇偶校验或无校验模式, 停止位长度为 1、1.5、2。(4) 独立把握发送、接收、线状态以及中断设置。(5) 软件设定的
7、 FIFO,削减 CPU 中断。3.1.2 TL16C550 的引脚功能TL16C550 接受 44 引脚 PLCC 封装,其引脚排列如图 3.1 所示。可编辑资料 - - - 欢迎下载精品名师归纳总结图 3.1 TL16C550 引脚排列TL16C550 的主要引脚功能如下: A0 A2 :片内寄存器的选择信号。 DO D7:双向 8 位数据线。ADS:的址选通信号,该引脚有效时,可将CS0、CS1、 CS2 及 A0、A1 、A2锁存在 TL16C550 内部。XIN 、XOUT :外部时钟,可接晶体振荡器或外部时钟信号。CS0 错误!未定义书签。 、CS1、 CS2 :输入片选信号,当C
8、S0=CS1=1 且 CS2 = 0 时,选中 TL6C550。WR1、WR2、 RD1 、RD2:读、写信号。BAUDOUT:波特率输出。MR :主机复位。INTRPT :中断,共有 4 种情形可以触发中断:接收错误、接收寄存器有数据到达、发送寄存器空、切换工作模式。3.1.3 TL16C550 的内部寄存器TLl6C550 内部共有 l1 个寄存器。这些寄存器分别用于设置通信参数、拜望线路及可编辑资料 - - - 欢迎下载精品名师归纳总结MODEN 的状态、发送和接收数据以及中断治理等。这些寄存器的拜望是通过3 个的址线把握, LCR 把握寄存器 D7 位 DLA 参与帮忙定义。当 DLA
9、B=0 时, RBRTHR 和IER 才能正常工作。而 DLAB=1 时,就把握 DIL 和 DLM 写入。表 3-1 列出了如何通过DLAB和 A0 、A1 、A2 选择片内寄存器,并给出了这些寄存器的中文名称及英文缩写。表 3-1TL16C550 片内寄存器DSP 通过的址线对TL16C550 进行把握,数据直接通过数据线传输。DSP 与TL16C550 之间的数据传输简洁, RBRTHR 分别是接收和发送缓冲寄存器,它们之间的数据传输是通过 DSP读写缓冲寄存器实现的。3.2 TMS320VC5402 简介TMS320VC5402 是 C5000 系列中性价比较高的一颗芯片。特殊的6 总
10、线哈佛结构,使其能够 6 条流水线同时工作,工作频率达到100MHz 。VC5402 除了使用 VC54x系列中常用的通用I O 口( GeneralPurposeIO,简称 GPIO)外,仍为用户供应了多个可选的 GPIO: HPI8 和 McBSP。TMS320VC5402 的主要特性有:(1) 操作速率达 100MIPS。(2) 具有先进的多总线结构 1 条程序总线、 3 条数据总线和 4 条的址总线 。(3) 40 位算术规律运算单元 ALU, 包括 1 个 40 位桶形移位寄存器和 2 个独立的 40位累加器。(4) 17 位并行乘法器与 40 位专用加法器相连 ,用于非流水式单周期
11、乘法 /累加MAC运算。可编辑资料 - - - 欢迎下载精品名师归纳总结(5) 双的址生成器 ,包括 8 个帮忙寄存器和 2 个帮忙寄存器算术运算单元 ARAU 。(6) 数据/程序寻址空间 1M16bit ,内存 4K16bitROM 和 16K16bit 双存取 RAM 。(7) 内置可编程等待状态发生器、锁相环PLL 时钟发生器、 2 个多通道缓冲串行口、1 个 8 位并行与外部处理器通信的 HPI 口、2 个 16 位定时器以及 6 通道 DMA 把握器。(8) 8低功耗,工作电源 3.3V 和 1.8V 内核。由前面的分析可知,响应分析在数学上是一个具有38 个自由度的二阶线性微分方
12、程的数值积分问题 3, 6-9。3.3 TMS320VC5402 与 PC 异步串行通信硬件电路原理TMS320VC5402 与 PC 机串行通信的硬件电路如图 3.2 所示。图 3.2 中, TL16C550 的 CS0 和 CS1 都接高电平, CS2 接 C5402 的外部 I O 空间,选择线 IS。当 XIN 、XOUT 端外接 1.8342MHz 晶振时, C5402 以 28400 的波特率与 PC 机通信,所以,波特率因子寄存器的低位设为02H,高位设为 00H。TLC16C550 的数据线 D0 D7 直接与 C5402 的 D0D7 数据线相连, TL16C550 的片内寄
13、存器选择线接 C5402 的 A0 A2 。由于 RS232 C 电路电平与 CMOS 电平不同,因此, RS232 驱动器与 CMOS 电平连接时必需经过电平转换。这里,我们接受MAX232 完成这一功能, MAX232 具有一个专有的低压降发送器输出级,在其以双电荷棒3.0V5.5V 供电时,可以获得真正的 RS232 性能。该器件只需4 个 1 F 小型外接电容,可在保护 RS 232 输出电平的情形下确保运行于 120kbs 数据率,因此特殊适合高速串行通信场合。利用 RXRDY 和 TXRDY 引入外部中断,从而系统工作在中断方式,RXRDY 产生外部 0 中断( INT0 ),而
14、TXRDY 将产生外部 1 中断( INT1 )。可编辑资料 - - - 欢迎下载精品名师归纳总结图 3.2 TMS320VC5402 与 PC 异步串行通信硬件接口电路3.4 TMS320VC5402 与 PC 异步串行通信软件设计原理系统软件设计包括 PC 机、TMS320VC5402 以及 TL16C550 的初始化和通信协议等。初始化的主要任务是设置操作所需要的参数。这些参数包括串行通信时数据串的数据位数、停止位数、奇偶校验等。另外,仍需要设置发送和接收的波特率及中断方式。其中需要留意的是由于系统工作在中断方式,应答应接收就绪中断和发送缓冲区空中断,相应的,中断答应寄存器的值应当设置为
15、03H。4 课程设计步骤和过程4.1 硬件电路设计TMS320VC5402 通过 TL16C550 实现与 PC 机串行通信,电路图如图3.2 所示。TMS320VC5402 接受双电源供电,内核电源是1.8V ,接口电源是3.3V ,所以与TMS320VC5402 连接的器件最好选用供电电源为3.3V 的器件。 TL16C550 就是一款 5V 和 3.3V 均可以供电的器件,因而大大简化了硬件接口电路连接。TL16C550 的数据线 DOD7 直接与 TMS320VC5402 的 DOD7 数据线相连,实现数据的传输。 TL16C550 的片内寄存器选择线与TMS320VC5402 的的址
16、线 A0 A2相连。当 TL16C550 的片选信号 CS0、CS1为高电平, CS2 为低电平常, TL16C550 被可编辑资料 - - - 欢迎下载精品名师归纳总结选中。 CS0、CS1 直接与高电平相连,CS2 就与 TMS320VC5402 的 IOSTRB 相连,从而防止与外部其他 I O 口发生冲突。TL16C550 的读信 号为 RD1、 RD2 。 当 RD1为低电 平或 RD2 高电平, 且TL16C550 被选中时,可进行读操作。写信号为WR1 、WR2 ,当 WR1为低电甲或WR2 为高电平,且 TL16C550 被选中时,可进行写操作。 TL16C550 的 RD2、
17、WR2 直接与的连接 无效状态 。 TMS320VC5402 的 IOSTRB、R/ W 通过或门与 TL16C550 的WR1连接。 TMS320VC5402 的 R/ W 与 IOSTRB同或后,连接至 RD1 。当 TL16C550 的 XI N 引脚和XOUT引脚间外接 3.072MHZ 晶体振荡器时, TMS320VC5402 以 9600 波特率与 PC 机通信,依据波特率 =基准时钟频率 16 x 波特率因子 ,所以波特因子寄存器的低位设置为20H,高位设置为 00H。TL16C550 的中断请求信号 INTRPT 直接连接至 TMS320VC5402 的外部中断 INTO 。T
18、L16C550 的 SIN 引脚为串行数据输入引脚, SOUT 为串行数据输出引脚。这两条信号线连接到 MAX232上,从而实现数据串行 TTL COMS 电平与 RS232 电平的转换。由于 MAX232 可以直接接收3.0V 5.5V 的电压信号,所以可接收TL16C550 的3.3V 的电压信号,但是 MAX232的输出电压为 5V ,所以其输出信号必需经过电阻分压才能送至 TL16C550。4.2 软件设计本系统软件设计包括 PC 机、TMS320VC5402 以及 TL16C550 的初始化和通信协议。初始化过程主要是设置所需参数。这些参数包括串口通信时数据位数、停止位数、奇偶校验等
19、。另外,仍需设置发送和接收的波特率以及中断方式。串行通信主程序流程图如图 4.1 所示。可编辑资料 - - - 欢迎下载精品名师归纳总结图 4.1 串行通信流程图在对 TMS320VC5402 的初始化过程中,第确定义寄存器,例如对软件等待状态寄存器( SWWSR 和软件等待状态挖制寄存器( SWSR的定义如下:volatile int * SWWSR=Ox28 :volatile int * SWWSR=Ox2b 。然后对寄存器进行读写操作,如设置I O、ROM 和 RAM 的等待周期:SWSR=0。 / 等待状态基数不变SWWSR= 0xfffff 。/ 设置 I O 等待周期为 7, R
20、AM 等待周期为 7, ROM 等待周期为7。可编辑资料 - - - 欢迎下载精品名师归纳总结同理,用 C 语言对 TL16C550 初始化,第一宏定义, IER 宏定义为: #define IER portO1。同理定义 RBR、THR 、FCR 等寄存器。接受 3.072MH z 的晶体振荡器,波特率为 9600、字长为 8 bit、无校验位、 1 位停止位的数据流。TL16C550 寄存器的初始化 C 语言程序如下: FCR=Ox03。/答应 FIFO 的发送和接收,同时清除已接收到的FIFO LCR=LCR&0xFF7F 。/设置 DLAB=0IER=0x00。/ 不设置中断请求LCR
21、=0x03。 /字长为 8 bit 、无校验位、 1 位停止位MCR=0x00 。/设置 CTS 把握输入输出LCR=LCR&0x80 。/ 设置 DLAB=IDLL=0x20 。/波特翠为 9600DLM=0x00 。LCR=LCR&0xFF7F 。/重新设置 DLAB=0初始化完成后, TMS320VC5402 与 PC 机通过 9600 的速率传输数据。假如要想得到不同的波特率,就只需向波特率因子寄存器中写入相应的值即可。5调试与运行结果可编辑资料 - - - 欢迎下载精品名师归纳总结图 5.1 调试运行结果图如上图 5.1 所示,按下复位键后,串口调试助手窗口依次显现两行事先编辑的“h
22、ello,everyone!”成功实现 PC机与 DSP之间的数据交换。第一 PC 机将数据发送给 DSP,然后 DSP 又将数据发给 PC 机。在发送字符 / 数据窗口键入字符“ s”,如接受手动发送,就窗口显现“ ss” 。如接受自动发送,就窗口连续显现“ sssssssss .” ,按下复位键后,数据停止发送。于是通过编写的DSP 程序和对程序的运行调试,成功实现DSP和 PC 机之间的数据通信。6 心得体会时间过得真快,转瞬时已经有两个星期过去了,现在回想起来,往事仍历历在目。课程设计是培养同学综合运用所学学问,发觉、提出、分析和解决实际问题,锤炼实践才能的重要环节 ,是对同学实际工作
23、才能的详细训练和考察过程。回忆起此次DSP 原理及应用的课程设计,至今我仍感叹颇多。从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到许多许多的东西,同时不仅可以巩固了以前所学过的学问,而且学到了许多在书本上所没有学到过的学问。可编辑资料 - - - 欢迎下载精品名师归纳总结通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论学问是远远不够的,只有把所学的理论学问与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手才能和独立摸索的才能。在设计的过程中遇到问题,可以说得是困难重重,这到底第一次做的,难免会遇到过各种各样的问题,同
24、时在设计的过程中发觉了自己的不足之处,对以前所学过的学问懂得得不够深刻,把握得不够牢固 通过这次课程设计之后,确定把以前所学过的学问重新温故。这次课程设计最终顺当完成了,在设计中遇到了许多问题,最终在老师的辛勤指导下,同学的帮忙下最终迎刃而解。在此我表示感谢!在这次课程设计过程中,我们结合了课程中所学的理论学问,依据书上供应的DSP与文献中的TL16C550 的原理的基础上来进行编程,这次课程设计我们学到了许多东西,虽然做出来的东西很基础,但是我们加深了对学问的懂得和把握,作为一名大四同学,我觉得做课程设计特殊的有意义,这不仅是锤炼培养独立分析与解决问题的才能,也是一次团队合作开发过程。参考文
25、献1 邹彦. DSP 原理及应用 M. 北京:电子工业出版社 ,2005,1.2 戴明桢.TMS320C54xDSP 结构、原理及应用 M. 北京航空航天高校出版社 ,2001,8.3 胡圣尧. DSP 原理及应用 M. 东南高校出版社 ,2021.7.4 清源科技 .TMS320C54xDSP 应用程序设计教程 M. 机械工业出版社 ,2004,1.5 清源科技 .TMS320C54x 硬件开发教程 M. 机械工业出版社 ,2003,1.6 蔡琳洁.DSP与 PC 机串口的高速数据通信的实现 J. 电讯技术 ,2001,4.附录* FileName:ex3.asm* Descriptiion
26、:异步串行口试验*CMD 文件:MEMORYPAGE 0:VECS:origin = 0xff80,length = 0x80PROG:origin = 0x1000, length = 0x1000PAGE 1:DATA:origin = 0x2000, length = 0x1000STACK:origin = 0x3000, length = 0x1000SECTIONS可编辑资料 - - - 欢迎下载精品名师归纳总结.vectors: VECS PAGE 0.text: PROG PAGE 0.data:.stack: DA TA PAGE 1 STACK PAGE 15000 系列
27、DSP 汇编语言:.titleex3.global _c_int00.mmregs.def _c_int00 UART_BASE.set0x0000THR.setUART_BASE+0x00RBR.setUART_BASE+0x00IIR.setUART_BASE+0x20IER.setUART_BASE+0x10FCR.setUART_BASE+0x20LCR.setUART_BASE+0x30 MCR.setUART_BASE+0x40LSR.setUART_BASE+0x50MSR.setUART_BASE+0x60SCR.setUART_BASE+0x70DLL.setUART_BAS
28、E+0x00 DLM.setUART_BASE+0x10BAUDLOW.set60hBAUDHIGH.set61h BAUDCTL.set62hRDDLM.set63hRDDLL.set64h RDTEMP.set 65h IER_ADDR.set66h FCR_ADDR.set67h UART_STATUS .set68hREV_ADDR.set69h SEND_ADDR.set6ah THRE.set0x0020DR.set0x0001LEN.set 48.data可编辑资料 - - - 欢迎下载精品名师归纳总结SENDBUF:.string Welcome to use SanZhi D
29、SP Experiment Instruments.sect .vectors可编辑资料 - - - 欢迎下载精品名师归纳总结rst:B _c_int00 NOP NOP可编辑资料 - - - 欢迎下载精品名师归纳总结.space 15*4*16int0:B _comm。ST16550C 中断信号连到外部中断0 NOPNOPint1:B _comm NOP NOPint2:B _commNOP NOP.space 13*4*16.text可编辑资料 - - - 欢迎下载精品名师归纳总结_c_int00:LD #0h,DPSTM #3000h,SPSTM #07FFFh,SWWSRSTM #28
30、h,AR1。设置外部等待时间倍数ST #0001h,*AR1 SSBX INTMSTM #0000h,CLKMD。5MHz 工作可编辑资料 - - - 欢迎下载精品名师归纳总结tstBITF CLKMD,#1hBC tst,TCuart_init:ST #00H,IER_ADDR。禁止全部中断PORTW IER_ADDR,IERST #00H,FCR_ADDR。禁止 FIFO PORTW FCR_ADDR,FCRPORTR LCR,RDTEMP。设置波特率为9600bps ORM #0080H,RDTEMPPORTW RDTEMP,LCR LD #0018H,AAND #00FFH,ASTL
31、A,BAUDLOW。置波特率低位PORTW BAUDLOW,DLL LD #00H,ASTL A,BAUDHIGHPORTW BAUDHIGH,DLM。置波特率高位ANDM #0FF7FH,RDTEMP PORTW RDTEMP,LCRLD #03H,A。8 BIT, 1 STOP, NO PARITYSTL A,BAUDCTL PORTW BAUDCTL,LCRSTM #SENDBUF,AR0。发送字符串STM #LEN,BRC。设置字符串长度RPTB LOOPREADY:PORTR LSR,UART_STATUS可编辑资料 - - - 欢迎下载精品名师归纳总结LOOP:NOPSTM #0f
32、fffh,IFRsusp:NOPBITF UART_STA TUS,THREBC READY ,NTC。等待发送完成PORTW *AR0+,THRNOPST #01H,IER_ADDR。打开接受中断PORTW IER_ADDR,IERSTM #IMR,AR0 ORM #0007H,*AR0 RSBX INTMNOPB susp。等待接收中断可编辑资料 - - - 欢迎下载精品名师归纳总结_comm: PSHM 08h。接收中断服务程序PSHM 09h PSHM 0ah PSHM ST0PORTR LSR,UART_STATUS BITF UART_STA TUS,DRBC end_comm,NTCPORTR RBR,REV_ADDR。把接收到的字符再发送出去PORTW REV_ADDR,THR可编辑资料 - - - 欢迎下载精品名师归纳总结end_comm:POPM ST0 POPM 0Ah POPM 09h POPM 08h RETE可编辑资料 - - - 欢迎下载