论文部分内容阅读
摘 要:目前,TI公司多数DSP芯片都没有UART口,本文在分析相关芯片基础上,提出两种不同的高速通用异步串口设计方案,讨论了其软、硬件实现方法。方案简单可行,有较高的工程利用价值。
关键词:DSP;通用异步串口;SPI;McBSP
前言
实现DSP异步串行通信的实现方法主要分为两类:一是利用DSP自身提供的外设,多通过软件实现异步数据传输格式。这种方法的硬件简单但增加了CPU的负担,所以适合对产品体积要求较高的场合;二是在并行总线上扩展异步串行通信芯片。它的优点是软件实现简单,传输能力强,实时性和可靠性比较高,缺点是总线上还需要扩展其他设备,增加系统的复杂度,所以适合通信数据量大,对系统体积要求不高的场合。
1 McBSP工作于SPI模式
1.1 SPI 接口协议
串行外围设备接口(SPI)是MOTORLA公司提出的一个同步串行外设接口,允许CPU与各种外围接口器件以串行方式进行通信、交换信息。它使用4条线:串行时钟线(SCK)、主机输入/从机输出线(MISO)、主机输出/从机输入线(MOSI)、低电平有效的使能信号线(CS)。这样,仅需3-4根数据线和控制线即可扩展具有SPI接口的各种I/O器件。
1.2 多通道缓冲串行接口McBSP
TMS320系列许多芯片都具有2-3个高速、全双工、多通道缓冲串行接口(McBSP), 其方便的数据流控制可使其与大多数同步串行外围设备接口。
每个McBSP接口有7个引脚,除数据收发引脚(DX、DR)外,还包括发送时钟(CLKX)、接收时钟(CLKR)、发送帧同步(FSX)、接收帧同步(FSR)和外部输入时钟(CLKS)等引脚,分别用于传输数据、时钟和帧同步信号,实现同步串行通信。
1.3 设计实现
利用DSP的McBSP同步串行接口,在扩展适当硬件的情况下,将同步數据变换为UART异步数据格式进行传输,这样可以充分利用DSP的片上资源,使硬件系统尽量简单化。DSP的McBSP串行接口工作于SPI模式时可直接与MAX3140进行连接,从而实现与RS-422设备进行异步数据传输。此时DSP作为SPI协议中的主设备,其接口电路如图1所示。
DSP的发送时钟信号(BCLKX)作为MAX3140的串行时钟输入,发送帧同步脉冲信号(BFSX)作为MAX3140的片选信号(CS)。BDX与DIN连接作为发送数据线,BDR与DOUT连接作为接收数据线。MAX3140的TX与DI连接,RX与DO连接, 以便利用其片内的转换器实现UART到RS-422电平的转换。MAX3140的中断信号(IRQ)与DSP的外部中断相连。
图1 DSP作SPI接口电路图
2 并行总线扩展UART
设计采用TI公司的异步通信器件XR16C550DIV实现TMS320串口通信。
2.1 TL16C550简介
TL16C550是TI公司的异步通信器件,时钟频率高达16MHz,通信时波特率最高可达1M,可编程设定波特率发生器,具有标准的异步通信位,可选择不同串行数据位,可设置奇偶校验或无校验模式以及停止位长度,独立控制发送、接收、线状态以及中断设置。
TL16C550内部共有11个寄存器。这些寄存器分别用于设置通信参数、访问线路及MODEN的状态、发送和接收数据以及中断管理等。这些寄存器的访问是通过3个地址线控制,LCR控制寄存器D7位DLA参与辅助定义。当DLAB=0时,RBR/THR和IER才能正常工作;而DLAB=1时,则控制DIL和DLM写入。
DSP通过地址线对TL16C550进行控制,数据直接通过数据线传输。DSP与TL16C550之间的数据传输简单,RBR/THR分别是接收和发送缓冲寄存器,它们之间的数据传输是通过DSP读写缓冲寄存器实现的。
2.2 TMS320VC异步串行通信设计实现
TMS320VC串行通信的硬件电路如图2所示。图中,TL16C550的CS0和CS1都接高电平,CS2接C5402的外部I/O空间,选择线IS。
TLC16C550的数据线D0-D7直接与DSP的D0-D7数据线相连,TL16C550的片内寄存器选择线接DSP的A0-A2。
由于RS-422电路差分电平与CMOS电平不同,因此,RS-422驱动器与CMOS电平连接时必须经过电平转换。这里,我们采用MAX490完成这一功能。
图2 TMS320VC异步串行通信硬件接口电路
结束语
针对现有的多数数字信号处理器(DSP)芯片不提供异步串行收发接口。本文提出了:
将DSP的多通道缓冲串行接口(McBSP)配置在SPI模式并配合MAX3140实现异步串行通信;在并行总线上扩展TL16C550芯片来实现异步串行通信两种方法。并详细介绍了两种方法设计实现。由这两种方案设计的UART在某工业控制计算机中已经使用。在不同的波特率下其数据传输正确,可靠,各元件工作正常。实践证明,这两种方案简单可靠,有较高的工程利用价值。
关键词:DSP;通用异步串口;SPI;McBSP
前言
实现DSP异步串行通信的实现方法主要分为两类:一是利用DSP自身提供的外设,多通过软件实现异步数据传输格式。这种方法的硬件简单但增加了CPU的负担,所以适合对产品体积要求较高的场合;二是在并行总线上扩展异步串行通信芯片。它的优点是软件实现简单,传输能力强,实时性和可靠性比较高,缺点是总线上还需要扩展其他设备,增加系统的复杂度,所以适合通信数据量大,对系统体积要求不高的场合。
1 McBSP工作于SPI模式
1.1 SPI 接口协议
串行外围设备接口(SPI)是MOTORLA公司提出的一个同步串行外设接口,允许CPU与各种外围接口器件以串行方式进行通信、交换信息。它使用4条线:串行时钟线(SCK)、主机输入/从机输出线(MISO)、主机输出/从机输入线(MOSI)、低电平有效的使能信号线(CS)。这样,仅需3-4根数据线和控制线即可扩展具有SPI接口的各种I/O器件。
1.2 多通道缓冲串行接口McBSP
TMS320系列许多芯片都具有2-3个高速、全双工、多通道缓冲串行接口(McBSP), 其方便的数据流控制可使其与大多数同步串行外围设备接口。
每个McBSP接口有7个引脚,除数据收发引脚(DX、DR)外,还包括发送时钟(CLKX)、接收时钟(CLKR)、发送帧同步(FSX)、接收帧同步(FSR)和外部输入时钟(CLKS)等引脚,分别用于传输数据、时钟和帧同步信号,实现同步串行通信。
1.3 设计实现
利用DSP的McBSP同步串行接口,在扩展适当硬件的情况下,将同步數据变换为UART异步数据格式进行传输,这样可以充分利用DSP的片上资源,使硬件系统尽量简单化。DSP的McBSP串行接口工作于SPI模式时可直接与MAX3140进行连接,从而实现与RS-422设备进行异步数据传输。此时DSP作为SPI协议中的主设备,其接口电路如图1所示。
DSP的发送时钟信号(BCLKX)作为MAX3140的串行时钟输入,发送帧同步脉冲信号(BFSX)作为MAX3140的片选信号(CS)。BDX与DIN连接作为发送数据线,BDR与DOUT连接作为接收数据线。MAX3140的TX与DI连接,RX与DO连接, 以便利用其片内的转换器实现UART到RS-422电平的转换。MAX3140的中断信号(IRQ)与DSP的外部中断相连。
图1 DSP作SPI接口电路图
2 并行总线扩展UART
设计采用TI公司的异步通信器件XR16C550DIV实现TMS320串口通信。
2.1 TL16C550简介
TL16C550是TI公司的异步通信器件,时钟频率高达16MHz,通信时波特率最高可达1M,可编程设定波特率发生器,具有标准的异步通信位,可选择不同串行数据位,可设置奇偶校验或无校验模式以及停止位长度,独立控制发送、接收、线状态以及中断设置。
TL16C550内部共有11个寄存器。这些寄存器分别用于设置通信参数、访问线路及MODEN的状态、发送和接收数据以及中断管理等。这些寄存器的访问是通过3个地址线控制,LCR控制寄存器D7位DLA参与辅助定义。当DLAB=0时,RBR/THR和IER才能正常工作;而DLAB=1时,则控制DIL和DLM写入。
DSP通过地址线对TL16C550进行控制,数据直接通过数据线传输。DSP与TL16C550之间的数据传输简单,RBR/THR分别是接收和发送缓冲寄存器,它们之间的数据传输是通过DSP读写缓冲寄存器实现的。
2.2 TMS320VC异步串行通信设计实现
TMS320VC串行通信的硬件电路如图2所示。图中,TL16C550的CS0和CS1都接高电平,CS2接C5402的外部I/O空间,选择线IS。
TLC16C550的数据线D0-D7直接与DSP的D0-D7数据线相连,TL16C550的片内寄存器选择线接DSP的A0-A2。
由于RS-422电路差分电平与CMOS电平不同,因此,RS-422驱动器与CMOS电平连接时必须经过电平转换。这里,我们采用MAX490完成这一功能。
图2 TMS320VC异步串行通信硬件接口电路
结束语
针对现有的多数数字信号处理器(DSP)芯片不提供异步串行收发接口。本文提出了:
将DSP的多通道缓冲串行接口(McBSP)配置在SPI模式并配合MAX3140实现异步串行通信;在并行总线上扩展TL16C550芯片来实现异步串行通信两种方法。并详细介绍了两种方法设计实现。由这两种方案设计的UART在某工业控制计算机中已经使用。在不同的波特率下其数据传输正确,可靠,各元件工作正常。实践证明,这两种方案简单可靠,有较高的工程利用价值。