CPLD的DSP多SPI端口通信设计图文精.docx
- 文档编号:5382669
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:11
- 大小:366.16KB
CPLD的DSP多SPI端口通信设计图文精.docx
《CPLD的DSP多SPI端口通信设计图文精.docx》由会员分享,可在线阅读,更多相关《CPLD的DSP多SPI端口通信设计图文精.docx(11页珍藏版)》请在冰豆网上搜索。
CPLD的DSP多SPI端口通信设计图文精
TECHNOLOGYREVIEW 技术纵横
paper@.cn(投稿专用
2009年第4期
Microcontrollers&EmbeddedSystems
25
CPLD
的
DSP
多
SPI
端口通信设计
■河南科技大学 姚春丽 史敬灼
摘 要多SPI端口通信是一种小型的高速同步通信网络。
这种网络结构简单、成本较低,广泛应用于控制器与
控制器、控制器与外围芯片之间的通信;但由于时序复杂,高频脉冲传输数据容易出错。
本文在对SPI端口信号时序分析的基础上,给出该网络基于CPLD的具体实现方法。
经实验验证,效果良好。
关键词
SPI 复杂可编程逻辑器件 通信 DSP
引 言
目前在电气自动化控制装置中,广泛采用各种通信手
段以完成上层与底层控制器、底层控制器以及控制芯片之间的信息传递,并实现相应的控制功能;,讨论了基于CPLD的DSPSPI端口通信技术。
串行同步外设端口(SPI通常也称为同步外设端口,具有信号线少、协议简单、传输速度快的特点,大量用在微控制器与外围芯片的通信中。
目前SPI通信方式已被普遍接受,带有SPI端口的芯片越来越多,如Flash、RAM、A/D转换、LED显示、控制专用DSP芯片等。
本文介绍一种采用运动控制专用DSP芯片DSP56F801设计的超声波电机运动控制装置。
由于该超声波电机需要采用两相四路对称PWM信号来实现驱动控制,而DSP芯片无法直接产生所需PWM信号,采用软件方法又会占用大量的DSP计算时间,于是设计了基于可编程逻辑器件(CPLD的对称PWM信号发生器。
该信号发生器在DSP的控制下,可以实现输出两相PWM控制信号的占空比及相位差调节;同时采用具有SPI接口的可编程振荡器LTC6903,实现在DSP控制下的PWM控制信号频率调节[1]。
由此可见,为了实现DSP对PWM控制信号占空比、相位差及频率的控制,需要采用适当的通信方式实现DSP与CPLD及LTC6903之间的控制信息传递。
DSP56F801芯片具有一个SPI通信端口。
本文在分析SPI数据传输时序关系的基础上,设计并实现了基于CPLD的多SPI接口通信。
1 工作原理
SPI是一个同步协议接口,所有的传输都参照一个共
同的时钟。
在同一个SPI端口可以实现一个主机芯片与多个从机芯片的相连,这时主机通过触发从设备的片选输,SPI使主机输出/从机输入(机输出(MISO、串行时钟信号K(SS。
主机和外设都包含一个串行移位寄存器,主机通过向它的SPI串行移位寄存器写入一个字节来发起一次传输。
寄存器是通过MOSI引脚将字节传送给从设备,从设备也将自己移位寄存器中的内容通过MISO信号线返回给主机。
这样,两个移位寄存器中的内容就被交换了。
外设的写操作和读操作是同步完成的,因此SPI成为一个很有效的串行通信协议[2]
。
图1 多SPI端口通信网络结构框图
SPI端口的通信网络结构框图如图1所示。
为了使信号发生器输出可调频、调压和调相输出的两相四路PWM波,需要DSP向CPLD电路输出参数。
这4个控制参数的传递是在小型的通信网络中实现的。
在该网络中,DSP的SPI只是进行数据输出端口的写操作,即输出电压控制字、相位控制字和频率控制字。
数据流程:
主机DSP向CPLD传输数据,在传输数据时,数据在MOSI引脚上输出,同时数据在时钟信号的作用下实现同步移位输出。
由于不需要从机向主机回送任何数据,主机在数据传输结束之后,结束这次传送。
由于SPI端口工作时没有应答信号,并且数据在发送时无需校验位,所以要求主、从器件的数据发送与接收必须完全符合设定的SPI时序要求,否则
技术纵横 TECHNOLOGYREV
IEW
26
2009年第4期
adv@.cn(广告专用
数据传输将出现错误。
2 基于CPLD的串口SPI设计
2.1 移位寄存器设计
本设计为一个12位的SPI串行接收端口。
图1中移
位寄存器是由12个D触发器和1个计数器组成的,实现移位接收和串并转换。
在传输过程中,先使能移位寄存器和计数器,启动传输,同时计数器开始计数。
当计数到16时,进位端输出一个脉冲宽度的高电平脉冲,进行数据锁存,其电路如图2所示
。
图2 SPI基于CPLD设计示意图
实验中为保证时序正确,测出了使能信号和计数器进位脉冲的输出时序,如图3、图4所示。
其中十六进制计数器采用的是上升沿计数,在第16,为高电平,
图3 使能信号的时序图(高电平有效
图4 进位信号的输出时序图
2. ;当gate引脚上是,锁存器不工作,即当总线上的数据发生变化时,锁存器的输出不发生变化。
由于本设计需要多个参数传输,通过地址选择的方法把这3个数据从一条总线上区分出来,设置传输数据的低两位为地址选择位。
地址选择位经移位寄存器,串并转换,作为三输入与门的两个输入端,进行地址选择。
每次16位的数据移位结束,数据稳定时,在计数器高电平作用下,相应gate的引脚上输出高电平,数据锁存入相应的锁存器。
例如,可以设置低两位是“11”时,DSP送入PWM电路的是11位的调相信号;当低两位设置成“01”时,DSP送入PWM电路的是10位调节A相占空比的信号;当低两位设置成“10”时,DSP送入PWM电路的是10位调节B相占空比的信号。
由此可以在电路中设计一个三输入的与门,当16位数据传输完毕,即在相应gate的引脚上输出高电平时,数据存入对应的锁存器,如图5所示。
2.3DSP与LTC6903的接口配置
由于LTC6903芯片本身具有SPI接口,需要在DSP
的程序中设置相应的SPI寄存器。
LTC6903采用上升沿接收,且接收时高位在前,所以需要DSP设置为下降沿传输,传输时高位在前。
在传输的过程中,在脉冲信号的下降沿数据发生变化,传输数据;在脉冲信号的上升沿数据稳定,便于LTC6903锁存数据,传输时序如图6所示。
从图中可以看出,所要传输的数据是十六进制数019A,下降
沿数据发生变化,上升沿数据稳定,传输16位数据,有16
TECHNOLOGYREVIEW 技术纵横
paper@.cn(投稿专用
2009年第4期
Microcontrollers&EmbeddedSystems
27
图5 数据的选址和锁存在CPLD
中的设计框图
图6 SPI的数据和脉冲时序图
个脉冲。
实验结果表明,DSP配置是与LTC6903的SPI接口工作时序相匹配的。
3 DSP中SPI的开发过程
SPI端口数据传输的特点是:
主设备的时钟信号出现
与否决定数据传输的开始,一旦检测到时钟信号即开始传输,时钟信号无效后传输结束。
这期间,从设备使能时钟信号的起停状态很重要[2]。
DSP56F801的SPI端口的时钟信号起停状态如表1所列。
在设计中设置的SPI控制寄存器的CPOL和CPLA位是“11”。
SCLK空闲时为高电平,传输中数据变化发生在下降沿,稳定在上升沿。
从
表1 SCLK时钟的起停状态
CPOLCPLA时钟的起停状态和数据传输格式
11SCLK空闲时为高电平,传输中数据变化发生在下降沿,稳定在上升沿
10SCLK空闲时为高电平,传输中数据变化发生在上升沿,稳定在下降沿
01SCLK空闲时为低电平,传输中数据变化发生在上升沿,稳定在下降沿
SCLK空闲时为低电平,传输中数据变化发生在下降沿,稳定在上升沿
图2可看出实现了与CPLD中的移位锁存电路的匹配,传输正确。
SPI端口协议要求系统上电复位
后,从机先于主机开始工作。
如果从机在主机之后开始工作,就有可能丢掉部分时钟信号,使得从机并不是从数据的第一位开始接收,造成数据流的不同步。
可通过硬件延时或软件延时的方法,来确保从机先于主机工作[2]。
本设计采用软件延时的办法来实现数据流
的同步。
这个延时由两部分组成,一部分是DSP串行输出数据的时间延时,另
外一部分就是后续数字电路中的延时。
延时的具体计算过程如下:
数据传输时使用的时钟信号是对总线时钟的2分频,当DSP的主频是60MHz时,总线时钟频率是30
M,2,SCLK的周期是66.6(2。
另外通过测试得到23.6ns,锁存器的最大延
7.6ns,移位寄存器的最大延时是3.0ns。
由上述对
CPLD数字电路的延时和对SCLK周期的测试,就可以得
到这样一个结论:
设PWM电路的延时时间为t1、锁存器
的延时时间为t2、移位寄存器的延时时间为t3、SCLK的时钟周期是Tc,在SPI传输的过程中,整个电路的延时t可以这样计算:
t=t1+t2+(Tc+t316=
[23.6+7.6+(78.2+3.0]ns×16=
1330.4ns≈1.33μs
由于数字电路传输中存在这样的延时,所以在写DSP程序时,需要加入一定的延时。
此实验中加入的延时是2μs,可以实现可靠传输。
4 实验结果
本设计采用全数字结构,易于用CPLD实现。
以
EPM7256为目标芯片,设计并实现了正确的数据传输。
当DSP56F801输出的十六进制参数分别为频率字DB0E,相位字0403,A相的占空比字04CE,B相的占空比字
04CD时,波形输出如图7、图8所示。
图7给出了信号发
生器A相输出信号的实测波形,信号占空比调节为20%;图8给出了A相输出信号1和B相输出信号1的实测波形,两相信号相位差调节为常用的90°。
该实验结果表明,参数传输正确,波形输出良好。
技术纵横 TECHNOLOGYREV
IEW
28
2009年第4期
adv@.cn(广告专用
图7 占空比为20%
的一相两路对称输出波形图8 结 语
SPI通信方式具有硬件连接简单、使用方便等优点,
应用广泛。
采取硬件和软件相结合的措施,可以确保SPI通信中数据流的同步,实现可靠通信。
本文给出了DSP多SPI端口通信的设计与实现过程,讨论了其中的关键技术问题。
SPI多端口通信方法基于CPLD实现,易移植,易于实现功能扩展,可广泛应用于各种采用SPI通信方式的自动化装置。
参考文献
[1]史敬灼,姚春丽.应用于超声波电机驱动的对称PWM控制
信号发生器[J],电气应用,2008(13:
73~76.
[2]DSP56800162BitDigitalSignalProcessorFamilyManual,
2003.
[3]夏长亮,史婷娜.行波型超声波电机PWM驱动控制系统研
究[J].电力电子技术,2001(3.
[4]邵贝贝,龚光华,薛涛,等.MotorolaDSP型16位单片机原理
与实践[M].北京:
北京航空航天大学出版社,2003.
[5]范寿康,.DSP原理与技术开发[M].
研究方向为电力电子与电力传动;史敬灼(博士,主要从事运动控制与智能控制的研究。
(收稿日期:
2008212203
!
7 (2研发内容
ARM架构的MCU大致可以分为以下三个系列。
①Cortex2M:
面向MCU应用领域(价格约每片1美元左右,28~48引脚。
自2003年开始研发,2007年开始推出Cortex2M1、Cortex2M3内核的单片机。
目前Lumi2
nary公司和ST公司正在国内开始大力推广。
②ARM7:
目前ARM架构是应用量最大的MCU,
原则上可应用于不需要嵌入式Linux(不包括μCLinux和
WindowsCE的所有领域,包括一般的数码产品、仪器仪表(包括税控机、工业控制、网络通信。
③ARM9:
目前性能较高的MCU,如Freescale公司的MX27x、Samsung公司的S3C4410B。
常用于便携式多媒体产品、机顶盒、高清电视、类似iPhone的多媒体移动终端,以及教学实验仪、车载导航、多媒体终端。
我们的C3Core通用MCU也可以分为三个系列。
C3Core的前身是FreeScale公司的M3Core,它当时是以通用MCU的形式推向市场的,面向通用控制、手机、
PDA、GPS和汽车电子。
①以C210/C305为基础的面向8位MCU的低价格通用MCU,以控制处理功能为主,以与Cortex2M竞争。
可用于移动存储器、控制器和高档消费类(空调和冰箱、仪器仪表、计算机外设。
②以C310和C320为基础的应用广泛的通用MCU,可覆盖目前ARM7架构的MCU。
③以CK510/520为基础的高性能通用MCU,与
ARM9架构的MCU竞争(ARM9架构MCU的应用也刚
开始不久,以移动多媒体终端、机顶盒,高清电视为主。
(3市场推广
①开发研制通用、价格低廉的开发工具,提供各种开源的开发环境。
②与大学合作建立相关的教学实验室,开发研制面向教学的教学实验仪,编写教学与实验书籍,并争取列入教育部大学生电子设计比赛。
③与第三方SystemDesignHouse合作,研制各种面向应用的模块,包括各种应用的最基本的系统;配备相应的μC/OS、μCLinux等OS,以及C语言编程的环境及函数库。
编者注:
本文为期刊缩略版,全文见本刊网站www.
mesnet.com.cn。
(收稿日期:
2009201216
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPLD DSP SPI 端口 通信 设计 图文