在载人航天、无人机、火控雷达等尖端技术领域的作动系统中,常用双控制器余度技术来提高系统的可靠性。两个控制器之间就需要一种高效可靠的数据通信以保证在同一时间执行相同的周期任务。利用SPI接口可以实现数据双向通信,TMS320F2812 DSP芯片内部集成了一个SPI模块,方案提出了一种基于SPI通信接口的两片DSP的双向通信和任务同步,两片DSP中固定一片作为SPI通信主机,另一片作为SPI通信从机[1],最后提出通信故障的解决办法。
1 DSP SPI外设接口模块和SPI通信原理
1.1 SPI外设接口模块
TMS320F2812 DSP芯片内部集成了一个SPI模块,其数据传输速率和字符长度是可编程的,最高传输速率可达10 Mb/s ,支持主/从模式通信[2]。SPI外设模块和DSP CPU间的接口如图1所示,包括4个外部引脚,采用低速外设时钟LSPCLK作为时钟源,具有两个独立的外设中断请求信号(SPIINT/RXINT和TXINT),提供了12个寄存器实现SPI模块的配置和控制。
SPI之间的通信主要有以下4个外部引脚:
SPISOMI:对于主设备,该引脚为数据输入;对于从设备,该引脚为数据输出;
SPISIMO:对于主设备,该引脚为数据输出;对于从设备,该引脚为数据输入;
SPISTE:主设备向从设备发送的使能引脚;
SPICLK:SPI接口的串行时钟引脚,由主设备向从设备提供同步时钟。
1.2 SPI通信原理
SPI接口可配置为两种模式,分别为主控制模式和从控制模式。图2给出了两个控制器(主控制器和从控制器)之间采用SPI接口的连接关系。主控制器通过发出SPICLK信号来启动数据传输,主从控制器能同时发送和接收数据。