摘要:主要论述了TMS320F240与MCS-51之间通信接口的软硬件实现,设计中采用SPI串行外设接口模块实现液晶显示。
关键词:TMS320F240 MCS-51 通信 串口
TI公司的TMS320F240器件是基于TMS320C2 型16位定点数字信号处理器(DSP)的新型DSP控制器。由于F240器件片内集成了544字双口RAM、双10位模数转换模块、串行通信接口以及提供死区功能和12路比较/脉冲宽度调制通道的事件管理器模块,并将存储器和外设集成到控制器内部,使得F240在诸多微机控制系统中得到了广泛的应用。
在F240芯片中,串口外设接口(SPI)模块肩负着与上位机进行通信的任务。由于它高效、可靠、简便、成本低、并遵循统一的标准,因而使用广泛。本文重点介绍TMS320FS240串口通信的结构和特点,并设计了基于TMS320F240与MCS-51串口通信的液晶显示系统。
通信方式
串行外设接口的特点与工作原理
为了使数字处理系统微型化,首先要设法减少芯片的引脚数。这样过去常用的并行总线接口方案由于需要较多的引脚线而不得不舍弃。SPI就是这样一种串行总线的外设接口,它只需3根引脚线就可以与外部设备相接。
SPI实际上是一种串行总线标准,与SCI串行异步通信有相似的地方也有不同之处。相同之处在于它们都是串行的信息交换,不同的是SCI是一种异步(准同步)方式,两台设备有各自的串行通信时钟,在相同的波特率和数据格式下达到同步,而SPI是一种真正的同步方式,两台设备在同一个时钟下工作。因此,SCI只需两根引脚线(发送与接收)而SPI需要3根引脚线(发送、接收与时钟)。由于SPI是同步方式工作,它的传输速率远远高于SCI。
采用SPI总线方式交换数据有主机、从机的概念。这里DSP 作为主机将数据送到从机MCS-51用于显示。因此,只需要两根引脚即可(SPISIMO、SPICLK),其中SPISIMO为发送数据口,SPICLK为串行外设接口时钟。硬件接线图如图1所示。
由于SPI通过一根时钟引线将主机和从机同步,因此它的串行数据交换不需要增加起始位、停止位等用于同步的格式位,直接将要传送的信息(1位到8位的数据)写入到主机的SPI发送数据寄存器SPIDAT。这个写入自动启动了主机的发送过程,即在同步时钟SPICLK的节拍下把SPIDAT的内容一位一位地移到引脚RXD,当SPIDAT的内容移位完毕,将置一个中断标志SPIINT FLAG,通知主机这个信息块已发送完毕。
对于从机,同样在同步时钟SPICLK的节拍下将出现在引脚RXD上的数据一位一位地移到从机的移位寄存器SBUF,当一个完整的信息块接受完成后,将置一个中断标志,通知从机这个信息块已接受完毕。
波特率设置
MCS-51单片机波特率设置
因SPI串行口只传输8位数据,所以MCS-51的串行接口设置为工作方式0,数据从RXD引脚上接收,一帧信息由8位数据组成,低位在前。波特率固定,为foso/12。同步移位脉冲从TXD引脚上输出。
TMS320F240的波特率设置
时钟SPICLK是时钟源模块产生的SYSCLK时钟经SPI波特率寄存器SPIBRR规定的分频系统分频后得到的。因此,SPI的波特率为:
SYSCLK是CPU时钟的2分频或4分频,而CPU时钟(CPUCLK)可以是外部时钟(CLKIN)的1、1.5、2、2.5、3、4、4.5、5、9倍,它由时钟控制寄存器CKCRO决定。
在这里,选用foso=8M,波特率就为:2/3M。
TMS320F240的外部时钟(CLKIN)选用16M的晶阵,CPUCLK直接使用外部频率,SYSCLK为CPU时钟的2分频,经计算SPIBRR为11。
软件实现
DSP采用查询方式发送数据,MCS-51采用中断方式接受数据。DSP程序流程见图2。MCM-51程序流程见图3。
结论
目前,采用SPI接口方式的A/D、I/O、RAM等芯片越来越多,传输速率高达几十兆。正确认识和掌握SPI串口通讯的技术特点,对于设计高性能DSP应用系统是很重要的。