DSP与计算机的异步串行通信
DSP通过地址线对TL16C550进行控制,数据直接通过数据线传输。DSP与TL16C550之间的数据传输简单,RBR/THR分别是接收和发送缓冲寄存器,它们之间的数据传输是通过DSP读写缓冲寄存器实现的。
3.2 TMS320VC5402简介
TMS320VC5402是C5000系列中性价比较高的一颗芯片。独特的6总线哈佛结构,使其能够6条流水线同时工作,工作频率达到100MHz。VC5402除了使用VC54x系列中常用的通用I/O口(General Purpose I/O,简称GPIO)外,还为用户提供了多个可选的GPIO:HPI-8和McBSP。TMS320VC5402的主要特性有:
(1) 操作速率达100MIPS;
(2) 具有先进的多总线结构(1条程序总线、3条数据总线和4条地址总线); (3) 40位算术逻辑运算单元(ALU),包括1个40位桶形移位寄存器和2个独立的40位累加器;
(4) 17位并行乘法器与40位专用加法器相连,用于非流水式单周期乘法/累加(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(内核)。
第 5 页 共 16页
DSP与计算机的异步串行通信
由前面的分析可知,响应分析在数学上是一个具有38个自由度的二阶线性微分方程的数值积分问题[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的D0-D7数据线相连,TL16C550的片内寄存器选择线接C5402的A0-A2。
由于RS-232-C电路电平与CMOS电平不同,因此,RS232驱动器与CMOS电平连接时必须经过电平转换。这里,我们采用MAX232完成这一功能,MAX232具有一个专有的低压降发送器输出级,在其以双电荷棒3.0V~5.5V供电时,可以获得真正的RS-232性能。该器件只需4个1μF小型外接电容,可在维持RS-232输出电平的情况下确保运行于120kb/s数据率,因此十分适合高速串行通信场合。
利用RXRDY和TXRDY引入外部中断,从而系统工作在中断方式,RXRDY产生外部0中断(INT0),而TXRDY将产生外部1中断(INT1)。
图3.2 TMS320VC5402与PC异步串行通信硬件接口电路
第 6 页 共 16页
DSP与计算机的异步串行通信
3.4 TMS320VC5402与PC异步串行通信软件设计原理
系统软件设计包括PC机、TMS320VC5402以及TL16C550的初始化和通信协议等。初始化的主要任务是设置操作所需要的参数。这些参数包括串行通信时数据串的数据位数、停止位数、奇偶校验等。另外,还需要设置发送和接收的波特率及中断方式。
其中需要注意的是由于系统工作在中断方式,应允许接收就绪中断和发送缓冲区空中断,相应地,中断允许寄存器的值应该设置为03H。
4 课程设计步骤和过程
4.1 硬件电路设计
TMS320VC5402通过TL16C550实现与PC机串行通信,电路图如图3.2所示。TMS320VC5402采用双电源供电,内核电源是1.8V,接口电源是3.3V,所以与TMS320VC5402连接的器件最好选用供电电源为3.3V的器件。TL16C550就是一款 5V和 3.3V均可以供电的器件,因而大大简化了硬件接口电路连接。
TL16C550的数据线DO~D7直接与TMS320VC5402的DO~D7数据线相连,实现数据的传输。TL16C550的片内寄存器选择线与TMS320VC5402的地址线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、WR2直接与地连
第 7 页 共 16页
DSP与计算机的异步串行通信
接(无效状态); 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 。
TL16C550的SIN引脚为串行数据输入引脚,SOUT为串行数据输出引脚。这两条信号线连接到MAX232上,从而实现数据串行TTL/COMS电平与RS232电平的转换。由于MAX232可以直接接收3.0V~5.5V的电压信号,所以可接收TL16C550的3.3V的电压信号,但是MAX232的输出电压为5V,所以其输出信号必须经过电阻分压才能送至TL16C550。
4.2 软件设计
本系统软件设计包括PC机、TMS320VC5402以及TL16C550的初始化和通信协议。初始化过程主要是设置所需参数。这些参数包括串口通信时数据位数、停止位数、奇偶校验等。另外,还需设置发送和接收的波特率以及中断方式。串行通信主程序流程图如图4.1所示。
第 8 页 共 16页
DSP与计算机的异步串行通信
图4.1 串行通信流程图
在对TMS320VC5402的初始化过程中,首先定义寄存器,例如对软件等待状态寄存器(SWWSR )和软件等待状态挖制寄存器(SWSR)的定义如下:
volatile int * SWWSR=Ox28: volatile int * SWWSR=Ox2b;
然后对寄存器进行读写操作,如设置I/O、ROM和RAM的等待周期: SWSR=0; // 等待状态基数不变
第 9 页 共 16页