嵌入式开放型数控系统研究
摘 要 在构建的开放式数控系统中,把μC/OS-Ⅱ实时操作系统移植到MCS-51上,在其内核上创建自己的任务,开发出实时运
动控制系统。该数控系统具有通信和网络功能。将该系统用在模拟加工平台上,验证了系统的可行性。
关键词 开放式数控 μC/OS-Ⅱ 实时操作系统
1 开放式数控
开放式数控是数控技术的发展趋势。前几年国内外对于
PC-based开放式数控讨论较多,并取得了一定成果。最近一段
时间,由于嵌入式技术的发展,采用嵌入式实时操作系统的开放
式数控逐渐引起业界的关注。其主要原因是基于PC技术的数
控系统在实时性方面有其先天不足之处。而这一方面嵌入式技
术刚好发挥了它的优势,逐渐显示出其强大的生命力。
目前采用嵌入式技术的开放型数控研究主要是指包含实时操
作系统的控制器。本文研究的是关于采用μC/OS-Ⅱ实时内核的数
控系统的软、硬件结构以及实验系统开发。和PC技术无关。
2 基本体系结构和工作原理
硬件结构以Windows 78E58(51系列)为核心,扩展了RAM,显
示、键盘接口8279,MAX232串口,8255并口以及RTL 8019 AS网络
芯片。去步进电机输出直接由78E58进行。如图1所示。
W inbond 78E58内核32kB的FlashROM,包含μC/OS-Ⅱ实
时内核在内的系统软件(即实时操作系统)约25kB左右。覆盖
了该实验系统的全部数控功能,包括输入、译码、插补、伺服输
出、显示、通讯等功能。
图1中8279主要用于管理自行设计的小键盘和LED显示
器。零件加工程序可以从小键盘输入。也可以从MAX232串行
口输入。并口8255主要用于机床I/O信号的输入、输出以及调
试时使用。8019AS是网络接口芯片,使得本嵌入式系统能和采
用TCP/IP协议的以太网连接,实现上网功能。78E58中包含一
个精简的TCP/IP协议栈。
实时时钟是嵌入式系统的一个显著特征,μC/OS-Ⅱ要求时
钟周期为10~100ms,刚好符合数控系统工作周期的需要。本
实验系统采用10ms的工作周期,复杂系统可以适当增大。
μC/OS-Ⅱ是一个源代码公开的实时占先式内核,它可以管
理64个任务,有8个留给系统,用户可以使用56个任务,每个
任务的优先级必须是不同的(对于数控系统而言这56个任务已
绰绰有余)。
GB/T 18759·1-2002开放式数控系统国家标准中,开放程度
分为三个层次。其中第二层次为“控制装置在明确固定的拓扑
结构下允许替换、增加NC核心中的特定模块以满足用户的特
殊要求”。只要在μC/OS-Ⅱ开放式内核下“挂”上不同功能的
任务,比如译码、插补、输出等模块就可以基本达到第二层次的
要求,实现开放式数控的目标。
3 开放式数控的软件实现
3·1 软件接口
整个软件系统以μC/OS-Ⅱ作为平台,并在创建的各个任务中
调用相应的应用软件模块,结合实时中断服务程序,共同完成系
统功能。为了实现开放式数控系统的模块化,提高应用软件模块
的互换性和可移植性,给各应用软件模块定义了相应的程序接
口。只要软件接口一致的应用软件模块则可以替代和互换。
下面是插补程序的部分接口定义(C语言),其中包括插补
数据的数据结构和一些相关的函数接口。
3·2 任务实现
整个软件除了μC/OS-Ⅱ以外,建立了9个任务外加一个系
统初始化例程。9个任务分别是。
9个任务被分配在一个前后台结构中,前台程序是实时性
较强的任务,包括插补任务,监控任务,机床信号输入/输出任
务。其余为后台任务,零件加工程序输入任务主要是从键盘输
入加工程序,放在存储器中。串行通信是从外部输入零件加工
程序。网络任务是和局域网交换信息。显示放在空闲任务之
中。
系统初始化在启动时只运行一次,以启动多任务OSStart()
结束,见图2
为实现各个任务之间的通信以及数据共享,μC/OS-Ⅱ提供
了三种方法:信号量、邮箱和消息队列。下面以信号量为例说明
任务间通信的方法。用户任务形式如下:
这样,任务就是一个无限循环的C语言函数。函数中任务
通过OSSemPend()函数等待相应信号量的到来,触发任务的执
行;并利用系统延时函数OSTimeDly()延时。如图2所示,系统
初始化完成的工作为μC/OS-Ⅱ初始化,创建信号量,创建任务,
接口初始化等。在启动多任务OSStart();后,就处于μC/OS-Ⅱ
的调度下运行。首先,在键盘命令没有下达之前,系统处于等待
状态,各用户任务都在等待信号量的到来。在此期间,系统执行
的是优先级最低的任务OSTask Idle,进行一些显示等工作。实
时中断定时发生,只是没有键盘命令,只进行一些例外监控等,
不会出现插补等加工状态。一等加工的键盘命令按下,经过键
盘解析任务KeyAnalyse Task对任务的解析,向译码任务Trans-
late Task发出信号量,进入译码过程,译码任务从存储器中取出
零件加工程序进行编译处理,同时给插补程序发出信号量,等到
实时中断发生后,插补任务接收到信号量后,即开始插补加工。
本次实验系统采用步进电机伺服系统,一边插补,一边就向外输
出。译码任务在没有遇见M02、M30之前,则不断进行编译,一
直到零件加工程序结束。零件加工程序输入任务InputTask是
在非加工状态下运行的,下达键盘命令后经KeyAnalyse Task任
务解析,向输入任务InputTask发出信号量。InputTask在获得
信号量后,即开始从键盘输入零件加工程序至存储器。串行通
信和网络通信亦设计成非加工状态下执行。
在以太网网络通信的硬件设计上,采用了RTL8019AS,它是一
款10Mbps的以太网网卡控制芯片,大量应用于PC机的ISA接口
以太网网卡中。虽然如今计算机网卡市场中的主流产品已经是
PCI接口的10M/100M自适应的以太网网卡了,但是,RTL8019AS的
生产线仍然没有停止。因为RTL8019AS支持8位数据总线,在跳
线工作方式下可以非常方便地连接单片机,所以在嵌入式系统领域
中仍然有很大的应用价值。图3为硬件连接图。
除了硬件连接外,在软件上要编写相应的驱动程序。内容
有芯片初始化、发送以太帧数据包和接收以太帧数据包三种。
4 开放式数控的实现和验证
按照前面提出的系统体系结构,我们搭建了一个小型的开
放式数控实验台。在图1的基础上,通过P1口接一个X-Y实验
工作台。通过键盘输入一段零件加工程序,在按下起按钮后,进
行译码、插补、伺服输出。工作台的X、Y轴由二台步进电机驱
动,插补算法采用最常用的逐点比较法,演示的结果达到了预期
的效果。证明了开放式数控系统控制思想的正确性。
5 结束语
基于μC/OS-Ⅱ的开放式数控系统工作台稳定可靠,且开放
性强,虽然就目前只是初步实现了数控系统的基本功能,但可以
随时根据需要,利用嵌入式系统的软硬件资源进行功能扩展,方
便二次开发,以满足不同的功能要求。是实现开放式数控和
“个性化”CNC的一个有效途径。
参 考 文 献
[ 1 ]谭峰,等.基于μC/OS-Ⅱ的开放式数控系统研究.机械与电子,
2004, 12.
[ 2 ]李诚人,等.嵌入式系统及单片机应用.北京:清华大学出版社,
2005.
[ 3 ]谭峰,等.基于以太网的嵌入式数控系统的研究开发.西北工业大
学硕士论文, 2005, 3.
[ 4 ]李诚人,等.现代机电控制系统.西安:西北工业大学出版社, 1999.
[ 5 ] GB/T 18759. 1-2002,开放式数控系统标准第一部分:总则.
我能帮你