用于通过无线适配器保证关键数据的传输的方法和设备\n技术领域\n[0001] 本发明一般涉及无线适配器,尤其涉及关键数据从主机装置到目的地装置的传输。\n背景技术\n[0002] 在装置之间越来越多地使用无线接口作为将数据从一个装置传送到另一个装置的手段。很多这样的无线接口使用无线电传输技术。例如,电气和电子工程师协会(IEEE)已经阐述了定义局域和个域无线协议和规范的若干标准。这些标准的一些示例通过诸如WiFi这样的名称,以及通过诸如蓝牙这样的商品名称被公知。\n[0003] 在要由同一个人配合使用的装置之间,越来越多地使用个域网络,诸如实质上符合IEEE802.15.1标准的个域网络。个域网络的示例包括蜂窝电话与耳机、扩音器装置以及汽车音频系统之间的接口、个人计算机与无线键盘以及其他输入装置之间的接口等等。在这些应用的一些应用中,关键的需要可能是将数据从一个装置传送到另一个装置,其中必须将延迟最小化。\n[0004] 如在公共安全应用中常见的,这样的关键应用的一个示例是在双向无线电设备和关联远程麦克风装置之间的链接中。双向无线电设备提供“一键通”(PTT)操作,其中用户可以按下装置上的按钮并几乎即时开始说话,其中双向无线电设备在用户开始说话的时候开始传送语音数据。这种操作不同于诸如像蜂窝电话这样的其他通信系统,其中必须建立呼叫电路,并且被叫方必须在主呼方可以开始说话之前,在他们那一端回答呼叫。在PTT系统中,当用户按下通话按钮时,无线电设备开始传送,并且接收传输的无线电设备用听得见的方式再现用户的语音,而在接收的无线电设备处不需要来自用户的交互。\n[0005] 因为PTT操作的近即时通讯方面是关键性的,所以希望避免任何延迟。但是,常规的个域网络协议可以以若干方式引入延迟。例如,发送给个域网协议栈的数据必须通过协议栈处理。在数据传递给无线适配器以用于传输之前存在若干处理层,并且对于大多数应用而言具有足够速度的这些处理层在PTT应用中可能引入不希望的延迟量。此外,因为PTT数据可能不一定是远程附件与双向无线电装置之间交换的唯一数据,所以协议栈可能对PTT数据进行流控制程序,该流控制程序将不希望的延迟引入通信。因此,需要一种可以在具有关键延迟考虑因素的应用中实现个域网络技术的手段。\n附图说明\n[0006] 附图示出目前优选的实施例,但是要理解,本发明不限于所示的确切布置和工具。\n[0007] 图1示出根据实施例的包括个域网模块的主机装置的框图;\n[0008] 图2示出根据实施例的主机和无线适配器的各种操作层的抽象视图;\n[0009] 图3示出根据实施例的无线适配器的框图;\n[0010] 图4示出根据实施例的用于保留传输容量的处理的抽象视图;\n[0011] 图5示出根据实施例的比较非关键数据与关键数据的传输的抽象视图;以及[0012] 图6示出根据实施例的用于接收关键数据的抽象视图。\n具体实施方式\n[0013] 虽然说明书通过限定被认为是新颖的本发明特征的权利要求书作出结论,但是发明人认为,根据结合附图对描述的考虑将更好地理解本发明。按照要求,这里公开本发明的详细实施例;但是,应当理解,所公开的实施例只是本发明的示例,所述示例可以具体实施为各种形式。因此,这里公开的特定结构和功能细节不应当解释为限制性的,而仅仅是作为权利要求的基础,以及作为教导本领域技术人员在几乎任何适当的具体结构中通过各种方式采用本发明的代表性基础。此外,这里使用的术语和短语并不意在成为限制性的,而是提供本发明的可理解的描述。\n[0014] 参照图1,示出根据实施例的包括个域网模块的主机装置100的框图。通过本附图表示的装置只是意指作为示例,并且本领域技术人员将认识到,存在可以应用这里讨论的教导的很多实施例。在本实施例中,主机装置包括控制器102,控制器102可以是能够处理数据、接收输入、并响应于由控制器执行的指令代码而提供输出的微控制器或微处理器。本实施例进一步包括音频处理器104,音频处理器104将要通过扬声器106播放的模拟信号转换为数字音频信号,并从麦克风108接收模拟信号和将它们转换为可由控制器处理的数字音频信号。音频处理器可以对于“一键通”(PTT)按钮110作出响应,按钮110被按下或者以其他方式被启动时,指示装置的用户将要说话。因此,在用户说话时,将在麦克风108从用户接收模拟音频信号,并由个域网(PAN)模块112从主机装置传送音频数据。PAN模块表示一种类型的无线适配器,并且本领域技术人员将理解,根据本教导,存在实质上可以互换使用的其他类型的无线适配器。例如,PAN模块可以是根据IEEE802.15.1标准操作的无线适配器。在业内通过商品名称蓝牙知道无线适配器的示例。PAN模块包括用于传送和接收无线电信号的无线收发器。天线115可用于促进无线电操作。主机装置可以包含其他用户接口元件114,诸如像图形显示器、键盘、相机等等。\n[0015] 控制器根据可以存储在存储器116中的指令代码操作。如图所示的存储器116表示集合存储器,并且可以包括只读存储器(ROM)、随机存取存储器(RAM)、可再编程存储器等等。存储器是有形的、非短暂、机器可读的存储介质,并且可以存储当由控制器执行时执行根据这里的教导的功能的指令代码。主机装置100例如可以是经由PAN模块112与双向无线电设备无线对接的远程音频附件。远程音频附件和双向无线电设备两者都可以戴在用户身体上,并通过无线方式相互交互。例如,用户可以按下PTT按钮110,并且主机装置100可以开始向双向无线电设备发送音频数据,用于传输到在无线电网络中操作的其他无线电设备,或者直接传输到其他无线电设备。主机装置指令代码包括用于例示用于与PAN模块对接的协议栈的指令代码。\n[0016] 图2示出根据实施例的主机和无线适配器的各种操作层200的抽象视图。这里以及后续抽象视图中示出的各种层表示通过由一个或多个处理器以及附加硬件元件(如果必要的话)执行的指令代码实现的操作层,或者作为在包括一个或多个有形非短暂机器或计算机可读存储介质的计算机程序产品中具体体现的指令代码实现的操作层,当由一个或多个处理器执行时,指令代码将例示与这里教导的抽象相对应的接口和层。主机层202表示主机装置的功能,主机装置的功能例如可以通过主机控制器(诸如图1的控制器102)实现,而适配器层204表示无线适配器(诸如图1的PAN模块112)的功能。这里所示的操作层不意指穷举性的,并且本领域技术人员将理解,主机控制器可以执行本视图或者这里讨论的其他抽象视图中未表示的很多其他功能。同样地,这里所示的不同层可以以更细的抽象粒度进一步限定,但是,本抽象等级的目的是集中于创造性实施例,而不是复制公知细节。\n[0017] 在本抽象的最高等级,主机层包括应用层206。应用层是应用所操作的层,并且被较低的层支持。在应用之中是关键应用208。关键应用208在被调用时可以具有要由无线适配器层204传送的关键数据。当非关键应用206需要具有由无线适配器传送的数据时,它们经由至硬件接口209的操作系统将非关键数据传递给协议栈210,硬件接口209例如可以是用于个域网模块的装置驱动器,个域网模块可以包括一个或多个动态链接库(DLL)。协议栈\n210处理非关键数据,将其准备好用于通过其他层下传,并且最后将非关键数据传递给主机控制器接口(HCI)212。HCI212向用于无线适配器的基带控制器和链接管理器提供命令接口,并访问无线适配器的硬件状态和控制寄存器。HCI212将数据传递给HCI输送接口,或者仅仅是输送接口214,输送接口214与至无线适配器204的物理硬件通信216对接。例如,通信\n216可以是常规的三线通用异步接收器/传送器(UART),用于至无线适配器204的RS232链接。主机202的通信硬件216与无线适配器204的通信硬件218通信。无线适配器通信218将数据传递给无线适配器硬件,无线适配器硬件根据其中存储的指令代码操作,并且可以包括用于与HCI层212相对应的主机控制器接口层的固件,主机控制器接口层可以对来自HCI212的消息收发作出响应。无线适配器硬件包含用于传送和接收无线电信号的收发器,并使用同步链接或者异步链接将数据传送到目的地。\n[0018] 图3示出根据实施例的无线适配器300的框图。无线适配器300可以是PAN模块112的实现,并且可以体现为独立的集成电路。无线适配器300包括控制器302,控制器302可以是微处理器或者微控制器。控制器302执行可以在无线适配器300的固件存储器(未示出)中被提供作为固件的指令代码。无线适配器300可以经由UART304与主机处理器通信,UART304根据图2的适配器通信层218操作。无线适配器300进一步包括无线电收发器(TXCVR)306,TXCVR306用于分别向目的地装置传送数据以及从目的地装置接收数据。数据被保持在缓冲存储器的缓冲器310中。无线适配器可以基于缓冲存储器中提供的缓冲器310的数目来处理最大数据容量。缓冲器的数目由主机确定,并由协议栈210用来判断来自应用206的数据流。\n为了保证通过适时的方式传输关键数据,可以保留一些数据流容量,以保证接收关键数据时有容量可用。\n[0019] 图4示出根据实施例的用于保留传输容量的处理400的抽象视图。一些无线适配器可以被配置为保留用于关键数据的传输的流容量。但是,大多数容易可用的PAN模块不支持这样的功能。处理包括确定无线适配器的传输容量的最大容量值,并将低于最大容量值的减少或缩减的容量值通知输送层214上面的层。结果是,主机的上层使用用于无线适配器的减少或缩减的流容量值操作。最大容量值与缩减的容量值之间的差异是可由关键应用使用的保留容量值。最大容量值可以基于无线适配器中可用的缓冲器310的数目。\n[0020] 在一个实施例中可以通过容量询问402进行最大容量值的确定,在主机202的初始化时容量询问402可以来自协议栈210。在使用蓝牙协议的实施例中,容量询问可以是HCI_READ_BUFFER_SIZE命令。容量询问402请求无线适配器204指示其用于传送数据的容量。指示最大容量值的对于容量询问的响应404被输送接口214截取(406)。输送接口214减少或缩减最大容量值,以产生减少或缩减的容量值(408),该值被返回协议栈或者发出容量询问的其他实体。例如,如果无线适配器204包含10个缓冲器,则对容量询问的响应将指示有10个缓冲器。输送接口214将此缩减至少一,并将指示有不多于9个缓冲器可用的结果返回更高的层,因此,第10个缓冲器将决不会用于非关键数据,因为更高的层将不知道第10个缓冲器的存在。\n[0021] 通过用户的优选或者其他手段,可以由关键应用208设置将最大容量值减少的量。\n此外,虽然处理在初始化的时候发生,但是可以设想主机可以将栈重新初始化,以改变保留容量值,并将重新初始化时由其减少或缩减最大容量值的新值或不同值提供给输送接口\n214。可以通过关键应用或者在例示附加关键应用时选择由其缩减最大容量值的新值。一旦已经保留期望的容量,关键应用可将保留的容量用于以最小延迟传送关键数据。\n[0022] 图5示出根据实施例的比较非关键数据与关键数据的传输的抽象视图500。在传送非关键数据时,非关键应用使用非关键呼叫或命令505向协议栈210发送数据(502)。非关键数据由协议栈210处理,可包括将非关键数据格式化。然后,可以将非关键数据传递给HCI层\n212(504),并且然后将其传递给输送接口214(506),然后在那里越过通信链接216、218将其传递给无线适配器(508)。在下到栈的路径上可以对非关键数据进行询问、格式化以及向处理引入延迟的其他操作。\n[0023] 相反,当关键应用208需要传送关键数据时,关键应用可以调用命令512,以将关键数据直接传递给输送接口214(510)。因为关键应用绕开协议栈和其他层,所以可以认为通过关键应用将关键数据注入输送接口。命令512允许关键应用对输送接口214的直接访问。\n然后输送接口214可将关键数据格式化,用于将关键数据格式化,以输送给目的地装置。可以通过主机的逻辑链接控制和适配协议(L2CAP)功能来处理关键数据,其将数据封装用于应用,并向具有协议复用能力、分割和重组功能以及群组提取的上层协议提供面向连接和无连接的数据服务。在蓝牙特定实施例中,L2CAP允许更高等级的协议和应用传送和接收长度高达64千字节的L2CAP数据分组。\n[0024] 典型的封装包括在分组头部提供某些数据字段。当分组中包括关键数据时,一个或多个字段可以指示这种情况。例如,一个或多个头部字段可以包括已经被预选为识别关键数据分组的值。在其他实施例中,可以将给定字段的值设置为非法或未定义的值,以指示包含关键数据。例如,可将信道标识符字段设置为非法或未定义的值,诸如0x0000(514)。一旦被格式化,输送接口就将适当封装的关键数据传递(516)给无线适配器204,无线适配器\n204将该分组缓冲用于传输。由于协议栈如同有比实际可用的缓冲器至少少一个的缓冲器操作,所以在无线适配器204中至少有一个缓冲器可用于关键数据。然后,例如使用主机202与目的地装置之间的异步链接,可以通过以适时的方式将关键数据传送给目的地装置。\n[0025] 图6示出根据实施例的用于在目的地装置处接收关键数据的抽象视图600。由目的地装置600的无线适配器602接收包括关键数据的分组601(600)。进而在目的地主机603的输送接口606处将分组601传递给目的地主机603(608)。输送接口606通过HCI以及协议栈将非关键数据传递给上层,在协议栈处处理非关键数据然后将其传递给应用层。但是在本示例中,由于数据601是关键数据,并通过数据分组中的字段(诸如信道标识符字段)来指示,所以输送接口606将关键数据直接传递给对应的关键应用610(612)。输送接口606诸如通过至关键应用610的应用编程接口614的呼叫,可以将关键数据传递给关键应用610。在一个实施例中,关键应用610可以是一键通应用,而目的地装置可以是双向无线电设备,其中关键数据是用于在诸如远程音频附件的发送装置处启动的一键通通信的语音数据,发送装置向双向无线电设备发送关键数据,用于传输到无线电网络中。\n[0026] 因此,本领域技术人员将认识到,本教导的实施例包括用于保证来自主机装置的关键数据的传输的方法,该方法通过确定与主机装置相关联的无线适配器的数据传输容量的最大容量值开始,该确定在主机装置的输送接口处执行,并且其中输送接口与无线适配器对接。该方法进一步通过在输送接口处缩减最大容量值、产生缩减的容量值开始,其中,保留容量值是最大容量值与缩减的容量值之差。该方法进一步开始允许根据缩减的容量值通过非关键接口将非关键数据传送给输送接口,并使用无线适配器的与保留容量值相对应的保留容量传送关键数据,其中在输送接口的关键接口处将关键数据注入输送接口中。\n[0027] 其他实施例可以包括在机器可读存储介质中体现的用于主机装置的计算机程序产品,主机装置具有处理器,计算机程序产品其中存储了指令代码,当由处理器执行时,指令代码确定与装置相关联的无线适配器的数据传输容量的最大容量值,这在主机装置的输送接口处执行,其中输送接口与无线适配器对接。计算机程序产品进一步包括当由处理器执行时缩减最大容量值的指令代码,在输送接口处产生缩减的容量值,其中保留容量值是满容量值与缩减的容量值之差。计算机程序产品进一步包括当由处理器执行时允许根据缩减的容量值通过非关键接口将非关键数据传送给输送接口的指令代码。计算机程序产品进一步包括当由处理器执行时使用无线适配器的与保留容量值相对应的保留容量传送关键数据的指令代码,其中在输送接口的关键接口处将关键数据注入输送接口中。\n[0028] 附加实施例可以包括用于在目的地装置处处理关键数据的方法,该方法通过在目的地装置的无线适配器处接收来自远程装置的数据分组开始。该方法进一步通过将数据分组传递给目的地装置的输送接口开始。该方法进一步通过在目的地装置处确定数据分组的头部字段指示该分组包含关键数据而开始。该方法进一步通过将关键数据直接传递给主机装置的对应关键应用例示开始,其中关键数据不经过与无线适配器相关联的协议栈传递。\n[0029] 可以在不脱离本发明的精神或其实质属性的情况下以其他形式体现本发明。因此,在指示本发明的范围时,应当对后附权利要求书进行参考,而不是对前述说明书进行参考。
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |