基于多核CPU的嵌入式数控系统研究
2018-3-27 来源:广东工业大学自动化学院,广州奇芯机器人 作者:冯文波 廉迎战,甘玉轩 张锦源 邱民 万
摘要:选择了Texas Instruments公司的C6A814x(A8+DSP)双核异构处理器作为数控系统的主控制器,开展数控系统的产品预研工作,介绍的技术方法和框架模型已经基于相关硬件平台完成全面贯通验证,提供了实现高档数控系统关键技术所需要的基木架构资源和浑然天成一体的集成平台,具备推广应用价值。
关键词:数控系统.C6A814x.A8.DSP,嵌入式Linux.多核处理器
1、多核CPU数控系统硬件架构设计
(1) 主控芯片选型
针对中高档数控系统的对硬件平台要求,本文选择德州仪器公司(TI)的C6A814x作为数控系统的主控芯片,C6A814x采用」「对称异构的多核设计方案,集成750M Hz的下MS32CC674x浮点与定点DSP处理器和1GHz主频的ARM Cortex-A8处理器在同一颗芯片上。
对于C6A814x处理器的应用开发,TI公司为客户提供了一套完整的硬件评估板、软件开发套件和CCS集成开发环境,针对ARM的应用开发,TI提供了Linux的SDK开发套件、图形开发套件、范例图形以及启动代码等。
(2) 系统硬件平台架构设计
为提高数控系统的可移植性、可伸缩性、可维护性和兼容性,硬件平台采用单元模块化结构设计,如图1所示,实时系统与非实时系统在模块上分开,即在ARM核上运行应用功能程序,在DSP核上运行实时控制程序;各CPU核之间通过内部总线进行数据交互;同时对主要的硬件模块采用8层板进行设计,提高系统的抗震和抗电磁干扰能力。
系统的硬件平台的总体设计如图1所示:

图1 数控系统硬件平台架构
C6A814x处理器的ARM核运行Linux操作系统和数控系统应用软件,实现人机交互等非实时任务,主要的功能模块包括:显示模块、键盘输入、数据存储模块以及外部数据通讯模块(RS232,USB接口、千兆以太网)。C6A814x处理器的DSP核运行SYSBIOS实时操作系统,提供多任务昔理架构,负责数控系统多通道的实时任务主要包括运动控制模块(插补运算)和业务逻辑处理模块,DSP和ARM之间通过Syslink使用消息队列进行高速互联通信。
FPGA负责外围接口电路信号采集和控制,主要功能模块包括数字脉冲信号处理模块,模拟信号处理模块,PMC模块等。PMC模块处理用于数控系统与机床之间的开关控制和信号传递,包括机床主轴的控制、刀库控制以及机床零点、限位等信号的控制。
采用模块化的设计方法,能够缩短产品的设计周期和研发周期、降低研发和制造成木、提高产品的的可靠性和设计质量。
2、多核CPU数控系统软件功能模块设计
基于上述软软硬件平台和高档数控系统的功能需求,数控系统软件功能模块设计如图2所示:

图2 数控系统软件功能模块
系统软件总共分为ARM功能区,DSP功能区、FPGA功能区和上位机软件模块。
1)ARM功能区:ARM处理器运行Linux操作系统,负责数控系统的人机交互、指令译码、刀补、故障报警诊断和网络通讯等功能模块。
2)DSP功能区:DSP运行BIOS实时系统,主要负责负责运动轨迹的前瞻和插补运算、加减速的控制和业务务逻辑处理等功能。
3)FPGA功能区:FPGA作为现场可编程门阵列,在处理乘法和逻辑运算具有明显优势。FPGA具有高速的数字信号处理能力,实时性强, 性能稳定。在FPGA中还可以内嵌软核CPU,方便用户进行资源配置,灵活性高、可移植性强。
3、多核CPU数控系统多任务和核间通信设计
良好的实时多任务昔理和CPU之间快速通信机制是实现高速实时插补和多通道技术基础,直接决定高档数控系统稳定行和可靠性。
C6A814x处理器的DSP核运行SYSBIOS实时操作系统,提供实时多任务昔理架构,负责数控系统的实时任务主要包括多通道调度、运动控制模块(插补运算)和业务逻辑模块;C6A814x处理器支持异构多核间通信组件SysLink,来实现DSP和ARM之间的高效协作。SysLink的通信组件,定义了Notify,MessageQ,ListMp和GateMp等多种核间高速互联通信机制,这些通信机制对开发者透明,开发者不必要了解实现细节直接调用相关接}}就可以完成同构或异构核间高速通信。本文就使用了SysLink的消息队列(MessageQ)实现数控系统多核多任务之间的数据通信。每个消息对了可以有多个发送端,但是只能有一个接收端,每个任务可以对多个消息队列进行读写操作。一个任务在接收消息时,必须先创建消息队列,而在发送消息前,需要打开预定的接收消息队列;多通道调度使用SYSBIOS的信号量机制来实现。

图3 多任务管理和核间通信设计图
(1) ARM核端
ARM核的应用程序通信线程调用PutPackage过程向位于ARM-DSP共享内存中的消息队列cmdMsgQ发送包含指定通道号和类型(指令/G代码)的指令信息,调用GetPackage过程从位于ARM-DSP共享内存中的消息队列infoMsgQ接受数控系统内部实时数据信息,提供给位于ARM核的数控系统应用程序使用。
(2) DSP核端
基于SysBIOS的多任务昔理机制,在DSP核建立通信分流实时任务,调用PutPackage过程从消息队列cmdMsgO获得指令信息并根据其中的类型和通道号发送给对应通道的命令消息队列和程序消息队列;调用GetPackage过程把不同通道的插补和业务逻辑处理任务的实时数据信息发送给消息队列infoMsgO,.
基于SysBIOS的多任务昔理机制,为每个的通道建立对应的插补、业务逻辑处理等实时任务,计算机床运动轨迹和操作控制序列,处理对应通道的数控系统控制业务。
实现多通道昔理的任务模块定义及说明如表1、表2所示:

表1 多通道任务模块定义及说明

表2 系统使用的消息队列
4、结束语
本文介绍一种基于嵌入式多核处理器平台的数控系统,该系统优势主要体现在以下几个方面:
(1)采用多核异构处理器架构,更加符合中高档数控系统多任务实时处理的需求。
(2)采用无风扇低功耗的SOC处理器,极大减少外围电路和器件数量,降低硬件成木,使得系统平台更稳定、更可靠。
(3)采用异构多核处理器架构,能够简化系统软硬件的结构和模块间通信设计,显著缩短开发周期,降低开发成本。
随着芯片技术的快速发展,基于多核平台的数控系统开发也将成为数控系统技术的主要发展趋势。该方案在广州奇芯机器人技术有限公司的数控系统产品中得到实际应用;扩展这种思路,具备Syslink通信机制的同构型多核处理器应用于多模块伺服驱动器产品的研发将是一个具有发展前景的工作。
投稿箱:
如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
更多相关信息