CN116345984B - 一种线性马达的控制方法及电子设备 - Google Patents
一种线性马达的控制方法及电子设备 Download PDFInfo
- Publication number
- CN116345984B CN116345984B CN202310616780.1A CN202310616780A CN116345984B CN 116345984 B CN116345984 B CN 116345984B CN 202310616780 A CN202310616780 A CN 202310616780A CN 116345984 B CN116345984 B CN 116345984B
- Authority
- CN
- China
- Prior art keywords
- vibration
- linear motor
- chip
- time
- drive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000004044 response Effects 0.000 claims abstract description 21
- 238000004891 communication Methods 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 9
- 239000010410 layer Substances 0.000 description 41
- 230000006870 function Effects 0.000 description 20
- 238000007726 management method Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 238000010295 mobile communication Methods 0.000 description 9
- 230000002159 abnormal effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 239000012792 core layer Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000005672 electromagnetic field Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000004622 sleep time Effects 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P25/00—Arrangements or methods for the control of AC motors characterised by the kind of AC motor or by structural details
- H02P25/02—Arrangements or methods for the control of AC motors characterised by the kind of AC motor or by structural details characterised by the kind of motor
- H02P25/06—Linear motors
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P23/00—Arrangements or methods for the control of AC motors characterised by a control method other than vector control
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P25/00—Arrangements or methods for the control of AC motors characterised by the kind of AC motor or by structural details
- H02P25/02—Arrangements or methods for the control of AC motors characterised by the kind of AC motor or by structural details characterised by the kind of motor
- H02P25/032—Reciprocating, oscillating or vibrating motors
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Apparatuses For Generation Of Mechanical Vibrations (AREA)
Abstract
本申请提供了一种线性马达的控制方法及电子设备,涉及马达驱动技术领域。该方法可使线性马达实际的振动时长达到设备要求的振动时长,减少马达撞壁风险。该方法包括:接收到用于触发线性马达振动的第一振动事件;响应于第一振动事件,在执行第一操作后控制振动芯片向线性马达输出驱动电压,以使线性马达振动,第一操作包括线性马达振动前的预操作;在从执行第一操作开始的第一时长后,控制振动芯片停止向线性马达输出驱动电压,以使线性马达停止振动,第一时长为第一振动事件对应的振动时长。
Description
技术领域
本申请涉及马达驱动技术领域,尤其涉及一种线性马达的控制方法及电子设备。
背景技术
目前,为了提高用户在使用电子设备时的使用体验,当用户对终端执行某些操作时,终端可以通过振动的方式对用户进行提示。例如用户在使用终端玩游戏时,终端可在用户进行预设操作时进行振动,以给用户触觉反馈,使用户沉浸式体验。其中,终端的振动是通过安装于该终端中的马达的振动来实现的。
在马达振动过程中,先是由上层应用下发送振动指令以控制马达开始振动,在马达的振动时长达到上层应用指定的时长时,再由上层应用下发停止振动的指令以控制马达停止振动。但由于下发振动指令所需的时间往往比下发停止振动的指令所需的时间更久,这会导致马达实际振动的时长达不到上层应用指定的时长,更有甚至可能导致马达撞壁,影响马达的使用寿命。
发明内容
本申请实施例提供一种线性马达的控制方法及电子设备,可使线性马达实际的振动时长达到设备要求的振动时长,减少马达撞壁风险。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请提供了一种线性马达的控制方法,应用于电子设备,电子设备包括振动芯片及线性马达,方法包括:接收到用于触发线性马达振动的第一振动事件;响应于第一振动事件,在执行第一操作后控制振动芯片向线性马达输出驱动电压,以使线性马达振动,第一操作包括线性马达振动前的预操作;在从执行第一操作开始的第一时长后,控制振动芯片停止向线性马达输出驱动电压,以使线性马达停止振动,第一时长为第一振动事件对应的振动时长。如此,通过使线性马达实际的振动时长达到设备所要求的振动时长,可以确保振动波形完整性、减少线性马达撞壁的风险,保障线性马达的使用寿命。
在第一方面提供的一种实现方式中,方法还包括:判断是否在从接收到第一振动事件起的第二时长内执行第一操作;在从执行第一操作开始的第一时长后,控制振动芯片停止向线性马达输出驱动电压,以使线性马达停止振动,包括:若在从接收到第一振动事件起的第二时长内执行第一操作,在从执行第一操作开始的第一时长后,控制振动芯片停止向线性马达输出驱动电压,以使线性马达停止振动。
在第一方面提供的一种实现方式中,方法还包括:若未在从接收到第一振动事件起的第二时长内执行第一操作,在从接收到第一振动事件起的第二时长结束时,控制振动芯片停止向线性马达输出驱动电压,以使线性马达停止振动。
也就是说,该第一操作可以具备有效时限,有效时限即从接收到第一振动事件起的第二时长内。这样可以避免电子设备一直等待振动驱动执行第一操作导致线性马达一直不停止振动的现象出现。
在第一方面提供的一种实现方式中,电子设备上部署有振动硬件抽象层HAL和振动驱动,响应于第一振动事件,在执行第一操作后控制振动芯片向线性马达输出驱动电压,以使线性马达振动,包括:响应于第一振动事件,振动HAL向振动驱动发送第一振动事件对应的驱动参数;振动驱动执行第一操作,并在执行第一操作后根据驱动参数控制振动芯片向线性马达输出驱动电压,以使线性马达振动。
在第一方面提供的一种实现方式中,方法还包括:振动驱动在执行第一操作后,向振动HAL发送驱动唤醒通知,驱动唤醒通知用于指示振动驱动已执行第一操作。
在第一方面提供的一种实现方式中,电子设备还部署有振动服务,在从执行第一操作开始的第一时长后,控制振动芯片停止向线性马达输出驱动电压,包括:响应于接收驱动唤醒通知,振动HAL在接收到驱动唤醒通知起的第一时长结束时向振动服务发送振动执行反馈,振动执行反馈用于指示线性马达已振动;响应于接收到振动执行反馈,振动服务向振动HAL发送停止振动的指令;振动HAL向振动驱动发送停止振动的指令;响应于停止振动的指令,振动驱动控制振动芯片停止向线性马达输出驱动电压,以使线性马达停止振动。
在第一方面提供的一种实现方式中,响应于接收驱动唤醒通知,振动HAL在接收到驱动唤醒通知起的第一时长结束时向振动服务发送振动执行反馈,包括:响应于在从向振动驱动发送驱动参数起的第二时长内接收到驱动唤醒通知,振动HAL在接收到驱动唤醒通知起的第一时长结束时向振动服务发送振动执行反馈。
在第一方面提供的一种实现方式中,方法还包括:振动驱动在执行第一操作后,将通知标志位设置为有效状态,用于指示振动驱动已执行第一操作。如此,便于振动HAL通过读取该通知标志位来确定振动驱动已执行第一操作。
在第一方面提供的一种实现方式中,方法还包括:响应于第一振动事件,振动HAL将通知标志位设置为无效状态,用于指示振动驱动未执行第一操作。如此,可以清除接收到振动指令前的异常状态,避免振动HAL读取有误的通知标志位而误操作。
在第一方面提供的一种实现方式中,第一振动事件包括以下各项之一:接收到用户解锁电子设备的操作、接收到用户在线支付的操作、接收到用户录入人脸的操作、接收到用户释放技能的操作、接收到来电请求、或者当前时间与预设时间匹配。
第二方面,本申请还提供了一种电子设备,电子设备包括:存储器、一个或多个处理器、振动芯片和线性马达;存储器、振动芯片与处理器耦合,振动芯片与线性马达连接;其中,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被处理器执行时,使得电子设备执行第一方面中任意一种实现方式的方法。
第三方面,本申请还提供了一种计算机可读存储介质,包括计算机指令;当计算机指令在电子设备上运行时,使得电子设备执行第一方面中任意一种实现方式的方法。
第四方面,本申请提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行如第一方面及其任一种可能的设计方式的方法。
第五方面,本申请提供一种芯片系统,该芯片系统包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。上述芯片系统可以应用于包括通信模块和存储器的电子设备。该接口电路用于从电子设备的存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,电子设备可以执行如第一方面及其任一种可能的设计方式的方法。
其中,第二方面至第五方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为相关技术中电子设备控制线性马达开始振动/停止振动的时间节点图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3为本申请实施例提供的一种电子设备的软件架构图;
图4为本申请实施例提供的一种模块间交互图;
图5为本申请实施例提供的一种线性马达的控制方法的流程示意图;
图6为本申请实施例提供的另一种线性马达的控制方法的流程示意图;
图7为本申请实施例中控制线性马达振动过程的时间节点图;
图8为线性马达在优化前不同振动时长下的振动波形示意图;
图9为线性马达在优化后不同振动时长下的振动波形示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
在本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍。
线性马达,是通过脉冲电压信号产生变化的电磁场,由变化的电磁场来驱动磁钢带动质量块(也可称为动子)进行周期运动的机构。其中,脉冲电压信号的频率、幅度不同,则线性马达的振动强度可以不同。
谐振频率,也可称为固有频率,指能够使线性马达发生共振的频点。当驱动电压的频率为该谐振频率时,线性马达可以在很小的驱动电压的作用下达到很大的振幅。因此,一般驱动线性马达以谐振频率运行。
本申请实施例提供的线性马达的控制方法能够应用于需要线性马达振动的场景中,例如游戏场景、聊天界面下拉场景、来电提醒场景等。其中,在游戏场景下,电子设备可响应于用户释放技能的操作而振动。在聊天界面下拉场景下,电子设备可响应于用户下拉聊天界面(例如微信™应用的聊天主界面)的操作而振动。又例如,在来电提醒场景下,电子设备可响应于接收到来电而振动。
参阅图1,为相关技术中电子设备控制线性马达开始振动/停止振动的时间节点图。其中,t1为振动芯片接收到振动指令的时刻,t2为振动芯片控制线性马达开始振动的时刻,t3为振动芯片接收到停止振动的指令的时刻,t4为振动芯片控制线性马达停止振动的时刻,t5时刻为振动芯片准备好控制线性马达的时刻。其中,t2时刻与t1时刻的时间差为ΔT1,用于表征电子设备控制线性马达开始振动过程中存在的时延。t4时刻与t3时刻的时间差为ΔT2,用于表征电子设备控制线性马达停止振动过程中存在的时延。t3时刻与t1时刻的时间差为ΔT3,用于表征电子设备所要求的振动时长。t4时刻与t2时刻的时间差为ΔT4,用于表征线性马达实际的振动时长。t5时刻与t1时刻的时间差为ΔT5,用于表征确认振动芯片是否准备好控制线性马达所需的时间。t2时刻与t5时刻的时间差为ΔT6,指振动芯片控制线性马达振动所存在的时延,其中,ΔT6与ΔT2相同。
根据图1可知,由于相关技术中电子设备控制线性马达振动的过程中需要先确认振动芯片的状态以确定振动芯片是否准备好控制线性马达,并在确认振动芯片准备好控制线性马达的情况下才通过振动芯片驱动线性马达振动(即存在ΔT5),导致电子设备控制线性马达开始振动过程中存在的时延比控制线性马达停止振动过程中的时延更长,即ΔT1>ΔT2。这会导致ΔT4<ΔT3,即线性马达实际的振动时长(即ΔT4)达不到电子设备所要求的振动时长(即ΔT3)。马达实际的振动时长小于设备所要求的振动时长不仅会导致振动不完整,使用户感受到的振感异常;还可能进一步导致线性马达撞壁,撞壁不仅会产生异响并导致振动拖沓,还会影响线性马达的使用寿命。
针对上述问题,本申请实施例提供一种线性马达的控制方法,电子设备可以响应于接收到的第一振动事件,在执行第一操作后控制振动芯片向线性马达输出驱动电压,以使线性马达振动,第一操作包括线性马达振动前的预操作;在从执行第一操作开始的第一时长后,控制振动芯片停止向线性马达输出驱动电压,以使线性马达停止振动,第一时长为第一振动事件对应的振动时长。如此,可使线性马达实际的振动时长达到设备要求的振动时长,进而保证振动波形完整性,减少线性马达撞壁的风险,保障线性马达的使用寿命。
本申请实施例提供一种线性马达的控制方法,可应用于包括线性马达的电子设备。其中,电子设备可以为手机、平板电脑、个人通信业务(personal communicationservice,PCS)电话、虚拟现实(virtual reality,VR)电子设备、增强现实(augmentedreality,AR)设备、工业控制(industrial control)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等,在此不作具体限制。
图2为本申请实施例提供的一种电子设备的结构示意图。如图2所示,电子设备可以包括:处理器210,外部存储器接口220,内部存储器221,通用串行总线(universalserial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriber identification module,SIM)卡接口295等。
其中,处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。处理器210可以是电子设备的神经中枢和指挥中心。处理器210可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行电子设备的各种功能应用以及数据处理。例如,在本申请实施例中,处理器210可以通过执行存储在内部存储器221中的指令,内部存储器221可以包括存储程序区和存储数据区。
其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)、马达291的配置文件等。存储数据区可存储电子设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为电子设备供电。
电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,外部存储器,显示屏294,摄像头293,和无线通信模块260等供电。在一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。在一些实施例中,电子设备的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。
移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块250的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块250的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。
无线通信模块260可以提供应用在电子设备上的包括WLAN(如(wirelessfidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigationsatellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(nearfield communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
电子设备可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
传感器模块280可以包括压力传感器,陀螺仪传感器,气压传感器,磁传感器,加速度传感器,距离传感器,接近光传感器,指纹传感器,温度传感器,触摸传感器,环境光传感器和骨传导传感器等传感器。电子设备可通过传感器模块280采集各种数据。
电子设备通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏294用于显示图像,视频等。该显示屏294包括显示面板。
电子设备可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。ISP用于处理摄像头293反馈的数据。摄像头293用于捕获静态图像或视频。在一些实施例中,电子设备可以包括1个或N个摄像头293,N为大于1的正整数。
按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和电子设备的接触和分离。电子设备可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在另一些实施例中,电子设备也可以包括比上述实施例提供的更多或者更少的模块,各个模块之间也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
上述电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以Android系统的分层架构为例,示例性说明电子设备的软件结构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过接口通信。在一些实施例中,Android系统可以包括应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,硬件抽象层(hardware abstraction layer,HAL)以及内核层。需要说明的是,本申请实施例以Android系统举例来说明,在其他操作系统中(例如,IOS系统等),只要各个功能模块实现的功能和本申请的实施例类似也能实现本申请的方案。
其中,应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,设置,音乐,锁屏,短信息等应用程序。当然,应用程序层还可以包括其他应用程序包,例如支付应用,购物应用、银行应用、聊天应用或理财应用等第三方应用,本申请不做限定。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。例如可以包括活动管理器、窗口管理器,内容提供器,视图系统,资源管理器,通知管理器,振动服务(vibrator service)等,本申请实施例对此不做任何限制。振动服务用于提供振动相关支持的服务。
系统库可以包括多个功能模块。例如,表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如,OpenGL ES),二维图形处理库(例如,SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式。
OpenGL ES用于实现三维图形绘图,图像渲染,合成,和图层处理等。
SGL是2D绘图的绘图引擎。
安卓运行时(android runtime)包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
HAL层是对Linux内核驱动程序的封装,向上提供接口,屏蔽底层硬件的实现细节。HAL层中可以包括振动HAL(vibrator HAL),相机HAL(camera HAL)以及振动算法库等。
其中,振动HAL可包括通用振动接口(也可称为第一接口)、自研振动接口(也可称为第三接口)和4D振动接口(也可称为第二接口)等。该通用振动接口、自研振动接口和4D振动接口均可与内核层的振动驱动交互。三种振动接口的区别在于所处理的振动参数不同。
振动算法库可与振动HAL交互,根据振动HAL传输的振动描述数据构建电压驱动波形并将构建的电压驱动波形数据传输给振动HAL。
内核层是硬件和软件之间的层。其中,该内核层包括振动驱动、显示驱动、音频驱动等。该振动驱动是一个允许高级计算机软件与硬件交互的程序,也就是驱使马达工作的一组程序,通过该振动驱动可以实现对线性马达的控制。在本申请实施例中,该振动驱动可包括自研驱动(也可称为第一驱动)和三方驱动(也可称为第二驱动)。
在本申请实施例中,该内核层采用输入(input)框架。input框架用于实现对硬件设备(例如振动芯片)的读写访问、中断设置,并把硬件产生的事件转换为核心层定义的规范提交给应用程序框架层。具体的,input框架包括输入事件层(input handler)、输入内核层(input core)以及输入驱动层(input device)。其中,输入处理器可以处理输入内核上报的输入事件,以及给HAL层提供访问接口。输入内核起承上启下的作用,可以通知输入处理器对事件进行处理,也可以为输入设备提供操作接口。输入驱动层可以接收来自底层的输入事件并转发给上层的输入处理器。其中,振动驱动、显示驱动、音频驱动等驱动位于该输入驱动层。在input框架下,驱动(例如振动驱动)不能有睡眠(sleep)操作,否则会导致内核崩溃,从而导致手机发生崩溃(crush)。
如图3所示,电子设备还包括硬件层。硬件层包括存储器、振动芯片和线性马达等。其中,振动芯片用于输出驱动电压给线性马达,以驱动线性马达振动。线性马达用于振动以给用户带来振感。
下面对本申请实施例提供的线性马达的控制方法所涉及的软件模块和模块间的交互进行说明。如图4所示,应用层中的第一应用可以通过调用预设的应用程序接口(application programming interface,API)与应用程序框架层中的振动服务交互,向振动服务发送振动指令,该振动指令中携带有振动时长。振动服务可与HAL层的振动HAL交互,并向振动HAL发送振动指令。振动HAL可与内核层的振动驱动交互,向振动驱动发送驱动参数。振动驱动可以向振动芯片发送驱动参数。振动芯片可在执行预操作后控制线性马达振动。此外,振动驱动还可以向振动HAL发送驱动唤醒通知,振动HAL可以在振动时长的结束时刻向振动服务发送振动执行反馈。振动服务可以向振动HAL发送停止振动的指令,振动HAL向振动驱动发送停止振动的指令,振动驱动向振动芯片发送停止振动的指令,振动芯片可控制线性马达停止振动。
在本申请实施例中,电子设备可以接收触发线性马达振动的第一振动事件。
其中,第一振动事件可包括使线性马达振动的事件,根据实际应用场景不同,该第一振动事件可以不同。例如,第一振动事件包括接收到用户解锁电子设备的操作,接收到用户在线支付的操作,接收到用户录入人脸的操作,接收到用户释放技能的操作,接收到来电请求,接收到用户下拉聊天界面(例如微信™应用的聊天界面)的操作,接收到用户使用输入应用(例如**输入法应用)输入信息的操作,或者当前时间与预设时间匹配等。
以及,电子设备还可响应第一振动事件,并在执行第一操作后控制振动芯片向线性马达输出驱动电压,以使线性马达振动。
在一种可选的实施方式中,第一操作包括线性马达振动前的预操作。示例性的,该第一操作包括:在振动驱动控制振动芯片输出驱动电压前,振动驱动与振动芯片之间用于确定振动芯片状态的多次通信。其中,振动芯片状态可包括振动芯片是否上电、振动芯片与处理器通信是否正常、振动芯片与线性马达通信是否正常等。
在本申请实施例中,电子设备还可以在从执行第一操作开始的第一时长后,控制振动芯片停止向线性马达输出驱动电压,以使线性马达停止振动,第一时长为第一振动事件对应的振动时长。如此,可避免执行第一操作造成的时延对控制线性马达停止的过程所需时间造成的影响,使线性马达实际的振动时长与要求的振动时长相等。
在一种可选的实施方式中,电子设备还可以判断是否在从接收到第一振动事件起的第二时长内执行第一操作。
若在从接收到第一振动事件起的第二时长内执行第一操作,在从执行第一操作开始的第一时长后控制振动芯片停止向线性马达输出驱动电压。若未在从接收到第一振动事件起的第二时长内执行第一操作,在从接收到第一振动事件起的第二时长结束时控制振动芯片停止向线性马达输出驱动电压。
也就是说,第一操作存在有效期,有效期即为从接收到第一振动事件起的第二时长内,这样可以避免电子设备一直等振动驱动执行第一操作导致线性马达一直不停止振动的现象出现。
下面结合附图具体说明本申请实施例提供的线性马达的控制方法。
参阅图5,为本申请实施例提供的一种线性马达的控制方法的流程示意图,该方法可以由图1所示的电子设备执行。如图5所示,该线性马达的控制方法包括S501~S516。
S501,响应于接收到第一振动事件,第一应用向振动服务发送振动指令。
其中,关于第一振动事件的描述参见前文,在此不再赘述。
相应地,第一应用为该第一振动事件对应的应用。
例如,第一振动事件为接收到用户在线支付的操作,则该第一应用为支付应用。
又例如,第一振动事件为接收到用户释放技能的操作,则该第一应用为游戏应用。
在本申请实施例中,振动指令携带有振动参数,该振动参数用于指示第一应用所需求的振动方式。在本实施例中,根据第一应用所调用的振动接口,该振动参数包括的内容可以不同。其中,第一应用所调用的振动接口可包括:通用振动接口、原生振动接口以及4D振动接口。
通用振动接口也可以称为谷歌振动接口,可通过振动驱动实现对线性马达和非线性马达的控制。对于调用通用振动接口的应用,其发送的振动参数可包括振动时长、起始时间等线性马达和非线性马达均能够使用的参数。
原生振动接口是设备厂商自己研发的振动接口,可通过振动驱动实现对线性马达的控制。对于调用原生振动接口的应用,其发送的振动参数可包括振动波形的名称和振动时长等信息。其中,电子设备中存储有开发人员预先设计的多种振动波形的描述文件,其中每个振动波形具有不同的名称,该原生振动接口可通过接收到的振动波形的名称查找到相应的描述文件,并基于描述文件解析得到振动描述数据。这种振动描述数据用于描述振动波形。
4D振动接口可以是设备厂商和第三方联合开发的振动接口,可通过振动驱动实现对线性马达的控制。对于调用4D振动接口的应用,其发送的振动参数包括振动描述数据。该振动描述数据包括用于描述振动波形的振动参数,例如振动时长、频率、强度等。
S502,振动服务向振动HAL发送振动指令。
其中,关于振动指令的描述参见S502,在此不再赘述。
在本申请实施例中,振动服务可以向振动HAL的通用振动接口、原生振动接口或4D振动接口发送振动指令。
S503,振动HAL将通知标志位设置为无效状态。
在一种可选的实施方式中,通知标志位可包括有效状态(例如“1”)和无效状态(例如“0”),若通知标志位为“1”,则表示振动芯片处于第一状态;若通知标志位为“0”,则表示振动芯片未处于第一状态。示例性的,振动HAL可以将通知标志位设置为“0”。
可以理解地,通过将通知标志位置为无效状态可以清除接收到振动指令前的异常状态,避免振动HAL读取有误的通知标志位而误操作。
前文已经说明,振动服务可以向振动HAL的通用振动接口、原生振动接口或4D振动接口发送振动指令。响应于接收到振动指令,不同的振动接口除了将通知标志位设置为无效状态外,还可以执行不同的操作。
例如,若振动服务向振动HAL的通用振动接口发送振动指令,振动HAL(即通用振动接口)可以将通知标志位设置为无效状态,并向振动驱动发送该振动指令。
又例如,若振动服务向振动HAL的原生振动接口或4D振动接口发送振动指令,振动HAL(即原生振动接口或4D振动接口)可以将通知标志位设置为无效状态,并获取振动参数对应的驱动电压波形数据,以及将驱动电压波形数据传输给振动驱动。
下面以振动服务向振动HAL的原生振动接口或4D振动接口发送振动指令为例进行说明。
S504,振动HAL向振动算法库发送振动参数。
可以理解地,振动参数包括用于描述振动波形的振动描述数据。
S505,振动算法库向振动HAL发送驱动参数。
其中,振动算法库可根据该振动波形数据生成驱动参数,并向振动HAL发送驱动参数。驱动参数可以理解为驱动电压的一种位移码流,用于描述驱动电压波形,体现驱动电压在不同时间点下的幅度和频率。该驱动参数可使线性马达以该振动描述数据指示的振动方式进行振动。
S506,振动HAL向振动驱动发送驱动参数。
需要说明的是,若振动服务向振动HAL的通用振动接口发送振动指令,则振动HAL可以不执行S504,而是直接将该振动指令中携带的振动参数作为驱动参数发送给振动驱动。
S507,振动驱动执行第一操作。
其中,第一操作包括多次振动驱动与振动芯片间的多次通信,用于确认振动芯片是否上电、振动芯片与处理器通信是否正常、振动芯片与线性马达通信是否正常等。
在本申请实施例中,振动驱动与振动芯片之间可通过内部集成电路(Inter-Integrated Circuit,I2C)总线进行通信。
S508,振动驱动根据驱动参数控制振动芯片向线性马达输出驱动电压。
如此,可使线性马达按照振动描述数据指示的振动波形进行振动。
S509,振动驱动向振动HAL发送驱动唤醒通知。
在本申请实施例中,振动驱动可以在执行第一操作超时的情况下向振动HAL发送驱动唤醒通知,执行第一操作超时可以理解为振动驱动未在预设时间内执行完第一操作。
以及,振动驱动也可以在执行第一操作未超时的情况下向振动HAL发送驱动唤醒通知。
上述两者区别在于,在执行第一操作未超时的情况下,振动驱动还会将通知标志位设置为有效状态,例如设置为“1”;而在执行第一操作超时的情况下,振动HAL不会将通知标志位设置为有效状态。
从而,该驱动唤醒通知用于指示振动驱动读取振动标志位,以确定振动驱动是否执行第一操作。
S510,振动HAL判断第一等待时间小于第二时长,以及是否接收到驱动唤醒通知。
其中,第一等待时间为振动HAL向发送驱动参数的时刻到当前时刻所等待的时间。
在一种可选的实施方式中,该第二时长大于第一时长,例如为300ms、400ms等,在此不做具体限制。
需要说明的是,在振动HAL向振动驱动发送驱动参数(即执行S506)后,振动HAL便开启等待接收驱动唤醒通知的异步线程,并在异步线程中将时延设置为第二时长来等待振动驱动的驱动唤醒通知。
其中,若第一等待时间小于第二时长且接收到驱动唤醒通知,则振动HAL执行S511;若第一等待时长大于第二时长或未接收到驱动唤醒通知,则执行S513。
需要说明的是,振动HAL在向振动驱动发送驱动参数后便开启判断第一等待时间小于第二时长,以及是否接收到驱动唤醒通知的异步线程。也就是说,S510和S507~S509之间不存在严格的先后顺序,可以同时执行,也可以不同时执行,在此不做具体限制。
S511,振动HAL判断通知标志位是否为有效状态。
若通知标志位为有效状态,执行S512;若通知标志位为无效状态,执行S513。
S512,振动HAL判断第二等待时长是否小于第一时长。
在本申请实施例中,第二等待时间为振动HAL接收到驱动唤醒通知的时刻到当前时刻所等待的时间。
其中,若等待时长小于第一时长,振动HAL可重新执行S512;若等待时长大于或等于第一时长,振动HAL可执行S513。
S513,振动HAL向振动服务发送振动执行反馈。
其中,振动执行反馈用于指示振动芯片已控制线性马达振动。此外,该振动执行反馈中还携带有振动时长(也可以称为第一时长)。
S514,振动服务向振动HAL发送停止振动的指令。
响应于接收到执行反馈,振动服务可以开始计时,并在振动时长的结束时刻向振动HAL发送停止振动的指令。
S515,振动HAL向振动驱动发送停止振动的指令。
S516,振动驱动控制振动芯片停止向线性马达输入驱动电压,以使线性马达停止振动。
在一种可选的实施方式中,振动驱动包括第一驱动和第二驱动,其中第二驱动可以直接控制线性马达的驱动但不能与振动HAL交互,第一驱动可以与振动HAL交互但不能直接控制线性马达。在此基础上,参阅图6,示出了振动驱动与振动HAL之间同步驱动唤醒通知的流程图。如图6所示,本申请实施例提供的线性马达的控制方法还包括S601~S606。
S601,振动HAL向第一驱动发送驱动参数。
S602,第一驱动向第二驱动发送驱动参数。
S603,第二驱动执行第一操作。
S604,第二驱动向第一驱动发生唤醒消息。
其中,唤醒消息用于指示第二驱动已执行第一操作。
S605,第一驱动判断是否在预设时间内接收到第二驱动发送的唤醒消息。
若在预设时间内接收到第二驱动发送的唤醒消息,第一驱动执行S604;若未在预设时间内接收到唤醒消息,第一驱动执行S607。
需要说明的是,第一驱动向第二驱动发送驱动参数后,便可执行S605。也就是说,S605与S603~S604之间不存在严格的先后顺序,可以同时执行或不同时执行。
在本申请实施例中,第一驱动向第二驱动发送驱动参数后便进入休眠状态,休眠时长即为该预设时间。若第一驱动在预设时间内接收到第二驱动发送的唤醒消息,或者第一驱动未在预设时间内接收到第二驱动发送的唤醒消息,均会退出休眠状态。
S606,第一驱动向振动HAL发送驱动唤醒通知,以及将通知标志位设置为有效状态。
S607,第一驱动向振动HAL发送驱动唤醒通知。
在一种可选的实施方式中,可以采用poll同步机制实现上述步骤。例如,第一驱动可以通过poll->sys_poll->do_sys_poll->poll_initwait函数,再由poll_initwait函数注册回调函数poll_wait来实现上述流程。
参阅图7,为利用本申请实施例提供的线性马达的控制方法控制线性马达振动过程的时间节点图。其中,t1’为振动HAL向振动驱动发送驱动参数的时刻(即S506对应的时刻),t2’为振动芯片控制线性马达开始振动的时刻(即S509对应的时刻),t3’为振动HAL向振动驱动发送停止振动的指令的时刻(即S516对应的时刻),t4’为振动芯片控制线性马达停止振动的时刻(即S517对应的时刻),t5’时刻为振动HAL确定振动芯片可用的时刻(即S511对应的时刻)。
其中,t2’时刻与t1’时刻的时间差为ΔT1’,用于表征电子设备控制线性马达开始振动过程中存在的时延。
t4’时刻与t3’时刻的时间差为ΔT2’,用于表征电子设备控制线性马达停止振动过程中存在的时延。
t3’时刻与t5’时刻的时间差为ΔT3’,用于表征电子设备所要求的振动时长。
t4’时刻与t2’时刻的时间差为ΔT4’,用于表征线性马达实际的振动时长。
t5’时刻与t1’时刻的时间差为ΔT5’,用于表征确认振动芯片是否准备好控制线性马达所需的时间。
t2’时刻与t5’时刻的时间差为ΔT6’,指振动芯片控制线性马达振动所存在的时延,其中,ΔT6’与ΔT2’相同。
对比图7与图1可知,图7与图1类似,区别在于,控制线性马达停止振动的时刻由t3时刻变为t3'时刻,线性马达实际停止振动的时刻由t4时刻变为t4'时刻,线性马达实际的振动时长由ΔT4变为ΔT4'。其中,由于ΔT2’与ΔT6’相等,因此ΔT4'与ΔT3’相等,即线性马达实际的振动时长(即ΔT3’)与要求的振动时长(即ΔT4')相等。如此,可以保证振动波形完整,减少线性马达撞壁的风险,保障线性马达的使用寿命。
参阅图8、图9,分别在使用本申请实施例提供的线性马达的控制方法前、后(简称为优化前/优化后)不同振动时长下的振动波形示意图。如图8所示,为线性马达在优化前不同振动时长下的振动波形示意图;如图9所示,为线性马达在优化后不同振动时长下的振动波形示意图。
对比图8、图9可知,优化后的振动波形不存在不规则信号,表明线性马达不再发生撞壁现象,可以有效保障线性马达的寿命。此外,优化后的振动波形的刹车时间明显变短,可使线性马达的振感更加干脆、不拖沓。可见,本申请实施例提供的方法可减少线性马达的撞壁风险,减少线性马达振动过程中的异响,且刹车时间变短使得振感更加干脆,用户体验得到明显提升。
本申请一些实施例提供了一种电子设备,该电子设备可以包括:存储器和一个或多个处理器。该存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中电子设备执行的各个功能或者步骤。该电子设备的结构可以参考图2所示的电子设备的结构。
本申请实施例还提供一种线性马达,该线性马达可以用于实现上述实施例中各种配置参数下的振动波形等,安装有该线性马达的电子设备可以执行上述方法实施例中电子设备执行的各个功能或者步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种线性马达的控制方法,其特征在于,应用于电子设备,所述电子设备包括振动芯片及线性马达,所述方法包括:
接收到用于触发所述线性马达振动的第一振动事件;
响应于所述第一振动事件,在执行第一操作后控制所述振动芯片向所述线性马达输出驱动电压,以使所述线性马达振动,所述第一操作包括所述振动芯片输出驱动电压前,用于确定所述振动芯片上电、所述振动芯片与处理器通信正常、所述振动芯片与所述线性马达通信正常的操作;
在从执行所述第一操作开始的第一时长后,控制所述振动芯片停止向所述线性马达输出驱动电压,以使所述线性马达停止振动,所述第一时长为所述第一振动事件对应的振动时长。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断是否在从接收到所述第一振动事件起的第二时长内执行所述第一操作;
所述在从执行所述第一操作开始的第一时长后,控制所述振动芯片停止向所述线性马达输出驱动电压,以使所述线性马达停止振动,包括:
若在从接收到所述第一振动事件起的第二时长内执行所述第一操作,在从执行所述第一操作开始的第一时长后,控制所述振动芯片停止向所述线性马达输出驱动电压,以使所述线性马达停止振动。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若未在从接收到所述第一振动事件起的第二时长内执行所述第一操作,在从接收到所述第一振动事件起的第二时长结束时,控制所述振动芯片停止向所述线性马达输出驱动电压,以使所述线性马达停止振动。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述电子设备上部署有振动硬件抽象层HAL和振动驱动,所述响应于所述第一振动事件,在执行第一操作后控制所述振动芯片向所述线性马达输出驱动电压,以使所述线性马达振动,包括:
响应于所述第一振动事件,所述振动硬件抽象层HAL向所述振动驱动发送所述第一振动事件对应的驱动参数;
所述振动驱动执行所述第一操作,并在执行所述第一操作后根据所述驱动参数控制所述振动芯片向所述线性马达输出驱动电压,以使所述线性马达振动。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述振动驱动在执行所述第一操作后,向所述振动硬件抽象层HAL发送驱动唤醒通知,所述驱动唤醒通知用于指示所述振动驱动已执行所述第一操作。
6.根据权利要求5所述的方法,其特征在于,所述电子设备还部署有振动服务,所述在从执行所述第一操作开始的第一时长后,控制所述振动芯片停止向所述线性马达输出驱动电压,包括:
响应于接收所述驱动唤醒通知,所述振动硬件抽象层HAL在接收到所述驱动唤醒通知起的第一时长结束时向所述振动服务发送振动执行反馈,所述振动执行反馈用于指示所述线性马达已振动;
响应于接收到所述振动执行反馈,所述振动服务向所述振动硬件抽象层HAL发送停止振动的指令;
所述振动硬件抽象层HAL向所述振动驱动发送所述停止振动的指令;
响应于所述停止振动的指令,所述振动驱动控制所述振动芯片停止向所述线性马达输出驱动电压,以使所述线性马达停止振动。
7.根据权利要求6所述的方法,其特征在于,所述响应于接收所述驱动唤醒通知,所述振动硬件抽象层HAL在接收到所述驱动唤醒通知起的第一时长结束时向所述振动服务发送振动执行反馈,包括:
响应于在从向所述振动驱动发送所述驱动参数起的第二时长内接收到所述驱动唤醒通知,所述振动硬件抽象层HAL在接收到所述驱动唤醒通知起的第一时长结束时向所述振动服务发送振动执行反馈。
8.根据权利要求5-7中任意一项所述的方法,其特征在于,所述方法还包括:
所述振动驱动在执行所述第一操作后,将通知标志位设置为有效状态,用于指示所述振动驱动已执行所述第一操作。
9.根据权利要求5-7中任意一项所述的方法,其特征在于,所述方法还包括:
响应于所述第一振动事件,所述振动硬件抽象层HAL将通知标志位设置为无效状态,用于指示所述振动驱动未执行所述第一操作。
10.根据权利要求1或2所述的方法,其特征在于,所述第一振动事件包括以下各项之一:接收到用户解锁所述电子设备的操作、接收到用户在线支付的操作、接收到用户录入人脸的操作、接收到用户释放技能的操作、接收到来电请求、或者当前时间与预设时间匹配。
11.一种电子设备,其特征在于,所述电子设备包括:存储器、一个或多个处理器、振动芯片和线性马达;所述存储器、所述振动芯片与所述处理器耦合,所述振动芯片与所述线性马达连接;
其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1-10中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,包括计算机指令;
当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310616780.1A CN116345984B (zh) | 2023-05-29 | 2023-05-29 | 一种线性马达的控制方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310616780.1A CN116345984B (zh) | 2023-05-29 | 2023-05-29 | 一种线性马达的控制方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116345984A CN116345984A (zh) | 2023-06-27 |
CN116345984B true CN116345984B (zh) | 2023-11-07 |
Family
ID=86893334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310616780.1A Active CN116345984B (zh) | 2023-05-29 | 2023-05-29 | 一种线性马达的控制方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116345984B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100093916A (ko) * | 2009-02-17 | 2010-08-26 | 에이디반도체(주) | 선형 진동모터의 구동장치 |
CN102142808A (zh) * | 2010-01-28 | 2011-08-03 | 三洋电机株式会社 | 线性振动电动机的驱动控制电路 |
CN102439842A (zh) * | 2009-01-30 | 2012-05-02 | 伊顿公司 | 在使用电动机驱动器的ac电动机中确定定子绕组电阻的系统和方法 |
CN105897120A (zh) * | 2016-05-19 | 2016-08-24 | 瑞声科技(新加坡)有限公司 | 可精确控制电机的信号生成方法 |
CN108683802A (zh) * | 2018-04-25 | 2018-10-19 | 北京小米移动软件有限公司 | 移动终端及其控制方法 |
CN110769096A (zh) * | 2019-10-21 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 一种马达振动方法、终端及存储介质 |
WO2022031055A1 (ko) * | 2020-08-04 | 2022-02-10 | 삼성전자 주식회사 | 전자 장치 및 그의 진동 출력 제어 방법 |
CN114995629A (zh) * | 2021-12-30 | 2022-09-02 | 荣耀终端有限公司 | 振动方法和振动装置 |
CN115086481A (zh) * | 2022-07-20 | 2022-09-20 | 荣耀终端有限公司 | 一种来电提醒方法和电子设备 |
CN115378302A (zh) * | 2021-05-20 | 2022-11-22 | 荣耀终端有限公司 | 线性马达的控制方法、装置、设备及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106208890A (zh) * | 2016-07-21 | 2016-12-07 | 瑞声科技(新加坡)有限公司 | 线性电机振动一致性的补偿装置及其补偿方法 |
-
2023
- 2023-05-29 CN CN202310616780.1A patent/CN116345984B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102439842A (zh) * | 2009-01-30 | 2012-05-02 | 伊顿公司 | 在使用电动机驱动器的ac电动机中确定定子绕组电阻的系统和方法 |
KR20100093916A (ko) * | 2009-02-17 | 2010-08-26 | 에이디반도체(주) | 선형 진동모터의 구동장치 |
CN102142808A (zh) * | 2010-01-28 | 2011-08-03 | 三洋电机株式会社 | 线性振动电动机的驱动控制电路 |
CN105897120A (zh) * | 2016-05-19 | 2016-08-24 | 瑞声科技(新加坡)有限公司 | 可精确控制电机的信号生成方法 |
CN108683802A (zh) * | 2018-04-25 | 2018-10-19 | 北京小米移动软件有限公司 | 移动终端及其控制方法 |
CN110769096A (zh) * | 2019-10-21 | 2020-02-07 | Oppo(重庆)智能科技有限公司 | 一种马达振动方法、终端及存储介质 |
WO2022031055A1 (ko) * | 2020-08-04 | 2022-02-10 | 삼성전자 주식회사 | 전자 장치 및 그의 진동 출력 제어 방법 |
CN115378302A (zh) * | 2021-05-20 | 2022-11-22 | 荣耀终端有限公司 | 线性马达的控制方法、装置、设备及可读存储介质 |
CN114995629A (zh) * | 2021-12-30 | 2022-09-02 | 荣耀终端有限公司 | 振动方法和振动装置 |
CN115086481A (zh) * | 2022-07-20 | 2022-09-20 | 荣耀终端有限公司 | 一种来电提醒方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116345984A (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112399390B (zh) | 一种蓝牙回连的方法及相关装置 | |
CN115016706B (zh) | 一种线程的调度方法及电子设备 | |
WO2024109259A1 (zh) | 休眠唤醒方法、电子设备、蓝牙外设及存储介质 | |
US10795442B2 (en) | Method of providing vibration and electronic device for supporting same | |
EP3190686B1 (en) | Wireless power transmission device and wireless charging system, and method of controlling the same | |
CN115309547A (zh) | 处理异步binder调用的方法和装置 | |
EP4209897A1 (en) | Method and apparatus for installing patch package | |
CN116345984B (zh) | 一种线性马达的控制方法及电子设备 | |
CN113014614A (zh) | 一种设备控制方法、控制设备及被控设备 | |
CN116418270B (zh) | 一种线性马达的控制方法及电子设备 | |
WO2024109263A1 (zh) | 一种驱动马达的方法和终端设备 | |
CN116033342A (zh) | 地理围栏的处理方法、设备及存储介质 | |
CN112114883A (zh) | 一种终端唤醒方法、终端及计算机存储介质 | |
CN111741040B (zh) | 连接建立方法、地址获取方法、装置、设备及存储介质 | |
CN116524919A (zh) | 设备唤醒方法、相关装置及通信系统 | |
CN114173381A (zh) | 数据传输方法和电子设备 | |
CN113950033A (zh) | 数据传输方法和设备 | |
CN117116258B (zh) | 一种语音唤醒方法及电子设备 | |
WO2024124992A1 (zh) | 一种线性马达的老化测试方法及终端设备 | |
CN116708647B (zh) | 通知消息回复方法及电子设备 | |
EP4344220A1 (en) | Electronic device for recording content data and method therefor | |
CN116743761B (zh) | 一种协同工作的方法及电子设备 | |
CN116700660B (zh) | 音频播放方法和电子设备 | |
CN117130458B (zh) | 数据处理方法、电子设备及存储介质 | |
CN114265540B (zh) | 一种电子设备的滑动控制方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |