TMS320F240型DSP的SPI口的扩展

发布时间:2010-10-13 11:47    发布者:techshare
关键词: dsp , spi , TMS320F240 , 扩展
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控制装置有着重要的意义。
本文地址:https://www.eechina.com/thread-32028-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表