一种stm32控制多路步进电机同步运行的控制系统的制作方法

文档序号:10954731阅读:6894来源:国知局
一种stm32控制多路步进电机同步运行的控制系统的制作方法
【专利摘要】本实用新型公开了一种STM32控制多路步进电机同步运行的控制系统,其中,包括一STM32单片机、步进电机驱动器和多路步进电机,所述STM32单片机和所述步进电机驱动器电连接,步进电机驱动器驱动步进电机,单片机控制多路步进电机同步运行,采用本实用新型可利用单片机的定时器资源模拟FPGA里的CLK时钟信号,把定时器中断函数里的代码执行时间近似成一个时刻点(相对于低速的步进电机),来模拟FPGA的并行执行效果,对多路电机进行同步控制,控制灵活,成本低。
【专利说明】
一种STM32控制多路步进电机同步运行的控制系统
技术领域
[0001]本实用新型涉及单片机控制系统领域,尤其涉及的是一种STM32单片机控制多路步进电机同步运行的控制系统。
【背景技术】
[0002]在嵌入式控制领域里,步进电机是工业控制中的一种常用执行部件,具有控制灵活、价格低等优点,因而在许多设备和装置中常被采用。而对多个步进电机进行同步控制,传统的嵌入式解决方案是采用FPGA或CPLD等芯片。采用FPGA芯片虽然可以精确地对多路步进电机进行同时控制,但其成本高昂。由于单片机里的程序是一条条顺序执行的,对多个步进电机的控制也只能是一个紧接着一个顺序地进行。若要采用单片机实现对N个电机的同步控制,则要用N+1块单片机;其中的N块单片机负责单独驱动N个电机,另外的一块负责整体控制,通过串口命令对其他的N个电机进行控制,这样也可以达到同步控制的目的,但是非常浪费单片机资源。
[0003]因此,现有技术还有待于改进和发展。
【实用新型内容】
[0004]本实用新型的目的在于提供一种STM32控制多路步进电机同步运行的控制系统及控制方法,以解决现有技术中同步控制步进电机存在如下问题:
[0005]1.采用FPGA或CPLD等芯片虽然可以精确地对多路电机同时控制,但其成本高昂。
[0006]2.若要采用单片机实现对N个电机的同步控制则要用N+1块单片机,
[0007]非常浪费单片机资源。
[0008]本实用新型的技术方案如下:
[0009]一种STM32控制多路步进电机同步运行的控制系统,其中,包括一STM32单片机、步进电机驱动器和多路步进电机,所述STM32单片机和所述步进电机驱动器连接,步进电机驱动器驱动步进电机,单片机控制多路步进电机同步运行。
[0010]所述的STM32控制多路步进电机同步运行的控制系统,其中,所述每一路步进电机配置有一个用于复位的位置传感器。
[0011]所述的STM32控制多路步进电机同步运行的控制系统,其中,所述STM32单片机包括至少一组用于推挽输出的GP10,GP10连接所述步进电机驱动器,驱动电平信号经比较放大后输出到多路步进电机上。
[0012]所述的STM32控制多路步进电机同步运行的控制系统,其中,所述STM32单片机还包括外部中断,所述外部中断配置为上拉输入并和所述位置传感器连接,用于接收电机复位信号。
[0013]所述的STM32控制多路步进电机同步运行的控制系统,其中,所述STM32单片机还包括定时器,所述定时器用于产生某一频率的时钟信号,控制电机运行的步数和运行的速度。
[0014]所述的STM32控制多路步进电机同步运行的控制系统,其中,所述STM32单片机还包括一与外界通讯的RS232串口。
[0015]本实用新型的有益效果:本实用新型利用单片机的定时器资源模拟FPGA里的CLK时钟信号,把定时器中断函数里的代码执行时间近似成一个时刻点(相对于低速的步进电机),来模拟FPGA的并行执行效果,对多路电机进行同步控制,控制灵活,成本低。
【附图说明】
[0016]图1是本实用新型中STM32控制多路步进电机同步运行的控制系统电路图。
[0017]图2是本实用新型中单片机的主程序流程图。
[0018]图3是本实用新型中单片机中串口中断流程图。
[0019]图4是本实用新型中定时器的中断函数流程图。
【具体实施方式】
[0020]为使本实用新型的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本实用新型进一步详细说明。
[0021]参阅图1,本实用新型提供一种STM32控制多路步进电机同步运行的控制系统,其中,包括一 STM32单片机1、步进电机驱动器2和多路步进电机3,所述STM32单片机I和所述步进电机驱动器2连接,步进电机驱动器驱动步进电机3,单片机控制多路步进电机3同步运行。
[0022]进一步地,所述每一路步进电机3配置有一个用于复位的位置传感器31。在本实用新型中,步进电机用于照相机或其他成像设备的镜头、机身的自动对焦、电子变焦,位置传感器31用于准确探测步进电机3的准确位置以使步进电机3精确复位。
[0023]进一步地,所述STM32单片机I包括若干用于推挽输出的GP111,GP1011连接所述步进电机驱动器2,驱动电平信号经比较放大后输出到多路步进电机3上。
[0024]进一步地,所述STM32单片机还包括外部中断12,所述外部中断12配置为上拉输入并和所述位置传感器31连接,用于接收步进电机3的复位信号。
[0025]进一步地,所述STM32单片机I还包括定时器13,所述定时器13用于控制步进电机运行的步数。步进电机3收到一个脉冲,需要延时大约250微秒才能运行,如果步进电机3接收到的脉冲频率过快则会造成步进电机3不能启动。在本实施例中,定时器13频率设定为40K,定时器中断函数每隔25微秒就会被调用一次。
[0026]进一步地,所述STM32单片机I还包括一个与外界通讯的RS232串口 14。
[0027]参阅图2,图2是单片机主程序流程图,单片机上电后开始对串口、GP10、定时器以及外部中断进行初始化。初始化完成后复位步进电机3,若是步进电机3没有检测到位置传感器31程序将停止前进并提示错误信息,否则程序进入到一个主循环。在该循环里,程序每隔5毫秒获取消息队列中的消息,如消息队列为空,没有获得命令,则等待5毫秒后继续获取;如果获取到的消息不为空,则执行相应的命令。如果命令执行成功,等待5毫秒后继续重复如上操作;如果命令执行失败,再次尝试执行,如果尝试3次后都失败,丢弃该命令并提示错误信息。
[0028]图3是串口中断函数流程图,串口14初始化完成后串口中断函数就可响应外部事件。当串口 14收到命令后,中断函数首先对命令做解析,解析完毕后把命令存放到消息队列中通知主函数读取,然后跳转到主函数里。
[0029]参阅图4,本实用新型STM32单片机控制多路电机同步运行的控制工作流程如下:
[0030]步骤a:单片机主函数执行电机初始化函数,对步进电机进行初始化,根据具体应用来设定定时器的频率,在本实施例中,由于电机的运行的最高频率为4K,因此设置定时器频率为40K,留有供电机加减速的调节的余地;
[0031]步骤b:根据用户需求,调用用户需求的步进电机运行函数,将相应电机的运行参数通过全局变量传递到定时器中断函数中,在中断函数里设置对应电机的开关、电机速度等参数;
[0032]步骤c:若有电机运行函数被调用,则触发定时器中断函数,执行步骤d操作,否则执行步骤m操作。
[0033]步骤d:如果第一路步进电机函数有调用,执行步骤e操作,否则执行i操作。
[0034]步骤e:在定时器内,打开对应电机的开关,再根据对应电机的速度参数值设置需要等待的定时器时钟个数;
[0035]步骤f:在没有触发到位传感器的情况下,执行步骤g操作;否则跳转至步骤h执行操作。
[0036]步骤g:电机先加速运行,达到指定的速度后开始匀速运行,在最后预计的步数内做减速运动,最后停止在预定的位置上,然后跳转至步骤i执行操作。
[0037]步骤h:电机减速到用户预设值后,再反向运行一定步数。
[0038]步骤1:程序进入下一个电机的执行函数入口。
[0039]步骤j:如果第二路电机函数有调用,执行步骤e-h操作;否则执行步骤i操作。
[0040]步骤k:如果第三路电机函数有调用,执行步骤e-h操作;否则执行步骤i操作。
[0041 ]步骤I:直至最后第N路电机函数被调用,程序重复步骤e-h操作;否则执行步骤m操作。
[0042 ] 步骤m:退出定时器中断函数,返回主程序执行。
[0043]虽然实质上单片机并非严格意义上的同时发送脉冲给多路步进电机3,而是按照先后顺序对各路步进电机3发送脉冲,但由于单片机执行一条指令时间大约十几到几十纳秒,相对于低速运行的步进电机(脉冲间延时至少需要250微秒)而言,整个中断函数里的所有代码可以认为在同一时刻完成的,再加上中断函数每隔25微秒执行一次,所以可以等效成FPGA的并行效果。本实用新型利用单片机的定时器资源模拟FPGA里的CLK同步时钟信号,把定时器中断函数里的代码执行时间近似成一个时刻点(相对于低速的步进电机),来模拟FPGA的并行执行效果,对多路电机进行同步控制,控制灵活,成本低。
[0044]当然,本实用新型控制多路步进电机同步运行的控制系统不仅仅应用于STM32单片机,本实用新型同样可以应用于其他型号的单片机。
[0045]应当理解的是,本实用新型的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本实用新型所附权利要求的保护范围。
【主权项】
1.一种STM32控制多路步进电机同步运行的控制系统,其特征在于,包括一 STM32单片机、步进电机驱动器和多路步进电机,所述STM32单片机和所述步进电机驱动器连接,步进电机驱动器驱动步进电机,单片机控制多路步进电机同步运行。2.根据权利要求1所述的STM32控制多路步进电机同步运行的控制系统,其特征在于,所述每一路步进电机配置有一个用于复位的位置传感器。3.根据权利要求2所述的STM32控制多路步进电机同步运行的控制系统,其特征在于,所述STM32单片机包括至少一组用于推挽输出的GP1,GP1连接所述步进电机驱动器,驱动电平信号经比较放大后输出到多路步进电机上。4.根据权利要求3所述的STM32控制多路步进电机同步运行的控制系统,其特征在于,所述STM32单片机还包括外部中断,所述外部中断配置为上拉输入并和所述位置传感器连接,用于接收电机复位信号。5.根据权利要求1所述的STM32控制多路步进电机同步运行的控制系统,其特征在于,所述STM32单片机还包括定时器,所述定时器用于产生某一频率的时钟信号,控制电机运行的步数和运行的速度。6.根据权利要求1所述的STM32控制多路步进电机同步运行的控制系统,其特征在于,所述STM32单片机还包括一与外界通讯的RS232串口。
【文档编号】G05B19/042GK205644131SQ201620190683
【公开日】2016年10月12日
【申请日】2016年3月11日
【发明人】韩防, 安昕, 张浠
【申请人】佛山市南海区欧谱曼迪科技有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1