详细描述
在以下描述中将参考各附图,这些附图在此形成一部分,并在其中通过说明的方式示出了可以实施本发明的各个实施例。应了解,可以利用其它实施例,并且可以作出结构上和功能上的修改,而不会偏离本发明的范围。
图1示出了其中可以实现至少某些实施例的计算环境。诸如个人计算机(PC)100或个人数字助理(PDA)101等计算设备可以包括多个程序模块和程序数据。这些程序模块或程序数据可以包括操作系统、应用程序及其组合。用户可以通过包含有键盘105、操纵杆110和定点设备115的各种无线输入设备将命令和信息输入到计算机100或PDA 101中。虽然图1只示出了作为定点设备115的鼠标,但是可以用于实现各种实施例的其它常用的定点设备还包括跟踪球和触摸垫。其它输入设备(未示出)可以包括无线话筒、游戏手柄、扫描仪等。在如图1所示的计算环境等计算环境中,定点设备115通常用于控制用户界面光标的移动和动作。为了实现该控制,这些和其它输入设备经常通过实现诸如蓝牙和本领域公知的其它技术等无线传输技术的无线数据连接来连接到计算设备100和101。计算设备100和101可以无线地连接到一个或多个输入设备,或者甚至可以相互连接。例如,PDA 101可以无线地将日历数据或电子邮件信息传输到个人计算机100。类似地,个人计算机100可以通过无线装置向PDA 101提供文件。此外,无线输入设备可以相互通信,并形成网络来便于传输。例如,在蓝牙实现中,两个或多个无线设备可以形成微微网(piconet),在其中该无线设备之一用作主设备,并将其它蓝牙设备看作为从设备。该主设备因此可以用作该微微网中所有无线通信的管道和控制单元。
上面描述了一个说明性无线操作环境。然而,本领域的技术人员将意识到,可以使用各种无线设备和体系结构来实现在此描述的系统和方法。
图2示出了根据至少一个说明性实施例的无线鼠标的框图。无线鼠标115可以包括诸如一个或多个选择按钮205a和205b等各种用户输入机制和交互特征,以及诸如鼠标滚轮210等可旋转输入组件。另外,鼠标115的移动和位置也可以用作一种形式的用户输入。用户可以将无线鼠标115的选择按钮205a和205b与(诸如在
操作系统中可用的)图形用户界面(GUI)一起用来控制或修改任何数量的界面组件(例如,图标、窗口)的位置和外观。用户也可以使用鼠标滚轮210来导航用诸如
等应用程序查看的电子文档。鼠标滚轮210还可以用于控制显示器或在此显示的特定文档的缩放特征。鼠标滚轮210可以包括将准许用户按下滚轮210作为另一种可能的输入方法的附加特征。可在无线鼠标115中实现的其它输入机制包括指示器凸块(pointer nub)、陀螺传感器和/或触摸传感器。
无线鼠标115包括若干附加组件,包括电池240、功率调节单元235、处理器215、收发器220、光学传感器230(用于检测设备115的运动)和天线225。因为许多无线输入设备的理想特征是移动性和无限制运动,因此无线输入设备115可以从诸如电池240等内部源获取电能。这消除了对有线电力管道的依赖。本领域的技术人员将意识到,存在许多形式的电池,并且可将其在无线输入设备115中互换或组合使用。例如,无线鼠标的一种实现可以包括锂离子(LiOn)电池或者碱性电池。电池类型的选择可以取决于诸如成本和预期使用等各种考虑因素。例如,无线鼠标115可以使用电池240来通过功率调节器235向多个组件提供电能。功率调节器235可以提供用于控制对电能驱动组件的电压输出的手段。在一个示例中,功率调节器235可以从电池240获取电能并提供给收发器220和光学传感器230。由于收发器220和光学传感器230可能会需要不同的电压电平,因此功率调节器235可以确保对这些设备的每一个的正确的功率输出。另外,功率调节器235可以包括确定何时应向一个或多个组件供电的控制逻辑(未示出);在可选实施例中,这种控制逻辑可以驻留在处理器215中。控制逻辑和功率调节器235的组合使得在实现节电技术时具有更大的灵活性。在另一个示例中,功率调节器235和控制逻辑可以通过在鼠标115与另一个设备间不存在传输的时段期间切断对收发器220的至少一部分的供电来减少功耗。另外,降低传输频率可以显著地减少收发器220的功耗,并因此增加电池的寿命。然而,降低传输频率可能会减少最终被传输的数据量。
收发器220通常负责向其它有无线能力的设备(未示出)发送数据,和从这些设备接收数据。这种设备可以包括PC 100、PDA 101、蜂窝通信设备、其它无线输入设备或其组合。收发器220包括天线225,通过该天线可以发送和接收数据。在一个说明性实施例中,用户使用无线鼠标来控制运行在PC上的用户界面中的工具提示的移动。
处理器215调节由收发器220发送的数据。通过这样做,处理器215可以帮助在收发器220和鼠标115的多个其它组件之间的通信。例如,可以接收通过选择按钮205a和205b和/或鼠标滚轮作出的用户输入,并在传输之前由处理器215对其进行处理。类似地,处理器215可以通过光学传感器230来确定与无线鼠标115的位置变化相关的任何数据。处理器215可以接收位置数据和其它用户输入数据,并且可以控制各种组件的操作。处理器215还可以包括存储缓冲器(未示出),用于在对所接收到的数据进行处理和/或通过收发器220发送之前先对其进行存储。
对PC 100或PDA 101的用户输入还可以通过多个其它设备来实现,其中包括操纵杆、触摸垫、游戏控制器或其组合。例如,操纵杆可以按与无线鼠标相似的方式来使用,通过这种方式可以将工具提示或其它用户界面指示器的移动和动作与操纵杆的移动相关联。在另一个示例中,可以使工具提示的动作与用户手指在触敏触摸垫上的移动或者与对在键盘或键区上的光标键输入的使用相关联。
无线鼠标115可以(向PC 100或PDA 101)发送位置数据,该位置数据反映用户在工作表面上移动鼠标115的量和方向。这种位置数据可以由绝对设备位置(即,基于一基本表面的两个或多个轴的一组坐标),或对应于相对位置变化的一组数据组成。例如,对应于鼠标115的位置变化的用户输入可以由沿工作表面的第一和第二轴的一个或多个变化来定义。理想地,诸如无线鼠标115等输入设备可发送无穷量的位置数据,因此相应工具提示或光标的移动能够准确并精确地复制无线设备所检测到的运动路径。然而,由于诸如节能和协议规范要求等各种原因,鼠标115根据一传输时间表来操作,在该时间表中,以特定的报告速率(即,传输周期)来周期性地发送。例如,在蓝牙协议中,在主和从设备间的已协商报告速率被称为SNIFF速率。因此,该报告速率,即SNIFF速率会影响可由无线输入设备在给定时间段期间发送的位置数据的数量。更特殊地,该报告速率通过指定可用传输周期的数量来定义传输时间表。传输周期可以进一步用非传输时段和传输时段来限定。例如,许多有线输入设备实现8ms(即,每8ms有1次传输)的报告速率,以提供每秒钟125个报告(1s=1000ms;1000ms/8ms=125个报告)。使用这种报告速率,大多数用户都将不会在鼠标移动时感觉到工具提示的屏幕运动中的任何间断。
无线设备可以在中间非传输时段期间关闭其一个或多个组件。特别地,传输时间表可以被划分成预定大小的多个时隙。可使用这些时隙中的某一些来向无线输入设备提供用于接收和发送的专用时期。例如,图3示出了具有10ms的示例性报告速率的传输周期300,该传输周期具有16个长度为625μs的时隙。顶部的状态行330对应于诸如PC等接收设备,即主设备的活动和状态。另一方面,底部的状态行340对应于诸如无线鼠标等输入设备,即从设备的活动和状态。
一般而言,625μs的时隙时段和报告速率是由无线(例如,蓝牙)规范来定义和控制的。本领域的技术人员应了解,可以取决于包括预期使用和功率限制等的各种因素来实现各种报告速率。例如,一些现有设备当前所使用的报告速率在11.25ms-20ms之间。时隙的数目可以使用该报告速率及时隙长度来预定义或确定(10ms/625μs=具有625μs长度的16个时隙)。输入设备的无线组件可以在指定数量的时隙期间主动地进行发送或接收,并且可以在中间非传输时段320(即,其余时隙)期间变为非活动或切断电源。在许多现有的无线实现中,3个时隙专用于接收和发送,以使无线设备可以在初始时隙305期间接收轮询,在第二个时隙310期间发送数据,并在第三个时隙315期间接收附加数据(例如,一指示主设备已成功接收数据的空值,或一重发数据的请求)。另外,现有的无线技术允许对应于单个位置或变化的位置数据在每个传输周期的给定传输时段期间发送。特别地,在一特定传输时段期间发送的数据将反映自从最后一次传输以来的单个位置变化。不使用常规技术来分开报告在两个传输时段之间的增量位置变化。虽然这种常规技术可实现可辨认的节能程度,但是其所能实现(没有显而易见的性能损害)的节约量是有限的。
图4中示出了这些局限,其中的示图示出了与鼠标在桌面或其它表面上的移动相关的工具提示的两条路径。一般而言,GUI或其它界面包括可跟踪无线输入设备(例如,无线鼠标115)的移动或运动的工具提示(例如,光标)。更具体地,该工具提示沿着逼近无线输入设备的实际运动路径的路径移动。在一个示例中,虚线圆405对应于无线鼠标115的实际运动路径405。为了使用常规技术来复制该实际路径405,无线鼠标115可依照其传输时间表和报告速率来发送对应于点4111、4112、4113、4114和4115的位置数据。从点到点的运动(即,相对数据)或各个点本身的运动(即,绝对坐标)可以对应于用户输入。在本示例中,点4111、4112、4113、4114和4115表示无线鼠标115在5个连续的传输时段(例如,如图3中,每16个连续时隙中的时隙1-3)期间的位置。有了有限数量的点的位置数据,形成工具提示的路径的屏幕显示的PC 100上的软件通常将这些点之间的运动近似为直线。运动路径410表示所得的工具提示路径。如所示的,运动路径410没有准确地跟随无线鼠标115的实际路径405的曲线。相反,运动路径420更准确地逼近无线鼠标115的路径405。如果报告速率被增加以便提供附加的中间位置数据,则可以用常规技术来生成路径420。然而,增加报告速率也将增加功耗。换言之,在所生成的描述无线设备的实际运动的运动路径的准确度和该无线输入设备的功耗之间存在折衷。
图5示出了根据一说明性实施例的利用中间位置数据所生成的改进了准确度的复制运动路径。如图4一样,无线鼠标115可以在由多个曲线段组成的实际运动路径505中移动。复制运动路径510表示根据当前无线传输技术所生成的路径。更具体地,点5501、5503、5505、5507、5509和55011的位置数据由无线输入设备在6个单独的传输时段期间发送到接收设备(即,每个传输时段一个位置点)。例如,该6个位置点5501、5503、5505、5507、5509和55011表示无线鼠标在6个连续的传输时段的每一个中的位置。与实际运动路径505相比,复制路径510代表鼠标移动的不够连续的表示。许多用户可以发现该表示较为含糊。例如,图形应用程序的用户可能需要使用鼠标来控制绘图工具提示,以画出精确的线条。由于鼠标移动的不连续表示,用户可能会在产生理想的线条和图形时遭遇极大的困难。为了改进运动复制的准确度,无线鼠标115还发送对应于中间位置点5502、5504、5506、5508和55010(即在中间非传输时段期间的鼠标位置)的附加数据。结合点5501、5503、5505、5507、5509和55011的位置数据来使用中间点5502、5504、5506、5508和55010的附加位置数据,产生对运动路径505的更准确的表示520。
在至少某些实施例中,中间位置点5502、5504、5506、5508和55010可在无需修改报告速率并且不会显著影响功耗的情况下进行检测和发送。更具体地,无线鼠标115使用与在生成运动路径510时所使用的相同的报告速率来发送运动路径520的位置数据。为此,将对应于中间位置5502、5504、5506、5508和55010的数据的传输延迟到下一个传输时段。例如,点5501的位置数据在第一传输时段期间确定和发送,而点5503的位置数据在接下来的第二传输时段期间和发送。中间点5502的位置数据在第一和第二传输时段之间的中间时段期间确定,并被存储到缓冲器中。因此,当到达第二传输时段时,中间点5502和目前的当前点5503的位置数据都将在此传输时段期间发送。因此,可向用户提供对伪报告速率的感知,同时通过该降低的实际报告速率来实现改进的节能。该伪报告速率反映了输入设备的检测速率,它定义了可以在两个传输时段之间检测到的中间用户输入的量。
图6A示出了根据至少一些实施例的用于更准确地描绘(例如,在计算机屏幕上)无线输入设备的运动路径,同时减少功耗的示例性方法的流程图。
步骤610表示一传输周期的开始,在此之前停用(即断电)无线输入设备的各种无线组件。在步骤615处,该无线输入设备根据预定的检测速率来确定对应于中间用户输入的位置数据,同时等待下一个传输时段。在本无线鼠标的示例中,中间用户输入可以表示在两个连续的传输时段之间的中间非传输时段期间该鼠标的位置变化。例如,对于具有20ms的报告速率的传输周期,可以将检测速率设置为10ms。这种检测速率将准许无线输入设备检测并存储由该设备检测到的单个中间用户输入的数据(20ms/10ms=2;由于传输在20ms的标记左右发生,所以在传输时间检测到的当前位置不会视为中间位置)。一旦无线输入设备确定了所检测到的用户输入的中间位置数据,在步骤620处,可以将该数据存储到存储缓冲器中。
在步骤625处,无线输入设备随后确定它是否达到了传输周期的传输时段。如果尚未达到传输时段,则无线输入设备返回到步骤615以继续根据预定的检测速率来检测和存储中间位置数据。在步骤615-625的整个过程中,无线组件保持停用状态。然而,如果已经达到传输时段,则在步骤630处,无线输入设备将在传输时间确定对应于当前用户输入的当前位置数据(例如,设备的当前位置变化)。一旦确定并存储了当前位置数据,则在步骤635处,激活(即,通电)无线通信组件。在步骤640处,在该传输时段的一个或多个发送时隙期间将中间位置数据和当前位置数据两者发送到接收设备(例如,PC 100、PDA101)。在传输时段期满时,再次停用各无线组件,并且在步骤610处,无线设备的传输周期重新开始。
因此,通过在传输时段期间发送中间位置数据和当前位置数据两者,接收设备可以产生无线设备运动更准确的表示,而不用必须增加实际的报告速率。
在各种实施例中,无线输入设备选择性地存储和发送中间位置数据,而非存储和发送对应于所有检测到中间用户输入的数据。图6B更详细地示出了执行图6A中的步骤615和620的一个示例性方法。在图6B中,在步骤660处,无线输入设备确定并存储关于第一中间用户输入的位置数据(例如,设备位置的第一变化),和关于后续的第二中间用户输入的位置数据(例如,设备位置的第二变化)。在步骤665处,该输入设备随后确定第一和第二用户输入之间的差值。例如,该差值可以是第一和第二用户输入之间变化程度。如果该差值是显著的,则在步骤680处,存储对应于第二中间用户输入的位置数据。然而,如果该差值低于一预定阈值,则在步骤675处,丢弃对应于第二中间用户输入的数据。
图7示出了根据一说明性实施例的依照图6A所述的方法的多个传输周期。与图3类似,图7中的顶部状态行730对应于主设备的活动和状态,而底下的状态行740则对应于诸如无线鼠标等输入设备,即从设备的活动和状态。另外,传输周期700的报告速率被设为20ms,即图3中所描述的报告速率的一半。因此,每个传输周期700由长度为625μs的32个时隙(即,20ms/625μs=32)组成,而不是由16个时隙组成。如参考图5所讨论的,10ms的检测速率和20ms的报告速率的组合容许检测并存储对应于中间用户输入的附加位置数据。对应于中间用户输入的数据(即,传输时段705期间的数据分组#1)可以连同无线设备检测到的当前用户输入(即,传输时段705期间的数据分组#2)一起在传输时段705期间发送。然而,为了发送2组位置数据,传输时段将使用5个时隙,而如先前的技术所描述的3个时隙。发送和接收时隙通常是交替的,以便允许接收设备确认所发送数据的接收。例如,在时隙1、3和5中,无线输入设备处于接收状态,而在时隙2和4中,该设备可以分别发送中间和当前位置数据。或者,可以将2组位置数据组合成一个数据分组,并且如果设备的协议允许的话,在单个时隙(即,时隙2)期间发送该数据分组。在一些实施例中,紧接时隙2和4的时隙3和5分别被接收设备用于通知输入设备是否没有接收到某特定的数据分组。响应于未收到的通知,输入设备可以使用一附加时隙来重发丢失的数据,该附加时隙可包括来自中间非传输时段710的时隙。中间非传输时段710的跨度是从时隙6到时隙32。即使发送和接收所需要的时隙数量都增加了,传输与非传输时隙的总比率也下降。更具体地,无线输入设备现在可以将这些活动限于将每32个时隙中的5个专用于通信活动(例如,监听、接收或发送),而非每16个时隙中的3个。这表示输入设备中的各个组件为活动(即,通电)的时间量将有16.7%的减少。或者,如果传输协议允许将2组位置数据组合成一个数据分组,则无线输入设备现在可以将传输限于将每32个时隙中的5个专用于传输,而非每16个时隙的3个。这表示输入设备的各个组件是活动的时间量将有50%的减少。
在一示例性实施例中,如果存在不明显的用户活动(即,如参考图6B所述的,没有移动或只有非常小的移动),则可以不记录对应于中间用户输入的数据。例如,如果对应于中间用户输入的数据表明无线鼠标是空闲的,则可以将该数据丢弃(即,不存储)。这种情况下,在传输时间只需要发送对应于当前用户输入的数据。所以,只需要将输入设备的无线组件激活3个时隙,而不是5个时隙。因此,使用节能技术的这个附加特征的无线输入设备将实现输入设备的各个组件为活动的时间量的33.3%的减少。
另外,无线输入设备可以存储一个以上中间用户输入的数据。例如,无线鼠标可以按5ms的间隔来检测和存储中间位置的位置数据,而非以10ms的间隔来存储无线鼠标的中间位置数据。在实现20ms的报告速率的无线鼠标系统中,这可导致可发送和存储3个而不是1个中间位置。
在图8中,根据各实施例,使无线输入设备的检测速率适合于检测或存储的位置数据。更具体地,使该检测速率自适应到由无线输入设备检测到的用户输入。在步骤801处,输入设备以初始检测速率来检测中间数据。在步骤802处,评估第一用户输入和第二用户输入以确定变化程度。例如,如果用户在桌子上快速移动鼠标,则两组用户输入之间的变化等级可能是非常大的。相反,如果用户缓慢地移动鼠标,则变化程度则可以是较小的。响应于该确定,在步骤803处,无线输入设备可以选择依照变化等级来修改检测速率。在步骤804处,该无线输入设备随后以修改后的检测速率来检测附加中间数据。
在此描述各种特征和实施例中的许多都与经由无线鼠标所接收到的用户输入有关。例如,许多描述与将用户输入(即,鼠标移动)转换成位置数据(即,与前一位置的变化)有关。然而,许多其它输入形式也可能是有益的。相同或相似的方法和系统可被应用于使用具有报告速率的RF协议的任何输入设备(例如,键盘、游戏控制器等)。例如,在许多第一人称视频游戏中,屏幕上人物的移动和动作可以使用键盘上的各个按钮的组合来控制。因此,实现此处所描述的方法和系统的无线键盘可以在单个发送时段期间发送对应于按钮按压变化的中间输入数据(或关于单个按钮的连续按压的数据)。该中间输入数据还可表示按钮按下的变化速度、按钮已被按压的时间量和/或其组合。因此,所描述的方法和系统并不限于对位置数据的发送和检测,而可以包含任何形式的输入数据。另外,上述节能系统和方法也可以结合其它形式的运动数据(即,与输入设备所检测或接收到的移动或运动有关的数据)一起使用。例如,触摸垫接收用户手指在该触摸垫表面上的移动的形式的用户输入。在检测这种用户输入时,触摸垫确定对应于该用户手指移动的位置数据,并将该位置数据发送给接收设备。类似地,在跟踪球设备中,该设备可以确定对应于用户的旋转输入(例如,球旋转的角度)的位置数据。
此外,尽管部分地参考蓝牙协议描述了无线输入设备中的节能系统和方法,但该系统和方法也可以应用于其它无线传输协议和技术。使用RF网络的其它无线传输系统可以类似地实现此处所描述的节电传输技术。另外,关于蓝牙传输协议的描述中的许多是基于对16时隙的SNIFF周期的使用的。然而,该SNIFF周期只是作为示例来使用的,并非旨在限定或限制可以使用的时隙的数量或持续时间。本领域的技术人员应意识到,SNIFF时隙的数量可以通过改变时隙长度、报告速率等来进行修改。
虽然已经用对结构性特征和/或方法性动作专用的语言描述了本主题,但应了解,所附权利要求书中所定义的主题并不一定要限于上面描述的具体特征或动作。相反,以上所描述的具体特征和动作是作为实现权利要求书的示例性形式来公开的。