PC机与DSP异步串口通信实现

更新时间:2024-01-15 作者:用户投稿原创标记本站原创 点赞:10468 浏览:44296

摘 要 :以美国TI公司的TMS320C5410 DSP芯片为例,介绍DSP片内多通道缓冲同步串口接口(McBSP)的结构特点、针对用户经常面临的DSP系统与PC机实时交换数据时通信接口标准不兼容的问题,提出了一种新的串行通信设计方案,实现了DSP同步串口McBSP与PC机异步串口RS-232的全双工通信.

关 键 词 :数字信号处理器;多通道缓冲串行接口;串行通信

中图分类号:TP273 文献标识码:A

Implementation of Asynchronous Serial

Communication between PC and DSP

CHENGZhi-cheng JIN Shi-qun

(The School of Instrument Science and Opto-electronic Engineering,Hefei Univeristy of Technology,Hefei 230009,China)

Abstract: The United States TI's TMS320C5410 DSP chip is an example, introduced structural features of multi-channel buffer synchronous serial interface (McBSP) DSP chip , users often face against the DSP system and PC real-time exchange of data munication interface standard is not patible with the problem,berween a new serial munication design program to achieve full-duplex munication between a synchronous serial port of DSP's McBSP and PCSerial RS-232 asynchronous .

Keywords: DSP;McBSP;serial munication

1绪言

在DSP应用系统中,实现DSP与PC机的异步串行通信必须要对其接口进行设计.与并行接口相比,串行接口的最大特点便是器件引脚数目得以减少,降低了接口设计复杂性.多数DSP芯片提供的是同步串口,在实际的应用中,也需要DSP 能够与外设进行异步串行数据传输,本文即针对这种应用,研究并实现了一种简单、可靠的异步串口扩展方法.

2扩展方案提出

综合在DSP应用系统中扩展异步串行接口的方案,其基本方法和优缺点分析如下:

(1)利用DSP 的McBSP和 DMA来实现,在不扩展其他硬件的情况下,用软件实现异步数据传输格式.这种方法的优点在于硬件简单,但软件复杂,加大CPU 的负担,所以不适合通信数据量大的场合;

(2)在 DSP 的并行总线上扩展 UART 芯片(比如TI 公司的TL16C552),用硬件来实现异步数据传输,其优点是软件实现简单,缺点是在总线上还要扩展其他设备的情况下,使目标系统复杂化;

(3)利用DSP 的McBSP 同步串行接口,在扩展适当硬件的情况下,将同步数据变换为UART 异步数据格式进行传输,这样就充分利用了DSP 的片上资源,使硬件系统尽量简单化.

综合考虑硬件连接和软件编程的方便性,本文采用第三种方案,应用MAX3232串行异步收发器与DSP的McBSP口直接连接,硬件上无需任何其它器件,同时由于异步数据发送和接收由MAX3232以硬件方式实现,所以软件编程而言,只需要考虑DSP与MAX3232之间的同步数据通信,就能以最简单的硬件连接和软件编程来实现同步到异步的串行数据格式转换.

3硬件设计

TMS320C5410有三个多通道缓冲串行通信接口(McBSP),每个接口有7个引脚,除数据收发引脚(DX、DR)外,还包括发送时钟(CLKX)、接收时钟(CLKR)、发送帧同步(FSX)、接收帧同步(FSR)和外部输入时钟(CLKS)等引脚,分别用于传输数据、时钟和帧同步信号,实现同步串行通信[1].McBSP内部结构如图1所示.

将同步串口用于异步串行通信时,硬件连接方式如图2所示:

图2中DR引脚与FSR引脚始终连接在一起,作为DSP的串行通信输入端.对于McBSP而言,不论外部如何连接,始终认为工作在同步方式下,DR与FSR相连,则是将数据线上的电平跳变直接引入到FSR端,当FSR检测到数据线上的第一个下跳沿时,McBSP认为帧同步信号到来,然后根据设定的帧结构,由DR引脚读取数据.


异步通信的帧格式[2](如图3所示)中,每一字符由四部分组成:起始位、数据位、奇偶校验位(可以省略)和停止位.起始位(0)信号只占一位,用来通知接受设备一个待接收的字符开始到达.线路上在不传送字符时应保持为1.接收端不断检测线路的状态,若连续为1后又检测到一个0,就知道发来一个新字符,应马上准备接收.起始位后面紧接着是数据位,它可以是5位(D0一D4)、6位、7位或8位(D0一D7).奇偶检验位(D8)只占一位,但在字符中也可以规定不用奇偶校验位,则这一位就可省去.也可利用这一位(1/0)来确定这一帧中的字符所代表信息的性质(地址/数据等).

停止位用来表征字符的结束,它一定是高电位(逻辑1).停止位可以是1位、1.5位或2位.接收端收到停止位后,知道上一字符已传送完毕,同时,也为接收下一字符做好准备只要再接收到0,就是新字符的起始位.

4软件设计

程序设计的重点是对McBSP的相关寄存器进行配置,表1给出了McBSP相关寄存器重点位的设置方式.

考虑到系统软件的可移植性和可读性,软件采用C语言编写,同时利用DSP开发软件CCS所提供的DSP/BIOS中的芯片支持库函数(CSL).软件包括初始化程序和中断怎么写作程序,下面是McBSP工作于SPI模式下(主/从模式)初始化程序流程图见图4.

根据流程图,调用CSL的McBSP配置库函数即可完成McBSP的初始化:

MCBSP_Handle hport0;

MCBSP_Config PortConfig 等于 {/*定义寄存器设置结构*/

0x1800, /*设置串口控制器1的值*/

0x0000, /*设置串口控制器2的值*/

0x0040, /*设置接收控制寄存器的值*/

},

hport0 等于 MCBSP_open (0,MCBSP_OPEN_RESET), /*打开一个McBSP串口*/

MCSP_config (hport0, &PortConfig), /*按结构设置McBSP的各寄存器*/

5结语

本文介绍的这种C5402 DSP同步串口McBSP与PC机异步串口RS-232进行通信的方法,应用到本院信号处理实验室的DSP系统中,结果表明该方法具有硬件结构简单、通信线少高速可靠、可全双工通信的特点.