嵌入式控制系统工程设计课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
1.引言 (2)
2.基本原理 (2)
2.1步进电机概况 (2)
2.2步进电机工作原理 (4)
2.3步进电机分类 (6)
3.硬件系统选择 (7)
3.1核心处理器选择 (7)
3.2元器件选择及接口设置 (8)
4.硬件原理结构框图 (12)
5.任务划分及程序大框图 (13)
6.PCB设计及成本估算 (15)
7.总结 (17)
参考文献 (19)
1.引言
步进电机是一种控制电机,由于不使用反馈电路就能进行速度控制及定位控制,既所谓的电机开环控制,故越来越多的被应用于现代工业控制系统中。
其应用主要以处理办公业务能力很强的OA(Office Automation,办公自动化)机器和FA(Factory Automation,工厂自动化)机器为核心,并广泛应用于医疗器械、计量仪器、汽车、游戏机等[1]。
传统工业中的步进电机控制系统大多数采用的是8位单片机如89C51系列作为控制内核,其设计简单、价格低廉且能满足一般的控制要求,但是由于单片机本身存储空间小,外设资源较少,往往需要与PC机联机控制才能实现更高级的功能,这就带来了实时性能较差,人际交互较为复杂,操作麻烦等问题[2]。
如果采用功能强大的32位ARM处理器作为核心,集成电源、电机控制板、步进电机和人机界面于一体,形成一个完整的嵌入式一体化工业控制机,可以使得控制系统对步进电机的控制具有更高的实时性和可靠性、更友好的人机界面、更高的可操作性、更低的总成本和更高的控制精度。
本文基于这样一种设想,采用ARM7内核的LPC2131处理器为核心,设计了一个具有实时操作性和人机界面的步进电机控制器。
2.基本原理
2.1步进电机概况[1]
步进电机属于DC驱动的同步电机,但无法直接用DC或AC电源来驱动,需配备驱动器才能使用,所以步进电机的运行需要驱动电路。
步进电机驱动电路的任务,是按顺序指令切换DC电源的电流流入步进电机的各相线圈。
图2.1为三相VR型步进电机的绕组外加电源示意图,其中驱动电路用开关来表示。
图2.1中,开关S1为ON时,第1相的绕组导通,如切换第2相绕组电流的指令,S1将打开变为OFF状态,S2变成ON状态。
如此,电机转子就旋转一个固定角度,此只由定子极数与转子齿数的关系来决定的旋转角度,即为电机转
动固有的步距角。
同样,S3顺序打开为ON状态,S2转为OFF状态,电机转子又转过一个步距角。
依次进行,电路每切换一次,电机就以固有的角度转动一步。
图2.1 步进电机驱动电路原理图
若切换n次,转子就旋转步距角的n倍角度;如果没有发出指令,转子则停止转动。
电机以步距角为一步,此旋转角度的大小由电机结构来决定,如果将负载连接在电机轴上,就可以对负载进行旋转角度的位置控制;改变开关切换速度(即脉冲频率)就可改变旋转速度,故改变速度,就是要改变图2.1中的开关S1、S2、S3的切换频率,即开关S1、S2、S3的切换频率与转子转速成正比。
开关的切换频率向来是由驱动电路的指令脉冲频率来决定的。
此种脉冲频率以pps(pulse per second)为单位。
pps为每秒脉冲数。
图2.2为步进电机与驱动电路的功能框图。
图2.2 步进电机与驱动电路的功能框图
2.2步进电机工作原理
以两相步进电机为例对步进电机的工作原理进行阐述。
(1)两相电机的单相通电步进顺序
在图2.3中我们很清晰的展示了在单相通电时一个两相步进电机的典型的步进顺序。
在第1步中,两相定子的A相通电,因异性相吸,其磁场将转子固定在图示位置。
当A相关闭、B相通电时,转子顺时针旋转90°。
在第3步中,B 相关闭、A相通电,但极性与第1步相反,这促使转子再次旋转90°。
在第4步中,A相关闭、B相通电,极性与第2步相反。
重复该顺序促使转子按90°的步距角顺时针旋转。
图2.3两相电机的单相通电步进顺序
(2)两相电机的双相通电步进顺序
图2.3中显示的步进顺序称为“单相激励”步进。
更常用的步进方法是“双相激励”,其中电机的两相一直通电。
但是,一次只能转换一相的极性,见图2.4所示。
在第1步中,两相定子的A相和B相同时通电,因异性相吸,再加上力的相互作用关系,其磁场将转子固定在图示step1位置。
在第2步中,两相定子的A相关闭,而B和a相(此时的a相通电极性与第1步A相反)同时通电,因异性相吸,再加上力的相互作用关系,其磁场将转子固定在图示step2位置。
在第3步中,两相定子的a相和b相同时通电,因异性相吸,再加上力的相互作用关系,其磁场将转子固定在图示step3位置。
在第4步中,两相定子的b相和A
相同时通电,因异性相吸,再加上力的相互作用关系,其磁场将转子固定在图示step4位置。
按照这样的通电方式电机就转过了一周。
两相步进时,转子与定子两相之间的轴线处对直。
由于两相一直通电,本方法比“单相通电”步进多提供了41.1%的力矩,但输入功率却为2倍。
图2.4两相电机的双相通电步进顺序
(3)步进电机的半步工作方式
电机也可在转换相位之间插入一个关闭状态而走“半步”。
这将步进电机的整个步距角一分为二。
例如,一个90°的步进电机将每半步移动45°,见图2.5。
但是,与“两相通电”相比,半步进通常导致15%~30%的力矩损失(取决于步进速率)。
在每交换半步的过程中,由于其中一个绕组没有通电,所以作用在转子上的电磁力要小,造成了力矩的净损失。
从原理图我们很容易看到半步工作方式其实就是将两相电机的单相通电工作方式和两相电机的双相通电工作方式相互结合起来。
两相步进电机的工作模式有两相四拍和两相八拍等两种,其中我们在图2.3和图2.4中展示的都叫做两相四拍工作模式,而下面的2.5图展示的就是两相八拍工作模式。
图2.5两相电机的半步步进顺序
2.3步进电机分类
步进电动机的种类很多,从广义上讲,步进电机的类型分为机械式、电磁式和组合式三大类型。
按结构特点电磁式步进电机可分为反应式(VR)、永磁式(PM)和混合式(HB)三大类;按相数分则可分为单相、两相和多相三种。
目前使用最为广泛的为反应式和混合式步进电机[3]。
(1)反应式步进电机(Variable Reluctance,简称VR)的转子是由软磁材料制成的,转子中没有绕组。
它的结构简单,成本低,步距角可以做得很小,但动态性能较差。
(2)永磁式步进电机(Permanent Magnet,简称PM)的转子是用永磁材料制成的,转子本身就是一个磁源。
转子的极数和定子的极数相同,所以一般步距角比较大,它输出转矩大,动态性能好,消耗功率小(相比反应式),但启动运行频率较低,还需要正负脉冲供电。
(3)混合式步进电机(Hybrid,简称HB)综合了反应式和永磁式两者的优点。
与传统的反应式相比,混合式结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。
因永磁体的存在,该电机具有较强的反电势,其自身阻
尼作用比较好,使其在运转过程中比较平稳、噪声低、低频振动小。
但结构复杂,成本较高。
本文采用的是两相混合式步进电机。
3.硬件系统选择
3.1核心处理器选择
基于系统的实际需要和成本考虑,本系统采用了NXP公司生产的LPC2131芯片如图3.1所示,它的CPU是ARM7TDMI,是一种高性能、低功耗、价格便宜的RISC处理器,具有丰富的片上外设资源,可在3.3V的电压下工作,非常适合于嵌入式产品的开发。
图3.1 LPC2131的64管脚封装图
其主要特点如下:
(1)32位144引脚的ARM7TDMI内核;
(2)I/O电压时3.3V,CPU工作电压时1.8V;
(3)有16K字节的SRAM,8K的片内Flash;
(4)通过片内PLL可实现60MHz的主频;
(5)对片内Flash支持三种编程方式:ISP,IAP,JTAG在线仿真调试;
(6)具有两个低功耗模式:空闲和掉电模式;
(7)2路32位定时器,6路PWM,实时时钟和看门狗;
(8)具有2路工业标准的异步串口(UART)、高速I2C和2个SPI接口;
(9)8路数据转换器(ADC),转换时间可低至2.44ms;
(10)多达47个可承受5V的GPIO。
3.2元器件选择及接口设置
(1)主要元器件选择
考虑要硬件设计驱动电路的方法会电路复杂,调试不方便,而且采用多个元器件搭接,成本高。
而直接采用集成的驱动芯片时电路稳定,成本低,易于控制,所以最终本设计是直接采用电机驱动芯片L298N作为电机驱动部分的核心部件[4]。
其管脚图如图3.2所示。
图3.2 L298N管脚图
L298N为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片,内部包含4 信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准TTL逻辑信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO 端口来提供模拟时序信号。
同时考虑到步进电机驱动电路可能会对主芯片造成一定的影响,所以在主芯片与电机驱动电路之间通过光耦6N137连接。
6N137管脚图如图3.3所示。
由于
内部通过光耦电路相连,6N137可以有效的避免步进电机驱动电路中的突发高电流和干扰电流对主芯片的影响。
图3.3 6N137管脚结构图
对于系统的人机界面模块,采用64键键盘作为输入模块,带字库的12864LCD显示屏(如图3.4所示)作为输出模块,其中对64键键盘采用芯片BC7281B(如图3.5a所示)作为控制芯片。
BC7281B是16位LED数码管显示及64键键盘接口专用控制芯片,通过外接移位寄存器(典型芯片如74HC164,如图3.5b所示),BC7281B最多可以连接64键(8×8)的键盘矩阵,内部具有去抖动功能,并有2中工作模式可以选择。
BC7281B采用高速二线接口与MCU 进行通讯,只占用很少的I/O口资源和主机时间。
带字库的12864LCD显示屏常用的有4线连接和8线连接两种方式,通过4个或8个I/O口输入需要显示的信息,通过几个控制端口控制LCD的读、写等。
图3.4 12864LCD显示屏
a. BC7281B管脚图
b. 74HC164管脚图
图3.5 BC7281B及74HC164管脚图
由于电机需要直流12V电压驱动,故控制器采用12V直流变压器供电,而主芯片需要3.3V供电,L298N需要5V供电,故需要进行电压变换。
本控制器采用SPX1117M3-5.0将12V直流电转化为5V直流电,采用AMS1117-3.3将5V 直流电转化为3.3V直流电,二者的管脚图分别如图3.6a和3.6b所示。
a. SPX1117M3-5.0管脚图
b. AMS1117-3.3管脚图
图3.6 SPX1117M3-5.0和AMS1117-3.3管脚图
(2)I/O口及通讯接口设置
控制系统主芯片拥有47个GPIO管脚,需要对电机驱动芯片L298N、键盘控制芯片BC7281B、显示模块12864进行控制。
L298N对步进电机进行控制时,需要给步进电机输入一定频率和脉宽的方波,故需要在输入端分配两个个PWM 接口进行脉冲的控制,同时需要分配一个普通I/O口进行电机正反转的控制;对于BC7281B,需要分配一个定时器管脚进行时钟控制,一个普通I/O管脚进行数据的传输,以及一个中断管脚向主芯片输入键盘状态;由于主芯片具有充足的I/O 管脚,所以对于12864的驱动,采用传统的8线驱动,另外加上12864的3个控制端口,即给12864分配11个GPIO管脚。
控制系统采用JTAG在线调试接口给控制板下载程序,JTAG接口有14针接口和20针接口两种标准,如图3.7所示。
a. 20针JTAG接口
b. 14针JTAG接口
图3.7 JTAG接口两种标准
JTAG接口的引脚定义如下:
I. TCK—测试时钟输入;
II. TDI—测试数据输入,数据通过TDI输入JTAG口;
III. TDO—测试数据输出,数据通过TDO从JTAG口输出;
IV. TMS—测试模式选择,TMS用来设置JTAG口处于某种特定的测试模式;
V. 可选引脚TRST—测试复位,低电平有效。
同时为了与其他外设相连,控制器留出一个UART接口和一个SPI接口。
UART是一种通用串行数据总线,用于异步通信,该总线双向通信,可以实现全双工传输和接收,在嵌入式设计中,UART用来主机与辅助设备通信,如汽车音响与外设AP之间的通信,与PC机通信包括与监控调试器和其他器件,如EEPROM通信;SPI(串行外设接口)总线系统使一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息,外围设备如FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。
SPI总线系统可直接与各个厂家生产的各种标准外围器件直接接口,该接口一般使用4条线:串行时钟(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择先NSS。
为了提高系统的并行处理和实时响应性能,本设计中为步进电机控制系统移入了UCOS—II操作系统[5]。
UCOS—II操作系统拥有可固化、可裁剪、可剥夺的实时内核,可同时管理64个系统任务。
根据需要可对内核进行配置裁剪。
移
植了操作系统后,整个控制系统的应用程序被分成多个并行任务,这些任务处于并行运行的工作状态,通过UCOS—II操作系统来对各个任务进行调度和切换。
移植系统之后,可以更好更及时的响应系统的关键任务,大大提高CPU的利用率,提高系统的稳定性,同时简化程序开发流程。
4.硬件原理结构框图
本控制器是以LPC2131为控制器,用L298N电机驱动芯片做驱动器设计的驱动电路。
控制器的整体硬件设计框图如图4.1所示[2]。
由电源给整个系统供电,由主芯片发出控制脉冲给驱动电路,驱动电路根据芯片的控制脉冲来控制步进电机的转速、正反转等,同时通过人机界面向主芯片输入控制命令,经主芯片处理后控制步进电机进行相应的状态变换,并通过人机界面输出显示。
图4.1 硬件整体设计框图
由于电机需要12V供电而主芯片需要3.3V供电、L298N需要5V供电,故需要两个不同的变压电路,一个是12V转5V变压电路,另一个是5V转3.3V 变压电路,框图如图4.2所示。
图4.2 变压电路结构框图
为了保护主芯片,在主芯片和L298N之间添加了6N137光耦隔离电路,故驱动电路包含了6N137隔离电路和L298N驱动电路两部分,结构框图如图4.3所示。
图4.3 驱动电路结构框图
人机界面包括了键盘输入模块输入控制信息以及显示模块显示实时的电机运行状态,结构框图如图4.4所示。
图4.4 人机界面模块
5.任务划分及程序大框图
本控制器的主要任务有三个方面:一是等待并接收键盘输入的控制命令;二是根据键盘输入的控制命令控制步进电机的加减速和正反转;三是将步进电机的转速、参数和运行时间等信息显示出来。
程序框图如图5.1所示[5]。
程序的第一部分为系统初始化模块,主要实现LPC2131的起动设置,包括初始化中断向量表、初始化堆栈、系统向量初始化、中断系统初始化、I/O初始化、外围设备初始化、存储器初始化和地址重映射初始化等操作。
键盘扫描程序采用的是中断控制,系统初始化完成后,系统处于无限循环状态,当有按键按下时产生一个中断,使系统从循环状态转入键盘识别程序,键盘识别程序将识别的
输入数据传入步进电机控制程序中,根据给定值调整步进电机的状态,同时通过显示程序将电机状态等信息显示在12864显示屏上。
图5.1 程序框图
电机控制程序主要功能是控制步进电机的加减速。
步进电机有四种工作状态:停止、加速、运行和减速。
各状态之间的切换通过判断临界条件来实现。
在相同状态下,根据加减速算法分别计算每步脉冲时间间隔,通过Timer 中断来控制输出脉冲,实现电机的加减速控制。
加减速状态控制流程图如图5.2所示[6]。
图5.2 加减速状态控制流程图
根据以上描述,获得加减速控制程序的流程图分别如图5.3a和5.3b所示[7]。
a. 加速控制程序流程图
b. 减速控制程序流程图
图5.3 加减速控制程序流程图
6.PCB设计及成本估算
根据硬件设计框图,将电源电路、主芯片电路、复位电路、通讯接口电路、光耦隔离电路和电机控制电路集成在一块控制板上,而键盘输入电路和LCD显示模块则作为外接板,通过GPIO管脚与主控制板相连。
电源电路包括5.0V变压电路和3.3V变压电路,主芯片电路包括LPC2131的最小系统电路以及预留的连接键盘模块、LCD显示模块和通讯接口的I/O管脚,复位电路只需要连接复位开关及保护电阻,光耦隔离电路需要设置三路6N137及其相关电路,电机控制电路需要L298N及其相关电路,根据所有元器件的大小以及大概数量,设置核心控制板为8mm×13mm的双层PCB板。
键盘输入模块初步设置的按键有启动、停止、正转、反转、0到9、小数点、调速、确定、运行时间等约20个按键,加上BC7281B、74HC164及其周边电路,设置键盘模块大小为6mm×6mm的双层PCB板。
12864LCD显示模块是已经集成好的模块,只需要在使用时与核心控制板的相关管脚连接即可。
经查询,控制器的主要元器件价格如表6.1所示。
AMS1117-3.3 0.3
60MHZ晶振 2
另外,电路中的贴片电阻电容和其他元器件每张的价格粗略估计的20元以内,以20元为标准,则每套控制器的元器件费用大约为108.3元。
而PCB打样,将主控制板和键盘模块拼接在一起制版,初期工程费约为200元,制板每块板价格约为8mm×19mm×0.05=7.6元。
以100套控制器为标准,PCB制板总价约为200+7.6×100=276元,元器件价格总约为108.3×100=10830元。
综上可知,100套控制器的成本约为276+10830≈11100元。
7.总结
本设计为以ARM7系列的LPC2131芯片为核心的步进电机控制器的设计,控制器主要用于对步进电机的加减速进行控制,设计一共包括了两个部分:硬件设计和软件设计。
硬件设计主要分为电源模块、主芯片模块、键盘模块、显示模块、电机控制模块五大部分,论文中对每个电路的作用、采用的主要芯片、电路之间的关系都进行了详细的论述。
软件设计主要包括键盘扫描和识别程序、显示程序、步进电机加减速程序三大部分,论文中对整个程序的流程和各主要程序的作用都进行了详细的叙述。
另外,文中也对每套控制器的大致价格进行了调研,对生产100套控制器的成本进行估算。
本控制器可以用于一般的工业控制中的步进电动机控制,由于具有人机界面,可以减少上位机的投入,具有更好的可操作性。
通过本次设计,我学到了不少东西:首先,由于本次设计为步进电机的控制器设计,必须对步进电机的工作原理、加减速控制方法等有一个比较深入的了解,这就让我对步进电机的认识从书面提升到了显示应用的高度,对步进电机有了更深层次的理解;其次,本次设计涵盖了嵌入式系统设计从确定应用需求到元器件选择、硬件设计、软件设计和硬软件整合的全部内容,让我对嵌入式系统的设计有了一个更直观的认识,也通过亲身的实践了解了嵌入式系统的开发流程,对以后的工作实践有很大的实际意义;另外,本次设计也让我对一些硬件芯片的应用有了一个比较深刻的认识,如ARM7系列芯片LPC2131的一些特性和功能、L298N电机控制芯片的功能和外围电路设置、光耦隔离芯片6N137的功能和外围电路连接方式、键盘控制芯片BC7281B的使用方法和与主芯片的连接方式、LCD显示模块12864的驱动和使用方法等,是在硬件学习道路上很大的一个积累;最后,由于系统需要控制系统,所以在控制系统的学习中,让我对UCOS —II操作系统也有了一定的认识,嵌入式操作系统的特点和优势等有了比较深刻的了解,同时也对ARM系列编程软件ADS有了一定的涉猎,了解了ARM系列芯片的编程环境,对以后的嵌入式开发有很大的意义。
本次设计依然存在很大的不足,以下给出几个需要改进和努力的方向:
(1)文中的步进电机采用的是开环控制,虽然步进电机使用开环控制具有较高的精度,但是依然存在一定的误差,可以将开环系统改为闭环控制系统,采
用PID传统控制方法或者模糊控制等智能控制方法进行控制,以获得更好的控制效果[8];
(2)本设计为两相混合式步进电动机专用控制器,可以通过改进控制器硬件和软件,使得控制器对于大多数的步进电机如一相、三相步进电机都能进行控制,使控制器具有更高的适用性;
(3)控制器不支持以太网,可以采用更高级的ARM系列芯片如基于ARM Cortex—M3的LM3S9B96芯片进行控制,使得控制器可以支持以太网,实现上位机与控制器的远程连接和远程控制。
参考文献
[1] 坂本正文著. 步进电机应用技术[M]. 北京:科学出版社, 2010: 1-4.
[2] 谢丽娟. 基于ARM的步进电机控制系统[J]. 山西电子技术, 2012, 5: 32-33.
[3] 王晓明, 王玲著. 电动机的DSP控制: TI公司DSP应用[M]. 北京: 北京航空航天大学出版社, 2004.7:275-276.
[4] 孙祥国. 基于ARM单片机的步进电机控制系统设计[J]. 测控技术, 2007, 6: 71-73.
[5] 黄杰, 黄秉錬, 罗晓曙等. 基于ARM的多功能步进电机控制系统设计[J]. 信息技术, 2009, 9: 153-155, 159.
[6] 罗鑫, 张峰. 基于ARM Cortex—M3的步进电机线性速度控制的实现[J]. 电气自动化, 2009, 35(5): 42-44.
[7] 房明玉, 杭柏林. 基于单片机的步进电机开环控制系统[J]. 电机与控制应用, 2006, 33(4): 61-64.
[8] 潘健,刘梦薇. 步进电机控制策略研究[J]. 现代电子技术, 2009, 15: 143-145.。