基于单片机+FPGA的多轴运动控制卡设计
扫描二维码
随时随地手机看文章
摘要:基于曲面线接触加工中全软件数控系统实现多轴运动控制的目的,介绍了一种基于单片机+FPGA的多轴运动控制卡的设计方法,该卡可以实现五轴控制。采用模块化的设计思想设计出了运动控制卡的总线、总线驱动、数据锁存及译码电路模块,双端口RAM模块,单片机模块,FPGA模块,电源转换模块以及FPGA芯片的配置模块等,实现了硬件电路的连接。通过在QuartusII的平台下,采用DDA插补原理,通过VHDL编写程序生成插补模块,并将这些插补模块连接成原理图,从而构成了直线插补器,同时在QuartusII下仿真实现了对应功能的仿真,采用软件插补代替传统的硬件插补,使得系统更具开放性。
开放式数控系统已经成为数控系统发展的趋势,以NC嵌入PC的开放式数控系统以其经济性和实用性已被广泛应用。在通用的PC机的扩展插槽中加入运动控制卡,由PC机发出控制指令,运动控制卡根据接收指令完成各种控制功能。运动控制和逻辑控制由运动控制卡完成,因此运动控制卡的设计已经成为NC系统性能实现的关键技术。目前运动控制卡多采用专用运动控制芯片构成,例如固高运动控制卡,但是专用控制芯片扩展能力差,系统升级困难,难以应用于开放式数控系统;也有采用DSP+CPLD/FPGA为核心构成,虽然集合了DSP的强大数据处理能力和FPGA的灵活性与可靠性等优点,但DSP硬件成本较高,内部运动控制算法修改复杂。
文中选用单片机+FPGA为核心的控制方案,以此方案设计了一种可以实现在线接触加工过程中六轴插补的运动控制卡。刀具侧刃在完成曲面加工时,刀具端面还可以完成曲线插补,提高了曲面加工效率。
1 系统结构设计
核心部分采用由单片机+FPGA组成,利用单片机的控制功能和FPGA的快速计算能力组成运动控制系统的核心硬件结构,系统硬件总体结构如图1所示。
2 多轴运动控制卡模块设计
运动控制卡包括与PC连接的ISA总线、总线驱动、数据锁存及译码电路模块,双端口RAM模块,电源转换模块以及FPGA芯片的配置模块。
2.1 ISA总线、总线驱动、数据锁存及单片机模块
在线接触加工运动控制系统中上位机和运动控制板卡通信时,上位机把数控代码传送给双端口RAM,单片机再从双端口RAM里读取数控代码并将其发送到FPGA内部进行插补运算。
1)ISA总线模块
由于ISA总线通信协议简单,接口电路易于实现,所以选择8位ISA数据总线来实现上位机与控制卡的数据传输。
2)总线驱动模块
采用了74LS245双向总线驱动芯片,作为数据线的信号增强和驱动器件;用74LS244为单向总线驱动芯片,主要用来驱动ISA总线的地址线和控制总线信号,提高其扇出能力(带负载能力);采用专用译码技术及芯片,以一片可编程逻辑器件GAL16V8为核心完成I/O端口译码功能。电路如图2所示。
3)数据锁存
该系统属于实时系统,需要高速可靠的数据传输,采用双端口RAM作为数据交换的中介,可以满足系统要求。IDT公司的高速2Kx8bits的双端口静态RAM(IDT7132),该芯片具有BUSY逻辑,可有效的防止两端访问同一地址产生的竞争风险。
2K字的双端口RAM(范围0x0000~0x03FF)被分配为如下几个区域,基地址选择如下述,具体分配如下:
0x000~0x1FF分配为信息数据缓冲区,存放上位机与单片机交换的信息数据;
0x200~0x22F分配为信息标志缓冲区,存放上位机与单片机交换的信息标识,信息标识的内容包括加工状态字、错误标志字等;
0x230~0x33F分配为信息数据缓冲区,存放单片机返回给上位机的信息数据;
0x340~0x34F保留;
0x350~0x36F分配为命令缓冲区,存放单片机与上位机交换的命令和状态;
0x370~0X3FF分别被用来存放上位机和单片机中断。
4)单片机模块
单片机主要作用是接收从上位机传送下来的数控代码,把数控代码变成相应的指令,传送给FPGA,控制FPGA工作,同时,对于从FPGA传送过来的加工信息,及时地传送给上位机。单片机模块如图3所示。
2.2 FPGA模块设计
1)FPGA总体功能设计
FPGA主要是进行直线插补,圆弧插补和复合插补等复杂运算,输出脉冲和方向信号,设计选用Altera公司的低成本Cyclone系列的第二代产品Cyelonell系列芯片中的EP2C8Q 208芯片来实现这些功能,首先EP2C8Q208中含有4,608至68,416个逻辑单元和18个18*18的乘法器,满足复合插补的复杂运算的要求;第二因为连续插补一次要存储很多条指令,而EP2C8Q208中含有36个M4KRAM块,能满足存储这些数据的要求;第三由于跟单片机的相连的数据线8根,地址线10根,控制总线5根,还有6轴(或扩展为更多轴)的输出信号12根,还有其他的存储,控制等连线,对I/O的管脚总数要求较多,而EP2C8Q208有208个管脚,可以满足要求。
在本设计中FPGA总体结构如图4所示。
2)FPGA外围电路设计
本设计中采用的EP2C8Q208C7是SRAM工艺的FPGA,在试验阶段需不断对设计进行修改和调整,以逐步完善设计功能,在此阶段采用JTAG方式直接将SOF文件下载到器件中,这种方式在每次上电时需要重新下载,因此在设计最终完成后,使用配置器件EPCS4来保存配置信息,即采用主动串行方式。配置电路如图5所示。
3 仿真
3.1 位置控制模块
每轴设计一个位置计数器,用来计正/负方向输出脉冲数,当运动控制卡向外输出一个正向脉冲时,计数器值加1;当运动控制卡向外输出一个负向脉冲时,计数器值减1。这样可以如实的反应出实际位置。
3.2 速度模块
全数控数控系统在速度处理上是通过将软件程序给出的速度值(单位:)算出在每个插补周期上实际应发脉冲的个数。数控系统中每发出一个脉冲,电机就转过一定的角度,从而带动机床坐标向前或向后移动一个脉冲所对应的距离(称之为脉冲当量,这里用step表示,单位:μm/P)。通过全软件数控系统速度计算模块计算实际每毫秒应发的脉冲个数是:
V1:每毫秒钟实际发出的脉冲个数。
所以根据所需要的时钟脉冲,用VHDL语言编写可预置的计数器程序,就可以达到速度控制的目的。仿真波形如图6所示。
4 结论
文中采用模块化的设计思想,设计了一种基于单片机+FPGA的运动控制卡。单片机作为控制卡的核心处理器,时序控制能力极强,而且设计方便快捷,再结合FPGA的集成度高,可靠性好,大大提高了控制系统的实时性30%和可靠性,并缩小了控制卡的体积。同时FPGA具有在系统可重构的特性,保证了运动控制系统具有良好的开放性,也方便了系统的设计和调试。