集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2432|回复: 6

基于ARM和CPLD的开放式数控系统设计

[复制链接]
zhiweiqiang33 发表于 2014-10-22 15:31:04 | 显示全部楼层 |阅读模式
随着工业自动化技术和数控技术的飞速发展,数控系统的功能得到了极大的扩展。用户对数控系统提出可联网、开放性等更高的要求。开放性是数控系统未来的发展趋势。开放式数控系统的核心是建立一种对数控系统的软硬件开发商、机床制造商和最终用户都开放的体系结构和标准,使数控系统不依赖于特定的厂家,达到可互联、可互操作、可重组和可互换的目的[1]。基于工业PC的开放式数控系统已得到广泛运用,它能够快速开发出独具特色的软件系统,具有良好的人机界面,但资源利用率不高、体积较大、携带不方便。ARM、CPLD和DSP等微处理器的快速发展,为开放式数控系统的发展提供了新的实现方法[2]。

ARM 具有较强的事务管理功能,可以运行具有良好人机界面的多线程应用程序,其优势主要体现在程序控制上。CPLD具有较强的逻辑运算能力,可用于进行插补运算及运动控制等。Windows CE是嵌入式实时操作系统,其独特体系结构和运行机制使其能够快速响应外部中断,并调度相关程序进行处理[3],可以满足数控系统的实时性要求。本文提出一种基于ARM9和CPLD的开放式数控系统。该系统中ARM9移植了Windows CE嵌入式操作系统,通过开发应用程序实现信息输入、运动显示和粗插补等功能; CPLD实现精插补和运动控制。整个系统具有结构紧凑、集成度高、可靠性强和友好人机交互等特点。

1 系统设计

1.1 系统硬件设计

本系统ARM采用SAMSUNG公司的S3C2410,CPLD采用ALTERA公司FLEX6000系列的EPF6016。系统硬件结构如图1所示。





S3C2410 内部资源丰富,可嵌入Windows CE操作系统,并进行复杂的信息处理。系统以LCD和触摸屏为人机交互装置,采用10 MB的以太网接口芯片CS8900A,可连接到Internet或局域网。在PC机上生成的CAD文件通过以太网或SD卡输入到处理器中。系统采用 NANDFLASH存储数据和程序。

EPF6016是ALTERA公司为大容量设计提供的一种低成本可编程交织式门阵列,共有16 000个可用门、1 320个逻辑单元、117个I/O引脚,每个I/O引脚都有独立的三态输出使能控制。EPF6016接收ARM的插补指令进行精插补,输出控制信号,并采集编码器的反馈信号和限位开关零点开关的状态信号。

本系统将EPF6016直接连接到S3C2410的存储总线上。S3C2410与EPF6016之间依靠24位数据总线和8位地址总线进行指令和数据的传输,提高了通信效率。S3C2410与EPF6016之间的总线还包括了片选信号线、读写控制信号线和中断信号线。

1.2 系统软件开发

本系统软件开发包括Windows CE应用程序开发和CPLD程序开发。采用C#语言开发Windows CE应用程序,采用VHDL语言开发CPLD程序。系统软件结构如图2所示。





Windows CE应用程序是基于多线程的。应用程序包括信息输入、译码、运动显示、故障管理、电机启动停止和插补等功能模块,每个功能模块都是一个独立的线程。信息输入、译码是非实时任务,线程优先级设为默认值251;故障管理、电机启动停止是实时非周期性任务,属于弱实时任务,线程优先级设为247,即用户态实时级别;插补、运动显示是实时周期性任务,属于强实时任务,线程优先级设为3,即核心态实时级别。

CPLD外接40 MHz时钟,程序中使用的所有时序均由该时钟分频而得。本系统采用基于数据采样法的粗精两级插补结构,插补周期为8 ms,采样周期为4 ms。因此中断程序和精插补程序基于125 Hz时序运行;数据采样、故障监测和速度位置控制基于250 Hz时序运行。

系统数据传递如图3所示。插补是本系统的一个重要环节,因为插补直接影响系统的实时性、运动控制和加工精度。从图3可见粗插补计算结果从应用程序传递到操作系统内核,再由内核发送到CPLD进行精插补运算。由于插补是一项硬实时任务,因此数据传递必须实时准确。ARM与CPLD之间以中断方式保证通信的实时性。而应用程序和操作系统内核通信的实时性则由操作系统的实时性保证。





2 系统中断控制

本系统采用基于数据采样法的粗精两级插补结构,插补周期为8 ms,采用中断方式保证通信的实时性。中断信号由CPLD每隔8 ms定时产生。当接收到CPLD的中断信号时,ARM把粗插补计算结果写入CPLD的固定地址。CPLD从固定地址读取数据计算脉冲数,输出脉冲信号,完成运动控制。本系统的中断控制分成3部分:Windows CE中断服务、应用程序中断响应程序和CPLD程序。

2.1 Windows CE中断服务

Windows CE是实时操作系统,其实时性体现在6个方面:(1)具有256个线程优先级;(2)应用程序可以控制提供给每个线程的时间片,计时器精确到1 ms;(3)优先级倒置处理机制;(4)支持嵌套中断;(5)中断延迟时间短;(6)更细粒度的内存管理控制[4-5]。Windows CE以上机制特别是中断体系保证了数控系统的实时性。

Windows CE的中断体系包括核心态的中断例程ISR和用户态的中断线程IST两部分。ISR主要响应中断请求,识别中断源,给操作系统内核返回相应的中断标识。 ISR具有最高的优先级。本系统采用ISR完成中断服务。进入ISR以后,系统中所有的同级或下级中断均被屏蔽。为了不降低系统执行多任务的性能,ISR 应非常短小精干,以使其他中断也能够获得及时的服务。

定制Windows CE中断服务程序步骤如下:

(1)在操作系统内核中注册事件hMotor,用于操作系统和应用程序中断响应的同步。

(2)在操作系统内核中注册插补中断标识号SYSINTR_PWM_READY。

(3)调用函数InterruptInitialize,使中断请求和hMotor事件挂钩,当接收到中断请求时操作系统自动将事件置为有信号,退出ISR时将事件置为无信号。

(4)编写ISR程序。ISR程序框架如下:

if(IntPendVal==INTSRC_EINT1)//判断中断是否来自CPLD
zxopen08 发表于 2015-11-9 11:38:45 | 显示全部楼层
基于ARM和CPLD的开放式数控系统设计
 楼主| zhiweiqiang33 发表于 2015-11-10 09:50:43 | 显示全部楼层

基于ARM和CPLD的开放式数控系统设计
 楼主| zhiweiqiang33 发表于 2015-11-10 09:51:03 | 显示全部楼层
为了不降低系统执行多任务的性能,ISR 应非常短小精干,以使其他中断也能够获得及时的服务。
 楼主| zhiweiqiang33 发表于 2017-9-22 11:12:57 | 显示全部楼层
基于ARM和CPLD的开放式数控系统设计
zxopenljx 发表于 2020-12-17 17:44:40 | 显示全部楼层
基于ARM和CPLD的开放式数控系统设计
zxopenljx 发表于 2024-4-28 17:15:32 | 显示全部楼层
基于ARM和CPLD的开放式数控系统设计
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-23 22:39 , Processed in 0.103348 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表