| 网站首页 | 电子电气 | 电子电路 | 机械五金 | 51设计开发论坛 | 
您现在的位置: 51RD >> 电子电气 >> EDA-PLD >> 资料正文 用户登录 新用户注册
基于USB的高速硬件精插补器设计         
基于USB的高速硬件精插补器设计
-51rd.net
作者:胡细东 游…    资料来源:微计算机信息    点击数:    更新时间:2007-11-19 

摘  要:介绍了一种基于USB通讯的高速硬件精插补器的设计,设计中采用FPGA实现精插补,并通过USB接口实现与上位PC机的高速数据通讯。该精插补器具有设计简单、易于实现、插补速度高等特点,可适用于高速数控系统的开发。
关键词:USB通讯; FPGA; 精插补器 

前言

数控系统发展到90年代后,基于个人计算机(PC)的数控系统(简称PCNC)成为CNC发展的主要方向[1]。目前PC和NC的连接主要采用两种形式,一是通过PC机的串口、并口,这种方式接口简单、连接方便,开发费用低,但由于传输速度低,已不能满足现代数控系统的实时性要求。二是采用ISA和PCI插卡的形式,NC功能插卡化,并将其插入PC机的标准ISA/PCI插槽,可方便实现与用户接口、主机系统通讯的开放化,这是PCNC系统的一种主流形式,但PCI总线接口复杂,驱动程序、硬件接口开发难度大,开发成本较高,开发周期也较长,而ISA总线由于速度较慢已随着计算机的发展逐渐被淘汰。

随着计算机总线结构的变革,必将影响数控系统的体系结构,串行总线的应用将极大地改变现有的传统数控系统的结构形式。串行总线连接引脚数量少,连接简单,成本较低,系统可靠性高,USB作为一种新的通用串行总线标准,应用越来越广泛[2]。USB总线具有较强的纠错能力、速度快、不占用系统资源、驱动程序开发简单的特点,较好地满足了现代数控系统的要求,因此,本文把USB这种新型接口和通讯方式应用到数控系统,设计了一种基于USB通讯的硬件高速精插补器。

1硬件精插补器的工作原理

硬件精插补器通过USB接口从上位PC机获取粗插补数据,由FPGA实现高速精插补输出。精插补器主要由USB接口芯片、微控制器、数据缓存、FPGA等部分组成,如图1所示。各部分功能如下:

·微控制器通过USB从上位PC机获取粗插补数据和机床控制信息,通过数据缓存传送给FPGA

·USB接口芯片负责处理所有与USB总线事务有关的任务,如总线唤醒、数据接受/发送、打包、CRC校验等;

·FPGA通过微控制器获取粗插补数据及机床控制信息,实现精插补输出;

·数据缓存用于缓存粗插补数据,以协调微控制器和精插补控制器的速度差异。

精插补器通过微控制器的固件程序和上位PC机应用程序及驱动程序的协调处理,完成高速的数据通讯。



2  硬件设计

2.1  USB通讯接口设计

USB 外围接口芯片采用Philips公司的支持USB1.1协议的芯片PDIUSBD12(以下简称D12), 该芯片性价比高,集成了320字节的FIFO内存、SIE(Serial Interface Engine)、收发器以及电压调整器, 主端点有双缓存配置,增加吞吐量,容易实现实时数据传输[3]。由于其为纯粹的USB外设接口芯片仅处理USB总线相关事务,必须有一个外部微处理器来进行协议处理和数据交换,设计中采用PHILIPS公司内核基于8位80C51单片机增强型派生产品P89C58X2FN ,它完全保留了80C51指令系统和硬件结构的大框架,而且它在多个方面进行了加强、扩展和创新。如片上的FLASH EPROM扩展到32KB,满足当今用嵌入式高级语言对片上大存储容量的需要;6个中断源和4个中断优先级满足数控系统的多级中断要求;速度高达33M有利于提高对D12的读写速度。D12与P89C58X2FN连接电路如图2所示。

图2  D12与P89C58X2FN的连接电路图

D12采用数据/地址总线复用方式和P89C58X2FN相连接,D12相当于一位(两个地址)的外部RAM,对D12的操作就像对外部RAM操作一样,低位地址线P0.0通过373地址锁存后与D12的A0相连,高位P2.5产生片选信号,这样D12的地址为2000H和2001H, D12的通信采用这样的方式:一个偶数地址表示送往D12的是读/写数据,一个奇数地址表示往D12 写入一个命令,这是由D12的内部逻辑来实现的,即D12的数据地址为2000H,命令地址为2001H。D12的中断引脚接P89C58X2FN的外部中断1,要注意的是中断只能采用电平触发方式,低电平有效。

 2.2  FPGA设计

随着集成度高、速度快的可编程门阵列FPGA(FILED ROGRAMABLE GATE ARRAY)的出现和EDA工具的完善,使得硬件电路的设计过程大大简化,并可通过波形仿真工具验证电路的功能正确性,有效地缩短了电路的开发周期,提高了设计的灵活性,可弥补传统硬件插补器的缺点。因此,本文采用FPGA来实现精精插。具体设计中采用了ALTERA公司的FPGA芯片EPF10K10LC84-4,可实现三轴直线、两轴圆弧联动精插补,产生进给序列脉冲,用于三轴步进或伺服电机的驱动控制。

2.2.1 精插补原理

精插补器的功能是接收通过粗插补计算得到的一个插补周期内各轴的进给量(微段直线),并将其转化成频率均匀的进给脉冲,输出给各轴的位置伺服控制器。脉冲转换常用的方法是采用计数器和分频器,其主要优点是频率均匀,但存在脉冲截断误差。本文采用了基于DDA(数字微分分析器)插补原理的脉冲转换算法,它不仅实现简单,消除了脉冲截断误差,而且易于实现多坐标进给的同步[4]

DDA插补的原理是通过对进给量X的不断累加、溢出,产生相应的进给脉冲。具体的说,在累加脉冲△T控制下,存储在N位寄存器中的进给量X不断累加,累加的溢出脉冲即为驱动坐标轴的进给脉冲。当累加次数达到2N时,溢出脉冲的数据量恰好等于进给量X,一次脉冲转换完成。此时,完成一次脉冲转换的周期是T=2N/fin,产生的溢出脉冲频率为fout=fin*X/2N,其中fin为累加控制脉冲频率。

[1] [2] 下一页

  

到论坛与更多的业内精英讨论......

www.51rd.net
资料录入:admin    责任编辑:admin 
  • 上一篇资料:

  • 下一篇资料:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    利用Freeze技术的FPGA实
    基于FPGA的计算机防视频
    基于FPGA的32Kbit/s CVS
    借助FPGA设计,提高高端存
    fpga设计之:基于FPGA的T
    基于SRAM编程技术的PLD核
    FPGA设计:基于FPGA的MFS
    基于FPGA的二值图像连通
    基于FPGA的八位RISC CPU
    基于FPGA的智能控制器设