无刷直流马达驱动整合系统及驱动方法与流程

文档序号:18101823发布日期:2019-07-06 11:24阅读:215来源:国知局
本发明为提供一种无刷直流马达驱动整合系统及方法,特别是可通过fpga芯片整合控制多个无刷直流马达的驱动装置以及驱动方法。
背景技术
::现有的bldc(无刷直流马达,brushlessdcmotor)驱动模块中,大部分是针对单个bldc进行驱动,其所采用单个arm架构建置而成的mcu(微控制单元)以驱动单个bldc。例如,某现有技术揭示了一种bldc控制系统,就是采用以arm架构形成的mcu发出马达控制信号以驱动bldc。配合霍尔传感器侦测马达运转方向以及采样电阻侦测运转速度,并将侦测数值直接回传给mcu,以使mcu发出下一时间的控制信号,实时调整马达控制信号。此mcu亦具有判断是否关断马达的手段。经由判断马达运作时的电流是否超过电流阈值,以决定是否关断马达。但是,本发明的无刷直流电机控制系统只能控制单个bldc,不能一次同时控制多个bldc。如果在同一时间内同时需要驱动多个bldc,就要使用多个arm芯片构成的驱动模块来驱动bldc。请参考图1,是另一件现有技术的无刷直流马达驱动装置架构的示意图。此无刷直流马达驱动装置可以驱动至少3个bldc。且其架构类似于传统驱动单个bldc的bldc控制系统,靠着在驱动电路版中新增加的中央处理器当成主控端(master),以驱动多个bldc从端(slave)。此中央处理器也可以实时接收多个bldc运转时所传来的回馈信号,以当做下一时间发驱动电路板发出bldc驱动信号的参考。但是,若是要驱动较多个bldc,例如驱动10个bldc时,就需要10个arm芯片,这样就会造成驱动电路版占据空间变大;即便将驱动电路版中的中央处理器、arm芯片、电机驱动电路与霍尔码盘处理电路集成芯片化,遇到要驱动多个bldc仍需要较大的芯片面积。而且,驱动越多bldc时,中央处理器变更硬件架构的手续是越繁杂的。另一方面,bldc所要用到的pwm资源较多,单个bldc需要与6个互补的pwm信号相接,也就是图1中的一个pwm401有6个互补的pwm信号,而arm架构下所建立的单个arm芯片的集成电路管脚最多只能连接32个互补pwm信号,所以单个arm芯片不可能与超过6个的bldc资源相连接。而且多个驱动模块是经由多个总线分别控制多个bldc,总线通讯机制的延迟时间较长,例如图2所示的,单个pwm401所发出的控制信号的时间与由霍尔码盘处理电路30所实时侦测到的hall信号就会存在了时间差τ1与τ2,τ1是在3ms至5ms之间的任一个值,τ2是在4ms至6ms,这样就造成多个驱动模块不能有效实现电机控制的同步性(一般单个电机控制的同步性是指τ1与τ2小于10us)。所以现有的bldc驱动模块根本不能实现高精度的、多个bldc的同步协调控制。再者,对于驱动多个输出功率超过1000瓦bldc的bldc驱动模块,因为bldc驱动模块中,多个arm芯片需集成在一小面积的印刷电路板(后简称为pcb)上,且pcb表面的铺铜会因流过的大电流所产生的超过额定功率的大功率及高温而存在烧毁的风险。多个arm芯片集成到一块pcb上,各个绕线距离过近,也容易有相互干扰问题。另外,本发明提供一种无刷直流马达驱动方法,包括以下步骤:利用fpga芯片同时接收与处理来自多个无刷直流马达的多个霍尔码盘数据,并存储至fpga芯片中的霍尔计数存储器与码盘计数存除器;利用arm芯片读取存储于fpga芯片中的霍尔码盘数据;采集无刷直流马达中的多个bldc电流值数据,并将bldc电流值数据传递至arm芯片;运用arm芯片将霍尔码盘数据与bldc电流值数据运算,以生成电机控制值并发送至fpga芯片;运用fpga芯片,将电机控制值转换成多个同步地电机控制讯号,以控制无刷直流马达。使用本发明所提供的无刷直流马达驱动方法,用户可以通过输入所欲控置的bldc种类与数量输入不同的信号到fpga芯片中,让fpga芯片参考这些用户输入的信号运算生成多个同步地电机控制讯号,借此同步控制多个bldc。不需要复杂的方式,使用者只要输入资料,就可以让bldc的同步控制简单又快速的实施。技术实现要素:为了改善现有技术所提及的缺失,本发明的目的是提供一种无刷直流马达驱动整合系统。为达上述目的,本发明提供一种无刷直流马达驱动整合系统,用以驱动多个无刷直流马达,包括:adc,用以采集无刷直流马达中的bldc电流值数据;arm芯片,用以将fpga芯片中的无刷直流马达的霍尔码盘数据经过总线读取后,并根据无刷直流马达的霍尔码盘数据计算得到电机控制值,电机控制值经由总线回传至fgpa芯片;以及fpga芯片,用以接收arm芯片发出的电机控制值,以及用以存储无刷直流马达的霍尔码盘数据,并且,fpga芯片具有多个nmos;其中,fpga芯片根据电机控制值控制对应的多个nmos管开路或是闭合,并在闭合时发出bldc电流值,借此,时间同步地驱动多个无刷直流马达。基于上述,本发明通过在无刷直流马达驱动装置中设置fpga芯片,在不需要改变原有fpga芯片硬件,以及增加额外的控制硬件下,直接以集成电路方式插置一个fpga芯片,就可以针对单个bldc,以及多个的bldc进行同步控制。只需要预先将控制程式写入既有的fpga芯片即可驱动6个以下数量的芯片,不但减少无刷直流马达驱动装置的设置体积,又可以减少修改无刷直流马达驱动装置时所耗费的时间与金钱成本,方便又快速。另外,本发明可以解决总线通讯延迟不能多电机实现有效同步控制问题。拥有足够多的pwm硬件资源,解决现有技术中硬件资源不足问题。利用铜排条代替传统无刷直流马达驱动装置中的pcb走线,可使驱动大电流(大于100安培)在铜排条上流动,而大电流不经过pcb板可解决多个大功率电机集成到一块板子上带来的无法提升驱动店电流的问题。再者,利用fpga芯片的硬件并行处理优势去处理bldc的霍尔码盘数据,处理后的数据存储在fpga芯片中,arm芯片通过总线从fpga芯片中读取经过处理的码盘数据,同时arm芯片高速采集bldc的电流值数据,arm芯片利用采集到的码盘和bldc电流数据,通过算法计算出电机控制值,通过总线发送给fpga芯片,fpga芯片利用自身丰富的硬件资源与其所构成的nmos晶体管,降低信号的输入输出延迟时间,让输入输出延迟时间小于ms级别,达到us级别,将控制信息输出给电机驱动电路,实现对多路电机的实时同步控制,较现有的无刷直流马达驱动模块更具竞争力。另外,本发明提供一种无刷直流马达驱动方法,包括以下步骤:除了运用arm芯片将霍尔码盘数据与bldc电流值数据运算,以生成电机控制值并发送至fpga芯片;运用fpga芯片,将电机控制值转换成多个同步地电机控制讯号,以控制无刷直流马达,更包括判断bldc电流值数据是否超过阈值电流;当bldc电流值数据未超过阈值电流时,将不是0的bldc电流值数据回传至arm芯片,利用arm芯片运算获得不是0的电机控制值,并回传给fpga芯片;当bldc电流值数据超过阈值电流时,运用adc直接将bldc电流值数据转成0并回传至arm芯片,利用arm芯片运算获得是0的电机控制值,并回传给fpga芯片,以关断无刷直流马达。使用本发明所提供的无刷直流马达驱动方法,不仅可以生成多个同步的bldc电流值,以让控制板时间同步地控制每一个bldc,而且,通过阈值电流判断手段,实时保护bldc,让bldc操作时电流不过载,维护bldc运作安全。附图说明图1是现有技术的无刷直流马达驱动装置的架构示意图;图2是现有技术的无刷直流马达驱动装置各个电路管脚的信号波形图;图3是根据本发明所述的技术,表示无刷直流马达驱动整合系统的架构图;图4是根据本发明所述的技术,表示无刷直流马达驱动整合系统中,arm芯片的详细架构图;图5是根据本发明所述的技术,表示无刷直流马达驱动整合系统中,fpga芯片的架构图;图6是根据本发明所述的技术,表示无刷直流马达驱动整合系统各个电路管脚的信号波形图;图7是根据本发明所述的技术,表示无刷直流马达驱动方法中一般驱动程序的执行流程图;以及图8是根据本发明所述的技术,表示无刷直流马达驱动方法中判定程序的执行流程图。具体实施方式为了使本发明的目的、技术特征及优点,能更为相关
技术领域
:人员所了解,并得以实施本发明,在此配合所附的图式、具体阐明本发明的技术特征与实施方式,并列举较佳实施例进步说明。以下文中所对照的图式,为表达与本发明特征有关的示意,并未亦不需要依据实际情形完整绘制。而关于本案实施方式的说明中涉及本领域技术人员所熟知的技术内容,亦不再加以陈述。首先请参考图3,图3表示无刷直流马达驱动整合系统的架构图。图3所揭露的无刷直流马达驱动整合系统用以驱动多个bldc。在无刷直流马达驱动整合系统中,主要包含了fpga(field-programmablegatearray,现场可编程门阵列)芯片及arm(advancedriscmachines,高阶精简指令集机器)芯片等等信号处理以及控制用的芯片。另外还包含了pwm、电机驱动电路以及霍尔码盘处理电路等等驱动bldc用信号的电路模块。图3显示了arm芯片的简单架构图。arm芯片,是建立在32位元精簡指令集(risc)架构下的處理器,一般是作为解釋与转译所接收的指令后,并发出新的指令的信号处理装置。采用精简指令集架构组成无刷直流马达动整合系统的原因是,精简指令集是不含微码(microcode)的,不含微码的设计会让arm芯片使用的电晶体数量减少,减低晶片设计复杂度与晶片面积。arm芯片内部包括ahb总线、adc(analogtodigitalconverter,模拟数码转换器)、cortex_m3、usart、通信模块以及dma通道等等的模块。arm芯片内部各个模块都通过ahb总线进行数据传输与相互沟通。在本具体实施方式中,arm芯片内部的数据是以32位元的数据形式相互沟通,但本发明并不限于此。adc是将由模拟电路所采集的bldc电流值数据,数据形式从模拟形式(analog)转变成为数码形式(digital),以使这些数据在arm芯片中是可读写的(readable/writable)并且是可被运算的(computable)。因为arm芯片可读写的信号是数码形式的信号,所以需要通过adc进行讯号格式转变。在一个具体实施方式中,adc是采用公司所生产的8通道24比特(8channel-24bits),数据取样率(samplingrate)最大可达到250ksps,型号为ad7689的adc芯片,使用此型号芯片的原因是可节约arm引脚资源,同时保留一定的adc采样精度,并且同一时间处理16比特的数据,可以提高信息处理效能。cortex_m3是算术逻辑单元(alu),具有多个逻辑门,以进行数据运算(computing)。arm芯片中的各种运算都需要通过cortex_m3这个模块进行。usart(universalsynchronousasynchronousreceivertransmitter,通用同步/非同步收發傳輸器)以及dma通道(directmemoryaccesschannel,直接记忆体存取通道)是构成一个与外部个人计算机传递与接收信号的传递接收器,是具与其他设备有数据交换的用途。此传递接收器中,usart负责将cortex_m3运算出的、需要控制外部个人计算机的指令数据格式通过ahb总线取得,并且转换后,通过dma通道传递给外部个人计算机。相同的,外部个人计算机的数据也通过dma通道进入arm芯片中,在经过ahb总线给usart进行数据处理后再送至cortex_m3运算。将dma通道独立于cortex_m3设计原因是,dma通道所外接的装置,在处理数据时,不占用cortex_m3资源,两者独立分别运行,这样可减低在运算时cortex_m3的负担。通信模块也是一种传递接收器,但在本发明中,它的功能是让arm芯片与fpga芯片传递接收资讯用。fpga芯片是一种专用集成电路(asic),而且是一种半定制电路。用户可以借由硬体描述语言描述一个具有特定功能的逻辑电路后,再经过硬体描述语言软体(例如verilog)逻辑总合、布局、组译以及布线软体的转换后,快速的烧录至fpga芯片上,以让此逻辑电路致能及运作。在其它时间,若是用户需要变更或是修改逻辑电路的功能时,可修改硬体描述语言后,重新经由逻辑总合、布局以及布线软体的转换后,至fpga芯片上,以让新的逻辑电路致能及运作。所以,若是改变电路的功能,就不需要改变电路中的硬件就可以达成,方便又快速。本发明就运用此优势,当所需要控制bldc的数量改变时,通过改变硬体描述语言(程式码)的内容,运用fpga芯片的上述特点,捕获、存储无刷直流马达的霍尔码盘数据与电机控制值,現場编程程式后,就可以增加控制bldc的数量,而不需要一再改变硬件架构,非常方便。在本发明中,用户可以将其所需要的控制指令,通过用户端装置(图3未显示)中的硬体描述语言编程后,并烧录到fpga芯片后,就可以实施对单个或是多个bldc的控制。在本发明中,arm芯片是通过其内部的通信模块,并且经由另外的总线(图3未示)由fpga芯片中读取经过处理的所述霍尔码盘数据,通信模块通过ahb总线将经过处理的所述霍尔码盘数据传递给cortex_m3,与其他数据进行计算,即进行解释与转译,以获得电机控制值。再经由ahb总线以及额外的总线(图3未示)将电机控制值回传至fpga芯片(发出新的指令),借此,fpga芯片根据电机控制值用以驱动pwm、电机驱动电路以及霍尔码盘处理电路,以控制bldc运转。请继续参考图3,本发明所提供的无刷直流马达驱动整合系统中,另外还包含了多个pwm、多个电机驱动电路以及多个霍尔码盘处理电路。一个pwm、一个电机驱动电路以及一个霍尔码盘处理电路称为一组bldc驱动模块。在本发明中,若是控制3个bldc,就需要有3组bldc驱动模块。pwm是一般常规的脉冲宽度调制信号产生电路;电机驱动电路是将脉冲宽度调制信号转换成bldc可读的信号,以驱动bldc运转;霍尔码盘电路是将bldc运转时所产生的磁信号转换成包含转速与方向的电信号,以使此数据fpga芯片进行处理。根据来自于fpga芯片的驱动指令,pwm会改变其所生成脉冲宽度调制信号的占空比(dutycycle),以使bldc的转速以及方向改变。后续请参考图4。图4表示无刷直流马达驱动整合系统中,arm的详细架构图。在图3的图说中已经说明arm中包含的ahb总线、adc、cortex_m3、usart、通信模块以及dma通道等模块的功用以及方法。在此说明,arm芯片中jtag、time定时器、sdram、记忆装置、电源供应装置以及i/o等模块的功能。jtag(jointtestactiongroup)是程序烧写调试接口,是一种测试接口,其可以与测试模块,例如本发明的外部测试仪电性连接,利用外部测试仪的硬件与测试软件对于arm芯片中的每个模块进行功能测试,以检测arm芯片是否能正常且符合规格的运作。time定时器是提供精准定时作用。sdram是可以暂时存储所要执行的程序。记忆装置是用以存储各bldc初始状态用。本发明的记忆装置使采用flash所构成。电源供应装置是维持整个arm芯片的电力用,另一方面也是维持整个arm芯片的信号的直流偏压点用。i/o是连接fpga用的接口。另外,cortex_m3还可以控制i/o接口电平高低用,以实现与fpga通讯功能。在实际运作上,cortex_m3透过ahb总线从time定时器、adc、usart、i/o中获取关于时间、bldc、外部个人计算机以及fpga芯片的信号后,运算生成电机(bldc)运转电流值信号,并传递给fpga芯片。接着请一并参考图3与图5。图5表示无刷直流马达驱动整合系统中,fpga芯片的架构图。在fpga芯片中包含了fpga通信总线、霍尔计数技术寄存器、码盘计数寄存器、pwm寄存器、霍尔信号处理模块、码盘信号处理模块以及pwm信号处理模块。其中,fpga芯片70与arm芯片60在电路板上以pcb走线链接。霍尔计数寄存器702是用来根据霍尔计数,确定何时给bldc2换相用。码盘计数寄存器703是用来依据码盘计数实现对bldc2速度的闭环路控制。相较于先前技术所属用的开环路控制模式,使用闭环路控制的好处是,霍尔计数寄存器与码盘计数寄存器不只可以存储更早时间的码盘计数信号,更可以实时存储当前时间的码盘计数信号,这样就可以实时参考码盘计数信号,以发出更精确的控制信号。pwm寄存器是用来依据pwm寄存器的值,实现对pwm所发出信号的占空比的控制。霍尔信号处理模块是用来消除霍尔信号上的噪声、干扰问题,实现对bldc准确换相用。码盘信号处理模块是用来消除码盘信号上的噪声、干扰问题,实现对bldc2的速度闭环的精确控制。arm芯片通过通信模块,与fpga芯片采用16比特的总线连接。通过一次进行比特的数据传送,让数据传送更有效率。另外,fpga芯片的通信总线还可以设置额外的接口(图5未显示)接受由用户端装置传来的信息,并且与霍尔计数寄存器与码盘技术寄存器的信息组合后,供pwm信号处理模块信息处理。请继续参考图3、图5以及图6。由于pwm是由多个nmos所组成,这些多个nmos可以等效成多个开关。单个开关控制单个bldc运转。多个开关则控制多数个不同的bldc运转。其中,让单个开关闭合可以让单个bldc转动,而让单个开关开路则会让单个bldc停转。换句话說,单个pwm信号处理模块发出逻辑1的信号可以让单个bldc转动,而单个pwm信号处理模块发出逻辑0的信号可以让单个bldc停转。本发明就是单个pwm信号处理模块可参考来自霍尔计数寄存器、码盘计数寄存器以及用户端装置传来的信息运算后,发出bldc电流值。控制pwm的闭合时间与断开时间,也就是控制pwm信号处理模块发出逻辑1信号的持续时间与pwm信号处理模块发出逻辑0信号的持续时间,就可以达成控制pwm所发出的pwm信号的开关比。而且,因为pwm是由nmos组成,nmos本身会有操作延迟,因此会让fpga发送的信号与bldc运转的信号不会同时产生,也就是会造成如同图6显示的τ3与τ4。但是,τ3与τ4的值最大不超过0.02us,仍小于同步的规范,符合工业上对于同步的定义。并且,τ3与τ4的值远小于传统未使用fpga时,所发出的bldc电流值发出时间差。所以,使用本发明所包含的fpga芯片,可以让bldc电流值与马达运转保持同步。另外,单个pwm信号处理模块也是由多个nmos所组成,这些多个nmos也可等效于一个开关。在本发明中,单个开关闭合时,就可以控制单个pwm,单个开关开路时,就失去对于个pwm的控制。在本发明中,若是一次要控制三个pwm运作时,pwm信号处理模块就会有都由nmos所组成的一个主控(master)开关与三个从属(slave)开关,一个主控开关分别与pwm寄存器及三个从属开关耦合,一个从属开关与一个pwm耦合。因为不同的从属开关存在了制造上的差异,不同的从属开关的开关闭合时间就会不同,让多个发出bldc电流值发出时间不同。但是,由于任意两个从属开关的起始时间最大仅差异在0.2us,符合工业上对于同步的定义,并且远小于传统未使用fpga时,所发出的bldc电流值发出时间差。所以,使用本发明所包含的fpga芯片,所发出的多个bldc电流值是同步的。使用本发明所提供的无刷直流马达驱动整合系统,使用fpga当作控制中枢,可以针对多个bldc进行驱动,且可以将多个arm集成在一个集成电路驱动晶片中,不仅所占空间小,更可以配置成时间同步的驱动超过6个bldc,一次可以连接超过36个pwm信号。另外,通过fpga芯片中的nmos晶体管,降低信号的输入输出延迟时间,让输入输出延迟时间小于ms级别,达到μs级别,较现有的无刷直流马达驱动模块更具竞争力。本发明的无刷直流马达驱动方法的执行流程揭示在图7与图8。在本发明中,无刷直流马达驱动方法中包括了一般驱动程序与判定程序,图7表示中一般驱动程序的执行流程图,而图8表示判定程序的执行流程图。请先参考图7,且一并参考后续一般驱动程序执行步骤s1-s6的详细说明。步骤s1:利用fpga芯片同时接收与处理来自多个bldc的多个霍尔码盘数据。后续进行步骤s2。步骤s2:将多个处理后的霍尔码盘数据存储至fpga芯片中的霍尔计数存储器与码盘计数存除器。后续进行步骤s3。步骤s3:利用arm芯片读取存储于fpga芯片中的霍尔码盘数据。后续进行步骤s4。步骤s4:采集无刷直流马达中的多个bldc电流值数据,并将bldc电流值数据传递至arm芯片。后续进行步骤s5。步骤s5:运用arm芯片将霍尔码盘数据与bldc电流值数据运算,以生成电机控制值并发送至fpga芯片。电机控制值是运用pwm信号处理模块,执行如式(1)的算式:pwm+=kp[e(k)-e(k-1)]+ki*e(k)+kd[e(k)-2e(k-1)+e(k-2)]式(1)其中,kp代表pid的系数p,ki代表pid的系数i,kd代表pid的系数d,上述三者都是机器所具有的固定修正常数。e(k)代表本次预定输出的bldc电流值与bldc输出电流阈值的偏差,e(k-1)代表上一次输出的bldc电流值与bldc输出电流阈值的偏差,e(k-2)代表倒数第二次输出的bldc电流值与bldc输出电流阈值的偏差,pwm则代表本次输出的bldc电流值。所以,本发明的闭环路设计,会考虑到本次与前两次输出的bldc电流偏差值,借此算出本次实际输出的bldc电流值。后续进行步骤s6。步骤s6:运用fpga芯片,将所述电机控制值转换成多个电机控制讯号,以控制bldc。后续结束一般驱动程序。最后请参考图8,图8是表示判定程序的执行流程图。且一并参考后续一般驱动程序执行步骤t1-t8的详细说明。步骤t1:利用fpga芯片,在第一时间同时接收并同时处理来自多个bldc中的多个霍尔码盘数据,并同时生成多个处理后的霍尔码盘数据。后续进行步骤t2。步骤t2:将多个处理后的霍尔码盘数据存储至fpga芯片中的霍尔计数寄存器。后续进行步骤t3。步骤t3:arm芯片从fpga芯片读取多个处理后的霍尔码盘数据。后续进行步骤t4。步骤t4:使用adc采集多个bldc中的多个bldc电流值数据。后续进行步骤t5。步骤t5:判断bldc电流值数据是否超过阈值电流。若是,后续进行步骤t8。若否,后续进行步骤t6。步骤t6:将不是0的bldc电流值数据回传至arm芯片,利用arm芯片运算获得不是0的电机控制值,并回传给fpga芯片。后续进行步骤t7。步骤t7:运用fpga芯片,将所述电机控制值转换成电机控制讯号,以同步控制无刷直流马达。后续结束判定程序。步骤t8:运用adc直接将bldc电流值数据转成0并回传至所述arm芯片,利用arm芯片运算获得是0的电机控制值,并回传给所述fpga芯片,以关断无刷直流马达。后续结束判定程序。使用本发明所提供的无刷直流马达驱动方法,不但可以同步控制至少6个bldc,还可以判定驱动晶片本身是否电流过载,过载时自动使晶片关断(disable),以实时保护驱动晶片与bldc;本方法更具有回馈程序,可以实时并动态的调整bldc转速以使bldc转速稳定,可谓一举数得。以上所述仅为本发明之较佳实施例,并非用以限定本发明之权利范围;同时以上的描述,对于相关
技术领域
:之专门人士应可明了及实施,因此其他未脱离本发明所揭示之精神下所完成的等效改变或修饰,均应包含在申请专利范围中。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1