为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > PCI多轴运动控制卡的VHDL-CPLD接口设计

PCI多轴运动控制卡的VHDL-CPLD接口设计

2011-07-31 4页 pdf 275KB 18阅读

用户头像

is_737717

暂无简介

举报
PCI多轴运动控制卡的VHDL-CPLD接口设计 pal多轴遏动叠制卡的 U夏 D'}L巨 C9亚 D -: P%} The Design of PCI Interface with VHDL-CPLD in Multiaxle Motor Control .上海豪威IC设计有限公司怯肇乾 摘 要:本文从PCI和多轴运动控制器件的时序分析入手,重点阐述了PCI通信的CPLD状态机设计, 并说明了VHDL语.言的实现和MaxplusIl的验证 关健词:时序分析;CPLD器件;状态图;V...
PCI多轴运动控制卡的VHDL-CPLD接口设计
pal多轴遏动叠制卡的 U夏 D'}L巨 C9亚 D -: P%} The Design of PCI Interface with VHDL-CPLD in Multiaxle Motor Control .上海豪威IC有限公司怯肇乾 摘 要:本文从PCI和多轴运动控制器件的时序分析入手,重点阐述了PCI通信的CPLD状态机设计, 并说明了VHDL语.言的实现和MaxplusIl的验证 关健词:时序分析;CPLD器件;状态图;VHDL语言;PCI传输 PCI多轴运动控制 卡是精密伺服驱动控制系统中的主要部 件,传统设计多采用PC工桥件和运动控制器件构建,这样虽然开 发周期短,但成本却非常高。用℃PLD做PCI接口+ TMS320C2400系列DSP做运动控制器件”的设计,构成的系统简 洁可靠,成木低廉,开发周期短,是一种行之有效的板卡开发途 径。根据PC[总线的传输时序和运动控制器件的读写时序要求, 以Altera的CPLD器件和开发工具,使用、VHDL语言,进行状态机 构造,很快地实现了多轴运动控制卡的PCI接口设计,并进行了 功能模拟和定时分析,很好地达到了欲期目的。在系统编程、下 载器件、测试,工作效果很好。以下,介绍整个设计思想,供广大 同行参考。 接口系统模型简介 用CPLD做多轴运动控制卡的PCI接口,所构成的板卡系统 用图1描述 中,这些命令和参数对应不同地址的寄存器,每个寄存器字宽16 位,这些寄存器共用16个地址。对MCX314进行写操作后,最大 四个CLK周期内不能再连续读写操作,以使MCX314有足够时 问处理数据,外部表现为MCX314的BUSY#线在WR#写信号的 上升沿后最大二个SCLK周期期间保持低激活,SCLK周期是 CLK的两倍。下面图2-4是MCX314的读写时序图。表I是图 2-4中标示的时间要求范围。 进行PCI总线传输,至少需要40条信号接口,包括数据/地址 线、接口控制线、仲裁、总线命令及系统线等。每次数据传输由一 个地址脉冲和一个或几个数据脉冲组成。一次传输一个地址和 一个数据称为常规传输:一次传输一个地址和 批数据称为碎 发传输。根据MCX314的使用特点和读写时序,进行PCI传输,最 适宜采用常规传输。PCI常规传输常用的控制信号是:帧同步信 号FRAME#、主设备准备好信号IRDY#、从设备准备好信号 A 2-A O ? ? ??? 乃 1 5- D O 图1 PCI-CPLD接n系统模型图 这里,CPLD/FPGA完成PCI主/从传输时序的逻辑构成与变 换,并直接对专用运动控制器件或TMS320C2400系列DSP进行 适当操作。整个系统的设计中,CPLD使用PCI总线的33MHz时 钟,以简化PCT传输的逻辑设计 图2 16位数据总线的MCX314读操作时序 A2-A O ? ??? ?? 总线传输时序分析 运动控制器件采川 日本NOVA的MCX314专用器件 MCX314是一款能够同时控制4个伺服马达或步进马达的运动 控制芯片,它以脉冲串形式输出,能对伺服马达和步进马达进行 位置控制、插补驱动、速度控制等实时监控。MCX314单独使用 16MHz晶振时钟。通过MCX314进行运动监控,主要是下达命 令,进行运动状态参数的读取或运动参数的发送。在MCX314 0 15- DO t l{ r 于 1 1 II认一z1 l !只 图3 16位数据总线的 MCX314写操作时序 世界电子元器件 2004.3 口了. TRD料、从设备选通信号DEVSEL#、命令/字节信号C旧E禅等。下 面图5荀是Pc工常规传输的典型时序图。 scL:一厂飞一厂入J尸又J一丫了爪‘ 表 1:MCX314读写的时间要求范围 。一\— }十一— 卜一 Eus了 竺司卜一书 一 司 图4MCX3 14的BUSV时序 地址 、命 令出 理 主 没各发 送 寡裘委盆篡 组 项 符号 Min Max 地址建立时间 片选建立时间 坛 加S 卜R ons 输出数据延迟时间 偏 29ns 输出数据保持时间 t皿 ons 30ns 片选保持时间 坛 一 一器-地址保持时间 t就 onst辞 片选建之时问 份w ons WR低电平脉宽 t” 51知5 输入数据设定时间 一 肠w 3加 5 输入数据保持时间 坛 10DS 片选保持时间 饭 5115 地址保持时间 _ t,^ . sns 峪 32刀5 从 4xClk+30ns 盯致 据传 箱 图SPcl常规读操作时序 CLK 主 设各 启动 传送 主 设各 发送 字 节仲 能 CZ厄豆 喜裘重盘二 (1)每次数据传输,主机通过Pcl首先传山地址和命令字,PCI 接口逻辑要能从地址中确定是不是对本机的访问,并锁存地址; 同时Pcl接口逻辑还要能从命令字中识别访问是读操作还是写 操作 (2)进行读写操作,Pcl接口逻辑要向PCI总线产生适当的 TIU)Y岸、DEVSEL#信号,只有在IRD划 、TRDY汽DE、SEL#都为 低状态时,Pcl操作才能完成;同时,PCI接口逻辑还需要向 Mcx314产生适当的片选cs#、读RD#或写WR#信号。 (3)对MCX314的读操作,Rl〕#信号的低有效时间要大于场的 最大值29ns。 (4)对Mcx314的写操作,要保证WR#信号的低有效脉宽tww 不小于50ns,输入数据的设定时间tn,不小于30ns,片选cs#与地 址保持时间要不小于sns。 (5)对Mcx314写操作后,在逻辑设计上要保证至少8个Pcl 时钟周期(33MHz)内主机不再对它进行读写操作,以使MCx3 14 有足够时间处理数据。即要插入适当时间的TRDY#信号,以使主 机能够产生等待,不操作MCx3 14器件 (6)片选CS#、读RD#、写从叹#有效期间,地址信号要始终有 效并确定为某一值 尝靡之蕊墓 DEVg卫IJ 图6PCI常规写操作时序 根据Mcx314器件和Pcl总线传输的特点,采用16位数据总 线使MCX314与PC I低端地址/数据线直接相连,可以有效地简化 设计和硬件结构 CpLO实现的状态机构设 状态机的构造 根据上述时序图的分析,完成此特定Pcl总线传输需要设计 七个状态:状态50标识PCI总线空闲时期;状态51标识地址与总 线命令识别阶段:状态52、54、56、57完成写操作及其写后的适当 等待周期 状态53、55完成读操作 .疚2 世界电子元器件 2004) 纂黝鄂蘸蘸蘸瓤蒸蒸翔日召舀创日 状态功能的确定 设计各状态执行以下功能: 状态SO-St:对PCI总线,置高信号TRDY#, DEVSEL#;对 MCX314,置高片选信号CS#,读信号RD#,写信号WR#,地址呈 现三态。在Si态还要完成:依据地址信号确定是不是对本机的选 择,并识别是不是读或写操作,锁存访问地址 状态S3, S5:对MCX314,产生低有效的片选信号CS#、读信 号RD#,并确定读写访问的地址。在S5态,对PCI总线,置低信号 TRDY#,DEVSEL#,以完成PCI读操作 状态S2, S4, S6, S7:对MCX314的片选信号CS#在S2态产 生,在S4, S6态保持,进入S7态结束;S2, S4态写信号WR#1氏有 效;S6态产生s个PC]周期长的等待时期;S7态置低信号TRDY# 以结束PCI写操作:在S2,S4,S7态,产生低有效的DEVSEL# 状态变化的确定 根据对PCI总线传输时序的分析,影响设想的各个状态相互 转化的因素是:帧同步信号FRAME#、主设备准备好信号 IRDY#、对从设备的读识别信号rea屯map,写识别信号wnte_map 及其等待状态计数器ace值。这里,用reades map,write~ map标识状 态S1产生的中间识别信号 需要注意,在状态S1要锁存收到的地址,在状态S6变化时要 适时进行时钟周期计数 还要注意,状态机设计时产生的容错问题,使非设计状态能 够无条件回到空闲态SO. 状态图的规划 综上所述,设计规划状态图如图7所示。 仃解:乞/一一几石一 ~、 图7设计规划状态图 VHDL语言的描述 设计使用四个进程和儿个并行语句,实现整个CPLD的功 能:一个进程完成从设备及其读写操作的识别:一个进程完成操 作地址的获取:一个进程完成写操作后等待态的插入; 一个进程 完成状态机的相互变化:几个并行语句完成操作信号的产生。需 要注意,各状态里完成的功能要用并行语句实现,不能再用进 程,否则就会引起逻辑综合的麻烦,甚至根木不能综合。整个程 序如下: LIBRARY ieee; USE ieee.std_ logic 1164.ALL; USE ieee.std_logic unsigned.ALL; ENTITY pci_ itfc IS PORT(clk, rst, frame, irdy: IN STD_ LOGIC; ad少igh:IN STD_ LOGICes VECTOR(? downto 4); ad low:IN STD LOGIC VECTOR(3 downto 1); c be: IN STD LOGIC VECTOR(3 downto 0); trdy, devsel: OUT STDes LOGIC; cs, rd, wr: OUT STD LOGIC; addr : OUT STD~ LOGIC一ECTOR(2 downto 0)); END pci_ itfc; ARCHITECTURE behave OF pci itfc IS SIGNAL addr map;STDes LOGIC_ VECTOR(3 downto 1); SIGNAL acc :STD LOGI几VECTOR(3 downto 0); SIGNAL rd- map, wr map:STDes LOGIC; TYPE state_ type IS (s0, sl, s2, s3, s4, s5, s6, s7 ); SIGNAL state:stale type; BEGIN identify: PROCESS (elk)一读、写、设备r -的识别 BEGIN 作rising edge(clk) THEN IF c_ be=X"6" AND ades high=X"f' AND stated THEN rdes map<='0';一读 wr map<='l; ELSIF ces be=)07" AND adJhigh=X"f' AND state=sl THEN rd-map,- '1;一写 wres m即‘='0; ELSIE state=s0 THEN rd map<='1'; wr-map <='I'; FND IF; END作; END PROCESS; addr_capture : PROCESS (elk)一操作地址的获取 BEGIN 仆rising_edge(elk) THEN IF state=sl THEN addr_map<=a走low; END IF; END IF; END PROCESS; delay-count: PROCESS (elk)一写迟延的增加 BEGIN IF risinges edge(clk) THEN IF state=s0 THEN acc <= "0000"; 世界电子元器件 2004.3 叹夕. ??????????? ELSIF state=s6 THEN acc <= ace + l; END IF; END IF; END PROCESS; 一操作信号的产生 addr <= "ZZZ" WHEN state = sO OR state二s7 ELSE addr_map; trdy <='0' WHEN state=s5 OR state=s7 ELSE .11 ; devscl< 'O' WHEN state--s2 OR state-s4 OR statc=s5 OR state = s6 OR state = s7 ELSE '1'; es <='1'认明 EN state-s0 OR state=sl OR state=s7 ELSE 幻.二 rd <='0' WHEN state=s3 OR state=-s5 ELSE ,1’; .r <='O' WHEN state-s2 OR state--s4 ELSE WHEN OTHERS => state <= s0; END CASE; 〔ND IF; END PROCESS state change; END behave: MaxPlusll的验证 设计CPLD,使用软件MaxPlusll进行逻辑综合、功能模拟与 定时分析。选用Altera的Max7000系列的在系统可编程器件 EPM7032S丁C44-10。下面是读写访问的仿真波形图: Namfirst}clk 1 sa o - 」J 」 on ‘ 3F0 15we r7 state change: PROCESS (elk, rst)一状态机的变化 BEGIN IF rst '0' THEN state <= s0; ELS任falling一dge(clk) THEN CASE state IS WHEN sO => IF frame '0' AND irdy=' I' THEN state<二sl; ELSE state <= s0; END IF; WHEN sl=> IF rd map ='O' THEN state<=O; 卜-- --- -- 二=== =‘-- 图 8写操作的仿真模拟波形图 ELSIF wr map =V THEN state<=s2 ELSE state <= s0; END IF; WHEN s2 => IF frame 'I' AND irdy=0' THEN state <=s4; ELSE state <= s0; 〔N〔】IF; WHEN s3 => IF斤ame 'I' AND irdy='0' THEN state <= s5; ELSE state令 s0; END IF; W HEN s4 => IF frame '1' AND irdy-0' THEN state <= s6; ELSE state <= s0; END IF; WHEN s5 => stale <= s0; WHEN s6 = IF 8ame--1' AND irdyr 1' THEN state<=s0; ELSIF acc=X"8" THEN state <= s7; ELSE s以e <= s6; END IF; WHEN s7 => state <=s0; 图9读操作的仿真模拟波形图 图中,时钟周期为30nsa读操作,RD#信号的低有效时间为 60ns,大于tan的最大值29ns;读信号无效后地址稳定时间为1511s, 在此时间内结束读操作 写操作,WR#信号的低有效脉宽Was,大 于要求值50ns,输入数据设定:写信号结束后插入8个PCI时钟周 期,相当于4个MCX314时钟周期,此间,卞机不能操作MCX314, MCX314有足够时间处理写入数据:片选CS#与地址保持时间都 远远大于要求值5m.口口 .吞4 世界电子元器件 2004.3
/
本文档为【PCI多轴运动控制卡的VHDL-CPLD接口设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索