APP下载

基于DSP与BIOS内核的运动控制器软件系统架构

2014-10-14周晨钟李剑伟皮佑国

现代电子技术 2014年20期
关键词:数控系统

周晨钟+李剑伟+皮佑国

摘 要: 在以德州仪器(TI)公司的DSP为主控芯片,FPGA为辅助控制的运动控制器硬件平台上,采用TI公司的BIOS实时内核,提出一种运动控制器软件架构方案。该方案可以针对不同用户需求进行功能组件二次开发和移植,软件源代码采用模块化设计,具有标准化函数接口,可维护性良好。经过实验测试,能满足开放性、实时性、可移植性的要求。

关键词: 数控系统; 软件架构; 数字信号处理器; BIOS

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2014)20?0065?05

Software system architecture of motion controller based on DSP and BIOS kernel

ZHOU Chen?zhong, LI Jian?wei, PI You?guo

(DOE Key Lab of Autonomous System and Network Control, South China University of Technology, Guangzhou 510640, China)

Abstract: Texas Instruments (TI) companys BIOS real?time kernel was used on the controller hardware platform, which takes TIs DSP as the main control chip and FPGA as the auxiliary control device. A software architecture solution for a motion controller is proposed, in which the secondary development and transplantation of functional components can be achieved according to the needs of different users. The modular design is adopted for software source code, which has standardized function interface and good maintainability. The experimental test indicates it can meet the requirements of openness, real time and portability.

Keywords: CNC system; software architecture; DSP; BIOS

0 引 言

作为数控系统核心控制部件的运动控制器,市场上有基于单片机、基于ARM为主控处理+FPGA/CPLD作为辅控处理、基于DSP为主控处理+FPGA/CPLD作为辅控处理等多种硬件平台的解决方案。在不同的硬件平台上,软件系统调度方案可以采用μC/OS?Ⅱ,BIOS,RT?Linux,VxWorks等多种实时操作系统内核,因而衍生出各种软件系统的架构方案[1]。采用TI公司TMS320C6713系列DSP芯片为主控芯片+FPGA作为辅控芯片的硬件平台的解决方案,其数据吞吐量和高速浮点运算上具有一般单片机不可比拟的优势。而采用TI公司的DSP芯片和CCS的开发平台,可以使用配套的非开放源代码的BIOS实时内核,在中小型数控系统应用开发上,其更加专业,相比采用ARM硬件平台而使用的开放性源代码的实时操作系统内核,采用DSP硬件平台与BIOS内核的运动控制器稳定性更好,能够节约实时操作系统移植和测试时间,缩短开发周期,因而其是一种合理有效的解决方案[2]。

为了能够在该平台上进行有效的模块化数控功能组件的开发、维护和移植,本文提出了一种标准化的软件分层与接口架构方案。该方案可作为一种设计模式,满足不同用户的基本功能与二次开发需求。

1 系统整体方案

1.1 运动控制器硬件实现平台

本文采用的运动控制器的硬件系统[3]框图如图1所示。其中,TMS320C6713系列DSP具有浮点运算器,能快速高效地完成工件加工轨迹插补计算。其集成外部扩展扩的EDMA和EMIF总线具有数据吞吐量大的特点。该DSP主频为225 MHz,对应的指令周期为4.4 ns,相应的运算速度可达1 800 MIPS/1 350 MFLOPS,适用于中小型数控系统主控制器的需求[4]。

ACTEL公司的A3P400系类FPGA是一种高密度,等效40万门器件,其可配置的I/O可以兼容多种类型的数字电平。另外ACTEL公司提供的Libero集成开发工具,能提供数字PLL、高速FIFO等多种通用型软核模块,能够节约开开发时间与成本,是作为运动控制器外部通信总线接口的一种可靠高效的硬件方案。

图1 运动控制器硬件结构图

1.2 系统软件层次划分

本文软件系统采用三层结构划分[1],其层次结构如图2所示。

图2 软件架构层次图

(1) 用户应用接口层。可根据具体的用户需求开发各种功能的数控应用模块,并将各功能模块作为组件通过接口嵌入到系统软件中来。本文所开发的基础用户组件块及其功能将在下一节详细描述。

(2) BIOS内核层。采用TI公司的CCS3.3提供的BIOS内核以及其各种内核组件,可有效缩短内核移植和测试时间。CCS3.3提供图形化界面接口,如图3所示。其可对内核各个组件进行配置和应用。它的内核通过编译后将在文件链接时植入程序,生成最后可执行文件。

(3) 硬件驱动层。用于管理运动控制器板卡上与DSP相连的各个硬件设备的驱动,并为内核与用户应用层提供硬件访问接口。板卡硬件包括:FIFO通信缓冲器、CNC脉冲发生器、UART总线控制器、SERCOS总线控制器等。外部模拟数字硬件设备采用FPGA或专用IC实现。

图3 BIOS内核图形化配置界面

2 用户应用软件任务划分

用户应用软件组件模块可分为基础组件和扩展组件[5]。基础组件提供数控系统基本的加工、维护、调试、监控等各种接口控制功能。扩展组件根据特定的用户需求可选择性裁剪安装,一般扩展组件包括软PLC编程接口,SERCOS总线、脉冲、TCP/IP、UART等各种通信协议数据包解析与格式转换等功能。BIOS内核是一款多任务实时内核,可以在系统多个用户基础任务之间进行调度。本文所描述系统基本用户组件任务划分见图4。

图4 运动控制器硬件结构图

2.1 HMI任务

HMI通信数据包帧格式如表1所示。HIM任务处理流程如图5所示。

(1) 通信数据包格式。通信数据包格式固定,但功能信息结构格式不固定[6]。不同的信息,如调试信息、G代码脚本信息的内容等采用不同的信息格式,这样用户在增加新的功能组件时,只要自己编写新的信息格式和编码与解析方式,就能利用原有的通信协议进行开发,使得系统代码能够移植和重新利用。

表1 HMI数据包帧格式

图5 HIM任务处理流程图

(2) 数据包生成器。从已处理完的HMI信息队列中按照不同约定信息格式读取信息,并按照数据包的格式为其添加帧头、物理地址、校验码等,生成一组数据帧,并将该数据帧通过EMIF总线写入FPGA中的UART发送FIFO,待其转换为对应数字电平发送给上位机。

(3) 数据包解析器。通过EMIF总线从在FPGA中实现的UART总线接收FIFO中读取一个数据帧,并按照约定的用户应用的解析方式解析成对应的信息,并将信息加载到HMI接收信息队列,等待数据处理与交换任务启动进行处理。

2.2 用户数据处理与交换任务

用户数据处理与交换任务流程如图6所示。

本系统提供G代码脚本解释器、调试维护命令壳、系统错误诊断器三个基础组件。用户可根据特定需求植入新的组件,并编写对应组件接口信息编码与解析方式。

(1) G代码脚本解释器[7]

数控G代码解释的方案很多。部分厂商采用在上位机解析成配置信息码,并发送给运动控制器的方案。但此方案会增加数据通信量,使得通信时延增加。本系统采用的方案是:上位机以字符串格式将数控G代码脚本信息打包发送给运动控制器,运动控制器对字符串进行重新组合,并通过识别组合码配置数控参数控制块。该方案可以减少通信负担,减小通信延时,但是将增大DSP的运算处理量。因为DSP运算速度明显要块于通信传输速率,所以该方案是一种合理的折中方案。

图6 用户数据处理与交换任务流程图

(2) 调试维护命令壳

该功能用于系统开发阶段和系统维护阶段。系统集成该功能够之后,根据开发人员提供的维护指令手册,在上位机输入维护指令,返回运动控制器相应的关键系统数据结构的运行状态码,能帮助维护人员快速地判断系统运行中的故障,并为数控机床每个加工轴提供电机测试接口。

(3) 系统错误诊断器

负责管理和存储数控系统需要监控运行的重要模块信息,一旦重要模块运行发生故障,则把错误编码保存在系统错误诊断器中,并在任务运行时将错误码发送给上位机。

2.3 运动控制任务

运动控制任务是运动控制器最核心的部分,也是BIOS内核所管理的任务中优先级最高的一个任务。不同厂商的控制器有不同的实现方案。为了能够清晰理解与移植本文所述系统的运动控制程序,图7给出了运动控制的行为与数据流框图。

根据图7所描述的运动控制行为,编写的运动控制任务程序的流程图如图8所示。

图7 运动控制的行为与数据流图

图8 运动控制任务流程图

(1) 加工轨迹计算。加工轨迹计算控制器,综合数控配置参数与实时的反馈数据,通过各种数值计算方法,进行各种数控插补计算,得到最终的加工数据,可以通过脉冲编码格式或者SERCOS通信总线,发送给控制CNC的每个轴的伺服电机驱动器,控制电机的旋转与进给。

(2) 电机驱动管理。实时地管理监控CNC每个轴的电机驱动器。读取驱动器的工作状态,将需要上位机进行实时监控的数控实时运行数据写入CNC接收信息队列,并通过数据交换控制任务,发送到上位机用于监控。当有电机驱动器运行出现异常时,可以及时进行保护停止,并发送运行故障编码。

3 软件方案的验证性测试

在本实验室研发的嵌入式数控系统测试平台如图9所示。其中,HMI板通过JTAG接口与调试主机1相连,运动控制板通过JTAG接口与调试主机2相连。HMI板与运动控制板通过RS 422总线连接,并在采用UART协议进行通信[6,8]。

由于电机运行轨迹与效果无法很好通过图片展示,并且本实验目的主要是验证整个软件系统架构的可行性,并修补程序BUG。因而建议采用硬件模拟运行加Matlab仿真的验证方法。

图9 运动控制测试平台

采用圆弧插补测试的方法,在上位机通过G代码脚本格式导入测试指令脚本,运动控制器读取数据包,解析出测试脚本信息后,进行处理和运算,得出的运算数据保存后,导入Matlab仿真软件,生成运行轨迹图,以便模拟仿真电机的实际运行轨迹。表2为CNC测试脚本的加工轨迹数据。

表2 测试加工轨迹数据

图10为经过系统运行得到的加工轨迹与原始测试数据的轨迹对照。

图中点线:测试脚本数据拟合曲线;实线:DSP计算的加工数据拟合曲线。从方案验证性测试实验得到的模拟数据拟合图像和原始脚本测试数据对比,可以验证该软件架构方案和基础用户组件能在实验室的CNC系统平台上稳定可靠地运行,因而验证了该软件架构方案的可行性。

图10 加工轨迹测试与模拟轨迹

4 结 语

本文基于TI公司的C6713系列DSP+FPGA作为硬件实现方案的运动控制器平台,提出一种可移植性软件架构方案。通过三层软件结构模型的描述和基础性用户组件与接口的任务划分,为用户的功能的二次开发与软件代码的维护提供的一个基础性平台。并通过加工脚本测试验证了方案的可行性与稳定性。

参考文献

[1] 王涛,王太勇,许爱芬,等.嵌入式实时操作系统在数控系统设计中的应用[J].计算机工程,2008,34(4):250?268.

[2] 孙禾凤.基于DSP/BIOS的运动控制器软件开发[D].南京:南京航空航天大学,2008.

[3] 吴红军,皮佑国.基于DSP和FPGA的运动控制器的设计与实现[J].组合机床与自动化加工技术,2011(2):75?82.

[4] Texas Instruments Incorporated. TMS320C6713B floating?point digital signal processor SPRS294B [R]. USA: Texas Instruments Incorporated, 2006.

[5] 毛军红,李黎川,吴序堂.机床数控软件化结构体系[J].机械工程学报,2006,36(7):48?51.

[6] 蒋明柯,皮佑国.数控系统中RS 485串行通信协议的设计[J].组合机床与自动化加工技术,2013(5):23?26.

[7] [美]凯赛达.计算机数控技术应用:加工中心和切削中心[M].北京:清华大学出版社,2006.

[8] 范德和,皮佑国.基于DSP和FPGA的运动控制器高速串行通信设计[J].组合机床与自动化加工技术,2011(9):58?62.

[9] 任伟,张彦军,李京蔓,等.基于FPGA的数字量变换器测试系统设计[J].计算机测量与控制,2013,21(1):71?77.

[10] 李善锋,刘敬猛,徐东,等.基于ARM+DSP的嵌入式Linux数控系统设计[J].机床与液压,2012,40(13):94?97.

由于电机运行轨迹与效果无法很好通过图片展示,并且本实验目的主要是验证整个软件系统架构的可行性,并修补程序BUG。因而建议采用硬件模拟运行加Matlab仿真的验证方法。

图9 运动控制测试平台

采用圆弧插补测试的方法,在上位机通过G代码脚本格式导入测试指令脚本,运动控制器读取数据包,解析出测试脚本信息后,进行处理和运算,得出的运算数据保存后,导入Matlab仿真软件,生成运行轨迹图,以便模拟仿真电机的实际运行轨迹。表2为CNC测试脚本的加工轨迹数据。

表2 测试加工轨迹数据

图10为经过系统运行得到的加工轨迹与原始测试数据的轨迹对照。

图中点线:测试脚本数据拟合曲线;实线:DSP计算的加工数据拟合曲线。从方案验证性测试实验得到的模拟数据拟合图像和原始脚本测试数据对比,可以验证该软件架构方案和基础用户组件能在实验室的CNC系统平台上稳定可靠地运行,因而验证了该软件架构方案的可行性。

图10 加工轨迹测试与模拟轨迹

4 结 语

本文基于TI公司的C6713系列DSP+FPGA作为硬件实现方案的运动控制器平台,提出一种可移植性软件架构方案。通过三层软件结构模型的描述和基础性用户组件与接口的任务划分,为用户的功能的二次开发与软件代码的维护提供的一个基础性平台。并通过加工脚本测试验证了方案的可行性与稳定性。

参考文献

[1] 王涛,王太勇,许爱芬,等.嵌入式实时操作系统在数控系统设计中的应用[J].计算机工程,2008,34(4):250?268.

[2] 孙禾凤.基于DSP/BIOS的运动控制器软件开发[D].南京:南京航空航天大学,2008.

[3] 吴红军,皮佑国.基于DSP和FPGA的运动控制器的设计与实现[J].组合机床与自动化加工技术,2011(2):75?82.

[4] Texas Instruments Incorporated. TMS320C6713B floating?point digital signal processor SPRS294B [R]. USA: Texas Instruments Incorporated, 2006.

[5] 毛军红,李黎川,吴序堂.机床数控软件化结构体系[J].机械工程学报,2006,36(7):48?51.

[6] 蒋明柯,皮佑国.数控系统中RS 485串行通信协议的设计[J].组合机床与自动化加工技术,2013(5):23?26.

[7] [美]凯赛达.计算机数控技术应用:加工中心和切削中心[M].北京:清华大学出版社,2006.

[8] 范德和,皮佑国.基于DSP和FPGA的运动控制器高速串行通信设计[J].组合机床与自动化加工技术,2011(9):58?62.

[9] 任伟,张彦军,李京蔓,等.基于FPGA的数字量变换器测试系统设计[J].计算机测量与控制,2013,21(1):71?77.

[10] 李善锋,刘敬猛,徐东,等.基于ARM+DSP的嵌入式Linux数控系统设计[J].机床与液压,2012,40(13):94?97.

由于电机运行轨迹与效果无法很好通过图片展示,并且本实验目的主要是验证整个软件系统架构的可行性,并修补程序BUG。因而建议采用硬件模拟运行加Matlab仿真的验证方法。

图9 运动控制测试平台

采用圆弧插补测试的方法,在上位机通过G代码脚本格式导入测试指令脚本,运动控制器读取数据包,解析出测试脚本信息后,进行处理和运算,得出的运算数据保存后,导入Matlab仿真软件,生成运行轨迹图,以便模拟仿真电机的实际运行轨迹。表2为CNC测试脚本的加工轨迹数据。

表2 测试加工轨迹数据

图10为经过系统运行得到的加工轨迹与原始测试数据的轨迹对照。

图中点线:测试脚本数据拟合曲线;实线:DSP计算的加工数据拟合曲线。从方案验证性测试实验得到的模拟数据拟合图像和原始脚本测试数据对比,可以验证该软件架构方案和基础用户组件能在实验室的CNC系统平台上稳定可靠地运行,因而验证了该软件架构方案的可行性。

图10 加工轨迹测试与模拟轨迹

4 结 语

本文基于TI公司的C6713系列DSP+FPGA作为硬件实现方案的运动控制器平台,提出一种可移植性软件架构方案。通过三层软件结构模型的描述和基础性用户组件与接口的任务划分,为用户的功能的二次开发与软件代码的维护提供的一个基础性平台。并通过加工脚本测试验证了方案的可行性与稳定性。

参考文献

[1] 王涛,王太勇,许爱芬,等.嵌入式实时操作系统在数控系统设计中的应用[J].计算机工程,2008,34(4):250?268.

[2] 孙禾凤.基于DSP/BIOS的运动控制器软件开发[D].南京:南京航空航天大学,2008.

[3] 吴红军,皮佑国.基于DSP和FPGA的运动控制器的设计与实现[J].组合机床与自动化加工技术,2011(2):75?82.

[4] Texas Instruments Incorporated. TMS320C6713B floating?point digital signal processor SPRS294B [R]. USA: Texas Instruments Incorporated, 2006.

[5] 毛军红,李黎川,吴序堂.机床数控软件化结构体系[J].机械工程学报,2006,36(7):48?51.

[6] 蒋明柯,皮佑国.数控系统中RS 485串行通信协议的设计[J].组合机床与自动化加工技术,2013(5):23?26.

[7] [美]凯赛达.计算机数控技术应用:加工中心和切削中心[M].北京:清华大学出版社,2006.

[8] 范德和,皮佑国.基于DSP和FPGA的运动控制器高速串行通信设计[J].组合机床与自动化加工技术,2011(9):58?62.

[9] 任伟,张彦军,李京蔓,等.基于FPGA的数字量变换器测试系统设计[J].计算机测量与控制,2013,21(1):71?77.

[10] 李善锋,刘敬猛,徐东,等.基于ARM+DSP的嵌入式Linux数控系统设计[J].机床与液压,2012,40(13):94?97.

猜你喜欢

数控系统
基于实时轮廓误差估算的数控系统轮廓控制
基于华中HNC-818AT数控系统的数控车床升级改造
基于嵌入式Soft-PLC 的三轴数控系统设计
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
GNC61数控系统的斜面加工功能
开放式弹簧机数控系统开发
飞扬FO数控系统在卧式加工中心上的应用