触觉效果控制器架构和指令集
技术领域
本发明一般地涉及触觉效果,并更具体地涉及触觉控制器及其相关指令集。
背景技术
触摸屏正变得越来越常见,但触摸屏并不固有地具有反馈机制(就像来自传统键盘的能听到的咔嗒声)。所以,触觉或机械震动反馈作为新技术出现,其能提供本不存在的反馈机制。然而,传统的触觉方案需要主控制器或处理器的控制。也就是说,传统的触觉方案通常是受限于主机接口通信瓶颈,其限制了触觉效果多样化(例如变频控制和增益控制)。此外,许多这类触觉方案具有低功耗效率,其至少部分由于片上低压降稳压器(LDO)。所以,需要解决传统触觉方案的缺点的方法和/或设备。
传统触觉方案的示例在编号为7,791,588的美国专利中被描述。
发明内容
提供的示例实施例包括多个触觉指令,控制器,指令定序器,其联接到控制器并且被配置为接收触觉效果指令,其中触觉效果指令对应于预期触觉效果,并且其中指令定序器和控制器使用对应于触觉效果指令的多个触觉指令来调用触觉文件,以及正弦波发生器,其联接到控制器以接收触觉文件并从触觉文件产生对应于预期触觉效果的正弦波。
在一个示例实施例中,多个指令进一步包括文件指令、移动指令、等待/停止指令以及分支指令,并且其中触觉文件进一步包括文件字、移动字、等待/停止字和分支字中的至少一个,其中每一个都包括操作码和数据,并且其中文件指令、移动指令、等待/停止指令以及分支指令分别进一步包括文件字、移动字、停止等待字和分支字的操作码。
在一个示例性实施例中,文件字的数据进一步包括幅度、频率、和文件持续时间。
在一个示例性实施例中,移动字的数据进一步包括寄存器数和寄存器值。
在一个示例性实施例中,等待/停止字的数据进一步包括等待时间和停止中的至少一个。
在一个示例性实施例中,分支字的数据进一步包括寄存器数和跳跃位置。
在一个示例性实施例中,装置进一步包括放大器,其联接到正弦波发生器。
在一个示例性实施例中,放大器进一步包括D类放大器。
在一个示例性实施例中,装置被提供,其包括主机接口;触摸屏接口,其被配置为从触摸屏接收数据;模拟数字转换器(ADC),其联接到触摸屏接口;处理电路,其联接到ADC和主机接口;触觉驱动器,其联接到主机接口,其中触觉驱动器被配置为接收对应于预期触觉效果的触觉效果指令,其中触觉驱动器包括:多个触觉指令,控制器,指令定序器,其联接到控制器并被配置为接收触觉效果指令,其中触觉效果指令对应于预期触觉效果,并且其中指令定序器和控制器使用多个对应于触觉效果指令的触觉指令调用触觉文件;正弦波发生器,其被联接到控制器以接收触觉文件并从触觉文件产生对应于预期触觉效果的正弦波;放大器,其被联接到正弦波发生器。
在一个示例性实施例中,指令定序器进一步包括:程序计数器电路,其被配置为产生对应于触觉文件的地址序列;指令存储器,其存储触觉文件并被联接到程序计数器电路,其中指令存储器被配置为根据地址序列从程序计数器接收地址;和指令寄存器,其联接到指令存储器。
在一个示例性实施例中,正弦波发生器进一步包括:正弦角度计算器,其联接到控制器;查找表(LUT),其联接到正弦角度计算器和控制器;以及幅度放大器,其联接到LUT和控制器。
在一个示例性实施例中,装置被提供,其包括触摸屏;主机处理器,其配置为产生对应于预期触觉效果的触觉效果指令;控制器,其具有联接到主机处理器的主机接口;触摸屏接口,其联接到触摸屏;ADC,其联接到触摸屏接口;处理电路,其联接到ADC和主机接口;触觉驱动器,其联接到主机接口,其中触觉驱动器被配置为接收对应于预期触觉效果的触觉效果指令,其中触觉驱动器包括:多个触觉指令;控制器;指令定序器,其被联接到控制器,且被配置为接收触觉效果指令,其中触觉效果指令对应于预期触觉效果,并且其中指令定序器和控制器使用多个对应于触觉效果指令的触觉指令来调用触觉文件;正弦波发生器,其联接到控制器以接收触觉文件,并从触觉文件产生对应于预期触觉效果的正弦波;以及放大器,其联接到正弦波发生器,正弦波发生器产生对应于预期触觉效果的正弦波;以及致动器,其联接到放大器。
在一个示例性实施例中,多个指令进一步包括文件指令、移动指令、等待/停止指令和分支指令,并且其中触觉文件进一步包括以下中至少一个:文件字,其具有文件指令作为其操作码并具有幅度、频率和文件持续时间作为其数据;移动字,其具有移动指令作为其操作码,并具有寄存器数和寄存器值作为其数据;等待/停止字,其具有等待/停止指令作为其操作码,并具有等待持续时间和停止中至少之一作为其数据;以及分支字,其具有分支指令作为其操作码,并具有寄存器数和跳跃位置作为其数据。
在一个示例性实施例中,正弦波发生器进一步包括:正弦角度计算器,其联接到控制器;查找表(LUT),其联接到正弦角度计算器和控制器;以及幅度放大器,其联接到LUT和控制器。
在一个示例性实施例中,产生预期触觉效果的方法被提供。方法包括由主处理器响应触摸屏而产生触觉效果指令,其中触觉效果指令对应于预期触觉效果;由触觉驱动器接收触觉效果指令;从触觉效果指令产生触觉文件,其中触觉文件包括文件字、移动字、等待/停止字、分支字中的至少一个;并从触觉文件产生对应于预期触觉效果的正弦波。
在一个示例性实施例中,产生触觉文件的步骤进一步包括:解码触觉效果指令;并从指令存储器调用触觉文件。
在一个示例性实施例中,产生触觉效果指令的步骤进一步包括:从触摸屏接收模拟数据集;将模拟数据集转换为数字数据集,根据数字数据集确定触觉效果指令。
附图说明
图1示出了根据本发明示例实施例的系统的示例;
图2示出了图1中触摸屏控制器的示例;
图3示出了图2中触觉驱动器的示例;
图4-7示出了图3中触觉驱动器的指令集的示例;
图8示出了图3中指令定序器的部分的示例;
图9-11图示了由图3中触觉驱动器产生的对应于不同触觉效果的正弦波示例。
具体实施方式
图1图示了根据本发明示例实施例的示例系统100。系统100可为多种设备,例如,便携媒体播放器、智能电话或游戏控制器并一般包括触摸屏102(其可为电容式或电阻式触摸屏),主机处理器104(即数字信号处理器或DSP),触摸屏控制器106,驱动器108(其可为放大器),以及致动器110(其可为线性致动器,压电转换器,马达,等等)。一般,用户可通过触摸屏10(其被触摸屏控制器106和主机处理器104控制)与系统100互动。根据用户与系统100的互动,触觉效果可被产生。一般,触摸屏控制器106给致动器110提供正弦波(直接提供或通过驱动器108提供)。
在图2中,触摸屏控制器106(其为典型的集成电路或IC)可被看的更详细。触摸屏控制器一般包括触摸屏接口202(其可以是例如4线电阻触摸屏的接口),模数转换器(ADC)204(其可为逐次逼近寄存器(SAR)ADC),预处理器206,主机接口208(即内部集成电路或I2C接口),时钟210,以及触觉驱动器212。一般,触摸屏接口202从触摸屏102接收数据,并将其通过ADC204转换为数字信号(其一般对应于屏幕位置)。这个数字信号随后被预处理器206处理并通过主机接口208提供给主机处理器104。触觉驱动器212也可通过接口208与主机处理器104通信,在该接口触觉驱动器212能接收触觉效果指令(其一般对应于预期触觉效果)。触觉驱动器206随后可为驱动器108和/或致动器110产生正弦波(其对应于预期触觉效果)。
触觉驱动器212(如在图3中更详细所见的,并且其具有约8000个门电路)使用小指令集,几乎能产生任何复杂的正弦波。触觉驱动器212一般包括控制器302,指令定序器304,正弦波合成器306(其一般包括正弦角度计算器310,查找表或LUT312和幅度放大器314),以及放大器310(其一般为D类放大器,由脉宽调制器或PWM316和输出电路318组成)。
指令定序器306一般为状态机(与控制器302协同工作),其解码来自主机处理器104的触觉效果指令并从该解码的触觉效果指令调用触觉文件。一般,指令定序器302为触觉驱动器212存储指令集,并且该指令集一般包括四种指令:文件指令、移动指令、等待/停止指令和分支指令。这四种指令作为指令字的操作码(其合起来可构成触觉文件),可被用于产生几乎每一种触觉效果。文件字400(如图4中所示)一般为8比特字且一般对应于来自触觉控制器206的输出正弦波的正弦部分。其能包括操作码名称“11”(见参照数字402),其对应于文件指令,并且文件字400也可包括幅度和频率域404(其一般为2比特的域)和文件持续时域406(其一般为4比特的域并一般对应于时间段的数量)作为其数据。移动字500(如图5所示)典型为16比特的字并一般对应于跨越触摸屏102的移动,其中操作名称可为“10”(见参照数字502),并且其中数据一般包括保留域504(其典型为1比特的域),寄存器数域506(其典型为5比特的域),寄存器值域508(其典型为8比特的字节域)。等待/停止字600(如图6所示)是典型的8比特字,其能表明等待持续时间和停止执行604。操作码名称可为“00”(见参照数字602),并且数据能包括中止/不中止域604(其为典型的1比特域并且能被用于马达减速)和等待持续时间或停止域606(其为典型的5比特域)。分支字700(如图7所示)是典型的8比特字,并且一般为循环指令,其允许不同的指令串在一起。其可具有操作码名称“11”(见参照数字602)并能包括保留域704(其典型为1比特域),寄存器数域706(其典型为1比特域),和跳跃位置域708(其典型为4比特域)作为其数据。
根据触觉文件,正弦波发生器306能随后为放大器308产生正弦波。一般,正弦波发生器具有两种模式的操作:频率合成器模式和固定脉宽发生器(FPWG)模式。在频率合成器模式,正弦角度计算器310,LUT312,和幅度放大器314为PWM316的下一个脉冲一起计算空占比。在FPWG模式,正弦角度计算器310,和幅度放大器314被绕过,允许从(例如)8个固定脉冲宽度调制频率中选择一个,8个调制频率能产生一定频率范围的正弦波(即约10HZ到约20KHZ之间)。
转到图8,指令定序器304可被更详细的看见,并且其一般包括程序计数器804,指令存储器812,指令寄存器814,以及多路复用器802,806,808,810。一般,指令寄存器814(其一般为寄存器组)保存参数和用于触觉操作的控制信号,并且指令存储器812一般由两个页面组成。每个指令存储器812和指令寄存器814一般利用锁存器实现。指令存储器812的第一页一般包括内置触觉文件(或内置控制字集),并且指令存储器812的第二页可由用户定义的触觉文件组成。每个控制字集应用字400,500,600和700的结合。
首先看用户定义的触觉文件的创建,这些触觉文件可通过主机接口208被存储在指令存储器812(即,第二存储页)。当写入时,写信号WR通过主机接口208被声明。这允许用户定义的触觉文件被加载且被存储在指令存储器812(作为数据信号IMDATA)。
最初,在正常操作中,控制器302声明程序计数器写信号INITPCWR,并且程序计数器加载信号PCLOAD以使开始地址STARTADDR能通过多路复用器802被加载到程序计数器804。阶地址STARTADDR被输出(作为程序计数器信号PC)到多路复用器806和810。对于多路复用器810,地址ADDR被提供给指令存储器812。根据控制器302通过页面信号PAGE选择的存储页,合适的字(对于所需触觉文件)被读取,并且一旦控制器302声明加载信号IMILD,指令寄存器814能加载现有字CURRENTINSTR(典型8比特或16比特)。另外,程序计数器信号PC被提供给多路复用器806以产生下一条地址PCADDR。根据是否有分支字(即,700)被使用,控制器302可选择是否现有指令CURSTR(典型为4比特)的一部分或预定值可被使用。一般,现有指令CURRENTSTR和下一个字或指令NEXTSTR可被控制器302使用。另外,控制器302可提供周期数PERNO和等待信号WAIT以实施等待字(即,600),并且该字存储在指令存储器812,其可通过主机接口208被读出(如存储器读取MEMRD信号)。
现转到图9-11,可见触觉文件的示例。图9中的曲线一般对应于“击键”的正弦波,并且该触觉文件一般由如下表1所示的4种字(文件字、等待/停止字、文件字和等待停止字)组成。
表1
图10中的文件一般对应于“拖放”,并且该触觉文件一般包括由表2所示的四种字(文件字、等待/停止字、分支字和等待/停止字)组成。
表2
图11中所示的文件一般对应于“滑动”,并且该触觉文件一般由如下表3所示的5种字(文件字、文件字、文件字、文件字和等待/停止字)组成。
表3
这些不同的触觉文件中的每一个可基于用户和触摸屏的互动被选择。也就是说,例如,主机处理器104可基于模拟数据集(其可被ADC204转换为数字数据集)确定“拖放”文件是合适的,该模拟数据集为用户在图形用户界面执行的对条目的拖放的模拟数据集。
本领域技术人员会明白可对本发明描述的实施例做改动,并且许多其他的实施例在本发明的权利要求范围内是可行的。