摘 要:基于嵌入式系统发展的需要,提出TMS320VC5402 DSP与AT89C51单片机通信的三种设计方案。利用TMS320VC5402的多通道缓冲串口MCBSP分别实现TMS320VC5402与AT89C51的SCI和SPI串行通信,以及通过TMS320VC5402的8位增强主机接口HPI一8实现TMS320VC5402与AT89C5l并行通信。就硬件接口电路和软件编程进行详细的阐述。 关键词:单片机 DSP MCBSP HPI
将DSP和单片机构成双CPU处理器平台,可以充分利用DSP对大容量数据和复杂算法的处理能力,以及单片机接口的控制能力。而DSP与单片机之间快速正确的通信是构建双CPU处理器的关键问题。下面就此问题分别设计串行SCI、SPI和并行HPI三种连接方式。
1 串行通信设计与实现 1 1 SCI串行通信设计 1.1.1 多通道缓冲串行口McBSP原理 TMS320VC5402(简称VC5402)提供了2个支持高速、全双工、带缓冲、多种数据格式等优点的多通道缓冲串行口McBSP。MCESP分为数据通路和控制通路。①数据通路负责完成数据的收发。CPU或DMAC能够向数据发送寄存器DXR写入数据,DXR中的数据通过发送移位寄存器XSR输出到DX引脚。DR引脚接收数据到接收移位寄存器RSR,再复制到接收缓冲寄存器RBR,最后复制到数据接收寄存器DRR。这两种数据多级缓冲方式使得数据搬移和片外数据通信能够同时进行。②控制通路负责内部时钟产生,帧同步信号产生,信号控制和多通道选择。另外.还具有向CPU发送中断信号和向DMAC发送同步事件的功能。MCBSP时钟和帧同步信号通过CLKR、CLKX、FXR、FSX引脚进行控制,接收器和发送器可以相互独立地选择外部时钟和帧同步信号,也可以选择由内部采样率发生器产生时钟和帧同步信号。帧同步脉冲有效表示传输的开始。
设置VC5402的McRSP输出时钟和帧同步信号由内部采样率发生器产生,内部数据时钟CLKG和帧同步信号FSG驱动发送时钟CLKX和帧同步FSX(CLKXM=l,FSXM=l,FSGM=1),输入时钟也由内部采样率发生器产生,内部数据时钟CLKG驱动接收时钟CLKR(CLKRM=1),同时由CPU时钟驱动采样率发生器(CLKSM=1)。考虑到AT89C51(简称C51)串口发送数据帧中第l位为起始位,因此可以利用该位驱动输入帧同步信号FSR,同时要置忽略帧同步信号标志为1。其中FSG帧同步脉冲宽度=(FWID+1)·CLKG;FSG帧同步脉冲周期=(FPER+1)·CLKG;采样率发生器分频系数(采样率=波特率)=FIN/(CLKGDV+1)。
1.1.3 波特率不一致的处理 VC5402初始化(以图1为例): STM#SRGRl,SPSAl STM#ooFEH,SPSDl;FSG帧同步脉冲宽度位为1个CLKG ;波特率为100 MHz/(0X(OFF)=392 156 b/s STM#SRGR2,SPSAl STM#3D00H,SPSDl;内部采样率发生器时钟由CPU驱动 C51初始化: MOV TMOD,#20H MOVTLl,#FFH MOVTHl,#FFH ;C51波特率=(2SMOD/32)*(fosc/12)[1/(256一初值)]一24 509 b/s MOV SCON,#50H ;置串口方式l,每一帧10位数据.允许接收 MOV PCON,#80H ;设置SMOD=1 VC5402波特率/C51波特率=(392 156/24 509)=16.000 49
1. 2 SPI串行通信设计 将C51置为主机,VC5402为从机。McBSP的时钟停止模式(CLKSTP=1X)兼容SPI模式,接收部分和发送部分内部同步。McBSP可以作为SPI的从机或主机。发送时钟BCLKX作为SPI协议的移位时钟SCK使用,发送帧同步信号BFSX作为从机使能信号nSS使用,接收时钟BCLKR和接收帧同步信号BFSR不使用。它们在内部分别与BCLKX和BFSX直接连接。BDX作为MISO,而BDR作为MOSI,发送和接收具有相同字长。
VC5402初始化程序(以图3为例): STM#SPCRll,SPSAl;设置时钟停止位进入MCBSP的SPI模式 STM#0X1000,SPSDl;时钟开始于上升沿(无延迟) STM#SPCRl2,SPSAl STM#0X0040,SPSDl;XINT由XRDY(即字尾)驱动 STM#PCRl,SPSAl STM#0X000C,SPSDl;对发送和接收时钟,同步帧进行设置 STM#RCRll.SPSAl STM#0X0000,SPSDl;接收数据l帧1字.1字8位 STM#XCRll,SPSAl STM#0X0000,SPSDl;;发送数据1帧1字.1字8位; |