基于DSP运动控制的机器人控制系统研究摘要:运动控制系统是实现机器人各种运动和操作的重要控制部件,而其运动控制的主要方式就是对电机的控制。DSP是一种广泛应用于控制电动机的控制芯片,其不仅可以实现对电机的控制,还可以对电机的转速进行检测,从而为机器人的运动控制系统反馈信号,以实现更加精准的控制。本文以DSP控制芯片为基础进行机器人的运动控制系统的设计,主要内容包括运动控制系统的硬件设计和软件设计,以期为机器人的运动控制设计提供参考。关键词:DSP;运动控制;机器人;速度控制科学技术的进步推动了工业生产自动化程度的提高,促进了人们生活向智能化迈进的步伐,机器人已经在工业、农业、人类生活等方面得到了广泛的应用。机器人技术包含了自动控制技术、微电子与计算机技术、传感与信息处理技术、人工智能技术与仿生学等多门学科,是一门跨越多个学科、综合性强的技术。机器人的出现改变了传统工业生产的过程,实现了生产的智能化、机械化,推动了科学技术的发展。机器人的控制系统是其核心部分,其控制系统的性能对于机器人操作的精准性至关重要。数字信号处理器(DSP)是一种广泛应用于机器人控制中的控制系统核心芯片,其具有控制的精准度高、可重复、稳定、可靠等优点,能够满足机器人的复杂控制要求。本文以DSP控制芯片为基础进行机器人的运动控制系统的设计,主要内容包括运动控制系统的硬件设计和软件设计,以期为机器人的运动控制设计提供参考。一、机器人运动控制与DSP控制系统概述(一)机器人运动控制概述机器人运动控制系统主要是实现对电机的控制,包括电机的正反转控制、启停控制、电机的转速、转矩、功率等的控制。随着电子技术和自动控制技术的发展,现代的运动控制技术通过计算机、DSP控制器等现代控制技术实现对电机的控制,从而实现机器人运动的精准化。机器人的控制系统是其运动的执行机构,主要包括传感器系统、计算机硬件系统、输入/输出设备、控制软件以及驱动设备等几部分,各部分之间的关系如图1所示。图1机器人运动控制系统各部分之间的关系在对机器人运动控制系统进行设计开发的过程中,需要解决运动控制系统硬件电路组成和各部分控制功能设计等问题。根据机器人用途的不同、使用环境的不同,运动控制系统需要满足控制系统模块化设计,以便于各个模块之间的安装和维护;功能多样化,可以对功能进行扩充;可以实现机器人同时进行多种任务要求,且可根据实际的情况自行判断处理,实现自能的智能化,同时能够实现网络通信,实现资源的共享。(二)DSP控制系统概述DSP可编程控制器,是一种可编程的超大规模集成电路器件,控制精度高、运算速度快、可通过下载软件实现复杂的控制、复杂信号的处理以及各种复杂的算法。其内部采用采用并行的哈佛结构可独立的存储控制程序和反馈数据,采用多总线的结构可实现同一机器周期内对程序和数据的多次访问,且其内部含有专用的硬件乘法器,提高了数据的运算速度,从而提高控制器的运算速度。DSP控制系统是以数字信号为输入信号,对数字信号进行分析整理形成模拟量以实现对电机的控制,其一般结构如图2所示。图2DSP控制系统一般结构DSP控制系统以DSP控制器为核心,其结构与一般的单片机结构相同,具备数字信号处理的编程方便、接口方便、可重复性高、稳定可靠、精准控制等优点,还可以通过高级算法实现对控制系统性能的改善。随着机器人使用环境的越来越广泛,对机器人运动控制系统的要求也越来药高,快速、精准成为现代机器人技术发展的要求,也是其发展方向。二、基于DSP运动控制的机器人控制系统的结构和硬件设计(一)机器人控制系统的整体结构机器人要实现其运动的控制需要完成的控制系统,主要包括:通信系统、传感系统、运动控制系统以及规划决策系统,这几个子系统需要组成一个闭环的控制系统,协调、合作共同完成机器人的运动操作。首先由视觉传感系统对工作环境的信息进行采集,通信系统将采集的环境信息传递到规划决策系统进行分析整理,经过规划决策系统的处理发出对机器人运动控制的指令,控制指令经过通信系统传递到运动控制系统进行机器人各控制部分的控制。其结构示意图与控制原理图如3、图4所示。图3机器人运动控制系统组成原理图图4机器人运动控制过程原理图机器人运动控制系统中,规划决策系统是其核心的组成部分,其主要负责对传感系统采集的信息进行分析,并快速的做出相应的控制指令,对机器人的运动控制,且规划其运动的路径和下一步的运动,并根据反馈信息对指令进行逐步的纠正和改进。传感系统主要负责对环境信息的采集,包括双目视觉传感器、激光雷达传感器以及图像处理、云卡和相关的控制。通信系统主要负责反馈信息和控制指令的传递,主要通过调制模块对RS-232数据进行无线传输。运动控制系统则是机器人的主要执行机构,通过接受相应的控制指令对机器人各个部件的运动机构进行控制,完成机器人的操作。(二)运动控制系统的设计在进行机器人运动控制系统的设计中,首先需要解决的是控制器的选择,其需要能够满足快速的接受高级的控制指令,并对指令进行分析,然后输出相应的控制信号,具有较强的运算能力和稳定性。本研究选用TM320LF2407控制器进行机器人的设计,该控制器采用C2xxCPU内核,运算的速度可达到33MIPS,且具有强大的电机控制外围设备和存储器,并自身附带EVA和EVB,可实现外部存储器功能的扩展,其主要的功能如图5所示。图5TM320LF2407的主要功能此外,还需要进行机器人执行结构的电机选型,电机的选择需要根据机器人的功能需求和操作要求进行。步进电机是现代机器人设计中应用较多的电机类型,其可以直接接收数字信号,通信简单,维护方便,但是其在运行的过程中负载过大会造成电机的失步或者停止,因此需要在学则过程中尽量选择扭矩大的步进电机。根据步进电机的性能参数和设计的要求,本次选择SHAPHON公司生产的23HS3002z型步进电机进行运动控制。(三)运动控制系统硬件电路的设计运动控制系统硬件电路主要包括模数转换电路、时钟电路、复位电路、信号隔离电路和串行接口电路等部分。1.数模转换电路DSP控制器运行的过程中需要的是数字信号,而传感系统采集的以及外部输入的信号为模拟信号,因此需要在其内部设置数模转换电路以实现信号的转换。TM320LF2407内部的数模转换模块含有2个带采样/保持的10位数模转换模块,可以实现16个模拟信号的输入,可访问16个结果寄存器,并触发模数的转换。在每个时钟周期开始的时候,数模转换模块被触发对输入的模拟信号进行转换,如电压、电流等并将结果送入中间寄存器以供系统在需要的时候进行读取。信号的转换时间与转换的个数有关,根据系统的要求将其转换周期分为5个阶段,如图6所示。图6信号转换各个阶段的时钟周期为了保证转换的精准度,通常需要将转换的时间控制在5.5s以上,由于系统时钟周期无法满足这一时间要求,因此需要在数模转换模块中预定标因子保证时转换所需的时钟周期。2.时钟电路本系统选用的DSP控制器内部含有晶振电路,可在其XTAL1/CLKIN和XTAL2之间并联一个晶体实现内部晶振电路,如图7所示。图7内部晶振电路在机器人运动控制设计过程中,由于硬件接口的不同会产生访问速度的差异,如果不在同一的时序将会造成程序和运动控制的混乱,因此需要在外界设置插入等待状态发生器对时序进行调整。3.复位电路复位电路是运动控制系统正常运行所必须的硬件组成部分,其在程序运行的初始阶段对寄存器和输入输出端口进行复位,以保证程序的运行。本研究采用的ST320LF2407自身带有复位管脚,当该管脚出现高电平时,程序开始从存储器的0位置执行;当该管脚出现低电平时,DSP控制器将停止操作。当看门狗定时器(WDT)定时溢出时,该管脚则会出现系统复位脉冲,对系统进行复位。通常需要在系统接通电源后,复位状态需要保持在3个时钟周期以上,以保证系统的稳定运行。复位电路图如图8所示。图8复位电路图4.信号隔离电路步进电机在运行的过程中是一种感性负载,且其工作电压高于DSP系统电压,因此需要在系统中设置隔离电路将DSP控制器与步进电机的驱动电路进行隔离,通常在隔离电路中采用光电耦合器对信号进行隔离,从而避免信号之间的互相干扰。5串行接口电路作为控制系统与其他系统进行通信的串行接口是实现机器人运动控制系统之间通信的主要通道,串行通信接口可以支持CPU和使用标准格式的设备之间的通信,其对信号的接收和发送都有独立的中断信号,可实现独立的工作。串行通信接口通过两个I/O引脚SCIRXD和SCITXD实现对输入输出信号的接受和发送,在实际的通信系统设计中RS-232总线与DSP系统的TTL电平不兼容,需要在其之间外加电平转换电路以实现信号的传递。(四)步进电机的驱动控制步进电机是机器人运动的主要动力机构,对步进电机的驱动控制包括对电机的启停控制、转速控制和转向控制。本研究所采用的步进电机配备有专用的电机驱动器,驱动器在接收系统的高级控制指令后,就驱动电机按照设定的方向进行运转,每接收到一个脉冲信号,其转动一步,当控制系统进行运动控制时就会向驱动器发送一定数量的脉冲信号,从而准确的控制机器人的运动精度,同时通过升高或者降低脉冲的频率实现电机转速的控制。三、基于DSP运动控制的机器人控制系统软件设计(一)控制软件的结构控制软件是实现运动控制的编程以及运动控制程序的运行,其主程序和各个子程序的运行需要在FIASH引导程序的引导下进行,系统的程序包括主程序、数模转换程序、脉冲输出程序、控制算法程序、串行通信程序以及FLASH程序。其结构图如图9所示。图9控制系统软件程序组成结构图其中主程序主要负责各个子程序的初始化,并对程序内部的中断进行标志,读取计数器的数值,对输入的控制量进行运算等功能,如根据光电传感器接受的信号实现距离的计算。且可在程序出现相应中断的时候调用相应的中断程序,然后对标志位进行修改和重置。脉冲输出程序则通过DSP控制器中的两个事件管理器中的定时器定时的输出控制脉冲,即当定时器的中的时间周期与程序周期寄存器的值相匹配时,便发出中断信号,输出控制电力运转的脉冲。串行通信程序则会根据通信中断信号判断DSP是接受信号还是发送数据,通过调用内部的通信程序对数据进行校验,然后将所接受的信号进行传递。数模转换程序则是将采集到的电压、电流等模拟量转换为数字量,以供系统的使用。(二)主程序主程序是运动控制系统的主要控制程序,其主要负责系统的初始化、系统内部计数器、标志位的复位、输入控制量的计算、控制指令之间的转换以及根据机器人运动轨迹的推算。其流程结构如图10所示。图10主程序的流程图运动控制系统的程序在通电运行之前需要对程序内部进行初始化,清楚程序内部寄存器、计数器的数据。其初始化程序为:setcINTM;关闭中断clrcSXM;清楚程序内部符号clrcOVM;复位溢出clrcCNF;B0被配置为数据存储空间ldp#0E0Hsplk#81FEH,SCSR1;CLKIN=6M,CLKOUT=24Msplk#06FH,WDCR;WD预定设为64ldp#0splk#000H,IMR;设置中断标志位splk#0FFFH,IFR;清除全部中断标志clrcINTM;开总中断splk#0h,GPROOUTGPRO,WSGR此外,主程序还需要完成对脉冲的计数,在DSP控制器中,通过事件管理器CAP1、CAP2、CAP4、CAP5管脚与定时器2和4相连接实现对脉冲数目和频率的解码与计数同时主程序还可惜实现对机器人运行里程信息进行计算,以实现机器人运行的控制,还可根据距离为机器人设定规划运动路线。(三)FLASH引导程序DSP系统在通电运行后需要将存储在非易失性存储器中的代码转移到DSP内部的RAM中进行运算处理,而这就需要有稳定、可靠的存储器进行数据的存储。ST320LF2407控制器内部还有32K的FLASH程序存储器,其具有较强的存储稳定性,可以满足系统的运行需求。对FLASH存储器的编程可以通过DSP控制器自身的JTAG接口从专用的计算机接口下载程序,或者通过串行通信接口从计算机接口下载编好的程序。DSP控制器在机器人运动控制中的应用,可以更加快速的处理控