基于ARM的SCARA机器人控制系统的设计与实现

时间:2022-09-01 01:28:47

基于ARM的SCARA机器人控制系统的设计与实现

【摘要】针对机器人系统对开放性和实时性能的需求,从硬件和软件两方面详细讨论机器人控制在开放性和实时性上的要求以及目前的研究进展,并从这两方面构建了基于ARM7为处理器运动控制板的SCARA机器人的控制系统,控制系统采用ARM+DSP架构以代替传统的“PC+运动控制卡”开发模式实现SCARA机器人的硬件控制系统平台。通过移植uClinux操作系统,同时使用LCD作为人机交互设备,真正实现多人机交互。

【关键词】ARM;SCARA机器人;嵌入式系统;uClinux移植

1.引言

目前,机器人控制技术普遍采用“PC+运动控制器”的开发模式[1],并已取得较大发展。但随着嵌入式技术的日益深入,特别是ARM为首的微处理器性能的不断提高,可以ARM来代替PC作为控制系统的主控机部分是工业机器人发展的热点[2],嵌入式控制板系统体积小、重量轻,操作界面友好,便于携带的特点。在控制对象方面,平面关节装配机器人作为应用最为广泛的机器人之一,在实际生产与教学试验中都具有广泛的实际意义和运用前景。

本文采用的SAMSUNG公司推出的一个基于ARM7TDMI核的低功耗的高性价的32位处理器S3C44B0X和DSPTMS320F2812的嵌入式架构[3]。通过在处理器上移植uClinux操作系统[4],模块化的设计使它通过对内核的重新配置,实现系统运行所需要资源的最小化。uClinux[5]内存管理同标准Linnux的虚拟存储器管理功能比,既减小了内核的体积,又增加了系统的实时性能。同时使用LCD作为人机交互设备[6],液晶显示器由于具有功耗低、外形尺寸小、价格低、驱动电压低等特点以及其优越的字符和图形的显示功能,已经成为嵌入式系统使用中的首选的输出设备。

2.系统硬件结构与设计。

2.1 系统总体结构

系统整体结构如图1所示。控制系统可划分为:主控系统、DSP运动控制系统等。系统采用模块化的设计思想,分立ARM与DSP,为将来模块或系统的硬件维护和升级带来方便。两者通过串行总线进行通讯,ARM系统将期望速度、方向信息等传送到运动控制卡;运动控制卡位四轴位置控制卡,根据重口信息和光电编码器反馈的速度信息产生一定占空比的PWM波,能对四轴进行联动插补控制。每轴有专用位置芯片控制,构成一个伺服位置和速度环。四轴位置控制卡以插补时间为周期连续发出中断,在DDA周期开始之前,将位置信息写入位置控制卡动作控制芯片的缓冲区中。放在DDA脉冲缓冲器中的脉冲数别传到DDA发生器,在下一个DDA周期中输出。然后由三轴位置控制卡将各轴对应的脉冲数解释为相应的电平型号,驱动伺服驱动器以驱动并将方向使能信号送入驱动器以驱动电机工作,实现机器人运动和状态调整的精确控制。

图1 系统总体结构

2.2 主控系统结构

主控系统采用的是S3C44B0X是SAMSUNG公司推出的一个基于ARM7TDMI核的低功耗的高性价的32位处理器,它可以在60MHZ频率下运行,采用3级流水线结构,处理能力大大超过8/16位的单片机,可以支持大屏幕点阵的显示,提供功能强大的图形用户界面,另外基于ARM的控制器可以内嵌实时操作系统,克服了传统基于PC机的控制系统软件“前后台”形式造成的实时性差的缺点。S3C44B0X有8个外部中断,两个带握手协议的UART接口,另外具有SPI和I2C接口,RTC和5个16位的PWM控制器、8路10位AD以及LCD控制器等。

图2 主控系统结构

2.3 ARM与运动控制卡

运动控制卡基于ARM芯片的嵌入式运动控制卡,主控制模块分别与FPGA模块、扩展接口模块、存储器模块、看门狗及复位系统模块、电源模块相连,FPGA模块分别与系统时钟模块、GPIO模块、JTAT接口模块、双端口通讯模块、DA模块、AD模块相连,双端口通讯模块通过PC104总线模块和上位机相连,负责主控制模块和上位机之间的通讯;DA模块、AD模块、GPIO模块中的输入输出信号通过输入输出信号接口模块和外部伺服驱动器及开关等相连;本发明是采用ARM微处理器作为核心部件,实现高速高精度运动控制,同时减少了元器件数目,缩小了体积,同时采用FPGA模块对硬件地址进行译码规划。

2.4 LCD液晶屏设计

LM7M632是Sharp公司推出的分辨率为640x 240的STN型彩色LCD显示屏,支持256色显示。ADS7843是TI公司生产的四线电阻触摸屏转换接口芯片。它是一款具有同步串行接口的12位取样模数转换器。在125kHz吞吐速率和2.7V电压下的功耗为750?W,而在关闭模式下的功耗仅为0.5?W。触摸屏的硬件接口如图3所示是S3C44B0X同ADS7843的连接电路。X+、Y+、X-、Y-是转换器模拟输入端,DCLK是外部时钟输入;CS是片选端;DIN是串行输入,其控制数据通过该引脚输入;DOUT是串行数据输出,用于输出转换后的触摸位置数据.最大数为二进制的4095;IN3、IN4是辅助输入;PENIRQ是PEN中断引脚。其中,S3C44B0X选取PG口与ADS7843接口,共使用PG2-PG7的6条口线。

图3 S3C44B0X同ADS7843的连接电路

2.5 伺服驱动器

伺服驱动器一般是通过位置、速度和力矩三种方式对伺服马达进行控制,实现高精度的

传动系统定位。伺服电机的增量型编码器信号直接接入到电机驱器中驱动器提供三对差分信号A+,A-,B+,B-,C+,C-作为反馈。这三对信号由于受到驱动器内部电源的干扰,在电机旋转时,所发出的信号会出现许多毛刺,直接接到DSP中会引起误判断,所以三对信号经过差分电路转化为单信号A、B、C。如图4所示。

图4 SD15M位置/模拟量控制方式标准接线

2.6 数字量I/O电路设计

防止外界信号干扰,保证控制器的可靠性和安全性,输入输出信号都经由高速光耦芯片TLP521-4进行光电隔离。输入信号主要包括限位开关信号、回零信号和伺服报警信号。每个控制轴有正反方向的两个限位开关,各产生两个限位信号:limit1、limit1……limit4+、limit4-,回零信号为HOME1~HOME4.它们进入DSP的信号经过光电隔离后电平有12V变为3.3V,信号名称分别为LM1+~LM4-,ALM1~ALM4,HM1~HM4,进入DSP的PB、PE和PF通用I\O口。当EPM7128检测到这些输入并引起DSP的中断后,DSP确定具体触发的信号立即停止对应电机改方向的运动。

3.系统软件设计

3.1 DSP总体程序结构和流程

根据SCARA机器人控制的要求,DSP运动控制器的主要功能是完成和上位机通信以及机器人全部关节的位置数字控制,DSP控制器首先接受来自ARM主控板8ms插补一次的新位置信息,然后采用0.4ms的定时中断对轨迹数据进行插补计算,最后通过模糊PID伺服控制算法将数据送到给运动轴的交流伺服电动机驱动器,驱动相应的关节运动。

DSP运动的主流程如图5(下转第120页)(上接第118页)在每个采样周期内DSP连续执行。主CPU使用硬件复位控制DSP的复位操作,DSP复位后运行片内ROM或加载到RAM中的系统主程序。DSP主程序有初始化程序、时钟循环等待中断程序组成。初始化程序完成所有变量的初始化,复位全部外设,并关闭所有输出。之后进入循环和等待中断的过程,检测到主机的命令后,读取命令并根据系统需要调用相应的处理程序,命令处理完成后再进入循环等待状态。

图5 DSP系统主程序流程图

图6 DSP系统命令处理程序流程图

命令处理程序是实现运动控制功能的关键程序,也是在每一个0.4ms采样周期内完成伺服回路的计算输出。此程序包括编码器信号接收、PWM信号输出、插补算法实现、控制算法实现、位置控制等功能的实现,还包括完成数据写入和读取功能等,同时要对外部中断进行处理。每一个0.4ms采样周期内完成的DSP程序流程如图6所示。

SCARA下位机控制系统在执行插补程序时,采用查询标志位方式,在本系统的伺服插补算法设计中,根据硬件设计情况采用了在线插值处理方法,这样使得系统对内存资源空间占用较少,程序运行的实时性好。

3.2 uClinux操作系统的U-boot的移植

ARM7TDMI嵌入式架构,片内无内存控制器(MMU),通过在处理器上移植uClinux操作系统,uClinux内核采用对libc作了精简而得的uClibc,模块化的设计使它通过对内核的重新配置,实现系统运行所需要资源的最小化。uClinux同标准Linnux的虚拟存储器管理功能,既减小了内核的体积,又增加了系统的实时性能。

对于PC机,其开机的初始化处理器配置、硬件初始化等操作是由BIOS完成的,但对于嵌入式系统来说,一般不配置BIOS。Boot Loader主要运行任务是初始化硬件设备、建立内存空间的映射图,将内核映像从硬盘上读到RAM中,然后跳转到内核的入口点去运行,每种不同的CPU体系结构都有不同的Boot Loader,对于ARM而言常见的是U-boot,具体步骤如下:

对ARM7核处理器,U-boot.启动流程主要体现在3个文件上,即start.s,lib arm/board.c和U-boot/common/main.c。U-boot是在Linux环境下开发的,因此需要在Linux下进行编译,使用的操作系统为Fedora core 7,下载arm-elf=tools=20040427.sh,使用的编译器为arm-elf-gcc,在U-boot根目录下对其中的makefile文件进行相应的修改,编译连接后生成U_boot,U_boot.bin,U_boot.srec,其中的U_boot.bin是二进制bin文件,通过创维特集成开发环境自带的FLASH烧写工具载人到SDRAM中运行,从超级终端显示U-boot的启动信息,分别试验erase,cp,printenv,saveenv等命令,并检测对FLASH的操作;使用tftp命令,以检测网口下载功能,然后装载操作系统内核,完成以上任务则移植成功。经过以上步骤移植的U-boot已经在自己开发的ARM板上顺利地引导了μClinux操作系统。

4.结束语

本系统实现了以ARM来代替PC作为控制系统的主控机部分,对SCARA机器人进行准确控制。系统设计中采用模块化设计思想,将ARM,DSP等分别做成需要选择功能。成功的将U-boot移植到S3C44BOX上,同时采用嵌入式uClinux操作系统的32位嵌入式微处理器,系统具有很强的可扩展性和稳定性他,同时采用液晶屏设计实现了人机交互。

参考文献

[1]方建,刘君义.SCARA平面关节机器人通用运动控制器设计[J].吉林工程技术师范学院学报,2008(07).

[2]曾锦翔,方建军.基于ARM的SCARA农业机器人控制系统设计与实现[J].微计算机信息,2010(8-2).

[3]田泽,嵌入式系统开发与应用教程[M].北京航空航天大学出版社,2005,3.

[4]李岩,荣盘祥.基于S3C44B0X嵌入式?CLinux系统原理及应用[M].北京:清华大学出版社,2005,1.

[5]李善平,刘文峰,等.Linux与嵌入式系统[M].北京:清华大学出版社,2003.

[6]蒙智明,屈百达,徐保国.基于ARM处理器的LCD控制及触摸屏接口设计[J].微计算机信息,2007,23(20).

作者简介:王小立(1989—),男,河南辉县人,西安工程大学机电工程学院硕士研究生,主要研究方向:机械设计。

上一篇:基于Flash的猫和老鼠游戏的设计与制作 下一篇:空气压缩机防喘振优化控制系统设计