CPLD的DSP多SPI端口通信设计

发布者:创新思绪最新更新时间:2011-05-30 关键字:SPI  通信 手机看文章 扫描二维码
随时随地手机看文章
    引 言

  目前在电气自动化控制装置中,广泛采用各种通信手段以完成上层与底层控制器、底层控制器以及控制芯片之问的信息传递,并实现相应的控制功能;各种通信功能的设计与实现已成为自动化装置设计的重要组成部分。本文以一种超声波电机运动控制装置为应用背景,讨论了基于CPLD的DSP控制芯片多SPI端口通信技术。

  串行同步外设端口(SPI)通常也称为同步外设端口,具有信号线少、协议简单、传输速度快的特点,大量用在微控制器与外围芯片的通信中。目前SPI通信方式已被普遍接受,带有SPI端口的芯片越来越多,如Flash、RAM、A/D转换、LED显示、控制专用DSP芯片等。

  本文介绍一种采用运动控制专用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时序要求,否则数据传输将出现错误。

SPI端口的通信网络结构框图

  2 基于CPLD的串口SPI设计

  2.1 移位寄存器设计

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

SPI基于CPLD设计示意图

  实验中为保证时序正确,测出了使能信号和计数器进位脉冲的输出时序,如图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所示。

 

数据的选址和锁存在CPLD中的设计框图

  2.3 DSP与LTC6903的接口配置

  由于LTC6903芯片本身具有SPI接口,需要在DSP的程序中设置相应的SPI寄存器。LTC6903采用上升沿接收,且接收时高位在前,所以需要DSP设置为下降沿传输,传输时高位在前。在传输的过程中,在脉冲信号的下降沿数据发生变化,传输数据;在脉冲信号的上升沿数据稳定,便于LTC6903锁存数据,传输时序如图6所示。从图中可以看出,所要传输的数据是十六进制数019A,下降沿数据发生变化,上升沿数据稳定,传输16位数据,有16个脉冲。实验结果表明,DSP配置是与LTC6903的SPI接口工作时序相匹配的。

SPI的数据和脉冲时序图

 

 [page]

3 DSP中SPI的开发过程

  SPI端口数据传输的特点是:主设备的时钟信号出现与否决定数据传输的开始,一旦检测到时钟信号即开始传输,时钟信号无效后传输结束。这期间,从设备使能时钟信号的起停状态很重要。DSP56F801的SPI端口的时钟信号起停状态如表1所列。在设计中设置的SPI控制寄存器的CPOL和CPLA位是“11”。SCLK空闲时为高电平,传输中数据变化发生在下降沿,稳定在上升沿。从图2可看出实现了与CPLD中的移位锁存电路的匹配,传输正确。

SCLK时钟的起停状态

  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°。该实验结果表明,参数传输正确,波形输出良好。

信号发生器A相输出信号的实测波形

A相输出信号1和B相输出信号l的实测波形

  结 语

  SPI通信方式具有硬件连接简单、使用方便等优点,应用广泛。采取硬件和软件相结合的措施,可以确保SPI通信中数据流的同步,实现可靠通信。本文给出了DSP多SPI端口通信的设计与实现过程,讨论了其中的关键技术问题。SPI多端口通信方法基于CPLD实现,易移植,易于实现功能扩展,可广泛应用于各种采用SPI通信方式的自动化装置。

关键字:SPI  通信 引用地址:CPLD的DSP多SPI端口通信设计

上一篇:DSP 应用扩展至重型设备
下一篇:DSP和FPGA在图像传输系统中的应用和实现

推荐阅读最新更新时间:2024-05-02 21:25

用于无线通信的CDMA/FM下变频混频器RF2456
1 概述     在便携式通信设备(如蜂窝电话和数字无绳电话)中,往往需要各类混频器件频率变换。如图1所示的CDMA移动通信射频接收模块便包括了高频混频器。混频器是具有混频作用的非线性器件,它利用器件的非线性特性将不同频率的输入射频信号(RF)与本振信号(LO)进行叠加,得到它们的和频与差频以及其它谐波的和频与差频信号,然后由检波器取出所需要的频率并输出(IF)。它是移动通信电路中的一个重要部件,可完成频率变化,因而被广用于各种通信设备中。本文介绍了专为蜂窝电话、FM、PSC、GPS、CDMA移动通讯系统的前端应用而设计的下变频混频器RF2456电路的特点、管脚排列、电气特性和应用线路。RF2456电路的中频输出包括
[网络通信]
6日通信微博每日报:宽带不宽在于连接算法差异
编者按:微博时下已经成为最流行的通讯工具之一,成为我们打开电脑、拿出手机后的必备之事,在这个“今天的新闻就是明天的历史”的时代,我们跟随时代的大潮流,去微博里“探秘”。 作为通信人每天必上的网站,飞象网会在每天的第一时间为您挑选出微博里最受关注的行业话题,如果,您也和我们一样关心这一领域,那么,请加入我们,在我们的论坛里分享您的发现。 1,中国联通:“宽带不宽”在于连接速度算法差异 工信部专家陈金桥说,“宽带不宽”在于宽带连接速度算法有差异:一种是小b,一个是大B,二者是1比8的关系。运营商提的兆是以小b为单位,在用户使用中,每秒传递速度要除8,所以下载效率在280K到300K之间。影响网络速度的因素,还有
[网络通信]
6日<font color='red'>通信</font>微博每日报:宽带不宽在于连接算法差异
STM32F7使用SPI发送完成和接收中断
虽然在平常的使用中,spi使用轮询等待发送完成或者接收完成就行了。 但是在对时间有严格要求的设计中,假设我们需要发送完成后立马做xx事情,此时如果有低优先级的信号需要处理,我们的轮询方式就得不到及时的响应; 或者说比如需要定时从spi设备中采集数据,定时器中断来了我们就要马上调用接收函数,接收完成马上进行其他计算,同样此时应该保证数据的优先级。 此时就需要用到发送完成和接收中断了。 前面我们已经实现了SPI轮询的发送和接收,在前面的基础上进行修改。 接缓冲区满中断 新增发送和接收的回调函数,并在初始化的时候配置,使能SPI接收中断: SPI_HandleTypeDef SPI3_Handler; //SPI2句柄
[单片机]
STM32F7使用<font color='red'>SPI</font>发送完成和接收中断
FPGA实现CAN总线通信节点设计
  在项目的特殊环境要求下, CAN总线通信要求使用FPGA作为系统中的主控制器, 较之传统设计使用的单片机, FPGA能够在速度和体积上有更好的适应性。FPGA 一方面减少了电路板的复杂程度, 缩短了实现周期; 另一方面, 其丰富的资源、超高的性能和灵活的可编程性, 提高了整个设备的可靠性, 大大增强了电路板设计的灵活性和可扩展性。文中通过设计FPGA 的接口电路, 并利用Verilog语言来编程实现CAN节点之间的通信功能。   1 CAN 接口硬件设计   1.1 CAN 节点的系统构成   一般来说, 每个CAN 模块能够被分成3 个不同的功能块,其结构如图1所示。CAN总线收发器提供CAN协议控制器与物理总线
[嵌入式]
利用EPP接口协议实现高速数据通信
前言 单片机系统中常常需要具备与PC机通信的功能 , 便于将单片机中的数据传送到PC机中用于统计分析处理;有时又需要将PC机中的数据装入单片机系统中,对单片机程序进行验证和调试。目前常用的通信方式是串行通信,但传输速率太低,以9600bps计算,传输1MB至少需要10min(分钟)以上。并行通信克服了串行通信传输速率低的缺点。标准并行口SPP(Standard Parallel Port)方式实现了由PC机向外设的单向传输,但实现PC机接收外设发送的数据则非常麻烦;而增强型并行口EPP(Enhanced Parallel Port)协议却很好地解决了这一问题,能够实现稳定的高速数据通信。 一、EPP接口协议介绍 E
[单片机]
利用EPP接口协议实现高速数据<font color='red'>通信</font>
C51单片机与PC串口通信的单片机部分程序
注意波特率是9600 功能:电脑通过串口给单片机发一个字节,单片机收到后又给电脑发回去 #include reg52.h #define uchar unsigned char #define uint unsigned int uint temp; bit flag; void init_ser1(); main() { init_ser1(); while(1) { if(RI==1) { P1=SBUF; RI=0; } if(flag==1) { ES=0;//暂时关闭接收 flag=0; SBUF=temp; while(!TI);//等待发送完毕 TI=0; ES=
[单片机]
适用于可见光通信的LED器件
带宽 研究发光二极管(LED)器件调制特性以及在高速调制状态下的发光特性是提升新型可见光通信系统性能的关键问题之一,LED器件调制特性的提升可以显著拓展可见光通信系统的应用范围。基于LED器件的调频特性,通过分析发光器件和封装的结构及其他关键光电性能,提出建议:通过降低RC时间以及载流子自发辐射寿命,有效改善LED器件的响应速率,提高LED的调制带宽。 1 LED器件的调制带宽及其测试 带宽一般指信号所占据的频带宽度。当描述信道时,带宽指能够有效通过该信道信号的最大频带宽度。发光二极管(LED)的调制带宽则是器件在加载调制信号时,能承载信号最大的频带宽度,一般定义为LED输出的交流光功率下降到某一低频参考频率值得一半时(如-
[电源管理]
适用于可见光<font color='red'>通信</font>的LED器件
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved