- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式开放型数控系统研究摘 要 在构建的开放式数控系统中,把μ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,进行一些显示等工作。实时中断定时发生,只是没有键盘命令,只进行一些例外监控等,不会出现插补等加工状态。一等加工的键盘命令按下,经过键盘解析任
文档评论(0)