一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

电机控制方法、装置及系统与流程

2022-12-31 20:35:54 来源:中国专利 TAG:


1.本技术涉及电机控制领域,特别是涉及一种电机控制方法、装置及系统。


背景技术:

2.电机是一种广泛应用于医疗仪器及设备、计算机外设及存储、精密仪器、工业控制系统、机器人等领域的机电转换设备。在电机运行过程中,经常需要对电机的运动状态进行控制,以实现电机的准确、高效运行,并要求电机的控制方法灵活、多样、简单,从而降低系统的使用成本和应用难度。目前电机的控制方式有多种,其中通过fpga结合电机控制芯片进行电机控制是一种重要控制方式。在该控制方式中,上位机、fpga和电机控制芯片依次连接,上位机将用于控制电机的整个数据包下发到fpga的内存中,再通过fpga与电机控制芯片的连接将数据包中的配置数据逐条发送到电机控制芯片,以进行电机控制。如果要改变数据包中的部分数据,需要更新并重新下发整个数据包,或者重新编译程序来修改配置数据,这种应用方式的灵活性较差、配置效率低。
3.针对相关技术中存在的通过fpga向电机控制芯片下发配置数据灵活性较差、配置效率低的问题,目前还没有提出有效的解决方案。


技术实现要素:

4.在本实施例中提供了一种电机控制方法、装置及系统,以解决相关技术中存在的通过fpga向电机控制芯片下发配置数据灵活性较差、配置效率低的问题。
5.第一个方面,在本实施例中提供了一种电机控制方法,该方法包括:
6.基于第一总线接收数据包,所述数据包用于配置电机控制器的运行参数;及
7.基于第二总线接收寄存器数据,所述寄存器数据用于配置电机控制器的运行参数;
8.确定所述数据包和所述寄存器数据的发送顺序;
9.基于所述发送顺序依次将所述数据包和所述寄存器数据发送至所述电机控制器。
10.在其中的一些实施例中,所述确定所述数据包和所述寄存器数据的发送顺序包括:
11.根据所述数据包的第一预设优先级和所述寄存器数据的第二预设优先级,确定所述发送顺序。
12.在其中的一些实施例中,在所述基于第一总线接收数据包之后,所述方法还包括:
13.将所述数据包存入第一缓存;
14.基于所述数据包对应的第一缓存地址,依次读取所述数据包中的配置数据,所述配置数据按照预设的配置顺序排列。
15.在其中的一些实施例中,在所述基于第二总线接收寄存器数据之后,所述方法还包括:
16.将所述寄存器数据按照接收时间顺序依次存入第二缓存;
17.基于所述接收时间顺序,依次读取所述寄存器数据。
18.在其中的一些实施例中,所述电机控制器的运行参数包括:所述电机控制器的初始化参数、所述电机控制器对应电机的找零配置参数、所述电机控制器对应电机的正常工作配置参数三者中的至少一种。
19.在其中的一些实施例中,在所述基于所述发送顺序依次将所述数据包和所述寄存器数据发送至所述电机控制器之后,所述方法还包括:
20.确定所述电机控制器对应的电机是否重启;
21.在所述电机重启的情况下,重新接收所述数据包和所述寄存器数据,并将所述数据包和所述寄存器数据重新发送给所述电机控制器。
22.在其中的一些实施例中,在所述基于所述发送顺序依次将所述数据包和所述寄存器数据发送至所述电机控制器之后,所述方法还包括:
23.基于对所述电机控制器的实时控制需求,接收更新数据包和/或更新寄存器数据,所述更新数据包基于所述数据包修改获得;所述更新寄存器数据基于所述寄存器数据修改获得;
24.将所述更新数据包和/或所述更新寄存器数据发送至所述电机控制器。
25.在其中的一些实施例中,所述方法还包括:
26.接收所述电机控制器发送的状态数据;
27.基于所述状态数据,生成对应的数据包和寄存器数据;
28.基于所述第一总线,将所述数据包发送给上位机;及/或
29.基于所述第二总线,将所述寄存器数据发送给所述上位机。
30.第二个方面,在本实施例中提供了一种电机控制装置,所述电机控制装置包括:
31.第一接收模块,用于基于第一总线接收数据包,所述数据包用于配置电机控制器的运行参数;
32.第二接收模块,用于基于第二总线接收寄存器数据,所述寄存器数据用于配置电机控制器的运行参数;
33.确定模块,用于确定所述数据包和所述寄存器数据的发送顺序;
34.发送模块,用于基于所述发送顺序依次将所述数据包和所述寄存器数据发送至所述电机控制器。
35.第三个方面,在本实施例中提供了一种电机控制系统,其特征在于,所述电机控制系统包括用于控制电机运行的电机控制器,用于输入并发送数据包和寄存器数据的上位机,以及执行如第一个方面所述的电机控制方法,基于第一总线接收所述数据包,基于第二总线接收所述寄存器数据,并基于所述数据包和所述寄存器数据对所述电机控制器进行配置的处理器。
36.与相关技术相比,在本实施例中提供的电机控制方法,通过基于第一总线接收数据包,该数据包用于配置电机控制器的运行参数,实现了按照电机配置流程生成的配置数据包的整体接收,提高了数据接收效率;通过基于第二总线接收寄存器数据,该寄存器数据用于配置电机控制器的运行参数,实现了电机配置数据的逐条实时接收,在用户根据控制需求实时修改配置数据的情况下,及时获得更新后的配置数据;通过确定该数据包和该寄存器数据的发送顺序,根据数据包和寄存器数据的接收时间和数据配置需求确定发送顺
序,避免了按照错误顺序配置导致配置失败的问题;通过基于发送顺序依次将数据包和寄存器数据发送至电机控制器,实现了配置数据的灵活、高效、有序的接收和下发,解决了通过fpga向电机控制芯片下发配置数据灵活性较差、配置效率低的问题。
37.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。
附图说明
38.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
39.图1是本技术一些实施例的电机控制方法的应用环境示意图;
40.图2是本技术一些实施例的电机控制方法的流程图;
41.图3是本技术一些实施例的数据包结构示意图;
42.图4是本技术一些实施例的电机配置数据格式示意图;
43.图5是本技术一些实施例的数据包的缓存和读取流程图;
44.图6是本技术一些实施例的寄存器数据的缓存和读取流程图;
45.图7是本技术一些实施例的电机状态数据的反向传输的流程图;
46.图8是本技术一些优选实施例的电机控制方法的流程图;
47.图9是本技术一些实施例的电机控制装置的结构框图。
具体实施方式
48.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
49.除另作定义外,本技术所涉及的技术术语或者科学术语应具有本技术所属技术领域具备一般技能的人所理解的一般含义。在本技术中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本技术中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本技术中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本技术中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本技术中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
50.在本实施例中提供的电机控制方法,可以应用于如图1所示的应用环境中。图1是本实施例的电机控制方法的应用环境示意图。其中,上位机11通过第一总线和第二总线与处理器13连接;处理器13与电机控制器15连接。上位机11与处理器13的第一总线和第二总线可以基于pcie总线接口、aurora总线接口等高速总线接口进行通信。在总线接口为pcie
的情况下,第一总线可以是axi4-mm总线,第二总线可以是axi4-lite总线,或者也可以使用avalon总线作为第一总线和第二总线。处理器13与电机控制器15之间可以基于i2c总线、spi总线等总线协议进行通信。处理器13可以是具有指令执行、存储、总线传输等功能的可编程逻辑器件或soc器件如fpga,上位机11可以是具有指令编辑输入、数据输出显示功能的交互终端,电机控制器15可以是用于控制电机按照预设的配置数据运行的电机控制芯片。需要注意的是,基于图1的应用环境以及连接关系,电机控制器15还可以换成其他可通过处理器13进行参数配置的外部设备,例如通信/网络设备、音视频处理设备等,在此并不对该外部设备的种类进行限制。
51.在本实施例中提供的电机控制方法,具体可以在处理器13中执行,处理器13可以包括一个或多个用于存储数据的存储单元,存储单元用于存储本实施例中提供的电机控制方法对应的执行程序。处理器13还可以包括用于进行总线传输的通信单元,该通信单元可以通过第一总线和第二总线与上位机11进行通信,以及与电机控制器15进行通信。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对本实施例提供的电机控制方法的应用环境造成限制。例如,该应用环境还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
52.在本实施例中提供了一种电机控制方法,图2是本实施例的电机控制方法的流程图,如图2所示,该流程包括如下步骤:
53.步骤s201,基于第一总线接收数据包,该数据包用于配置电机控制器的运行参数。
54.根据电机控制流程,可以预先自定义数据包的格式,根据该格式通过上位机将所有用于配置电机控制器运行参数的配置数据进行封装,生成数据包,该数据包中的配置数据按照电机控制器进行运行参数配置所需要的先后顺序排列。然后通过第一总线,接收上位机一次性下发的数据包,将数据包中的配置数据按照自身的排列顺序逐条发送给电机控制器,完成运行参数的配置。
55.在一些实施例中,电机控制器的运行参数包括:电机控制器的初始化参数、电机控制器对应电机的找零配置参数、电机控制器对应电机的正常工作配置参数三者中的至少一种。
56.数据包中各配置数据的排列顺序可以根据配置数据所实现的功能确定。例如,图3是一些实施例中的数据包结构示意图,如图3所示,数据包300包括数据包包头301,用于区别于其他数据包;还包括实现三种不同功能的数据块,即控制芯片初始化数据块302、电机找零配置数据块303,以及电机正常工作配置304。根据电机的配置顺序可知,首先进行电机控制芯片的寄存器初始化配置,然后进行电机的找零配置,最后进行电机的正常工作配置。每个数据块中的配置数据可以按照实现该功能所需要的配置顺序排列。上位机按照该排序对配置数据进行排列,生成数据包,并将该数据包一次性下发给处理器,处理器将数据包缓存后,按照数据包各配置数据的排列顺序发送给电机控制器并依次进行配置,避免出现配置错误。数据包可以缓存在处理器内部的ram中,也可以使用片外的sram、ddr等进行缓存。
57.步骤s202,基于第二总线接收寄存器数据,该寄存器数据用于配置电机控制器的运行参数。
58.与数据包中包含用于配置电机运行参数所需要的全部配置数据相比,寄存器数据是指对某一个运行参数进行单独配置的配置数据,它可以是数据包中的任一条或多条配置
数据。基于第二总线接收该配置数据后,可以将其存放在寄存器中。图4是一些实施例中的电机配置数据格式示意图,如图4所示,该电机配置数据400包括地址段401和数据段402。其中,地址段401用于存放电机控制器的寄存器地址,数据段402用于存放写入该寄存器地址的数据值。
59.在进行电机的运行参数配置时,上位机与处理器之间除了使用数据包的方式进行配置数据的一次性传输外,还可以使用寄存器数据的方式进行逐句传输。这一配置方式相对于数据包方式效率较低,但使用方式更为灵活。例如,寄存器数据可以是电机的电流、电压参数,也可以是用于控制电机的运动方向、控制电机启停的指令。在实际应用中,使用者可以根据实际需求实时控制电机的运动状态,例如控制电机停止,控制电机改变转动方向等,此时可以使用寄存器数据的方式对电机的某个运行参数进行配置,以改变电机的运动状态。寄存器数据可以只有一条配置数据,也可以为多条配置数据连续下发。当接收到多条配置数据时,可以按照接收顺序缓存到寄存器中,并按照该顺序发送给电机控制器并依次进行配置,避免出现配置错误。
60.步骤201和步骤202的顺序可以调换。
61.步骤s203,确定该数据包和该寄存器数据的发送顺序。
62.当处理器在同一时间段内既接收到数据包,又接收到寄存器数据,或在将数据包中的配置数据依次发送给电机控制器的时间段内又接收到寄存器数据时,需要考虑以何种顺序将两种数据发送给电机控制器。该顺序可以根据事先确定的配置数据的优先级确定,也可以根据接收时间顺序,或不同缓存的顺序确定。例如,可以预先设置优先发送ram数据,将ram数据全部发送完毕后再发送寄存器数据。该发送顺序的规则在此不进行限制。
63.步骤s204,基于该发送顺序依次将数据包和寄存器数据发送至电机控制器。
64.根据该发送顺序,读取存储在缓存或寄存器中的数据包或寄存器数据,将配置数据逐条发送给电机控制器,并确定电机控制器完成对应的配置后,再进行下一条配置数据的读取和发送。
65.通过上述步骤s201~s204,通过基于第一总线接收数据包,该数据包用于配置电机控制器的运行参数,实现了按照电机配置流程生成的配置数据包的整体接收,提高了数据接收效率;通过基于第二总线接收寄存器数据,该寄存器数据用于配置电机控制器的运行参数,实现了电机配置数据的逐条实时接收,在用户根据控制需求实时修改配置数据的情况下,及时获得更新后的配置数据;通过确定该数据包和该寄存器数据的发送顺序,根据数据包和寄存器数据的接收时间和数据配置需求确定发送顺序,避免了按照错误顺序配置导致配置失败的问题;通过基于发送顺序依次将数据包和寄存器数据发送至电机控制器,实现了配置数据的灵活、高效、有序的接收和下发,解决了通过fpga向电机控制芯片下发配置数据灵活性较差、配置效率低的问题。
66.在其中的一些实施例中,涉及确定数据包和寄存器数据发送顺序的具体方法。该方法包括:
67.根据数据包的第一预设优先级和寄存器数据的第二预设优先级,确定发送顺序。
68.在数据包所在缓存和寄存器数据均存在待发数据的情况下,可以通过优先级设置确定数据包和寄存器数据中配置数据的发送顺序。优先级设置可以通过处理器中的仲裁模块来实现。可以预先在仲裁模块中设置优先级的设置规则,例如,根据实现的功能的重要
度,或电机配置所要求的先后顺序设置数据包、数据块或配置数据的优先级;在同一数据包中,可以根据配置数据的排列顺序设置配置数据的优先级等。
69.本实施例的电机控制方法,通过基于优先级确定数据包和寄存器数据的发送顺序,避免了配置顺序错误导致配置失败的问题。
70.在一些实施例中,可以将一个待发送的数据包作为一个整体,将该数据包的优先级设置为第一预设优先级,将寄存器数据的第一条配置数据的优先级设置为第二预设优先级,这里的第一条配置数据是指按照接收顺序排列的第一条寄存器数据。比较第一预设优先级和第二预设优先级的大小,并将优先级较高的一方先发送到电机控制器。完成发送后,如果还存在待发送的数据包和寄存器数据时,再次判断两者的优先级,确定发送顺序。
71.在另外的一些实施例中,可以将待发送数据包中的一个数据块作为一个整体,该数据块对应电机配置的一个功能模块,如图3中的控制芯片初始化数据块302、电机找零配置数据块303,或电机正常工作配置304。可以将一个待发送的数据块的优先级设置为第一预设优先级,将寄存器数据的第一条配置数据的优先级设置为第二预设优先级,根据两者的优先级比较结果确定发送顺序。
72.在另外的一些实施例中,还可以将每一条配置数据设置对应的优先级。根据数据包或寄存器数据中的配置数据对应的优先级,确定每一条配置数据的发送顺序。在这种情况下,存在同一数据块的配置数据在逐条发送过程中被寄存器数据中断的风险,可以通过如下步骤避免:
73.步骤s11,确定数据块中是否有至少一条配置数据完成发送;
74.在数据包所在缓存和寄存器数据均存在待发数据的情况下,仲裁模块可以根据数据块的格式,确定当前数据块中是否有至少一条配置数据完成发送。例如,可以根据数据块中配置数据的排列顺序,确定当前待发数据是不是该数据块的首条配置数据。如果不是,则说明该数据块已有配置数据完成发送。
75.步骤s12,在有至少一条配置数据完成发送的情况下,将该数据块中未发送的配置数据的优先级设置为最高优先级。
76.通过上述步骤s11~s12,通过在数据块中有至少一条配置数据完成发送的情况下,将该数据块中未发送的配置数据的优先级设置为最高优先级优先发送,避免寄存器数据中断同一数据块的配置数据的发送,避免电机控制芯片配置错误的问题。
77.在其中的一些实施例中,涉及基于第一总线接收数据包之后,对数据包进行缓存和读取的具体流程,图5是本实施例的数据包的缓存和读取流程图,如图5所示,该流程包括如下步骤:
78.步骤s501,将数据包存入第一缓存。
79.第一缓存可以是处理器的ram,或片外的sram/ddr等。以ram为例,将通过第一总线接收到的数据包存入第一缓存,获得对应的第一缓存地址。
80.步骤s502,基于该数据包对应的第一缓存地址,依次读取该数据包中的配置数据,该配置数据按照预设的配置顺序排列。
81.根据第一缓存地址,按照数据包中各配置数据的排列顺序依次读取配置数据,并按照该顺序向电机控制器发送配置数据。
82.通过上述步骤s501~s502,通过将数据包存入第一缓存确定数据包的存储位置和
读取方式;通过基于该数据包对应的第一缓存地址,依次读取该数据包中的配置数据,确定了同一数据包中配置数据的读取和发送顺序,避免出现电机控制器的配置错误。
83.在其中的一些实施例中,涉及基于第二总线接收寄存器数据之后,对寄存器数据进行缓存和读取的具体流程,图6是本实施例的寄存器数据的缓存和读取流程图,如图6所示,该流程包括如下步骤:
84.步骤s601,将寄存器数据按照接收时间顺序依次存入第二缓存。
85.第二缓存可以是处理器的fifo寄存器,该寄存器遵循先入先出规则,按照接收并存入该寄存器的时间顺序依次读取。
86.步骤s602,基于接收时间顺序,依次读取该寄存器数据。
87.根据接收时间,确定寄存器数据的排列顺序,根据该排列顺序依次读取配置数据,并按照该顺序向电机控制器发送配置数据。
88.通过上述步骤s601~s602,通过将寄存器数据存入第二缓存确定寄存器数据的存储位置;通过基于接收时间顺序,依次读取该寄存器数据确定了寄存器数据的读取和发送顺序,避免出现电机控制器的配置错误。
89.在一些实施例中,寄存器数据还可以包括地址映射数据。地址映射数据是指该寄存器数据的地址段不是用于指定电机控制器的某个寄存器并进行某种操作,而是用于映射到处理器ram中的某个地址空间。通过第二总线接收到地址映射数据后,根据该地址映射数据的地址段所保存的值,确定ram中对应的第一缓存地址,根据该第一缓存地址获取对应的配置数据,并将该配置数据发送给电机控制器。例如,假设寄存器数据的地址段共有1024个地址可用,可以预先指定一些地址用于进行地址映射。例如,可以预先指定地址0000_a008用于读取存储在处理器ram中的数据包中的电机找零配置数据块,并将该配置数据块中的配置数据依次发送给电机驱动器。当读取该寄存器数据并发现地址段的地址为0000_a008时,则找到与该地址对应的第一缓存地址,即电机找零配置数据的存储地址,然后依次读取配置数据并发送给电机控制器。
90.本实施例中的电机控制方法,通过将寄存器数据通过地址映射找到缓存中对应的第一缓存地址,根据第一缓存地址找到对应的配置数据并依次下发,提供了一种电机控制的灵活方式,在只需接收一条寄存器数据的情况下,完成与数据块功能对应的运行参数配置,提高了电机配置效率和灵活性。
91.在其中的一些实施例中,涉及电机重启情况下的电机控制流程,该流程包括如下步骤:
92.步骤s21,确定电机控制器对应的电机是否重启。
93.重启是指电机或整个电机控制系统的断电重启,包括意外或正常流程中发生的断电重启。在断电重启情况下,需要重新完成电机控制器的初始化、电机找零等配置工作。可以根据电机控制器的状态信号确定电机是否进行断电重启。
94.步骤s22,在该电机重启的情况下,重新接收数据包和寄存器数据,并将数据包和寄存器数据重新发送给电机控制器。
95.本实施例中的电机控制方法,通过确定电机是否重启并在电机重启的情况下重新接收、向电机控制器发送数据包和寄存器数据,给出了电机重启情况下重新进行运行参数配置的方式,提高了电机控制流程的完整度。
96.在其中的一些实施例中,还涉及电机运行参数的更新和重复配置的流程。在基于发送顺序依次将数据包和寄存器数据发送至电机控制器之后,该流程包括如下步骤:
97.步骤s31,基于对电机控制器的实时控制需求,接收更新数据包和/或更新寄存器数据,该更新数据包基于数据包修改获得;该更新寄存器数据基于寄存器数据修改获得。
98.在实际应用中,操作人员可以根据实时控制需求随时通过上位机编辑并下发更新后的配置数据。根据该控制需求的内容,可以选择使用数据包方式、寄存器方式,或两者兼有的方式下发。例如,可以使用数据包方式下发整个电机配置流程的全部配置数据,然后通过寄存器数据方式选择数据包中的某个数据块执行配置。数据包和寄存器数据中的配置数据可以是根据原有的数据包和寄存器数据中的配置数据修改获得。例如,修改原配置数据中的电机转动方向,或修改电机的运行电流值等。
99.步骤s32,将该更新数据包和/或该更新寄存器数据发送至电机控制器。
100.通过第一总线接收上位机发送的更新数据包,通过第二总线接收上位机发送的更新寄存器数据,并按照上述实施例的电机控制方法将该更新数据包和/或该更新寄存器数据发送至电机控制器,完成数据的重新配置。
101.通过上述步骤s31~s32,通过基于对电机控制器的实时控制需求,接收更新数据包和/或更新寄存器数据并发送至电机控制器,满足用户对电机的实时控制需求,提高电机配置效率和及时性。
102.在其中的一些实施例中,还涉及获取电机状态数据并传输给上位机用于显示的具体流程,图7是本实施例的电机状态数据的反向传输流程图,如图7所示,该流程包括如下步骤:
103.步骤s701,接收电机控制器发送的状态数据。
104.状态数据可以包括电机控制器的电压或电流值、电机转动的位置、方向等。可以预先指定电机控制器的寄存器地址,将状态数据存储在对应的寄存器中。当需要读取状态数据时,向电机控制器发送读取信号,并接收电机控制器逐条上传的状态数据。
105.步骤s702,基于该状态数据,生成对应的数据包和寄存器数据。
106.将接收到的状态数据分别发送到第一缓存和第二缓存中,也可以单独发送到第一缓存或第二缓存。发送顺序在此不进行限制。第一缓存可以是处理器的ram,或片外的sram、ddr等存储资源。第二缓存可以是处理器的fifo寄存器。在第一缓存中,将多条状态数据按照预先确定的数据包格式封装为数据包;在第二缓存中则根据状态数据接收的时间顺序依次存储,生成寄存器数据。
107.步骤s703,基于第一总线,将该数据包发送给上位机。
108.基于处理器中用于进行总线传输的通信单元,该状态数据构成的数据包可以通过第一总线一次性发送给上位机,上位机将状态数据显示在对应区域,以供操作人员作为电机控制的参考数据。
109.步骤s704,基于第二总线,将该寄存器数据发送给该上位机。
110.基于通信单元,将寄存器数据通过第二总线发送给上位机,上位机根据寄存器数据更新状态数据并进行显示。
111.步骤s703和步骤s704可调换顺序。
112.通过上述步骤s701~s704,通过接收电机控制器发送的状态数据,获得电机控制
器的实时运行状态;通过基于该状态数据,生成对应的数据包和寄存器数据,按照第一总线和第二总线对应的数据格式将状态数据转换为数据包和寄存器数据,以便于后续的传输;通过基于第一总线和第二总线,分别将数据包和寄存器数据发送给上位机,完成状态数据的传输和显示,为操作人员提供操作参考。
113.下面通过优选实施例对本实施例进行描述和说明。
114.图8是本优选实施例的电机控制方法的流程图。本优先实施例中的电机为步进电机,处理器为fpga,电机控制器为步进电机控制芯片。第一总线为axi4-mm总线,第二总线为axi4-lite总线。第一缓存为fpga的ram,第二缓存为fpga的fifo寄存器。如图8所示,该流程包括如下步骤:
115.步骤s801,电机控制系统上电初始化;
116.步骤s802,基于axi4-mm总线接收数据包,该数据包用于完成电机的全套控制流程;
117.步骤s803,根据axi4-mm总线协议解析数据包,并将数据包存入ram中,ram中的数据包可以进行实时更新、重复配置;
118.步骤s804,基于数据包对应的ram地址,依次读取数据包中的配置数据,该配置数据按照预设的配置顺序排列;当一条配置数据完成步进电机控制芯片端的配置后,再进行下一条配置数据的读取;
119.步骤s805,基于axi4-lite总线接收寄存器数据,该寄存器数据用于配置电机控制器的运行参数;
120.步骤s806,根据axi4-lite总线协议解析寄存器数据,按照接收时间顺序存入fifo寄存器,fifo中的寄存器数据可以进行实时更新、重复配置;
121.步骤s807,基于先进先出规则,依次读取寄存器数据,当一条配置数据完成步进电机控制芯片端的配置后,再进行下一条配置数据的读取;
122.步骤s802~s804与步骤s805~s807的顺序可以调换。
123.步骤s808,当ram和fifo中均有数据待发送时,根据数据包的第一预设优先级和寄存器数据的第二预设优先级进行仲裁,确定数据包和寄存器数据的发送顺序;
124.步骤s809,基于该发送顺序依次将数据包和寄存器数据发送至步进电机控制芯片完成配置;
125.步骤s810,接收步进电机控制芯片发送的状态数据;
126.步骤s811,基于状态数据,生成对应的状态数据包和状态寄存器数据;
127.步骤s812,基于axi4-mm总线将状态数据包发送给上位机;
128.步骤s813,基于axi4-lite总线将状态寄存器数据发送给上位机;
129.步骤s812与步骤s813的顺序可以调换。
130.步骤s814,确定步进电机控制芯片对应的电机是否重启;在电机重启的情况下,重复步骤s801~s813。
131.通过上述步骤s801至s814,通过axi4-mm总线和axi4-lite总线分别接收配置数据的数据包和寄存器数据,并进行实时更新、重复配置,丰富了参数配置方式,提高了参数配置的灵活性和效率;通过根据数据包和寄存器数据的优先级确定发送顺序,避免了按照错误顺序配置导致配置失败的问题;通过基于发送顺序依次将数据包和寄存器数据发送至电
机控制器,实现了配置数据的灵活、高效、有序的接收和下发,解决了通过fpga向电机控制芯片下发配置数据灵活性较差、配置效率低的问题;通过将步进电机控制芯片的状态数据封装为数据包和寄存器数据,并发送给上位机,实现了电机状态数据的传输和显示,为操作人员提供操作参考。
132.需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
133.在一些实施例中,本技术还提供了一种电机控制装置,该电机控制装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。
134.在一些实施例中,图9是本实施例的电机控制装置的结构框图,如图9所示,该电机控制装置包括:
135.第一接收模块91,用于基于第一总线接收数据包,该数据包用于配置电机控制器的运行参数;
136.第二接收模块92,用于基于第二总线接收寄存器数据,该寄存器数据用于配置电机控制器的运行参数;
137.确定模块93,用于确定数据包和寄存器数据的发送顺序;
138.发送模块94,用于基于该发送顺序依次将数据包和寄存器数据发送至电机控制器。
139.本实施例中提供的电机控制装置,通过第一接收模块91基于第一总线接收数据包,该数据包用于配置电机控制器的运行参数,实现了按照电机配置流程生成的配置数据包的整体接收,提高了数据接收效率;通过第二接收模块92基于第二总线接收寄存器数据,该寄存器数据用于配置电机控制器的运行参数,实现了电机配置数据的逐条实时接收,在用户根据控制需求实时修改配置数据的情况下,及时获得更新后的配置数据;通过确定模块93确定该数据包和该寄存器数据的发送顺序,根据数据包和寄存器数据的接收时间和数据配置需求确定发送顺序,避免了按照错误顺序配置导致配置失败的问题;通过发送模块94基于发送顺序依次将数据包和寄存器数据发送至电机控制器,实现了配置数据的灵活、高效、有序的接收和下发,解决了通过fpga向电机控制芯片下发配置数据灵活性较差、配置效率低的问题。
140.在一些实施例中,确定模块包括确定子模块,确定子模块用于根据数据包的第一预设优先级和寄存器数据的第二预设优先级,确定发送顺序。
141.本实施例中提供的电机控制装置,通过确定子模块基于优先级确定数据包和寄存器数据的发送顺序,避免了配置顺序错误导致配置失败的问题。
142.在一些实施例中,该电机控制装置还包括第一存入模块和第一读取模块,第一存入模块用于将数据包存入第一缓存;第一读取模块用于基于数据包对应的第一缓存地址,依次读取数据包中的配置数据,该配置数据按照预设的配置顺序排列。
143.本实施例中提供的电机控制装置,通过第一存入模块将数据包存入第一缓存确定数据包的存储位置和读取方式;通过第一读取模块基于该数据包对应的第一缓存地址,依次读取该数据包中的配置数据,确定了同一数据包中配置数据的读取和发送顺序,避免出
现电机控制器的配置错误。
144.在一些实施例中,该电机控制装置还包括第二存入模块和第二读取模块,第二存入模块用于将寄存器数据按照接收时间顺序依次存入第二缓存;第二读取模块用于基于该接收时间顺序,依次读取寄存器数据。
145.本实施例中提供的电机控制装置,通过第二存入模块将寄存器数据存入第二缓存确定寄存器数据的存储位置;通过第二读取模块基于接收时间顺序,依次读取该寄存器数据确定了寄存器数据的读取和发送顺序,避免出现电机控制器的配置错误。
146.在一些实施例中,该电机控制装置还包括重启确定模块和重启传输模块,重启确定模块用于确定电机控制器对应的电机是否重启;重启传输模块用于在该电机重启的情况下,重新接收数据包和寄存器数据,并将数据包和寄存器数据重新发送给电机控制器。
147.本实施例中提供的电机控制装置,通过重启确定模块确定电机是否重启;通过重启传输模块在电机重启的情况下重新接收、向电机控制器发送数据包和寄存器数据,给出了电机重启情况下重新进行运行参数配置的方式,提高了电机控制流程的完整度。
148.在一些实施例中,该电机控制装置还包括更新接收模块和更新发送模块,更新接收模块用于基于对电机控制器的实时控制需求,接收更新数据包和/或更新寄存器数据,该更新数据包基于数据包修改获得;该更新寄存器数据基于寄存器数据修改获得;更新发送模块用于将更新数据包和/或更新寄存器数据发送至电机控制器。
149.本实施例中提供的电机控制装置,通过更新接收模块和更新发送模块,基于对电机控制器的实时控制需求,接收更新数据包和/或更新寄存器数据并发送至电机控制器,满足用户对电机的实时控制需求,提高电机配置效率和及时性。
150.在一些实施例中,该电机控制装置还包括第三接收模块、生成模块、第一发送模块和第二发送模块;第三接收模块用于接收电机控制器发送的状态数据;生成模块用于基于状态数据,生成对应的数据包和寄存器数据;第一发送模块用于基于第一总线,将该数据包发送给上位机;第二发送模块用于基于第二总线,将该寄存器数据发送给上位机。
151.本实施例中提供的电机控制装置,通过第三接收模块接收电机控制器发送的状态数据,获得电机控制器的实时运行状态;通过生成模块基于该状态数据,生成对应的数据包和寄存器数据,按照第一总线和第二总线对应的数据格式将状态数据转换为数据包和寄存器数据,以便于后续的传输;通过第一发送模块和第二发送模块,基于第一总线和第二总线,分别将数据包和寄存器数据发送给上位机,完成状态数据的传输和显示,为操作人员提供操作参考。
152.在一些实施例中,本技术还提供了一种电机控制系统,该电机控制系统包括用于控制电机运行的电机控制器,用于输入并发送数据包和寄存器数据的上位机,以及执行上述实施例中提供的电机控制方法,基于第一总线接收数据包,基于第二总线接收寄存器数据,并基于该数据包和寄存器数据对电机控制器进行配置的处理器。
153.本实施例中提供的电机控制系统,通过上位机编辑并输入电机运行参数的配置数据,并基于控制需求选择配置数据的下发方式,通过第一总线下发数据包和/或第二总线下发寄存器数据,实现了配置数据包的整体接收与逐条实时接收两种方式的混合使用,提高了数据配置的灵活度和配置效率;在用户根据控制需求实时修改配置数据的情况下,提高了数据配置的便捷度和实时性;通过处理器接收数据包和寄存器数据并确定发送顺序,避
免了按照错误顺序配置导致配置失败的问题;通过电机控制器接收数据包和寄存器数据中的配置数据并进行相应的配置,提高了电机控制的效率和灵活性。
154.此外,结合上述实施例中提供的电机控制方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种电机控制方法。
155.需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
156.应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本技术提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本技术保护范围。
157.显然,附图只是本技术的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本技术适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本技术披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本技术公开的内容不足。
[0158]“实施例”一词在本技术中指的是结合实施例描述的具体特征、结构或特性可以包括在本技术的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本技术中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
[0159]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献