运动控制器
国内的运动控制器大致可以分为3类:运动控制器是运动控制系统的核心部件。
目前。只能在一些低速运行和对轨迹要求不高的轮廓运动控制场所应用。
第1类是以单片机等微处理器作为控制核心的运动控制器。这类运动控制器速度较慢、精度不高、利息相对较低。这类运动控制器结构比较简单,
第2类是以专用芯片(ASIC作为核心处置器的运动控制器。大多只能输出脉冲信号,工作于开环控制方式。由于这类控制器不能提供连续插补功能,也没有前馈功能,特别是对于大量的小线段连续运动的场所不能使用这类控制器。以PC机作为信息处理平台,
第3类是基于PC总线的以DSP或FPGA 作为核心处置器的开放式运动控制器。这类开放式运动控制器以DSP芯片作为运动控制器的核心处置器。运动控制器以插件形式嵌入PC机,即“PC+运动控制器”模式。这样的运动控制器具有信息处置能力强,开放水平高,运动轨迹控制准确,通用性好的特点。但是这种方式存在以下缺点:运动控制卡需要插入计算机主板的PCI或者ISA 插槽,因此每个具体应用都必须配置一台PC机作为上位机。这无疑对设备的体积、利息和运行环境都有一定的限制,难以独立运行和小型化。
设计了一种基于ARM+DSP嵌入式运动控制器。该控制器将嵌入式CPU与专用运动控制芯片相结合,针对这些问题。将运动控制功能以功能模块的方式嵌入到ARM主控板的架构,把不需要的设备扩充掉,既兼顾功能又节省成本。该控制器是一种可以脱离上位机单独运行的一种独立型运动控制器,具有良好的应用前景。
可以分别对ARM主控板和DSP运动控制板进行设计,嵌入式运动控制器的硬件主要包括两个部分:ARM主控板和DSP运动控制板。这两块控制板通过通用IO口以总线的方式连接在一起。设计时。最后再调试。这种将ARM主控板和DSP运动控制板分开设计和调试的硬件方案,将设计难点分散,使设计和调试更简单。
外扩存储器和通用设备接口。ARM主控板的硬件结构框图如图1所示。本系统采用的ARM芯片为Samsung公司推出的1632位RISC处置器S3C2440A 主频为400MHz最高频率可达533MHzARM主控板以嵌入式处理器S3C2440A 为核心。
实现ARM主控板与运动控制板之间数据的实时双向传送;外部NA NDFlash存储器(64MB用于存储系统参数及运动指令;NORFlash存储器(2MB用于存放系统运行顺序;SDRA M存储器(64MB用于存放临时数据;通过串口、以太网接口、USB接口与上位机系统通信,通过通用IO接口与DSP运动控制板通信。实现两者之间数据的传送;通过LCD接口,实现320240分辨率液晶屏的图形与字符显示,并具有触摸屏接口,提供友好的人机交互界面;通过IO扩展接口,提供可编程的数字IO通道;通过JTA G接口与PC机通信,实现系统运行顺序的仿真调试及下载,软件升级接口。
并实现两轴到四轴直线差补、两轴圆弧差补。所有插补计算由芯片完成,本系统DSP运动控制芯片选用一种功能十分强大的DSP运动控制芯片。芯片能够控制四轴。上位机只需写入圆弧的参数即可,其多轴插补控制功能特别优秀。系统硬件采用主从式双CPU结构模式。主CPU为ARM处置器,负责键盘、显示、网络通信等管理工作;从CPU为yk8004运动控制芯片,专门负责运动控制的处置工作。yk8004与ARM通信是靠读写IO总线上的几个地址来进行指令和数据的传输。控制系统硬件结构框图如图2所示。
来满足不同的运动控制任务。模块化软件恰好是Linux操作系统的优点。Linux还可以根据用户的需求实现内核的扩充和定制,本系统可根据被控对象的特征设计不同的模块化用户软件。源码开放,网络支持功能强大,价格上也更具有竞争优势等。所以该控制器选用Linux作为片上系统(SoC但是Linux并不是一个实时操作系统,因此,通过实时内核补丁RTA IRealTImeApplicatIn-teRFac硬件平台的基础上增加一个实时内核,将Linux内核当作它优先级最低的任务执行,从而保证运动控制系统的实时性。系统的控制软件分为两个区域:非实时域和实时域。非实时域是建立在普通Linux内核基础上的其主要包括系统初始化和通信模块。
包括输入/输出接口的配置、具体总线通信方式的配置以及伺服系统相关的接口参数配置。 ①系统初始化:进行微处理器的硬件初始化。
②通信模块:负责运动控制卡和上位机之间的坐标值、速度值、数控系统的IO接口状态、报警状态以及数据链表的传输。
一种为周期性(peri_od实时进程,实时域建立在RTA I实时内核的基础上。其实时任务通过实时进程的方式来完成。另一种为一次性(onshot实时进程。实时域主要包括如下4个周期性实时线程:
负责从IO端口读入各个连接的IO设备值,①状态检测线程(rt_monitor_thread本任务对设备运行状态进行检测。然后将状态写入状态检测缓冲区中,对设备急停、伺服报警、限位信号进行判断,并进行相应的处置。
然后根据是直线或者圆弧进行插补,②插补线程(rt_interpolaTIon_thread从译码缓冲区中顺序取得插补数据。插补得到下个周期应该到达的理论坐标值。
得到实际的位置,③位置控制线程VIPER50A(022Y)读取计数器中编码器的数值。并与插补器中的理论位置坐标作比较。根据差值调节PID参数,并将具体脉冲输出数写入对应的PWM口的脉冲数寄存器中。
从而实现运动控制器的运行、暂停、给定速度等状态设置。 ④功能控制线程VIPER50A-22-E功能控制任务利用RTA I实时管道来传递命令和状态信息的功能。通过管道的命令设置实现Linux操作系统对实时部分RTA I访问。
软件平台是系统应用顺序开发的基础。本系统软件平台主要包括:ARM-Linux移植、串行接口驱动开发、USB接口驱动开发、LCD接口驱动开发、触摸屏接口驱动开发、以太网接口驱动开发、文件系统的移植等。这些软件的开发和移植在很多文献中有详细的说明。
必需编写丰富的运动控制函数库,通用运动控制器的功能主要取决于运动控制函数库。要做成一个开放式的运动控制器。以满足不同的应用要求。运动控制函数库要为单轴及多轴的步进或伺服控制提供许多运动函数,如单轴驱动、两轴直线插补、3轴直线插补、圆弧插补等等。另外,为了配合运动控制系统的开发,还编写了一些辅助函数,如中断处理、编码器反馈、间隙弥补、通用开关量的输入输出等。这样,用户在开发应用顺序时就不必再关心底层的东西,只需根据控制系统的要求编制人机界面,并调用运动控制函数库中的函数,就可以开发出满足要求的多轴运动控制系统。