基于ARM的直流电机测速系统Word下载.doc
《基于ARM的直流电机测速系统Word下载.doc》由会员分享,可在线阅读,更多相关《基于ARM的直流电机测速系统Word下载.doc(18页珍藏版)》请在冰点文库上搜索。
3.1.2报警模块 6
3.1.3测速模块 6
3.1.4显示模块 6
3.2软件设计 7
3.2.1流程图 7
3.2.2程序清单 7
第四章心得体会 13
参考文献:
16
第15页
西安科技大学电控学院课程设计
第一章绪论
1.1ARM技术的发展
ARM公司的IP核已经由ARM7,ARM9发展到今天的ARM11版本。
ARM11囊括了Thumb-2,CoreSight,TrusZone等众多业界领先技术,同时由单一的处理器内核向多核发展,为高端的嵌入式应用提供了强大的处理平台。
高集成度SOC芯片的采用可以带来一系列好处,诸如减少了外围器件和PCB面积,提高系统抗干扰能力,缩小产品体积,降低功耗等。
ARM公司是一家IP供应商,其核心业务是IP核以及相关工具的开发和设计。
半导体厂商通过购买ARM公司的IP授权来生产自己的微处理器芯片。
由此以来,处理器内核来自ARM公司、各芯片厂商结合自身已有的技术优势以及芯片的市场定位等因数使芯片设计最优化,从而产生了一大批高度集成、各据特色的SOC芯片。
例如Intel公司的XScale系列集成了LCD控制器、音频编/解码器,定位于智能PDA市场;
Atmel公司的AT91系列片内集成了大容量Flash和RAM、高精度A/D转换器以及大量可编程I/O端口,特别适合于工业控制领域;
Philips公司的LPC2000系列片内集成了128位宽的零等待Flash存储器以及I2C,&
nbspSPI,PWM,UART等传统接口,极高的性价比使它对传统的8/16位MCU提出了严峻的挑战。
本次设计仍使用的ARM7系列。
1.2ARM的广泛应用
ARM微处理器及技术的应用几乎已经深入到各个领域:
1、工业控制领域:
作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。
2、无线通讯领域:
目前已有超过85%的无线通讯设备采用了ARM技术,ARM以其高性能和低成本,在该领域的地位日益巩固。
3、网络应用:
随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。
此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。
4、消费类电子产品:
ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。
5、成像和安全产品:
现在流行的数码相机和打印机中绝大部分采用ARM技术。
手机中的32位SIM智能卡也采用了ARM技术。
除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的应用。
1.3本课题研究目的及意义
直流电动机是最早出现的电动机,也是最早实现调速的电动机。
长期以来,直流电动机一直占据着调速控制的统治地位。
由于它具有良好的线性调速特性,简单的控制性能,高效率,优异的动态特性,现在仍是大多数调速控制电动机的最优选择。
因此研究直流电机的速度控制,有着非常重要的意义。
随着ARM的发展,数字化直流PWM调速系统在工业上得到了广泛的应用,控制方法也日益成熟。
它对ARM的要求是:
具有足够快的速度;
有PWM口,用于自动产生PWM波;
有捕捉功能,用于测频;
有A/D转换器、用来对电动机的输出转速、输出电压和电流的模拟量进行模/数转换。
通过设计基于ARM的嵌入式直流电机调速系统并调试得出结论,在掌握L298N和74HC595的同时进一步加深对直流电动机调速方法的理解,对运动控制的相关知识进行巩固。
第二章系统分析
(1)本次课程设计是在学习了《ARM嵌入式系统基础教程》课程之后综合利用所学知识完成一个计算机应用系统设计并在实验室实现。
(2)通过课程设计,巩固和加深了对ARM课程中所学的理论知识和实验能力,基本掌握软件编程、硬件设计和实验能力。
(3)加深对计算机软硬知识的理解,获得初步的应用经验,为以后从事生产和科研工作打下一定的基础。
设计一种嵌入式监控系统,使得机器设备能够通过该系统与人之间进行数据通信的目的。
(1)设计一个直流电机的控制系统。
(2)可通过键盘控制直流电机的转速和方向。
(3)能够在上位机显示当前的转速。
(4)在电机加速时能够报警。
2.3设计分析
本次的设计内容是基于ARM7控制直流电机并测量转速。
以lpc2114为主控制芯片,由三极管搭接H桥驱动直流电机转动,通过蜂鸣器实现报警功能,用红外对管进行测速并用上位机显示直流电机转速,系统硬件总体设计框图如下所示:
图2-1系统原理结构图
2.3.1核心控制电路
以嵌入式微控制器作为核心控制电路,作为硬件系统的中枢控制中心,用于协调和管理系统的其它硬件。
本系统选用PHIPLIS公司的ARMTDMI-S内核为控制器LPC2114作为嵌入式系统的核心单元、该处理器内部集成了系统所需的PWM模块、脉冲捕获模块等。
2.3.2电动机接口电路
电动机接口电路用于检测和驱动电动机的转速和转向,转速检测采用红外对管配合控制核心的脉冲捕获功能实现,电动机驱动电路采用控制核心的PWM功能和H桥驱动实现。
2.3.3用户接口电路
用户接口电路用于获取用户的输入和将系统相关信息显示给用户,本系统采用按键获取用户输入,采用上位机显示电动机的转速。
第三章系统设计
3.1硬件设计
图3-1系统电路图
系统功能:
该系统主要实现对直流电机正反转,测速,加速、减速及加速到达上限报警,最后将测量的转速结果在EasyARM显示界面显示。
3.1.1直流电机驱动模块
PWM控制电路
经典的模拟控制电路主要由PWM电路、延时电路和驱动电路组成。
其基本电路结构和调制原理如图3-4。
PWM发生电路是采用三角波发生器产生的三角波放大后与一路可调直流电压(电流调节器输出的U1)进行比较,电压比较器输出的是一系列方波信号。
如果改变U1的大小,那么方波脉冲宽度将会改变,从而达到脉宽调制的目的。
图3-2基本电路结构
LPC2124可提供6路PWM直接输出,控制电机的调速范围大,使用方便。
本设计使用LPC2124的P0.21引脚的PWM5功能,P0.25的GPIO功能,外接由74HC08和7404组成的组合电路,生成两路PWM信号,如图
图3-3PWM控制电路
本次设计直流电机控制使用了H桥驱动电路,控制口线为P0.21、P0.22。
JP4可以断开直流电机控制电路与lpc2200连接。
电路原理图如下所示:
图3-4H桥驱动电路图
如图示,当P0.21输出高电平时(即ZDJ_A点为3.3V),则Q6、Q9导通→Q10导通→MOTOR_B点为MGV+,Q9导通→MOTOR_A点为GND,此时直流电机将会正转。
由于Q9的集电极通过一个二极管D5连接到H桥的另一个控制端ZDJ_B,将ZDJ_B控制端电压钳在1.0v以下,所以不管P0.22口输出的是高电平还是低电平,Q7、Q8都会截至→Q11截至,不会造成H桥短路现象。
当P0.21输出低电平时(即ZDJ_A点为0V),则Q6、Q9截至→Q10截至,P0.22的输出电平可以控制直流电机反转或停机。
若P0.22输出高电平(即ZDJ_B点为3.3V),则Q7、Q8导通→Q11导通→MOTOR_A点为MGV+,Q11导通→MOTOR_B点为GND,此时直流电机将会正转。
当P0.22口输出低电平时,Q7、Q8都会截至→Q11截至,电机停机。
3.1.2报警模块
蜂鸣器采用直流电压供电,在电动机转速达到上限时进行报警。
图3-5蜂鸣器报警电路
3.1.3测速模块
利用红外对管对颜色敏感的特点,当检测物表面为黑色时,反射光很弱,接收端检测到的光线可以忽略,使接收端呈现一种状态,例如开关管截止;
当被检测物表面为白色时,反射光强烈,发射端发射的红外线被接收端全部接收,使接收端呈现另一种相反的状态,例如开关管开通。
这两种相反的状态表现在电路中,就是高低电平组成的脉冲信号。
图3-6红外对管测速电路
3.1.4显示模块
为了给系统提供更友好的人机界面,我们可以通过上位机软件实现各种显示输出或操作输入,EasyARM软件是上位机人机界面软件,通过RS232串口通讯完成各种功能控制。
全仿真的DOS字符窗口是具有25行80列的字符显示窗(显示字符的前景/背景颜色可设置),具有8个仿真LED数码管和8个仿真发光二极管,还有20个模拟按键(按键名可重新定义)。
串口模式可设置,具有单独的数据发送/接收调试窗,方便地监视串口接收到的数据或调试串口。
3.2软件设计
3.2.1流程图
图3-7主程序流程图3-8PWM寄存器初始化流程图图3-9定时器0初始化流程图
3.2.2程序清单
/**************************************************************************
*文件名:
main.c
*功能:
使用PWM5控制电机转速,共4档。
*说明:
将跳线JP4,JP9短接。
**************************************************************************/
#include"
config.h"
#defineUART_BPS 115200 //定义通讯波特率
#defineKEY5 1<
<
20//定义按键5
#defineP0_22 1<
22//GPIO
#defineP0_21 1<
21//GPIO
#defineBEEPCON0x00000080//P0.7引脚控制B1,低电平蜂鸣
uint8constSEND_STRING[]="
jjj\r\n"
;
/*PWM周期及占空比设置值*/
#defineCYCLE_DATA 200000 //定义周期
#defineDUTY_CYCLE_DATA 20000 //定义基本占空比参数
voidDelayNS(uint32dly);
voidCC(uint8i);
*名称:
UART0_Ini()
初始化串口0。
设置为8位数据位,1位停止位,无奇偶校验,波特率为115200
*入口参数:
无
*出口参数:
voidUART0_Init(void)
{uint16Fdiv;
U0LCR=0x83;
//DLAB=1,可设置波特率
Fdiv=(Fpclk/16)/UART_BPS;
//设置波特率
U0DLM=Fdiv/256;
U0DLL=Fdiv%256;
U0LCR=0x03;
}
UART0_SendByte()
向串口发送字节数据,并等待发送完毕。
data 要发送的数据
voidUART0_SendByte(uint8data)
{
U0THR=data;
//发送数据
while((U0LSR&
0x40)==0);
//等待数据发送完毕
}
UART0_SendStr()
向串口发送一字符串
srt 要发送的字符串的指针
****************************************************************************/
voidUART0_SendStr(uint8const*str)
while
(1)
{
if(*str=='
\0'
)break;
UART0_SendByte(*str++);
//发送数据
}
*名称:
main()
*功能:
主函数
intmain(void)
{uint8i=1;
/*PINSEL1=0x01<
10;
//设置PWM5连接到P0.21管脚
IO0DIR=BEEPCON;
//设置I/O为输出
IO0DIR=P0_22;
PWMPR=0x00;
//不分频,计数频率为Fpclk
PWMMCR=0x02;
//设置PWMMR0匹配时复位PWMTC
PWMMR0=CYCLE_DATA;
//设置PWM周期
PWMMR5=DUTY_CYCLE_DATA;
//设置PWM占空比
PWMLER=1<
0|1<
5;
//PWMMR0、PWMMR5锁存
PWMPCR=1<
13;
//允许PWM5输出,单边PWM
PWMTCR=0x09;
*/ //启动定时器,PWM使能
CC
(1);
{
IO0CLR=P0_22;
//将P0.22置低,配合PWM控制
PWMMR5=DUTY_CYCLE_DATA*i;
//设置PWM占空比
PWMLER=1<
//PWMMR0、PWMMR5锁存
PWMTCR=0x09;
//启动定时器,PWM使能
if((IO0PIN&
KEY5)==0)
{
//DelayNS(20);
if((IO0PIN&
{
i=i+3;
IO0SET=BEEPCON;
//BEEPCON=1
//while((IO0PIN&
KEY5)==0);
}
//PWMTCR=0x00;
if(i>
=11)
{
PINSEL0=0x00000000;
//设置管脚连接GPIO
i=10;
IO0CLR=BEEPCON;
//BEEPCON=0
//DelayNS(2000);
i=i-3;
i=i-3;
}
}
//PINSEL0=0x00000005;
//设置I/O连接到UART0
//UART0_Init();
//UART0_SendStr(SEND_STRING);
//DelayNS(10);
return(0);
DelayNS()
长软件延时
dly 延时参数,值越大,延时越久
voidDelayNS(uint32dly)
{uint32i;
for(;
dly>
0;
dly--)
{
for(i=0;
i<
5000;
i++);
Fanzhuanjiating()
反转加速,停止
i占空比参数
voidCC(uint8i)
{
uint8m=0;
PINSEL1=0x01<
//设置PWM5连接到P0.22管脚
IO0DIR=P0_22;
IO0SET=P0_22;
//将P0.21置低,配合PWM控制
//不分频,计数频率为Fpclk
//设置PWMMR0匹配时复位PWMTC
//设置PWM周期
//允许PWM5输出,单边PWM
//启动定时器,PWM使能
while(m<
3)
{
//设置PWM占空比
//PWMMR0、PWMMR5锁存
{
i=i+2;
m++;
}
}
第四章心得体会
[硬件宋阿珍]为期一周的arm课程设计结束了,本应感到如释重负的我们心情却更加沉重了,因为通过课程设计可以看出这门课我们大部分人学的是一塌糊涂,或许看到这种结果,在我们看来是全专业最为认真敬业的老师之一的黄老师应该更加心痛吧,自己辛辛苦苦努力一个学期,学生竟然交出这样的答卷,着实是让人寒心的,所以我们感到非常的惭