微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于MSP430的舵机控制系统设计

基于MSP430的舵机控制系统设计

时间:11-11 来源:互联网 点击:
0引 言
无人机是一种由动力驱动、机上无人驾驶、可重复使用的航空器的简称。在无人机系统中,采用PWM波信号控制的舵机是重要的执行机构,它是无人机控制动作的动力来源。为便于系统扩展和升级[1.2],在飞控系统中往往采用分布式策略,将舵机的控制部分作为一个独立单元进行设计,称为舵机控制系统
传统产生PWM波的方法是通过大量的分立原件来实现的.所产生的脉冲频率和宽度往往不是很准确,很难做到对舵机的精确控制。另外,利用CPLD或FPGA产生PWM波已在很多场合得到应用,依靠CPLD或FPGA特有的并行处理能力和大量的1/0接口,可以同时控制几十甚至上百个舵机同时工作,但CPLD或FPGA生成PWM波时,并不具备事务处理能力,实际应用中还需要MCU配合工作,加之成本高,开发设备昂贵,极大的限制了它的应用范围。
由于单片机具有性能稳定、编程灵活、精度高、价格低廉等特点,用它产生PWM波在实际中得到了广泛应用。本文给出了一种新颖的利MSP430单片机利用自带的定时器产生PWM1j~[3.4]的方法,成本低,性能稳定,并成功应用于实践。
1总体介绍
飞行控制系统总体框架如图1所示,整个飞控系统是由飞控计算机、舵机控制系统、传感器系统、GPS、机载电源及地面站系统组成。在飞行过程中,无人机一方面通过传感器系统和GPS获得飞行姿态和航向的实时参数,并通过无线电传回地面;另一方面随时按收地面上传的遥控指令。以这些信息为基础,经过主控计算机控制律解算,按照一定协议输出控制指令到舵机控制系统[5,6],再经由舵机控制系统输出相应的信号控制舵机的偏转,从而实现对无人机飞行姿态的控制。

2 舵机控制系统硬件设计
2.1系统硬件结构
由于无人机采用燃料电池作为能源,所以要求机载设备尽可能功耗低、体积小、重量轻,这样既可以降低损耗又能提高系统稳定性和抗干扰能力。基于以上思想,设计了以田公司的MSP430F149单片机[7,9]为核心的舵机控制系统,该系统主要由CPU控制单元、串口通信单元、脉冲信号处理单元、电源等硬件电路组成,系统结构如图2所示。

2.2舵机简介
1)舵机的构造与工作原理
舵机主要是由外壳、小型直流电动机、减速齿轮、位置检测器和控制电路板所构成。其工作原理如图3所示,其中,直流电动机作为驱动器产生动力源[10],运动由减速齿轮减速,传递给输出轴和舵盘,在输出轴后端连接有电位计,用以检测当前位置,并将此值与驱动信号端口发送来的位置信号进行比较,通过控制电路,将差值放大并由电机执行操作,实现位置伺服[11]。
2)舵机的控制
舵机是无人机飞行控制的执行机构,也是本系统的控制对象,无人机一般装备有5个舵机,分别用来控制油门、副翼、升降舵、螺距和尾舵[12]。标准的舵机由一个宽度可调昀周期性方波脉冲信号即PWM波控制,以本系统采用的日本Futaba公司生产的S3003舵机为例,其脉冲周期为20 ms,中心脉宽为l 5 ms,对应0度,调节范围为±1 ms。当方波的脉冲宽度改变时,舵机转轴角度相应发生- 90度到90度内的线性改变,并通过连杆拉动舵面运动,从而控制无人机的飞行姿态,舵机输入脉冲与舵偏角的对应关系如图4所示。


3舵机控制系统软件设计
3.1可调PWM信号的实现
I)PWM信号的产生
由舵机的工作原理可知,要实现对舵机的控制,实际上就是能给它提供一个可控制的PWM信号。本系统所需的PWM信号是由单片机定时器B的时钟模块产生,该时钟模块有4种计数功能选择及8种输出方式选择,采用增计数模式和翻转/复位的输出方式,图5为此种组合模式下的示意图,由图可知,利用TBO的TBCCRO值作为计数周期,TBI - TB5的TBCCRl - TBCCR5值作为计数值,当计数达到TBCCRx(x取1-5)值时,输出信号进行翻转,达到TBCCRO值时输出信号进行复位,从而可以方便的设置所需占空比的PWM信号。

2)通信协议与PWM信号的关系
传统的舵机控制器通信协议帧通常采用舵机编号加数据的方式,每帧数据只能控制一个舵机,大大降低了通信的效率。本系统中每帧数据由16字节组成,其中包括帧头占两个字节、目的设备ID、数据位及校验和。帧头和校验和用于识别出数据帧并检查数据是否正确;目的设备ID用于标示舵机控制板(与之匹配的主控计算机板可连接多
块舵机控制板以增强兼容性和可扩展性);中间12个字节的数据位用于同时解算舵机的偏角,其中每个舵机占2个字节,极大的提高了数据帧的利用效率,因此,MSP430F149的定时器B可输出多达6路PWM波。
具体算法如下:
(1)首先定义一个将两个字节的十六进制数变为有符号整型的函数i16Bits2lnt在其中定义一个umon类型的变量itmp,然后通过赋值itmp.(2)接下来利用前面自定义的函数实现5路角度的解算,部分代码如下:


(3)在PwmOut()函数中进行解算的角度到TBCCRx值的转化,通过精确计算,本系统中计数周期TBCCRO值为8947,有效脉冲宽度TBCCRx设置范围为223 - 1118,零位对应671。
(4)最终通过循环赋值实现捕获比较寄存器TBCCRx值的更新。

3.2主体程序
如图6所示,本系统的主体程序是在

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

网站地图

Top