基于FPGA 的VME自定义总线接口设计论文
1 引言
在光刻机双工件台控制系统中,VME 总线使用了三个接口共430 根线路接入, 通过背板互联的有P1, P2 两个接口320 根线路接入。实际上V M E 标准协议并没有完全使用全部线路, 而是为用户预留了部分自定义线路,增加了设计的灵活性。由于V M E 总线主要用于工控机与各板卡的通信, 同步控制卡与激光计数卡和光栅译码卡使用总线就会产生严重冲突, 影响采用是实时性,因此这里将V M E 总线中未使用的管脚作为自定义总线管脚, 这样避免了增加新的硬件接口, 而且在硬件设计上可以和VME 总线一起考虑。
自定义同步总线数据传输完全根据主控总线提供的时序进行, 地址线包含了对数据发送和接收方的定义。每个总线传输周期中, 数据发送端和接收端的身份根据地址寻址关系自动切换, 而避免了总线控制权更迭时的握手, 及数据传输优先级或传输抢占等问题, 总线控制信号来自同一个时钟域, 从节点仅响应控制信号, 可忽略节点间时钟相位差影响。在每个伺服周期, 设计了一个数据传输序列来实现共享数据交互。数据传输序列由若干个总线传输周期构成, 每个周期完成32b i t 的数据共享。通过设定总线地址来设置数据传输序列的传输内容, 当所有的设定总线地址被遍历, 则当前周期数据传输已经完成, 所有被规划传输的数据都被所有的运动控制卡所共享。
2 VME 自定义总线逻辑协议的实现
V M E 自定义总线是一条并行运行的总线, 该总线
采用数据广播的方式, 可以方便各个板块同时接收同一个数据。其由同步控制卡提供5KHz 时钟, 每200us同步控制卡将数据锁存线拉高, 向光栅译码卡发出一个脉冲, 此时光栅译码卡和激光干涉仪等设备锁存该时刻的数据, 其读数不再发生变化, 然后同步控制卡产生一连串的读取信号, 将各个光栅尺的数据读出。同时切换总线上的地址, 并生成采样保持, 读取和地址三个信号置于自定义总线, 运动控制卡通过对自身所需的地址的识别在读信号低电平时获得相应位置传感器的信号。
2.1 VME 自定义总线接口的实现
V M E 自定义总线在V M E 的P2 口上, 时钟频率是5KHz, 用于传输激光干涉仪和光栅尺的测量数据。在实际应用中, 位置环采样周期为200us, 并且有大量的实时伺服数据在运动控制卡与光栅译码卡之间、运动控制卡与运动控制卡之间、运动控制卡与同步总线控制卡之间交换。如果在运动控制中, 这些伺服数据使用V M E总线进行交换, 则会堵塞系统总线, 使P o w e r P C 无法进行正常工作。为此, 利用光栅译码卡的技术特点以及V M E 的P2 自定义接口, 构造自定义局部总线。并设计专用同步总线控制模块对同步总线进行控制。自定义同步总线接口逻辑同样采用FPGA 芯片来实现, 使其达到灵活、可靠、集成度高的设计要求。
自定义同步总线的.主控制器由运动控制系统中的同步总线控制卡来实现, 而运动控制卡中只需实现自定义总线的从接口。从控制器结构如 所示, 其功能包含以下方面:
(1) 提供DSP 对于双口RAM 访问的地址译码, 将DSP 的标准EMIF 接口时序转换成双口RAM 访问时序,该功能在EMIF 时序匹配模块中完成;
(2) 完成自定义总线的读写逻辑, 当自定义总线的地址有效后, 数据方向控制模块将判断当前运动控制卡是数据发送端还是数据接收方, 以切换数据总线方向;
(3) 当某一个特定的自定义总线地址访问出现的时候, 总线时序匹配模块将产生中断信号提供给D S P , 提供同步触发。
2.2 同步控制卡VME 自定义总线逻辑功能的实现
光栅译码卡接收来自光栅尺的信号, 实现对工件台宏动部分的位置测量, 测量数据通过自定义总线传送给同步控制卡。同步控制卡通过内部的定时器, 产生运动周期开始信号, 读取光栅译码卡的数据, 然后将各个运动控制卡所需的信号, 按照一定的地址编码,发送到V M E64x 总线的自定义总线上, 由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后, 依次接收指令位置和光栅尺数据, 运动控制卡进行数据存储等其他操作, 并等待下个运动周期的开始信号。
对于同步控制卡FPGA 中逻辑协议的设计, 采用三段式状态机进行设计, 第一段描述次态寄存器转到现态寄存器; 第二段对状态转移条件进行判断, 从而完成状态转移变换; 第三段描述在各个状态完成的动作和对状态转移条件进行描述。
在状态S0 处检测200u s 的脉冲, 因为同步控制卡每200u s 向光栅译码卡发出一个脉冲, 光栅译码卡接收到该脉冲后就会锁存当前数据, 当脉冲到来时则转到S1状态, 否则仍然处于S0。在S1 状态时等待20n s , 即让光栅译码卡把数据锁存完成, 接着转到状态S2。在状态S2, 将地址发送给光栅译码卡, 并且等待30n s , 让输出数据稳定, 然后转到状态S3。在状态S3, 将数据锁存,读操作的次数置零, 并且将地址发送给双口R A M , 延时10n s 等待数据和地址稳定, 然后转到状态S4。在S4对双口R A M 进行写操作使能, 即给写使能引脚置高电平, 然后进入状态S5。在S5 将读操作次数加1, 并判断是12 路数据是否读取完毕, 即读次数是否等于12, 若否则进入状态S6, 否则进入状态S11。从状态S6 到状态S10 重复状态S1 到S5 的过程, 直到读取完成。在状态S11, 发出读取完成脉冲, 并延时20ns 到状态S12, 最后返回状态S0 等待。
2.3 同步控制卡VME 自定义总线设计实测结果
实测模块是接收12 路光栅尺的数据, 从 可以看出, 送到光栅译码卡的地址, 在延迟一定时间后, 稳定的数据才输出, 所以这里是根据实测的延迟时间来决定模块设计中的相关信号的延迟。将数据写入缓存必须等待数据稳定才能发出写信号。
2.4 运动控制卡读取VME 自定义总线数据逻辑功能的实现
在光刻机双工件台控制系统中, 每块运动控制卡实现对三个电机的控制, 整个系统需要12 块运动控制卡,它通过光纤口将控制信号传送到电机驱动。同步控制卡通过内部的定时器, 产生运动周期信号, 读取光栅译码卡中数据, 进行解耦, 然后将各个运动控制卡所需的信号, 按照一定的地址编码, 发送到V M E64x 自定义总线, 由运动控制卡接收。运动控制卡接收到同步控制卡的运动周期开始信号后, 依次接收指令位置和光栅译码卡的数据。
3 结束语
本文提供了一种基于FPGA 的VME 自定义总线的逻辑接口设计, 同步控制卡作为“主卡”, 读取光栅译码卡中的测量数据, 并将数据置于VME 自定义总线上,其负责自定义在总线的逻辑设计。运动控制卡, 接收来自自定义总线上的数据, 并通过DSP 进行处理, 最后发送给电机, 控制电机的运动轨迹。该设计方案通过了实际验证, 并利用SignalTapII 观测了其逻辑时序, 可得该方案正确。
【基于FPGA 的VME自定义总线接口设计论文】相关文章: