基于单片机的步进电机控制系统设计与仿真
基于单片机的步进电机控制器设计

基于单片机的步进电机控制器设计步进电机是一种可实现精确控制和定位的电动机,广泛应用于机械和自动化领域。
为了更好地控制步进电机,可以设计一个基于单片机的步进电机控制器。
本文将从步进电机的基本原理、常见控制方式、单片机的选择、电路设计和程序编写等方面进行详细介绍,共计超过1200字。
第一部分:步进电机的基本原理步进电机主要由定子和转子组成,通过电磁原理可以实现精确控制和定位。
步进电机根据工作方式的不同分为全步进电机和半步进电机,全步进电机每次步进一个固定的角度,而半步进电机每次步进一个更小的角度。
第二部分:常见的步进电机控制方式步进电机的控制方式有多种,其中最常见的控制方式是脉冲方向控制和脉冲加减速控制。
脉冲方向控制方式通过给步进电机控制信号的脉冲数和方向来实现电机转动,脉冲加减速控制方式则通过改变脉冲的频率和加减速度来控制电机的转速和位置。
第三部分:单片机的选择在设计步进电机控制器时,需要选择适合的单片机来实现控制逻辑和信号的生成。
常见的单片机有51系列、AVR系列、ARM Cortex-M系列等。
选择单片机时需要考虑其运算速度、存储容量、IO口数量等因素,以满足步进电机控制的要求。
第四部分:电路设计步进电机控制器的电路设计包括电机驱动电路和控制电路。
其中电机驱动电路用于提供适当的电流和电压给步进电机,以实现其运转。
可以选择使用电流驱动器芯片或者使用MOSFET等器件设计电路。
控制电路主要包括单片机和其他外围电路,用于生成控制信号和接收输入信号。
第五部分:程序编写步进电机控制器的程序需要实现控制逻辑和信号的生成。
程序可以使用C语言或者汇编语言进行编写,通过单片机的GPIO口和定时器等模块来生成适当的脉冲信号和控制信号,驱动步进电机实现转动和定位。
综上所述,基于单片机的步进电机控制器设计涉及到步进电机的基本原理、常见的控制方式、单片机的选择、电路设计和程序编写等多个方面。
通过合理的设计和实现,可以实现对步进电机的精确控制和定位,为机械和自动化领域的应用提供便利。
基于51单片机的步进电机正反转可控设计与仿真

2020.19设计研发基于51单片机的步进电机正反转可控设计与仿真李建中(江苏省海门中等专业学校,江苏南通,226100)摘要:步进电机是伺服控制中的关键部件,对步进电机进行精确高效地控制,是实现精密运动、制造等的重要手段。
釆用51单片机作为电机的控制核心-ULN2003A作为电机的驱动芯片,选用额定电压为5V的小型步进电机,设置正转、反转、停止、加速、减速5个按钮,其中正转、反转和停止均有对应的LED指示灯。
通过Keil进行控制程序的编写,在Proteus 中进行仿真电路的连接,结果表明:电路设计正确;步进电机能够根据按钮指令进行运转,达到了设计预期;系统可应用于某些需要高精度控制的场合。
关键词:步进电机;51单片机;ULN2003A;Keil;ProteusDesign and Simulation of Positive and Negative Rotation ofStepping Motor Based on51Single Chip MicrocomputerLi Jianzhong(Jiangsu Province Haimen Secondary Vocational School,Narrtong Jiangsu,226100)Abst r act;St epper motor is the key compone n t in servo cont r ol.It is an import a n t means to realize precise motion and manufacture to control stepping motor accurately and efficiently.51single chip microcomputer is used as the cont r ol core of the mot o r,uln2003a is used as the driving chip of the motor,the small st e pping motor with:r ated volt a ge of5V is selec t ed,and five buttons of forward rotation,reverse rotation,stop,acceleration and deceleration are set,and the corresponding LED indicator lights are used for forward rotation,reverse rotation and stop.The resuIts show that:the circuit design is correct;the stepper motor can operate according to the button command,which meets the design expectation;the system can be applied to some occasions requiring high-precision control.Keywords:stepper motor;51single chip microcomputer;ULN2003A;Keil;Proteus0引言步进电机在工业制造、数控机床、各种伺服系统中均有应用。
毕业设计(论文)-基于AT89C51单片机的步进电机控制系统

内蒙古科技大学本科生毕业设计说明书(毕业论文)题目:基于AT89C51单片机的步进电机控制系统设计学生姓名:学号:专业:自动化班级:自动化06-3班指导教师:基于AT89C51单片机的步进电机控制系统摘要步进电机是数字控制系统中的一种执行元件,它能按照控制脉冲的要求,迅速起动,制动,正反转和调速。
具有步距角精度高,停止时能自锁等特点,因此步进电机在自动控制系统中,特别是在开环的控制系统中得到了日益广泛的应用。
本文以单片机和环形脉冲分配器为核心设计的步进电机控制系统,通过软硬件的设计调试,实现步进电机能根据设定的参数进行自动加减速控制,使控制系统以最短的时间到达控制终点,而又不发生失步的现象;同时它能准确地控制步进电机的正反转,启动和停止。
硬件是以AT89C51单片机为核心的控制电路,主要包括:环形脉冲分配器、键盘显示电路、步进电机的驱动电路等。
软件部分采用C语言编程,主要包括键盘显示程序、步进电机的调速程序、停止判断程序等。
关键词:步进电机控制系统;调速;单片机Based on AT89C51 Single-chip ComputerStepping Motor Control SystemAbstractStepping motor is a kind of digital control system components. It can achieve quick start-up, positive inversion, stopping and speed control, according to the control pulse. It has high precision step angle, and can be self-locking when it keeps still. As these characteristics, stepping motor in automatic control system, especially in the open loop control system has been widely applied.This article mainly focuses on taking Single-chip Computer and cycle pulse distributor as the core, and designing the stepping motor control system. Through the design of the software and hardware debugging, it realizes controlling the step motor’s acceleration and deceleration automatically, according to parameter setting. Making the system arrive the end point with the shortest time, but not occur outing of step. Besides it can accurately achieve start-up, positive inversion and shutdown. Hardware takes AT89C51 as the core of control circuit, mainly including: cycle pulse distributor, keyboard and display circuit, stepping motor driving circuit, etc. Software part adopts the C language programming, mainly including keyboard and display program, stepping motor speed control program, stop judging program, etc.Key words: Stepping motor control system; speed control; Single-chip Computer目录摘要 (I)Abstract (II)第一章引言 (1)1.1 课题提出的背景和研究意义 (1)1.2 课题的主要研究内容 (2)1.3 本章小结 (2)第二章步进电机控制系统设计 (3)2.1 步进电机的原理 (3)2.1.1 三相单三拍通电方式 (3)2.1.2 三相双三拍通电方式 (5)2.1.3 三相六拍通电方式 (6)2.2 环形脉冲分配器 (8)2.3 续流电路 (12)2.3.1 二极管续流 (13)2.3.2 二极管—电阻续流 (14)2.4 步进电机驱动电路 (15)2.5 步进电机的变速控制 (17)2.5.1 变速控制的方法 (19)2.6 步进电机在自动生产线中的应用 (20)2.7 本章小结 (22)第三章控制系统硬件设计 (23)3.1 硬件系统设计原则 (23)3.2 控制系统组成 (23)3.3 主要元件的选择 (24)3.3.1 单片机的选择 (24)3.3.2 EPROM的选择 (25)3.3.3 可逆计数器的选择 (27)3.4 控制系统接口电路的设计 (27)3.4.1 环形脉冲分配器设计 (27)3.4.2 显示电路设计 (29)3.4.3 外部复位电路设计 (30)3.5 控制系统整体电路设计 (31)3.6 本章小结 (31)第四章控制系统软件设计 (32)4.1 软件系统设计原则 (32)4.2 步进电机控制系统功能设计 (32)4.3 主程序设计 (33)4.3.1 主程序工作过程 (33)4.3.2 主程序工作流程图 (34)4.3.3 定时器T0中断程序流程图 (34)4.4 Proteus仿真 (37)4.5 显示程序设计 (39)4.6 键盘程序设计 (39)4.7 调速程序设计 (41)4.7.1 20BY步进电机参数 (41)4.7.2 步进电机转速与频率的关系 (41)4.8 本章小结 (42)第五章结束语 (43)参考文献 (44)附录 (46)附录A 系统程序(C) (46)附录B 20BY步进电机转速与定时器定时常数关系表 (59)附录C 控制系统电路图 (62)致谢 (63)第一章引言1.1 课题提出的背景和研究意义由于步进电机不需要位置传感器或速度传感器就可以实现定位,即使在开环状态下它的控制效果也是令人非常满意的,这有利于装置或设备的小型化和低成本,因此步进电机在计算机外围设备、数控机床和自动化生产线等领域中都得到了广泛的应用。
基于单片机的步进电机控制系统设计方案

D10-基于单片机旳步进电机控制系统一、理解什么是步进电机以及其工作原理步进电机是数字控制电机,步进电机旳运转是由电脉冲信号控制旳,其角位移量或线位移量与脉冲数成正比,每个一种脉冲,步进电机就转动一种角度(不距角)或前进、倒退一步。
步进电机旋转旳角度由输入旳电脉冲数确定,因此,也有人称步进电机为数字/角度转换器。
步进电机旳各相绕组按合适旳时序通电,就能使步进电机转动。
当某一相绕组通电时,对应旳磁极产生磁场,并与转子形成磁路,这时,假如定子和转子旳小齿没有对齐,在磁场旳作用下,由于磁通具有力图走磁阻最小途径旳特点,则转子将转动一定旳角度,使转子与定子旳齿互相对齐,由此可见,错齿是促使电机旋转旳原因。
二、步进电机旳特点(1)步进电机旳角位移与输入脉冲数严格成正比,因此当它转一转后,没有合计误差,具有良好旳跟随性。
(2)由步进电机与驱动电路构成旳开环数控系统,既非常以便、廉价,也非常可靠。
同步,它也可以有角度反馈环节构成高性能旳闭环数控系统。
(3)步进电机旳动态响应快,易于启停、正反转及变速。
(4)速度可在相称宽旳范围内平滑调整,低速下仍能保证获得很大旳转矩,因此一般可以不用减速器而直接驱动负载。
(5)步进电机只能通过脉冲电源供电才能运行,它不能直接用交流电源或直流电源。
(6)步进电机自身旳噪声和振动比较大,带惯性负载旳能力强。
三、步进电机旳控制步进电机旳控制重要包括换相次序旳控制、速度控制、速度控制、加减速控制等,控制系统就是运用单片机旳功能实现以上控制旳系统,即本次设计旳目旳。
四、示意图五、硬件设计计划本设计旳硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。
最小系统只要是为了使单片机正常工作。
控制电路只要由开关和按键构成,由操作者根据对应旳工作需要进行操作。
显示电路重要是为了显示电机旳工作状态和转速。
驱动电路重要是对单片机输出旳脉冲进行功率放大,从而驱动电机转动。
(1)控制电路根据步进电机旳工作原理可以懂得,步进电机转速旳控制重要是通过控制通入电机旳脉冲频率,从而控制电机旳转速。
基于51单片机的步进电机控制系统设计

基于51单片机的步进电机控制系统设计步进电机是一种特殊的直流电动机,具有定角度、定位置、高精度等特点,在许多领域得到广泛应用,如机械装置、仪器设备、医疗设备等。
本文将基于51单片机设计一个步进电机控制系统,主要包括硬件设计和软件设计两部分。
一、硬件设计步进电机控制系统的硬件设计主要包括51单片机、外部电源、步进电机驱动模块、以及其他辅助电路。
1.51单片机选择由于步进电机控制需要执行复杂的算法和时序控制,所以需要一个性能较高的单片机。
本设计选择51单片机作为主控芯片,因为51单片机具有丰富的外设接口、强大的计算能力和丰富的资源。
2.外部电源步进电机需要较高的电流供给,因此外部电源选择稳定的直流电源,能够提供足够的电流供电。
电源电压和电流的大小需要根据具体的步进电机来确定。
3.步进电机驱动模块步进电机驱动模块是连接步进电机和51单片机的关键部分,它负责将51单片机输出的脉冲信号转化为对步进电机的驱动信号,控制步进电机准确转动。
常用的步进电机驱动芯片有L297、ULN2003等。
4.其他辅助电路为了保证步进电机控制系统的稳定运行,还需要一些辅助电路,如限流电路、电源滤波电路、保护电路等。
这些电路的设计需要根据具体的应用来确定。
二、软件设计1.系统初始化系统初始化主要包括对51单片机进行外部中断、定时器、串口和IO 口等初始化设置。
根据实际需求还可以进行其他模块的初始化设置。
2.步进电机驱动程序步进电机的驱动程序主要通过脉冲信号来控制电机的转动。
脉冲信号的频率和脉冲宽度决定了电机的转速和运行方向。
脉冲信号可以通过定时器产生,也可以通过外部中断产生。
3.运动控制算法步进电机的运动控制可以采用开环控制或闭环控制。
开环控制简单,但无法保证运动的准确性和稳定性;闭环控制通过对电机转动的反馈信号进行处理来调整脉冲信号的生成,从而实现精确的运动控制。
4.其他功能设计根据具体的应用需求,可以加入其他功能设计,如速度控制、位置控制、加速度控制等。
基于51单片机的步进电机控制系统设计与实现

步进电机工作原理
步进电机是一种基于磁场的控制系统,工作原理是当电流通过定子绕组时,会 产生一个磁场,该磁场会吸引转子铁芯到相应的位置,从而产生一定的角位移。 步进电机的角位移量与输入的脉冲数量成正比,因此,通过控制输入的脉冲数 量和频率,可以实现精确的角位移和速度控制。同时,步进电机具有较高的分 辨率和灵敏度,可以满足各种高精度应用场景的需求。
二、系统设计
1、硬件设计
本系统主要包括51单片机、步进电机、驱动器、按键和LED显示等部分。其中, 51单片机负责接收按键输入并控制步进电机的运动;步进电机用于驱动负载运 动;驱动器负责将51单片机的输出信号放大,以驱动步进电机。LED显示用于 显示当前步进电机的状态。
2、软件设计
软件部分主要包括按键处理、步进电机控制和LED显示等模块。按键处理模块 负责接收用户输入,并根据输入控制步进电机的运动;步进电机控制模块根据 按键输入和当前步进电机的状态,计算出步进电机下一步的运动状态;LED显 示模块则负责实时更新LED显示。
三、系统实现
1、按键输入的实现
为了实现按键输入,我们需要在主程序中定义按键处理函数。当按键被按下时, 函数将读取按键的值,并将其存储在全局变量中。这样,主程序可以根据按键 的值来控制步进电机的转动。
2、显示输出的实现
为了实现显示输出,我们需要使用单片机的输出口来控制显示模块的输入。在 中断服务程序中,我们根据设定的值来更新显示模块的输出,以反映步进电机 的实时转动状态。
基于单片机的步进电机控制系统需要硬件部分主要包括单片机、步进电机、驱 动器、按键和显示模块等。其中,单片机作为系统的核心,负责处理按键输入、 控制步进电机转动以及显示输出等功能。步进电机选用四相八拍步进电机,驱 动器选择适合该电机的驱动器,按键用于输入设定值,显示模块用于显示当前 步进电机的转动状态。
基于单片机AT89C52的步进电机的控制器设计
基于单片机AT89C52的步进电机的控制器设计步进电机是一种非常常见的电机类型,由于其具有精准定位、适应高速运动以及控制简单等特点,被广泛应用于各种自动化设备中。
本文将从步进电机的工作原理、控制方式以及基于单片机AT89C52的步进电机控制器设计等方面展开阐述。
首先,我们来了解步进电机的工作原理。
步进电机是一种特殊的同步电动机,它具有内置的磁化轭,在没有外部励磁的情况下也能自动旋转。
步进电机的旋转是由控制电流方向和大小来实现的。
通常情况下,步进电机每转动一定角度,称为“步距角”,它可以是1.8度、0.9度、0.45度等,不同的步距角决定了电机的分辨率。
步进电机的控制方式主要有全步进和半步进两种。
全步进是指每次控制信号脉冲后,电机转动一个步距角。
而半步进则是在全步进基础上,在脉冲信号中引入一半步距角的微调。
控制信号脉冲可以是脉冲序列或者方波信号。
基于单片机AT89C52的步进电机控制器设计主要包括控制信号发生器的设计和步进电机驱动电路的设计。
控制信号发生器负责产生相应的控制信号脉冲,而步进电机驱动电路将这些脉冲信号转化为电流信号驱动步进电机。
控制信号发生器的设计可以采用定时器/计数器模块来实现。
AT89C52芯片具有可编程的定时器/计数器,可以用来产生控制信号的脉冲。
通过设置定时器的工作方式和计数值,可以实现不同频率、占空比的控制脉冲。
步进电机驱动电路的设计主要包括功率级驱动电路和电流控制电路。
功率级驱动电路负责将控制信号转化为足够大的电流驱动步进电机,通常采用功率放大器来实现。
电流控制电路则用来控制驱动电流的大小,使步进电机能够顺畅工作。
电流控制电路通常采用可调电阻、电流检测电阻和比较器等元件组成。
在步进电机控制器设计中,还需要考虑到步进电机的特性和应用需求。
例如,步进电机的电源电压、额定电流、阻抗、扭矩等参数需要与驱动电路匹配。
此外,还需要考虑到步进电机的机械结构、位置传感器、防重叠措施等因素。
基于单片机的步进电机控制系统设计
基于单片机的步进电机控制系统设计引言:步进电机是一种常用的电机类型,具有精准的位置控制、高效的能量转换等特点。
在许多自动化设备中广泛应用,如数控机床、3D打印机、机器人等。
本文将以基于单片机的步进电机控制系统设计为主题,介绍系统的硬件设计、软件设计以及实验验证。
一、硬件设计1.步进电机选型:根据实际应用需求,选择适当的步进电机。
包括步距角、转速范围、扭矩要求等等。
2.电源设计:步进电机需要驱动电压和电流,根据步进电机的额定电压和电流选用适当的电源。
3.驱动电路设计:步进电机通常需要驱动电路来控制电流和脉冲序列。
常见的驱动电路有全桥驱动器、半桥驱动器等。
4.信号发生器设计:步进电机通过脉冲信号来控制转动角度和速度,因此需要信号发生器来产生合适的脉冲序列。
常见的信号发生器有定时器、计数器等。
5.单片机接口设计:单片机作为步进电机控制系统的核心,需要与其他硬件进行通信。
因此需要设计合适的接口电路,将单片机的输出信号转换为驱动电路和信号发生器所需的电压和电流。
二、软件设计1.单片机程序框架设计:根据具体的单片机型号和开发环境,设计合适的程序框架。
包括初始化设置、主循环、中断处理等。
2.脉冲生成程序设计:根据步进电机的控制方式(如全步进、半步进、微步进等),设计脉冲生成程序。
通过适当的延时和输出信号控制,产生合适的脉冲序列。
3.运动控制程序设计:设计运动控制程序,实现步进电机的前进、后退、加速、减速等功能。
根据具体需求,可以设计不同的运动控制算法,如速度环控制、位置环控制等。
4.保护机制设计:为了保护步进电机和控制系统,设计合适的保护机制。
如过流保护、过压保护、过载保护等。
三、实验验证1.硬件连接:将步进电机、驱动电路和单片机按照设计进行连接。
2.软件调试:通过单片机编程,调试程序代码。
确保脉冲生成、运动控制等功能正常工作。
3.功能测试:对步进电机控制系统进行功能测试,包括正转、反转、加速、减速等功能。
通过观察步进电机的运动状态和测量相关参数来验证系统设计的正确性和性能。
基于51单片机的步进电机红外控制系统的设计
文章标题:基于51单片机的步进电机红外控制系统的设计引言在现代科技发展迅速的时代,控制系统已经被广泛应用于各个领域。
其中,基于51单片机的步进电机红外控制系统的设计,不仅在工业领域有着重要的作用,同时也在家电领域、智能家居等方面得到了广泛的应用。
本文将从步进电机控制系统的设计原理、红外控制的基本概念以及基于51单片机的系统设计方案等方面展开深入探讨。
一、步进电机控制系统的设计原理步进电机是一种将电脉冲信号转换为机械位移的执行元件,其控制系统设计原理是核心。
以步进电机为执行元件的控制系统通常包括电脉冲发生电路、电流驱动电路、位置控制逻辑电路以及接口电路等模块。
在系统设计中,需要考虑步进电机的类型、工作方式、转动角度以及控制精度等因素,以选择合适的控制方案和相关元器件。
针对步进电机的控制系统设计,首先需要从硬件电路和软件控制两个方面进行综合考虑。
硬件方面需要设计合适的脉冲发生电路和驱动电路,并根据具体场景考虑相关的接口电路,以实现步进电机的控制和驱动。
而软件控制方面,则需要编写相应的控制程序,使得系统能够根据具体的控制要求进行精准的控制和调节。
二、红外控制的基本概念红外控制是一种常见的无线遥控技术,通过使用红外线传输信号来实现对设备的控制。
通常包括红外发射器和红外接收器两个部分,发射器将控制信号转换成红外信号发送出去,接收器接收红外信号并将其转换成电信号进行处理。
在实际应用中,红外控制技术已经被广泛应用于各种家电遥控器、智能家居系统以及工业自动化领域。
红外控制的基本原理是在发射器和接收器之间通过红外线进行双向通信,通过调制解调的方式进行信号的传输和解析。
设计基于红外控制的步进电机系统需要考虑红外信号的发射和接收过程,以及相关的解析算法和信号处理。
信号的稳定性、抗干扰能力以及传输距离等也是需要考虑的重要因素。
三、基于51单片机的系统设计方案在步进电机红外控制系统的设计中,选择合适的控制芯片和处理器是至关重要的。
《2024年基于单片机的步进电机控制系统研究》范文
《基于单片机的步进电机控制系统研究》篇一一、引言随着科技的发展,步进电机因其高精度、低噪音、易于控制等优点,在各个领域得到了广泛的应用。
然而,传统的步进电机控制方式存在控制精度低、响应速度慢等问题。
因此,基于单片机的步进电机控制系统应运而生,其具有体积小、控制精度高、响应速度快等优点。
本文旨在研究基于单片机的步进电机控制系统的设计原理、实现方法以及应用前景。
二、步进电机控制系统的基本原理步进电机是一种将电信号转换为机械运动的设备,其运动过程是通过一系列的步进动作实现的。
步进电机的控制原理主要是通过改变电机的电流和电压,使电机按照设定的方向和速度进行旋转。
三、基于单片机的步进电机控制系统设计基于单片机的步进电机控制系统主要由单片机、步进电机驱动器、步进电机等部分组成。
其中,单片机是控制系统的核心,负责接收上位机的指令,并输出相应的控制信号给步进电机驱动器。
步进电机驱动器则负责将单片机的控制信号转换为适合步进电机工作的电流和电压。
在硬件设计方面,我们选择了一款性能稳定、价格适中的单片机作为主控制器,同时设计了相应的电路和接口,以实现与上位机和步进电机驱动器的通信。
在软件设计方面,我们采用了模块化设计思想,将系统分为初始化模块、控制模块、通信模块等部分,以便于后续的维护和升级。
四、基于单片机的步进电机控制系统的实现在实现过程中,我们首先对单片机进行了初始化设置,包括时钟设置、I/O口配置等。
然后,通过编程实现了对步进电机的控制,包括步进电机的启动、停止、正反转以及速度调节等功能。
此外,我们还实现了与上位机的通信功能,以便于实现对步进电机的远程控制和监控。
五、实验结果与分析我们通过实验验证了基于单片机的步进电机控制系统的性能。
实验结果表明,该系统具有较高的控制精度和响应速度,能够实现对步进电机的精确控制。
同时,该系统还具有较好的稳定性和可靠性,能够在各种复杂环境下正常工作。
此外,我们还对系统的抗干扰能力进行了测试,结果表明该系统具有较强的抗干扰能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的步进电机控制系统设计与仿真牛 甲 熊 刚 郭东平(杨凌职业技术学院 陕西 杨凌 712100)摘 要: 研究基于单片机的步进电机控制系统及仿真实现问题,采用单片机AT89C51、步进电机和液晶模块等作为主要硬件,在PROTEUS 软件环境下实现一种电机控制系统的设计。
关键词: 单片机;电机;仿真;PROTEUS中图分类号:TP391 文献标识码:A 文章编号:1671-7597(2011)1020071-010 引言由于步进电机的驱动电流较大,一般的脉冲分配器输出的驱动能力有限,所以需要专门的驱动电路。
本设计选用单极性功率驱动芯片步进电机具有价格低廉、易于控制、无积累误差和计算机接口方便等ULN2003A ,ULN2003是高耐压、大电流达林顿系列,在5V 的工作电压下它优点,在电动阀门、电动窗帘、旋转灯具、医疗设备等方面有着广泛的应能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来用,因此设计一款可控性能好、精度高的电机控制系统是非常有意义的。
处理的数据。
本文介绍的步进电机控制系统,由单片机代替控制器,在按键的操作下控 2 软件设计制电机的转动,同时对工作状态进行显示,最后通过单片机动态仿真软件PROTEUS 仿真实现。
系统主程序如图2所示,单片机上电后开始中断初始化,并且设定寄1 硬件电路设计存器及电机控制模型初值,此时电机不转动,指示灯全部熄灭;若有键按下,则执行中断服务程序判别键值,根据键值来执行相应的子程序,通过本设计中,通过按键对电机的正向、反向(即顺时针、逆时针)进行改变控制模型及寄存器值来控制步进电机的方向和速度,同时LCD 以及指控制,控制器对控制台的参数进行采集,通过对采集的数据分析处理产生示灯显示电机的工作状态。
相应的信号输入到驱动器中,再通过驱动器控制电机进行正转、反转、加速、减速、停止等动作。
本系统以单片机AT89C51为控制核心,通过控制台按键来控制电机转速和方向,同时通过液晶及LED 实时的显示电机工作状态。
该步进电机控制系统包括单片机系统电路、按键电路、状态显示电路、驱动电路及电机等,系统选用P1口低五位作为按键控制口,P2口和P3口用做输出显示控制口,P0口低四位经反相后连接步进电机驱动芯片,高四位用做电机状态指示灯,整个系统结构图如图1所示。
图1 系统硬件结构图1.1 控制电路设计图2 主程序流程图按键采用独立式键盘,5个按键分别连接到单片机的P1.0~P1.5口,键值判断采用中断的工作方式,这种工作方式平时CPU 不必对按键进作为控制信号的输入。
K0为停止键,K1、K2键电机方向控制键,K3、K4键行扫描,只要有键闭合,立即产生中断信号使CPU 转入中断处理程序,对电机速度控制键。
按下K1后,电机开始正转,通过K3、K4对电机进行加速按键的进行处理,进入中断程序后,先延时10ms 去抖动,然后根据P1口的减速控制。
值转入相应的分支程序,在分支程序中控制步进电机的转动方向和转速,1.2 LCD显示电路设计同时更新LCD 存储显示部分采用的是TS12864液晶,液晶的数据端D0-D7与单片机P2口相连,实现数据的传输与显示;使能信号端E 用来完成液晶的读/写操作时序,与P3.5连接;R/W 信号端上的电平状态用来判断是读操作还是写操作,与P3.4连接;RS 信号端用于识别数据线的数据是指令代码还是用来显示数据,与P3.2连接。
液晶屏的作用就是实时显示电机的工作状态,使工作人员能够直观的看到电机的处于何种工况。
1.3 驱动电路设计器中内容以显示电机工作状态。
3 仿真实现PROTEUS 是英国Labcenter electronics 公司开发的EDA 工具软件,涉及PCB 制版、Spice 电路仿真、单片机仿真以及对ARM7/LPC2000的仿真[2~4]。
本文设计的电路硬件主要由单片机、LCD 、晶振、电阻电容、驱动电路、电机等元器件组成,在Proteus中绘制电路原理图。
仿真过程如下:(下转第22页)perf内核新增加的特征。
Perf是在RHEL6中才有,RHEL5中没有Perf。
包,该两个包需从http://下载。
“default reboot”用来告Oprofile和perf都使用现代CPU中具有的硬件计数器进行统计工作,但诉kdump,收集完dump信息后重启系统。
perf还可以使用内核中定义的“software counter”及“trace point 5.2 激活kdumps”,所以能做更多的工作。
Oprofile的抽样工作利用CPU的NMI中断来进运行#>service kdump start命令,你会看到,在成功完成的情况下行,而perf既可以利用NMI中断也可利用硬件计数器提供的周期性中断。
会在/boot/目录下生成一个initrd-2.6.18-128.el5.x86_64kdump.img文用户能很容易用perf来oprofile一个进程或系统的执行时间分布,如:件,该文件就是kdump加载的内核的initrd文件,收集dump信息的工作就#> perf top -f 1000 -p <my process>是在该initrd的启动环境下进行的。
查看/etc/init.d/kdump脚本的代还可以利用系统定义的 “software counter”和各子系统的“trace 码,你可看到其中会调用mkdumprd命令创建用于dump的initrd文件。
points”对子系统进行分析。
5.2.1 测试Kdump部署的有效性为了测试kdump部署的有效性,本人写了如下一个内核模块,通过5 用kdump工具定位内核故障实例insmod加载该内核模块,就能产生一个内核线程,在10秒左右后,占据5.1 部署Kdump100%的CPU,在20秒左右后触发kdump。
系统重启后,检查/oracle分区部署kdump收集故障信息的步骤如下:/var/crash目录下的内容,就能确认vmcore文件是否生成。
5.1.1 设置好相关的内核启动参数5.2.2 用crash工具分析vmcore文件在/boot/grub/menu.lst中加入如下内容用crash命令分析vmcore的命令行格式如下所示。
用crash打开crashkernel=128M@16M nmi_watchdog=1vmcore后,主要是用dmesg及bt命令打印出问题的执行路径的call 其中crashkernel参数是用来为kdump的内核预留内存的;nmi_watchdog=1trace,用dis反汇编出代码,最终确认call trace对应的C源码中的位是用来激活NMI中断的,我们在未确定故障是否关闭了中断的情况下,需要部署置,再进行逻辑分析。
NMI watchdog才能确保触发panic,重启系统确保设置生效。
6 使用kprobe来观察内核函数的执行实例5.1.2 设置好相关的sysctl内核参数在/etc/sysctl.conf中最后加入一行Kprobe是SystemTap对内核函数进行probing的功能在内核中的实现,kernel.softlookup_panic = 1由于内核中提供了正式的API来使用kprobe,所以对很多内核程序员来该设置确保softlock发生时会调用panic,从而触发kdump行为说,也许直接使用kprobe比使用SystemTap更方便。
内核中提供了三种类执行#>sysctl -p确保设置生效型的kprobe处理函数,分别是jprobe,kprobe,kretprobe,下面的代码5.1.3 配置/etc/kdump.conf用这三个probe观察在TCP/IP的arp_process函数执行中对ip_route_input 在/etc/kdump.conf中加入如下几行内容()调用的返回结果。
这个代码还展示了在同一个函数probe的Entry ext3/dev/sdb1handler和Ret handler之间共享参数的方法。
core-collector makedumpfile -c message-level 7 -d 31 -i 参考文献:/mnt/vmcoreinfo[1]#>man kdump.conf,#>man makedumpfile,#>man crash.path /var/crash [2]#>apropos systemtap.Default reboot[3]http:///wiki/SystemTap.其中/dev/sdb1是用于放置dumpfile的文件系统,dumpfile文件放置[4]http:///Articles/322666/.在/var/crash下,要事先在/dev/sdb1分区下创建/var/crash目录。
“?”[5]kernel-source/Documentation/trace/tracepoints.txt.敝付ǘ詃内容的过滤级别,这参数对于dump分区放不下全部内存内容或用[6]kernel-source/tools/perf/Documentation.户不想让dumping中断业务太长时间时很重要。
vmcoreinfo文件放置在/dev/sdb1 分区的/目录下,需要使用如下命令产生:作者简介:#>makedumpfile -g //vmcoreinfo -x /usr/lib/debug/lib/modules 马庆胜(1969-),男,山东省济南人,学历:大学本科,现职称:工程/2.6.18-128.el5.x86_64/vmlinux师,单位:山东联大集团,研究方向:管理信息;张前锋 (1975-)男,北京“Vmlinux”文件是由kernel-debuginfo包提供的,在运行makedumpfile 人,学历:研究生,现职称:工程师,工作单位:山东联大集团,研究方向:之前需要安装相应内核的kernel-debuginfo和kernel-debuginfo-common两个信息管理。
1)在仿真开始后,在控制台按下K1/正转键,此时电机正转,蓝色指运行,测试结果表明,该系统可以满足在功能键的操作下控制电机的正反示灯亮,同时LCD 显示汉字“正转”字样;在电机运行的任何时刻按下向转动、停止及加减速,状态指示灯及LCD 能够正确显示电机的工作状K2/反转键,可以使电机反向转动,同时LCD 显示汉字“反转”字样。
K1、态。
K2可以使电机在正反转动之间切换。
2)在电机运行的任何时刻按下K0/停止键,此时电机将停止运行,同参考文献:时LCD 显示汉字“停止”字样。