刘 更,王清理,孟 伟,赵 甫,张 宝
(1.中国航天科工集团第二研究院706所,北京100854;2.北京林业大学 信息学院,北京100083)
根据我国当前市场需求的实际情况,数控系统按功能和配置可分为高档型、中档型和经济型3种[1]。中高档数控系统功能齐全、加工精度高,多采用PC+NC构架的开放式数控系统,但价格较贵。经济型数控系统由于其良好的性能价格比,目前在国内市场占据了一半以上份额[2-4]。经济型数控系统多采用8位或16位单片机实现,具有品种多样、功能较全、可靠性较高、价格低廉、操作简单、维修方便等特性。随着微电子技术和计算机技术的发展,以ARM为主的高性能嵌入式处理器在数控领域得到逐步应用。与单片机相比,嵌入式ARM处理器多为32位RISC处理器,具有运算速度快,外围资源和通信接口丰富等优势。同时,ARM处理器可运行实时多任务LINUX操作系统,基于LINUX开发的应用软件具有实时性好,移植方便等优点。嵌入式ARM处理器设计技术的日益成熟完善,使得系统成本不断降低,为应用嵌入式ARM处理器构建的经济型数控系统提供了必要的条件。
EP9315[5]是一款内含ARM920T内核,低成本、高集成度、高性能的32位嵌入式ARM微处理器[3]。它内嵌MaverickCrunchTM协处理器,支持浮点运算和DSP处理指令,弥补了以往数控系统采用的ARM处理器其运算性能不佳的缺点。本方案以EP9315为核心,扩展Cyclone III[6]系列低成本FPGA,并以MSP430[7]单片机实现模拟接口实现的集采集、处理与控制为一体的经济性数控系统,具有低功耗、低成本、信息处理能力强、接口丰富、可扩展性好等特点[8]。
本文实现经济型数控系统人机界面、手轮接口、网络通信接口、4路给进轴控制、2主轴控制、64路输入、24路输出等功能。系统由以下部分组成:
(1)数控ARM板。它是本系统核心部分,实现系统的主要功能;
(2)人机接口。包括LCD显示屏,按键板和接口转接板,提供数控系统的各种输入输出接口;
(3)软件。包括FPGA软件和单片机软件。
系统组成框图如图1所示。
图1 系统组成框架
本节主要介绍数控ARM板的电路设计。数控ARM板是本系统的核心,电路设计时选用高集成度芯片简化设计,降低成本。系统各功能主要由处理器、FPGA、单片机等元件设计完成。原理框图如图2所示。
1.1.1 处理器核心电路设计
本文采用Cirrus公司高集成、高性能、低成本的32位ARM嵌入式微处理器EP9315作为核心。它采用ARM920T内核,处理器时钟可达250MHz。处理器内嵌MaverickCrunchTM协处理器,支持浮点运算和DSP处理指令,弥补了以往的ARM处理器运算能力较低的缺点。
在处理器AHB总线端扩展32MB Flash固化启动程序、操作系统及应用程序,扩展64MB SDRAM用于加载程序并提高运行速度。AHB总线经驱动芯片扩展4Mbit高速铁电存储器用来保护关键数据[9]。数控应用程序将关键数据即时写入该存储器,若遇系统突然掉电,关键数据可在下次上电后通过程序恢复,并继续执行未完成的加工,从而减少废品率,节约加工成本。
1.1.2 FPGA电路设计
本文选用Altera公司Cyclone III系列FPGA芯片EP3C16F484。FPGA I/O管脚经过双向总线驱动芯片连接到EP9315的AHB总线。处理器的片选信号nCS2连接至FPGA的I/O管脚,从而将FPGA映射到ARM内存空间0X20000000-0X2FFFFFFF范围内。FPGA连接处理器端16根地址线,这样FPGA内部就有65536字节空间可以被ARM处理器EP9315以内存的方式访问。
FPGA实现I/O接口、CAN总线接口、单片机接口的译码和寄存器功能,并实现编码器和脉冲式给进轴时序逻辑控制等功能,共占用295个I/O管脚。
1.1.3 单片机电路设计
本文应用TI公司低功耗单片机MSP430F167实现数控系统2路主轴控制和4路模拟量的采集。主轴控制模拟量输出范围-10V~+10V,模拟量输入范围为0~5V。MSP430单片机具有丰富的片上外围模块及高性能模拟技术,可配置8路12位模拟量接口,最大可提供2路D/A和6路A/D接口或8路A/D接口,输入输出模拟量范围为0~2.5V。本系统通过扩展外围运放电路实现2路12位-10V~+10V模拟量输出和4路12位0~5V模拟量输入。单片机模拟部分与系统数字部分采用数字隔离方式,通过12位AD数据线、12位DA数据线、3位地址信号、写信号/WR、读信号/RD完成数据交互。
1.1.4 外围接口电路设计
ARM处理器片上集成了网络MAC控制器,扩展PHY芯片KSZ8721[10]实现10/100M自适应网络接口。通过片上集成的全速USB控制器、URAT控制器、LCD控制器、键盘扫描控制器,加上外围接口电路实现USB、串口、LCD显示以及键盘等接口功能。
通过FPGA扩展SJA1000实现CAN总线接口[11];扩展差分转单端接口芯片AM26LV32实现4路24位编码器接口[12];4路脉冲式给进轴控制输出信号由FPGA产生,经高速光藕芯片HCPL0631隔离输出控制给进轴[13];64入24出标准I/O接口由光藕TLP621和光继电器 AYQ211实现[14-15]。
本文主要介绍FPGA和单片机两部分软件设计。
1.2.1 FPGA软件设计
FPGA通过编程实现了I/O接口、CAN总线接口、与单片机接口部分的译码及寄存器功能,还实现编码器和脉冲式给进轴控制的时序逻辑控制功能。
FPGA软件设计采用模块化设计方法,顶层采用图形界面设计,各组成模块采用Verilog HDL硬件描述语言进行设计。FPGA内部逻辑框图如图3所示。I/O接口、CAN总线接口以及编码器等模块主要涉及计数器、译码器和寄存器的设计,功能简单、实现方便。本文主要介绍功能相对复杂的脉冲式给进轴控制模块和单片机接口部分的软件设计。
图3 FPGA内部逻辑框架
1.2.1.1 脉冲式给进轴控制模块设计
脉冲式给进轴控制模块控制数控系统伺服给进轴,该模块输出频率最高为500KHz的均匀脉冲,并以2ms的插补周期更新脉冲输出频率。
根据插补周期,设计主时钟频率为16MHz,输出脉冲高电平固定宽度为5个主时钟周期,即312.5ns。设单周期输出脉冲个数为x,输出脉冲周期长度 (主时钟周期数)为y,有公式y=32000/x-5,使得2ms周期内发出的x个脉冲分布基本均匀。该方法计数准确且余数处于周期的尾部,可使给进轴运转平稳。
公式的运算由ARM处理器完成,处理器将运算结果送入脉冲式给进轴控制模块。x,y值经过一级缓冲后送给脉冲时序产生模块。缓冲保证2ms周期内计数值不被刷新,并且在每个周期的末尾时刻更新x,y的值,使得新的周期按照新的数据完成给进轴的控制输出。脉冲式给进轴控制模块框图见图4。
图4 脉冲式给进轴控制模块框架
1.2.1.2 单片机接口模块设计
FPGA内部设计6个12位数据寄存器,分别对应2路模拟量输出和4路模拟量输入。设计1个8位控制寄存器由ARM处理器写入控制命令,单片机读取控制寄存器值,并按相应的控制命令执行数/模或模/数转换。
单片机读取转换使能位有效,且读入控制命令为D/A转换时,单片机接着读取对应通道的模拟量输出数据寄存器,然后通过D/A变换后输出模拟量。当读入控制命令为A/D转换时,单片机采集对应通道的模拟量,经A/D变换后将数据写入FPGA,并触发FPGA向处理器发送中断请求。转换命令寄存器内容见表1。
转换命令寄存器的内容被读取后FPGA程序控制该寄存器清零,从而保证下次执行更新后的转换命令。
表1 转换命令寄存器
1.2.2 单片机软件设计
单片机与FPGA之间通过12位AD数据线、12位DA数据线、3位地址信号、读写信号完成数据交互,实现系统A/D和D/A功能。信息交互方式描述如下:ARM处理器通过写FPGA内部转换控制寄存器,发送D/A或A/D转换请求,单片机循环读取FPGA内部转换命令寄存器内容,并完成相应的D/A、A/D转换。单片机程序流成图如图5所示。
在完成FPGA代码设计后,通过仿真对系统主要功能进行了测试和验证。先对各模块进行分别设计和仿真,确认功能正常后再将代码合成进行整个工程的仿真。本文主要介绍编码器模块和脉冲式给进轴控制模块的仿真结果与分析。
2.1.1 编码器模块仿真与分析
编码器模块的输入信号为伺服反馈脉冲,编码器通过计数反馈脉冲值得到伺服运动位置和运动方向。该模块仿真结果如图6所示。图中,方向控制信号DIRCON为低时,若脉冲A在脉冲B前,编码计数器正向计数,表示正转;若脉冲A在脉冲B后,编码器逆向计数表示反转。由仿真结果可见,脉冲计数值为反馈脉冲值的4倍,计数值与输入吻合,模块功能正常。
2.1.2 脉冲式给进轴控制模块仿真与分析
图5 单片机程序流程
将初始脉冲输出个数x设为1000,经计算可得y值为27,并在下一2ms周期前将x值设为333,对应的y值为91,信号pulse1为脉冲输出,pulse2为脉冲输出使能信号,高电平有效。仿真结果如图7、图8所示。由仿真结果1可见,模块输出脉冲均匀。由仿真结果2分析,周期计数器c每计32000个clk时钟后清零,保证2ms周期精准无误;输出脉冲计数器a在第一周期末尾计数共1000个,脉冲输出个数准确,仿真结果功能正常。
各部件生产完成后,将数控ARM板、键盘、液晶显示屏、电源模块、转接板等部件集成到机箱内部,并按图9连接数控系统与伺服驱动等实验设备。然后对系统I/O接口、AD/DA接口、编码器、显示器和键盘接口、手轮接口、给进轴控制接口等功能进行测试。本文主要介绍给进轴控制接口和AD/DA接口的实验情况。
在开发机上编写单次脉冲发送测试程序并下载到数控系统上运行,与伺服相连接的监控微机能实时监控伺服驱动器的运行情况,包括收到的脉冲个数和电机转速。分别测试极大值和其它几个典型值并记录结果于表2。随后系统运行AD/DA测试程序,通过高精度数字万用表和稳压电源对系统模拟部分进行测试,测试记录见表2。
图9 测试连接
对实验数据进行分析,系统A/D输入精度约为±5LSB(±0.06mV),D/A 精度约为±0.16mV (±4LSB)。伺服驱动器收到的脉冲数与发送的脉冲个数相等,示波器观测到的输出脉冲波形均匀,当输入值为1000时,脉冲输出频率达到500KHz。在单次发送脉冲测试正确后,用周期为2ms的中断触发脉冲输出,同过伺服监控微机观察到给进电机转速平稳。其它接口如掉电保护功能、I/O接口、通信接口、显示和键盘等接口经实验验证功能正常。
本文实现的经济型数控系统具有以下特点:
(1)所选用处理器具有较强的浮点运算能力,提高了经济型数控系统插补运算性能;
(2)提供多路大容量位置反馈编码器,可实现较为精确的闭环控制功能;
(3)数控控制接口丰富,实现2路主轴,4路给进轴的控制功能。给进轴控制采用脉冲输出式方式;
(4)通信接口丰富,实现了2路RS232串行接口,1路标准以太网接口,1路CAN总线接口,可实现数控系统的网络化,并且提高了系统的可扩展性;
(5)实时数据掉电保护功能,可恢复掉电前的关键数据,降低废品率,节约加工成本;
(6)采用高集成度FPGA设计,可靠性高、功耗低,FPGA程序设计采用模块化方法,可扩展性好。
本文在对国内经济型数控系统体系结构以及发展现状进行综合分析的基础上,提出并实现了以ARM处理器EP9315和FPGA为核心的经济型数控系统。该系统较现有经济型数控产品具有浮点运算能力较强、接口丰富、可扩展性强,并提供掉电保护功能等特点,系统设计时通过多种方法降低成本,实现了较高的性能价格比。经实验,系统各项功能正常,最终产品可通过裁减或扩展的方式适应各种经济型数控机床的实际需求。
[1]WANG Yulin.The need for developing economical CNC system[DB/OL].http://www.cnki.com.cn/Article/CJFDTOTALJCYY200610081.htm,2011(in Chinese).[王玉琳.发展经济型数控系统的必要性 [DB/OL].http://www.cnki.com.cn/Article/CJFDTOTAL-JCYY200610081.htm,2011.]
[2]LIAO Xiaoguo.CNC technology [M].Wuhan:Hubei Science and Technology Press,2004 (in Chinese).[廖效果.数控技术 [M].武汉:湖北科学技术出版社,2004.]
[3]WU Zhiheng.XU Xuanbo.Trends of CNC machine technology[J].Mechanical and Electrical Engineering,2004,33 (9)(in Chinese).[吴智恒,徐旋波.数控机床技术发展趋势 [J].机电工程技术,2004,33 (9).]
[4]Trends of CNC system and CNC machine technology [DB/OL].http://articles.e-works.net.cn/445/article10136.htm,2011(in Chinese).[数控系统与数控机床技术发展趋势 [DB/OL].http://articles.e-works.net.cn/445/article10136.htm,2011.]
[5]EP9315User’s guide [DB/OL].http://www.cirrus.com,2011.
[6]Cyclone III device handbook [DB/OL].http://www.Altera.com,2011.
[7]SHEN Jianhua,YANG Yanling,HUO Xiaoshu.Principles and applications of ultra-low power MSP430series 16bits microcontroller[M].Beijing:Tsinghua University Press,2004 (in Chinese).[沈建华,杨艳琴,霍骁曙.MSP430系列16位超低功耗单片机原理与应用 [M].北京:清华大学出版社,2004.]
[8]LI Suo.Design and implementation of economical CNC system based on uC/OS II and the hardware interpolation chip [D].Beijing:Graduate School of Chinese Academy of Sciences,2006 (in Chinese).[李锁.基于uC/OS-II及硬插补芯片的经济型数控系统的设计与实现 [D].北京:中国科学院研究生院,2006.]
[9]FM22L16datasheet [DB/OL].http://www.ramtron.com/files/datasheets/FM22L16_ds.pdf,2011.
[10]KSZ8721BL datasheet [DB/OL].http://www.alldatasheet.com/datasheet-pdf/pdf/412972/MICREL/KSZ8721BL.html,2011.
[11]Sja1000datasheet [DB/OL].http://www.zlgmcu.com/philips/can/sja1000/sja1000_cn.pdf,2011.
[12]Am26LV32datasheet [DB/OL].http://www.ti.com,2011.
[13]HCPL0631datasheet [DB/OL].http://www.avagotech.com/docs/AV02-0940EN,2011.
[14]TLP621datasheet [DB/OL].http://Toshiba-components.com/docs/optp/tlp621_en_datasheet.pdf,2011.
[15]AQY211EHA datasheet [DB/OL].http://panasonic-denko.co.jp/ac/e/index.jsp,2011.