摘要:1.2TMS320LF2407A2407A是TI公司为满足工业控制应用,尤其是电机控制而设计的。把一个高性能的DSP核和许多外围设备集成到单片内。2407A的40MIPS的处理速度可以满足快速地处理大量数据和算法的需要。2407A具有丰富的外设模块:3K字的Flash程序存储器、1.5K字的数据/程序RAM、544字双口RAM(DARAM)和2K字的单口RAM(SARAM)、2个事件
1.2 TMS320LF2407A
2407A是TI公司为满足工业控制应用,尤其是电机控制而设计的。把一个高性能的 DSP核和许多外围设备集成到单片内。2407A的40 MIPS的处理速度可以满足快速地处理大量数据和算法的需要。
2407A具有丰富的外设模块: 3K字的Flash程序存储器、1.5K字的数据/程序RAM、544字双口RAM(DARAM)和2K字的单口RAM(SARAM)、2个事件管理器EVA和EVB、16通道输入的A/D转换器,具有看门狗定时器 模块(WDT)、串行通信接口(SCI)、16位的串行外设接口模块(SPI)、控制器局域网络(CAN)2.0B模块、基于锁相环的时钟发生器、高达40个可单独编程或复用的通用输入/输出引脚、5个外部中断。由此可 以看出,2407A确实有着很强的实时处理能力,不失为高性能伺服驱动控制的理想器件之一[3]。
1.3 硬件接口设计与SPI通信的实现
SPI通信设备在硬件连接上只需要将主机的发送与从机的接收相连,将主机的接收与从机的发送相连,将主机产生的时钟信号输出至从机的时钟引脚上。
单片机MSP430F149作为串行通信的主机, DSP 2407A则作为从机(slave)。其中,SPICLK为SPI时钟引脚, SPISIMO为SPI从动输入/主动输出,SPISOMI为从动输出/主动输入,SPISTE为从动发送使能。
SPI通过一根时钟引线将主机和从机同步,因此,它的串行数据交换不需要增加起始位、停止位等用于同步的格式位,直接将要传送的数据写入主机的SPI发送数据寄存器。这个写入过程自动启动主机的 发送过程,即在同步时钟SPICLK的节拍下把SPITXBUF的内容一位一位地移到引脚SPISIMO;对于从机,同样在SPICLK的节拍下将出现在引脚SPISIMO上的数据一位一位地移到从机的移位寄存器,当接收完 一个完整的数据块后,设置中断标志通知从机这个数据块已接收完毕,并同时将移位寄存器接收到的内容复制到从机的SPI接收数据寄存器SPIRXBUF.可以看出,用户编程只需在发送数据时写数据到SPI 发送数据寄存器,在接收数据时读SPI接收数据寄存器,其余的工作都由SPI模块自动完成[4].
2 软件设计
MSP430F149和DSP都允许用户用C语言和汇编语言进行编程。系统中DSP对电机实现实时控制,对运行速度要求严格,所以程序采用汇编语言实现。MSP430实现按键显示、数据管理和指令传输等功能,对运 行速度要求不高,所以采用C语言实现。
软件设计的主要任务是:初始化相应的寄存器;单片机在相应的界面发送数据;DSP及时接收到达串口的数据,识别并保存数据。
2.1 通信协议的设置
两个设备之间要实现相互通信,首先必须规定用以传输数据的协议。一般来说,主机发送命令和配置信息给从机,而从机则向主机发送反馈信息。系统主要实现的是单片机向DSP发送数据信息,单片机首 先发送指令数据表示主机发送数据的过程开始。如果发送的是0,则标志着该过程的开始。为了避免误操作指令数据发送两次,DSP接收的两个数据都是0时进行相应的操作,否则重新传输指令数据。然后 把单片机需要传输的数据存放在一个数组里面依次传送,比如要传输3个数据,则定义数组a[0]和a[1]存放指令数据,a[2]到a[4]存放需要传送的数组。