TMS320F240型DSP的SPI口的扩展
以DSP之间的相互扩展和扩展串行EEPROM为例,讨论了TI公司的TMS320F240型DSP的串行外设接口(SPI)模块的功能扩展。
关键词:DSP,串行外设接口,功能扩展
1 引 言
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子程序代码。
为了节省中断资源,SPI一般采用查询方式进行数据收发。
3 扩展EEPROM
在开发DSP系统时,某些情况下会读取或者存储一些定值,这时我们就需要通过SPI接口扩展EEPROM。具有SPI接口的串行EEPROM均可被TMS320F240直接逻辑扩展,方便易行。
X5043是Xicor公司的最高时钟速率为3.3MHz的4Kbits串行EEPROM,它与TMS320F240型DSP的连接如图2所示。
其软件设置如下:
设置各控制寄存器:
TMS320F240的SPI接口有可选择的四种不同的时钟模式,如何选择时钟模式是它与各种扩展SPI接口器件实现时钟同步的关键。X5043的数据在时钟下降沿从SO引脚上输出并在时钟上升沿从SI引脚上锁存。读操作时,在其从SI引脚输入的最低位地址所对应的时钟下降沿,其SO引脚开始输出数据。因此,作为主器件的DSP就选择‘下降沿、无时延’的时钟模式。在这种模式下,无操作时钟时,DSP的SPICLK引脚位高,当该引脚由高变低时,启动发送。
写子程序如下:
由于X5043是一个半双工器件,故,在WRITE子程序中从SPIBUF中读出来的数据是无效的,同时,在READ子程序中写向SPIDAT的数据也是无效的,只起启动发送时钟的作用。这一点不同于SPI,SPI之间的发送和接收是全双工的,可以同时进行。
4 SPI扩展在功角测量系统中的应用
发电机功角是电力系统运行的关键状态量,是电力系统能否稳定运行的重要标志。功角测量系统就是将机端电压整型后的方波信号前沿,减去代替空载电势的转子位置脉冲信号前沿,以获得负载时的上述两种信号的相位差值,再用空载时两种信号的相位差减去负载时两种信号的相位差,即得发电机的功角值。该系统具有很强的现实意义,其原理图如图3所示。
上述系统中,空载相位差是定值,一旦装置安装完毕,其值不变。而在实际的电力系统中,转子的极对数比较多,这些空载相位差值就需要存在相应的EEPROM里,以便读取。所以,该系统就通过主芯片的SPI口进行串行EEPROM的扩展。在系统上电时,DSP将初始的相位差值从EEPROM导入内存,进行相应的计算后通过ISA总线将所得的功角值送入主控器。这里的EEPROM仍然采用的是X5043,其具体操作在上面第3节中已作过详细的说明。
5 结束语
本文介绍了TMS320F240型定点DSP的SPI接口的功能扩展,其一般方法同样适用于其它具有SPI接口的DSP。多个DSP通过SPI口的相互扩展可实现DSP之间的高速数据交换,通过SPI口扩展EEPROM可实现DSP对定值的存取。某些其它的串行设备,比如高精度的串行A/D,串行数字电位器等,也可通过类似方法进行扩展。通过这些扩展可以使DSP的功能变得更加强大,同时,深入了解这些扩展方法对于开发DSP控制装置有着重要的意义。
|