×
嵌入式 > 嵌入式开发 > 详情

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

发布时间:2020-08-17 发布时间:
|
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所示,本系统的主体程序是在嵌入式开发环境中实现,主要包括系统初始化模块、定时处理模块和串口中断处理模块。其中,初始化模块主要包括系统时钟、端口、定时器等的初始化;定时处理模块主要是利用定时器A的计数定时功能来实现看门狗清零、PWM输出及系统检测等功能,采用类似于嵌入式实时操作系统的时间片轮转任务调度方式;串口中断处理模块用来接收飞控计算机发送的协议帧,并进行相应的处理。
3.3串口通信
串口通信模块采用中断方式接收控计算机按照协议格式发来的控制信号,然后将数据存人预先定义好的16字节的数组,由解锁封锁模块提取出各舵机通道的指令控制量。数据格式为8位数据位,1位停止位,无校验位,波特率要求为19200 bps。需要注意的是,由于利用32. 768 kHz的低频晶振无法达到飞控计算机要求的19200 bps波特率,故串口初始化程序中采用3 579 MHz的高频晶振,通过设置UOBRO、UOBRI、UMCTLO三个寄存器的值分别为OxBA、Ox00、Ox90来实现19200 bps的波特率。一旦串口接收到数据时,就会进入串口中断服务程序,中断接收流程如图7所示。

需要说明的是,传统的舵机控制系统在接收到指令后仅进行PWM信号的解算,而未考虑到实际调试过程中可能出现的问题。出于全面性考虑,本系统采用“帧封装”设计。所谓“封帧”就是串口每接收到一帧数据就按照通信帧协议将数据打包,返送回飞控计算机或调试用的上位机,主要是为方便系统调试以判断串口通信正常与否;所谓“解帧”就是在保证接收到的通信帧数据完整的前提下,完成协议帧到PWM信号的解算。
4实验
4.1通信测试
为方便调试,采用PC机上的“串口调试助手V2. 2”模拟无人机飞控计算机通过RS422串口遵照帧协议每隔1秒定时向舵机控制系统发送指令,根据前面所述的封帧模块,舵机控制系统会将接收
基于MSP430的舵机控制系统设计张建鹏,等到的数据按照帧协议打包发送给飞控计算机,作为响应。测试界面如图8所示,图中反馈信息显示在接收字符区,而控制命令显示在发送字符区,系统响应及时,实时性强,而且不存在数据丢失或误码现象。

4.2波形稳定性测试
图9未利用波器测得一路PWM输出波形可以看出世纪输出地PWM波形稳定,杂波极少,复合系统预设要求。

4.3波形跟踪精度测试
利用自制的舵机测试软件对某一通道进行正弦跟踪拟合后的曲线如图10所示,其中横坐标代表时间(测试频率取0.1 Hz),纵坐标代表角度,绿色曲线代表舵机的理论偏转角,黄色曲线代表舵机的实际偏转角,红色曲线代表误差,经实际测算,误差熊有效控制在百分之零点一之内,跟踪性能良好。

5结语
本系统的优点有:1)基于分布式策略思想设计舵机控制系统,有利于飞控系统的扩展与升级。2)串口通信采用“帧封装”设计,增加了嵌入式系统“黑匣子”的透明度,极其方便调试。3)克服了传统通信协议每帧指令控制一路舵机的缺陷,本系统每帧数据同时控制六路舵机,极大的提高了通信效率。4)软件设计基于时间片轮转调度思想,提高了代码执行效率,使得系统的实时性显著增强。5)产生的PWM信号稳定,精度高,电机的抖动和互扰现象明显减弱,非常有利于无人机在高空执行任努。
经过调试,该硬件平台各项功能均达到设计目的,经多次试飞,稳定可靠,完全满足要求,同时表明该方案是一种适用于小型无人机的经济可靠的方案。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
五大标准轻松搞定4K超高清电视选购