基于ARM+FPGA的嵌入式数控装置设计*

2010-10-18 14:32费继友
制造技术与机床 2010年12期
关键词:寄存器数控系统嵌入式

费继友 周 茉

(大连交通大学机械工程学院,辽宁大连116028)

自第一台数控机床问世以来,数控系统经历了从硬件数控(NC)到计算机数控(CNC)的发展过程。硬件数控是指零件加工程序的输入、运算、插补及控制功能均由逻辑电路完成。计算机数控能够逻辑地处理具有控制编码或其他符号指令规定的程序,并将其译码,从而使机床动作并加工零件。计算机数控系统虽然减少了数控装置逻辑电路,提高了数控装置的通用性和可靠性,但存在资源浪费,操作系统实时性差等问题[1]。数控系统的开放性、模块化和重构设计是目前数控技术领域研究的热点,目的是为了适应技术发展和便于用户开发自己的功能[2]。

1 基于ARM+FPGA的数控装置组成与功能

基于ARM+FPGA的嵌入式可重构数控装置采用Samsung公司的 S3c2440微控制器[3],Xilinx 公司的Xc3s400芯片为核心进行设计。S3c2440是基于ARM920T内核的微控制器,Xc3s400是40万门FPGA芯片。基于ARM+FPGA的数控装置组成及在数控机床中的位置如图1所示。

ARM作为数控装置的核心部件,对从数据存储器中读取或直接从上位PC或网络获得的零件加工代码和控制信息进行译码、运算、逻辑处理。FPGA接收ARM计算、处理结果并按控制要求对进给电动机进行控制。

基于FPGA的步进电动机控制器产生控制进给电动机运转的脉冲序列,经进给电动机驱动装置送机床进给电动机,实现对坐标轴速度和位置的“轨迹控制”,并与PLC的顺序控制配合,完成零件加工任务。

上位PC用于复杂零件加工程序代码编制、仿真以及从车间调度层和车间管理层下载工艺数据等。PC与ARM间采用串行总线或网络通信,当ARM与局域网或Internet连接时,可实现数控装置的网络化控制。

数控装置软件由操作系统软件和数控应用软件组成。为了提高数控装置的实时性,采用Linux嵌入式操作系统,数控应用软件采用C语言编程。

2 ARM与FPGA接口设计

ARM与FPGA通过配置总线,通信接口连接[4],其结构如图2所示。配置总线用于实现ARM对FPGA的配置。通信接口用于ARM与FPGA之间数据和命令信息的传输。由于ARM没有单独的I/O寻址空间,将FPGA直接与ARM存储器总线连接,ARM以访问存储器的方式访问FPGA。ARM对FPGA控制时仅需对其进行写操作,使ARM对进给电动机的控制变得简单方便。

基于SRAM的FPGA加电时需要配置来预备其功能,FPGA的配置文件一般由片外专用的EPROM加载。这种配置在FPGA功能相对固定的情况下采用,为了提高数控装置的重构性,由ARM以JTAG的ISP方式对FPGA进行配置[5]。

Xc3s400配置模式M2:M1:M0电平设置为0:0:1,利用ARM的GPG0、GPG3、GPG5和GPG6引脚分别连接FPGA芯片的TD0、TMS、TDI和TCK。JTAG驱动算法是ARM以JTAG模式配置FPGA的关键,算法调用SVF配置文件,解释其中的语法规范,生成严格的TAP总线时序[6],驱动ARM通用I/O引脚实现对FPGA的配置。配置过程要求控制器的驱动电平不能低于TAP的工作电平,ARM的驱动电平采用3.3 V。

3 步进电动机控制器设计

四相步进电动机有A、B两组线圈。A、B两组线圈垂直摆放时电流方向的排列组合,最多可产生8种磁场方向(0°,45°,90°,135°,180°,225°,270°和315°)。数控装置进给电动机控制器以对四相步进电动机的控制为例,采用Verilog HDL语言设计,用ISE 7.1仿真。

步进电动机控制器由接口模块[7]、分频器模块、步进电动机时序产生模块等组成,其内部结构如图3所示。其中接口模块包括脉冲量初值寄存器,地址“00”;控制命令寄存器,地址“01”;分频系数寄存器,地址“11”。步进电动机时序产生模块包括移动和定位控制模块、电动机方向设定模块和步进电动机相位编码模块。

步进电动机控制器根据ARM每个插补周期计算出的步进脉冲数量,利用赋初值的方式送移动与定位控制模块进行定位控制。定位功能通过减法器实现,在每个clk_out脉冲上升沿,用步进脉冲数量减去不同激磁方式的步进数累加值。当差值小于设定的累减计数值时,说明步进电动机旋转到了预定角度,实现定位。

3.1 控制命令寄存器定义

控制命令寄存器由一个8位寄存器组成,其结构如图4 所示[8]。

INITIAL:当该位为1时,分频系数寄存器的数据直接写入分频器模块的分频寄存器[7:0],写入后由硬件置“0”。

NEWR:当对正在运行的控制器写入新的分频系数时,对该位置1。在下一个分频器模块输出的clk_out时钟来到时,将分频系数寄存器中新的分频系数“N”写入分频寄存器,分频器模块便按新的分频系数进行分频。

MODE[1:0]:步进电动机激磁方式选择,用来控制步进电动机相位编码模块的输出状态。当目标角度是90°整数倍时,MODE[1:0]的值为“01”,表示采用一相激磁方式,单四拍方式输出,四相位输出为(A-B-C-D);当目标角度是 45°,135°,225°,315°整数倍时,MODE[1:0]的值为“10”,表示采用二相激磁方式,双四拍输出,四相位输出为(AB-BC-CD-DA);否则 MODE[1:0]的值为“11”,表示八拍方式输出,四相位输出为(A-AB-B-BC-C-CD-D-DA)。

DIR:步进电动机的方向控制,DIR=0为正转,DIR=1为反转。

3.2 分频器模块设计与仿真

分频器是对进给电动机实现控制的关键,其分频系数由分频寄存器提供。基准时钟CLK被分频器模块分频后,输出clk_out作为步进电动机相位编码模块的时钟,每个clk_out脉冲到来时,产生一次相位转换,步进电动机运行一个步距角。通过改变脉冲的个数可控制角位移量,达到定位目的。调节脉冲频率可控制电动机转动的速度,达到调节运动速度的目的。

分频器模块端口定义如下:

分频器模块仿真结果如图5所示。

3.3 方向设定模块设计与仿真

方向设定模块通过将控制命令字寄存器DIR的状态转化为电平信号,实现对方向的设定。方向设定模块同时完成步进电动机在正转、反转时所需的初值与累加/减值的设定,并通过加/减计数器实现。

方向设定模块加/减计数器端口定义如下:

方向设定电路模块仿真结果如图6所示。

从计数器模块的仿真结构图中可以看出,当复位信号CLR=0时,复位系统,Q=0。当CLR=1时,每当时钟脉冲clk_out的上升沿到来时,若DIR=1,则进行减法计数,输出Q减1;若DIR=0,则进行加法计数,输出Q加1。

3.4 相位编码模块设计与仿真

步进电动机相位编码模块的功能是将计数模块的数值经过编码,再输出给DCBA,实现对进给电动机的控制。相位编码模块的功能通过译码器实现。

译码器端口定义如下:

相位编码模块仿真结果如图7所示。

4 结语

基于ARM+FPGA的嵌入式数控装置以ARM替代CNC系统中的计算机平台,以FPGA替代CNC系统的外围硬件逻辑电路,并采用Linux嵌入式操作系统。具有配置灵活,实时性强,体积小,稳定性好和性能价格比高等特点,应用前景广。

[1]孙恺,王田苗,魏洪兴.基于ARM的嵌入式可重构数控系统的设计与实现[J].机床与液压,2003,31(6):116-117.

[2]朱高峰,张艳蕾.数控系统的可重构性设计[J].制造技术与机床,2008(5):36-38.

[3]田家林,陈利学,寇向辉.基于ARM与FPGA的嵌入式数控系统设计[J].机床与液压,2007,35(2):93-94.

[4]闵华松,王娜.基于Linux嵌入式数控机床控制系统设计[J].制造技术与机床,2007(12):33-34.

[5]葛立明,范多旺,陈光武.基于ARM的FPGA加载配置实现[J].微计算机信息 2007,23(1/2):244.

[6]武文权,杨根庆.基于ARM微控制器配置FPGA的实现[J].计算机应用,2004,24(8),156-157.

[7]黄志文.一种基于FPGA的步进电动机接口电路设计[J].微电动机,2009,42(5):82-83.

[8]陈汝倬.基于FPGA的步进电动机控制器设计[J].科技信息,2009(8):85-86.

猜你喜欢
寄存器数控系统嵌入式
STM32和51单片机寄存器映射原理异同分析
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
Lite寄存器模型的设计与实现
TS系列红外传感器在嵌入式控制系统中的应用
搭建基于Qt的嵌入式开发平台
移位寄存器及算术运算应用
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现