北京信息科技大学 综合电子设计课设报告Word文档格式.docx
《北京信息科技大学 综合电子设计课设报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《北京信息科技大学 综合电子设计课设报告Word文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
1、总体设计2
1.1芯片介绍2
1.2设计目的5
1.3设计任务与要求5
1.4设计原理:
5
2.PWM设计方案6
(一)方案一:
PWM波调速物理结构6
(二)PWM调压调速原理:
7
(三)PWM软件设计:
3.H桥驱动电路设计方案10
3.1H桥驱动电路原理10
3.2H桥驱动硬件电路11
4.电机正转反转及调速的设计12
4.1电机软件设计流程图12
4.2电机软件设计12
加速控制17
减速控制19
停机控制20
PID控制设计20
5.设计总结22
6.参考文献23
附录23
1、总体设计
1.1芯片介绍
C8051F系列单片机是完全集成的混合信号系统级芯片,C8051F020的指令运行速度是一般80C51系列单片机的10倍以上。
因为其CIP-51中采用了流水线处理结构,已经没有了机器周期时序,指令执行的最小时序单位为系统时钟,大部分指令只要1~2个系统周期即可完成。
又由于其时钟系统比80C51的更加完善,有多个时钟源,且时钟源可编程,时钟频率范围为0~25MHz,当CIP-5l工作在最大系统时钟频率25MHz时,它的峰值速度可以达到25MI/s,C8051F020已进入了8位高速单片机行列。
I/O端口的配置方式:
C8051F020拥有8个8位的I/O端口,大量减少了外部连线和器件扩展,有利于提高可靠性和抗干扰能力。
其中低4个I/O端口除可作为一般的通用I/O端口外,还可作为其他功能模块的输入或输出引脚,它是通过交叉开关配置寄存器XBR0、XBR1、XBR2(各位名称及格式如表1所示)选择并控制的,它们控制优先权译码选择开关电路如图1所示,可将片内的计数器/定时器、串行总线、硬件中断、比较器输出及其它的数字信号配置为在端口I/O引脚出现,这样用户可以根据自己的特定需要选择所需的数字资源和通用I/O口。
数字交叉开关是一个比较大的数字开关网路,这在所有80C51系列单片机上是一个空白。
另外P1MDIN用于选择P1的输入方式是模拟输入还是数字输入,复位值为11111111B,即默认为数字输入方式。
而80C51单片机的I/O引脚是固定分配的,即占用引脚多,配置又不够灵活。
C8051F020通过优先权交叉开关译码器(如图2所示)控制数字开关网路,端口引脚的分配顺序是从P0.0开始一直到P3.7。
当交叉开关配置寄存器XBR0、XBR1和XBR2中外设的对应使能位被设置为逻辑“1”时,交叉开关将端口引脚分配给外设,例如,如果UARTOEN位(XBR0.2)被设置为逻辑“1”,则TX0和RX0引脚将分别被分配到P0.0和P0.1。
因为UART0有最高优先权,所以当UARTOEN位被设置为逻辑“1”时其引脚将总是被分配到P0.0和P0.1。
未被设置的交叉开关分配端口可作为通用I/O口。
注意:
当选择了串行通信外设(即SMBus、SPI或UART)时,交叉开关将为所有相关功能分配引脚。
例如,不能为UART0功能只分配TX0引脚而不分配RX0引脚。
交叉开关寄存器被正确配置后,通过将XBARE(XBR2.6)设置为逻辑“1”来使能交叉开关。
内部功能:
C8051F020内部带有数据采集所需的ADC和DAC,其中ADC有两个,一个是8路12位逐次逼近型ADC,可编程转换速率,最大为100kS/s.可通过多通道选择器配置为单端输入或差分输入。
内有可编程增益放大器PGA用于将输入的信号放大,提高A/D的转换精度。
可编程增益为:
0.5、1、2、4、8或16,复位时默认值为1。
另一个是8路8位ADC,可编程转换速率最大为500kS/s,其可编程放大增益为0.5、1、2、4,复位时默认值为0.5。
有2个12位的DAC,用于将12位的数字量转换为电压量,可产生连续变化的波形,两路信号可同步输出。
外部接口:
C8051F020外设还增添了三个串行口。
可同时与外界进行串行数据通信,SMBus兼容于I2C串行扩展总线;
SPI串行扩展接口;
两个增强型UART串口。
C8051F020具有基于JTAG接口的在系统调试功能,片内的调试电路通过JTAG接口可提供高速、方便的在系统调试。
1.2设计目的
了解电机的基本控制原理,主要利用C8051F020开发板、电机控制板,实现对直流电机的开环、闭环调速控制。
通过设计需要理解直流电机的基本控制原理,掌握处理器C8051F020芯片的定时器多通道PWM输出功能、频率信号捕获功能,多通道ADC采集功能等应用技术。
应用外设掌握人机交互技术,设计友好的人机交互界面。
1.3设计任务与要求
1:
产生两路pwm波形。
2:
实现电机正反转,并且通过按键实现加速减速。
3:
实现简单闭环控制,PID调节。
实现LCD显示转速等参数。
(1)系统框图
本系统主要包括中央控制模块、H桥驱动电路、光电测速模块、人机交互控制模块、电枢电流采集模块、电源管理模块。
系统组成如图1.4.1所示。
(1)微处理器模块:
实现信号处理与协调控制。
2)H桥驱动电路:
实现电机正反转的切换操作。
(3)光电测速模块:
对直流电机的转速进行采集。
(4)电枢电流采集模块:
对电枢电流进行采样。
(5)人机交互控制模块:
包括键盘和液晶显示。
键盘显示用来完成系统参数设置以及动作方式指示等。
2.PWM设计方案
PWM波调速物理结构
采用由达林顿管组成的H型PWM电路(图1—1)。
用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高;
H型电路保证了可以简单地实现转速和方向的控制;
电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。
我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;
并且在采用单片机产生PWM脉冲的软件实现上比较方便。
且对于直流电机,采用软件延时所产生的定时误差在允许范围。
图1PWM波调速电路
其结构图如图1—2所示:
图2电机调速系统框图
直流电动机转速n的表达式为:
其中,U为电枢端电压;
I为电枢电流;
R为电枢电路总电阻;
为每极磁通量;
K为电动机结构参数。
所以直流电动机的转速控制方法可分为两类:
对励磁磁通进行控制的励磁控制法和对电枢电压进行控制的电枢控制法。
其中励磁控制法在低速时受磁极饱和的限制,在高速时受换向火花和换向器结构强度的限制,并且励磁线圈电感较大,动态响应较差,所以这种控制方法用得很少。
现在,大多数应用场合都使用电枢控制法。
绝大多数直流电机采用开关驱动方式。
开关驱动方式是使半导体功率器件工作在开关状态,通过脉宽调制PWM来控制电动机电枢电压,实现调速。
图1.4.8是利用开关管对直流电动机进PWM调速控制的原理图和输入输出电压波形。
图中,当开关管MOSFET的栅极输入高电平时,开关管导通,直流电动机电枢绕组两端有电压Us。
t1秒后,栅极输入变为低电平,开关管截止,电动机电枢两端电压为0。
t2秒后,栅极输入重新变为高电平,开关管的动作重复前面的过程。
这样,对应着输入的电平高低,直流电动机电枢绕组两端的电压波形如图中所示。
电动机的电枢绕组两端的电压平均值Uo为
式中为占空比,=t1/T。
占空比表示了在一个周期T里,开关管导通的时间与周期的比值。
的变化范围为01。
由此式可知,当电源电压Us不变的情况下,电枢的端电压的平均值Uo取决于占空比的大小,改变值就可以改变端电压的平均值,从而达到调速的目的,这就是PWM调速原理。
/***************************************************************
功能:
实现用PCA在P0.0输出8位双路PWM信号,可用示波器观察占空比变化
***************************************************************/
#include<
c8051f020.h>
/*SFR定义*/
INTRINS.H>
//------------------------------------------------------------------------------------
//FunctionPROTOTYPES
voidPORT_Init(void);
voidPCA_Init(void);
voidPCA_ISR(void);
//MAINRoutine
voidmain(void)
{unsignedchara=0;
unsignedlongb;
bitPWM_PAC;
/*关看门狗*/
WDTCN=0xde;
WDTCN=0xad;
PORT_Init();
/*初始化I/O口*/
PCA_Init();
/*PCA初始化成8位脉宽调置方式*/
while
(1)
{
if(PWM_PAC==0)//占空比由0>
>
0xfe
{
PCA0CPH0=a;
a++;
if(a==0xfe){PWM_PAC=1;
}
}
else//占空比由0xfe>
a--;
if(a==0){PWM_PAC=0;
for(b=0;
b>
0xffffffff;
b++)//延时
_nop_();
}
}
//配置I/O端口
voidPORT_Init(void)
{
XBR0=0x08;
/*CEX0-->
P0.0*/
XBR2=0x40;
/*使能交叉开关和弱闪拉*/
P0MDOUT|=0x01;
/*使能P0.0脚推挽输出*/
//配置PCA的CEX0输出8位PWM信号
voidPCA_Init(void)
PCA0CN=0x40;
PCA0CPM0=0x42;
PCA0CPL0=0x00;
PCA0CPH0=0x00;
3.H桥驱动电路设计方案
3.1H桥驱动电路原理
图1.4.2中所示为一个典型的直流电机控制电路。
电路得名于"
H桥驱动电路"
是因为它的形状酷似字母H。
4个三极管组成H的4条垂直腿,而电机就是H中的横杠。
H桥式电机驱动电路包括4个三极管和一个电机。
要使电机运转,必须导通对角线上的一对三极管。
根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
要使电机运转,必须使对角线上的一对三极管导通。
例如,如图1.4.3所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。
按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。
当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。
图1.4.4所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。
当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
3.2H桥驱动硬件电路
基于三极管的使用机理和特性,在驱动电机中采用H桥功率驱动电路,H桥功率驱动电路可应用于步进电机、交流电机及直流电机等的驱动.永磁步进电机或混合式步进电机的励磁绕组都必须用双极性电源供电,也就是说绕组有时需正向电流,有时需反向电流,这样绕组电源需用H桥驱动。
直流电机控制使用H桥驱动电路(图2-5),当PWM1为低电平,通过对PWM2输出占空比不同的矩形波使三极管Q1、Q6同时导通Q5截止,从而实现电机正向转动以及转速的控制;
同理,当PWM2为高电平,通过对PWM1输出占空比不同的矩形波使三极管Q1、Q6同时导通,Q6截止,从而实现电机反向转动以及转速的控制。
图8H桥的电机驱动电路
4.电机正转反转及调速的设计
4.1电机软件设计流程图
图11软件电机控制的方框图
4.2电机软件设计
程序实现功能:
K2实现电机的正转&
反转
K3对电机进行减速
K4对电机进行加速
K5停止电机转动
源程序:
while
(1)
//PCON|=0x01;
//setIDLEmode
while(i--);
while(j--);
while(k--);
while(l--);
if(P3==0xef){//K2zhengzhuan
Delayms();
//配置CEX0
PCA0CPL0=0x80;
//initializePCAPWMvalue
PCA0CPH0=0x80;
//CCM0in8-bitPWMmode
//enablePCAcounter
//配置CEX1
PCA0CPL1=0xff;
PCA0CPH1=0xff;
PCA0CPM1=0x02;
P1=0x01;
if(P3==0xfb){//K4放进K2
PCA0CPL0=PCA0CPL0+0x40;
PCA0CPH0=PCA0CPH0+0x40;
PCA0CPM0=PCA0CPM0+0x40;
}
if(P3==0xfd){//K5
Delayms();
PCA0CPL0=PCA0CPL0-0x40;
PCA0CPH0=PCA0CPH0-0x40;
PCA0CPM0=PCA0CPM0-0x40;
//enablePCAcounter
}//enablePCAcounter
/************************************************************/
if(P3==0xf7){//K3fanzhuan
PCA0CPL0=0xff;
PCA0CPH0=0xff;
PCA0CPM0=0x02;
PCA0CPL1=0x80;
PCA0CPH1=0x80;
PCA0CPM1=0x42;
P1=0x02;
/
if(P3==0xfb){//K4放进K2
PCA0CPL0=128;
PCA0CPH0=128;
PCA0CPL1=50;
PCA0CPH1=50;
if(P3==0xfd){//K5
PCA0CPL0=40;
PCA0CPH0=40;
PCA0CPL1=80;
PCA0CPH1=80;
程序解释:
K2键
设变量f进行奇偶数的判断,如果f%2==1则设定为正转,f%2==0,则设定为反转
流程图如下:
if(keyboard==1)//K2正转&
if(f%2==1){//正转
if(f%2==0){//反转
加速控制
程序
if(P3==0xfb){//K4放进K2