两相四线步进电机.docx

上传人:b****1 文档编号:10496265 上传时间:2023-05-26 格式:DOCX 页数:16 大小:22.36KB
下载 相关 举报
两相四线步进电机.docx_第1页
第1页 / 共16页
两相四线步进电机.docx_第2页
第2页 / 共16页
两相四线步进电机.docx_第3页
第3页 / 共16页
两相四线步进电机.docx_第4页
第4页 / 共16页
两相四线步进电机.docx_第5页
第5页 / 共16页
两相四线步进电机.docx_第6页
第6页 / 共16页
两相四线步进电机.docx_第7页
第7页 / 共16页
两相四线步进电机.docx_第8页
第8页 / 共16页
两相四线步进电机.docx_第9页
第9页 / 共16页
两相四线步进电机.docx_第10页
第10页 / 共16页
两相四线步进电机.docx_第11页
第11页 / 共16页
两相四线步进电机.docx_第12页
第12页 / 共16页
两相四线步进电机.docx_第13页
第13页 / 共16页
两相四线步进电机.docx_第14页
第14页 / 共16页
两相四线步进电机.docx_第15页
第15页 / 共16页
两相四线步进电机.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

两相四线步进电机.docx

《两相四线步进电机.docx》由会员分享,可在线阅读,更多相关《两相四线步进电机.docx(16页珍藏版)》请在冰点文库上搜索。

两相四线步进电机.docx

两相四线步进电机

两相四线励磁式步进电机工作原理

欧阳家百(2021.03.07)

本章将介绍在嵌入式平台UP-NETARM2410-S中步进电机的实现。

逬电机在各个领域诸如机器人、智能控制.工业控制等方面都有

着广泛的应用

空间,本童着重介绍步进电机的工作原理及编程实现步进电机驱

动的方法,主

要内容如下:

1步进电机的概述

1步进电机的工作原理

1和微处理器的总线连接方式

1驱动程序的编程

1Linux下用软件的方法实现步进电机的脉冲分配,用软件的方

法代替硬件的脉

冲分配器

1.步进电机概述

步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电

元件,它

实际上是一种单相或多相同步电动机。

单相步进电动机有单路电

脉冲驱动,输

出功率一般很小,其用途为微小功率驱动。

多相步进电动机有多

欧阳索引创编2021.02.02

相方波脉冲驱

动,用途很广。

使用多相步逬电动机时,单路电脉冲信号可先通过脉冲分配器转

换为多相脉冲

信号,在经功率放大后分别送入步进电动机各相绕组。

每输入一个脉冲到脉冲

分配器,电动机各相的通电状态就发生变化,转子合转过一定的

角度(称为步距

角)。

正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连

续输入一

定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对

应关系,不受

电压波动和负载变化的影响。

由于步进电动机能直接接收数字量

的输入,所以

特别适合于微机控制。

1」步逬电机的特性

步进电机转动使用的是脉冲信号,而脉冲是数字信号,这恰是计

算机所擅

长处理的数据类型。

从20世纪80年代开始开发出了专用的IC驱动电路,今

天,在打印机、磁盘器等的OA装置的位置控制中,步进电机都是不可缺少的

欧阳索引创编2021.02.02

组成部分之一。

总体上说,步进电机有如下优点:

1.不需要反馈,控制简单。

2.与微机的连接、速度控制(启动、停止和反转)及驱动电路的设计比较简单。

3.没有角累积误差。

4•停止时也可保持转距。

5.没有转向器等机械部分,不需要保养,故造价较低。

6.即使没有传感器,也能精确定位。

7.根梔给定的脉冲周期,能够以任意速度转动。

但是,这种电机也有自身的缺点。

8.难以获得较大的转矩

9.不宜用作高速转动

10.在体积重量方⑥没有优势,能源利用率低。

11・超过负载时会破坏同步,速工作时会发出振动和噪声。

1.2步进电机的种类

目前常用的步进电机有三类:

1、反应式步进电动机(VR)。

采用高导磁材料构成齿状转子和定子,其结构简单,生产成本

低,步距角可以

做的相当小,但动态性能相对较差。

2、永磁式步进电动机(PM)。

2021.02.02

转子采用多磁极的圆筒形的永磁铁,在其外侧配置齿状定子。

用转子和定子之

欧阳索引创编

间的吸引和排斥力产生转动,转动步的角度一般是7.50。

它的出

力大,动态性

能好;但步距角一般比较大。

3、混合步逬电动机(HB)o

这是PM和VR的复合产品,其转子采用齿状的稀土永磁材料,定

子则

为齿状的突起结构。

此类电机综合了反应式和永磁式两者的优

点,步距角小,

出力大,动态性能好,是性能较好的一类步进电动机,在计算机

相关的设备中

多用此类电机。

2、步进电机的工作原理

现以反应式三相步进电机为例说明其工作原理。

三相步进电机的定子铁心上有六个形状相同的大齿,相邻两个大齿之间的

夹角为60度。

每个大齿上都套有一个线圈,径向相对的两个线

圈串联起来成

为一相绕组。

各个大齿的内表廁上又有若干个均匀分布的小齿。

转子是一个圆柱形铁心,外表⑥上圆周方向均匀的布满了小齿。

转子小齿

的齿距是和定子相同的。

设计时应使转子齿数能被二整除。

但某

—相绕组通

电,而转子可自由旋转时,该相两个大齿下的各个小齿将吸引相

欧阳索引创编2021.02.02

近的转子小

齿,使电动机转动到转子小齿与该相定子小齿对齐的位置,而其它两相的各个

大齿下的小齿必定和转子的小齿分别错开正负1/3的齿距,形成

“齿错位二从

而形成电磁引力使电动机连续的—苔K_转动下去。

和反应式步进电动机不同,永磁式步进电动机的绕组电流要求

正,反向流

动,故驱动电路一般要做成双极性驱动。

混合式步进电动机的绕

组电流也要求

正,反向流动,故驱动电路通常也要做成双极性。

2.1、步进电机的励磁方式

步进电机有2相、4相和5相电机。

在4相电机中有4组线圈,若电流按顺序

通过线圈则使电机产生转动。

2相电机中有2组线圈。

从图9.3可

以发现,在

各线圈中引出中间端子,因此若以中间端子为基准即可实现4

相,称这4为A、

B、C、D的励磁相。

本实验使用的就是这种方式的4相电机,而励磁方式中有

1相(单向)励磁、2相(双向)励磁和1-2相(单-双向)励磁方式。

此外,

如果转动的方向不正确,可以交替1、2端子或3、4号端子

欧阳索引创编2021.02.02

(1).1相励磁方式

按ABCD的顺序总杲仅有一个励磁相有电流通过,因此,对应1

个脉冲信

号电机只会转动一步,这使电机只能产生很小的转矩并会产生振动,故很少使

用。

ABCD

T11000

T20100

T30010

T40001

图2.T1-T4表示脉冲周期;ABCD表示电机的各相,1表示此时

有一个

脉冲,0表示没有

(2).2相励磁方式

按AB、BC、CD、DA的方式总是只有2相励磁通过的电流是1相励

磁时通过电流的2倍,转矩也是1相励磁的2倍。

此时电机的振动较小且应答

频率升高,目前仍广泛使用此种方式。

ABCD

T11100

2021.02.02

T20110

欧阳索引创编

T30011

T41001

图3.T1-T4表示脉冲周期;ABCD表示电机的各相,1表示此时有一个脉

冲,0表示没有脉冲

⑶.1-2相励磁方式

即实验中所有的励磁方式,它按A、AB、B、BC、C、CD、D、

DA的

顺序交替进行线圈的励磁。

与前述的2个线圈励磁方式相比,电

机的转速是原

来的1/2,应答频率范围变为原来的2倍。

转子以滑动的方式转动。

ABCD

Tl1000

T21100

T30100

T40110

T50010

T60011

T70001

T81001

图4.T1-T8表加脉冲周期;ABCD表ZJX电机的各相,1表TJX此时

有一个脉

欧阳索引创编2021.02.02

冲,0表示没有脉冲

3.与微处理器的连接方式

步进电机并不是直接与CPU相连的。

由于开发板上外部设备很

多,各功能模块

与微处理器的连接方式有专用线路,局部总线与扩展总线。

3」局部总线与扩展总线

局部总线与微处理器直接相连,扩展总线通过一个总线控制器

74LVCH6245与局部总线相连。

从CPU出来的数据.地址、读写控制等信号构成局部总线。

NAND

FLASH.SDRAM和网卡芯片AX88796直接挂在局部总线上的。

局部总线经

过四片74LVCH16245驱动后作为扩展总线引到其他外设以及

168Pin扩展

槽。

由于数据线是双向的,所以16245芯片必须有方向控制信

号,这里采用经

过隔离后的写控制信号OE作为数据线所在16245芯片的方向控

制线。

当OE

有效时16245芯片把扩展总线上的数据传输到局部总线上;当OE

无效时反

之。

号外,必须注意,当系统对局部总线上的芯片读数据时OE

—样会起作

用,这样就必须对局部总线和扩展总线逬行总线仲裁,这里是外

欧阳索引创编2021.02.02

设所具有的四

个片选信号nGCSl.3、农5用74HC21相与后作为数据线所在的16245

芯片的输出使能控制线,只有当系统对扩展总线读操作,也就是

上述四个片选

之一有效时,16245才能对局部总线输出数据,否则无论OE如

何都呈现高

阻态。

如下图:

注:

LDATA表示局部总线的数据线;DATA表示扩展总线的数据线。

74LVCH16425芯片共有四块,限于篇幅仅举一片为例,其它三片

芯片,一片

用于数据线的彳氐位连接,两片用于地址线的连接。

注:

由于片选线使用的负逻辑电平有效,所有此处用的杲与门

3.2芯片74HC573

扩展总线连接在芯片74HC573上,扩展总线的DATA0-DATA7分

别接

在74HC573的八个数据输入端上。

74HC573芯片是由8个三态门

组成的寄

存器,它起到暂时保存信息和隔离总线的作用。

芯片的输出

I\O0—1\03用于

D\A数模转换,I\O4—1\07用于步进电机的控制。

描述:

这个芯片采用的是八逬位的D触发器,它可以驱动电容式或电阻

式的负

载。

因此它特别适合应用于缓冲寄存器、10端口、双向的总线控

制器、和操作

寄存器。

当寄存器的使能端(LE)为高电平时,Q输出端和

—D输入端一一对应;当

LE为低电平时,输出端管脚Q输出的是寄存器中已被设定的值。

当一个能幵启

缓冲功能的负逻辑管脚(OE)为0时,无论是在正常逻辑状态还

是在高阻抗状

态下,都能放置八位的输出数据。

在高阻抗状态下。

输出并没有

负载或者逬行

控制总线。

高阻态和改进的总线驱动可以在不拉起元件的情况下

控制总线传

输。

OE端并不影响寄存器内部的操作。

当输出端呈高阻状态时

旧的数据可以被

保存或者新的数据进行输入。

3.3步进电机模块的驱动电路

74HC573芯片的输出I\O4—I\O7用于用来驱动步进电机的转动。

数据线

要首先接在步逬电机模块的一个接□上。

接□对信号逬行放大,

使之能够驱动

欧阳索引创编2021.02.02

步进电机。

放大后的信号就可以直接的来使步进电路进行工作

了。

3.4、开发板中的步进电机

本开发板中使用的步进电机为四相步进电机。

转子小齿数为64。

系统中采用四路I/O进行并行控制,ARM控制器直接发出多相脉冲信号,在

通过功率放大后,进入步进电机的各相绕组。

这样就不再需要脉

冲分配器。

脉冲

分配器的功能可以由纯软件的方法实现如上图所示。

四相步距电机的控制方法有四相单四拍,四相单、双八拍和四相双四拍三

种控制方式。

步距角的计算公式为:

9b=3600/mCk

其中:

m为相数,控制方法是四相单四拍和四相双四拍时C为

1,控制

方法是四相单、双八拍时C为2,Zk为转子小齿数。

本系统中采用的是四相单、双八拍控制方法,所以步距角为

3607512o

但步进电机经过一个1/8的减速器引出,实际的步距角应为

3607512/8O

开发平台中使用EXI/O的高四位控制四相步进电机的四个相。

按照四相

单、双八拍控制方法,电机正转时的控制顺序为

A->ABT—B—CD—D

-DA。

EXI/O的高四位的值参见下表:

十六进制二进制通电状态

1H0001A

3H0011AB

2H0010B

6H0110BC

4H0100C

CH1100CD

8H1000D

9H1001DA

表5.电机正转时,EXIO的高四位的值

反转时,只要将控制信号按相反的顺序给出即可。

可以通过宏

SETEXIOBITMASK(bit,mask)(EXIO.h)来设置扩展I/O口,其中mask参

数为OxfOo

本实验使作的是1-2相励磁方式,还可以使用1相励磁方式和2相

磁方式。

火1相励磁方式的顺序是ABCD,因此只要设置数组

charstepdata[]={Ox10,0x20,0x40,0x80}即可

火2相励磁方式的顺序是AB,BC,CD,DA,因此只要设置数组

欧阳索引创编2021.02.02

charstepdata[]={0x30,0x60,OxcO,0x90}即可

火要实现电机的反转,只需将上面数组的值按相反的顺序排列即可

4、驱动程序的编程

驱动程序采用C语言进行编程,下面是驱动程序中几个重要的函

数。

staticintdo_stepmotor_run(charphase)//通过调用这个函数使步进

电机转起来

{

unsignedintbak;〃变量bak用于存放从寄存器中读出

的值

bak=readw(s3c2410_exio_base);〃调用内核函数将基地址为

s3c2410_exio_base寄存

〃器的值读出并放在bak中

DPRINTK_STEP(us3c2410_exio_basecontentis%x\n°,bak);〃调试

输出语句

tiny_delay(5);〃延时函数,

有延时功能

bitops_mask_bit(phase,OxfO,&bak);

〃清除4-8位然后再设置phase传进来

的位(也是4-8位)

DPRINTK_STEP(Hs3c2410_exio_basecontentis%x\nn,bak);//调试

出语句

tiny_delay(5);

writew(bak,s3c2410_exio_base);〃调用内核函数将bak的值写入相

应的

寄存器中

bak=readw(s3c2410_exio_base);〃再次将寄存器的值读出

DPRINTK_STEP(us3c2410_exio_basecontentis%x\nu,bak);

〃利用调试语句再次将修改后的寄存器中的值输出,以验证其正确性

tiny_delay(5);

DPRINTK_STEPC'\nM);

return0;

驱动程序主要通过上⑥这个函数来使步进电机转动。

控制电机的

是一个

寄存器(地址是s3c2410_exio_base=0x08000100),只要给它适当的值电

机就可以运动起来。

这个函数通过传递变量phase从应用程序获

得数据。

然后

使用函数readw()JE寄存器的值就读出并送给bak;

通过函数bitops_mask_bit()修改bak的值;最后由writew()写回到

寄存器

中。

5、应用程序的编程

1、步进电机模块

步进电机模块和DA模块是使用Bankl地址空间扩展出来的10

□o共同使用驱动

s3c2410-exio.oo

在驱动程序中,与步进电机相关的主要在函数

s3c2410_exio_ioctl:

2、对应的应用源程序

#include

#include

#include

#include

#defineSTEPMOTOR_IOCTRL_PHASE0x13

staticintstep_fd=-1;

char*STEP_DEV=Vdev/exio/OrawM;〃定义一个指针指向步进电机

的驱动

程序

/*********人,AB,B,BC,CCD,D,DA***/

charstepdata[]={Ox10,0x30,0x20,0x60,0x40,OxcO,0x80,0x90);〃各

个相位对应的值

voidDelay(intt)//延时函数inti;

for(;t>0;t—)

for(i=0;i<400;i++);

/■丄"■丄"■士■土■士■士■土■士■士■土■士%9x•士•士■士■士%9x%9>■["%f>

f

*1**1*%L*■"/

叫.叫.#Tv#T%#T%/

intmain(intargc,char**argv)

{

inti=0;

if((step_fd=open(STEP_DEV,O_WRONLY))<0){

printfC'Erroropening/dev/exio/Orawdevice\nu);

return1;

/火

打开设备的驱动程序,由于LINUX把所有的设备都模拟成文件。

step_fd=open(STEP_DEV,0_WRONLY)实际调用的函数为:

staticints3c2410_exio_open(structinode*inode,structfile*filp)

〃驱动程序中的设备打开程序

火/

for(;;){

for(i=0;i

ioctl(step_fd,STEPMOTOR_IOCTRL_PHASE,

stepdata[i]);

/火程序逬入一个死循环,这样可以使电机在没有人为停止的状

况下,一直的

转动下去。

火第二层foi•语句循环一次即电机转动一周。

函数ioctl()对应函

数火s3c2410_exio_ioctl()

火而这个函数最终将调用函数do_stepmotor_run((char)arg);®步进电

机转动起来。

火/

printf(,'Delay(100)\nn);

Delay(lOO);

close(step_fd);〃程序结束时关闭设备

printfC'Stepmotorstartrunning!

\nn);

return0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2