MCU与DSP的SPI通信设计
引言
现今的工控系统中,为了提高系统的实时性和适用性,一般采用DSP来完成核心算法与控制,而使用MCU来实现人机对话,以实现实时控制功能。这样,DSP和MCU需要一种高效的数据总线来完成它们之间的大量数据传送。SPI总线由于占用的接口线少,通信效率高,并且大部分处理器芯片都支持,因而是一种理想的设计方案。
针对交流伺服系统实际使用的要求,采用TI公司的高性能DSP控制器TMS320LF2407A(简称“2407A”)作为控制核心;选用TI公司生产的MSP430系列单片机中的MSP430F149作为人机界面的控制芯片,来实现按键和数据采集以及显示的功能;采用SPI串口通信实现单片机与DSP之间的数据传输。
1 系统硬件的构成
1.1 MSP430
MSP430系列单片机是TI公司近几年开发的新一代单片机。该单片机在设计上打破常规采用了全新的概念,其突出的优点是低电源电压、超低功耗、多种功能。由于其功能远远超过其他系列单片机的功能,因而又称为“混合型单片机”。MSP430具有非常高的集成度,单片集成了多通道的12位A/D转换、片内精密比较器、多个具有PWM功能的定时器、片内USART、看门狗定时器、片内数控振荡器、大量的I/O端口以及大容量的片内存储器。同时,MSP430F149是Flash存储器型单片机,具有良好的仿真开发技术,设置有JTAG仿真接口和高级语言编译器。在系统支持软件下,在线实现对目标系统的硬件调试及软件开发,包括汇编语言、C语言、连接及动态调试,具有单步、多断点和跟踪,并且开放全部存储器、寄存器,可以方便、可靠地对系统进行软硬件开发[12]。
基于以上特点,该系列单片机在便携式仪表、智能传感器、实用检测仪器、电机控制、家庭自动化等领域的应用较为普遍。
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通信设备在硬件连接上只需要将主机的发送与从机的接收相连,将主机的接收与从机的发送相连,将主机产生的时钟信号输出至从机的时钟引脚上。单片机与外设的硬件连接如图1所示。
图1 MSP430F149与DSP的接口连接电路
单片机MSP430F149作为串行通信的主机, DSP 2407A则作为从机(slave)。其中,SPICLK为SPI时钟引脚, SPISIMO为SPI从动输入/主动输出,SPISOMI为从动输出/主动输入,SPISTE为从动发送使能。
从图1可以看出,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和MCU两者完美结合(08-10)
- 基于MCU+DSP的运动控制硬件平台设计(10-01)
- 微控制器省电管理方法(05-04)
- 利用低成本的MCU的UART驱动智能卡(05-04)
- DSP结构特点和运算性能(07-19)
- 基于DSP+MCU的列车滚动轴承故障诊断系统设计与应用(10-08)