您现在的位置: 新晨 >> 设计论文 >> 接口设计论文 >> 正文

VME自定义总线接口设计

2016/05/31 阅读:

摘要:

工件台运动控制系统为强实时、高速高精的多轴运动,在实际控制中下位机是VME64x插槽上的嵌入式处理器主控设备。VME标准协议已经定义的线路都是一致被运行了Vxworks实时运动控制卡的主控板卡占用,如果所有数据都通过主控板卡查询和转发将会导致主控板卡的数据过载,不能符合实时性的要求。因此,本文介绍了另一个独立的总线协议,用于采集光栅译码卡中的数据。由仿真和实验结果表明,该方案不仅实现了DSP与FPGA的数据传输,而且具有强实时和灵活可靠的特点。

关键词:

FPGA;VME;自定义总线;光栅译码卡

1引言

在光刻机双工件台控制系统中,VME总线使用了三个接口共430根线路接入,通过背板互联的有P1,P2两个接口320根线路接入。实际上VME标准协议并没有完全使用全部线路,而是为用户预留了部分自定义线路,增加了设计的灵活性[4]。由于VME总线主要用于工控机与各板卡的通信,同步控制卡与激光计数卡和光栅译码卡使用总线就会产生严重冲突,影响采用是实时性,因此这里将VME总线中未使用的管脚作为自定义总线管脚,这样避免了增加新的硬件接口,而且在硬件设计上可以和VME总线一起考虑。自定义同步总线数据传输完全根据主控总线提供的时序进行,地址线包含了对数据发送和接收方的定义。每个总线传输周期中,数据发送端和接收端的身份根据地址寻址关系自动切换,而避免了总线控制权更迭时的握手,及数据传输优先级或传输抢占等问题,总线控制信号来自同一个时钟域,从节点仅响应控制信号,可忽略节点间时钟相位差影响。在每个伺服周期,设计了一个数据传输序列来实现共享数据交互。数据传输序列由若干个总线传输周期构成,每个周期完成32bit的数据共享。通过设定总线地址来设置数据传输序列的传输内容,当所有的设定总线地址被遍历,则当前周期数据传输已经完成,所有被规划传输的数据都被所有的运动控制卡所共享[1]。

2VME自定义总线逻辑协议的实现

VME自定义总线是一条并行运行的总线,该总线采用数据广播的方式,可以方便各个板块同时接收同一个数据。其由同步控制卡提供5KHz时钟,每200us同步控制卡将数据锁存线拉高,向光栅译码卡发出一个脉冲,此时光栅译码卡和激光干涉仪等设备锁存该时刻的数据,其读数不再发生变化,然后同步控制卡产生一连串的读取信号,将各个光栅尺的数据读出。同时切换总线上的地址,并生成采样保持,读取和地址三个信号置于自定义总线,运动控制卡通过对自身所需的地址的识别在读信号低电平时获得相应位置传感器的信号。

2.1VME自定义总线接口的实现VME自定义总线在VME的P2口上,时钟频率是5KHz,用于传输激光干涉仪和光栅尺的测量数据[3]。在实际应用中,位置环采样周期为200us,并且有大量的实时伺服数据在运动控制卡与光栅译码卡之间、运动控制卡与运动控制卡之间、运动控制卡与同步总线控制卡之间交换。如果在运动控制中,这些伺服数据使用VME总线进行交换,则会堵塞系统总线,使PowerPC无法进行正常工作。为此,利用光栅译码卡的技术特点以及VME的P2自定义接口,构造自定义局部总线。并设计专用同步总线控制模块对同步总线进行控制。自定义同步总线接口逻辑同样采用FPGA芯片来实现,使其达到灵活、可靠、集成度高的设计要求。自定义同步总线的主控制器由运动控制系统中的同步总线控制卡来实现,而运动控制卡中只需实现自定义总线的从接口。从控制器结构如图1所示,其功能包含以下方面:(1)提供DSP对于双口RAM访问的地址译码,将DSP的标准EMIF接口时序转换成双口RAM访问时序,该功能在EMIF时序匹配模块中完成;(2)完成自定义总线的读写逻辑,当自定义总线的地址有效后,数据方向控制模块将判断当前运动控制卡是数据发送端还是数据接收方,以切换数据总线方向;(3)当某一个特定的自定义总线地址访问出现的时候,总线时序匹配模块将产生中断信号提供给DSP,提 供同步触发[1]。

2.2同步控制卡VME自定义总线逻辑功能的实现光栅译码卡接收来自光栅尺的信号,实现对工件台宏动部分的位置测量,测量数据通过自定义总线传送给同步控制卡。同步控制卡通过内部的定时器,产生运动周期开始信号,读取光栅译码卡的数据,然后将各个运动控制卡所需的信号,按照一定的地址编码,发送到VME64x总线的自定义总线上,由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后,依次接收指令位置和光栅尺数据,运动控制卡进行数据存储等其他操作,并等待下个运动周期的开始信号。对于同步控制卡FPGA中逻辑协议的设计,采用三段式状态机进行设计,第一段描述次态寄存器转到现态寄存器;第二段对状态转移条件进行判断,从而完成状态转移变换;第三段描述在各个状态完成的动作和对状态转移条件进行描述。同步控制卡VME自定义总线读取光栅尺的逻辑转换如下图所示:在状态S0处检测200us的脉冲,因为同步控制卡每200us向光栅译码卡发出一个脉冲,光栅译码卡接收到该脉冲后就会锁存当前数据,当脉冲到来时则转到S1状态,否则仍然处于S0。在S1状态时等待20ns,即让光栅译码卡把数据锁存完成,接着转到状态S2。在状态S2,将地址发送给光栅译码卡,并且等待30ns,让输出数据稳定,然后转到状态S3。在状态S3,将数据锁存,读操作的次数置零,并且将地址发送给双口RAM,延时10ns等待数据和地址稳定,然后转到状态S4。在S4对双口RAM进行写操作使能,即给写使能引脚置高电平,然后进入状态S5。在S5将读操作次数加1,并判断是12路数据是否读取完毕,即读次数是否等于12,若否则进入状态S6,否则进入状态S11。从状态S6到状态S10重复状态S1到S5的过程,直到读取完成。在状态S11,发出读取完成脉冲,并延时20ns到状态S12,最后返回状态S0等待。

2.3同步控制卡VME自定义总线设计实测结果实测模块是接收12路光栅尺的数据,从图3可以看出,送到光栅译码卡的地址,在延迟一定时间后,稳定的数据才输出,所以这里是根据实测的延迟时间来决定模块设计中的相关信号的延迟。将数据写入缓存必须等待数据稳定才能发出写信号。

2.4运动控制卡读取VME自定义总线数据逻辑功能的实现在光刻机双工件台控制系统中,每块运动控制卡实现对三个电机的控制,整个系统需要12块运动控制卡,它通过光纤口将控制信号传送到电机驱动。同步控制卡通过内部的定时器,产生运动周期信号,读取光栅译码卡中数据,进行解耦,然后将各个运动控制卡所需的信号,按照一定的地址编码,发送到VME64x自定义总线,由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后,依次接收指令位置和光栅译码卡的数据。运动控制卡读取VME自定义总线上数据的逻辑转换如下图所示。在状态S0处检测来自同步控制卡的200us脉冲,当脉冲到来时则转到S1状态,否则仍然处于S0。在S1状态时设置一个地址中间变量VMEExAddr_temp,并赋值为1,接着转到状态S2。在状态S2,当(seg=1)即VME自定义总线上地址与该地址中间变量相等时,然后转到状态S3。在状态S3,将数据锁存,读操作的次数置1,并且将地址发送给双口RAM,延时20ns等待数据和地址稳定,然后转到状态S4。在S4对双口RAM进行写操作使能,即给写使能引脚置高电平,然后进入状态S5。在S5将写操作使能置0,然后进入状态S6。S6将读操作次数加1,并将地址中间变量加1,且地址中间变量值加1,进入S7。从状态S7到状S10重复状态S2到状态S5的过程。在S10判断12路数据是否读取完毕,即读次数是否等于12,若否则进入状态S6,否则进入状态S11。在状态S11,发出读取完成脉冲,最后返回状态S0等待。运动控制卡读取自定义总线上数据的过程,通过SignalTapII观察其逻辑时序如图5所示。

3结束语

本文提供了一种基于FPGA的VME自定义总线的逻辑接口设计,同步控制卡作为“主卡”,读取光栅译码卡中的测量数据,并将数据置于VME自定义总线上,其负责自定义在总线的逻辑设计。运动控制卡,接收来自自定义总线上的数据,并通过DSP进行处理,最后发送给电机,控制电机的运动轨迹。该设计方案通过了实际验证,并利用SignalTapII观测了其逻辑时序,可得该方案正确。

作者:韩记晓  万勇利 张常江 赵为志 陈兴林 单位:哈尔滨工业大学 航天学院

VME自定义总线接口设计

2016/05/31 阅读:

推荐度:

免费复制文章