一种基于CAN总线的舵机的控制方法与流程

文档序号:25035953发布日期:2021-05-11 17:08阅读:395来源:国知局
一种基于CAN总线的舵机的控制方法与流程

本发明属于舵机控制技术领域,尤其涉及一种基于can总线的舵机的控制方法。



背景技术:

舵机是比较精密的伺服系统,通过pwm信号进行控制,输出位置与控制信号脉宽成对应关系,控制方法简单,在工业领域和航空电器领域有着广泛的应用。

目前控制舵机组有两种方法,分别为集中控制法和串联控制法,都存在自身的缺点,一方面集中控制法是由飞控板电路板上同时产生多路pwm控制信号,并且根据舵机的位置不定,控制信号线需要延长,由于pwm信号是3.3v或者5v的高低电平信号,简称ttl逻辑电平,ttl逻辑信号互扰比较严重,舵机经常出现抖动现象,并且ttl的有效通信距离很多,通常在1-2米以内,超过这个距离,信号的质量会严重下降;另一方面,串联控制法由串口通信的自身缺陷所定,串口通信最大通信速率115200bit/s,并且通信的距离越长通信的速率越低,否则误码率会急速升高,所以这种方式控制的稳定性和效率比都较低,很难满足实时性要求高的系统的要求。



技术实现要素:

本发明提供一种基于can总线的舵机的控制方法,旨在解决现有控制方式的成本高、产率低、合格率低、反应速度慢、副作用、效果差的问题。

本发明是这样实现的,一种基于can总线的舵机的控制方法,其通过一种控制系统实现控制,其特征在于:所述控制系统包括飞控板、指令控制器、舵机控制器、舵机和can总线;

所述飞控板用于生成控制指令和接收指令控制器的反馈信息;

所述指令控制器用于接收所述控制指令并输出,所述飞控板的输出端连接所述指令控制器的输入端,并接受舵机控制器的反馈信号,发送给飞控板;

所述舵机控制器用于接收所述指令控制器输出的所述控制指令,并转化为控制信号,然后控制所述舵机电机的转动,所述指令控制器的输出端连接所述can总线,所述舵机控制器的输入端连接所述can总线,所述舵机控制器的输出端连接所述舵机;

所述控制方法包括以下步骤;

首先通过所述飞控板生成控制指令并传输到所述指令控制器;

然后所述指令控制器将所述控制指令通过所述can总线传输到所述舵机控制器;

最后所述舵机控制器将所述控制指令转化为控制信号,控制所述舵机电机的转动,舵机的位置反馈、状态和报警信息通过反舵机控制器发送到指令控制器,最终反馈到飞控板,形成一个闭环控制系统。

本发明还提供优选的,所述控制信号为pwm控制信号。

本发明还提供优选的,所述指令控制器包括pc104总线、双口ram、译码器、第一mcu微处理器、第一can控制器、光耦隔离器和第一can接口,所述pc104的输入端连接所述飞控板的输出端和所述双口ram的输出端,所述pc104总线的输出端连接所述译码器的输入端和所述双口ram的输入端,所述双口ram的输出端连接所述mcu控制器的输入端,所述mcu微处理器的输出端连接所述双口ram的输入端和所述第一can控制器的输入端,所述第一can控制器的输出端连接所述光耦控制器的输出端,所述光耦控制器通过所述第一can接口连接所述can总线。

本发明还提供优选的,所述舵机控制器包括第二can接口、光耦隔离器、第二can控制器、第二mcu微处理器、芯片8253、脉冲电路和反相器,所述光耦隔离器的输入端通过所述第二can接口连接所述can总线,所述光耦隔离器的输入端连接所述第二can控制器的输入端,所述第二can控制器的输出端连接所述第二mcu微处理器的输入端,所述第二mcu微处理器的输出端连接所述芯片8253的输入端和所述脉冲电路的输入端,所述脉冲电路的输出端连接所述芯片8253的输入端,所述芯片8253的输出端连接所述反相器的输入端,所述反相器的输出端连接所述舵机。

本发明还提供优选的,所述舵机和所述舵机控制器均设置有多个,每一个所述舵机连接一个所述舵机控制器。

本发明还提供优选的,所述第一mcu微处理器和所述第二mcu微处理器均采用stm32f072芯片。

本发明还提供优选的,所述第一can控制器和所述第二can控制器的型号均为sja1000。

本发明还提供优选的,所述第一can接口和所述第二can接口的型号均为82c250。

与现有技术相比,本发明的有益效果是:本发明的一种基于can总线的舵机的控制方法,通过设置用于生成控制指令的控制板和用于传输控制指令的指令控制器,指令控制器通过can总线连接舵机控制器,舵机控制器将控制指令转换为控制信号并输出到舵机以控制舵机进行转动,本发明通过can总线传输控制指令,有效的解决的系统的实时性问题,且本发明具有信号互扰小,系统稳定性强的特点。

附图说明

图1为本发明的一种基于can总线的舵机的控制方法的的原理示意图。

图2为本发明的指令控制器的原理示意图。

图3为本发明的舵机控制器的原理示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参阅图1-3,本发明提供一种技术方案:一种基于can总线的舵机的控制方法,其通过一种控制系统实现控制,所述控制系统包括飞控板、指令控制器、舵机控制器、舵机和can总线。

所述飞控板用于生成控制指令,所述指令控制器用于接收所述控制指令并输出,所述飞控板的输出端连接所述指令控制器的输入端,所述舵机控制器用于将接收所述指令控制器输出的所述控制指令,并转化为控制信号,然后控制所述舵机电机的转动,所述指令控制器的输出端连接所述can总线,所述舵机控制器的输入端连接所述can总线,所述舵机控制器的输出端连接所述舵机,所述舵机和所述舵机控制器均设置有多个,每一个所述舵机连接一个所述舵机控制器。

所述指令控制器包括pc104总线、双口ram、译码器、第一mcu微处理器、第一can控制器、光耦隔离器和第一can接口,所述pc104的输入端连接所述飞控板的输出端和所述双口ram的输出端,所述pc104总线的输出端连接所述译码器的输入端和所述双口ram的输入端,所述双口ram的输出端连接所述mcu控制器的输入端,所述mcu微处理器的输出端连接所述双口ram的输入端和所述第一can控制器的输入端,所述第一can控制器的输出端连接所述光耦控制器的输出端,所述光耦控制器通过所述第一can接口连接所述can总线。

其中,指令控制器的主要功能是获取飞控板生成的控制指令,然后将控制指令发送给相应的舵机控制器。指令控制器通过pc104总线与飞控板进行通信,通过can总线与舵机控制器进行通信,指令控制器与飞控板之间的信息交换通过双口ram完成。ram存储空间大小的选择可以根据系统信息的交换量具体确定,在这里选用双口ramidt7134,具有4kbyte的存储空间,可以满足一般系统的要求。pc104总线的地址位为20b,双口ramidt7134的地址位为12b,通过gal16v8对pc104总线的高8b地址进行译码生成双口ramidt7134的片选信号。每个舵机对应双口ramidt7134一段固定的存储单元,飞控板机将生成的控制指令写到相应的地址单元。

微处理处理器选用stm32f103微处理器芯片。由于stm32f103单片机低位数据地址线复用,而双口ramidt7134是分离的,所以需要通过74ls373对低位地址进行锁存。双口ramidt7134高4b地址与pb口的低4b相连,片选信号与pa6相连,这样双口ram的地址定义为0xb000到0xbfff。

can控制器选用sja1000,can控制器接口选用82c250,为了避免干扰,在can控制器sja1000和can接口82c250之间加光耦隔离器6n137进行光电隔离。sja1000是数据地址线复用,因此信号线、数据线与单片机直接相连即可。用pa7输出作为sja1000的片选信号,这样sja1000寄存器地址范围定义为0x7000到0x70ff。stm32f103工作在查询状态,不断查询双口ram的指定地址段,如果接收到新的控制指令,就读取指令,并将其通过can总线发送给相应的舵机控制器。

所述舵机控制器包括第二can接口、光耦隔离器、第二can控制器、第二mcu微处理器、芯片8253、脉冲电路和反相器,所述光耦隔离器的输入端通过所述第二can接口连接所述can总线,所述光耦隔离器的输入端连接所述第二can控制器的输入端,所述第二can控制器的输出端连接所述第二mcu微处理器的输入端,所述第二mcu微处理器的输出端连接所述芯片8253的输入端和所述脉冲电路的输入端,所述脉冲电路的输出端连接所述芯片8253的输入端,所述芯片8253的输出端连接所述反相器的输入端,所述反相器的输出端连接所述舵机,所述第一mcu微处理器和所述第二mcu微处理器均采用stm32f072芯片,所述第一can控制器和所述第二can控制器的型号均为sja1000,所述第一can接口和所述第二can接口的型号均为82c250。

其中,舵机控制器的主要功能是收到控制指令后,将控制指令转化为pwm信号控制相应舵机的运动,sja1000接收到数据块后,以中断的方式通知单片机已经接收到控制指令。单片机读取控制指令,并将其转换为计数初值,并写入芯片8253。处理器选用stm32f072,使用芯片max813提供复位脉冲并监视单片机的运行。芯片8253有3个定时器,分别工作在硬件可重触发单稳方式。在这种方式下,计数器相当于一个可编程的单稳电路,触发输入为gate信号,out为输出端,当处于计数状态为低电平,空闲状态为高电平。clk信号由12m的晶振提供,gate信号由脉冲电路内的单片机89c51的p1.1提供。pwm信号的周期由gate控制,通过单片机89c51的内部时钟在p1.1脚产生周期为16ms的脉冲信号作为芯片8253的触发信号,pwm信号的脉宽由计数器的计数初值决定,通过反相器74hc04对out端的输出进行反相生成pwm控制信号。一个芯片8253可以同时产生3路pwm控制信号。

综上所述,本发明设计了一种基于can总线的舵机的控制方法,系统采用can总线传输控制指令,can总线的传输速率可以达到1mb/s,有效地解决了系统的实时性问题;pwm信号产生电路安装在舵机附近,并采用硬件计数器产生,这样有效地降低了信号的互扰,增强了系统的稳定性。

本发明首先设计了指令控制器和舵机控制器两套核心单元,各自有各自的软硬件系统,相对独立;针对多舵机系统,本发明的控制方法具有独特的优势,根据can通信的特点,本系统最多可以挂载128个舵机。在航空领域,特别是大型无人直升机的舵控系统中,可以得到很好的运用;本发明的舵机控制器的pwm信号是由8253的各路定时器采用同一个clk信号,同一个gate信号,因此各路信号的周期和相位是相同的,对于需要多个舵机同步运行或协同运动的应用场合中有着得天独厚的优势。

本发明的一种基于can总线的舵机的控制方法包括以下步骤:

s1:首先飞控板与指令控制器之间通过pc104进行通信,飞控板将各个舵机需要运动的位置指令发给指令控制器。

s2:然后所述指令控制器将所述控制指令通过所述can总线传输到所述舵机控制器,指令控制器通过内部的双口ram储存和读取指令,然后解析飞控板对于各个舵机控制运动的指令,指令控制器成功获取飞控板的指令以后,通过can控制器将运动指令发送到can总线上。

s3:最后所述舵机控制器将所述控制指令转化为控制信号,控制所述舵机电机的转动,每个舵机控制器通过自身的can控制器读取指令,鉴于can通信的特点,每条指令都是一个通信帧,每个帧信息包含了舵机控制器的id(1,2,3,4……)信息,每个舵机控制器根据各自的id或者自己的指令信息。

舵机控制器获得自己的指令信息后,由mcu控制8253和脉冲电路产生pwm信号来控制各自舵机的运动,同时各个舵机控制器可以将自己的位置信息和错误代码通过can总线反馈到指令控制器。

指令控制器可以将舵机控制器反馈来的各个舵机的位置信息和错误代码储存到双口ram中,让飞控板在ram中读取各个舵机的位置信息和错误代码,从而做出判断。

综上所述,本发明的控制方法是一套完善的、闭环控制方法,结合专门设计的两个核心单元,能够非常完善的应用于大型无人直升机航电的舵机系统中,并且在实际的无人机系统,已经使用了该系统,性能十分优秀。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1