当前位置:首页 > 单片机 > 单片机
[导读]引言 数控技术是发展尖端工业的使能技术和基础装备,数控系统作为数控车床的大脑,其性能直接影响甚至决定着机床的整体性能。数控机床既是高新技术专业不可缺少的基础装备,又是传统产业更新换代的重要手段。随着半导

引言

数控技术是发展尖端工业的使能技术和基础装备,数控系统作为数控车床的大脑,其性能直接影响甚至决定着机床的整体性能。数控机床既是高新技术专业不可缺少的基础装备,又是传统产业更新换代的重要手段。随着半导体技术的飞速发展,数控系统逐渐朝嵌入式方向发展。嵌人式系统是近年发展最快的技术之一,它是以应用为中心,以计算机技术为基础、软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。目前市面上主流的经济型数控系统如广州数控的GSK980TDb和北京凯恩帝K90Ti等都是使用了ARM处理器构建的嵌入式数控系统。

本数控系统硬件平台分为两大组成部分:ARM子系统和FPGA子系统,采用主从式的两级插补结构。ARM子系统采用三星S3C24I0处理器,主要用于粗插补计算,以及键盘、显示和D/A转换等管理工作。FPGA子系统采用Altera公司的ACEX系列芯片,主要负责系统的精插补脉冲输出、编码器脉冲计数以及I/O控制等工作。

本数控系统软件部分采用Xenomai实时化方案改造标准Linux内核,构建基于Xenomai的实时嵌入式操作系统。Xenomai/Linux系统为用户程序提供了内核空间和用户空间两种模式,前者通过系统调用接口实现,后者通过实时内核实现。用户空间的执行模式保证了系统的可靠性和良好的软实时性,内核空间程序则能提供优秀的硬实时性。

1 系统硬件模块设计

数控系统开发的关键是软件部分,为缩短系统开发周期,本系统尽量采用模块化设计,积极利用市场现有的成熟技术。该数控系统按功能模块构架设计,大致划分为如下几个模块:

控制模块:控制模块的主处理器采用市面上流行的三星S3C2410处理器,片上运行嵌人式Linux+Xenomai操作系统,负责信息存储、LCD显示、串口传输、USB接口的处理,实现译码、文件系统、图形显示和PLC等功能。控制模块采用市面流行的MINI2440开发板实现控制功能,该开发小板集成了三星S3C2440微处理器、并使用两片外接的SDRAM芯片,两片共64Mb并连在一起形成32位的数据总线宽度;配备2Mb的NOR FLASH和128Mb的NAND FLASH,支持两种FLASH启动,有利于开发阶段的调试和系统文件的烧写。

键盘模块:采用AVR单片机,负责键盘扫描、LED灯点亮等信号处理,通过串行口与ARM进行通信。

FPGA模块:该模块采用AITERA的FPGA控制。负责输入输出接口控制、编码器反馈和机床I/O信号处理。FPGA模块与键盘模块一起集成设计在核心板上,采用4层板设计,留出各个JTAG接口,利于集中调试和烧写。

电源及接口模块:该模块主要用于核心板和控制板的供电及I/O接口处理。该模块设置在I/O接口板上,该板同样采用4层板设计,配置各种外部连接和调试插头。

各模块组成的数控系统硬件结构如下图所示:

点击图片查看大图

图1 系统硬件结构

2 系统软件模块设计

2.1数控系统软件平台的选择

数控系统本身是一个复杂的多任务并发的实时应用系统,目前市面上比较流行的实时操作系统有VxWorks, QNX等,这些系统实时性好,但开放性差并且价格昂贵;开源但不免费的uC/OS-II是由美国人Jean J.Labrosse先生所编写的实时嵌入式操作系统内核,实时性好并且相当精简,但由于其仅是操作系统内核,针对其内核要进行开发的内容和项目比较多,影响开发进度;因此本系统选用开放性好、移植性强、免费并且开源的嵌人式Linux+Xenomai实时操作系统作为软件平台,该软件平台具有良好的用户态实时性和优秀的内核态实时性,可分别用于实时性不高的软实时任务和实时性要求很高的硬实时任务。

2.2 系统的软件结构

系统软件部分的开发是关乎整个数控系统研发成败的关键。数控系统具备的功能比较多,但其主要功能是解释翻译数控代码,并按照代码要求自动完成工件的加工。自动加工过程主要是完成刀具轨迹的控制,如加减速、插补、位置控制等;其次是一些逻辑控制,如冷却液开关及限位控制等等;除具备主要功能外,数控系统应该具备良好的人机界面等功能。如何合理的布置这些层次结构及划分模块,对整个数控系统的开放性、后期可扩展性以及系统的性能都具有重要意义。结合选用的嵌入式Linux+Xenomai软件平台,综合考虑数控系统的功能需求及多任务之间数据依赖等要求,我们把系统分两层进行开发:用户层和内核层,每层又划分为若干模块和子模块,同层模块相互配合共同完成该层任务,用户层与内核层之间通过命名管道实现数据通信。

用户层:主要提供系统的人机接口界面,人机接口界面内包含有位置界面、程序界面、刀补界面、设置界面、参数界面和诊断界面。人机接口界面为用户提供直观的操作界面及各种加工信息、状态参数和诊断参数等,等待接受用户的操作要求,并将操作要求和数据处理后传递给内核层。

内核层:主要用于内核控制、运算控制、输人输出控制,分算法模块和FPGA模块;算法模块内又分译码、预插补、插补、位置控制、加减速控制、PLC控制等子模块。每个子模块都是一个单独的线程,子模块之间通过消息队列进行通信。内核层中的算法模块是整个系统的核心,它进行的都是实时性要求很高的插补、加减速、位置等控制任务,实现毫米级甚至微秒级的间隔周期;决定着系统的整体性能。FPGA模块用于直接控制硬件芯片,完成输人输出控制。算法模块和FPGA模块均设计为内核模块中,系统启动时,直接加载到实时内核中。


具体划分如图2所示:

点击图片查看大图

图2 系统软件结构和模块划分

3 系统软件详细设计

3.1 用户层与内核层的通信设计

用户层与内核层在嵌人式Linux系统中属于两个相对独立的空间,两个空间之间不能直接进行通信和数据交换。嵌入式Linux系统进行Xenomai实时化改造后,管道通信、消息队列和共享内存等全部保留。用户层与内核层通过管道通信进行连接,在内核层建立管道后,在用户层可以通过读取设备文件进行管道读写。

内核层创建及读写管道如下:

int rt_pipe_create (RT_ PIPE *pipe, const char*name, int minor,siu t poolsize); //创建管道

ssize t rt_pipe_receive (RT_PIPE *pipe, RT_PIPE_MSG **msgp, RTIME timeout);

//从管道接收一条信息;

ssize_t rt_pipe_send (RT_PIPE *pipe, RT_PIPE_MSG *msg, size_tsize, int mode);

//向管道发送一条信息

用户层读写管道如下:

int PipeO=open("/dev/ntp0",O_RDWR);

//打开管道文件

int write(int handle, void *buf, int nbyte);

//向管道文件写入数据

int read(int handle, void *buf, int nbyte);

//读取管道文件数据

3.2 用户层的设计

友好的人机界面是数控必须具备的功能,用户层的主要任务就是提供人机交互界面。通过比较市面上流行的GUI开发软件Qt/Embedded,MiniGUI, UC/GUI和Nano-X,结合Linux特性,本数控系统选用Qt/Embedded进行界面程序的开发。Qt/E是一个完整的基于framebuffer的GUI系统,它用C++编写,对用C语言程序有很好的兼容性,有着丰富的API函数库和图形处理功能,界面开发与图形驱动分开,易于开发和移植,同时它也是开源软件。

设计过程中,根据用户层的划分,把位置、刀补、程序等界面采用单独的QWidget设计,每个界面都有自己的头文件和cpp文件,所有界面公用一个数据结构,将各个界面通用的参数放到一起,设置一个主Mainwindow,用于系统初始化、界面切换、变量初始化以及加载系统信息等功能。主界面中对按键的处理也是相当重要的,开发过程中充分利用Qt中的按键事件,设计过程中区分按下及释放事件,并单独编写按键更新程序。具体如下:

void mainWindow::keyPressEvent(QKeyEvent *k}

void mainWindow::keyReleaseEvent(QKeyEvent *k)

void mainWindow::keyUpdateQ

用户层设计过程中着重要考虑的就是各个界面之间的通信问题,各界面之间充分利用Qt特有的信号与槽的通信机制,在界面之间进行信号发送和槽函数调用。具体实现如下:

signals: void mySignal(); //信号

public slots: void mySlotQ; //槽函数

bool QObject::connect(const QObject*sender,

const char*signal, const QObject*receiver,

const char * member);//信号与槽函数的连接



程序中可以通过emit();函数发出signals,调用与信号连接的槽函数。

3.3 内核层的设计

系统软件设计的关键仍然是内核层的设计,内核层满足硬实时任务的

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭