CPLD中的电机控制电路由分频电路、调速电路、相序分配电路组成。其中,分频电路由分频器构成;调速电路是利用MAX+PLUSⅡ的LPM宏单元库的算术运算模块lpm_counter构成可预置数的5位减计数器。根据所需的速度,设置预置数,计数器对分频电路输山的clk脉冲信号减计数至零时输出一个借位脉冲,并再次装入预置数进行减计数,将其借位脉冲cout作为调速电路的输出脉冲,cout借位脉冲的频率范围为fclk/1-fclk/31,即引入了步长为1的调速因子(预置数)。可通过改变调速因子对脉冲信号进行1~31倍的连续可调分频,从而调节电机的转速;而相序分配电路是以cout借位脉冲作为输入,利用两个D触发器和门电路输出4路相位相差90°的方波脉冲,作为两相同步电机的控制信号;stop信号控制电机的启停;dir信号控制电机的转向,正转时相电压uCD超前uAB 90°,反转时uAB超前uCD90°,各相信号的频率为cout脉冲频率的1/4。CPLD中输入的调速和相序分配电路原理见图2。仿真结果验证了设计逻辑的正确性,如图3所示。
外部驱动器采用L298双H桥高电压大电流功率集成电路,将脉冲发牛电路产生的4相方波信号经总线收发器74LS245输出至L298的输入端IN1~IN4,控制H桥的通断,使电机正反转或停止。为防止电机在启停瞬间的反馈电压损坏L298,在L298输出端和电机之间加人8个二极管起断电续流的保护作用。
为了改善电机的控制性能,实现对机器人更精确和稳定的运动控制,需要获得电机的速度信息作为电机控制的反馈环节,该系统采用增量式光电编码器作速度检测,两个光电编码器分别与两路电机同轴相连,由CPLD配合ARM器件实现变脉冲数/脉冲周期测速,即变M/T测速,定时对电机速度进行采样。采样速度和上位机的给定速度所得差值传人PID控制器。从而实现对电机速度的闭环控制。
3.3超声传感模块
避障是智能移动机器人的基本功能,避障的首要任务是确定障碍物位置。PC机基于机器人视觉系统实现的路径规划易受视场光线强弱、背景色等因素干扰,针对这一问题,机器人在单片机控制系统中采用超声传感器测距实现机器人对障碍物的检测和定位。
超声波测距采用时间渡越测距法,即根据从超声波发生器发射出超声波到超声波在传播过程中遇到障碍物后超声波接收器接收到反射波所用时间t,以及超声波在空气中的传播速度v(v=331.4(1+T/273)1/2m/s;T为摄氏温度),得出机器人与障碍物之间的距离l=vt/2。该模块共采用3对超声换能器,分布于机器人的正前方、左前方、右前方。ARM发出控制信号启动内部定时器进行定时。控制信号经功率放大后作为超声传感驱动电路的启动信号,由超声传感器产生遇到障碍物时返回的高频振荡信号放大后通过接收电路引起ARM外部中断,在中断程序中可以获得定时器的计数值,并计算出距离。超声传感模块框图见图4。
4控制系统软件设计
4.1嵌入式操作系统
智能轮式移动机器人是一个典型的实时多任务系统,传统单任务顺序执行机制不能满足该系统设计的实时性要求,而且对于复杂系统来说可靠性不高,因此选用实时操作系统μC/OS-Ⅱ。它是一个源码公开,可移植,可固化,可裁剪的嵌入式操作系统,具有代码尺寸小,可占用实时内核,任务多,可确定执行时间,运行稳定可靠等特点。将μC/OS-Ⅱ移植到S3C44B0X上,并对操作系统进行裁剪,以节省存储空间。
基于实时内核的多任务系统可划分为系统层和应用层。系统层由内核和驱动程序库组成;应用层包括用于达成机器人任务目标的全部代码。在该系统软件应用层程序设计中,将机器人的任务分解成通信、信息采集、电机控制等多个用户任务。嵌入式操作系统μC/OS-Ⅱ对任务模块进行管理调度,协调机器人各项任务运行,保证了系统的实时性和可靠性。
4.2运动控制算法
为了保证移动机器人运动的稳定性和准确性,使得系统在控制机器人前进、后退、转弯、刹车等动作时都能快速响应且超调量小,在控制电机的过程中,系统采用了积分分离的PID控制算法。算法的具体实现方法如下:
5 结语
提出了一种基于ARM和CPLD的智能轮式移动机器人控制系统,这一方案充分利用ARM和CPLD的内部资源,既具有ARM微控制器体积小,运算速度快等特点,又具有CPLD的高速逻辑处理能力,灵活的可扩展性和可重构性。软硬件的调试和运行实验证明,系统控制灵活,实时性好,可靠性高,能够满足智能轮式移动机器人的控制需求。这种智能轮式移动机器人的控制系统可用于不同场合的移动机器人控制系统,并具有一定的普遍适用性,且性价比高,具有很强的实用价值。