>
首页 » 技术文章 » McBSP在DSP与PC机通信中的研究与设计

McBSP在DSP与PC机通信中的研究与设计

作者:■吉林大学通信工程学院    张坤  张冠男  王树勋  时间:2005-10-19 09:45  来源:本站原创

摘 要:本文介绍了TMS320VC5402 DSP的多通道缓冲串行口McBSP的特点,针对用户经常面临的DSP系统与PC机实时交换数据时通信接口标准不兼容的问题,提出了一种新的串行通信设计方案,实现了DSP同步串口McBSP与PC机异步串口RS-232的全双工通信。
关键词:DSP;McBSP;RS-232
通用数字信号处理器(DSP)以其强大的数据处理能力在高速数字信号处理方面得到广泛的应用,但是它在通信接口方面的控制能力比较弱。如美国TI公司生产的TMS320C54x系列DSP芯片只有同步串口,通常只能用于与具有同步通信接口的外设进行通信。当其构成一个独立的处理单元时,往往需要与一些如PC机这类具有异步通信接口的外设交换数据,通信能力弱而影响了DSP的应用。
当前常用的TMS320C54x系列DSP与PC机通信的方式有两种:一种是利用DSP的通用I/O口线XF和BIO构成串口,由软件来设定通信波特率和握手方式。这种方式编程复杂,并且存在大量占用CPU时间和通信速率慢的缺点。另一种方式是通过专用的异步通信芯片来实现,它虽然能实现DSP与PC机的高速数据通信,但是增加了硬件电路的复杂性。
在研制某信号采集系统时,笔者以TMS320C54x系列的TMS320VC5402(以下简称C5402)作为信号处理单元进行实时处理,直接通过多通道缓冲串行口McBSP与PC机的异步串口RS-232进行通信。实验结果表明,这种方法在不过多占用CPU时间和不增加硬件设计复杂性的情况下,实现了DSP与PC机的高速数据传输。

图1 C5402 McBSP的信号格式

PC机串口与C5402串口的特点
PC机异步串口RS-232通信规定了字符数据的传输格式,即每个数据以相同的帧格式传送。每一帧信息由起始位、数据位、奇偶校验位和停止位组成,其中起始位和停止位作为异步通信的同步信号,分别指示传送数据的开始和结束。在发送间隙,通信线路总是处于逻辑“1”状态(高电平 ),每个字符数据的传送均以逻辑“0”(低电平)开始。在字符数据传送过程中,数据位从最低位开始传送。


C5402 提供两个高速、全双工、多通道缓冲串行口。它依靠三个信号实现发送数据和接收数据:数据线D(R/X)、帧同步线FS(R/X)和移位时钟线CLK(R/X)。McBSP通过6个引脚(DX、DR、CLKX、CLKR、FSX和FSR)与外设接口。DX和DR引脚完成与外部设备进行通信时数据的发送和接收,由CLKX、CLKR、FSX、FSR实现时钟和帧同步的控制。发送数据时,CPU和DMA控制器将要发送的数据写到发送数据寄存器DXR,在FSX和CLKX作用下,由DX引脚输出。接收数据时,来自DR引脚的数据,在FSR和CLKR作用下,从数据寄存器DRR中读出数据。CLKX、CLKR、FSX、FSR既可以由内部采样率发生器产生,也可以由外部设备驱动。McBSP分别在相应时钟的上升沿和下降沿进行数据检测。每个McBSP最多可支持128通道的发送和接收,串行字长可选,包括8、12、16、20、24和32位,还支持μ率和A率数据压缩扩展。

图2 系统硬件连线图

C5402与PC机串行通信接口的设计
数据格式的统一
要实现C5402同步串口McBSP与PC机异步串口RS-232的全双工通信,首先必须解决这两种不同通信接口方式之间的数据格式统一问题。
C5402 McBSP传送的数据每字可以设置为8位、12位、16位、20位、24位或32位,这里将McBSP的一个字等效为PC机串口数据的一位,实现C5402同步串口与PC机异步串口数据格式的统一。同时,PC机串口传送数据的起始位可以作为C5402 McBSP的帧同步信号。在这个系统中,将每一个McBSP的一个16位字等效为PC机串口数据的一位,即McBSP传送的每帧10个16位字等效为PC机串口传送的一个8N1模式数据(1个起始位+8个数据位+1个停止位),具体数据格式见图1。
C5402 在发送数据前先将数据进行如下方式编码:先把每个待发送数据的每一位按照由低到高的顺序扩展成16位字,如“0”扩展为“0000h”,“1”扩展为“FFFFh”,这样一个8位字符就扩展为8个16位字,再在这组数据的前面增加一个16位数据“0000 h”作为起始标志,在结尾加上一个16位数据“FFFF h”作为结束标志。例如“a”的ASCII为“0110 0001b”,编码后的一组10个16位数据为“0000h,FFFFh,0000h,0000h,0000h,0000h,FFFFh,FFFFh,0000h,FFFFh”。设置C5402 McBSP发送数据格式为每帧10字,每字16位,在发送数据时将每组10个数据作为一帧信号发出。
C5402接收数据过程与发送数据过程正好相反。设置McBSP工作在接收格式为每帧10字,每字16位。C5402接收完一帧数据后,再按与发送数据时的编码方式相逆的过程进行解码,恢复原值。

图3 软件流程图


波特率匹配
C5402的采样率发生器必须按如下等式设置:
CLKGDV=(CPU Clock Frequency)/(16*baud rate)-1
C5402的工作时钟可以达到100MHz,其McBSP的数据传输波特率最高可以是50MHz,如果将McBSP的一个8位字编码为PC机异步串口的一位,C5402将可以与波特率达到50M/8=6.25M的异步串口进行数据通信。在这个系统中,选择PC机的串口2工作在波特率为9600,数据格式为: 1位起始位+8位数据位+1位停止位。C5402工作的CPU时钟频率=20MHz,此时CLKGDV=20000000/(16*9600)-1=129。
同步
对C5402来说,同步问题分为发送同步和接收同步。组建如图2所示硬件系统,通过设置C5402 McBSP输出的数据格式,使其符合PC机RS-232串口数据格式,就解决了C5402发送数据时的同步问题。利用PC机RS-232串口发送数据的起始位始终为低电平的特点,将其作为C5402 McBSP接收数据的帧同步信号,这就解决了C5402接收数据时的同步问题。在这个系统中,C5402的接收帧同步信号线FSR与数据接收线DR接在一起,同时设置McBSP的RCR2寄存器的RFIG=1,即忽略第一个字以后的接收帧同步信号,这样既将PC机异步串口发送数据的起始位作为C5402 McBSP的接收帧同步信号,又防止起始位后的数据对帧同步信号进行干扰,实现了DSP和PC机之间进行可靠的数据传输。
这里使用的CMOS逻辑电平和RS-232逻辑电平之间转换的芯片是MAXIM公司MAX232,由于MAX232供给电压为5V,C5402的引脚电压是3.3V,在C5402接收数据时采用两电阻串联分压来达到引脚电压匹配。从系统硬件连线图可以看出,这种设计方案不增加额外硬件,即可实现DSP同步串口与PC机异步串口的全双工通信,同时,它还具有与一般的异步串口和异步串口之间数据传输相同的速率。

系统软件设计
在这个系统中,配置McBSP0与PC机RS-232串口2之间进行通信。软件包括C5402初始化程序、McBSP0初始化程序、发送数据编码子程序、接收数据译码子程序和接收发送数据中断服务程序。图3给出了本系统的软件流程图。
McBSP0关键位设置
程序设计的重点是对McBSP0的相关寄存器进行配置,表1给出了McBSP0相关寄存器重点位的设置方式。
软件代码部分相关子程序此处略(详见本刊网站)。

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

参考文献
1 TMS320C54x DSP Reference Set Volume 1:CPU and Peripherals.Texas Instrument Inc,1999.4
2 TMS320C54x DSP Reference Set Volume 5:Enhanced Peripherals. Texas Instrument Inc,1999.6
3 [美]Mark Nelson.串行通信开发指南.北京:中国水利水电出版社,2000.9
4 [美] Jan Axelson.串行端口大全.北京:中国电力出版社,2001.5

相关推荐

CEVA凭借90%的市场份额继续领导DSP IP市场

CEVA  DSP  2012-05-30

欧胜推出带有语音处理器DSP的下一代音频中枢

欧胜  DSP  2012-05-07

Tensilica HiFi音频/语音DSP迎来又一里程碑

Tensilica  DSP  2012-04-25

RS Components获上海综合保税区奖项

RS  电子产品  2012-04-24

Tensilica授权瑞萨电子ConnX BBE16 DSP IP核

Tensilica  DSP  2012-04-18

Tensilica HiFi音频DSP支持杜比数字+功能

Tensilica  DSP  2012-02-28
在线研讨会
焦点