一种角位移可控的多路步进电机控制系统的制作方法

专利查询4月前  35



1.本发明属于工业自动化系统中的运动控制领域,特别涉及一种角位移可控的多路步进电机控制系统。


背景技术:

2.fpga(field programmable gate array)是一种数字集成电路数字芯片,可根据实际需求对其进行配置,从而得到具有相应功能的电路,其应用比较广泛。与传统的单片机相比,fpga编程灵活且计算速度快(并行),因此越来越多地应用于运动控制领域。
3.步进电机的控制根据核心单元的不同可以分为多种类型。通过查询,核心控制单元为可编程逻辑控制器(plc)时,plc的工作周期长,控制精度差,这种方式通常用于单轴步进电机的控制。采用专用控制芯片进行控制,其速度快、控制精度高,但其成本较高而且内部的功能和接口已经固化,大大降低了系统的灵活性。使用单片机对步进电机进行控制通常以定时器的方式产生控制脉冲,占用了较为可观的系统资源,频率受到限制。后来出现的高端微处理器arm,虽然可以对多路步进电机进行控制,但这种方式对于arm的性能要求较高,且编程复杂,不利于系统的集成。
4.对于多轴步进电机的控制,有多种方式。已形成专利的可分为三类,其中具有代表性的有:
5.1、专利《模块化多轴步进电机运动控制系统》(专利号202022444689.x)中采用运动控制器(通常为mcu或dsp)加驱动器的方式,通过将各单元进行模块化设计并用快速电缆相连,这种方法原件多且电路复杂,不利于小型化,成本较高。
6.2、《基于stm32控制l6470h驱动器的多轴步进电机控制系统》(专利号201710932658.x)基于arm的控制方法,这种控制方法通常适用于三轴步进电机的控制,当需要对更多路步进电机控制时,需要多个arm核心,同样不利于集成。
7.3、《一种基于fpga的sopc多轴联动运动控制器及控制系统》(专利号cn10810927126.1)中方法对于处理器的性能要求较高,且编程复杂适合于大型的运动控制系统。如果采用基于fpga的软核处理器的控制方法,则占用的fpga资源较多且系统运行频率受到软核处理器的限制。


技术实现要素:

8.本发明目的是:提供一种基于fpga的多路步进电机控制系统,通过上位机将控制信息传递给fpga,fpga对控制指令识别后将其发送给不同通道的驱动脉冲发生模块,产生对应频率的驱动脉冲传递给步进电机驱动器,能够实现对于不同电机频率以及角位移等的控制。
9.本发明的技术方案是:
10.一种角位移可控的多路步进电机控制系统,包括上位机、fpga和多路驱动器,每路驱动器分别连接驱动一路步进电机;所述fpga通过外围uart与上位机进行串行通信,fpga
中包括:
11.串口数据读取模块,接收上位机传来的控制指令;
12.数据解析模块,对接收到的每一帧数据进行解析,将其分配给不同控制器;
13.角位移控制模块,对步进电机的角位移进行控制;
14.脉冲发生器,根据接收的指令控制向步进电机发送驱动脉冲;
15.锁相环,将时钟频率倍频后传递给各个模块;
16.fpga的系统顶层中,例化了各电机的控制模块并将实际输入控制指令作为信号源分配给对应模块。
17.优选的,所述串口数据读取模块,包括依次连接的同步寄存器、数据寄存器、波特率时钟生成模块、采样数据接收模块;
18.同步寄存器对上位机输入的数据进行同步,消除亚稳态,存入数据寄存器;波特率时钟生成模块首先计算出波特率周期,除以系统时钟周期得到采样时钟分频计数值,通过计算器生成波特率时钟;采样接收模块对每一位数据进行采样。
19.优选的,所述数据解析模块,包括依次连接的计数器、帧结束判定模块、数据提取模块,以及与数据提取模块连接的移位寄存器;
20.由上位机传输的数据寄存到移位寄存器中;计数器对串口数据接收成功标志信号计数,判断当前帧是否结束,产生高脉冲表示传输完成;数据提取模块根据地址提取每一帧数据位,传递给对应的寄存器作为输出。
21.优选的,所述角位移控制模块包括依次连接的边沿检测、计数器、电机使能控制模块;
22.步进电机每运行一定步数,驱动器会有一个反馈脉冲;对反馈脉冲进行边沿检测并计数,通过对比指令信号和步进电机实际运行步数对电机的角位移进行控制。
23.优选的,所述脉冲发生模块包括步进电机使能控制模块、步进电机加减速是能模块、定时计数模块、驱动脉冲频率控制模块、分频计数模块、步进脉冲生成模块;
24.时钟频率通过定时计数器产生步进电机的起始频率;加减速使能模块通过对比目标频率和当前频率,控制电机加减速运动;定时计数模块计数满20ms当前频率发生变化;使用除法器计算出当前脉冲频率所需要的计数值,从系统时钟分频产生当前频率的驱动脉冲控制电机运行;电机的启停按键控制,按下按键后,步进电机使能模块向驱动器发出驱动有效信号。
25.本发明的优点是:
26.本发明角位移可控的多路步进电机控制系统,充分利用fpga丰富的逻辑资源,在设计顶层列化各控制模块,然后将接收到的控制指令分析和处理后分配到各个模块对不同的步进电机进行控制。与现有的控制系统相比,具有小型化、逻辑资源利用率高和开放性好的特点。
附图说明
27.下面结合附图及实施例对本发明作进一步描述:
28.图1为本发明角位移可控的多路步进电机控制系统的结构框图;
29.图2是串口数据读取模块结构框图;
30.图3是数据解析模块电路结构框图;
31.图4是角位移控制模块电路结构框图;
32.图5是脉冲发生模块电路结构框图。
具体实施方式
33.如图1所示,本发明的角位移可控的多路步进电机控制系统,包括上位机、fpga和多路驱动器,每路驱动器分别连接驱动一路步进电机;所述fpga通过外围uart与上位机进行串行通信,fpga中包括:
34.串口数据读取模块(uart byte read),接收上位机传来的控制指令;
35.数据解析模块(uart frame parse),对接收到的每一帧数据进行解析,将其分配给不同控制器;
36.角位移控制模块(step num),对步进电机的角位移进行控制;
37.脉冲发生器(step motor controller),根据接收的指令控制向步进电机发送驱动脉冲;
38.锁相环(pll),将时钟频率倍频后传递给各个模块;
39.led控制器(led controller),当步进电机开始运行时,对应的led灯会被点亮led灯会被点亮;
40.fpga的系统顶层中,例化了各电机的控制模块并将实际输入控制指令作为信号源分配给对应模块。
41.本发明方案充分利用fpga丰富的逻辑资源,在设计顶层列化各控制模块,然后将接收到的控制指令分析和处理后分配到各个模块对不同的步进电机进行控制。uart byte read模块的接口如表1所示,可以通过外围的串口转usb与上位机通信。数据解析模块的接口如表2所示,根据每一帧数据的自定义帧格式对其进行解析,然后传递给相应的控制器。表3是角位移控制模块的接口,能够根据步进电机驱动器反馈信号控制电机运动的步数。表4是脉冲发生模块的信号,可以控制步进电机以直线或s形曲线加减速运动。
42.表1串口数据读取端口
43.管脚名称类型描述clk输入时钟rst输入复位rs232_rx输入rs232数据输入baud_set输入波特率设置data byte输出并行数据输出rx_done输出一次数据接收完成标志
44.表2数据解析模块端口
45.管脚名称类型描述clk输入时钟rst输入复位rx_int输入字节接收成功信号data_byte输入指令
step输出运行步数frequency_target输出目标频率
46.表3角位移控制模块端口
47.管脚名称类型描述clk输入时钟rst输入复位stepper_home_pulse输入反馈脉冲step输入运行步数swich输入开关stepper_work_en输出使能信号
48.表4驱动脉冲生成模块端口
49.管脚名称类型描述clk输入时钟rst输入复位frequency_target输入目标频率step_work_en输入步进电机使能frequency_current输出当前频率step_motor_clk输出电机驱动脉冲step_work_en_n输出驱动脉冲输出有效信号
50.如图2所示,所述串口数据读取模块,包括依次连接的同步寄存器、数据寄存器、波特率时钟生成模块、采样数据接收模块。上位机输入的数据相对于系统时钟是个异步信号,因此先要对其进行同步,同步寄存器对上位机输入的数据进行同步,消除亚稳态,存入数据寄存器。数据采样需要生产波特率时钟。波特率时钟生成模块首先计算出波特率周期,除以系统时钟周期得到采样时钟分频计数值,通过计算器生成波特率时钟;采样接收模块对每一位数据进行采样。
51.如图3所示,所述数据解析模块,包括依次连接的计数器、帧结束判定模块、数据提取模块,以及与数据提取模块连接的移位寄存器。本系统采用自定义帧的方式来进行数据传输。一帧数据包含8个字节,分为帧头、地址、数据、帧尾四个部分。由上位机传输的数据寄存到移位寄存器中;计数器对串口数据接收成功标志信号计数,判断当前帧是否结束,产生高脉冲表示传输完成;数据提取模块根据地址提取每一帧数据位,传递给对应的寄存器作为输出。
52.如图4所示,所述角位移控制模块,包括依次连接的边沿检测、计数器、电机使能控制模块;步进电机每运行一定步数,驱动器会有一个反馈脉冲;对反馈脉冲进行边沿检测并计数,通过对比指令信号和步进电机实际运行步数对电机的角位移进行控制。
53.如图4所示,所述脉冲发生模块包括步进电机使能控制模块、步进电机加减速是能模块、定时计数模块、驱动脉冲频率控制模块、分频计数模块、步进脉冲生成模块。
54.时钟频率通过定时计数器产生步进电机的起始频率;加减速使能模块通过对比目标频率和当前频率,控制电机加减速运动;定时计数模块计数满20ms当前频率发生变化;使用除法器计算出当前脉冲频率所需要的计数值,从系统时钟分频产生当前频率的驱动脉冲
控制电机运行;电机的启停按键控制,按下按键后,步进电机使能模块向驱动器发出驱动有效信号。
55.本实施例采用二相混合式步进电机,起始频率为500hz。加减速使能模块通过对比目标频率和当前频率,控制电机加减速运动。经过实测,目标频率为5000hz时电机运行平稳,频率变化的时间间隔为20ms,每次增加或减少100hz。定时计数模块计数满20ms当前频率发生变化。
56.上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明主要技术方案的精神实质所做的修饰,都应涵盖在本发明的保护范围之内。

技术特征:
1.一种角位移可控的多路步进电机控制系统,其特征在于,包括上位机、fpga和多路驱动器,每路驱动器分别连接驱动一路步进电机;所述fpga通过外围uart与上位机进行串行通信,fpga中包括:串口数据读取模块,接收上位机传来的控制指令;数据解析模块,对接收到的每一帧数据进行解析,将其分配给不同控制器;角位移控制模块,对步进电机的角位移进行控制;脉冲发生器,根据接收的指令控制向步进电机发送驱动脉冲;锁相环,将时钟频率倍频后传递给各个模块;fpga的系统顶层中,例化了各电机的控制模块并将实际输入控制指令作为信号源分配给对应模块。2.根据权利要求1所述的角位移可控的多路步进电机控制系统,其特征在于,所述串口数据读取模块,包括依次连接的同步寄存器、数据寄存器、波特率时钟生成模块、采样数据接收模块;同步寄存器对上位机输入的数据进行同步,消除亚稳态,存入数据寄存器;波特率时钟生成模块首先计算出波特率周期,除以系统时钟周期得到采样时钟分频计数值,通过计算器生成波特率时钟;采样接收模块对每一位数据进行采样。3.根据权利要求2所述的角位移可控的多路步进电机控制系统,其特征在于,所述数据解析模块,包括依次连接的计数器、帧结束判定模块、数据提取模块,以及与数据提取模块连接的移位寄存器;由上位机传输的数据寄存到移位寄存器中;计数器对串口数据接收成功标志信号计数,判断当前帧是否结束,产生高脉冲表示传输完成;数据提取模块根据地址提取每一帧数据位,传递给对应的寄存器作为输出。4.根据权利要求3所述的角位移可控的多路步进电机控制系统,其特征在于,所述角位移控制模块包括依次连接的边沿检测、计数器、电机使能控制模块;步进电机每运行一定步数,驱动器会有一个反馈脉冲;对反馈脉冲进行边沿检测并计数,通过对比指令信号和步进电机实际运行步数对电机的角位移进行控制。5.根据权利要求4所述的角位移可控的多路步进电机控制系统,其特征在于,所述脉冲发生模块包括步进电机使能控制模块、步进电机加减速是能模块、定时计数模块、驱动脉冲频率控制模块、分频计数模块、步进脉冲生成模块;时钟频率通过定时计数器产生步进电机的起始频率;加减速使能模块通过对比目标频率和当前频率,控制电机加减速运动;定时计数模块计数满20ms当前频率发生变化;使用除法器计算出当前脉冲频率所需要的计数值,从系统时钟分频产生当前频率的驱动脉冲控制电机运行;电机的启停按键控制,按下按键后,步进电机使能模块向驱动器发出驱动有效信号。

技术总结
本发明公开了一种角位移可控的多路步进电机控制系统,包括上位机、FPGA和多路驱动器,每路驱动器分别连接驱动一路步进电机;所述FPGA通过外围UART与上位机进行串行通信,FPGA中包括:串口数据读取模块、数据解析模块、角位移控制模块、脉冲发生器、发送驱动脉冲、锁相环,FPGA的系统顶层中,例化了各电机的控制模块并将实际输入控制指令作为信号源分配给对应模块。本发明充分利用FPGA丰富的逻辑资源,在设计顶层列化各控制模块,然后将接收到的控制指令分析和处理后分配到各个模块对不同的步进电机进行控制。与现有的控制系统相比,具有小型化、逻辑资源利用率高和开放性好的特点。点。点。


技术研发人员:邱靖超 汪健 徐叔喜 张磊
受保护的技术使用者:中国兵器工业集团第二一四研究所苏州研发中心
技术研发日:2021.12.10
技术公布日:2022/3/8

最新回复(0)