首页 > 精品范文库 > 1号文库
基于DSP的步进电机控制器的设计
编辑:明月清风 识别码:10-1194640 1号文库 发布时间: 2024-10-31 21:06:07 来源:网络

第一篇:基于DSP的步进电机控制器的设计

《DSP原理及应用》 课程设计指导书

学 院 :机械工程学院 系 所 :测控技术与仪器系 班 级 : 姓 名 : 学 号 : 指导老师:

江苏大学测控技术与仪器系

202_-01-18 应用于包装机的步进电机控制器的设计

(江苏大学机械工程学院仪器科学与工程系,江苏,镇江,212013)

摘要

本文介绍了以典型电机微控制器TMS320LF2407芯片为控制核心的步进电机控制系统,阐述了如何利用TMS320LF2407实现电机转向、速度控制,并给出了相应系统控制策略。简述了步进电机的驱动控制和DSP的PWM脉宽调制原理,详细阐述了DSP实现步进电机的加减速控制问题。

步进电机是一种通过电脉冲信号控制相绕组电流实现定角转动的机电元件,与其他类型电机相比具有易于开环精确控制、无积累误差等优点,广泛运用于数控机床、机器人、自动化仪表等领域。DSP芯片的出现,开创了步进电机控制的新局面。用DSP控制的步进电机不仅减小了控制系统的体积、简化了电路,同时进一步提高了电机控制的精度和控制系统的智能化,从而逐步实现控制系统的嵌入式。基于DSP的步进电机控制技术在九十年代时期得到了较大发展,主要应用在工业、航天、机器人、精密测量等领域。数控机床、跟踪卫星用电经纬仪在采用了步进电机技术后,大大提高了控制与测量精度,这样就使步进电机伺服系统的应用前景更加广阔。鉴于此,本文提出了基于DSP的步进电机控制系统的设计方案。包括其硬件设计和软件设计。在软件设计中给出了主要控制程序,达到对步进电机转向、转速的控制,如正转、反转、加速、减速等。使用DSP最明显的优点在于提高了系统的可靠性,并降低了整个系统的成本。实验证明,此驱动系统简化了电路,提高了系统控制性能。

关键词:步进电机;DSP;控制系统;TMS320LF2407;

目录

第一章 绪论..................................................................................................................1 1.1引言..................................................................................................................1 1.2数字信号处理器DSP发展和现状..................................................................2 1.3 课题背景及意义.............................................................................................3 第二章 总体方案设计..................................................................................................5 2.1 设计方案.........................................................................................................5 2.2 TMS320LF2407 DSP芯片介绍........................................................................5 2.2.1 TMS320LF2407 的性能特点...................................................................5 2.2.2 A/D转换原理........................................................................................7 2.2.3 TMS320LF2407 内部A/D转换模块概述...............................................7 2.2.4 事件管理器.............................................................................................8 2.2.5 通用定时器.............................................................................................8 2.2.6 全比较单元.............................................................................................9 2.2.7 捕获单元和正交编码脉冲电路...........................................................10 2.3 四相反应式步进电机.................................................................................10 2.3.1 步进电机的结构.................................................................................10 2.3.2 步进电机的工作原理...........................................................................11 2.4 四相反应式步进电机的数学模型...............................错误!未定义书签。2.4.1 电路方程...............................................................错误!未定义书签。2.4.2 机械方程...............................................................错误!未定义书签。2.5 驱动芯片结构与特点...................................................................................12 第三章 详细设计........................................................................................................13 3.1 系统硬件设计...............................................................................................13 3.2系统软件设计................................................................................................13 3.2.1 DSP开发软件CCS介绍........................................................................13 3.2.2 程序控制流程.......................................................................................14 3.2.3 电机初始化程序...................................................................................15 3.2.4 电机控制程序.....................................................................................16 3.3 程序调试.....................................................................................................17 第四章 心得体会........................................................................................................19 参考文献......................................................................................................................20 附录..............................................................................................................................21

第一章 绪论

1.1引言

随着人们生活水平不断提高,对各种方便食品的需求也随之大增,这近一步拉动了我国食品包装业的快速发展。包装机是发展比较快的包装机械之一,拥有着广阔的发展前景。在制袋、充填、封口为一体的包装机中,要求包装用塑料薄膜定位定长供给,采用步进电机与拉带滚轮直接连接拉带,不仅结构得到了简化,而且调节极为方便,只要通过控制面板上的按钮就可以实现,这样既节省了调节时间,又节约了包装材料。

步进电机是一种把电脉冲信号变成直线位移或角位移的控制电机。它的位移速度与脉冲频率成正比,位移量与脉冲数成正比。每来一个脉冲电压,转子就旋转一个步距角。根据电压脉冲的分配方式,步进电机各相绕组的电流轮流切换,从而使电机旋转。步进电机具有步进数可控、运行平稳、价格便宜的优点,在加速器控制系统中的应用很广。

传统的步进电机一般可分为永磁式步进电动机(PM Step Motor),反应式步进电动机(VR Step Motor)和混合式步进电动机(Hybrid Step Motor)三种。

在数字化电机控制系统产生之前,要想获得高性能的步进电机驱动要么是采用昂贵、难维护的直流电机配便宜的控制装置,要么就是使用便宜的交流电机配昂贵、复杂的控制装置。基于DSP的数字化电机控制的出现改变了这一状况,由于DSP强大的运算能力,它可以实时地实现一些先进的控制算法,获得高性能的电机驱动控制。

数字化电机控制的优点正是由于数字化的信号和信号处理所带来的,和模拟控制相比,它具有互联方便,稳定性好,便于大规模集成,可以构成复杂的系统,容易修改,便于测试、调试和大规模生产等优点。数字化电机控制技术包括两个组成部分,现代电机控制理论和数字信号处理,其中数字信号处理又包括数字信号处理技术和数字信号处理器技术。数字化电机控制的发展和这几个方面的进展是密不可分的。

现代电机控制理论以矢量控制理论为代表,还有近年来得到快速发展的直接转矩控制理论等,这些高性能的控制方案需要进行大量的实时运算,用模拟器件的硬件方案来实现相当困难,难以实用化。只是在具有强大运算能力的控制器如 DSP等价格下降,性能提高之后,数字化的高性能控制方案才开始大量步入实用领域。

1.2数字信号处理器DSP发展和现状

DSP是Digital Signal Processor的缩写,DSP在70年代末、80年代初产生后起初并不显眼,主要应用于一些特定的数字信号处理密集的领域如军事的声纳和雷达、监测和监听设备,以及气象卫星、地震监测器等。虽受到个人计算机发展光辉的遮掩,它一直在幕后悄悄发展着。80年代后期开发出较通用产品后,逐步进入各个领域。近年来,随着通讯领域的红火,个人计算机的普及以及家用电器的发展,DSP更是从幕后走到了台前,各种应用如手机、MODEM、硬盘、声卡、显卡、DVD.VCD、可视电话、数字电视、数字相机、导弹、高保真音响、洗衣机、空调、语音识别、游戏等等数不胜数,大到上天入地,小到我们每个人的身边,现在是哪儿都有它的踪迹了。

如果说CPU是PC时代的技术核心,则说DSP是后PC时代的技术核心毫不为过。由于具有超强的数字信号处理能力和合理的性价比,二十几年时间,DSP的发展日益迅猛,应用日益广泛。现在,DSP已经成为计算机网络、无线通讯、信息家电、电子产品、图形处理、视频会议、数字音频广播等领域的核心。业内人士预言:DSP将是未来发展最快的电子器件,是电子产品更新换代的决定性因素。

DSP芯片能够高速发展,一方面得益于集成电路的发展,另一方面也得益于巨大的市场。目前,DSP芯片的价格越来越低,性能价格比日益提高,具有巨大的市场潜力。据世界半导体贸易统计组织(WSTS)发布的统计和预测报告显示:1996~202_年,全球DSP市场一直保持稳步增长,202_年增长率为35%;另据CCID统计:202_年中国DSP增长率超过40%,销售量达到13亿块。

据市场调查公司ICE统计,1998年DSP市场达33.4亿美元,其中通信占48%,计算机/MODEM占30%,硬盘12%,消费类产品5%,军用航空航天5%,典型应用产品和市场包括:电视会议、文件成像、可视电话、数字蜂窝电话、数字设备、电机调速等,一些家用电器如空调、洗衣机、电冰箱等为了节能和静音也开始采用DSP控制。

DSP按数据格式分可分为定点DSP和浮点DSP两种,也可按用途分为通用型 DSP和专用型DSP,近年来德州仪器(TI)和美国模拟器件公司(Analog Device,简称AD)都推出了专门针对电机控制领域的专用型DSP系列,TI是TMS320-2XX系列,AD则是ADMC系列,这些芯片都是定点DSP,具有普通定点DSP的运算能力和单片机般的外围设备,使得它们成为用于数字化电机控制的最佳选择。当前,DSP芯片还在快速发展中,它的处理速度正随着时间的前进而不断提高,从1982年的5MIPS(每秒百万指令)到1997年的100MIPS,再到现在的2000MIPS(多DSP单一化),预计202_年将达到320000MIPS。DSP的价格则正走着一条相反的道路,据DSP最大的生产厂家TI公司的历史价格统计,12年来每MIPS的价格己从200美元降到了一个美元,价格的下降导致应用领域的扩大,而应用的扩大也引起价格的下降,形成了一种良性的循环。

技术的高速发展引发了信息产业革命,以计算机技术、通信技术为核心的信息技术正在以前所未有的速度改变着人们的生活和工作方式。数字信号处理是信息技术中的一个核心问题。实现数字信号处理的核心器件是数字信号处理器(以后简称为DSP)。

数字化电机控制包括电机模型的数字化和信号处理的数字化,而DSP的运算速度则是这样的实时一控制所必须的。为实现上述步进电机控制和交流电机控制融合的想法,由于其中有较多实时数学运算的要求,因此考虑使用德州仪器(TI)C2000系列DSP中的TMS320LF2407来实现。

1.3 课题背景及意义

用DSP控制的步进电机不仅减小了控制系统的体积、简化了电路,同时进一步提高了电机控制的精度和控制系统的智能化,从而逐步实现控制系统的嵌入式。基于DSP的步进电机控制技术在九十年代时期得到了较大发展,主要应用在工业、航天、机器人、精密测量等领域。数控机床、跟踪卫星用电经纬仪在采用了步进电机技术后,大大提高了控制与测量精度,这样就使步进电机伺服系统的应用前景更加广阔。

DSP控制器的技术水平主要体现在三个层面:硬件方案、核心控制算法以及应用软件功能。国内步进电机控制器所采用的硬件平台和国外产品相比并没有太大差距,有的甚至更加先进。DSP用于电机控制有很多好处:

(1)可执行高级运算,减少力矩纹波,从而实现低振动、长寿命;(2)高级运算使谐波减小,很容易满足国家要求,同时降低滤波器成本;(3)提供无传感器运算,省去位置和速度传感器:

(4)实时产生平滑的、近乎完美的参考模型,获得良好的控制性能;(5)控制逆变器,产生高精度PWM输出;(6)提供单片机控制系统。

本课题的研究内容是使用TI公司的DSP芯片TMS320LF2407控制步进电机,实现步进电机的驱动,构成控制系统。

第二章 总体方案设计

2.1 设计方案

本次设计是步进电机控制器系统,整个控制系统分为四个部分:DSP中央控制器TMS320LF2407、外接电位器、步进电机及其驱动。

在本次设计中采用的电机是微型四相反应式步进电动机,其接受数字控制信号(电脉冲信号),并转换为与之相对应的角位移。基于对低碳节能的考虑,在这里设计成一个单四拍信号来进行步进电动机的控制,通电顺序为A-B-C-D-A,步距角为15°。驱动芯片采用的是ULN2003芯片,控制流程如下:首先由DSP的A/D转换模块将电位器输出的模拟信号转换为数字信号,然后将该数字信号输入到DSP中以设定脉冲信号的间隔时间以便控制电机的转速,接着将由DSP的四个I/O口提供脉冲信号给驱动芯片,脉冲信号经过驱动芯片的处理后用来驱动步进电机的四个相,从而达到控制电机运转的目的。

在本次步进电机的控制系统中,由于步进电动机本身所拥有的精确定位特点我们采用开环控制系统。系统总体结构图如下所示:

电位器A/DTMS320LF2407 DSP驱动芯片步进电机

图2-1 系统总体结构图

2.2 TMS320LF2407 DSP芯片介绍

2.2.1 TMS320LF2407 的性能特点

TMS320LF2407芯片是Texas Instruments公司生产的16位定点数字信号处理器TMS320C2000家族中的一种,是TMS320X240X系列DSP控制器中功能最强、片上设施最完备的一个型号。与其他TMS320C2000系列芯片相比具有以下特点:

1、采用高性能静态CMOS技术,使供电电压降为3.3V,减小了控制器功耗;40MIPS的最高指令执行速度使得指令周期为33ns(30MHz),从而提高了控制器的实时控制能力。

2、基于TMS320C2xxDSP的CPU内核,保证了TMS320LF2407代码和TMS320系列DSP代码兼容。

3、片内有高达32K字FLASH程序存储器,高达1.5K字数据/程序RAM,544字双口RAM(DARAM)和2K字单口RAM(SARAM)。

4、两个事件管理模块EVA和EVB,每个模块包括:两个16位通用定时器;8个16位脉宽调制(PWM)通道。它们能够实现: PWM的对称和非对称波形;可编程PWM死区控制以防止上下桥臂同时输出触发脉冲;3个捕获单元;片内光电编码器接口电路;16通道10位A/D转换器。事件管理器模块适用于控制交流感应电机、无刷直流电机、开关磁阻电机、步进电机和功率逆变器。

5、可扩展外部存储器总共192K字空间:64K字程序存储空间;64K字数据存储空间;64K字I/O寻址空间。

6、看门狗定时器模块(WDT):可用来监控系统软件和硬件的操作,它可以按照用户设定的时间间隔产生中断。如果软件执行进入一个不正确的循环或者CPU运行出现异常时,该模块可以实现系统复位,使系统进入预定状态。

7、控制器局域网络(CAN)2.0模块:CAN模块给用户提供了设计分布式或网络化运动控制系统接口。

8、串行通信接口(SCI)模块:用于实现DSP与其他异步外设之间的串行通信,其接收器和发送器都是双缓冲的。9、16位串行外设(SPI)接口模块:用于DSP与外设或其他控制器进行串行通信,典型应用包括与数模转换器、LED显示驱动等器件的通信。

此外,TMS320LF2407包含高达40个可单独编程或复用的通用输入/输出引脚和基于锁相环的时钟发生器。之所以称TMS320LF2407为电机控制专用芯片,主要原因在于该芯片内置有功能强大的事件管理器、PWM脉冲发生器和两路10位模数转换模块。有了事件管理器强大的实时处理功能和PWM控制波形发生器以及两路同时采样、保持、转换的高速A/D,TMS320LF2407几乎可以实现任何电机控制。

2.2.2 A/D转换原理

A/D转化电路亦称“模拟数字转换器”,简称“模数转换器”。将模拟量或连续变化的量进行量化(离散化),转换为相应的数字量的电路。

随着数字技术,特别是信息技术的飞速发展与普及,在现代控制。通信及检测等领域,为了提高系统的性能指标,对信号的处理广泛采用了数字计算机技术。由于系统的实际对象往往都是一些模拟量(如温度。压力。位移。图像等),要使计算机或数字仪表能识别。处理这些信号,必须首先将这些模拟信号转换成数字信号;而经计算机分析。处理后输出的数字量也往往需要将其转换为相应模拟信号才能为执行机构所接受。这样,就需要一种能在模拟信号与数字信号之间起桥梁作用的电路-模数和数模转换器。

A/D转换器的功能是把模拟量变换成数字量。由于实现这种转换的工作原理和采用工艺技术不同,因此生产出种类繁多的A/D转换芯片。A/D转换器按分辨率分为4位、6位、8位、10位、14位、16位和bcd码的31/2位、51/2位等。按照转换速度可分为超高速(转换时间≤330ns)、次超高速(330~3.3μs)、高速(转换时间3.3~333μs)、低速(转换时间>330μs)等。A/D转换器按照转换原理可分为直接a/d转换器和间接a/d转换器。所谓直接A/D转换器,是把模拟信号直接转换成数字信号,如逐次逼近型,并联比较型等。其中逐次逼近型a/d转换器,易于用集成工艺实现,且能达到较高的分辨率和速度,故目前集成化A/D芯片采用逐次逼近型者多;间接A/D转换器是先把模拟量转换成中间量,然后再转换成数字量,如电压/时间转换型(积分型);电压/频率转换型,电压/脉宽转换型等。其中积分型a/d转换器电路简单,抗干扰能力强,切能作到高分辨率,但转换速度较慢。有些转换器还将多路开关、基准电压源、时钟电路、译码器和转换电路集成在一个芯片内,已超出了单纯A/D转换功能,使用十分方便。

2.2.3 TMS320LF2407 内部A/D转换模块概述

TMS320LF2407的A/D转换模块(ADC)具有以下特性:

1、带内置采样和保持(S/H)的10位ADC。

2、多达16个模拟输入通道(ADCIN0-ADCIN15)。

3、自动排序的能力。一次可执行最多16个通道的“自动转换”,而每次要转换的通道都可以通过编程来选择。

4、两个独立的最多可选择8个模拟转换通道的排序器(SEQ1和SEQ2)可以独立工作在双排序器模式,或者级联之后工作在一个最多可选择16个模拟转换通道的排序器模式。

5、在给定的排序方式下,4个排序控制器(CHSELSEQN)决定了模拟通道转换的顺序。

6、可单独访问的16个结果转换器(RESULT0-RESULT15)用来储存转换结果。

7、可有多个触发源启动A/D转换: 软件:软件立即启动(用SOC和SEQN);

EVA/B:事件管理器(在EVA/B中有多个事件源可以启动A/D); 外部:ADC SOC引脚;

8、灵活的中断控制,允许在每一个或每隔一个序列的结束时产生中断请求。

9、排序器可工作在启动/停止模式,允许多个按时间排序的触发源同步转换。

10、EVA和EVB可各自独立地触发SEQ1和SEQ2(仅用于双排序器模式)。

11、采样和保持获取时间窗口有单独的预定标控制。

12、内置校验模式。

13、内置自测试模式。

2.2.4 事件管理器

在实际应用中,使用TMS320LF2407来构成运动控制系统的关键是该芯片具有一个事件管理器(Event Manager)专用外设模块。事件管理器是一个专门用于电动机控制的外设模块,主要由通用定时单元、比较单元、捕获单元、正交编码脉冲电路QEP和外部输入组成。

2.2.5 通用定时器

TMS320LF2407的每个事件管理模块有两个可编程通用定时器(GP)。每个GP定时器x(EVA,x=1,2;对EVB,x=3,4)包括:

一个16位定时器增/减计数的计数器TxCNT,可读写。一个16位定时器比较寄存器(映射双缓冲寄存器)TxCMPR,可读写。一个16位定时器周期寄存器(映射双缓冲寄存器)TxPR,可读写。一个16位定时器控制寄存器TxCON可读写。可选择的内部或外部输入时钟。

用于内部或外部时钟输入的可编程预定标器(Prescaler)。

控制和中断逻辑用于四个可屏蔽的中断:下溢、溢出、定时器比较和周期中断。

可选方向的输入引脚TMRDIR(当选择双向计数方式时,可以用来选择向上或向下计数)。

在实际应用中,这些定时器能够产生系统所需要的计数信号、离散控制系统的采样周期、QEP电路、捕获单元和比较单元的时基等。为了适应不同应用的需要,每个通用定时器都有6种可选的计数模式,分别是:停止/保持模式;单增计数模式;连续增计数模式;定向增/减计数模式;连续增/减计数模式;单增/减计数模式。

每个GP定时器都有一个比较寄存器和一个比较PWM输出引脚,通用定时器可以工作在比较操作模式或比较PWM输出模式。当工作在比较操作模式时,定时器的计数器值总是和相关的比较寄存器中的值相比较,当两者相等时就发生比较匹配事件。当工作在比较PWM模式时,其输出引脚的信号受通用定时器控制寄存器的定义、定时器所处的计数模式以及定时器的计数方向的影响。

2.2.6 全比较单元

事件管理器EVA模块中有三个全比较单元CMPx(x=1,2,3);事件管理器EVB模块中同样有三个全比较单元CMPx(x=4,5,6)。每个比较单元都可以工作在比较模式或PWM模式下,可以通过COMCON中的位决定每个比较单元的工作模式。

当比较模式被选中并且全比较操作被使能时,定时器的计数器就会不断地与全比较单元的比较寄存器中的值进行比较。当发生比较匹配时,全比较单元的输出引脚会根据ACTR中的定义产生合适的电平跳变,同时比较中断标志被置位。如果同组中没有其他更高优先级的中断挂起,该中断标志将向DSP内核发出中断请求。当工作在PWM模式下,全比较的操作类似于通用定时器的比较操作。2.2.7 捕获单元和正交编码脉冲电路

捕获单元在TMS320LF2407的捕获引脚上出现跳变时被触发,事件管理器总共有6个捕获单元。当捕获引脚CAPx(对EVA,x=1,2,3:对EVB x=4,5,6)上检测到所选的跳变时,所选的GP定时器的计数值被捕获并存储在两级FIFO栈中。

每个EV模块都有一个正交编码脉冲电路。该电路被使能后,可以在编码和计数引脚CAP I /QEP I和CAP2/QEP2(对于EVA模块)或CAP3lQEP3和CAP4/QEP4(对于EVB模块)上输入正交编码脉冲。正交编码脉冲电路可用于连接光电编码器以获得旋转机械的位置和速率信息。此电路在处理电机测速光电编码器的输出信号时很有用,可以大大简化电机测速的软硬件开销,提高控制系统的测速精度与可靠性。如果使能了正交编码脉冲电路,则相应引脚上的捕获功能将被禁止。

2.3 四相反应式步进电机

2.3.1 步进电机的结构

四相步进电机的基本机构如图2-2。四相步进电机在结构上分为转子和定子两部分。定子一般由硅钢片叠成,定子上所绕的线圈称为励磁线圈。对于如图2.1所示的绕线方式,A、A’引线形成一相,B、B’引线形成一相,C、C’引线形成一相D、D’引线形成一相。当给某相线圈通电时将形成8个磁极。这样,对于四相八级步进电机共有A、A’,B、B’,C、C’和D、C’四个绕组、8个磁极。每个定子磁极内表面都分布着小齿,它们大小相同,间距相同。

转子是由软磁材料制作成的。其外表面也均匀分布着小齿,这些小齿与定子磁极上的小齿相同,形状相似。

由于小齿的齿距相同,所以不管是定子还是转子,它们的齿距角都可以由下式

Z2/Z(2.1)

来计算。式中,Z为转子的齿数。

图2-2 四相步进电机步进示意图

2.3.2 步进电机的工作原理

在步进电机的结构中必定有错齿和对齿的存在如图2-3所示。我们把定子小齿和转子小齿对齐的状态称为对齿;把定子小齿与转子小齿不对齐的状态称为错齿。错齿的存在是步进电机能够旋转的前提条件。如果给处于错齿状态的相线圈通电,转子在电磁力的作用下,如果磁极相异,则转子向完全对齿方向转动,如果磁极性相同,则转子向完全错齿方向转动。假设将电机的转子置于线圈所产生的磁场中,便会受到磁场的作用而产生与磁场方向一致的力,转子便开始转动,直到转子的磁场和线圈的磁场方向一致为止。步进电机的转动就是基于这一原理实现的。

定子小齿

转子小齿

(a)对齿(b)错齿

图2-3 定子齿与转子齿的磁导现象

按如下四个步骤循环通电: A’A相通电,电流方向为A’—A; B’B相通电,电流方向为B’—B; C’C相通电,电流方向为C’—C; D’D相通电,屯流力向为D’—D。

可以分析出,在每一次通电过程中,步进电机的转子均相对上次通电时的平衡位置顺时针旋转了一个位移角。对绕组通电一次的操作称为一拍,根据上面给出的算式每给电机一个脉冲,步进电机将转过15度,既转过一圈则需要,360/15=24个脉冲。

2.5 驱动芯片结构与特点

本次设计采用的驱动芯片是ULN2003。它是高耐压、大电流达林顿陈列。由七个硅NPN达林顿管组成。该电路的特点如下:

ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连。可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003工作电压高.工作电流大.灌电流可达500mA,并且能够在关断时承受50v的电压,输出还可以在高负载电流并行运行。

图2-4 ULN2003内部结构图 第三章 详细设计

3.1 系统硬件设计

系统硬件设计详细信息请查阅成员朱永良报告。

3.2系统软件设计

3.2.1 DSP开发软件CCS介绍

CCS(Code Composer Studio)软件是德州仪器公司专为TMS320系列DSP开发的一个开发软件。

CCS在Windows环境下工作,类似于VC++集成开发环境,它采用图形接口界面,提供有编辑工具和工程管理工具,将代码产生工具,如汇编器、链接器、C/C++编译器、建库工具整合为一个统一的开发平台。CCS支持汇编语言、C/C++语言编程。能对DSP进行指令级的仿真和可视化实时数据分析,极大地方便了DSP系统地软硬件开发。但多数情况下,考虑到软件的移植性问题,一般采用C语言编程。下图所示为CCS平台的组成。

图3-1 CCS平台组成 CCS集成的源代码编辑环境,使程序的修改更为方便;CCS集成的代码生成工具,使开发设计人员不必键入大量的命令及参数;CCS集成的调试工具,使程序调试一目了然,大量的观察窗口使程序调试得心应手。更重要的是CCS增强了实时、嵌入信号的开发过程,开发人员可在不中断程序运行的情况下检查算法的对错,实现对硬件的实时跟踪调试,大大缩短了程序的开发时间。3.2.2 程序控制流程

如下图所示为主程序流程图:

开始系统初始化I/O口模式设置所有LED初始化LCD初始化调用电机子程序

图3-2 主程序流程图

程序运行开始后,首先进行系统初始化,初始化内容包括:将DSP的IOPE0到IOPE7管脚设置为I/O模式、将中断模式位清零使所有未屏蔽的中断使能、将IOPE0到IOPE7管脚设置为低电平既使开发板上的灯全部熄灭、定时器1初始化设置定时周期和计数模式等。

3.2.3 电机初始化程序 main(){

SystemInit();

//系统初始化

MCRC=MCRC & 0xFF00;

//IOPE0-7设为IO口模式

PEDATDIR=0xFF00;

asm(“ CLRC INTM ”);

LcdInit();

Timer1Init();

while(1)

{

KeyLed();

} }

void SystemInit()

{

asm(“ SETC INTM ”);

asm(“ CLRC SXM ”);

asm(“ CLRC CNF ”);asm(“ CLRC OVM ”);

SCSR1=0x83FE;

时钟CLKOUT=40M */

WDCR=0x006F;

KickDog();

IFR=0xFFFF;

IMR=0x0002;

}

//所有LED=0,/*LCD初始化*/

//定时器初始化

//系统初始化程序

/* 关闭总中断 */

禁止符号位扩展 */

/* B0块映射为 on-chip DARAM*/ /* 累加器结果正常溢出*/

/* 系统时钟CLKOUT=20*2=40M */ /* 打开ADC,EVA,EVB,CAN和SCI的时钟,系统

/* 禁止看门狗,看门狗时钟64分频 */

/* 初始化看门狗 */

/* 清除中断标志 */

/* 打开中断2*/

/*

3.2.4 电机控制程序

调用电机控制程序numled=0,numled++提取AD模块采样结果(AD>0)numled等于AD?numled++是IOPE1输出高电平;LED1亮 numled等于2*AD?numled++是IOPE2输出高电平;LED2亮 numled等于3*AD?numled++numled++是IOPE3输出高电平;LED3亮 numled等于4*AD?numled++是是IOPE4输出高电平;LED4亮 numled等于5*AD?图3-3 电机控制流程图

void KeyLed(){

if(numled==AD)

//修改参数AD可以控制步进电机转速

{

PEDATDIR=PEDATDIR & 0xFF00;

//IOPE1,2,3,4=0;LED全灭

PEDATDIR=PEDATDIR | 0x0002;

//IOPE=1;LED1亮

}

if(numled==2*AD)

{

PEDATDIR=PEDATDIR & 0xFF00;

//IOPE1,2,3,4=0;LED全灭

PEDATDIR=PEDATDIR | 0x0004;

//IOPE2=1;LED2亮

} if(numled==3*AD)

{

PEDATDIR=PEDATDIR & 0xFF00;

//IOPE1,2,3,4=0;LED全灭

PEDATDIR=PEDATDIR | 0x0008;

//IOPE3=1;LED3亮

} if(numled==4*AD)

{

PEDATDIR=PEDATDIR & 0xFF00;

//IOPE1,2,3,4=0;LED全灭

PEDATDIR=PEDATDIR | 0x0010;

//IOPE3=1;LED4亮

}

if(numled>=4*AD)

{

Que();

WriteMenu1(6,b);

numled=1;

}

}

程序初始化后,DSP的AD转换模块将电位器输入的电压模拟信号转换为数字信号,并存在结果寄存器RESULT0(设计采用的通道为AD0通道)中,我们通过赋值的方式将寄存器里的值赋给数组,然后用求平均数的方式来进行滤波,最后将平均值赋值整数值AD。根据上面的程序可以看出AD的大小决定了脉冲之间的间隔,也就是说通过调节AD的值可以控制电机的转速。

3.3 程序调试

在PC机系统安装好编译软件CCS3.3后,在计算机桌面上将出现两个快捷方式图标,一个是Setup CCStudio v3.3,另一个是CCStudio v3.3。Setup CCStudio v3.3是用来对该编译器的运行环境进行配置;CCStudio v3.3为程序仿真调试集成环境软件。CCS集成开发环境不能直接将汇编源代码或C语言源代码文件Build生成DSP可执行代码。必须使用项目(Project)来管理整个设计和调试过程。项目保存为*.pjt文件。新建完项目并把C源程序文件(.C)、汇编源程序文件(.ASM)、目标文件(.OBJ)、库文件(.LIB)、命令文件(.CMD)等都加入后,便可以开始调试程序。其中的头文件将通过在程序中用include来添加。在调试过程中也遇到了一些问题,例如电机无法正常运转,后来在同学的帮助下终于找到了问题的所在,最终解决了问题。

第四章 心得体会

这次为期一周的DSP课程设计,我不仅仅学到了DSP设计方面的知识,更使我懂得一个仪器的设计过程。在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。

在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用的能力,对集成开发环境CCS的使用也有了更深的了解,对DSP芯片的应用也有了更深刻的体会。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。

再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。

在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!19

参考文献

[1]王玲,王晓明.电动机的DSP控制-TI公司DSP应用.北京:北京航空航天大学出版社,202_ [2]刘和平,邓力.DSP原理及电机控制应用.北京:北京航空航天大学出版社,202_ [3]王晓丹.基于单片机的步进电机细分驱动系统的研究:[硕士学位论文].长沙:中南大学控制科学与工程,202_ [4]孙忠献.电机技术与应用.福州:福建科学技术出版社,202_ [5]李爱芹.基于DSP的三相混合式步进电机细分驱动系统研究:[硕士学位论文].杭州:浙江工业大学控制理论与控制工程,202_ [6]孙忠献.电机技术与应用.福州:福建科学技术出版社,202_ [7]章烈剽.基于单片机的高进度步进电机控制研究:[硕士学位论文].武汉:武汉理工大学控制理论与控制工程,202_ [8]刘爱萍.基于C8051F005单片机的两相混合式直线步进电机驱动系统的设计:[硕士学位论文].呼和浩特:内蒙古农业大学农业电气与自动化,202_ [9]汤涌.基于电机参数的同步电机模型.电网技术,202_ [10]杨渝钦.控制电机.天津:机械工业出版社,202_ 20

附录

/*Main.c*/

/*步进电机控制系统程序*/ #include “hd44780.h” #include “global.c” void SystemInit();void Timer1Init();void LcdInit(void);void WriteCom(Uint16 com);void WriteMenu1(Uint16 num,Uint16 *pBuffer);void KickDog();

void KeyLed();void Lv();void Que();Uint16 a[6],b[6];unsigned int numled=0;unsigned int i=0,j=0,t0=0,k=0,D=0;unsigned int RESULT_0=0,AD=0;unsigned int AD0[18],AD_0,AD_FLAG=0;float AD_E=0.0;main(){

SystemInit();

//系统初始化

MCRC=MCRC & 0xFF00;

//IOPE0-7设为IO口模式

PEDATDIR=0xFF00;

//所有LED=0,asm(“ CLRC INTM ”);

LcdInit();

/*LCD初始化*/

Timer1Init();

//定时器初始化

while(1)21

{

KeyLed();

}

}

void SystemInit(){

asm(“ SETC INTM ”);

asm(“ CLRC SXM ”);asm(“ CLRC CNF ”);asm(“ CLRC OVM ”);

SCSR1=0x83FE;

CLKOUT=40M */

WDCR=0x006F;

KickDog();

IFR=0xFFFF;

IMR=0x0002;

}

void Timer1Init()

{

EVAIMRA=0x0080;

EVAIFRA=0xFFFF;

GPTCONA=0x0000;T1PR=2500;

/* 关闭总中断 */

/* 禁止符号位扩展 */

/* B0块映射为 on-chip DARAM*/ /* 累加器结果正常溢出*/

/* 系统时钟CLKOUT=20*2=40M */

/* 打开ADC,EVA,EVB,CAN和SCI的时钟,系统时钟

/* 禁止看门狗,看门狗时钟64分频 */

/* 初始化看门狗 */

/* 清除中断标志 */ /* 打开中断2*/

// 定时器1周期中断使能

// 清除中断标志

// 定时器1初值,定时0.4us*2500=1ms

}

T1CNT=0;T1CON=0x144E;

//增模式, TPS系数40M/16=2.5M,T1使能

void KeyLed(){

while(1)

{

if(AD_FLAG==1)

{

AD_FLAG=0;

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

{

AD_Simple();

AD0[i]=RESULT_0;

}

Lv();

}

}

if(numled==AD)

// 修改这些参数可以控制步进电机转速

{

PEDATDIR=PEDATDIR & 0xFF00;

//IOPE1,2,3,4=0;LED全灭

PEDATDIR=PEDATDIR | 0x0002;

//IOPE=1;LED1亮

}

if(numled==2*AD)

{

} if(numled==3*AD)

{ PEDATDIR=PEDATDIR & 0xFF00;

//IOPE1,2,3,4=0;LED全灭

PEDATDIR=PEDATDIR | 0x0004;

//IOPE2=1;LED2亮

} PEDATDIR=PEDATDIR & 0xFF00;

//IOPE1,2,3,4=0;LED全灭

PEDATDIR=PEDATDIR | 0x0008;

//IOPE3=1;LED3亮

if(numled==4*AD)

{

PEDATDIR=PEDATDIR & 0xFF00;

//IOPE1,2,3,4=0;LED全灭

PEDATDIR=PEDATDIR | 0x0010;

//IOPE3=1;LED4亮

}

if(numled>=4*AD)

{

Que();

WriteMenu1(6,b);

numled=1;

}

}

void Que(){

int v=2500/AD;

a[2]=v/1000;

//千位 a[3]=(v-a[2]*1000)/100;

//百位 a[4]=(v-a[2]*1000-a[3]*100)/10;

//十位 a[5]=(v-a[2]*1000-a[3]*100)%10;

//个

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

{

b[i]=a[i]+0x30;

};}

void AD_Simple(){

ADCTRL1=0x4000;

asm(“ NOP ”);

/* ADC模块复位 */

ADCTRL1=0x0020;

/* 自由运行,启动/停止模式,双排序器工作模式 */

MAXCONV=0x0000;

CHSELSEQ1=0x0000;

//第0通道

ADCTRL2=0x4000;

//复位使排序器指针指向CONV00

ADCTRL2=0x2000;

/* 启动ADC转换 */

/*等待转换完成 */

while((ADCTRL2&0x1000)==0x1000);

asm(“ NOP ”);

RESULT_0=RESULT0>>6;

}

void Lv(){

unsigned int MaxAD0=0;

unsigned int MinAD0=AD0[0];

unsigned int tempAD0=0;

for(j=0;j<18;j++)

{

if(AD0[j]>MaxAD0)

MaxAD0=AD0[j];

else if(AD0[j]

MinAD0=AD0[j];

}

for(j=0;j<18;j++)

{

tempAD0=tempAD0+AD0[j];

}

AD_0=(tempAD0-MaxAD0-MinAD0)/16;

AD_E=AD_0*100/1023+10;}

void interrupt

c_int2()

/*定时器1中断服务程序*/ { T1CNT=0;numled++;AD=(int)AD_E;

if(PIVR!=0x27){

asm(“ CLRC INTM ”);return;

}

t 0++;if((AD_FLAG==0)&((t0%1000)==0))

//定时AD采样

}

void KickDog(){

}

#include “global.c” WDKEY=0x5555;WDKEY=0xAAAA;

/*踢除看门狗 */ {

AD_FLAG=1;} EVAIFRA=0x80;asm(“ CLRC INTM ”);

#include

“hd44780.h” PADATDIR = PADATDIR | 0xFF08 PADATDIR = PADATDIR & 0xFFF7 PADATDIR = PADATDIR | 0xFF10 PADATDIR = PADATDIR & 0xFFEF

PADATDIR = PADATDIR | 0xFF20

PADATDIR = PADATDIR & 0xFFDF #define

SetRS #define

ClrRS #define

SetRW #define

ClrRW #define

SetE #define

ClrE

void LCDPIN(void){

} void LCDPOUT(void){

}

PEDATDIR = PEDATDIR | 0x0080;PBDATDIR = PBDATDIR & 0x00FF;PEDATDIR = PEDATDIR & 0xFF7F;PBDATDIR = PBDATDIR | 0xFF00;void delay(Uint16 number){

}

//============================================ void Busy(void){

Uint16 Temp = 0x0080;LCDPIN();delay(200);ClrRS;Uint16 j;for(j = 0;j < number;j++);

} SetRW;while(Temp){

} SetE;delay(50);Temp = PBDATDIR;Temp = Temp & 0x0080;ClrE;delay(50);//========================================== void WriteCom(Uint16 com){

}

void WriteMenu1(Uint16 num,Uint16 *pBuffer)Busy();delay(100);LCDPOUT();delay(200);ClrRS;ClrRW;delay(50);com = 0xFF00 | com;PBDATDIR = com;SetE;delay(50);ClrE;

{

} //================== void LcdInit(void){

WriteCom(0x30);WriteCom(0x30);WriteCom(0x30);delay(1000);WriteCom(0x01);delay(1000);WriteCom(0x02);delay(1000);WriteCom(0x06);Uint16 i,t;WriteCom(0x80);SetRS;ClrRW;delay(50);for(i=num;i!=0;i--){

} t = *pBuffer;t = 0xFF00 | t;PBDATDIR = t;SetE;delay(50);ClrE;

pBuffer++;29

} delay(1000);WriteCom(0x0c);delay(1000);WriteCom(0x38);

//==================== // No more

第二篇:【matlab编程代做】步进电机控制器设计

步进电机控制器设计报告

1.绪言

在本次EDA课程设计中,我们组选择了做一个步进电机驱动程序的课题。对于步进电机我们以前并未接触过,它的工作原理是什么,它是如何工作的,我们应该如何控制它的转停,这都是我们迫切需要了解的。

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

步进电机及驱动电源是互相联系的整体。步进电机驱动电源框图如图1所示。变频信号源产生频率可调的脉冲信号,调节步进电机的速度。脉冲分配器则根据要求把脉冲信号按一定的逻辑关系加到脉冲放大器上,使步进电机按确定的运行方式工作。

感应子式步进电机以相数可分为:二相电机、三相电机、四相电机、五相电机等。以机座号(电机外径)可分为:42BYG(BYG 为感应子式步进电机代号)、57BYG、86BYG、110BYG、(国际标准),而像70BYG、90BYG、130BYG 等均为国内标准。1.1 驱动控制系统组成

使用、控制步进电机必须由环形脉冲,功率放大等组成的控制系统。1.1.1 脉冲信号的产生

脉冲信号一般由单片机或CPU 产生,一般脉冲信号的占空比为0.3-0.4 左右,电机转速越高,占空比则越大。

1.1.2 信号分配

感应子式步进电机以二、四相电机为主,二相电机工作方式有二相四拍和二相八拍二种,具体分配如下:二相四拍为,步距角为1.8 度;二相八拍为,步距角为0.9 度。四相电机工作方式也有二种,四相四拍为AB-BC-CD-DA-AB,步距角为1.8 度;四相八拍为AB-B-BC-C-CD-D-AB,(步距角为0.9 度)。

2.课题要求

2.1 步进电机控制器设计

要求:(1)start为”1”时,步进电机转动。

start为”0”时,步进电机停转。

(2)预设step_in为常数,当clk为上升沿,load和start为”1’加载时,电机开始转动,转动step_in次后,停止转动。当下次符合此要求时将再次转动。

(3)通过load,,step_in同步或异步载入steps值。

示意图如下:

图2 如图2所示,为步进电机控制器的输入输出示意图。其中:

load为加载信号

start为步进电机启动信号 en为使能信号

reset为置位清零信号 clk为时钟信号

step_in[15..0]表示输入的十六位二进制数,其数值范围用十进制数表示为0-65535。Coil_out[3..0]表示输出,共有A,B,A′,B′四种状态。

A,B,A′,B′四种转动状态可用图3表示,电机按下图A-B-A′-B′-A循环转动,每转过一次变换90度。当Coil_out[3..0]=“1000”,指针指向A;当Coil_out[3..0]=“0100”,指针指向B;当Coil_out[3..0]=“0010”,指针指向A′;当Coil_out[3..0]=“0001”,指针指向B′;当Coil_out[3..0]=“0000”,电机不工作。

图3

2.2 通过网络上收集资料,图书馆查阅书本,我们逐步了解了步进电机,了解它的基本工作原理后我们我们逐渐形成了一些驱动程序的基本构思,我们决定利用状态机的工作方式去编写步进电机的驱动。

3.方案设计与论证

3.1 状态机

关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态,状态机停止。

包含一组状态集(states)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transition function)的计算模型。当输入符号串,模型随即进入起始状态。它要改变到新的状态,依赖于转换函数。在有限状态机中,会有有许多变量,例如,状态 机有很多与动作(actions)转换(Mealy机)或状态(摩尔机)关联的动作,多重起始状态,基于没有输入符号的转换,或者指定符号和状态(非定有 限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态等等。

传统应用程序的控制流程基本是顺序的:遵循事先设定的逻辑,从头到尾地执行。很少有事件能改变标准执行流程;而且这些事件主要涉及异常情况。“命令行实用程序”是这种传统应用程序的典型例子。

另一类应用程序由外部发生的事件来驱动——换言之,事件在应用程序之外生成,无法由应用程序或程序员来控制。具体需要执行的代码取决于接收到的事件,或者它相对于其他事件的抵达时间。所以,控制流程既不能是顺序的,也不能是事先设定好的,因为它要依赖于外部事件。事件驱动的GUI应用程序是这种应用程序的典型例子,它们由命令和选择(也就是用户造成的事件)来驱动。3.2 设计论证

利用状态机的工作原理来设计步进电机的控制程序。本课题要求需要输出五种状态,其中有四种转动状态,电机即按照此四种状态旋转,还有一种状态是用于保护电机,避免电机因通电过长而烧坏。3.3

最初设计:按照由易及难的原则,即将steps值固定,使电机转动步数恒定,每次触发旋转则按照固定steps值转,转动steps值后停转。

二次修改:在设计好最初的目标程序后,我们有对程序进行改进,即增加了steps预设功能,在进行波形仿真的时候,可修改输入信号step_in的值(16位二进制数),从而改变步进电机的转动步数。

更高要求:(1)在电机停转之后,应使输出为零,即保持电机的电路电流为零,从而达到保护电机不被烧毁的目的。

(2)在电机停转之后,若再次启动旋转,则从上次停止的位置继续旋转,这是符合实际情况的仿真。

(3)在电机停转之后,利用PWM技术对电路进行控制。

3.4 鉴于以上要求,我们组经过一周左右时间利用VHDL语言设计出了符合课题要求的步进电机控制器程序(见附录)。

如下图4所示,为步进电机控制仿真波形图:

图4 图4中显示的是step_in值分别为10,8,12三种情况(16进制表示)时,Coil_out的输出情况,结果表明波形仿真与设计要求相符。

4.总结与体会

在编写程序的过程中我们出现了很多这样那样的困难,但我们并没有气馁,而是认真的探讨研究,终于将其一一解决。

在编程的开始我们就遇到了麻烦,输入端口step_in是输入了一个16位的二进制数,为了下面计数简单一点需要将其转换为十进制数。开始我们打算用数据类型转换函数TO_INTEGER将STD_LOGIC_VECTOR转换成INTEGER,这需要调用DATAIO库,可在编译的时候提示找不到DATAIO库,我们只有放弃这一思路,另谋出入。在一次翻阅图书馆资料的时候我无意中发现了一个新思路,就是在实体的说明语句中直接将step_in定义为step_in:IN INTEGER RANGE 65535 TO 0,这样电脑可以将输入的二进制自动转换为十进制的。

步进值输入了,那就要开始计数,本来我们想用加法从0开始计数,但在编程实现这一想法的时候我们发现这样做需要考虑的因素太多了,实现起来也比较困难。所以有人提议我们试着用减法计数,我们照着做了,结果发现这样编确实很简单,而且程序也简洁明了。

在老师检查我们的程序的时候,老师发现了一个严重的漏洞,就是在转动steps停转后电机仍保持着当前状态,这样长时间通电会导致电机烧坏。我们思考了一会决定给状态机增加一个状态,就是停转的时候不给电机通电,在停转的时候给电机这样一个状态可以起到保护的作用。在第二次给检查的时候,老师又发现了要改进的地方,那就是在转了一个步进值之后又给电机一个加载信号,使电机进行二次工作,此时应紧接着上一次的状态继续工作,而我们的却从“1000”状态重新开始的。经过反复思考,我们决定增加一个变量before_state,使之保留当前状态,即当current_state处于s0状态时,next_state<=s1,before_state〈=s0。这样我们就解决了这一问题。

在这次编程中还有一个最令人头痛的问题,我们这个课题有很多的输入,要使电机转动有很多的条件,这就用到很多的if语句,可是在嵌套使用的过程中总是有问题,电脑显示太复杂,经过无数次的调整,最后也被我们克服了。

在这次课程设计中,我们学到了关于EDA的很多其他知识点,对EDA有了更深的认识,扩展了知识面。同时我们也有很多的体会,课程设计是四人一组的,这就需要我们有着良好的团队合作意识,正是我们四个人的通力合作才顺利完成了本次课程设计,每个人在这次课程设计中都扮演着重要的角色,每段程序都凝结着我们智慧的结晶,正所谓“三个臭皮匠顶上一个诸葛亮”。我们遇到困难时,并没有退却,而是勇敢的面对,正是这种不怕困难的精神克服了一个又一个难点。老师在选题时曾说过,步进电机是比较有难度的,但这并未成为我们的阻力,反而成了我们不断超越的动力!总而言之,本次课程设计让我们受益匪浅!

5.参考文献

5.1 VHDL电路设计技术

王道宪主编。5.2 电子技术基础实验

陈大钦等著。

5.3 EDA技术及应用(第二版)

谭会生、张昌凡编著。

附录:VHDL源程序代码

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY stepmotor IS PORT(reset,clk,load,en,start:IN STD_LOGIC;

step_in:IN INTEGER RANGE 65535 TO 0;

coil_out:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END stepmotor;ARCHITECTURE ART OF stepmotor IS

TYPE FWM1 IS(s0,s1,s2,s3,s4);SIGNAL current_state,next_state,before_state:FWM1;BEGIN PROCESS(load,clk,en,start)IS VARIABLE count:INTEGER RANGE 65535 TO 0;BEGIN IF(load='1')THEN count:=step_in+1;ELSIF(reset='1')THEN current_state<=s4;ELSIF(CLK'EVENT AND CLK='1')THEN

IF(count>0 AND start='1')THEN

count:=count-1;

IF(en='1')THEN

current_state<=next_state;

END IF;

IF(count=0)THEN

current_state<=s4;

END IF;

END IF;END IF;END PROCESS;PROCESS(current_state)IS BEGIN CASE current_state IS WHEN s0=>coil_out<=“1000”;next_state<=s1;before_state<=s0;WHEN s1=> coil_out<=“0100”;next_state<=s2;before_state<=s1;WHEN s2=>coil_out<=“0010”;next_state<=s3;before_state<=s2;WHEN s3=> coil_out<=“0001”;next_state<=s0;before_state<=s3;WHEN s4=> coil_out<=“0000”;next_state<=before_state;END CASE;END PROCESS;END ART;

第三篇:步进电机测试

关于步进电机的好坏测试: 一般先不接驱动,手动转动电机转轴,感觉一下是否转动顺畅。正常不说,手动转动电机轴转一圈,阻力应该是一样的。

然后再接驱动测试,控制信号是共阳方式的,PUL+ 接信号电源,PUL-接控制信号。如果是共阴方式的,则PUL+接控制信号,PUL-接信号地。如果驱动器的控制信号输入端默认是5V电平的,可以直接把PUL+接5V电源,PUL-则不断地地进行碰触测试,相当于手动方式产生脉冲;只要电机与驱动的接线是正确的,碰触时电机是会走一步的要加电阻 要不烧了 驱动器

追问

不会啊,我直接上5V电测试是好的啊,电机可以转的!

广州德润自动化维修有限公司拥有一支高素质,高效率的员工队伍,在多年的工作中,一直以高科技为主导,以“优质高效,平等互利,诚信服务,客户第一”为宗旨,与国际著名自动化公司密切合作,致力于优秀控制产品的推广销售和控制系统的开发设计、安装调试和维修保养,与一大批企业建立了良好的合作关系,公司销售的产品和设计并安装调试的自动化控制系统在多个领域发挥着良好的作用,为客户取得了良好的经济效益。凭借雄厚的技术实力和良好的信誉,以求实、创新、严谨、认真的工作作风,努力为客户提供优质的产品、先进的技术与服务。比技术、比质量、比服务,这是广州自动化维修有限公司在市场竞争中遵循的生存理念。只有不断进取、不断提高、不断反思的企业,才会是适应市场竞争并立于不败的企业。

主营业务:工业电路板维修、工业电脑、工控机、触摸屏维修、纺织设备维修、伺服驱动器维修、变频器及PLC维修、电梯设备维修、大中型高低压电机维修、纺织设备维修、印前系统及印刷设备维修、自动化设备维修。

第四篇:步进电机实验报告

步进电机调速实验报告

班级:

xx

姓名:

xx

学号:

xxx

指导老师: :

xx

步进电机调速实验报告

一、实验目得及要求: 1、熟悉步进电机得工作原理 2、熟悉 51 系列单片机得工作原理及调试方法 3、设计基于 51 系列单片机控制得步进电机调速原理图(要求实现电机得速度反馈测量,测量方式:数字测量)4、实现 51 系列单片机对步进电机得速度控制(步进电机由实验中心提供,具体型号 42BYG)由按钮控制步进电机得启动与停止;实现加速、匀速、与减速控制.速度设定由键盘设定,步进电机得反馈速度由 LED 数码管显示。

二、实验原理:

1、一般电动机都就是连续旋转,而步进电动却就是一步一步转动得,故叫步进电动机。步进电机就是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电动机得转子为多极分布,定子上嵌有多相星形连接得控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机得转子就前进一步。由于输入得就是脉冲信号,输出得角位移就是断续得,所以又称为脉冲电动机.随着数字控制系统得发展,步进电动机得应用将逐渐扩大。

进电动机需配置一个专用得电源供电,电源得作用就是让电动机得控制绕组按照特定得顺序通电,即受输入得电脉冲控制而动作,这个专用电源称为驱动电源.步进电动机及其驱动电源就是一个互相联系得整体,步进电动机得运行性能就是由电动机与驱动电源两者配合所形成得综合效果。

2、对驱动电源得基本要求

(1)驱动电源得相数、通电方式与电压、电流都要满足步进电动机得需要;(2)要满足步进电动机得起动频率与运行频率得要求;(3)能最大限度地抑制步进电动机得振荡;(4)工作可靠,抗干扰能力强;(5)成本低、效率高、安装与维护方便。

3、驱动电源得组成 步进电动机得驱动电源基本上由脉冲发生器、脉冲分配器与脉冲放大器(也称功率放大器)三部分组成, 三、实验源程序:

/***************

writer:shopping、w

******************/ #include 〈reg52、h〉 #define uint unsigned int #define uchar unsigned char uchar code FFW[]= {

0 90x0,80x0,c0x0,40x0,60x0,20x0,30x0,10xﻩ};uchar code REV[]= {

0 10x0,30x0,20x0,60x0,40x0,c0x0,80x0,90xﻩ};sbit K1 = P3^0; sbit K2 = P3^1;sbit K3 = P3^2;void DelayMS(uint ms)

{

uchar i;

while(ms-—)

;)++i;021〈i;0=i(rofﻩ } } void SETP_MOTOR_FFW(uchar n){

uchar i,j;

for(i=0;i〈5*n;i++)

{ﻩ

for(j=0;j<8;j++)

{ﻩ ﻩ

if(K3 == 0)break;

ﻩﻩ P1 = FFW[j];

;)52(SMyaleDﻩﻩ }ﻩﻩ } } void SETP_MOTOR_REV(uchar n){

uchar i,j;

for(i=0;i<5*n;i++)

{)++j;8

;kaerbﻩ)0 == 3K(fiﻩ

P1 = REV[j];

ﻩ DelayMS(25);

ﻩ }

} } void main()

{uchar N = 3;)1(elihwﻩ {if(K1 == 0)

{;efx0 = 0Pﻩ ﻩﻩ SETP_MOTOR_FFW(N);

ﻩ if(K3 == 0)break;

}ﻩﻩ ﻩ else if(K2 == 0)

ﻩ {

P0 = 0xfd;

;)N(VER_ROTOM_PTESﻩ

;kaerb)0 == 3K(fiﻩﻩ }ﻩﻩ ﻩ else

{ﻩﻩ ﻩ

;bfx0 = 0Pﻩﻩ;30x0 = 1Pﻩ

}ﻩ}

四、实验心得:

本次实验让我了解了步进电动机得工作原理,掌握了怎样用单片机编程来控制步进电机得正反转及调速。通过这次实验,我更加深刻得认识到将单片机编程知识应用到实践中得重要性。同时,在理论知识方面,我还有很多欠缺。在以后得学习中要注意实践性,不能只满足于理论知识。

第五篇:步进电机简介

步进电机简介

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB)

永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;

反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;

混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为

1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。

一.工作原理

(一)反应式步进电机

1、结构:

电机转子均匀分布着很多小齿(1,2,3,4,5),电机定子有三个励磁绕阻(A,B,C),A与齿1相对齐,B与齿2错开1/3て,C与齿3错开2/3て,A与齿5相对齐...。将定子和转子展开如下

2、旋转:

如A相通电,B、C相不通电时,由于磁场作用,齿1与A对齐;如B相通电,A、C相不通电时,齿2应与B对齐,此时转子向右移过1/3て,此时齿3与C偏移为1/3て,齿4与A偏移2/3て;如C相通电,A、B相不通电,齿3应与C对齐,此时转子又向右移过1/3て,此时齿4与A偏移为1/3て对齐;如A相通电,B、C相不通电,齿4与A对齐,转子又向右移过1/3て。这样经过A、B、C、A分别通电,齿4移到A相,电机转子向右转过一个齿距,如果不断地按A、B、C、A...通电,电机就向右旋转;如按A、C、B、A……通电,电机就向左转。由此可见:电机的位置和速度由导电脉冲数和频率成一一对应关系,而方向由导电顺序决定。

不过,出于对力矩、平稳、噪音及减少角度等方面考虑,往往采用A-AB-B-BC-C-CA-A这种导电状态,这样将原来每步1/3て改变为1/6て。甚至于通过二相电流不同的组合,使其1/3て变为1/12て,1/24て,这就是电机细分驱动的基本理论依据。但经过理论分析及大量的实验证明:细分数如果超过10,电机带负载后,就会产生跳步和失步现象。

不难推出:电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移

1/m,2/m……(m-1)/m,1。并且导电按一定的相序电机就能正反转被控制——这是步进电机旋转的物理条件。只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。

3、力矩:

电机一旦通电,在定转子间将产生磁场(磁通量Ф)。当转子与定子错开一定角度时,产生的吸引力 F=K*dФ/dθ成正比。其中磁通量Ф=Br*S(Br=N*I/R为磁密,S为导磁面积,N*I为励磁绕阻安匝数(电流乘匝数)R为磁阻),θ为错齿量,K为系数。可见,F与L*D*Br成正比(L为铁芯有效长度,D为转子直径)。

力矩=F*D/2,因此,力矩与电机有效体积*安匝数*磁密成正比(设为线性状态),即电机有效体积越大,励磁安匝数越大,定转子间气隙越小,电机力矩越大,反之亦然。

(二)感应子式步进电机(永磁式)

1、特点:

感应子式步进电机与传统的反应式步进电机相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。

感应子式步进电机某种程度上可以看作是低速同步电机。一个四相电机可以作四相运行,也可以作二相运行(必须采用双极电压驱动),而反应式电机则不能如此。

例如:四相,八相运行(A-AB-B-BC-C-CD-D-DA-A)完全可以采用二相八拍运行方式.不难发现其条件为C=,D=。

一个二相电机的内部绕组与四相电机完全一致,小功率电机一般直接接为二相,而功率大一点的电机,为了方便使用,灵活改变电机的动态特点,往往将其外部接线为八根引线(四相),这样使用时,既可以作四相电机使用,可以作二相电机绕组串联或并联使用。

2、分类

感应子式步进电机以相数可分为:二相电机、三相电机、四相电机、五相电机等。以机座号(电机外径)可分为:42BYG(BYG为感应子式步进电机代号)、57BYG、86BYG、110BYG、(国际标准),而像70BYG、90BYG、130BYG等均为国内标准。

3、步进电机的静态指标术语

相数:产生不同对极N、S磁场的激磁线圈对数,常用m表示。

拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A。

步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。θ=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。每转步数:电机每转一转所转过的步数。

定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)。

保持扭矩:电机绕组通电不转动时的最大输出扭矩值。

工作扭矩:电机绕组通电转动时的最大输出扭矩值。注意:保持扭距比工作扭矩大,选电机是要以工作扭矩为选择依据。

静转矩:电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关。

虽然静转矩与电磁激磁安匝数成正比,与定齿转子间的气隙有关,但过份采用减小气隙,增加激磁安匝来提高静力矩是不可取的,这样会造成电机的发热及机械噪音。

4、步进电机动态指标及术语:

1、步距角精度:步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示:误差/步距角*100%。不同运行拍数其值不同,四拍运行时应在5%之内,八拍运行时应在15%以内。

2、失步:电机运转时运转的步数,不等于理论上的步数。称之为失步。

3、失调角:转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。

4、最大空载起动频率:电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。

5、最大空载的运行频率:电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。这个速度远大于启动频率。

6、运行矩频特性:电机在某种测试条件下测得运行中输出力矩与频率关系的曲线称为运行矩频特性,这是电机诸多动态曲线中最重要的,也是电机选择的根本依据。如下左图所示:其它特性还有惯频特性、起动频率特性等。

电机一旦选定,电机的静力矩确定,而动态力矩却不然,电机的动态力矩取决于电机运行时的平均电流(而非静态电流),平均电流越大,电机输出力矩越大,即电机的频率特性越硬。如上右图所示。其中,曲线3电流最大、或电压最高;曲线1电流最小、或电压最低,曲线与负载的交点为负载的最大速度点。要使平均电流大,尽可能提高驱动电压,使采用小电感大电流的电机。

7、电机的共振点:步进电机均有固定的共振区域,二、四相感应子式步进电机的共振区一般在180-250pps之间(步距角1.8度)或在400pps左右(步距角为0.9度),电机驱动电压越高,电机电流越大,负载越轻,电机体积越小,则共振区向上偏移,反之亦然。为使电机输出电矩大,不失步和整个系统的噪音降低,一般工作点均应远离共振区。

现在,步进电机的发展非常迅速,如德国百格拉公司的交流伺服电机运行性能的步进电机系统,其三相混合式步进电机采用交流伺服原理工作,运用特殊精密机械加工工艺,使步进电机定子和转子之间间隙仅为50um,转子和定子的直径比提高到59%,大大提高了电机工作扭矩,特别是高速时的工作扭矩。由于定子和转子上磁槽数远多于五相和两相混合式步进电机,使三相混合式步进电机可以按五相和两相混合式步进电机的步数进行工作。电机的扭矩仅与转速有关,而与电机每转的步数无关,例如:2Nm电机在每转500步和10000步,800转/分时的扭矩都是1.75Nm。在低速时运行极其平稳,几乎无共振区,高速时扭矩大,运行特性类同交流伺服电机。

二.步进电机选用

(一)力矩与功率计算

步进电机一般在较大范围内调速使用、其功率是变化的,一般只用力矩来衡量,力矩与功率换算如下:

P= Ω·M

Ω=2π·n/60

P=2πnM/60

其中P为功率单位为瓦,Ω为每秒角速度,单位为弧度,n为每分钟转速,M为力矩单位为牛顿·米。

P=2πfM/400(半步工作)

其中f为每秒脉冲数(简称PPS)

(二)步进电机的选择

步进电机有步距角(涉及到相数)、静转矩、及电流三大要素组成。一旦三大要素确定,步进电机的型号便确定下来了。

1、步距角的选择

电机的步距角取决于负载精度的要求,将负载的最小分辨率(当量)换算到电机轴上,每个当量电机应走多少角度(包括减速)。电机的步距角应等于或小于此角度。目前市场上步进电机的步距角一般有0.36度/0.72度(五相电机)、0.9度/1.8度(二、四相电机)、1.5度/3度(三相电机)等。

2、静力矩的选择

步进电机的动态力矩一下子很难确定,我们往往先确定电机的静力矩。静力矩选择的依据是电机工作的负载,而负载可分为惯性负载和摩擦负载二种。单一的惯性负载和单一的摩擦负载是不存在的。直接起动时(一般由低速)时二种负载均要考虑,加速起动时主要考虑惯性负载,恒速运行进只要考虑摩擦负载。一般情况下,静力矩应为摩擦负载的2-3倍内好,静力矩一旦选定,电机的机座及长度便能确定下来(几何尺寸)。

3、电流的选择

静力矩一样的电机,由于电流参数不同,其运行特性差别很大,可依据矩频特性曲线图,判断电机的电流(参考驱动电源、及驱动电压)

综上所述选择电机一般应遵循以下步骤:

三.应用中的注意点

1、步进电机应用于低速场合---每分钟转速不超过1000转,(0.9度时6666PPS),最好在1000-3000PPS(0.9度)间使用,可通过减速装置使其在此间工作,此时电机工作效率高,噪音低。

2、步进电机最好不使用整步状态,整步状态时振动大。

3、由于历史原因,只有标称为12V电压的电机使用12V外,其他电机的电压值不是驱动电压伏值,可根据驱动器选择驱动电压(建议:57BYG采用直流24V-36V,86BYG采用直流50V,110BYG采用高于直流80V),当然12伏的电压除12V恒压驱动外也可以采用其他驱动电源,不过要考虑温升。

4、转动惯量大的负载应选择大机座号电机。

5、电机在较高速或大惯量负载时,一般不在工作速度起动,而采用逐渐升频提速,一电机不失步,二可以减少噪音同时可以提高停止的定位精度。

6、高精度时,应通过机械减速、提高电机速度,或采用高细分数的驱动器来解决,也可以采用5相电机,不过其整个系统的价格较贵,生产厂家少,其被淘汰的说法是外行话。

7、电机不应在振动区内工作,如若必须可通过改变电压、电流或加一些阻尼的解决。

8、电机在600PPS(0.9度)以下工作,应采用小电流、大电感、低电压来驱动。

9、应遵循先选电机后选驱动的原则。最好采用同一生产厂家的控制器、驱动器和电机。

10、应注重可靠性而轻性能、重品质而轻价格。

机电产品网 供稿

基于DSP的步进电机控制器的设计
TOP