您现在的位置:首页 > 技术资料 | ![]() |
PCI多轴运动控制卡的VHDL-CPLD接口设计标题
PCI多轴运动控制卡的VHDL-CPLD接口设计标题 | ||
上海豪威IC设计有限公司 怯肇乾 | ||
PCI多轴运动控制卡是精密伺服驱动控制系统中的主要部件,传统设计多采用PCI桥件和运动控制器件构建,这样虽然开发周期短,但成本却非常高。用"CPLD做PCI接口 + TMS320C2400系列DSP做运动控制器?quot;的设计,构成的系统简洁可靠,成本低廉,开发周期短,是一种行之有效的板卡开发途径。根据PCI总线的传输时序和运动控制器件的读写时序要求,以Altera的CPLD器件和开发工具,使用VHDL语言,进行状态机构造,很快地实现了多轴运动控制卡的PCI接口设计,并进行了功能模拟和定时分析,很好地达到了欲期目的。在系统编程、下载器件、测试,工作效果很好。以下,介绍整个设计思想,供广大同行参考。
用CPLD做多轴运动控制卡的PCI接口,所构成的板卡系统用图1描述。 图1 PCI-CPLD接口系统模型图(略) 这里,CPLD/FPGA完成PCI主/从传输时序的逻辑构成与变换,并直接对专用运动控制器件或TMS320C2400系列DSP进行适当操作。整个系统的设计中,CPLD使用PCI总线的33MHz时钟,以简化PCI传输的逻辑设计。
运动控制器件采用日本NOVA的MCX314专用器件。MCX314是一款能够同时控制4个伺服马达或步进马达的运动控制芯片,它以脉冲串形式输出,能对伺服马达和步进马达进行位置控制、插补驱动、速度控制等实时监控。MCX314单独使用16MHz晶振时钟。通过MCX314进行运动监控,主要是下达命令,进行运动状态参数的读取或运动参数的发送。在MCX314中,这些命令和参数对应不同地址的寄存器,每个寄存器字宽16位,这些寄存器共用16个地址。对MCX314进行写操作后,最大四个CLK周期内不能再连续读写操作,以使MCX314有足够时间处理数据,外部表现为MCX314的BUSY#线在WR#写信号的上升沿后最大二个SCLK周期期间保持低激活,SCLK芷谑荂LK的两倍。下面图2~4是MCX314的读写时序图。表1是图2~4中标示的时间要求范围。 进行PCI总线传输,至少需要40条信号接口,包括数据/地址线、接口控制线、仲裁、总线命令及系统线等。每次数据传输由一个地址脉冲和一个或几个数据脉冲组成。一次传输一个地址和一个数据称为常规传输;一次传输一个地址和一批数据称为猝发传输。根据MCX314的使用特点和读写时序,进行PCI传输,最适宜采用常规传输。PCI常规传输常用的控制信号是:帧同步信号FRAME#、主设备准备好信号IRDY#、从设备准备好信号TRDY#、从设备选通信号DEVSEL#、命令/字节信号C/BE#等。下面图5~6是PCI常规传输的典型时序图。 根据MCX314器件和PCI总线传输的特点,采用16位数据总线使MCX314与PCI低端地址/数据线直接相连,可以有效地简化设计和硬件结构。 ⑵进行读写操作,PCI接口逻辑要向PCI总线产生适当的TRDY#、DEVSEL#信号,只有在IRDY#、TRDY#、DEVSEL#都为低状态时,PCI操作才能完成;同时,PCI接口逻辑还需要向MCX314产生适当的片选CS#、读RD#或写WR#信号。 ⑶对MCX314的读操作,RD#信号的低有效时间要大于tRD的最大值29ns。 ⑷对MCX314的写操作,要保证WR#信号的低有效脉宽tww不小于50ns,输入数据的设定时间tDW不小于30ns,片选CS#与地址保持时间要不小于5ns。 ⑸对MCX314写操作后,在逻辑设计上要保证至少8个PCI时钟周期(33MHz)内主机不再对它进行读写操作,以使MCX314有足够时间处理数据。即要插入适当时间的TRDY#信号,以使主机能够产生等待,不操作MCX314器件。 ⑹片选CS#、读RD#、写WR#有效期间,地址信号要始终有效并确定为某一值。
状态机的构造 根据上述时序图的分析,完成此特定PCI总线传输需要设计七个状态:状态S0标识PCI总线空闲时期;状态S1标识地址与总线命令识别阶段;状态S2、S4、S6、S7完成写操作及其写后的适当等待周期;状态S3、S5完成读操作。 状态功能的确定 设计各状态执行以下功能: 状态变化的确定 根据对PCI总线传输时序的分析,影响设想的各个状态相互转化的因素是:帧同步信号FRAME#、主设备准备好信号IRDY#、对从设备的读识别信号read_map、写识别信号write_map及其等待状态计数器acc值。这里,用read_map、write_map标识状态S1产生的中间识别信号。 需要注意,在状态S1要锁存收到的地址,在状态S6变化时要适时进行时钟周期计数。 状态图的规划 综上所述,设计规划状态图如图7所示。 VHDL语言的描述 设计使用四个进程和几个并行语句,实现整个CPLD的功能:一个进程完成从设备及其读写操作的识别;一个进程完成操作地址的获取;一个进程完成写操作后等待态的插入;一个进程完成状态机的相互变化;几个并行语句完成操作信号的产生。需要注意,各状态里完成的功能要用并行语句实现,不能再用进程,否则就会引起逻辑综合的麻烦,甚至根本不能综合。整个程序如下: LIBRARY ieee;
设计CPLD,使用软件MaxPlusII进行逻辑综合、功能模拟与定时分析,选用Altera的MAX7000系列的在系统可编程器件EPM7032STC44-10。下面是读写访问的仿真波形图: 图中,时钟周期为30ns。读操作,RD#信号的低有效时间为60ns,大于tRD的最大值29ns;读信号无效后地址稳定时间为15ns,在此时间内结束读操作。写操作,WR#信号的低有效脉宽60ns,大于要求值50ns,输入数据设定;写信号结束后插入8个PCI时钟周期,相当于4个MCX314时钟周期,此间,主机不能操作MCX314,MCX314有足够时间处理写入数据;片选CS#与地址保持时间都远远大于要求值5ns。 |
关于我们 | 会员服务 | 广告服务 | 支付方式 | 联系我们 | 友情链接 |
会员服务热线: |
深圳矽通科技版权所有 © Copyright 2005-2007, ic-cn.com.cn All Right Reserved. | |
深 圳:13410210660 QQ : 317143513 |
||
客服联系: MSN:CaiZH01@hotmail.com E-mail:CaiZH01@163.com | ||