DSP芯片,也称数字信号处理器,是一种特殊结构的微处理器。DSP芯片内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速实现各种数字信号处理算法。因此,DSP在计算密集的实时控制领域得到了日益广泛的应用。TMS320F240是目前应用比较广泛的一款定点DSP,它具有20MIPS的指令执行速度,强大的内部事件管理器、I/O端口和其他外围设备。其中,串行外设接口(SPI)是一个高速同步串行输入/输出(I/O)端口,它允许一个具有可编程长度(1到8位)的串行位流,以可编程的位传送速率从设备移入或移出。SPI通常用于DSP控制器和外部设备或其它控制器间的通讯。典型的应用包括通过EEPROM、移位寄存器、显示驱动器和模数转换器(ADC)等设备进行外设扩展。
对于某一控制任务需要多个DSP协同完成时,DSP之间的数据交换将会很频繁,此时,我们就可以通过SPI口进行DSP之间的高速数据交换,实现相互间的功能扩展。这种模式的DSP之间的通讯,较通过串行通讯接口(SCI)进行通讯时,速率提高近一倍,而且它还可以通过控制寄存器的TALK位实现多个DSP之间的数据交换。当系统需要预先从EEPROM读出定值时,也可以通过TMS320F240的SPI口进行外设扩展。
2 DSP之间的扩展
在多个DSP构成的串行通讯网络中,DSP分为主模式DSP和从模式DSP。主模式DSP的数据在SPISIMO引脚上输出并从SPISOMI上锁存,从模式DSP的数据在SPISOMI引脚上输出并从SPISIMO上锁存。主模式SPI为整个网络提供串行时钟SPICLK,并通过写入SPIDAT寄存器的数据启动SPICLK信号从而启动数据传送,当预先设定的1到8位串行位流传送完毕后,SPICLK信号中止,传送结束。对于从控制器和主控制器,数据在SPICLK的一个沿从移位寄存器移出,在负跳沿锁存到移位寄存器。可以通过SPI的两个时钟模式位选择四种不同的时钟模式,使得两个控制器的发送和接收同时进行,由软件决定数据是有意义的还是哑数据。当清除从设备控制寄存器的TALK位时,数据发送被禁止并且输出线(SPISOMI)处于高阻态。这种情况下允许许多从设备在网络上连在一起,但每次只有一个从设备被允许讲。图1是SPI用于两个控制器(一个主控制器和一个从控制器)之间通讯的典型连接方式。
splk#0h,SPIPRI
;设置SPI中断为高优先级
splk#07h,SPICCR
;上升沿发送,有时延,字符长度为8
在程序初始化控制寄存器后,就可以按设定值进行DSP之间的发送和接收,下面是主模式和从模式的SPI子程序代码。