| 基于CPLD芯片设计实现步进伺服系统的插补运算 |
| 类别:网文精粹 |
| 基于CPLD芯片设计实现步进伺服系统的插补运算
摘 要:本文首先介绍了CPLD器件EPM7128SVLC84的结构特点和编程下载电缆的制作,然后给出了步进伺服控制系统中插补运算的电路设计,最后说明了插补运算的仿真结果。该设计方法大大提高了系统的性能,同时还使设计具有了自主知识产权。
引言
步进伺服控制系统是经济型数控机床的驱动控制部分,其插补运算的实现方法将对整个伺服系统的性能产生直接的影响。通常,实现插补运算的方法有基于逻辑电路的方法、基于软件技术的方法,以及软件和硬件相结合的方法。通过对以上各种方法进行比较和分析,本文提出了基于CPLD来实现插补运算的方法。随着EDA技术和CPLD的发展,基于CPLD实现插补运算不仅可以提高插补速度,减轻主CPU的运算负担,而且能够大大提高插补运算的可靠性。 图1 ByteBlasterMV编程下载电缆 图2 步进伺服控制系统的硬件结构图 步进伺服控制系统的设计 ByteblasterMV的制作 本系统在开发过程中需要通过计算机对目标CPLD芯片进行算法程序和数据的在系统下载和调试,为此制作了JTAG方式的ByteBlasterMV编程下载电缆。该下载方式是通过计算机的打印机并行端口进行程序和数据的下载编程和调试。图1给出了JTAG方式编程下载电缆ByteBlasterMV用于进行数据转换的原理图,其中J1为与系统电路板上CPLD器件编程下载接口相连的10针插座,J2为与计算机的打印机并行端口相连的25针插座,采用74ALS244器件对从计算机并行端口接受的编程数据进行转换,转换后的数据连接到CPLD芯片的编程下载接口,从而完成对CPLD芯片的编程和调试。 硬件电路结构 图2给出了步进伺服控制系统的硬件结构图。本系统由51系列单片机87C51、键盘输入模块、串口通信模块、液晶显示模块、插补运算模块和步进电机驱动构成。由4×4键盘阵列构成系统的输入模块。对键盘阵列中各个按键设定必要的功能定义,通过不断地扫描单片机的键盘接口就可以完成对运算所需原始数据的输入以及对系统的运行进行控制。采用87C51单片机自带的异步通信串口外接高速三态差分总线收发器DS75176构成RS-485半双工串口通信接口模块,实现系统和外部设备之间的串行通信功能。显示模块部分由内含两片SED1520控制器的图形液晶显示模块MGLS10032A-LED03构成,该液晶显示模块采用LED边背光方式,实现对插补运算过程中运动轨迹和刀具位置等信息的实时显示。87C51单片机作为主要的控制单元接收操作命令,发出对外围接口模块的控制信号,读写数据并与外部设备进行通信。系统中为该单片机进行了外围RAM的扩展,通过74LS373地址/数据锁存器对地址线中的低8位进行锁存,并采用62256作为外部扩展RAM存储运算中产生的中间变量和数据。插补运算采用Altera公司的MAX7000S系列CPLD芯片EPM7128SVLC84来完成。这主要是由于所设计出来的产品需要以独立板卡的形式插到工控机的扩展插槽中,这就要求设计出的电路板体积小,如果采用FPGA来实现,则必须外加专门的EEPROM配置芯片,从而增加了电路板的尺寸,因此基于尺寸方面的因素,我们选择了CPLD芯片来实现。同时考虑到本设计所需逻辑资源数不是很大,Altera公司的EPM7128SVLC84芯片含有84个逻辑宏单元,恰好满足设计需求。本设计用VHDL语言编写插补运算算法,在MAX+pulsII 10.2开发环境中进行逻辑综合、功能仿真和时序仿真,得到正确的仿真结果,然后将编程目标文件(扩展名为.pof)的数据通过编程下载电缆接口下载到芯片中进行固化,芯片接受单片机和外部RAM送来的控制指令和数据执行插补运算,插补的结果是产生控制步进电机运转的脉冲序列,并将脉冲序列送到步进电机驱动器的接口处。步进电机驱动器采用了北京凯恩帝公司的BD-3H三相混合式步进电机驱动器。 设计中的关键问题 在设计通信模块时,为了实现RS-485总线与单片机系统的隔离,在87C51单片机的异步通信串口与DS75176之间增加光电耦合器进行隔离,同时在进行电路设计时,必须根据光电耦合器的输入端和输出端与电路其他模块间的信号连接关系保证其电源与地的网络标号不同。同时,在PCB布线时必须保证不能使同一根信号连接线贯通光电耦合器的输入端和输出端。 为了保证串口通信正常进行,需要在87C51单片机上电复位时使DS75176的使能信号DE为0。为达到这一目的,将单片机的复位信号RESET引入光电耦合器进行信号变换,以保证单片机上电复位时光电耦合器输出为0,并将光电耦合器的输出信号送给DS75176的DE端。由于工业控制领域的工程环境比较恶劣,现场通常存在各种形式的干扰源,所以在电路设计中采用稳压管D1、D2组成的吸收回路,在RS-485总线的传输端增加保护措施,从而防止线路上的干扰。 考虑到系统对信号的平稳性要求较高并且为防止直流信号引起的干扰,在每个集成块的电源与地之间跨接上滤波电容,从而隔断直流干扰信号。同时,因为EPM7128SVLC84芯片执行插补运算所产生的进给指令脉冲,其电流幅度不能满足BD-3H混合式步进电机驱动器的要求,所以还在EPM7128SVLC84和电机驱动器接口之间采用光电隔离器6N137和具有OC输出特性的TTL门电路74LS06。6N137具有强大的驱动放大能力,它接受的输入信号最大电流为5mA,通过OC输出放大,能够输出最小电流为15mA的信号。 由于EPM7128SVLC84芯片内部没有振荡电路,本设计将单片机的时钟由其输出端引出,然后通过TTL逻辑门进行整形滤波后为CPLD芯片EPM7128SVLC84提供全局时钟信号。 插补运算的原理及算法实现 直线插补运算 以第一象限直线插补运算为例,给出直线插补运算的程序设计实现方法。 采用VHDL语言实现该算法,实体部分定义reset、clk和直线终点坐标(xe,ye)为全局输入信号,定义cpx1、cpx2、cpy1和cpy2为全局输出信号。全局输入信号都是由电路系统中其他的各个模块提供的控制信号,全局输出信号分别是X轴正/负向进给脉冲、Y轴正/负向进给脉冲,分别控制步进电机向不同方向进给。在实体的结构体中设定q记录执行每一步直线插补运算后产生的偏差值,设定(q1,q2)为插步运算过程中刀具的加工点坐标,它们在结构体中被定义成变量的形式。reset是用于对算法初始化的复位信号,插补运算启动后,首先令reset=‘0’时对偏差值q和加工点坐标q1和q2清零,从而使刀具回到坐标原点。clk是插补运算的时钟控制信号,只有当clk上升沿到来时才进行插补运算的处理。在插补运算过程中,首先根据终点坐标判定直线所在的象限,然后按照具体的象限执行插补运算,产生控制步进电机运动的进给脉冲。对于第一象限内的直线执行插补运算,当刀具在直线上时,满足q=xe×q2-ye×q1=0。如果q≥0,那么当前加工点(q1,q2)在目标直线上或在直线的上方,则向X轴正向产生一进给脉冲,该脉冲信号通过BD-3H步进电机驱动器驱动步进电机,使刀具向X正向进给一个步进角,新加工点的偏差为q=q-ye;如果q<0,那么当前加工点(q1,q2)在目标直线的下方,则刀具向Y轴正向进给一个步进角,新加工点的偏差为q=q+xe。该过程循环往复执行,直到加工点到达目标直线的终点时退出循环,完成直线插补运算过程。对于其他象限的直线插补算法,可通过相似的方法完成算法的程序设计。 圆弧插补运算 以第一象限逆圆插补运算为例,采用VHDL语言实现该算法,其设计原理与第一象限直线插补运算类似,只是在偏差判别时所采用的判别方程为q=q1×q1+q2×q2-x0×x0-y0×y0。对于其他象限的圆弧插补算法,方法类似。 结语 步进伺服系统因其价格低廉等原因在工业控制等领域依然被广泛应用,经过对CPLD芯片进行VHDL编程、仿真,程序和数据下载及测试验证,本文完成了基于CPLD芯片设计实现步进伺服系统的插补运算。同时,在插补运算的速度、精度和可靠性上都有了很大的提高。 |
- B2B搜索“联姻”..
- 2008-9-11
- HOLTEK推出H..
- 2008-9-11
- 关于ISPRO校验..
- 2008-9-11
- 利用适配板实现免制..
- 2008-9-11
- GSMSMS模块客..
- 2008-9-11
- ISPro下载型编..
- 2008-9-11
- C语言之stati..
- 2008-9-11
- 完美结合语音芯片与..
- 2008-9-11
- 又做一工具:ATm..
- 2008-9-11
- QE128的DEM..
- 2008-9-11
- 特别推荐一款高性能..
- 2008-9-11
- SATA硬盘使用解..
- 2008-9-16
- EPoX主板几种前..
- 2008-9-16
- 反其道行之降低电压..
- 2008-9-16
- 基于ATM8051..
- 2008-9-16
- THB6016H测..
- 2008-9-16
- 显示器黑屏的解决办..
- 2008-9-16
- 你会买网络服务器吗..
- 2008-9-16
- 酷漫教你制作只带一..
- 2008-9-16
- 酷漫破解网页右健锁定
- 2008-9-16



