当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]TMS320F240型DSP的SPI口的扩展

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子程序代码。

[!--empirenews.page--]


    为了节省中断资源,SPI一般采用查询方式进行数据收发。
3 扩展EEPROM
  在开发DSP系统时,某些情况下会读取或者存储一些定值,这时我们就需要通过SPI接口扩展EEPROM。具有SPI接口的串行EEPROM均可被TMS320F240直接逻辑扩展,方便易行。

  X5043是Xicor公司的最高时钟速率为3.3MHz的4Kbits串行EEPROM,它与TMS320F240型DSP的连接如图2所示。
    其软件设置如下:
  设置各控制寄存器:

[!--empirenews.page--]

  TMS320F240的SPI接口有可选择的四种不同的时钟模式,如何选择时钟模式是它与各种扩展SPI接口器件实现时钟同步的关键。X5043的数据在时钟下降沿从SO引脚上输出并在时钟上升沿从SI引脚上锁存。读操作时,在其从SI引脚输入的最低位地址所对应的时钟下降沿,其SO引脚开始输出数据。因此,作为主器件的DSP就选择‘下降沿、无时延’的时钟模式。在这种模式下,无操作时钟时,DSP的SPICLK引脚位高,当该引脚由高变低时,启动发送。
  写子程序如下:

[!--empirenews.page--]


  由于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控制装置有着重要的意义。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

当使用导线连接外部设备或芯片时,导线不可过长,一般控制在 20CM 以内,IIC、SPI、UART 等数字接口数据线驱动能力有限,过长的导线会导致通讯波形迟缓。当导线确实无法缩短时,可通过降低通讯速率的方法来解决、缓解通...

关键字: 可编程USB UART I2C SMBusS SPI

芯片选择下拉框内列出的每一个备选芯片的驱动文件和数据手册位于S2STool 工具文件夹中的chips 文件夹内,每一个芯片需要 1 个驱动文件和 1 个数据手册文件,用户可自行打开编辑,或者创建新的芯片驱动文件。

关键字: 可编程USB UART I2C SMBusS SPI

S2STool 是为 S2S 固件开发的测试工具,运行于 Windows 平台,内置串口调试助手和 S2S 参数配置工具,支持动态解析自定义的芯片驱动,用户可自行编写、修改、增加任何芯片的驱动程序, 方便对芯片进行测试和...

关键字: 可编程USB UART I2C SMBusS SPI

摘要:主要介绍了应用DSP的电能质量检测系统的硬件电路及软件开发工具,对采集来的某电铁电流信号进行了电能质量检测,并开展了实际实验尝试。实验结果显示,实际信号含有大量谐波,但通过应用DSP的电能质量检测系统成功检测到了它...

关键字: 电能质量检测 Matlab仿真 DSP

随着生活水平的提高,大家都想从生活压力中释放出来,越来越多的人向往户外运动、露营等,在大自然的拥抱中释放压力,解放自我,从而成为户外旅行火热的原因之一。因此,很多音箱厂商都开始推出针对户外的户外蓝牙音箱。但是市面上的蓝牙...

关键字: PD快充 I2S DSP IC

DS1302 是实时时钟芯片,SPI 接口,可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302 内部有一个 31×8 的用于临时性存放数据的 RAM 寄存器。

关键字: 可编程USB UART I2C SMBusS SPI

GD25Qxx 是四线SPI 接口的 FLASH 芯片,最大容量可达 16Mbytes。板上集成有 GD25Q64 芯片, 每页 256 字节,每扇区 16 页(4k 字节),每块区 256 页(64k),写入前必须先擦...

关键字: 可编程USB UART I2C SMBusS SPI CAN USB2S

VM501/511振弦采集模块 是稳控科技生产的振弦传感器测量模块,具有IIC 接口和 UART 接口。IIC 地址可通过UART 任意设置,假设其地址为 0xB0。

关键字: 可编程USB UART I2C SMBusS SPI

SHT3x-DIS 是 IIC 接口的温度、湿度传感器芯片,可工作于单次测量或连续自动测量模式。USB2S 已有 1 片 SHT31-DIS 芯片,芯片地址为 0x88。 SHT3X-DIS 的输出温度和湿度均为 3...

关键字: 可编程USB UART I2C SMBusS SPI

驱动程序安装后,计算机通过 COMx 与 MCU 进行通讯,当 USB2S 的 UART 透明传输功能为开启状态时(默认),MCU 可将 UART1 与UART2 的双向数据进行透明转发,即:实现了计算机的COMx 端口...

关键字: 可编程USB UART I2C SMBusS SPI

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭