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时序要求,否则数据传输将出现错误。
2 基于cpld的串口spi设计
2.1 移位寄存器设计
本设计为一个12位的spi串行接收端口。图1中移位寄存器是由12个d触发器和1个计数器组成的,实现移位接收和串并转换。在传输过程中,先使能移位寄存器和计数器,启动传输,同时计数器开始计数。当计数到16时,进位端输出一个脉冲宽度的高电平脉冲,进行数据锁存,其电路如图2所示。
实验中为保证时序正确,测出了使能信号和计数器进位脉冲的输出时序,如图3、图4所示。其中十六进制计数器采用的是上升沿计数,在第16个上升沿到来时,跳变为高电平,保证数据的正确接收锁存。
2.2 锁存器设计
锁存器的工作特点:当gate引脚上输入高电平信号时,锁存器工作开始锁存总线上的数据;当gate引脚上是低电平时,锁存器不工作,即当总线上的数据发生变化时,锁存器的输出不发生变化。由于本设计需要多个参数传输,通过地址选择的方法把这3个数据从一条总线上区分出来,设置传输数据的低两位为地址选择位。地址选择位经移位寄存器,串并转换,作为三输入与门的两个输入端,进行地址选择。每次16位的数据移位结束,数据稳定时,在计数器高电平作用下,相应gate的引脚上输出高电平,数据锁存入相应的锁存器。例如,可以设置低两位是“11”时,dsp送入pwm电路的是ll位的调相信号;当低两位设置成“01”时,dsp送入pwm电路的是10位调节a相占空比的信号;当低两位设置成“10”时,dsp送入pwm电路的是10位调节b相占空比的信号。由此可以在电路中设计一个三输人的与门,当16位数据传输完毕,即在相应gate的引脚上输出高电平时,数据存入对应的锁存器,如图5所示。
2.3 dsp与ltc6903的接口配置
由于ltc6903芯片本身具有spi接口,需要在dsp的程序中设置相应的spi寄存器。ltc6903采用上升沿接收,且接收时高位在前,所以需要dsp设置为下降沿传输,传输时高位在前。在传输的过程中,在脉冲信号的下降沿数据发生变化,传输数据;在脉冲信号的上升沿数据稳定,便于ltc6903锁存数据,传输时序如图6所示。从图中可以看出,所要传输的数据是十六进制数019a,下降沿数据发生变化,上升沿数据稳定,传输16位数据,有16个脉冲。实验结果表明,dsp配置是与ltc6903的spi接口工作时序相匹配的。
3 dsp中spi的开发过程
spi端口数据传输的特点是:主设备的时钟信号出现与否决定数据传输的开始,一旦检测到时钟信号即开始传输,时钟信号无效后传输结束。这期间,从设备使能时钟信号的起停状态很重要。dsp56f801的spi端口的时钟信号起停状态如表1所列。在设计中设置的spi控制寄存器的cpol和cpla位是“11”。sclk空闲时为高电平,传输中数据变化发生在下降沿,稳定在上升沿。从图2可看出实现了与cpld中的移位锁存电路的匹配,传输正确。
spi端口协议要求系统上电复位后,从机先于主机开始工作。如果从机在主机之后开始工作,就有可能丢掉部分时钟信号,使得从机并不是从数据的第一位开始接收,造成数据流的不同步。可通过硬件延时或软件延时的方法,来确保从机先于主机工作。本设计采用软件延时的办法来实现数据流的同步。这个延时由两部分组成,一部分是dsp串行输出数据的时间延时,另外一部分就是后续数字电路中的延时。延时的具体计算过程如下:数据传输时使用的时钟信号是对总线时钟的2分频,当dsp的主频是60 mhz时,总线时钟频率是30mhz,对它进行2分频,可以计算出sclk的周期是66.6ns(实际所测出的周期是78.2 ns)。另外通过测试得到pwm电路的延时最长时间是23.6 ns,锁存器的最大延时是7.6 ns,移位寄存器的最大延时是3.o ns。由上述对cpld数字电路的延时和对sclk周期的测试,就可以得到这样一个结论:设pwm电路的延时时间为t1、锁存器的延时时间为t2、移位寄存器的延时时间为t3、sclk的时钟周期是tc,在spi传输的过程中,整个电路的延时t可以这样计算:
由于数字电路传输中存在这样的延时,所以在写dsp程序时,需要加入一定的延时。此实验中加入的延时是2μs,可以实现可靠传输。
4 实验结果
本设计采用全数字结构,易于用cpld实现。以epm7256为目标芯片,设计并实现了正确的数据传输。当dsp56f801输出的十六进制参数分别为频率字dboe,相位字0403,a相的占空比字04ce,b相的占空比字04cd时,波形输出如图7、图8所示。图7给出了信号发生器a相输出信号的实测波形,信号占空比调节为20%;图8给出了a相输出信号1和b相输出信号l的实测波形,两相信号相位差调节为常用的90°。该实验结果表明,参数传输正确,波形输出良好。
结 语
spi通信方式具有硬件连接简单、使用方便等优点,应用广泛。采取硬件和软件相结合的措施,可以确保spi通信中数据流的同步,实现可靠通信。本文给出了dsp多spi端口通信的设计与实现过程,讨论了其中的关键技术问题。spi多端口通信方法基于cpld实现,易移植,易于实现功能扩展,可广泛应用于各种采用spi通信方式的自动化装置。

海外半导体资产成香饽饽:上市公司组团抢购 今年交易额超1400亿
中国机器人产业时冷时热 服务机器人爆发仍待时机
Microchip发布新一代相位噪声分析仪,产品型号为53100A
又一重大半导体交易,美国两大巨头再整合
真正首次揭秘“数字南网”建设行动方案
CPLD的DSP多SPI端口通信设计
关于人工智能手机有哪些套路
LED灯泡设计思路差异:外壳表面温度不同
怎么样选择修复仪器
小米10 5G详细规格曝光 采用90Hz AMOLED显示屏与4500mAh大电池
LTC3588-1可提供低电流稳压电压轨
电子负载CV工作模式的原理与应用、注意事项
汽车科技全解答和智能车发展阶段的详细资料概述
恩智浦5G接入边缘技术的简单介绍
如何赋能新基建时空智能,推进“5G+北斗”融合发展
环境空气质量传感器检测系统可直观反映空气污染情况
火花型点火系统转换为增强型顺序火花型6缸发动机点火系统的方法
BLE5.2为蓝牙带来了哪些变化?
触控面板产业“雷声大、雨点小”
到底谁才是LED照明的王者?石墨烯/OLED/电商/互动四大惊人力量