0 卖盘信息
BOM询价
您现在的位置: 首页 > 技术方案 >工业控制 > 基于CPLD+DSP芯片DSP56F801+可编程振荡器LTC6903的DSP多SPI端口通信设计方案

基于CPLD+DSP芯片DSP56F801+可编程振荡器LTC6903的DSP多SPI端口通信设计方案

来源: elecfans
2021-09-16
类别:工业控制
eye 13
文章创建人 拍明

原标题:基于CPLD的DSP多SPI端口通信设计方案

  本文介绍一种采用运动控制专用DSP芯片DSP56F801设计的超声波电机运动控制装置。由于该超声波电机需要采用两相四路对称PWM信号来实现驱动控制,而DSP芯片无法直接产生所需PWM信号,采用软件方法又会占用大量的DSP计算时间,于是设计了基于可编程逻辑器件(CPLD)的对称PWM信号发生器。该信号发生器在DSP的控制下,可以实现输出两相PWM控制信号的占空比及相位差调节;同时采用具有SPI接口的可编程振荡器LTC6903,实现在DSP控制下的PWM控制信号频率调节。由此可见,为了实现DSP对PWM控制信号占空比、相位差及频率的控制,需要采用适当的通信方式实现DSP与CPLD及LTC6903之间的控制信息传递。DSP56F801芯片具有一个SPI通信端口。本文在分析SPI数据传输时序关系的基础上,设计并实现了基于CPLD的多SPI接口通信。

  1 工作原理

  SPI是一个同步协议接口,所有的传输都参照一个共同的时钟。在同一个SPI端口可以实现一个主机芯片与多个从机芯片的相连,这时主机通过触发从设备的片选输入引脚来选择从设备,没有被选中的从设备将不参与SPI传输。SPI主使用4个信号:主机输出/从机输入(MOSI)、主机输入/从机输出(MISO)、串行时钟信号SCLK和外设芯片选择信号(SS)。主机和外设都包含一个串行移位寄存器,主机通过向它的SPI串行移位寄存器写入一个字节来发起一次传输。寄存器是通过MOSI引脚将字节传送给从设备,从设备也将自己移位寄存器中的内容通过MISO信号线返回给主机。这样,两个移位寄存器中的内容就被交换了。外设的写操作和读操作是同步完成的,因此SPI成为一个很有效的串行通信协议。SPI端口的通信网络结构框图如图1所示。为了使信号发生器输出可调频、调压和调相输出的两相四路PWM波,需要DSP向CPLD电路输出参数。这4个控制参数的传递是在小型的通信网络中实现的。在该网络中,DSP的SPI只是进行数据输出端口的写操作,即输出电压控制字、相位控制字和频率控制字。数据流程:主机DSP向CPLD传输数据,在传输数据时,数据在MOSI引脚上输出,同时数据在时钟信号的作用下实现同步移位输出。由于不需要从机向主机回送任何数据,主机在数据传输结束之后,结束这次传送。由于SPI端口工作时没有应答信号,并且数据在发送时无需校验位,所以要求主、从器件的数据发送与接收必须完全符合设定的SPI时序要求,否则数据传输将出现错误。

  

image.png


  2 基于CPLD的串口SPI设计

  2.1 移位寄存器设计

  本设计为一个12位的SPI串行接收端口。图1中移位寄存器是由12个D触发器和1个计数器组成的,实现移位接收和串并转换。在传输过程中,先使能移位寄存器和计数器,启动传输,同时计数器开始计数。当计数到16时,进位端输出一个脉冲宽度的高电平脉冲,进行数据锁存,其电路如图2所示。

  

image.png


  实验中为保证时序正确,测出了使能信号和计数器进位脉冲的输出时序,如图3、图4所示。其中十六进制计数器采用的是上升沿计数,在第16个上升沿到来时,跳变为高电平,保证数据的正确接收锁存。

  

image.png


  

image.png


责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

相关资讯