本技术涉及单片机驱动,具体涉及一种基于单片机的镜头驱动方法、装置及相关设备。
背景技术:
1、镜头移动是现代相机和光学系统中不可或缺的一个重要功能。无论是实现自动对焦、变焦、防手振等功能,都需要对镜头进行精确的位移控制。相关技术中多采用单片机中的高精度定时器来输出脉冲宽度调制(pwm)波,以实现对直流电机、步进电机、无刷直流电机等各类电机的精确控制,进而通过电机驱动镜头移动以满足镜头的精确移动需求。
2、单片机在实际运用中需要集成多种功能,同时单片机的输出资源有限,一个电机通常仅连接到一个定时器,当定时器输出pwm波的输出引脚被其它功能模块占用时,相关技术中多采用额外增加定时器的方式,即采用额外的定时器来替代被占用的引脚,以控制电机运行。但在实际中,这种方式不仅会因为额外增加定时器导致单片机的功耗增加,而且额外增加的定时器需要重新初始化输出pwm波,保持与原有定时器的输出同步。因此若新增的定时器与原有定时器在初始化时的存在一定误差,会直接影响对电机的精确控制,使得电机在驱动镜头移动时出现偏差,导致后续单片机难以确定镜头精确的移动位置。
技术实现思路
1、本技术提供一种基于单片机的镜头驱动方法、装置及相关设备,能够在单片机定时器的输出引脚被占用时,减少电机驱动镜头移动的偏差,以使单片机能够精确确定镜头移动位置。
2、第一方面,本技术提供了一种基于单片机的镜头驱动方法,应用于单片机,所述单片机包括定时器以及脉冲计数器,所述定时器的第一输出引脚以及第二输出引脚分别与驱动镜头的电机的两极连接,所述电机的两极还分别连接至所述单片机的两个通用引脚,所述电机经编码器与所述脉冲计数器连接,所述方法包括:
3、当检测到所述定时器中的第一输出引脚被占用时,分别获取被占用之前所述第一输出引脚的第一pwm波、以及被占用之前所述第二输出引脚的电平状态;
4、对所述第一pwm波进行反相处理,得到所述第二输出引脚输出的第二pwm波;
5、确定两个所述通用引脚中与所述第一输出引脚连接到所述电机同一极的第一通用引脚,并将所述第二输出引脚的电平状态进行电平翻转,得到所述第一通用引脚的输出电压值;
6、经所述第二输出引脚以及所述第一通用引脚分别将所述第二pwm波以及所述输出电压值输出至所述电机,以控制所述电机驱动镜头移动;
7、接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机驱动所述镜头的移动位置。
8、通过采用上述技术方案,在单片机定时器的输出引脚被占用时,采用反相pwm波和反转电平的复合控制方式,实现对电机转向和转速的精确控制,同时结合中断计数的位移反馈方法,可精确跟踪和计算镜头的实际移动位移。与相关技术中采用其他定时器替换输出引脚的方式相比,能够通过已有的硬件资源继续实现对电机的精确控制,从而能够减少电机驱动镜头移动的偏差,以使单片机能够精确确定镜头移动位置。
9、可选的,所述确定两个所述通用引脚中与所述第一输出引脚连接到所述电机同一极的第一通用引脚,并将所述第二输出引脚的电平状态进行电平翻转,得到所述第一通用引脚的输出电压值,包括:
10、获取被占用之前所述第一输出引脚的第一pwm波的电压幅值,并确定两个所述通用引脚中与所述第一输出引脚连接到所述电机同一极的第一通用引脚;
11、若被占用之前所述第二输出引脚的电平状态为高电平,则将所述第一通用引脚的输出电压值确定为低电平;
12、若被占用之前所述第二输出引脚的电平状态为低电平,则将所述第一通用引脚的的输出电压值确定为与所述第一pwm波的电压幅值相等的高电平。
13、通过采用上述技术方案,获取原第一pwm波的电压幅值参数,并根据第二输出引脚的电平状态在第一通用引脚上还原出相同的高电平值,从而能够精确地在电机两极间重建与第一pwm波完全相同的电压差。这种精密的电压差重建措施,确保了在第一高精度定时器输出引脚被占用时,仍能通过第二通用定时器和通用引脚的辅助,对电机实现与之前完全等同的驱动控制能力,避免了控制精度下降。
14、可选的,所述单片机包括多个定时器,所述定时器与所述电机一一对应连接,所述接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机驱动所述镜头的移动位置之前,还包括:
15、接收所述编码器采集的所述电机转动时产生的脉冲信号,确定当前时刻处于转动状态的目标电机;
16、将所述脉冲计数器配置到所述目标电机对应的脉冲信号的传输路径,并使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机驱动所述镜头的移动位置。
17、通过采用上述技术方案,单片机集成多个定时器分别连接多个电机,实现了多电机控制系统的硬件支持。在需要控制某一目标电机运动时,可自动切换将脉冲计数器配置到该电机的脉冲信号路径,进行精确的位移计数。从而扩展了单片机的控制能力,使其能够同时管理多个独立电机的运动,提高了对于镜头驱动的适应性和灵活性。
18、可选的,所述接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机的转动位置,包括:
19、接收所述编码器采集的所述电机的脉冲信号;
20、当所述脉冲信号的当前计数值达到所述脉冲计数器中预设的上溢出参数时,触发并清除所述脉冲计数器的上溢出中断状态,同时得到数值加一的中断计数数值,并根据所述中断计数数值确定所述电机的转动位置;
21、或,
22、当所述脉冲信号的当前计数值达到所述脉冲计数器中预设的下溢出参数时,触发并清除所述脉冲计数器的下溢出中断状态,同时得到数值减一的中断计数数值,并根据所述中断计数数值确定所述电机的转动位置。
23、通过采用上述技术方案,预先设置上溢出和下溢出参数,利用中断计数的方式,可有效避免由于单片机寄存器位数有限而导致的计数溢出问题,从而大幅提高了位移计算的精度和可靠性。同时上溢出和下溢出中断能够分别记录电机的正反向转动周期数,从而精确确定转动方向,进一步增强了位置检测的准确性。
24、可选的,所述脉冲信号包括第一脉冲信号以及第二脉冲信号,所述第一脉冲信号与所述第二脉冲信号相位差值为90°,所述接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机的转动位置之前,包括:
25、将所述脉冲计数器的模式设置为双通道正交脉冲计数模式,并关闭所述脉冲计数器的滤波使能以及超时使能;
26、当检测到所述第一脉冲信号或所述第二脉冲信号的上升沿或下降沿时,读取并记录所述脉冲信号。
27、通过采用上述技术方案,利用编码器输出的两路正交脉冲信号,通过单片机内部计数器的双通道正交计数模式,可以高效获取电机的转向和转速等运动状态反馈。并且通过记录检测到的每一个脉冲边沿事件,能够准确分析两路脉冲之间的相位差异,从而精确判断出电机的旋转方向。
28、可选的,所述接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机的转动位置之后,还包括:
29、获取所述电机的量程,确定所述量程范围内的测试位置;
30、控制所述电机移动至所述编码器采集的脉冲信号归零的初始位置,确定从所述初始位置移动到所述测试位置的所述电机的转动参数;
31、获取所述电机转动过程中产生的惯性补偿参数、以及所述电机的实际位置,对所述转动参数进行调整。
32、通过采用上述技术方案,预先设置测试位置,并将电机移动至已知初始位置,可以消除位置计数的初始误差,。同时该方案结合了惯性补偿和实际反馈修正等多种控制手段,能够有效抑制和消除惯性、负载变化等因素对电机运动轨迹的影响,从而显著提高了电机驱动镜头移动的精度和稳定性。
33、可选的,所述接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机的转动位置之前,还包括:
34、获取所述编码器的分辨率以及所述镜头移动所需的采集精度;
35、根据所述编码器的分辨率以及所述镜头移动所需的采集精度,确定所述脉冲计数器的上溢出参数。
36、通过采用上述技术方案,结合编码器分辨率和镜头移动采集精度这两个关键参数,能够合理、精确地确定脉冲计数器的上溢出参数,使其具有足够的计数范围,满足镜头在整个行程内的位移检测要求。
37、可选的,所述对所述第一pwm波进行反相处理,得到所述第二输出引脚输出的第二pwm波,包括:
38、获取所述第一pwm波的占空比;
39、根据所述第一pwm波的占空比对所述第一pwm波进行反相处理,得到所述第一定时器的第二输出引脚对应的第二pwm波。
40、通过采用上述技术方案,获取第一pwm波的关键占空比参数,并据此生成与之相反相位的第二pwm波,在第一定时器输出引脚被占用时,可以无缝切换至第二定时器,继续输出与之前完全等效的pwm波驱动电机运行,实现了对电机控制的无中断过渡,保证了电机驱动镜头移动的持续精度。
41、第二方面,本技术提供了一种基于单片机的镜头驱动装置,所述装置包括:
42、信号获取模块,用于当检测到所述定时器中的第一输出引脚被占用时,分别获取被占用之前所述第一输出引脚的第一pwm波、以及被占用之前所述第二输出引脚的电平状态;
43、pwm波确定模块,用于对所述第一pwm波进行反相处理,得到所述第二输出引脚输出的第二pwm波;
44、输出电压值确定模块,用于确定两个所述通用引脚中与所述第一输出引脚连接到所述电机同一极的第一通用引脚,并将所述第二输出引脚的电平状态进行电平翻转,得到所述第一通用引脚的输出电压值;
45、电机驱动模块,用于经所述第二输出引脚以及所述第一通用引脚分别将所述第二pwm波以及所述输出电压值输出至所述电机,以控制所述电机驱动镜头移动;
46、位置确定模块,用于接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机驱动所述镜头的移动位置。
47、第三方面,本技术提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述任意一项方法。
48、第四方面,本技术提供了一种电子设备,包括处理器、存储器和收发器,所述存储器用于存储指令,所述收发器用于和其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行如上述任意一项方法。
49、综上所述,本技术技术方案所带来的有益效果包括:
50、在单片机定时器的输出引脚被占用时,采用反相pwm波和反转电平的复合控制方式,实现对电机转向和转速的精确控制,同时结合中断计数的位移反馈方法,可精确跟踪和计算镜头的实际移动位移。与相关技术中采用其他定时器替换输出引脚的方式相比,能够通过已有的硬件资源继续实现对电机的精确控制,从而能够减少电机驱动镜头移动的偏差,以使单片机能够精确确定镜头移动位置。
1.一种基于单片机的镜头驱动方法,其特征在于,应用于单片机,所述单片机包括定时器以及脉冲计数器,所述定时器的第一输出引脚以及第二输出引脚分别与驱动镜头的电机的两极连接,所述电机的两极还分别连接至所述单片机的两个通用引脚,所述电机经编码器与所述脉冲计数器连接,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述确定两个所述通用引脚中与所述第一输出引脚连接到所述电机同一极的第一通用引脚,并将所述第二输出引脚的电平状态进行电平翻转,得到所述第一通用引脚的输出电压值,包括:
3.根据权利要求1所述的方法,其特征在于,所述单片机包括多个定时器,所述定时器与所述电机一一对应连接,所述接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机驱动所述镜头的移动位置之前,还包括:
4.根据权利要求1所述的方法,其特征在于,所述接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机的转动位置,包括:
5.根据权利要求1所述的方法,其特征在于,所述脉冲信号包括第一脉冲信号以及第二脉冲信号,所述第一脉冲信号与所述第二脉冲信号相位差值为90°,所述接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机的转动位置之前,包括:
6.根据权利要求1所述的方法,其特征在于,所述接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机的转动位置之后,还包括:
7.根据权利要求1所述的方法,其特征在于,所述接收所述编码器采集的所述电机转动时产生的脉冲信号,使用所述脉冲计数器中预设的上溢出参数以及下溢出参数对所述脉冲信号进行中断计数,确定所述电机的转动位置之前,还包括:
8.根据权利要求1所述的方法,其特征在于,所述对所述第一pwm波进行反相处理,得到所述第二输出引脚输出的第二pwm波,包括:
9.一种基于单片机的镜头驱动装置,其特征在于,所述装置包括:
10.一种电子设备,其特征在于,包括处理器、存储器、用户接口及网络接口,所述存储器用于存储指令,所述用户接口和网络接口用于给其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行如权利要求1-7任意一项所述的方法。
