微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于TMS320LF2407A的机器人运动控制系统软件设计

基于TMS320LF2407A的机器人运动控制系统软件设计

时间:08-18 来源: 点击:

口发送到上位机,由上位机建模,对数据加以处理后得到机器人的位姿信息。

2 电机驱动软件设计

电机驱动软件完成电机的驱动控制和闭环调速。驱动控制使用的是电机驱动主控芯片STCl2C4052AD的片内PWM外设单元,生成的PWM信号经过电机驱动芯片驱动电机,可以通过调节PWM占空比来调节加载在电机上24VDC电压的占空比,从而调节电机转速。PWM占空比由片内8位的PWM控制寄存器进行控制,该寄存器取值范围为0-255,分别代表PWM信号占空比从l到0的连续变化。同时STCl2C4052AD接收电机光电码盘的脉冲信号,利用片内时钟计算出电机运行速度,通过速度控制算法完成电机的闭环调速。

电机驱动及闭环调速软件算法流程图如图2所示。

 

图2电机驱动控制器程序流程图

如上图所示,程序开始后进行初始化,初始化包括程序使用相关变量定义、10ms定时器0、定时器l及串口、脉冲计数用外中断0、看门狗等寄存器的设置和电机状态参数(刹车、速度)等的初始化。然后进入循环状态,循环过程中更新看门狗寄存器的相关标志位。速度检测和闭环调速程序分别在外中断0和定时器0中完成。中断服务程序也就包含了外中断0、定时器0以及串口中断服务程序。

外中断0是电机光电码盘的脉冲检测外设,所有电机光电码盘的脉冲都会引起外中断0的中断。码盘脉冲测速的原理是计算STCl2C4052AD单位定时时间内的脉冲数目,因此外中断0的中断服务程序的内容就是对脉冲计数。而上位机设定的目标电机转速也会被转换为此单位定时时间内的脉冲数目。可以定义一个全局变量,每次进入外中断0的中断将该变量加1即可。另外为防止程序干扰,应该对计数值加以修正,如小于0的时候等于0,大于某一设定值的时候等于某一设定值等。

3 超声波测距软件设计

设计中的超声波测距软件利用了常用超声波测距的渡越时间法。渡越时间法的工作原理为发射超声波的同时开始计时,接收到超声波后停止计时,记录超声波的传输时间为t,那么超声波测距模块和障碍物的距离为s由下式表示。

S=v*t/2

其中v为超声波在空气中的传播速度。由下式表示。

 

其中,T为空气的华氏温度。

在常温下,超声波的传输速度随温度变化并不太大,而且超声波的传输时间都为毫秒级,因此影响不是很大。不过也可以为超声波测距模块添加一个温度校正模块,检测环境温度,再在主控板控制器计算超声波速度时进行修正。现在市场已有集成温度检测器件,也很方便。

超声波测距的主要流程为发射超声波以后,如果有反射超声波信号返回,则由外中断0接收计算距离。在超声波信号发射的同时打开定时器3,定时时间为最大超声波测量距离所需的传输时间,如果在定时器3中断的时候还没有外中断0中断事件发生,即没有反射超声波信号返回,那么在进入定时器3中断的时候关闭超声波返回中断和超声波传输时间定时器l,进行下一次的超声波测距循环。程序流程图如图3所示。


图3超声波测距程序流程图

外中断0接收到超声波测距信号返回,则进入外中断0服务程序进行测距程序处理。若没有超声波信号返回则将发生定时器3的定时中断,说明等待超时,设定测距范围内无障碍物。两种情况都将引发等待标志位的改变,程序跳出等待状态,更改工作超声波测距模块,进行下一个超声波模块的测距处理。

外中断0和定时器0的程序流程图如图4所示。


图4 外中断0和定时器3程序流程图

图中A为外中断0程序流程图。进入中断服务程序表示有超声波信号返回。程序开始关闭所有系统的可屏蔽中断和测距使用外设,读取定时器l计数值,计算障碍物距离。更改程序循环标志,然后中断服务程序返回。B为定时器3的程序流程图。进入中断服务程序表示测距范围内无障碍物,因此只用关闭系统的可屏蔽中断和测距使用外设,直接更改程序循环标志,退出中断服务程序即可。设置定时器1不产生中断,而设置定时器1为定时最大值也不会发生定时器l中断。因此不必写定时器1的中断服务程序。

4 结论

本主控板控制器协调上位机和各模块的工作,软件设计中详细讲述串口传输中的数据类型处理问题。利用单片机PWM外设生成脉冲宽度调制信号驱动电机,并通过光电码盘实现电机的闭环调速。超声波测距模块已经有广泛的应用,超声波测距模块软件程序采用通用的渡越时间法完成距离的测量,并通过模拟开关实现多超声波测距模块的分时工作。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top