多路电机实时调速及录放系统的制作方法

文档序号:21316858发布日期:2020-06-30 20:46阅读:223来源:国知局
多路电机实时调速及录放系统的制作方法

技术领域
本发明涉及机电
技术领域
的一种电机控制系统。
背景技术
:电机调速是机电领域的常用技术。目前电机调速的操作方式大概有按键调速和电位器旋钮调速两种方式。按键调速方式也即是采用按键开关的开关信号作为控制信号,应用到电机控制上,就只能控制电机开关或者根据按键次数来控制电机调速的级数。其缺点是反应速度慢,操作者用手按一下变化一次控制级数,无法快速无级调速,虽然可以通过将按键按下时间长短作为电机调速的基准,间接实现电机调速的功能,但由于测量按键按下时间长短也是有一个延迟的过程,这会影响电机的实时控制性能,而且通过判断按键时间来调速只能是往一个方向调,就是只能从小到大调整,无法快速两个方向同时变化调整。电位器旋钮调速方式是采用旋钮带动电位器,将电位器旋转在不同位置对应不同的阻值,将阻值转换为相应的调速信号。其缺点是电位器旋钮普遍偏大,多路电机同时调整时需要比较复杂的空间来安装大量的电位器,同时一个电位器旋钮一般需要两个手指来同时操作,当需要操作者单人同时操作多个电机时就会忙不过来,一般正常人可以左右手同时操作2个旋钮,但是超过2个旋钮就会比较困难了。这些电机调速技术基本能够满足现有各种应用要求,但在复杂的工业控制场合、人工控制的音乐喷泉和机器人等一些特殊的应用场合,需要同时使用数量众多的多只电机来完成联动动作,并且需要单个操作者对这些电机进行独立控制,包括正反转和转速控制,则现有这些电机调速技术便无法胜任。比如在工业机器人应用领域,有时需要由操作者模拟并控制机器人上下肢或各个机械臂的多个关节的机械运动以进行某种动作组合,来使机器人学习某种程序化动作,(机器学习),并将这些程序化动作的操作数据记录下来,复制到其他机器人的控制器中。这时便需要由单个操作者对多路电机进行实时调速控制,并可对操作数据进行录制及回放。另外,现在技术实现对多个电机的调速控制,一般是从主控模块(总控端)发出控制信号到各个电机,电机上的电机驱动控制器接收到控制信号后,解调出控制数据并驱动电机进行运转。目前从主控模块到各个电机的连接方式主要有直接连接和总线连接。直接连接方式是从各个电机驱动控制器各自独立引出一组信号线直接连接到主控模块的各个独立输出端口,主控模块通过将控制信号输出到特定的输出端口来独立控制对应的电机。其优点是控制直接、技术简单和容易实现,其缺点是随着被控电机数量的增多而相应需要大量的信号连接线,造成连接复杂和混乱,而且主控模块上的主控ic也很难具有足够多的输出引脚,造成对被控电机数量的限制。所以在需要使用大量电机的场合,直接连接方式是无法胜任的。总线连接方式是从主控模块引出一组控制总线,同时连接到各个被控电机的电机驱动控制器,各个电机驱动控制器的输入端都同时连接到控制总线上,主控模块在进行控制时需要同时发出地址编码和数据编码,地址编码用于识别对应的电机驱动控制器,数据编码用于驱动电机运转。总线连接的优点是仅使用一组控制总线便能够控制所有电机,连线简单方便。其缺点是:1、主控模块和电机驱动控制器需要采用相同的总线控制协议,如果没有,则主控模块和电机驱动控制器都需要自己实现相应的总线协议,而采用自带总线协议的芯片成本高,自己实现总线协议则编程复杂。2、主控模块发出的每组控制信号需要同时包含地址编码和数据编码,增加数据传送的复杂性和传送时间。3、当总线的控制距离较长时,需要增加中继器,否则容易造成数据被干扰出错,传送不稳定。4、最主要的是,主控模块需要通过地址编码来识别不同的电机驱动控制器,每个电机驱动控制器的解码芯片需要写入或设定特定的地址编码,所以在同一个电机控制系统中各个电机控制驱动器的地址都是不同的,彼此之间不能互换,这一方面使得企业在组装产品时需要预先对同一型号的电机驱动控制器逐个写入或设定地址编码,造成部件统一性差和增加加工成本,另一方面是在使用中如果某个电机驱动控制器损坏需要更换,则需要更换具有一样地址编码的电机驱动控制器才能工作,或者需要在新的电机驱动控制器写入或设定相应地址编码才能工作,这给维护和现场应急维修工作带来不便。技术实现要素:本发明的目的是公开一种多个电机的实时调速系统,让操作者能够使用手指同时对更多的电机进行实时调速,也能够将其调速的操作过程的数据进行录制及重放。而且,其主控模块与被控电机之间采用一根数据线(也即信号线)的连接方式,通信协议更简单,传送时间更短,而且最关键是所控制的电机驱动控制器无需设定地址编码,彼此是一样的,可互换使用,维修更换时也无需写入地址编码,可随时更换使用。本发明的多个电机实时调速及录放(录制及重放)系统包括有主控模块和多个(两个或两个以上)电机控制模块;还包括有用于检测手指压力的手指压力检测模块,手指压力检测模块包括有mcu和多个用于检测手指压力的传感器,mcu采集各个传感器输出的模拟信号并转换为数字量,再输出到主控模块;手指压力检测模块的输出端连接到主控模块的输入端;主控模块将手指压力检测模块输入的数字量转换为电机调速数据;主控模块的控制输出端通过信号线逐个(也即逐级)串联连接各个电机控制模块;每个电机控制模块连接有多个电机,用于控制电机的转速和转向。所述的主控模块包括有主控mcu和闪存卡(或简称闪存),主控mcu将手指压力检测模块的数字量转换为电机调速数据,并通过控制输出端输出到电机控制模块;主控mcu还能够将电机调速数据同时记录到闪存卡中,也能够读取闪存卡记录的电机调速数据并发送到控制输出端。所述的传感器可以采用薄膜压力传感器或者电容触摸传感器,两种传感器均能够检测手指压力并转换为电信号。本发明根据操作者的手指压力来控制电机转速,压力越大对应的电机转速越快,操作简单方便直观易懂。由于采用压力控制,相比于传统的按键式控制方式,可以实时控制电机转速强弱且反应快速。而且每一只手指便能够控制一只电机的转速,单一操作者通过双手能够同时控制8至10只电机的转速,这能够适应于复杂的工业控制,操控机器人上下肢或多个机械臂进行复杂动作,和采用人工对音乐喷泉进行方便灵活的控制等多种特殊应用场合。本发明的主控模块带有闪存卡,在主控mcu的控制下,能够在记录模式下将操作者进行电机调速的控制过程所输出的调速数据信号同时记录保存在闪存卡里面,而在重放模式下能够读取闪存卡所记录的调速数据信号,再重新输出到主控模块的输出端,去重新控制各个电机控制模块的工作,对各个电机按之前所记录的数据进行调速控制。操作者经过多次演练操作,得到满意的程序化的控制效果后,便能够简单方便的再现这种程序化的操作过程,还能够将闪存卡的数据复制到其他相同的调速系统的闪存卡中,使其他系统都具有相同的控制动作及其效果,非常适用于工业化生产。对于主控模块到各个电机的连接,可以采用现有的直接连接或总线连接的方式。本发明也同时公开一种技术改进。其主控模块的输出端通过一根信号线逐个(也即逐级)串联连接各个电机控制模块,电机控制模块包括有多个电机驱动输出端,分别连接到各自控制的电机。每个电机控制模块包括有一个数据输入端和一个数据输出端;主控模块的控制输出端通过信号线连接到第一个电机控制模块的数据输入端,第一个电机控制模块的数据输出端连接第二个电机控制模块的数据输入端,第二个电机控制模块的数据输出端连接第三个电机控制模块的数据输入端,依此将各个电机控制模块进行依次串联连接,直至最后一个电机控制模块。每个电机控制模块包括有多个数据解码芯片和驱动电路,电机控制模块的数据输入端连接到第一个数据解码芯片的数据输入引脚,第一个数据解码芯片的数据输出引脚连接到第二个数据解码芯片的数据输入引脚,第二个数据解码芯片的数据输出引脚连接到第三个数据解码芯片的数据输入引脚,依此将各个数据解码芯片进行依次连接,直至最后一个数据解码芯片;最后一个数据解码芯片的数据输出引脚连接到电机控制模块的数据输出端;数据解码芯片的控制输出引脚连接到电机控制模块的电机驱动输出端,或者通过驱动电路后连接到电机驱动输出端。电机驱动输出端用于连接并控制电机的工作。所以,每个电机控制模块实际上包含了多个独立的电机驱动控制电路。数据解码芯片内部包括有串行解码电路、多个数据寄存器、多个pwm转换电路和多个输出驱动电路。串行解码电路的输出连接到各个数据寄存器,每个数据寄存器的输出连接一个pwm转换电路,pwm转换电路的输出连接一个输出驱动电路,各个输出驱动电路的输出连接(作为)数据解码芯片的控制输出引脚。由于数据解码芯片里面包含有输出驱动电路,具有一定的输出能力,所以能够直接驱动小功率电机。对于较大功率的电机,可以在数据解码芯片的控制输出引脚与电机控制模块的电机驱动输出端之间再加上独立的驱动电路,驱动电路一般可采用专用驱动芯片来实现。驱动芯片可以是电机单向驱动芯片,用于驱动和控制电机的单向转动;也可以是电机双向驱动芯片,用于驱动和控制电机进行双向正反转动;电机双向驱动芯片具有两个信号输入端,需要同时连接到数据解码芯片的两个控制输出引脚;电机双向驱动芯片的两个输出端作为电机驱动输出端,同时连接到电机电源输入的正负两端。主控模块对多个电机控制模块的具体控制步骤是:⑴、主控模块的控制输出端通过信号线向第一个电机控制模块发送控制数据;⑵、第一个电机控制模块的第一个数据解码芯片从数据输入引脚接收到控制数据后,将各组控制数据按组依次填写保存在各个寄存器里面,(每个寄存器写入一组控制数据),但暂时不进行输出;当第一个数据解码芯片的各个寄存器填满控制数据后,则串行解码电路不再从数据输入引脚接收新的控制数据,而是将控制数据直接发送到其数据输出引脚上,也即直接转发给后续的第二个数据解码芯片的数据输入引脚;⑶、第二个数据解码芯片从数据输入引脚接收到控制数据后,同样将控制数据按组依次填写保存在其各个寄存器里面,但暂时不进行输出;当第二个数据解码芯片的各个寄存器填满控制数据后,则其串行解码电路也不再从数据输入引脚接收新的控制数据,而是将新的控制数据直接发送到其数据输出引脚上,也即直接转发给后续的第三个数据解码芯片的数据输入引脚;⑷、依此过程进行工作,控制数据被依次逐个填写入各个数据解码芯片的寄存器;直至第一个电机控制模块的最后一个数据解码芯片的各个寄存器填满控制数据后,则其串行解码电路也不再从数据输入引脚接收新的控制数据,而是将新的控制数据直接发送到其数据输出引脚、也即第一个电机控制模块的数据输出端上,并转发到第二个电机控制模块的数据输入端上;⑸、第二个电机控制模块按照第一个电机控制模块的方法进行工作,控制数据被依次逐个填写入第二电机控制模块的各个数据解码芯片的寄存器,直至其最后一个数据解码芯片的各个寄存器填满控制数据后,不再接收新的控制数据,而是将新的控制数据直接发送到其数据输出引脚、也即第二个电机控制模块的数据输出端上,并转发到第三个电机控制模块的数据输入端上;⑹、依此进行工作,控制数据被依次填写入各个电机控制模块的各个数据解码芯片的各个寄存器,直至最后一个电机控制模块的各个数据解码芯片的各个寄存器被填满控制数据,或者主控模块停止发送控制数据;⑺、主控模块的控制输出端向电机控制模块发送一个同步输出信号,所有的数据解码芯片从数据输入引脚上接收到同步输出信号时,一方面将同步输出信号直接转发到数据输出引脚上,(也即同步输出信号是不被任何数据解码芯片寄存的,而是直接发送给所有电机控制模块的所有数据解码芯片),另一方面将寄存在各个寄存器里面的控制数据输出到各自连接的pwm转换电路,转换为控制电机运转的pwm输出信号,再经过各自连接的驱动电路的放大后,输出到数据解码芯片的控制输出引脚;同时将寄存器里面的数据清零,等待下一个工作过程;⑻、各个数据解码芯片的控制输出引脚通过电机控制模块的电机驱动输出端去控制电机的工作;或者通过驱动电路后再通过电机控制模块的电机驱动输出端去控制电机的工作。本发明这种主控模块通过单一信号线连接到各个电机控制模块,实现对各个电机进行调速控制的技术,其技术效果在于:1、主控模块与所有电机驱动控制器之间接线方式简单,只需单根数据线即可实现连接。2、由于无需设置和输出地址编码,只需发送控制电机运转所需的控制数据即可,所以通信协议更简单,数据传输时间更短,传输效率更高。3、由于采用级联方式,发送的控制数据信号经过每个数据解码芯片后再输出的话都会被重新整形再转发输出,每个数据解码芯片和电机控制模块都相当于一个信号中继器,所以信号不容易因连接距离长而导致衰减或受干扰,能够保证信号传送稳定。4、尤其重要的是,由于所有的数据解码芯片都无需写入地址编码,所以在生产组装时不用预先给芯片写入地址编码,也无需区分不同的数据解码芯片,使生产组装更简单高效;而且组装出来的各个电机控制模块也都是一样的,在使用中碰到任何一个电机控制模块损坏时,可直接更换都一样的电机控制模块备件,而无需写入地址编码,这给现场维修带来极大方便性。4、由于电机驱动模块上面的数据解码芯片都无需地址编码,只需要按顺序连接好即可正确工作,所以还可根据工作需要随时扩展接入更多的电机驱动模块及电机,只需在主控模块扩展发送控制新加入电机的控制数据。5、相比原来有地址编码的电机控制数据,本发明由于省去地址编码而只有电机控制数据,所以可以将所有电机的控制数据简化成一张二维数据表,这个数据表易于移植,易于复用。譬如调制好某种自动化控制动作,得到的所有电机的pwm参数,可以很容易的搬迁到其他自动化控制项目上,只要接法一样数据一样出来的效果就是一样。本发明尤其适合应用在需要使用大量微电机来进行各种复杂动作控制的机器人领域,包括工业机器人、民用机器人和玩具机器人,可先由操作者操控一台机器人的各个机械臂进行所需要的各种动作,如果某一次操作所进行的动作组合能够实现所需要的效果,则可将该次操作的控制数据存储下来,并复制到其他机器人的储存卡上,使其他机器人都能够完成所需要的动作组合。附图说明图1是本发明各个模块之间的电路连接图。图2是手指压力检测模块采用电容传感器时的电路原理图。图3是手指压力检测模块采用薄膜压力传感器时的电路原理图。图4是主控模块的电路原理示意图。图5是主控模块与电机控制模块之间的线路连接示意图。图6是电机控制模块的电路结构示意图。图7是数据解码芯片的内部结构示意图。图8是数据解码芯片所接收的数据结构及其控制对象的示意图。图9是主控模块输出的控制数据的数据结构示意图。图10是一个电机控制模块实施例用于对大电流电机进行正反转动控制的电路原理图。图11是一个电机控制模块实施例用于对小电流电机进行正向转动控制的电路原理图。具体实施方式下面根据附图,对本发明的实施进行说明。本发明的申请文件所采用的英文简称均为本
技术领域
的使用习惯,但为了表述更准确无歧义,以下进行说明:ic:集成电路芯片;mcu:单片机;motor:电机;ad:模数转换,将模拟信号转换为数字信号;tf-card:闪存存储器,由闪存芯片构成,常称为闪存卡,或简称闪存,用于存储数据;sda:i2c总线数据信号线;scl:i2c总线时钟信号线;irq:检测中断信号线,方便手指压力检测模块通知主控mcu;sddat:闪存卡数据信号线;sdclk:闪存卡时钟信号线;sdcmd:闪存卡命令控制信号线;vreg:参考电压;pwm:pulsewidthmodulation的缩写,也即脉冲宽度调制;di:芯片上的数据输入引脚;do:芯片上的数据输出引脚;in:电机控制模块上的数据输入端;out:电机控制模块上的数据输出端;sc:smallcurrent缩写,表示小电流;lc:largecurrent缩写,表示大电流;vcc:电源正端;vss:电源负端;gnd:接地端。图1是本发明各个模块之间的线路连接图。本发明包括主控模块和多个(两个或两个以上)电机控制模块;还包括有用于检测手指压力的手指压力检测模块,其输出端通过i2c总线连接到主控模块的输入端;主控模块将手指压力检测模块输入的数字量转换为电机调速数据信号;主控模块的输出端通过信号线逐个(也即逐级)串联连接各个电机控制模块;每个电机控制模块连接有多个电机,用于控制电机的转速和转向。手指压力检测模块包括有mcu和多个用于检测手指压力的传感器,mcu采集各个传感器输出的模拟量信号并转换为数字化的数值,再输出到主控模块。传感器可以采用电容触摸传感器,其电路原理示意图如图2。其工作原理是由mcu扫描测量pad0-pad11所连接的p1—p12共12路电容传感器的电极上的电容值,当手接触电极时,会改变电极上的电容值,手指的压力增加,则手指与电极的接触面积相应增大,相应的电容值也增大,所以通过检测电容值的变化便能够得到压力的变化。传感器也可以采用薄膜压力传感器,其电路原理示意图如图3。其工作原理是由mcu扫描测量pad0-pad11所连接的q1—q12共12路薄膜压力传感器的电阻值,当手指施加在薄膜压力传感器上的压力发生改变时,传感器相应的电阻值也会改变,压力越大电阻值越小,所以通过测量薄膜压力传感器两端的电压,就可以检测到相应的阻值变化,从而得到相应的压力变化。手指压力检测模块的mcu与主控模块的主控mcu之间通过连接端口cn1进行连接,其连接方式使用i2c总线,包括sda、scl和irq,其中irq为检测中断信号线,也可不连接。手指压力检测模块的pad0-pad11所连接的12路传感器,每个传感器对应一路电机,其mcu不断扫描每一路传感器,检测电容触摸传感器或薄膜压力传感器数值,并将测量值经过a/d转换为数字值,再发送到主控模块的输入端。手指压力检测模块与主控模块之间也可以不采用连接端口cn1进行连接,而采用射频,蓝牙,wifi,红外线等其他连接方式进行无线连接,这都是电子领域的常规技术。主控模块的电路原理图如图4,包括有主控mcu和闪存卡“tfcard”,主控mcu接收输入端cn1的来自手指压力检测模块的数字值,由程序转换为电机调速数据信号,通过控制输出端cn2输出,发送到电机控制模块。手指压力的数值与电机调速数据的转换,一般是将压力数值为零时对应于电机转速为零,手指压力最大值对应于电机转速最大值,(电机转速的pwm数值为0—255),而中间数值以此计算得到。主控mcu还能够在“保存”模式下将电机调速数据信号同时记录储存到闪存卡中,也能够在“重放”模式下将闪存卡所记录的电机调速数据信号读取并重新发送到控制输出端。以下对主控模块的几个按键开关的功能进行说明:“模式切换”开关用于在“保持模式”和“实时模式”之间进行切换。处于实时模式时,主控mcu会将手指压力检测模块输出的数据直接转换为相应的电机转速数据,这样电机的转速会随着传感器上的压力大小实时变化。而在一些需要通过手指设定并保持恒定值的场景下,当处于实时模式时,由于电机转速会跟着手指压力大小实时变化,当手指离开传感器时,压力会立即变为0,这时电机也会相应停止,无法保持设定值,所以需要有保持模式。在保持模式时,主控mcu会从手指压力检测模块输出的所有数据中选出每个通道的最大值并记忆,作为该通道的保持值并转换为相应电机的转速设置。即当手指放在传感器上时,主控模块会通过手指压力检测模块输出的数据分析出该通道手指的最大压力值并记忆,同时转换输出到相应的电机,当手指离开传感器时,主控模块仍会将记忆下来的最大值作为对应通道的电机转速设置。这样手指就无需像实时模式那样一直放在传感器上,只需根据需要在传感器上施加一定的压力后即可离开。当需要清空保持值时,可以通过主控模块上的“复位”按键复位全部压力值。所以,“复位”按键用于在“保持模式”时将保持的状态复位。“up”按键用于手指压力检测模块对应的多路电机控制模块的切换,切换到上一个多路电机控制模块;“down”按键用于手指压力检测模块对应的多路电机控制模块的切换,切换到下一个多路电机控制模块。其目的是减少所需的手指压力检测模块的数量:在实际使用中,如果每一路电机的控制都需要对应一路传感器通道,那么随着电机数量的增加,手指压力检测模块的数量也要随着增加,这会增加成本,同时由于人手的限制,实际也无法同时控制太多个电机。因此在本系统中,可以只配备一个手指压力检测模块,再通过“up”或“down”按键切换手指压力检测模块对应的多路电机控制模块,以一个手指压力检测模块来实现对更多电机的调速控制。“保存”按键用于保存数据,按下该按钮,则主控mcu持续将电机控制数据写入储存在闪存卡中;“重放”按键用于将记录储存在闪存卡中的电机控制数据读出回放(重放),并输出到控制输出端口。主控mcu包含有读写闪存的功能,通过操作“保存”按键和“重放”按键,可以实时将控制输出端输出的电机控制数据记录储存到闪存卡中,也可以读取闪存中的控制数据进行回放,方便实现自动化重复操作。读取的数据回放时可以修改,譬如整体加大或减小调速力度,放慢或加快回放速度。闪存卡中的电机调速控制数据可以由以下几种途径输入:1、手指压力检测模块输出的数据经过主控模块采集后保存,这种方式适合实时采集新的数据,比如模拟手指动作并记录的场合。2、通过电脑将兼容格式的数据下载到闪存中,这种方式适合已经保存的数据重复使用的场合,即不需要每次重新采集数据,可以利用以前采集的数据来使用。3、通过别的设备采集数据后把闪存卡放入主控模块进行回放。数据回放时,主控模块会将闪存卡中的数据按顺序发送到相应的多路电机控制模块。手指压力检测模块和主控模块中mcu的程序,属于本领域的常规技术,本领域技术人员根据本发明的工作原理和电路图,无需创造性工作便可编写出其程序。对于主控模块到各个电机的连接,可以采用现有的直接连接或总线连接的技术。本发明同时公开一种技术改进。图5是本发明的主控模块与各个电机控制模块之间的线路连接示意图。为了附图简明清晰,图5只画出两个电机控制模块,实际可根据需要而逐个串联进行扩展连接,形成级联的连接结构。其特征是主控模块通过一根信号线依次连接各个电机控制模块,电机控制模块包括有多个电机驱动输出端,分别连接到各自控制的电机。从图5可以看出,除去电源和接地线,本发明从主控模块连接到各个电机控制模块的信号线实质上只需一根连线。每个电机控制模块包括有一个数据输入端、一个数据输出端和多个电机驱动输出端;主控模块的控制输出端通过一根信号线连接到第一个电机控制模块的数据输入端in,第一个电机控制模块的数据输出端out连接第二个电机控制模块的数据输入端in,第二个电机控制模块的数据输出端out连接第三个电机控制模块的数据输入端in,依此将各个电机控制模块通过一根信号线进行依次串联连接,直至最后一个电机控制模块;而电机控制模块的各个电机驱动输出端分别连接到各自控制的电机。主控模块是整个系统的核心,其控制数据由控制输出端口cn2进行输出,再通过信号线连接到第一个电机控制模块的数据输入端口cn3,实现对多路电机的控制。电机控制模块可设置安装在系统的各个被控位置,对该局部位置的多个电机进行集中控制。比如设置安装在机器人的躯干、左右上肢、左右前臂、左右下肢等位置,其上面所包含的多个电机驱动输出端能够对该位置附近所设置的各个电机的运转进行集中控制。比如,设置在机器人左手前臂位置的电机控制模块,其电机输出端所连接和控制的多个电机,只用于控制左手手掌及其手指的运动。而设置在机器人右手前臂位置的电机控制模块,其电机输出端所连接和控制的多个电机,只用于控制右手手掌及其手指的运动。这样,电机控制模块的各个驱动输出只需要连接到附近的电机,而无需连接到其他远距离位置的电机,以降低对外的电磁干扰。而信号线只需在各个电机控制模块之间进行串联连接,无需连接到所有电机上,可以降低受到的电磁干扰。图6是电机控制模块的结构示意图。每个电机控制模块包括有多个数据解码芯片和驱动电路,(图6是包含有4个数据解码芯片),电机控制模块的数据输入端连接到第一个数据解码芯片的数据输入引脚,第一个数据解码芯片的数据输出引脚连接到第二个数据解码芯片的数据输入引脚,第二个数据解码芯片的数据输出引脚连接到第三个数据解码芯片的数据输入引脚,依此将各个数据解码芯片进行依次串联连接,直至最后一个数据解码芯片;最后一个数据解码芯片的数据输出引脚连接到电机控制模块的数据输出端;数据解码芯片的控制输出引脚连接到电机控制模块的电机驱动输出端,或者通过驱动电路后连接到电机驱动输出端;电机驱动输出端用于连接并控制电机的工作。所以,按照本发明的技术,每个电机控制模块实际上包含了多个独立的电机控制通道。图7是数据解码芯片的内部电路框架示意图。数据解码芯片内部包括有串行解码电路、多个数据寄存器、多个pwm转换电路和多个输出驱动电路,数据寄存器、pwm转换电路、和输出驱动电路的个数是相同的。按图7的实施例,数据解码芯片内部包括有串行解码电路、三个数据寄存器、三个pwm转换电路、和三个输出驱动电路。数据解码芯片在内部固化的程序控制下进行工作。工作时,其串行解码电路将从数据输入引脚di接收三组电机控制数据(串行byte数据),并依次填入和暂时储存在三个寄存器里面。当串行解码电路已经接收到三组数据,也即已经将三个寄存器依次填满时,则串行解码电路不再从di引脚接收新的控制数据,而是将控制数据直接发送到数据输出引脚do上,传输给后面的其他芯片。之后,数据解码芯片一直维持这样的工作状态,不断将数据输入引脚di所接收到的数据直接发送到数据输出引脚do上,直至当串行解码电路从数据输入引脚di上接收到一个同步输出信号,则一方面将同步输出信号直接发送到数据输出引脚do上传输给后面的其他数据解码芯片,同时,另一方面将储存在三个寄存器上的控制数据输出到三个pwm转换电路,由pwm转换电路转换为控制电机运转所需的pwm信号,再输出到三个输出驱动电路,经过输出驱动电路后输出到三个控制输出脚out1、out2、out3上,作为控制电机运转的pwm信号输出。然后,将寄存器的数据全部清零,进入下一个工作过程,等待来自信号线的新的控制数据。同步输出信号是一个特殊信号,其信号格式明显有别于控制数据信号,所以数据解码芯片一旦接收到该信号,便会直接识别出来,并执行数据同步输出和寄存器清零(刷新)。同步输出信号一般会采用一个持续时间较长的低电平或高电平信号,其持续时间可取数据中0与1的信号宽度的10倍或以上时间。比如数据信号中0码是一个宽度3.5us的脉冲,1码是一个宽度8us的脉冲,0码或1码的完整周期都是11.5us,那么同步输出信号可以采用一个宽度超过120us的低电平或高电平信号,便足以被可靠识别。这样,在一个数据传输的工作周期中,每个数据解码芯片一共有且只有接收byte1、byte2、byte3三组数据,(分别为a0—a7,b0—b7,c0—c7),分别填入和储存在三个寄存器里面。每组byte数据由8位数据(8bit)组成,对应于数值0—255,可通过pwm转换电路转换为占空比不同的pwm波形,一般设置其数值0对应于转速0也即停止,数值255对应于转速最大值,以此来控制电机的运转。每个数据解码芯片能够实现对三个电机控制通道的解码和控制。其数据结构及其控制对象如图8。而对于整个控制系统的主控模块输出的控制数据,则由更多组byte数据构成,一个电机控制通道对应一组byte,byte的值对应该电机控制通道输出的pwm方波的占空比。如果整个控制系统具有n个电机控制通道,则主控模块便需要输出n组byte数据。因为每个数据解码芯片同时对应3组byte数据,所以在一个数据传输周期中,整串数据信号的byte数据的总数量n为3的倍数。其控制数据的数据结构如图9。由于数据解码芯片里面包含有输出驱动电路,具有一定输出能力,所以能够直接驱动小功率电机。对于较大功率的电机,可以在数据解码芯片的控制输出引脚与电机控制模块的电机驱动输出端之间再加上独立的驱动电路,驱动电路一般可采用驱动芯片来实现。驱动芯片可以是单向驱动芯片,用于驱动和控制电机的单向转动,这属于常规技术。驱动芯片也可以是双向驱动芯片,用于驱动和控制电机进行双向正反转动。电机双向驱动芯片具有两个信号输入端,需要同时连接到数据解码芯片的两个控制输出引脚;电机双向驱动芯片的两个输出端作为电机驱动输出端,同时连接到电机电源输入的正负两端。当电机负端被固定置于低电平,电机正端输入pwm方波时,则电机正转,转速受pwm方波的占空比控制;将电机负端输入pwm方波,电机正端固定置于低电平时,则电机反转,转速受pwm方波的占空比控制。主控模块对电机进行调速控制的具体工作步骤是:⑴、主控模块的控制输出端通过信号线向第一个电机控制模块发送控制数据;⑵、第一个电机控制模块的第一个数据解码芯片从数据输入引脚接收到控制数据后,将各组控制数据按组依次填写保存在各个寄存器里面,(每个寄存器写入一组8位的控制数据),但暂时不进行输出;当第一个数据解码芯片的各个寄存器填满控制数据后,则串行解码电路不再从数据输入引脚接收新的控制数据,而是将控制数据直接发送到其数据输出引脚上,也即直接转发给后续的第二个数据解码芯片的数据输入引脚;⑶、第二个数据解码芯片从数据输入引脚接收到控制数据后,同样将控制数据按组依次填写保存在其各个寄存器里面,但暂时不进行输出;当第二个数据解码芯片的各个寄存器填满控制数据后,则其串行解码电路也不再从数据输入引脚接收新的控制数据,而是将新的控制数据直接发送到其数据输出引脚上,也即直接转发给后续的第三个数据解码芯片的数据输入引脚;⑷、依此过程进行工作,控制数据被依次逐个填写到各个数据解码芯片的寄存器;直至第一个电机控制模块的最后一个数据解码芯片的各个寄存器填满控制数据后,则其串行解码电路也不再从数据输入引脚接收新的控制数据,而是将新的控制数据直接发送到其数据输出引脚、也即第一个电机控制模块的数据输出端上,并转发到第二个电机控制模块的数据输入端上;⑸、第二个电机控制模块按照第一个电机控制模块的方法进行工作,控制数据被依次逐个填写入第二电机控制模块的各个数据解码芯片的寄存器,直至其最后一个数据解码芯片的各个寄存器填满控制数据后,不再接收新的控制数据,而是将新的控制数据直接发送到其数据输出引脚、也即第二个电机控制模块的数据输出端上,并转发到第三个电机控制模块的数据输入端上;⑹、依此进行工作,控制数据被依次填写到各个电机控制模块的各个数据解码芯片的各个寄存器,直至最后一个电机控制模块的各个数据解码芯片的各个寄存器被填满控制数据,或者主控模块停止发送控制数据;⑺、主控模块的控制输出端向电机控制模块发送一个同步输出信号,所有的数据解码芯片从数据输入引脚上接收到同步输出信号时,一方面将同步输出信号直接转发到数据输出引脚上,(也即同步输出信号是不被任何数据解码芯片寄存的,而是直接发送给所有电机控制模块的所有数据解码芯片),另一方面将寄存在各个寄存器里面的控制数据输出到各自连接的pwm转换电路,转换为控制电机运转的pwm输出信号,再经过各自连接的输出驱动电路的放大后,输出到数据解码芯片的控制输出引脚;同时将寄存器里面的数据清零,等待下一个工作过程;⑻、各个数据解码芯片的控制输出引脚通过电机控制模块的电机驱动输出端去控制电机的工作;或者通过驱动电路后再通过电机控制模块的电机驱动输出端去控制电机的工作。图10和图11是电机控制模块实施例的电路原理图。该模块包含有ic1—ic4共4个数据解码芯片,和ic5—ic10共6个驱动芯片,可实现12路pwm输出。12路pwm输出分为大电流和小电流两种输出端口,sc1—sc12为小电流单向输出端,lc1—lc12为大电流双向输出端。数据解码芯片及电机驱动ic的数量可根据实际需要增加或减少,如果仅驱动单向运转的小电流电机,则ic5—ic10也可以不装。sw1为电机驱动的电源开关,用来统一关闭整块驱动板的电机输出。来自主控模块控制输出端cn2(或来自前面其他电机控制模块)的控制数据从电机控制模块的数据输入端也即插口cn3的in端输入,依次连接ic1—ic4的数据输入引脚di和数据输出引脚do,最后连接到电机控制模块的数据输出端也即插口cn4的out端,再连接到后面的其他电机控制模块。各个数据解码芯片接收到相应的控制数据后,按照前面对数据解码芯片的工作描述,最终是将控制数据转换为相应的pwm控制信号,pwm控制信号可以有两种输出选择,一是可以直接输出通过电机输出端去驱动小电流电机,如输出端sc1—sc12;二是可以输入到驱动芯片ic5—ic10,再由驱动芯片输出去驱动电流较大的电机,如输出端lc1—lc12。每一路电机控制通道均可选择大电流或小电流输出,但显然不能同时使用。电机控制模块的每一路都可以独立输出pwm信号,互不干扰,因此可以实现灵活的控制。为了描述更清晰,其中图10只画出数据解码芯片通过驱动芯片驱动m13—m18共6只大电流电机的双向正反转动,图11只画出数据解码芯片直接驱动m01—m12共12只小电流电机的单向转动,而实际上小电流电机和大电流电机,单向转动和双向转动都可根据需要进行混合搭配。以下为该实施例进行工作时的几个具体示例。一、驱动大电流电机工作时的说明。当需要接大电流电机时,采用图10所示的接法。这种接法能够实现对大电流电机的正反转双向转动控制,当然也可以只控制单向转动。其传输数据与输出通道、大电流电机对应关系如下表所示:注:+表示电机正极;-表示电机负极。以m13为例说明:由图10可以看出,lc1接m13负方向,lc2接m13正方向。当lc2高电平,lc1低电平时,电机正转。当lc2低电平,lc1高电平时,电机反转。byte1和byte2分别对应ic1的out1和out2输出的pwm占空比。ic1的out1接ic5(l9110)的ia,ic1的out2接ic5(l9110)的ib。ic5(l9110)的oa接lc2,ob接lc1。当byte1为0时,ic1的out1引脚内部驱动管持续关闭,电流无法流入ic1的out1引脚,ic5的ia通过上拉电阻维持高电平,当byte2为255时,表示占空比为255,即100%最大,ic1的out2引脚内部驱动管持续导通输出低电平,ic5的ib也跟着被拉为低电平。l9110输入输出真值表如下:iaiboaob高电平低电平高电平低电平低电平高电平低电平高电平低电平低电平低电平低电平高电平高电平低电平低电平根据l9110的真值表得到byte1与byte2与电机正反转的关系,如下表格所示:byte1byte2iaiblc2(oa)lc1(ob)电机0255高电平低电平高电平低电平正转2550低电平高电平低电平高电平反转255255低电平低电平低电平低电平停止00高电平高电平低电平低电平停止当byte1为0,byte2为255时,lc2高电平,lc1低电平,m13正转。当byte1为255,byte2为0时,lc2低电平,lc1高电平,m13反转。实例1:顺序控制m13-m18正转。参考如前举例的m13正反转所述说明及真值表说明。步骤01:byte1为0,lc2输出高电平,byte2为255,lc1输出低电平,m13正转。同时其它byte均为0,电机停转。步骤02:byte3为0,lc4输出高电平,byte4为255,lc3输出低电平,m14正转。同时其它byte均为0,电机停转。步骤03:byte5为0,lc6输出高电平,byte6为255,lc5输出低电平,m15正转。同时其它byte均为0,电机停转。步骤04:byte7为0,lc8输出高电平,byte8为255,lc7输出低电平,m16正转。同时其它byte均为0,电机停转。步骤05:byte9为0,lc10输出高电平,byte10为255,lc9输出低电平,m17正转。同时其它byte均为0,电机停转。步骤06:byte11为0,lc12输出高电平,byte12为255,lc11输出低电平,m18正转。同时其它byte均为0,电机停转。每一步的时间间隔为300ms,每一步骤都是主控模块发送完12个byte的数据后,再发一个同步输出信号,将ic1—ic4已保存的数据输出为电机控制pwm信号输出,从步骤01—步骤06,m13—m18逐个正转后停止。实例2:顺序控制m13-m18反转。参考如前举例的m13正反转所述说明及真值表说明。步骤01:byte1为255,lc2输出低电平,byte2为0,lc1输出高电平,m13反转。同时其它byte均为0,电机停转。步骤02:byte3为255,lc4输出低电平,byte4为0,lc3输出高电平,m14反转。同时其它byte均为0,电机停转。步骤03:byte5为255,lc6输出低电平,byte6为0,lc5输出高电平,m15反转。同时其它byte均为0,电机停转。步骤04:byte7为255,lc8输出低电平,byte8为0,lc7输出高电平,m16反转。同时其它byte均为0,电机停转。步骤05:byte9为255,lc10输出低电平,byte10为0,lc9输出高电平,m17反转。同时其它byte均为0,电机停转。步骤06:byte11为255,lc12输出低电平,byte12为0,lc11输出高电平,m18反转。同时其它byte均为0,电机停转。从步骤01—步骤06,m13—m18逐个反转后停止。实例3:同时控制m13—m18正反转。步骤01:byte1、byte3、byte5、byte7、byte9、byte11均为0,相应的lc2、lc4、lc6、lc8、lc10、lc12输出高电平,byte2、byte4、byte6、byte8、byte10、byte12均为255,相应的lc1、lc3、lc5、lc7、lc9、lc11输出低电平,控制m13—m18同时正转。步骤02:byte1、byte3、byte5、byte7、byte9、byte11均为255,相应的lc2、lc4、lc6、lc8、lc10、lc12输出低电平,byte2、byte4、byte6、byte8、byte10、byte12均为0,相应的lc1、lc3、lc5、lc7、lc9、lc11输出高电平,控制m13—m18同时反转。二、驱动小电流电机工作时的说明。当只需要驱动小电流电机进行单向运转时,可以采用图11的接法,每个电机接到sc1—sc12的其中一个端口上。这种接法只能实现电机单向运转的控制。其传输数据与电机输出通道、小电流电机编号的对应关系如下所示:以m01为例说明:如图11所示,m01接在sc1上。当byte1为255时,表示占空比为255,即100%最大,ic1的out1引脚内部驱动管持续导通,sc1输出低电平,电流从vcc端经过sw1由m01倒灌入ic1的out1引脚,m01转动,电机两端电压占空比为255即100%最大。当byte1为0时,ic1的out1引脚内部驱动管持续关闭,电流无法流入ic1的out1引脚,m01停止,电机两端电压占空比为0。实例1:每隔300ms控制m01—m12顺序驱动。控制步骤如下表格所示:m01—m12接在sc1—sc12上,为了控制m01—m12顺序转动,需要在sc1—sc12上按顺序输出相应的pwm方波。从表格上可以看成,byte1为255,sc1输出低电平,电流从vcc端经过sw1由m01倒灌入ic1的out1引脚,m01电机转动。其它byte为0,相应的sc端口处于高阻状态无法对地导通,m02—m12电机停止。每一步的时间间隔为300ms,每一步骤都是主控模块发送完12个byte的数据后,再发一个同步输出信号,将ic1—ic4已保存的数据输出为电机控制pwm信号输出,每个步骤都只有1个通道的电机驱动,这样就实现了m01—m12依次驱动的效果。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1