基于ARM11和FPGA全功能数控系统
技术领域
本发明属于数控技术领域,涉及基于ARM11和FPGA全功能数控系统。
背景技术
数控系统的工作原理是通过键盘、USB等方式接收机床加工零件的各种数据信息,然后经过译码形成工件轮廓轨迹,对这些轮廓添加刀具偏移距离使之成为机床加工的走刀轨迹,之后对走刀轨迹进行速度和插补计算,最终转换成符合加工要求的脉冲参数控制各运动轴动作。从实时性的角度,数控系统可以分为实时性较弱的上位机和实时性要求比较严格的运动控制器。目前的数控系统主要依靠进口,国产的硬件设备和软件基础相应比较薄弱。
发明内容
本发明的目的在于提供基于ARM11和FPGA全功能数控系统
本发明所采用的技术方案是使用ARM11处理器和现场可编程门阵列(FPGA)作为系统的硬件基础,通过Linux+Xenomai的实时多任务操作系统构建数控系统软件开发平台。其由主控制器和运动控制器组成;其中,主控制器功能为:加工程序的输入和显示,并将输入的数控加工代码进行格式检查和编译,然后进行刀具补偿计算,并将计算结果通过并行总线发送给运动控制子系统,并且能够实时查询运动控制器子系统的运行状态和处理运动控制器发送的请求;运动控制器的功能为:通过并口总线接受来自主控系统的圆弧、直线目标位移数据及速度、加速度和IO控制命令,同时系统的工作状态反馈给主控制器;主控制器控制软件以基于Xenomai实时性的嵌入式Linux系统为基础,形成能够支持多任务的实时性软件平台;以NiosII软核为软件基础构建可以实现高速高精控制的运动控制器软件平台。
进一步,主控制器最小系统包括核心芯片s3c6410、电源、时钟、复位电路、DDRAM、NANDFlash和JTAG电路,主控系统的外设接口包括8寸TFTLCD、以太网口、USB、SD卡和数控键盘;采用2片16位的DDRAM芯片K4X51163PEL组成32位的DDRAM使用,s3c6410处理器与DDRAM连接中,CS、/CS是差分时钟输入信号,CKE是时钟使能信号,/CS作为芯片的片选信号,RAS、/CAS、/WE是芯片读写的命令信号,L(U)DM是数据输入掩码信号,L(U)DQS为数据选通信号,LDQS对应高8位数据,UDQS对应低8位数据,s3c6410处理器的低位数据线DATA[15..0]和DM[1..0]相组合控制的低位DDRAM,高位数据线DATA[31..15]和DM[3..2]相组合控制高位的DDRAM,ADDR[15..0]作为DDRAM的地址信号,Nandflash型号为K9LBG8U0,s3c6410与Nandflash的连接中,Nandflash的存储片选信号为CS[3..2],指令锁存使能信号为FCLE,片选使能信号为FALE,片选读/写使能信号为FREN/FWEN;运动控制器通过并口总线模块与上位机通讯,接受来自上位机译码和刀补之后计算生成的直线、圆弧轮廓数据、速度控制参数和I/O控制命令,同时控制器通过该模块将当前的工作状态发送给上位机;NiosⅡ软核作为控制器的核心模块,首先要读取数据存储模块中的位移、速度和加速度数据,根据要求完成速度控制和粗插补计算,然后将单个插补周期的位移增量发送到精插补模块,精插补模块将收到的位移增量数据转化为脉冲和方向信号输入到驱动中,控制电机协调进给;同时NiosII读取编码器模块中电机位置数据并存储,以便上位机读取;运动控制器核心芯片型号为EP4CE15F17C8N,s3c6410处理器与EP4CE15F17C8N并口总线连接,在EP4CE15F17C8内构建双口RAM实现数据的存储并作为运动控制器端的数据接口,同时s3c6410端选择32位外部存储模块控制器与之相连。
进一步,主控制器的主控系统软件分成Linux实时性操作系统和数控系统功能软件两大部分;主控系统采用基于Xenomai的实时性Linux软件平台,Linux内核采用基于分时技术的任务调度方式处理实时性要求不高的任务;由于Xenomai内核支持实时任务抢断机制,实时性任务可以交由Xenomai内核处理,这样数控系统任务就可以由分时共享和实时任务中断抢占相结合的方式调度实现;
Linux实时性操作系统中,BooLoader负责完成上电启动后数控系统硬件和软件的初始化和实时Linux内核的引导工作,数控键盘和LCD负责人机交互工作,并口驱动完成主控系统和运动控制器之间的数据交换,网口驱动完成数控系统与外界的远程通信功能,通过U盘下载外界平台的开发的数控加工程序;
数控系统功能软件包括:1.数控加工代码的输入、存储,代码的编辑和解释;2.在经过解析的数控代码的基础上,按照要求进行刀补计算并且生成刀补数据;3.主控系统输入输出的检测;4.将刀补数据、速度参数、操作指令等信息传递给运动控制器,读取运动控制系统的操作状态;5.进行网络管理,可以从网络中下载数控加工代码、操作指令等功能,可以上传数控机床当前状态;6.可以将U盘中数控代码读入并且可以将数控系统状态写入U盘。
进一步,运动控制器包含基于FPGA和NiosII运动控制系统软件,包括主程序和定时中断程序两部分;主程序主要完成从上位机接收刀补数据和参数指令数据同时将自身状态数据发送到上位机,根据上位机传递的刀补和参数指令数据完成速度控制运算和粗插补计算从而得到精插补数据;定时中断程序实现将精插补数据传递到精插补模块中并且控制精插补计算的启动和停止,读取并且根据上位机要求处理外部输入输出信号,读取编码器模块反馈电机的位置数据,精插补模块将精插补数据转换成脉冲和方向信号并将此信号传递给伺服电机控制数控机床协调进给。
本发明的有益效果是能够提供高速高精控制的运动控制器及平台。
附图说明
图1是系统硬件组成示意图;
图2是三轴数控系统硬件总体设计方案;
图3是三轴数控系统硬件总体设计方案;
图4是s3c6410与DDRAM连接图;
图5是s3c6410与Nandflash的连接图;
图6是s3c6410与SD卡的连接图;
图7是s3c6410与网口连接图;
图8是s3c6410与LCD连接图;
图9是运动控制器硬件构成;
图10是s3c6410与FPGA连接图;
图11是FPGA最小系统;
图12是FPGA与SDRAM连接图;
图13是主控系统软件架构;
图14是运动控制器软件架构。
具体实施方式
下面结合具体实施方式对本发明进行详细说明。
本发明以ARM11和FPGA为基础的全功能数控系统的构建方案:硬件上以三星公司的ARM11芯片s3c6410和Altera公司的FPGA芯片为基础,再配合外围电路,构成满足功能需求的数控系统硬件平台;上位机控制软件以基于Xenomai实时性的嵌入式Linux系统为基础,形成能够支持多任务的实时性软件平台;以NiosII软核为软件基础构建可以实现高速高精控制的运动控制器软件平台。本发明数控系统由主控制器和运动控制器两大部分组成,其总体结构如图1所示。主控制器功能为:加工程序的输入和显示,并将输入的数控加工代码进行格式检查和编译,然后进行刀具补偿计算,并将计算结果通过并行总线发送给运动控制子系统,并且能够实时查询运动控制器子系统的运行状态和处理运动控制器发送的请求。运动控制器的功能为:通过并口总线接受来自主控系统的圆弧、直线目标位移数据及速度、加速度和IO控制命令,同时系统的工作状态反馈给主控制器。
数控系统硬件总体架构:选用三星ARM11芯片s3c6410和FPGA芯片EP4CE15F17C8做为系统的核心来构建数控系统的硬件平台,其中s3c6410作为人机接口的主控芯片,EPCE15F17C8作为运动控制器的核心芯片。数控系统硬件构成如图2所示,主要主控制板和运动控制板两部分组成。主控制板以s3c6410处理器为核心构建,其性能能够满足运行基于Xenomai的实时Linux系统和数控系统功能程序软件。本系统的存储设备是容量为4G的NandFlash,其作用是存储启动引导程序U-Boot、Linux操作系统的内核映像文件、根文件系统以及数控系统功能模块软件。为满足Linux操作系统运行要求,运行内存选择256M的动态存取SDRAM。同时在主控板中加入数控键盘、LCD、USB、以太网等外部设备,这些设备可以用来完成人机交互和与运动控制器信息交互的任务。运动控制卡以FPGA为硬件基础嵌入NiosII软核CPU,并利用这个CPU实现速度控制和粗插补算法,同时利用FPGA硬件实现精插补算法,并且实现外部I/O扩展。
主控制器最小系统:主控制器的所使用的核心芯片s3c6410,s3c6410运行的最小系统如图3所示。s3c6410的基本电路包括:电源、时钟、复位电路、DDRAM、NANDFlash和JTAG电路。采用2片16位的DDRAM芯片K4X51163PEL组成32位的DDRAM使用,s3c6410处理器与DDRAM连接示意图如图4所示,CS、/CS是差分时钟输入信号,CKE是时钟使能信号,/CS作为芯片的片选信号,RAS、/CAS、/WE是芯片读写的命令信号,L(U)DM是数据输入掩码信号,L(U)DQS为数据选通信号,LDQS对应高8位数据,UDQS对应低8位数据。s3c6410处理器的低位数据线DATA[15..0]和DM[1..0]相组合控制的低位DDRAM,高位数据线DATA[31..15]和DM[3..2]相组合控制高位的DDRAM。ADDR[15..0]作为DDRAM的地址信号。Nandflash型号为K9LBG8U0,s3c6410与Nandflash的连接方式如图5所示,Nandflash的存储片选信号为CS[3..2],指令锁存使能信号为FCLE,片选使能信号为FALE,片选读/写使能信号为FREN/FWEN。
主控制器外设接口硬件组成:主控系统的外设接口主要包括8寸TFTLCD、以太网口、USB、SD卡和数控键盘。SD卡如图6所示,MMC0_CDN是检测卡状态,MMC0_WPN是写保护信号,MMC0_DATA0-MMC0_DATA3是SD模式的数据线,MMC0_CMD是控制信号,MMC0_CLK是时钟信号。本系统集成一个100M以太网接口,通过DM9000AE芯片来扩展,如图7所示。本系统采用DM9000AE的16位数据模式,DATA0-DATA15与s3c6410的数据线D0-D15相连接,ADDR2信号决定输出的是数据还是地址,IRQ_LAN为芯片中断信号与s3c6410的一个中断源引脚连接,OEN与WEN为读写信号,CSN1为片选信号低电平有效,XNRSTOUT为复位信号,芯片数据通过TX与RX与网络变压器HR911105A相连接。本系统支持8寸液晶屏如图8所示,将屏幕所提供的接口与s3c6410的LCD控制器接口连接,由于协议一致,故根据信号进行连接即可。TFT屏的红、绿、蓝三色对应的数据线分别为XVD0-XVD7、XVD8-XVD15、XVD16-XVD23,且XVD0、XVD8、XVD16分别对应着每组数据的最低端,与s3c6410处理器的数据端口VD0-VD7、VD0-VD7、VD0-VD7对应连接。另外TFT屏的垂直同步信号LVSYNC、水平同步信号LHSYNC、时钟信号LVCLK以及使能信号LVDEN与s3c6410处理器相对应的端口连接。触摸屏控制信号信号TSXM、TSYM、TSXP、TXYP信号与s3c6410处理器内部集成的触摸屏控制器对应端口相连接。s3c6410包含USBHOST和USBOTG两种接口,其中USBHOST支持USB1.1协议,鼠标、键盘等USB设备可以连接在此端口。另一个接口支持2.0协议同时具有高运行速度,可以在系统开发时作为系统程序下载口。
运动控制器核心板电路:控制器的整体构成如图9所示。控制器通过并口总线模块与上位机通讯,接受来自上位机译码和刀补之后计算生成的直线、圆弧轮廓数据、速度控制参数和I/O控制命令,同时控制器通过该模块将当前的工作状态发送给上位机。NiosⅡ软核作为控制器的核心模块,首先要读取数据存储模块中的位移、速度和加速度数据,根据要求完成速度控制和粗插补计算,然后将单个插补周期的位移增量发送到精插补模块,精插补模块将收到的位移增量数据转化为脉冲和方向信号输入到驱动中,控制电机协调进给。同时NiosII读取编码器模块中电机位置数据并存储,以便上位机读取。IO控制模块实现驱动的使能、报警信号的读入、报警清除等与驱动相关信号的处理,并完成机床各轴的正负限位和参考点的检测。由于FPGA内部Flash容量较小则通过外部扩展Flash用来存储配置数据。同样NiosⅡ模块软件程序的运行和中间数据的存储所需内存空间也通过外部SDRAM提供。整个控制器在一片Altera公司的CycloneIV系列芯片EP4CE15F17C8N内设计完成。s3c6410处理器与EP4CE15F17C8N并口总线连接,在EP4CE15F17C8内构建双口RAM实现数据的存储并作为运动控制器端的数据接口,同时s3c6410端选择32位外部存储模块控制器与之相连,s3c6410对于总线接口的操作和读写外部存储器操作相同s3c6410处理器与EP4CE15F17C8N连接方式如图10所示。本发明用的配置芯片为64Mbits的EPCS64。一般FPGA都有两个下载接口:一个是可以把数据下载到配置芯片中,被称作AS,即主动串行模式下载接口;另一个可以将数据下载到FPGA芯片中并可以在线调,被称作JTAG,即联合在线调试接口。AS和JTAG接口的连接图如图11所示。为了解决FPAG内部自带RAM容量比较小的问题,采用拓展外部SDRAM同步动态随机存取处理器来作为NiosII软核处理器的程序运行空间和数据缓存区。本发明选用的SDRAM是Hynix公司的H57V2562GTR-75,SDRAM与FPGA连接如图12所示,ADDR[12..0]为地址信号、DATA[15..0]为数据信号、DQM[1..0]数据掩码信号、BA[1..0]是Bank片选信号、CAS为片选信号、CLK为时钟信号、CKE是时钟选择信号。
除以上介绍各模块之外,精插补模块由差分输出信号芯片26ls31芯片组成,精插补模块输出差分信号具有抗干扰能力强、传输距离远等优点。编码器信号输入模块由26ls32差分输入芯片组成,该方式与大多数伺服驱动位置输入方式一致方便连接。I/O模块采用光耦隔离方式,保证芯片不受外部电路干扰的同时增加输入输出的驱动能力。
数控系统主控系统软件:根据数控系统的需求,主控系统软件可以分成Linux实时性操作系统和数控系统功能软件两大部分。主控系统采用基于Xenomai的实时性Linux软件平台,Linux内核采用基于分时技术的任务调度方式处理实时性要求不高的任务;由于Xenomai内核支持实时任务抢断机制,实时性任务可以交由Xenomai内核处理。这样数控系统任务就可以由分时共享和实时任务中断抢占相结合的方式调度实现。主控系统软件架构如图13所示,BooLoader负责完成上电启动后数控系统硬件和软件的初始化和实时Linux内核的引导工作。数控键盘和LCD负责人机交互工作,并口驱动完成主控系统和运动控制器之间的数据交换,网口驱动完成数控系统与外界的远程通信功能,可以通过U盘下载外界平台的开发的数控加工程序。
数控系统功能软件需要完成的主要工作:1.数控加工代码的输入、存储,代码的编辑和解释。2.在经过解析的数控代码的基础上,按照要求进行刀补计算并且生成刀补数据。3.主控系统输入输出的检测。4.将刀补数据、速度参数、操作指令等信息传递给运动控制器,读取运动控制系统的操作状态。5.进行网络管理,可以从网络中下载数控加工代码、操作指令等功能,可以上传数控机床当前状态。6.可以将U盘中数控代码读入并且可以将数控系统状态写入U盘。
运动控制器软件设计:基于FPGA和NiosII运动控制系统软件架构如图14所示,主要包括主程序和定时中断两部分。主程序主要完成从上位机接收刀补数据和参数指令数据同时将自身状态数据发送到上位机,根据上位机传递的刀补和参数指令数据完成速度控制运算和粗插补计算从而得到精插补数据。中断程序主要实现将精插补数据传递到精插补模块中并且控制精插补计算的启动和停止,读取并且根据上位机要求处理外部输入输出信号,读取编码器模块反馈电机的位置数据。精插补模块将精插补数据转换成脉冲和方向信号并将此信号传递给伺服电机控制数控机床协调进给。
以上所述仅是对本发明的较佳实施方式而已,并非对本发明作任何形式上的限制,凡是依据本发明的技术实质对以上实施方式所做的任何简单修改,等同变化与修饰,均属于本发明技术方案的范围内。