基于MSP430单片机和微型输注仪器实现电机驱动装置的设计

工业控制

1196人已加入

描述

1、引言

步进电机是一种将数字信号直接转换成角位移或线位移的控制驱动元件,具有快速起动和停止的特点。其机械位移和转速分别与输入脉冲的数量和脉冲频率成正比。步进电机在工业生产及人们生活的方方面面的应用十分广泛,而单片机控制步进电机具有功能灵活多样,脉冲输出准确,实时性强的特点,且系统成本较低。

现有的小型步进电机驱动电路,基本采用OC门驱动和三极管推拉式驱动。OC门电路驱动电机的缺点是驱动电流不够,响应速度慢,而且OC门最好工作在+5V电压环境下,在低电压环境下,工作不稳定。三极管推拉式驱动步进电机的缺点是NPN和PNP三极管的选择上。两个三极管的PN结开关点要尽量相同,否则三极管会被击穿,产生不安全隐患。

本文针对传统小型步进电机驱动存在的这些问题,并结合一种微型输注仪器的电机驱动装置的设计,提出一种新型步进电机驱动方案。本方案采用MSP430单片机,通过其上运行的软件控制MAX4685高速模拟开关的输出,从而实现对步进电机的控制。

这种低成本,高稳定,高性能的驱动方式,适合低电压,大电流,响应频率比较高的场合。

2、微型输注仪器的电机驱动方案

本文研制的微型输注仪器由三个部件组成:输注液容器、一个小型电池驱动的泵、用于准确控制泵输注剂量的计算机芯片。以上部件封装后,形成一个大小如同寻呼机的输注仪器,泵容器通过输入指令的控制由细塑料管输注液体。

该仪器的电机驱动装置,包括指令输入面板、驱动电路控制板、步进电机。驱动电路控制板采用集成电路MAX4685;其驱动电路控制板的输出端连接小型步进电机的输入端。该微型输注仪器的电机驱动框图如图1所示。

图1 电机驱动框图

输入面板是通过按键设置参数,通过在单片机运行的智能软件控制单片机的IO端口输出。单片机的IO端口连接集成电路MAX4685的输入端。集成电路MAX4685为高速模拟开关,输入为脉冲方波,控制MAX4685模拟开关的动作,使MAX4685的输出为脉冲方波。这样MAX4685可提供500mA的脉冲电流。MAX4685芯片为双路模拟开关,开关闭合时具有0.8Ω的电阻(2.7V工作),1.8V到5.5V电压工作范围。响应速度最高可达1MHz,驱动电流最大可达500mA。

MAX4685具体的参数如下:

NC端闭合电阻最大为0.8Ω(工作电压为2.7V);

NO端的闭合电阻最大为0.8Ω(工作电压为2.7V);

两个通道的匹配电阻最大为0.06Ω;

工作的电压范围1.8V-5.5V;

槛位电压为1.8V,最高输入信号电压为5.5V。

本实例是驱动两相直流步进电机。采用的单片机型号为MSP430F149。该型号的单片机是具有FLASH功能的超低功耗的16位单片机,工作电压为1.8V-3.6V。用按键选择菜单功能,设置参数。通过智能软件控制单片机的P50、P51、P52、P55 等4个IO端口输出驱动步进电机所用的脉冲波形,控制MAX4685的开关。用MAX4685的输出提供驱动步进电机所需的电流。电机的转速靠输出脉冲波形的频率来控制。电机的转动推动注射器输液。

具体的连接如图2所示。

图2 单片机、MAX4685、步进电机的连接关系图

本设计用单片机控制MAX4685的开关,用MAX4685的输出提供步进电机的脉冲波形,可确保输出电压波形稳定,驱动电流大,干扰小。达到低成本、高稳定性、响应速度快的低电压微型电机的要求。OC门和三极管推拉式驱动不易集成化。

3、电机驱动程序的具体设计与实现

合实例的电机驱动部分的连接关系,MAX4685的输入状态如表1。

表1 MAX4685的输入状态表

本文用MSP430F149单片机控制MAX4685模拟开关的动作,来实现对步进电机的控制。MSP430F149单片机的P50、P51 IO端口经MAX4685驱动后,连接到步进电机的相A上;P52、P55 IO端口经驱动后,连接到步进电机的相B上。步进电机的转动模式为全步模式,选用的是两相,每圈20步的步进电机。每步的转角为18度。每圈的转动精度为±10度。

步进电机的相的输入信号和转动关系如图3所示。相A和相B加的信号如果从1-4,将逆时针旋转,从4-1将顺时针旋转。

图3 步进电机相的输入信号与转动的关系

用MSP430F149的IO输出端输出信号,控制MAX4685的动作,产生相A和相B所需的信号。如表2所示。表中列出的信号为电机转动每步所需的信号关系。电机转动通过传动装置,推动注射器注液。

表2 单片机IO端口输出信号与转动的关系表

该微型输注仪器的电机驱动程序的具体流程如图4 所示,其中包括以下几个关键步骤:

(1)单片机相关IO端口定义

P5.0 P5.1 P5.2 P5.3 P5.4 P5.5 P5.6 P5.7

A B C Data Vdd D

(2)电机相关定时器定时初始化

TBCCR0 = IntTime; //主定时器 总时间

TBCCR1 = IntTime1;

//定时器1 电机给电,高电平时间

TBCCR2 = IntTime2;

//定时器2 电机停歇,低电平时间

(3)启动电机相关定时器

TBCCTL1 = 0x10; //开定时器1

TBCCTL2 = 0x10; //开定时器2

TBCTL = 0x0114; //开主定时器

(4)关闭电机相关定时器

TBCCTL0 = 0x00;

TBCCTL1 = 0x00;

TBCCTL2 = 0x00;

(5)中断处理函数

interrupt[TIMERB1_VECTOR] void Timer_B1 (void)

根据定时器中断向量TBIV 的值调整马达走步方向,或将马达走到相应位置。

图4 电机驱动流程图

4、结论

本设计改变了现有的OC门驱动和三极管推拉式的驱动方式,采用了MAX4685高速模拟开关直接驱动小型步进电机。这种驱动方案的响应速度可达到1MHz,驱动电流可达到500mA,可设计成低成本、高稳定性、响应速度高的电机驱动电路,直接驱动小型步进电机。同时具有原理简单,易于实现的特点。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分