TMS320C54XX系列DSP与PC机间串行通信的实现
摘要:目前大多数数字信号处理器(DSP)芯片上未提代通用异步串行收发器(UART),只提供2~3个同步串行接口,其与微机及其它设备进行串行通信时,必须在DSP上扩展异步串行接口。以美国TI公司TMS320C54XX系列DSP为例,采用MAXIM公司的MAX3111异步串行收发器,研究了理想的接口扩展方案。论述了这种方案的软、硬件实现。该方案硬件连接简单,软件编程方便,可实现DSP与PC机间的串行通信,具有很高的工程应用价值。
关键词:异步串行收发器 多通道缓冲串行接口 DSP McBSP SPI UART
DSP在电子工业领域得到了越来越广泛的应用。在DSP应用系统设计中,必不可少的是各种通信接口的设计。与并行接口相比,串行接口的最大特点是减少了器件引脚数目,降低了接口设计复杂性。串行数据传输可分为同步和异步两种模式。通用PC机的RS-232接口为通用异步接口UART(Universal Asynchronous Receiver and Transmitter),而MOTOROLA公司的串行外围设备接口SPI、队列SPI(QSPI)、PHILIPS公司的内部IC总线(I2C),National公司的微总线(MICROWIRE)均为同步串行协议。javascript:window.open(this.src);" style="cursor:pointer;"/>
目前几乎所有的数字信号处理器都提供了一个或多个串行接口,然而,多数DSP芯片提供的是同步串口。在实际的应用中,也需要DSP能够与外设进行异步串行通信,如与PC机进行串行数据传输就要求DSP系统具UART串行接口。针对这种情况,本文研究并实现了一种简单、可靠的异步串口扩展方法。
1 扩展方案
综合分析DSP应用系统中扩展异步串行接口的方案,其基本方法和优缺点如下:
(1)在DSP的并行总线上扩展UART芯片(如TI公司的TL16C552),用硬件实现异步数据传输。优点是软件实现简单,缺点是在总线上还需扩展其它设备,这样做使目标系统复杂化,增大系统体积。
(2)利用DSP的McBSP和DMA,在不扩展其它硬件的情况下,用软件实现异步数据传输格式。这种方法的优点在于硬件简单,但软件复杂,加大了CPU的负担,所以不适合通信数据量大的场合。
(3)利用DSP的McBSP同步串行接口,在扩展适当硬件的情况下,将同步数据变换为UART异步数据格式进行传输。这样,就充分利用了DSP的片上资源,使硬件系统尽量简单化。
综合考虑硬件连接和软件编程的方便性,本文采用第三种方案,应用美国MAXIM公司的MAX3111串行异步收发器,与DSP的McBSP口直接连接。硬件上无需任何其它外围器件,同时由于异步数据的发送和接收由MAX3111以硬件方案实现,所以软件编程需要考虑的也只是DSP与MAX3111之间的同步数据通信。这样,用最简单的硬件连接和软件编程就能实现同步到异步的串行数据格式转换。
2 SPI接口协议及DSP的多通道缓冲串行接口
2.1 SPI接口协议
串行外围设备接口(SPI)是MOTOROLA公司提出的一个同步串行外设接口,允许CPU与各种外围接口器件以串行方式进行通信、交换信息。它使用4条线:串行时钟线(SCK)、主机输入/从机输出线(MISO)、主机输出/从机输入线(MOSI)、低电平有效的使能信号线(CS)。这样,仅需3~4根数据线和控制线即可扩展具有SPI接口的各种I/O器件。其典型的接口示意图如图1所示。
2.2 McBSP的功能与特点
TMS320C54XX系列DSP芯片都具有2~3个高速、全双工、多通道缓冲串行接口(McBSP),其方便的数据流控制可使其与大多数同步串行外围设备接口。McBSP是在标准串行接口的基础上对功能进行扩展的,除具有标准串口的功能特点外,其灵活性体现在如下几个方面:
(1)双缓冲区发送,三缓冲区接收,javascript:window.open(this.src);" style="cursor:pointer;"/>允许连续数据流传输;
(2)可与SPI、IOM-2、AC97等兼容设备直接接口;
(3)可编程帧同步、数据时钟极性,支持外部移位时钟或内部频率可编程移位时钟;
(4)拥有相互独立的数据发送和接收帧同步脉冲和时钟信号;
(5)多通道发送和接收,最多可达128个通道,速度可为100Mbit/s。
2.3 McBSP的SPI方式
TMS320C54XX系列DSP芯片的McBSP串口工作于时钟停止模式时与SPI协议兼容。当将McBSP配置为时钟停止模式时,发送器和接收器在内部得到同步,这时McBSP可作为SPI的主设备或从设备。发送时钟信号(BCLKX)对应于SPI协议中的串行时钟信号(SCK),发送帧同步信号对应于从设备使能信号(CS)。在这种方式下对接收时钟信号(BCLKR)和接收帧同步信号(BFSR)将不进行连接,因为它们在内部与BCLKX和BFSX相连接。McBSP工作于SPI模式的主机时,与其它SPI器件接口如图2所示。
3 MAX3111通用异步收发器
3.1 MAX3111功能特点
MAX3111通用异步收发器是MAXIM公司专门为小型微处理系统进行最优化设计的UART,它包括一个振荡器和一个可编程波特率发生器;具有一个可屏蔽的中断源;另具有一个8字节的接收FIFO(先入先出)缓冲器。它应用SPI/MICROWIRE接口技术直接与主控制器进行通信,线路简单、体积小,通信速率可达230kbit/s。另外其内部除具有UART之外,还包括两个RS-232电平转换器,这样无需再接入普通的MAX232进行电平转换,即可应用一个芯片实现微控器(具有SPI/MICROWIRE接口)与PC机或其它设备之间的异步数据传输。
3.2 对MAX3111的操作
MAX3111通过SPI接口与主设备进行