嵌入式学习资料之ARM+PCL6045B的嵌入式运动控制器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


千锋嵌入式学院 最专业的嵌入式培训机构
本系统设置IF1:IF0=0:1,CPU连接如图3所示。

千锋嵌入式计不同的模块化用 户软件,来满足不同的运动控制任务。模块化软件恰好 是Linux操作系统的优点。Linux还可以根据用户的需 求实现内核的裁减和定制,源码开放,网络支持功能强 大,价格上也更具有竞争优势等。所以该控制器选用 Linux作为片上系统(SoC)。但是,Linux并不是一个实 时操作系统,因此,通过实时内核补丁RTAI(Real Time Application In-terface),在硬件平台的基础上 增加一个实时内核,将Linux内核当作它的优先级最低 的任务执行,从而保证运动控制系统的实时性。系统的 控制软件分为两个区域:非实时域和实时域。非实时域 是建立在普通Linux内核基础上的,其主要包括系统初 始化和通信模块。

千锋嵌入式学院 最专业的嵌入式培训机构

千锋嵌入式学院 最专业的嵌入式培训机构
通过通用I/O接口与DSP运动控制板通信,实现 arm主控板与运动控制板之间数据的实时双向传送;外 部NAND Flash存储器(64 MB),用于存储系统参数及 运动指令;NOR Flash存储器(2 MB),用于存放系统运 行程序;SDRAM存储器(64 MB),用于存放临时数据; 通过串口、以太网接口、USB接口与上位机系统通信, 实现两者之间数据的传送;通过LCD接口,实现 320×240分辨率液晶屏的图形与字符显示,并具有触 摸屏接口,提供友好的人机交互界面;通过I/O扩展接 口,提供可编程的数字I/O通道;通过JTAG接口与PC 机通信,实现系统运行程序的仿真调试及下载,软件升 级接口。

千锋嵌入式学院 最专业的嵌入式培训机构
本文综合应用ARM嵌入式系统技术、DSP运动控制 技术等多种技术开发出高性能的嵌入式运动控制器。该 控制器相比传统的基于PC机的运动控制器,具有成本 低、体积小、功耗低、功能丰富、运行稳定的特点和优 势。以arm微控器和PCL6045B为核心的嵌入式运动控 制器,采用Linux操作系统,经过对其进行实时化改造, Linux 使系统能很好地进行多任务处理,保证了系统的实时性。 该控制器能够实现高速和高精度的运动控制需求,具有 良好的运动控制性能。该运动控制器的设计,为读者提 供了一种良好的解决方案,在运动控制领域具有广阔的 应用前景。

千锋嵌入式学院 最专业的嵌入式培训机构
本系统DSP运动控制芯片选用PCL6045B。 PCL6045B是一种功能十分强大的DSP运动控制芯 片。芯片能够控制四轴,并实现两轴到四轴直线差 补、两轴圆弧差补。所有插补计算由芯片完成,上 位机只需写入圆弧的参数即可,其多轴插补控制功 能特别优秀。系统硬件采用主从式双CPU结构模式。 主CPU为ARM处理器,负责键盘、显示、网络通信 等管理工作;从CPU为PCL6045B运动控制芯片, 专门负责运动控制的处理工作。PCL6045B与arm 的通信是靠读写I/O总线上的几个地址来进行指令 和数据的传输。控制系统硬件结构框图如图2所示。

千锋嵌入式学院 最专业的嵌入式培训机构

千锋嵌入式学院 最专业的嵌入式培训机构


千锋嵌入式学院 最专业的嵌入式培训机构
运动控制器是运动控制系统的核心部件。目前,国 内的运动控制器大致可以分为3类: 第1类是以单片机等微处理器作为控制核心的运动 控制器。这类运动控制器速度较慢、精度不高、成本相 对较低,只能在一些低速运行和对轨迹要求不高的轮廓 运动控制场合应用。 第2类是以专用芯片(ASIC)作为核心处理器的运动 控制器,这类运动控制器结构比较简单,大多只能输出 脉冲信号,工作于开环控制方式。由于这类控制器不能 提供连续插补功能,也没有前馈功能,特别是对于大量 的小线段连续运动的场合不能使用这类控制器。

千锋嵌入式学院 最专业的嵌入式培训机构
第3类是基于PC总线的以DSP或FPGA作为核心处理器的开放 式运动控制器。这类开放式运动控制器以DSP芯片作为运动控制 器的核心处理器,以PC机作为信息处理平台,运动控制器以插件 形式嵌入PC机,即“PC+运动控制器”的模式。这样的运动控制器 具有信息处理能力强,开放程度高,运动轨迹控制准确,通用性 好的特点。但是这种方式存在以下缺点:运动控制卡需要插入计 算机主板的PCI或者ISA插槽,因此每个具体应用都必须配置一台 PC机作为上位机。这无疑对设备的体积、成本和运行环境都有一 定的限制,难以独立运行和小型化。 针对这些问题,设计了一种基于arm+DSP的嵌入式运动控制 器。该控制器将嵌入式CPU与专用运动控制芯片相结合,将运动 控制功能以功能模块的方式嵌入到arm主控板的架构,把不需要 的设备裁减掉,既兼顾功能又节省成本。该控制器是一种可以脱 离上位机单独运行的一种独立型运动控制器,具有良好的应用前 景。

千锋嵌入式学院 最专业的嵌入式培训机构
本系统采用的ARM芯片为Samsung公司推出 的16/32位RISC处理器S3C2440A,主频为400 MHz,最高频率可达533 MHz。arm主控板以嵌 入式处理器S3C2440A为核心,外扩存储器和通用 设备接口。arm主控板的硬件结构框图如图1所示。

千锋嵌入式学院 最专业的嵌入式培训机构
②插补线程(rt_interpolation_thread)。从译码缓 冲区中顺序取得插补数据,然后根据是直线或者圆弧进 行插补,插补得到下个周期应该到达的理论坐标值。 ③位置控制线程(rt_position_thread)。读取计数 器中编码器的数值,得到实际的位置,并与插补器中的 理论位置坐标作比较。根据差值调节PID参数,并将具 体脉冲输出数写入对应的PWM口的脉冲数寄存器中。 ④功能控制线程(rt_function_thread)。功能控制 任务利用RTAI实时管道来传递命令和状态信息的功能。 通过管道的命令设置实现Linux操作系统对实时部分 RTAI的访问,从而实现运动控制器的运行、暂停、给 定速度等状态设置。

千锋嵌入式学院 最专业的嵌入式培训机构
软件平台是系统应用程序开发的基础。本系统 软件平台主要包括:arm-Linux的移植、串行接口 驱动开发、USB接口驱动开发、LCD接口驱动开发、 触摸屏接口驱动开发、以太网接口驱动开发、文件 系统的移植等。这些软件的开发和移植在很多文献 中有详细的说明。
千锋嵌入式学院 最专业的嵌入式培训机构
引言 1 嵌入式运动控制器的硬件平台设计 arm主控板部分 1.1 arm主控板部分 DSP运动控制板部分 1.2 DSP运动控制板部分 arm处理器与运动控制芯片的连接 1.3 arm处理器与运动控制芯片的连接 2 嵌入式运动控制器的软件设计 2.1 软件平台的建立 2.2 运动控制函数库的设计 Ljnux进行实时化改造 2.3 对Ljnux进行实时化改造 2.4 应用软件设计 结语
千锋嵌入式学院 最专业的嵌入式培训机构
应用软件主要包括人机交互界面的设计、数控 指令的编译解释、按键功能的实现、运动状态的监 视等。通过操作系统ARM-Linux,可方便地实现 上述功能,并进行多任务的调度。运动控制器根据 输入的数控指令文件,将其存入NAND Flash中。 arm处理器通过对数控指令进行译码、速度预处理、 粗插补计算等,调用运动控制函数,进而发出控制 指令控制步进或伺服系统去控制执行部件进行动作, 从而达到实现运动控制的目的。

千锋嵌入式学院 最专业的嵌入式培训机构
嵌入式运动控制器的硬件主要包括两个部分: ARM主控板和DSP运动控制板。这两块控制板通过 通用I/O口以总线的方式连接在一起。在设计时, 可以分别对ARM主控板和DSP运动控制板进行设计, 最后再调试。这种将arm主控板和DSP运动控制板 分开设计和调试的硬件方案,将设计难点分散,使 设计和调试更简单。

千锋嵌入式学院 最专业的嵌入式培训机构
①系统初始化:进行微处理器的硬件初始化,包括输入 /输出接口的配置、具体总线通信方式的配置以及伺服系统 相关的接口参数配置。 ②通信模块:负责运动控制卡和上位机之间的坐标值、 速度值、数控系统的I/O接口状态、报警状态以及数据链表 的传输。 实时域建立在RTAI实时内核的基础上。其实时任务通过 实时进程的方式来完成,一种为周期性(peri_odic)实时进程, 另一种为一次性(one shot)实时进程。实时域主要包括如下 4个周期性实时线程: ①状态检测线程(rt_monitor_thread)。本任务对设备 运行状态进行检测,负责从I/O端口读入各个连接的I/O设 备值,然后将状态写入状态检测缓冲区中,对设备急停、伺 服报警、限位信号进行判断,并进行相应的处理。

千锋嵌入式学院 最专业的嵌入式培训机构
由于Linux不是一个实时操作系统,所以,利 用实时内核补丁RTAI(Real Time Application Interface)。RTAI的安装和使用详见参考文献[7]。 该控制器所使用的Linux开发环境为 ELDK(Embedded Linux DevelopedKit)3.0。 Linux内核为Linuxp pc_2_4_devel,而RTAI的版 本为24.1.12。由Linux中的init_module()和 cleanup_modtde()两个函数加载和卸载实时任务 模块,通过这两个函数进行实时线程及其处理函数 的创建和回收。其关键程序如下:

千锋嵌入式学院 最专业的嵌入式培训机构

千锋嵌入式学院 最专业的嵌入式培训机构
通过设置引脚IF0与IF1,PCL6045B芯片与不同的CPU相连,如表1 所列。

千锋嵌入式学院 最专业的嵌入式培训机构
通用运动控制器的功能主要取决于运动控制函数库。 要做成一个开放式的运动控制器,必须编写丰富的运动 控制函数库,以满足不同的应用要求。运动控制函数库 要为单轴及多轴的步进或伺服控制提供许多运动函数, 如单轴驱动、两轴直线插补、3轴直线插补、圆弧插补 等等。另外,为了配合运动控制系统的开发,还编写了 一些辅助函数,如中断处理、编码器反馈、间隙补偿、 通用开关量的输入输出等。这样,用户在开发应用程序 时就不必再关心底层的东西,只需根据控制系统的要求 编制人机界面,并调用运动控制函数库中的函数,就可 以开发出满足要求的多轴运动控制系统。
相关文档
最新文档