本文所公开的实施例一般涉及用于处理分组的技术。更具体地,技术可包括使用连接句柄和分组的长度中的至少一个对分组进行验证。
背景技术:
现今,许多无线通信系统和设备被部署有根据操作的能力,为用于无线个人局域网(PAN)的工业规范并且在电气与电子工程师协会(IEEE)802.15.1规范中被标准化。提供了用于通过安全的全球非许可近程无线电频率在诸如移动电话、膝上型计算机、个人计算机、打印机和耳机的设备之间连接和交换信息的协议。
一般来讲,音频传输机制被称为同步面向连接(SCO)信道,它在每个方向以64kbit/s速率供应全双工数据。存在三个被定义用于SCO信道的编解码器:A律脉码调制(PCM)、u律PCM和连续可变斜率增量(CVSD)调制。由于CVSD调制对于随机比特误差的鲁棒性,所以几乎专门使用CVSD调制。使用CVSD调制,音频输出质量随着随机比特误差事件的增加而适度降低。然而,CVSD调制对于突发比特误差和来自其它信号的干扰不是鲁棒性的,并且结果,烦人的“类似卡嗒声”的伪信号在音频输出中变得可听见。因此,需要快速地检测分组错误并且验证根据传送的分组。
附图说明
图1A说明了系统的示例性实施例。
图1B说明了计算设备的示例性实施例。
图2说明了分组的示例性实施例。
图3A说明了分组通信流的示例性实施例。
图3B说明了分组通信流的第二示例性实施例。
图4说明了逻辑流程的示例性实施例。
图5A/图5B说明了建立通信会话的通信图的示例性实施例。
图6说明了第二逻辑流程的示例性实施例。
图7说明了计算系统的示例性实施例。
图8说明了第一计算架构的示例性实施例。
具体实施方式
各种实施例一般针对用于对由计算设备根据一个或多个标准(诸如又名为的电气与电子工程师协会(IEEE)802.15.1-2005标准)传送的分组实行分组验证的装置、系统和方法。分组可由计算设备并且尤其是提供一个或多个应用与控制器模块之间的接口的主机栈模块来验证。在一些情况下,分组可由主机栈模块接收并且基于被确定用于计算设备与另一个设备之间的通信会话的连接句柄来验证。
例如,计算设备可与另一个设备诸如外围设备建立通信会话以传送信息,诸如语音数据、输入数据、图片数据等等。在通信会话的建立期间,连接句柄可生成或由计算设备或其它设备确定并且保存在计算设备上或远程保存。然后连接句柄可被用于基于所存储的连接句柄与每个分组中的信息之间的比较来验证由主机栈模块接收的分组。特别地,每个有效分组可包括若干帧,并且分组的第一帧包括连接句柄。因此,主机栈模块可读取所接收的分组的第一帧中的信息,将其与所存储的连接句柄相比较,并且确定是否存在匹配。如果第一帧不包含连接句柄,则可已发生错误,分组可为不同步的,并且分组将验证不通过。
一些实施例也针对在由主机栈模块检测到无效分组时找到下一有效分组。如将在以下描述中所讨论的,主机栈模块可逐帧搜索下一有效分组,直到找到指示下一有效分组开始的具有与所存储的连接相匹配的连接句柄的帧为止。当搜索下一有效分组时,主机控制模块可丢弃不具有有效连接句柄的每个帧。这些其它细节将在以下描述中更全面地讨论。
各种实施例也涉及用于实行这些操作的装置或系统。该装置可被具体构建用于所需目的,或它可包括通过存储在计算机上的计算机程序选择性地激励或重新配置的通用计算机。本文所呈现的过程并非在本质上与特定计算机或其它装置相关。各种通用机器可与根据本文的教导所写的程序一起使用,或者构建更专业的装置以实行所需方法可被证明更方便。各种这些机器的所需结构将从所给出的描述中显现出来。
现参考附图,其中相同的附图标记在全文指代相同的元件。在一些描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的全面理解。然而,显然,可在没有这些具体细节的情况下实践新颖的实施例。在其它情况下,以框图的形式示出了众所周知的结构和设备以便于描述它们。其意图是涵盖与所要求保护的主题一致的所有修改、等同物和替代物。
图1A说明了用于处理包括一个或多个语音分组的信息的系统100的示例性实施例。计算系统100包括与服务器170和外围设备160-1、160-2和160-3耦合的计算设备105。计算设备105可为任何类型的计算机或处理设备,包括个人计算机、桌上型计算机、平板计算机、上网本计算机、笔记本计算机、膝上型计算机、移动计算设备、移动电话设备、智能电话设备、个人数字助理设备(PDA)、蜂窝设备等等。
在各种实施例中,计算设备105可经由连接135与服务器170耦合,连接135可包括一个或多个有线或无线连接。本公开的服务器170旨在表示宽泛范围的服务器设备。进一步,服务器170可为单个服务器或经由连接135本地和/或远程耦合的服务器群集。服务器170也可与一个或多个存储阵列耦合,诸如包括一个或多个存储设备的网络附接存储系统或存储区域网系统,该一个或多个存储设备用于存储可由计算设备105访问的信息。
图1A也说明了分别经由连接130-1、130-2和130-3与外围设备160-1、160-2和160-3耦合的计算设备105。连接130-1、130-2和130-3可为能够在计算设备105与外围设备160之间传送信息的任何有线或无线连接。在一些实施例中,连接130-1、130-2和130-3可为根据无线通信标准(诸如又名为的电气与电子工程师协会(IEEE)802.15.1-2005标准)操作的一个或多个短程无线连接。在这些示例性实施例中,计算设备105可根据IEEE 802.15.1与外围设备160通信并且处理信息。然而,各种实施例不局限于该方式,并且可根据任何有线或无线标准在计算设备105与一个或多个外围设备160之间传送信息。
在各种实施例中,外围设备160-1、160-2和160-3可为任何类型的设备,包括但不限于摄影机、摄像机、无线电话、移动设备、个人数字助理(PDA)、耳机、免提设备、鼠标、键盘、打印机、监视器、扫描仪、传真机,或能够与另一个计算设备通信的任何其它类型的设备或计算系统。
虽然图1A说明了与一个服务器170以及三个外围设备160-1、160-2和160-3耦合的计算设备105,但各种实施例不局限于该方式。计算设备105可与任何数量的服务器和外围设备耦合。
图1B说明了计算设备105的示例性实施例。图1B说明了具有用于处理信息的若干部件的计算设备105,该信息包括根据一个或多个标准传送的一个或多个分组。图1B说明了具有处理器102、存储器104、存储装置106、一个或多个应用108、主机栈模块140和控制器模块150的计算装置105。进一步,主机栈模块140包括经由接口连接120与控制器模块150的接口155耦合的接口145。在一些实施例中,控制器模块150也可包括控制器152、存储器154和无线电设备156。计算设备105的部件和模块可彼此经由一个或多个互连部、总线、迹线、控制线、数据线、数据路径等等彼此通信。进一步,虽然图1B说明了具有有限数量的部件和模块的计算设备105,但各种实施例不局限于该方式。计算设备105可具有任何数量的部件或模块用于处理信息。
在各种实施例中,计算设备105包括处理器102,处理器102可包括一个或多个任何类型的计算元件,诸如但不限于包括了微处理器、处理器、中央处理单元、数字信号处理单元、双核处理器、移动设备处理器、桌上型处理器、单核处理器、芯片上系统(SoC)设备、复杂指令集计算(CISC)微处理器、精简指令集(RISC)微处理器、超长指令字(VLIW)微处理器或在单个芯片或集成电路上任何其它类型的处理器或处理器电路的处理电路系统。图1B仅仅说明了一个处理器102。然而,各种实施例不局限于该方式,并且计算设备105可包括任何数量的处理器,该处理器具有任何数量的处理核。
计算设备105也可包括耦合到处理器102的存储器104。在各种实施例中,存储器104可为系统100和计算设备105存储数据和信息。例如,存储器104可存储和维护信息,诸如用于一个或多个连接的连接句柄以及处理信息、分组等等的指令。各种实施例不局限于该方式,并且存储器104可存储和维护用于处理的其它信息。
存储器104可使用能够存储数据的任何机器可读介质或计算机可读介质来实现,包括易失性存储器和非易失性存储器。在一些实施例中,机器可读介质或计算机可读介质可包括永久介质。实施例不局限于本场景。存储器104可随时、临时或永久存储指令或数据。在处理器102执行指令时,存储器104也可存储临时变量或其它中间信息。存储器104不局限于存储以上所讨论的数据并且可存储任何类型的数据。
进一步,计算设备105可包括用于以永久或半永久的方式存储信息的存储装置106。存储装置106可被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、快闪式存储器、电池备份SDRAM(同步DRAM)和/或网络可访问存储设备。在实施例中,存储装置106可包括例如在包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强保护的技术。存储装置106的进一步的示例包括硬盘、软盘、光盘只读存储器(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、磁光介质、可移动存储卡或可移动存储盘、各种类型的DVD设备、磁带设备、盒式磁带设备等等。实施例不局限于本场景。
计算设备105也可包括用于处理信息的一个或多个应用108。应用108可为任何类型的用于处理信息和数据的应用,包括电话应用、邮件应用、社交媒体应用、日历应用、消息收发应用、管理器应用、文字处理应用、云存储应用、游戏应用等等。在一些实施例中,计算设备105可包括操作系统,诸如操作系统、操作系统、操作系统等等。在各种实施例中,操作系统可提供一个或多个部件、模块等等以使得一个或多个应用108能够利用计算设备105的各种硬件部件和模块。
在各种实施例中,计算设备105可包括用于处理在计算设备105与另一个设备诸如外围设备160之间传送的信息的主机栈模块140。更具体地,主机栈模块140可包括软件、硬件或两者的组合,并且经由控制器模块150实现用于在应用108与外围设备160之间传送信息的一个或多个协议。例如,控制器模块150可包括接收分组并将分组发送到外围设备160的无线电设备156。主机栈模块140可从控制器模块150接收信息的分组、处理包括错误检测和验证的分组并且将信息发送到用于进一步处理的应用108。主机栈模块140也可从应用108接收信息、使信息处于诸如分组的格式以传送至外围设备106,并且将信息发送到控制器模块150用于与外围设备160通信。
主机栈模块140可通过接口连接120接收信息的分组并且将信息的分组发生到控制器模块150。更具体地,主机栈模块140可包括经由接口连接120与控制器模块150的接口155耦合的接口145用于传送分组。在一些实施中,接口145和接口155可根据一个或多个标准通过接口连接120传送分组。例如,接口145和接口155可为主机控制器接口(HCI),诸如通用串行总线(USB)接口或通用非同步接收器/发射器(UART)接口,并且接口连接可为HCI传输层,诸如USB传输层或UART传输。接口145和接口155可基于HCI和HCI传输层的类型根据HCI传输层标准,诸如通用串行总线(USB)工业标准中的任何一个或通用非同步接收器/发射器(UART)工业标准中的任何一个,在主机栈模块140与控制器模块150之间传送信息。然而,各种实施例不局限于该方式,并且可使用不同的接口和传输层来传送信息。
主机栈模块140可以基于接口145和接口155的接口类型、接口连接120的传输层类型以及在通信会话期间所使用的分组类型的格式从控制器模块150接收一个或多个分组并且发送来自控制器模块150的一个或多个分组。例如,接口145和接口155可为USB接口,接口连接120可为USB传输层,并且在计算设备105与外围设备160之间传送的可为语音分组。在该实例中,语音分组在长度上可各自为51字节,包括3字节报头和48字节的数据。在该实例中,分组可基于接口类型、接口连接类型和分组类型被进一步分成若干帧。例如,每个语音分组可以各自在长度上为17字节的3个帧来传送。然而,各种实施例不局限于该方式并且通过类型不同的接口传送的不同分组可以不同的方式来传送。例如,分组可被分成不同数量的帧。
主机栈模块140也可检测错误并且在分组被发送到应用108用于进一步处理之前验证每个分组。如先前所提及的,每个分组可包括报头,报头包括用于通信会话的连接句柄和分组的长度。连接句柄可为在通信会话中由每个分组使用的标识符。此外,同一通信会话中的每个分组将使用同一连接句柄。因此,各种实施例可包括保存被建立用于通信会话的连接句柄以验证每个分组。可将所保存的连接句柄与分组中的每个连接句柄相比较,并且如果它们与分组相匹配则为有效的。另一方面,如果它们不匹配那么分组可能不是有效的。
如先前所提及的,分组可进一步被分成若干帧。在一些实施例中,报头信息可仅仅包括在分组的第一帧的前几字节。因此,主机栈模块140可接收分组的第一帧、读取前几字节并且通过前几字节中的信息与所存储的连接句柄相比较来验证分组。更具体地,如果前几字节中的信息与存储在存储器、存储装置或远程存储的预先建立的用于通信会话的连接句柄相匹配,则分组将被验证并且发送到适当的应用用于进一步处理。
在一些实施例中,主机栈模块140也可使用分组的长度连同连接句柄来验证分组。主机栈模块140可将前几字节中的长度与通信会话期所传送的分组类型的已知长度相比较。在这些实施例中,如果长度对于所传送的分组类型为正确的并且连接句柄与所存储的连接句柄相匹配,则分组将被验证。在一些实施例中,主机栈模块140可仅仅使用长度、仅仅使用连接句柄或使用两者来验证分组。
在一些实施例中,当检测到错误或无效分组时,主机栈模块140可找到下一有效分组。分组可变得不同步或者在通信中可丢失分组的一个或多个帧。因此,各种实施例可针对由主机栈模块140找到指示有效分组的开始的带有与所存储的连接句柄相匹配的连接句柄以及正确长度的帧。
如果分组为无效的或者检测到错误,则主机栈模块140可尝试通过逐帧读取信息直到找到有效连接句柄和长度为止来找到下一有效分组。例如,主机栈模块140可读取帧信息的前几字节并且确定帧是否包括有效连接句柄和分组的有效长度。如果没有,则主机栈模块140可在不读取剩下的帧的信息的情况下丢弃该帧,并且移动至下一帧的开始。主机栈模块140可分析下一帧中的信息并且确定它是否具有有效连接句柄和有效程度。主机栈模块140可继续分析帧直到找到具有有效连接句柄和有效长度的帧为止。当搜索下一有效帧时,主机栈模块140可丢弃不具有有效连接句柄和长度的每个帧,因为如果被应用处理,则这些帧中的数据将有可能引起错误。通过逐帧搜索有效分组而不是读取每个所接收的字节,可节省大量处理循环和功率,这是因为将减少找到下一有效分组要读取的数量。
如先前所提及的,计算设备105也可包括用于在计算设备105与另一个设备之间建立链路、控制传送信息的通信信道以及传送信息的控制器模块150。在一些实施例中,控制器模块150可根据一个或多个标准来操作和通信。例如,控制器模块150可为主机控制器并且根据802.15.1操作。然而,控制器模块150不局限于该方式并且可根据其它标准(诸如IEEE 802.11标准、任何IEEE 802.15标准、IEEE 802.16或任何其它标准)来操作。
控制器模块150可包括若干部件,包括用于建立链路和控制通信信道的控制器152。进一步,控制器模块150可包括存储信息的存储器154和在设备之间传送信息的无线电设备156。控制器模块150也可包括与主机栈模块140的接口145传送信息和数据的接口155。控制器模块150可不局限于图1B所说明的部件并且可包括更多或更少的部件以处理信息。
包括控制器152的控制器模块150可在计算设备105与另一个设备诸如外围设备160之间建立链路。例如,应用设备108或外围设备160可生成可被传送至主机栈模块140的通信会话请求消息。响应于接收到通信会话请求消息,主机栈模块140可发起通信会话并且可将连接请求消息发送到控制器模块150和控制器152。控制器152可接收连接请求消息并且可基于连接请求消息在计算设备105与另一个设备之间建立连接。更具体地,控制器152可处理连接请求消息并且经由无线电设备156将连接请求消息转发给另一个设备,诸如外围设备160。在一些实施例中,控制器152可包括带有发送到外围设备160的连接请求消息的连接句柄。
无线电设备156可从外围设备160接收连接响应消息,并且控制器152可与外围设备160建立链路和通信会话。在一些实施例中,控制器152可不将连接句柄与连接请求消息一起传送至外围设备160,并且外围设备160可包括带有连接响应消息的连接句柄。不论哪种情况,当控制器152或外围设备生成连接句柄时,控制器152可将包括了连接句柄的连接响应消息转发给主机栈模块140。如先前所讨论的,主机栈模块140可保存用于分组验证的连接句柄。
一旦建立了链路和通信会话,控制器152就可控制设备之间的通信。更具体地,控制器可处理包括了信息和数据的分组以与另一个设备通信。例如,控制器152可从主机栈模块140接收分组,并且可经由无线电设备156将分组发送到其它设备。在一些实施例中,控制器152可以特定方式并且根据一个或多个标准对分组进行格式化。更具体地,控制器152可以诸如根据HCI传输层标准的一种格式来接收分组,并且可在经由无线电设备156发射至其它设备之前转换或变换用于通信的分组。控制器152也可经由无线电设备156从另一个设备接收包括了信息和数据的分组,并且可如先前所讨论的以根据HCI传输层标准的格式将所接收的分组发送到主机栈模块140。
在各种实施例中,控制器模块150可包括在发送和接收分组时使用的单独的存储器154。更具体地,存储器154可被用作缓冲器以缓冲等待处理的从另一个设备诸如外围设备160接收的分组以及要发送到设备的分组。存储器154可类似于存储器104。例如,可使用能够存储数据的任何机器可读介质或计算机可读介质,包括易失性存储器或非易失性存储器两者,来实现存储器154。在一些实施例中,机器可读介质或计算机可读介质可包括永久介质。在一些实施例中,存储器154可为与存储器104相同的存储器。
进一步,控制器模块150可包括用于传送信息的无线电设备156。无线电设备156可以是能够通过有线或无线连接发送和接受信息的任何类型的通信设备。无线电设备156可包括硬件部件,诸如传送信息的发射器和接收器。在一些实施例中,无线电设备156可由一个或多个天线(未示出)耦合以将信息无线地传送至其它设备,诸如外围设备160。在各种实施例中,无线电设备156可根据任何标准操作,包括但不限于802.15.1。
图2说明了可在设备(诸如计算设备105与外围设备160)之间传送的分组200的示例性实施例。在各种实施例中,分组200可为任何类型的分组,并且可包括任何类型的信息和数据。例如,分组200可包括语音信息和语音数据并且可为语音分组。然而,各种实施例不局限于该方式,并且分组200可包括其它信息和数据,诸如输入数据、打印机数据、传真数据、电话数据等等。
如先前所讨论的,在设备之间的通信会话期间,分组诸如分组200可在主机栈模块140与控制器模块150之间传送。当在主机栈模块140与控制器模块150之间传送分组时,它们可必须以特定方式格式化,诸如根据HCI传输层标准。图2说明了根据HCI传输层标准诸如USB工业标准被分成帧204-1、204-2和204-3的分组200的示例性实施例。帧204-1、204-2和204-3可为相邻的或毗连的帧,并且各自具有数据字段212。进一步,第一帧204-1具有包括连接标识符字段208和长度字段210的报头206。虽然图2说明了被分成3个帧的分组200,但各种实施例不局限于该方式,并且不同类型的分组可包括不同数量的被不同划分的帧。此外,分组可基于被选择用于在主机栈模块140与控制器模块150之间传送分组的不同HCI传输层标准被分成不同方式。
在各种实施例中,分组200可包括具有数据218的数据字段212,连接标识符字段208可具有用于通信会话的2字节通信句柄214,并且长度字段210可具有1字节长度216。因此,报头206可包括总共3字节的信息。在一个实例中,分组200可为具有48字节的数据216的语音分组。因此在该实例中,分组200的总长度可为51字节,48字节的数据216、2字节的连接句柄和1字节的长度。
如先前所讨论的,主机栈模块140可使用连接句柄214和长度216来检测错误和验证分组。例如,可将在连接标识符字段208中传送的连接句柄214与所保存的被建立用于通信会话的连接句柄相比较,以确定分组是否有效。另外,可将长度字段210中的长度216与分组的已知分组长度相比较,以进一步验证分组。
一旦分组被验证,经验证的分组中的数据218就可被发送到应用用于进一步处理。例如,数据218可为语音分组中的语音数据,并且可由移动设备上的电话应用来处理。在另一个实例中,数据218可为可由文本应用来处理的由输入外围设备接收的输入。各种实施例不局限于这些实例。
图3A说明了随着时间接收的若干分组的分组通信流300的示例性实施例。为了清楚起见,参考图1A和图1B的计算系统100和计算设备105以及图2的分组200来讨论分组通信流300。分组200-1至200-a可为由主机栈模块140从控制器模块150接收的分组,其中a可为任何正整数。此外,分组200-1至200-a可包括由计算设备105从另一个设备诸如外围设备160接收的信息。
主机栈模块140可根据HCI传输层标准经由接口连接120从控制器模块150接收每个分组。在各种实施例中,主机栈模块140可通过从连接标识符字段208中读取连接句柄214并且将其与所存储的被建立用于通信会话的连接句柄相比较来验证每个分组。主机栈模块140可通过从长度字段210中读取长度216并且将其与将在设备之间传送的类型分组的已知长度相比较来进一步验证分组。
图3A说明了在线302-1至线302-a处主机栈模块140从每个分组的连接标识符字段208和长度字段210中读取信息。在该示例性实施例中,每个分组200-1至200-a都为有效的并且由主机栈模块140验证。
图3B说明了随着时间接收的若干分组的分组通信流350的第二示例性实施例。也参考计算系统100、计算设备105和分组200来讨论分组通信流350。分组流350说明了从控制器模块150接收若干分组200-3至200-b的主机栈模块140的示例性实施例,其中b可为任何正整数。分组200-3至200-b可包括来自另一个设备诸如外围设备160的信息。
如类似地讨论,每个分组200都可由主机栈模块140接收和验证。更具体地,主机栈模块140可从每个分组读取信息,如线352-1至352-d所指示的,其中d可为任何正整数。从每个分组中读取的信息可为连接标识符字段208中的连接句柄和长度字段210中的长度216。可通过将连接句柄214与所存储的连接句柄相比较来验证每个分组200-3至200-b。进一步,也可将每个分组200-3至200-b的长度216与分组200的已知长度相比较。当连接句柄214、长度216或两者皆正确时,分组200可被验证。
图3B说明了作为有效分组的分组200-3、200-4、200-5、200-7和200-8。然而,基于在线352-4处读取的信息,分组200-6为不同步的并且为无效的。如图3B所说明的,主机栈模块140将读取线352-4处的数据218,并且因此由于分组202-6不包括正确的连接句柄和/或长度,所以它将验证不通过。
当检测到无效分组时,主机栈模块140可丢弃具有不正确信息的帧。进一步,主机栈模块140可逐帧搜索下一有效分组。例如,图3B说明了主机栈模块140移动至下一帧边界、丢弃前一帧并且如线354-1所指示的从下一帧读取信息。然而,下一帧不具有正确的句柄和长度。主机栈模块140可移动至下一帧、丢弃前一帧并且可如线354-2所指示的读取信息。类似地,主机栈模块140尚未位于下一有效分组并且主机栈模块140可移动至下一帧。在线354-3处,主机栈模块140将读取指示下一有效分组(在该实例中为分组200-7)开始的有效连接句柄214和长度216。
虽然图3B说明了主机栈模块140在从3个帧中读取信息后找到下一有效分组,但可以读取任何数量的帧直到找到有效分组。主机栈模块140可丢弃无效分组的每个帧,因为这些帧中的信息将很可能引起错误的输出。对于任何数量的分组,主机栈模块140可继续验证分组并且在检测到错误时搜索有效分组。各种实施例不局限于其中主机栈模块140可验证的分组的数量。
图4说明了验证分组的第一逻辑流程400。逻辑流程400可表示由本文所述的一个或多个实施例执行的一些或所有操作。例如,逻辑流程400可说明由系统100、700和800以及计算设备105实行的操作。为了清楚起见,参考图1A和图1B中的系统100和计算设备105来讨论逻辑流程400。然而,各种实施例不局限于该方式,并且其它系统、设备、部件等等可实行关于逻辑流程400所讨论的操作。
在方框402处,主机栈模块140可接收具有一个或多个帧的分组。在一些实施例中,主机栈模块140可经由接口连接120从控制器模块150接收分组。分组可根据一个或多个通信标准被发送到主机栈模块140。例如,接口145和接口155可经由接口连接120耦合并且根据HCI传输层标准操作。在该实例中,分组可根据通用串行总线(USB)工业标准或通用异步接收器/发射器(UART)工业标准被传送至主机栈模块140。
在一些实施例中,主机栈模块140可基于用于传送分组的HCI传输层标准来接收作为若干帧的分组。例如,当使用USB工业标准传送分组时,分组可作为各自具有17字节长度的若干帧被接收。然而,各种实施例不局限于该方式,并且分组可在不同标准下以不同方式传送。
在方框404处,主机栈模块140可接收分组并且从分组的一个帧的前几字节中读取信息。前几字节可为报头,报头可被进一步分成连接标识符字段和长度字段。信息读取可包括用于通信会话的连接句柄和分组的长度。如果这是第一次读取分组的信息,则主机栈模块140可从分组的第一帧中读取信息。然而以下将更详细讨论的是,当第一帧不包括有效连接句柄和长度时,主机栈模块140可从后续帧中读取信息。
在判定方框406处,主机栈模块140可基于在方框404处读取的信息来确定分组是否有效。特别地,主机栈模块140可将从分组中读取的信息与所存储的被建立用于通信会话的连接句柄相比较。当信息与所存储的用于通信会话的连接句柄相匹配时,分组可被验证。进一步,主机栈模块140可基于用于通信会话的已知分组长度来确定信息是否包括分组的有效长度。在一些情况下,分组可仅仅在信息包括正确的连接句柄和正确的长度两者时被验证。
如果在判定方框406处分组为有效的,则在方框412处主机栈模块140可将包括其余帧的分组发送到应用用于进一步处理。对于由计算设备105和主机栈模块140接收的每个后续分组,可重复方框402至方框412。然而,如果在方框406处分组不为有效的,则主机栈模块140可逐帧搜索下一有效分组。特别地且在方框408处,主机栈模块140可丢弃具有不正确信息的帧并且在方框410处跳至分组中的下一帧。
在方框404处主机栈模块140可再次从接收的下一帧或后续帧读取信息,并且在判定方框406处确定分组是否有效。对于任何数量的帧,可重复方框404至方框410任何次,直到在方框406处接收和确定下一有效分组为止。一旦找到有效分组,则如先前所讨论的在方框412处分组可被发送到应用。
图5A/图5B说明了用于在计算设备105与外围设备160之间建立通信会话的通信图500和通信图550的示例性实施例。更具体地,图5A说明了基于从应用108发送的请求建立通信会话,以及图5B说明了基于从外围设备160发送的请求建立通信会话。
图5A说明了在线502处应用108将通信会话请求消息发送到主机栈模块140以建立通信会话。通信会话请求消息可包括诸如目标设备的标识以及通信会话的通信类型的信息。例如,标识可包括标识(ID)号或地址,并且通信类型可为数据、语音、视频、音频等等。各种实施例不局限于这些示例。
主机栈模块140可接收消息并且基于从应用108接收的信息生成连接请求消息。连接请求消息也可包括诸如目标设备的标识和要建立的通信会话的类型的信息。在线504处主机栈模块140可将连接请求发送到控制器模块150,在线506处控制器模块150可将连接请求转发给外围设备160。可基于连接请求消息中的标识选择外围设备160。在一些实施例中,控制器模块150也可包括连同连接请求一起的附加信息,诸如通信会话的信道和连接句柄。
外围设备160可接收连接请求消息并且基于连接请求消息生成连接响应消息。在线508处,外围设备160可将连接响应消息发送到控制器模块150。连接响应消息可指示接受或拒绝通信会话的建立。进一步,在线510处,控制器模块150可将连接响应消息发送或转发给主机栈模块140。在一些实施例中,控制器模块150也可将连接句柄连同连接响应消息一起发送到主机栈模块140。主机栈模块140可接收连接响应消息和连接句柄,并且可在线512处保存连接句柄。在一些实施例中,主机栈模块140可将连接句柄保存在存储器、存储装置中或远程保存。一旦建立通信会话,应用108就可使用连接句柄经由主机栈模块140和控制器模块150与外围设备160通信。进一步并且如先前所讨论的,主机栈模块140可基于连接句柄和分组的长度来验证分组。
如先前所提及的,图5B说明了外围设备160发起通信会话的示例性实施例。在一些实施例中,在线552处,外围设备160可将通信会话请求消息发送到计算设备105,尤其是控制器模块150。通信会话请求可包括诸如请求外围设备的身份以及所需通信会话的类型的信息。在线554处,控制器模块150可接收通信会话请求并且将其转发给主机栈模块140用于进一步处理。在线556处,主机栈模块140可生成连接请求消息并且将连接请求消息发送到控制器模块150以与外围设备160建立通信会话。连接请求消息可包括诸如外围设备的标识和所需通信会话的类型的信息。在线558处,控制器模块150可将连接请求消息转发给外围设备,并且可包括用于通信会话的连接句柄。
在线560处,外围设备160可接收连接请求消息、生成连接响应消息并且将连接响应消息发送回控制器模块150。连接响应可包括接受或拒绝建立通信会话。在线562处,控制器模块150可将连接响应发送或转发给主机栈模块140。在一些实施例中,控制器模块150也可将连接句柄连同连接响应一起发送到主机栈模块140。在线564处,主机栈模块140可接收连接响应和连接句柄并且可保存连接句柄。在一些实施例中,主机栈模块140可将连接句柄保存在存储器、存储装置中,或远程保存。一旦建立通信会话,应用108就可使用连接句柄经由主机栈模块140和控制器模块150与外围设备160通信。进一步并且如先前所讨论的,主机栈模块140可基于连接句柄和分组的长度来验证分组。
图6说明了逻辑流程600的实施例。逻辑流程600可表示由本文所述的一个或多个实施例执行的一些或所有操作。例如,逻辑流程600可说明由系统100、计算设备105等等实行的操作。
在图6所示的所说明的实施例中,逻辑流程600可包括接收多个分组,每个分组包括若干帧。例如,在一些实施例中,主机栈模块140可从控制器模块150接收分组用于处理。分组可基于由控制器模块150经由无线电设备156从外围设备160接收的信息,并且进一步经由连接接口120被传送至主机栈模块140。在一些实施例中,主机栈模块140可根据HCI传输层标准通过接口145接收分组。
更具体地,控制器模块150可在使分组格式化之后将它们发送到主机栈模块140以通过接口连接120发射。可使分组处于基于用于接口连接120的HCI传输层标准的格式。在一个实例中,分组可为通过USB传输层被传送至主机栈模块的语音分组。在该实例中,每个分组可被分成若干帧,诸如对于在长度上为51字节的语音分组为3个帧。然而,各种实施例不局限于该实例,并且控制器模块150可使分组处于基于用于传送分组的HCI传输层的正确格式。
在方框610处,逻辑流程600可包括将分组的第一帧中的第一信息与被建立用于通信会话的连接句柄相比较。如先前所提及的,每个分组可被进一步分成若干帧,并且当分组有效时,第一帧可包括具有诸如用于通信会话的连接句柄和分组的长度的信息的报头。对于在通信会话期间传送的每一个分组,连接句柄可为相同的并且用于识别通信会话。当类似于以上关于图5A或图5B或在某些其它时间所讨论的创建通信会话时,可预先建立连接句柄。预先建立的连接句柄可被保存在存储器、存储装置中或远程保存,并且用于与每个分组中的信息比较用于验证。
例如,逻辑流程600可包括在方框615处在第一信息符合连接句柄时验证分组。进一步,逻辑流程600也可包括在方框620处在第一信息不符合连接句柄时丢弃分组的第一帧。当分组被验证时,它可被发送到应用用于进一步处理。然而,如果第一帧不包括与连接句柄相匹配或相符合的信息时,可丢弃第一帧并且可分析后续帧,以找到下一有效分组的开始。
在一些实施例中,第一帧中分组的长度也可用于进一步验证分组。例如,如果连接句柄与所存储的连接句柄相匹配并且分组的长度为正确的,则分组可被验证。然而,各种实施例不局限于该方式,并且在一些实施例中,长度独自可用于验证分组。
图7说明了系统700的一个实施例。在各种实施例中,系统700可表示适合于与本文所述的一个或多个实施例诸如图1的系统100一起使用的系统或架构。实施例不局限于该方面。
如图7所示,系统700可包括多个元件。根据一组给定的设计或性能约束的需要,可使用一个或多个电路、部件、寄存器、处理器、软件子程序、模块或它们的任何组合来实现一个或多个元件。虽然图7以示例的方式示出了呈某一拓扑的有限数量的元件,但可以理解,根据给定实现方式的需要,在系统700中可使用成任何拓扑的更多或更少的元件。实施例不局限于本场景。
在各种实施例中,系统700可包括计算设备705,计算设备705可为任何类型的计算机或处理设备,包括个人计算机、桌上型计算机、平板计算机、上网本计算机、笔记本计算机、膝上型计算机、服务器、服务器群、刀片服务器或任何类型的服务器等等。
计算设备705的其它示例也可包括被布置用于由个人佩戴的计算机,诸如手腕计算机、手指计算机、戒指计算机、眼镜计算机、腰夹计算机、臂带计算机、鞋子计算机、衣服计算机和其它可佩戴计算机。在实施例中,例如,计算设备705可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。虽然可以示例的方式用被实现为智能电话的计算设备705描述一些实施例,但可理解的是,其它实施例也可使用其它无线计算设备来实现。实施例不局限于本场景。
在各种实施例中,计算设备705可包括处理器电路702。处理器电路702可使用任何处理器或逻辑设备来实现。处理电路702可为任何类型的计算元件中的一种或多种,诸如但不限于微处理器、处理器、中央处理单元、数字信号处理单元、双核处理器、移动设备处理器、桌上型处理器、单核处理器、芯片上系统(SoC)设备、复杂指令集计算(CISC)微处理器、精简指令集(RISC)微处理器、超长指令字(VLIW)微处理器或在单个芯片或集成电路上任何其它类型的处理器或处理器电路。处理电路702可经由互连743诸如一个或多个总线、控制线和数据线连接到计算系统的其它元件或与之通信。
在一个实施例中,计算设备705可包括耦合到处理器单元702的存储器单元704。根据给定实现方式的需要,存储器单元704可经由通信总线743或通过在处理电路702与存储器单元704之间的专用通信总线耦合到处理器电路702。存储器单元704可使用能够存储数据的任何机器可读介质或计算机可读介质来实现,包括易失性存储器和非易失性存储器。在一些实施例中,机器可读介质或计算机可读介质可包括永久介质。实施例不局限于本场景。
在各种实施例中,计算设备705可包括图形处理单元(GPU)706。GPU 706可包括被优化用于实行图形相关的操作的任何处理单元、逻辑或电路系统以及视频解码器引擎和帧相关引擎。GPU 706可用于为各种应用诸如视频游戏、图形、计算机辅助设计(CAD)、仿真与可视化工具、成像等渲染2维(2-D)或3维(3-D)图像。各种实施例不局限于该方式;GPU 706可处理任何类型的图形数据,诸如图片、视频、程序、动画、3D、2D、对象图像等等。
在一些实施例中,计算设备705可包括显示控制器708。显示控制器708可为用于处理图形信息并且显示图形信息的任何类型的处理器、控制器、电路、逻辑等等。显示控制器708可从一个或多个缓冲器诸如缓冲器220接收或检索图形信息。在处理信息之后,显示控制器708可将图形信息发送到显示器。
在各种实施例中,系统700可包括收发器744。收发器744可包括一个或多个能够使用合适的无线通信技术来发射或接收信号的无线电设备。此类技术可涉及通过一个或多个无线网络的通信。示例性无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在通过此类网络的通信中,收发器744可根据一个或多个为任何版本的使用标准来操作。实施例不局限于本场景。
在各种实施例中,计算设备705可包括显示器745。显示器745可构成能够显示从处理器单元702、图形处理单元706和显示控制器708接收的信息的任何显示设备。
在各种实施例中,计算设备705可包括存储装置746。存储装置746可被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接存储设备、快闪式存储器、电池备份SDRAM(同步DRAM)和/或网络可访问存储设备。在实施例中,存储装置746可包括例如在包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强保护的技术。存储装置746的进一步的示例包括硬盘、软盘、光盘只读存储器(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、磁光介质、可移动存储卡或可移动存储盘、各种类型的DVD设备、磁带设备、盒式磁带设备等等。实施例不局限于本场景。
在各种实施例中,计算设备705包括一个或多个I/O适配器747。I/O适配器747的示例可包括通用串行总线(USB)端口/适配器、IEEE1394火线端口/适配器等等。实施例不局限于本场景。
图8说明了适合于实现如先前所述的各种实施例的示例性计算架构800的实施例。在一个实施例中,计算架构800可包括或被实现为系统100的一部分。
如在本申请中所使用的,术语“系统”和“部件”旨在指代计算机相关的实体,其既可为硬件、硬件和软件的组合、软件,也可为在执行中的软件,其示例由示例性计算架构800提供。例如,部件可为但不限于,在处理器上运行的进程、处理器、硬盘驱动器、多个存储驱动器(光学和/或磁性存储介质)、对象、可执行代码、执行的线程、程序和/或计算机。作为说明,在服务器上运行的应用和服务器两者皆可为部件。一个或多个部件可存留在执行的进行和/或线程内,并且部件可被定位在一个计算机上并且/或者分布在两个或更多个部件之间。进一步,部件可通过各种类型的通信介质彼此通信耦合以协调操作。协调可涉及信息的单向交换或双向交换。举例来说,部件可以通过通信介质传送的信号的形式来传送信息。信息可被实现为分配给各种信号线的信号。在此类分配中,每个消息都为信号。然而,进一步的实施例可替代地采用数据消息。此类数据消息可通过各种连接发送。示例性连接包括并行接口、串行接口和总线接口。
计算架构800包括各种普通计算元件,诸如一个或多个处理器、多核处理器、协同处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)部件、电源等等。然而,实施例不局限于由计算架构800实现。
如图8所示,计算架构800包括处理单元804、系统存储器806和系统总线808。处理单元804可为各种可商购获得的处理器中的任一个。
系统总线808为包括但不限于系统存储器806的系统部件提供到处理单元804的接口。系统总线808可以是可使用多种可商购获得的总线架构中的任一种进一步互连到存储器总线(在存在不不存在存储器控制器的情况下)、外围总线和局部总线的若干类型的总线结构中的任一种。接口适配器可经由插槽架构连接到系统总线808。示例插槽架构可包括但不限于加速图形端口(AGP)、卡总线、(扩展)工业标准架构((E)ISA)、微通道架构(MCA)、NuBus、外围部件互连(扩展)(PCI(X))、PCI Express、个人计算机存储器卡国际协会(PCMCIA)等等。
计算架构800可包括或实现各种制品。制品可包括存储逻辑的计算机可读存储介质。计算机可读存储介质的示例包括能够存储电子数据的任何有形介质,包括易失性或非易失性存储器、可拆卸或不可拆卸存储器、可擦除或不可擦除存储器、可写或可重写存储器等等。逻辑的示例可包括使用任何合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码、面向对象的代码、可视代码等等来实现的可执行计算机程序指令。实施例也可至少部分被实现为包含在永久计算机可读介质中或在永久计算机可读介质上的指令,该指令可由一个或多个处理器来读取和执行以使得能够实行本文所述的操作。
系统存储器806可包括一个或多个较高速存储单元形式的各种类型的计算机可读存储介质,诸如只读存储器(ROM)、随机访问存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪式存储器、诸如铁电聚合物存储器的聚合物存储器、双向记忆(ovonic)存储器、相位变化或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、诸如独立磁盘冗余阵列(RAID)驱动器的设备的阵列、固态存储设备(例如,USB存储器、固态驱动器(SSD))以及适合于存储信息的任何其它类型的存储介质。在图8所示的所说明的实施例中,系统存储器806可包括非易失性存储器810和/或易失性存储器812。基本输入/输出系统(BIOS)可存储在非易失性存储器810中。
计算机802可包括一个或多个较低速存储单元形式的各种类型的计算机可读存储介质,包括内部(或外部)硬盘驱动器(HDD)814、从可拆卸磁盘818读取或写到可拆卸磁盘818的磁软盘驱动器(FDD)816以及从可拆卸光盘822读取或写到可拆卸光盘822的光盘驱动器820(例如,CD-ROM或DVD)。HDD 814、FDD 816和光盘驱动器820可分别通过HDD接口824、FDD接口826和光驱接口828连接到系统总线808。用于外部驱动器实现方式的HDD接口824可包括通用串行总线(USB)和IEEE 1394接口技术中的至少一者或两者。
驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等等的易失性和/或非易失性存储。例如,若干程序模块可被存储在驱动器和存储单元810、812中,包括操作系统830、一个或多个应用程序832、其它程序模块834和程序数据836。在一个实施例中,一个或多个应用程序832、其它程序模块834和程序数据836可包括例如系统700的各种应用和/或部件。
用户可通过一个或多个有线/无线输入设备例如键盘838和指示设备(诸如鼠标840)将命令和信息输入到计算机802中。其它输入设备可包括麦克风、红外线(IR)遥控器、射频(RF)遥控器、游戏手柄、手写笔、读卡器、软件保护器、指纹读取器、手套、绘图板、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式的、电阻式的等)、跟踪球、跟踪板、传感器、触控笔等等。这些或其它输入设备常通过输入设备接口842连接到处理单元804,输出设备接口842耦合到系统总线808,但也可通过其它接口诸如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等等连接。
监视器844或其它类型的显示设备也经由接口诸如视频适配器846连接到系统总线808。监视器844可在计算机802的内部或外部。除监视器844以外,计算机通常包括其它外围输出设备,诸如扬声器、打印机等等。
计算机802可经由到一个或多个远程计算机(诸如远程计算机848)的有线和/或无线通信使用逻辑连接在联网环境下操作。远程计算机848可为工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐器具、对等设备或其它常见的网络节点,并且通常包括相对于计算机802描述的许多或所有元件,但为了简明起见,仅仅说明了存储器/存储设备850。所描绘的逻辑连接包括到局域网(LAN)852和/或较大的网络例如广域网(WAN)854的有线/无线连接。此类LAN和WAN联网环境在办公室和公司中为常见的,并且促进了整个企业计算机网络诸如企业内部网,它们全部都可连接到全球通信网络,例如,因特网。
当用于LAN联网环境时,计算机802通过有线和/或无线通信网络接口或适配器856连接到LAN 852。适配器856可促进到LAN 852的有线和/或无线通信,适配器856也包括设置在其上用于与适配器856的无线功能通信的无线接入点。
当用于WAN联网环境时,计算机802可包括调制解调器858,或者通过WAN 854连接到通信服务器,或者具有用于通过WAN 854诸如通过因特网建立通信的其它装置。调制解调器858经由输入设备接口842连接到系统总线808,调制解调器858可为内部或外部设备并且为有线和/或无线设备。在联网环境中,相对于计算机802描绘的程序模块或其部分可被存储在远程存储器/存储设备850中。将理解的是,所示的网络连接为示例性的,并且可使用在计算机之间建立通信链路的其它装置。
计算机802可操作用于使用IEEE 802标准家族与有线设备或实体以及无线设备或实体通信,诸如可操作地设置在无线通信(例如,IEEE802.11空中调制技术)中的无线设备。尤其,这至少包括Wi-Fi(或无线保真)、WiMax和BluetoothTM无线技术。因此,通信可为与常规网络一样的预定义结构或者简单地为至少两个设备之间的自组织通信。Wi-Fi网络使用被称作IEEE 802.1lx(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机连接到彼此、连接到因特网并且连接至到有线网络(其使用IEEE 802.3有关的介质和功能)。
如先前参考图1至图8所述的系统100、系统700和系统800以及计算设备105的各种元件可包括各种硬件元件、软件元件或它们的组合。硬件元件的示例可包括设备、逻辑设备、部件、处理器、微处理器、电路、处理器、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体设备、芯片、微芯片、芯片组等等。软件元件的示例可包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任何组合。然而,根据给定实现方式的需要,确定实施例是否使用硬件元件和/或软件元件来实现可根据任何数量的因素而变化,诸如所需计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计或性能约束。
详细的公开现转向提供从属于进一步实施例的实例。以下提供的实例一至实例三十(1-30)旨在为示例性的和非限制性的。
在第一实例中,系统或装置可包括处理电路系统、与处理电路系统耦合以存储用于通信会话的连接句柄的存储器、包括传送信息的无线电设备的控制器模块。系统或装置也可包括经由接口连接与控制器模块耦合的主机栈模块,主机栈模块从控制器模块接收分组、将分组的第一帧中的第一信息与存储在存储器中的连接句柄相比较,并且当第一信息符合连接句柄时验证分组有效或当第一信息不符合连接句柄时丢弃第一帧,每个分组都包括若干帧。
在第二实例中并且在第一实例的进一步方面中,系统或装置可包括将每个后续帧中的信息与连接句柄相比较直到信息符合连接句柄为止并且丢弃不具有符合连接句柄的信息的每个后续帧的主机栈模块。
在第三实例中并且在任一先前实例的进一步方面中,系统或装置可包括当分组的第一帧中的第二信息符合分组的正确长度时进一步验证分组有效的主机栈模块。
在第四实例中并且在任一先前实例的进一步方面中,系统或装置可包括当信息不符合连接句柄时通过逐帧跳过每个后续帧中的其余字节来确定后续帧中的信息是否符合连接句柄的主机栈模块。
在第五实例中并且在任一先前实例的进一步方面中,系统和装置可包括根据所传送的连接响应消息来确定用于连接的连接句柄以建立通信会话的主机栈模块。
在第六实例中并且在任一先前实例的进一步方面中,系统和装置可包括第一帧,该第一帧包括进一步包括具有第一信息的2字节连接标识符字段和具有第二信息的1字节长度字段的报头。
在第七实例中并且在任一先前实例的进一步方面中,系统和装置可包括与外围设备建立通信会话并且在通信会话期间经由无线电设备与外围设备通信的控制器模块。
在第八实例中并且在任一先前实例的进一步方面中,系统和装置可包括主机栈模块和控制器模块,主机栈模块包括第一接口,控制器模块包括第二接口,第一接口和第二接口根据主机控制器接口(HCI)传输层标准在主机栈模块与控制器模块之间传送分组。
在第九实例中并且在任一先前实例的进一步方面中,计算机实现的方法可包括由处理电路系统接收分组,每个分组都包括若干帧,由处理电路系统将分组的第一帧中的第一信息与被建立用于通信会话的连接句柄相比较,当第一信息符合连接句柄时由处理电路系统验证分组有效,以及当第一信息不符合连接句柄时由处理电路系统丢弃分组的第一帧。
在第十实例中并且在任一先前实例的进一步方面中,计算机实现的方法可包括由处理电路系统将每个后续帧中的信息与连接句柄相比较直到信息符合连接句柄为止,以及由处理电路系统丢弃不具有符合连接句柄的信息的每个后续帧。
在第十一实例中并且在任一先前实例的进一步方面中,计算机实现的方法可包括当分组的第一帧中的第二信息符合分组的正确长度时由处理电路系统验证分组有效。
在第十二实例中并且在任一先前实例的进一步方面中,计算机实现的方法可包括当信息不符合连接句柄时由处理电路系统通过逐帧跳过每个后续帧中的其余字节来确定后续帧中的信息是否符合连接句柄。
在第十三实例中并且在任一先前实例的进一步方面中,计算机实现的方法可包括由处理电路系统根据连接响应消息来确定用于连接的连接句柄以建立通信会话。
在第十四实例中并且在任一先前实例的进一步方面中,计算机实现的方法可包括第一帧,该第一帧包括进一步包括具有第一信息的2字节连接标识符字段和具有第二信息的1字节长度字段的报头。
在十五实例中并且在任一先前实例的进一步方面中,计算机实现的方法可包括由处理电路系统建立与外围设备的通信会话,以及在通信会话期间由处理电路系统经由无线电设备与外围设备通信。
在第十六实例中并且在任一先前实例的进一步方面中,计算机实现的方法可包括接收分组是根据主机控制器接口(HCI)传输层标准。
在第十七实例中并且在任一先前实例的进一步方面中,制品包括具有多个指令的计算机永久可读存储介质,当指令被执行时使得处理部件接收包括多个分组,每个分组都包括若干帧、将分组的第一帧中的第一信息与被建立用于通信会话的连接句柄相比较、在第一信息符合连接句柄时验证分组有效以及在第一信息不符合连接句柄时丢弃分组的第一帧。
在第十八实例中并且在任一先前实例的进一步方面中,制品可包括多个指令,当指令被执行时使得处理部件将每个后续帧中的信息与连接句柄相比较直到信息符合连接句柄为止,以及丢弃不具有符合连接句柄的信息的每个后续帧。
在第十九实例中并且在任一先前实例的进一步方面中,制品可包括多个指令,当指令被执行时使得处理部件在分组的第一帧中的第二信息符合分组的正确长度时验证分组有效。
在第二十实例中并且在任一先前实例的进一步方面中,制品可包括多个指令,当指令被执行时使得处理部件在信息不符合连接句柄时,通过逐帧跳过每个后续帧中的其余字节来确定后续帧中的信息是否符合连接句柄。
在第二十一实例中并且在任一先前实例的进一步方面中,制品可包括多个指令,当指令被执行时使得处理部件根据连接响应消息确定用于连接的连接句柄以建立通信会话。
在第二十二实例中并且在任一先前实例的进一步方面中,制品可包括第一帧,第一帧包括进一步包括具有第一信息的2字节连接标识符字段和具有第二信息的1字节长度字段的报头。
在第二十三实例中并且在任一先前实例的进一步方面中,制品可包括多个指令,当指令被执行时使得处理部件建立与外围设备的通信会话,以及在通信会话期间经由无线电设备与外围设备通信。
在第二十四实例中并且在任一先前实例的进一步方面中,制品可包括多个指令,当指令被执行时使得处理部件根据主机控制器接口(HCI)传输层标准接收分组。
在第二十五实例中并且在任一先前实例的进一步方面中,装置可包括用于接收多个分组(每个分组都包括若干帧)的装置、用于将分组的第一帧中的第一信息与被建立用于通信会话的连接句柄相比较的装置、用于当第一信息符合连接句柄时验证分组有效的装置,以及用于当第一信息不符合连接句柄时丢弃分组的第一帧的装置。
在第二十六实例中并且在任一先前实例的进一步方面中,装置可包括用于将每个后续帧中的信息与连接句柄相比较直到信息符合连接句柄的装置,以及用于丢弃不具有符合连接句柄的信息的每个后续帧的装置。
在第二十七实例中并且在任一先前实例的进一步方面中,装置可包括用于当分组的第一帧中的第二信息符合分组的正确长度时验证分组有效的装置。
在第二十八实例中并且在任一先前实例的进一步方面中,装置可包括用于当信息不符合连接句柄时通过确定逐帧跳过每个后续帧中的其余字节来确定后续帧中的信息是否符合连接句柄的装置。
在第二十九实例中并且在任一先前实例的进一步方面中,装置可包括用于根据连接响应消息来确定用于连接的连接句柄以建立通信会话的装置。
在第三十实例中并且在任一先前实例的进一步方面中,装置可包括用于建立与外围设备的通信会话的装置,以及用于在通信会话期间经由无线电设备与外围设备通信的装置。
可使用措辞“一个实施例”或“实施例”连同它们的派生词来描述一些实施例。这些术语意指结合实施例所述的特定特征、结构或特性包括在至少一个实施例中。在本说明书中各种地方出现的短语“在一个实施例中”不必都指同一实施例。进一步,一些实施例可使用措辞“耦合”和“连接”连同它们的派生词来描述。这些术语不必旨在互为同义词。例如,一些实施例可使用术语“连接”和/或“耦合”来描述,以指示两个或更多个元件彼此直接物理接触或电接触。然而,术语“耦合”也可意指两个或更多个元件彼此不直接接触,但是仍彼此协作或交互。
要强调的是,提供了本公开的摘要以使读者快速弄清技术公开的性质。应理解,它是在它将不用于解释或限制权利要求的范围或意义的情况下提交的。另外,在上述具体实施方式中,可以看出,为了使本公开流畅的目的,在单个实施例中将各种特征集中在一起。该公开的方法不应被解释为反映所要求保护的实施例要求比每个权利要求中所明确表述的更多特征的意图。相反,如以下权利要求所反映的,本发明主题绝非在于单个所公开的实施例的所有特征。因此以下权利要求由此被并入具体实施方式中,其中每个权利要求本身作为单独的实施例。在所附权利要求中,术语“包括”和“其中”分被用作相应术语“包含”和“在其中”的通俗英语等同物。此外,术语“第一”、“第二”、“第三”等等仅仅用于标记,并非旨在将数字要求强加于其对象上。
以上所述的包括所公开的架构的实例。当然,描述部件和/或方法的每一种可想到的组合是不了能的,但本领域的普通技术人员将认识到,许多进一步的组合和排列是可能的。因此,本新颖架构旨在包含落入所附权利要求的精神和范围内的所有此类更改、修改和变化。