基于双单片机通信的无刷直流电动机控制系统的设计

[09-12 16:04:35]   来源:http://www.88dzw.com  单片机学习   阅读:8958

文章摘要:4 测速电路如果要对直流无刷电动机的转速进行精确控制,首先要对它的转速进行精确测量。笔者利用转子位置传感器所产生的脉冲信号来反映电机的转速。将传感器输出端接到单片机的P15口,随着电机的转动,单片机不断的接收到高低电平。当单片机检测到一个下跳沿时开始启动定时器T1工作,直到接收到下一个相邻的下跳沿时为止。相继两个高电平之间的时间与电机的转速成正比,可以测量出电动机的转速。5 双单片机控制电路5.1 设计原理在本设计方案中,用单片机来控制无刷直流电机的起动、换相、调速、正反转及停车。在设计中,由于程序在测量转速时,有一个等待延时时间,如果电动机转速较低,则传感器传输的两个高电平间隔较大,则必然影

基于双单片机通信的无刷直流电动机控制系统的设计,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com


  4 测速电路

  如果要对直流无刷电动机的转速进行精确控制,首先要对它的转速进行精确测量。笔者利用转子位置传感器所产生的脉冲信号来反映电机的转速。将传感器输出端接到单片机的P15口,随着电机的转动,单片机不断的接收到高低电平。当单片机检测到一个下跳沿时开始启动定时器T1工作,直到接收到下一个相邻的下跳沿时为止。相继两个高电平之间的时间与电机的转速成正比,可以测量出电动机的转速。

  5 双单片机控制电路

  5.1 设计原理

  在本设计方案中,用单片机来控制无刷直流电机的起动、换相、调速、正反转及停车。在设计中,由于程序在测量转速时,有一个等待延时时间,如果电动机转速较低,则传感器传输的两个高电平间隔较大,则必然影响到电机换向,使电机失步而停车。为避免这种情况,在设计时使用了两片89C52单片机,其中一块为主单片机,一块为从单片机。从单片机主要负责控制电动机的换相时机。当从单片机接收到转子位置检测电路的转子位置信息后,由其P1口向逻辑保护电路发出两路信号,逻辑保护电路将接收到的信号反相后传输给六只IGBT的栅极驱动电路,从而控制定子绕组的换相时机。主单片机负责测量转速,并将测到的实际转速与给定转速比较,将比较结果通过串行口TXD传送到从单片机。从单片机接收到信息后,在换相时机不变的前提下,改变定子国绕组电流通电时间,从而达到调整的目的。单片机接法如图6所示。


  5.2 串行口双机通信

  在串行通信中,接收、发送双方向波特率必须一致。因此,首先要设定通信波特率,根据需要设置合理的发送接收速率。主单片机程序在复位时,初始化串行传送控制寄存器SCON,设置SCON=0x40,此时采用串行传输模式一。令SMOD=1,TMOD=0x21,定时器T1设为方式二,初值设为0xff,则波特率为62.5kbit/s。主单片机采用定时发送数据方式,从单片机接收数据采用中断方式。首先要对串行口进行初始化,定义SCON使REN=1,且要开CPU及串行口中断,使EA=1,ES=1。接收到数据后,接上中断标志位RI为1,程序进入中断服务程序,先关中断,然后将SBUF接收到的数据取出,再使RI清零并开中断退出中断服务程序。具体思路是:主单片机将测量的转速与设定转速比较,如果过大,则通过串行口向从单片机发出数字0;如果过小,则向从单片机发出数字1;如果相等,则向从单片机发出数字2。从单片机通过中断读取信息,如果SBUF里数的为0,则增大换相延时时间,降低电机转速,直至接收到2为止;如果SBUF里的数为1,则减小换相延时时间,以增大电机转速,直至接收到2为止;如果SBUF里的数为2,则换相延时时间不变,电机保持在当前速度下运行。


  5.3 串行通信软件设计

  整个软件采用C51语言编写,全部模块化编程。主单片机程序模块主要包括测速程序、设定速度程序、速度显示程序,其主函数流程图如图7所示。从单片机程序模块主要包括正转、反转及停车程序、调整程序、串行中断服务程序,其主函数流程图及中断函数流程图如图8、图9所示。



  本文设计并实现的无刷直流电动机控制系统,在实验室已调试成功。该电路软件仿真和硬件实现已通过验证,取得了很好的效果。实践证明本设计可行有效。


上一页  [1] [2] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行