通过单个虚拟端口的蓝牙通信的制作方法

文档序号:6557446阅读:281来源:国知局
专利名称:通过单个虚拟端口的蓝牙通信的制作方法
技术领域
本发明一般涉及带蓝牙功能的设备,并更特别地用于增强蓝牙协议的串列埠定义(SPP)的可用性。
背景技术
蓝牙通信协议是用于设备间短距离无线通信的系统。
在典型情况下,带蓝牙功能的设备A期望使用蓝牙连接与带同样功能的设备B通信。在传统的配置中,当设备处于通信范围内时,不能刚开始就进行通信。也就是,设备A没有预先得知设备B的存在,因此不能与其通信。图1示出了用于建立通信的处理的流程图。在步骤102中,当通信被请求的时候,设备A执行扫描关联(scan-associate)处理。该扫描关联处理经常是耗时的处理,通常需要多达几分钟的时间。在步骤104中,设备B的存在被建立。随着设备B的存在被建立,在步骤106中,虚拟串行端口在设备A中被创建,并且在步骤108中,设备A和设备B之间的通信被启动。
图2是可在上述方法中使用的带蓝牙功能的设备A202的示意图。连同一些硬件一起,该图呈现了蓝牙通信中涉及的功能组件,其中功能组件是软件的单元或由与设备202的硬件交互的软件创建的状态。
在设备A202中运行的应用程序204请求与设备B203进行蓝牙通信。蓝牙堆栈210可被提供在设备202的操作系统之内或之外。堆栈210实现蓝牙功能的多个层,它提供RFComm协议的实现以模拟蓝牙无线电(Bluetooth radio)212的串行端口功能,并且它提供SDP的实现以发现和搜索蓝牙设备和服务。
用户使用蓝牙管理器208来激活至诸如设备B203的远程设备的连接。然后蓝牙管理器208与创建虚拟串行端口的蓝牙堆栈210交互。蓝牙管理器208与堆栈210通信并与堆栈210无关地独立执行。蓝牙管理器208适于提供用户与堆栈210之间的接口。在该实例中,虚拟串行端口BSP2206被开启。蓝牙堆栈210经由虚拟串行端口206接收来自应用程序204的数据,并将其提供给蓝牙无线电212。
在现有技术的另一个系统中,自动扫描关联处理被周期地执行以确定可用于通信的蓝牙设备。一旦确定对于特定设备而言通信将是可能的,就将其添加到可用于通信的设备的列表中。在上述系统中,可能的设备的列表不是由用户配置的。
在现有技术中,也存在着这样的系统,其蓝牙通信的可用性是有优势的,但不合乎需要的是,其使得系统在扫描关联处理中变得“可发现”。对于处在公共场所中的系统而言,可能会出现这样的情况。在此情况下,系统不希望蓝牙功能对公众中可以访问该系统并且具有扫描带蓝牙功能的设备的能力的任何成员可见。
因此,需要有一种系统,其在通信时不需要扫描关联处理,向用户提供可与其建立通信的设备的可配置列表,并且不需要系统将其自身识别为对其它带蓝牙功能的设备“可发现”。

发明内容
本发明涉及一种用于蓝牙协议中的SPP的系统和方法。
本发明的一个目的是提供用于蓝牙通信的一种改进的系统和方法。本发明的进一步的目的是消除或减轻现有技术中的至少一个缺陷。
根据本发明的一个方面,提供了一种提供从第一带蓝牙功能的设备至第二带蓝牙功能的设备的蓝牙通信的系统。该系统包括提供图形用户界面的蓝牙管理器;输出端口驱动器,其与蓝牙管理器共享配置信息并由蓝牙管理器启动;第一串行端口,其接收来自在第一设备上运行的应用程序的数据,该第一串行端口充当虚拟串行端口,其中第一串行端口不连接到通信硬件;第二串行端口,其被连接到通信硬件,该第二串行端口充当输出端口;以及蓝牙堆栈,其接收将从第二串行端口传递的数据;其中输出端口驱动器引导来自第一串行端口的数据经由该输出端口驱动器到达第二串行端口。
本发明的该概述不一定描述本发明的所有特征。在结合附图阅览过本发明的以下描述后,本发明的其它方面和优点以及本发明的不同实施例的结构和操作,对于本领域的普通技术人员来说将是显而易见的。


根据参考了附图的以下描述,本发明的这些和其它特征将变得更显而易见,在附图中图1是现有技术中用于连接到蓝牙设备的方法的流程图;图2是现有技术中蓝牙设备的组件的示意性框图;图3是根据本发明的实施例的蓝牙设备的示意性框图;图4是根据本发明的实施例的蓝牙设备的组件的示意性框图;图5a是根据本发明的实施例的配置蓝牙设备的方法的流程图;图5b是根据本发明的实施例的用于建立与蓝牙设备的通信的方法的流程图;图6a是示出根据本发明的实施例的与蓝牙设备的连接的示意性框图;图6b是示出根据本发明的实施例的与蓝牙设备的连接的示意性框图;具体实施方式
本发明提供了使得能够在两个带蓝牙功能的设备之间进行蓝牙通信的系统和方法。该方法允许用户配置,限制所开启串行端口的数目,并且在通信时不需要用户执行扫描关联处理。
图3示意性地描绘了可在其上运用本发明的设备。在本实施例中,该设备是适于采集数据的手持终端。设备301包含CPU302、随机存取存储器304、非易失性存储器306和蓝牙无线电308。本实施例的设备还包含RF无线电310。术语无线电用于描述RF无线电310和蓝牙无线电308,一般包括对本领域技术人员来说将显而易见的为这些类型的通信所需的那些元件。本发明的系统一般被作为电子信号存储在非易失性存储器306中。该系统可以在CPU302中运行并且可在操作期间被全部或部分地加载在RAM304中。对本领域技术人员来说将显而易见的是,本发明可以用在适于存储和运行程序的任何设备中并且能够用于进行蓝牙通信。对本领域技术人员来说显而易见的是,图3不一定示出带蓝牙功能的设备301内的所有组件。
图4是根据本实施例的带蓝牙功能的设备402的示意性框图。图4描绘了当设备402与设备B203通信时该设备的特征。如在图2中那样,图4中示出的元件可以是硬件元件、软件或通过软件构建的状态,并且后两个元件通常与包括图3中示出的元件的硬件元件交互,和/或在其上运行。图4也描绘了不同元件间交互的性质。实线块箭头表示元件之间的数据流和/或功能调用,而虚线箭头表示配置信息的交换。
在本实施例中,设备A402,特别是CPU302,在其上运行着WindowsTMCE操作系统。对本领域技术人员显而易见的是,包括但不限于Linux、Apple OS X和Palm OS的其它操作系统也在本发明的范围内。蓝牙管理器407是由设备A402的用户用来配置设备402的蓝牙子系统用于通信的图形用户界面(GUI)。蓝牙管理器407与蓝牙堆栈412通信并向输出端口驱动器408提供配置信息。在本实施例中,堆栈412是由Windows CE操作系统提供的MicrosoftTM蓝牙堆栈。适于所实现的操作系统(包括Windows CE)的蓝牙堆栈的其它实现方案也在本发明的范围内。
输出端口驱动器408是本实施例的中心实体。该输出端口驱动器408是.DLL文件形式的虚拟设备驱动器。输出端口驱动器408创建虚拟串行端口406和成为输出端口的输出串行端口410(BSP9)。虚拟串行端口406由应用程序404使用。在这样的意义上,其是虚拟端口应用程序404将其认为是输出端口,而它不具有任何与之相关的物理串行通信硬件。输出端口驱动器408还向用户提供蓝牙管理器407并确保蓝牙堆栈412连接到期望的设备。
虚拟串行端口406、输出端口驱动器408、输出串行端口410、蓝牙堆栈412都是在应用程序404和蓝牙无线电414之间形成的数据路径的元件。
本发明的系统允许带蓝牙功能的设备之间的通信,而无需在通信的时候执行扫描关联处理。此外,该方法允许与固定设备列表中的设备通信。这些方面现在将参考图4示出的系统来考虑。
根据本发明的实施例的通信方法分两个步骤执行。在第一步骤中,为通信配置设备。该步骤在期望进行通信之前发生。其可由用户或系统管理员执行并且可被认为是建立程序。第二步骤在通信的时候发生。在这个步骤期间,设备如图4中图示的那样被配置。
图5a示出了根据本发明的实施例的建立程序。在步骤502,执行扫描关联处理。在步骤504中,将响应该处理的设备添加到可用设备的菜单中。在步骤506中,处理询问是否还有任何设备要添加到可用设备的列表中。如果有其它的设备,则处理返回步骤502并且执行另一扫描关联处理。如果没有其它设备要被登记,则处理转到步骤508,在该步骤中列出可用设备的菜单被提供。关于图4的讨论,设备B203将是上述菜单中列出的设备。
图5b示出了当期望进行通信时建立通信的方法的流程图。在步骤520中,蓝牙管理器407接收指令以加载输出端口驱动器408。在步骤522中,输出端口驱动器408被加载。输出端口驱动器408在步骤524中开始执行。在步骤526中,其创建称为BSP2的虚拟串行端口406,并在端口406上监听。应用程序404开启虚拟串行端口406,并且用户从选择菜单中选择将与其进行远程连接的蓝牙设备,诸如设备B203。在步骤528中,输出端口驱动器408接收该选择。在步骤530中,输出端口驱动器408与蓝牙堆栈412通信以创建输出串行端口410(BSP9)。在步骤532中,输出端口驱动器408创建该输出串行端口410。输出端口驱动器408将来自应用程序404的所有数据流,经由虚拟串行端口406改向至输出串行端口410。因此在步骤534中,数据业务被传送到该端口并从该端口被传送。
图6a和6b示意性地示出了用于连接到新设备的程序。在图6a中,应用程序602与设备X604通信,其中应用程序602被运行在设备605中。特别地,来自应用程序602的数据流经虚拟串行端口606(BSP2)到达输出端口驱动器608并经由串行端口610到达设备X604。设备X604是从由设备A402访问并包含在设备A402内的选择菜单中选择出的。
当设备A605的用户希望与另一设备(诸如设备Y614)建立通信时,他们调出选择菜单并从中选择设备。输出端口驱动器608保持其创建的端口BSP2606,但是通过删除端口BSP9610而撤消与设备X604之间的连接。驱动器608通过再次创建端口BSP9610激活其与设备Y614之间的新连接。这提供与新设备614之间的无缝切换,而无需执行扫描关联处理。
下面的实例示出了本实施例的系统和方法的操作和使用。在仓库(warehouse)情况下,存在着对手持数据捕获终端的操作者可能必须与其通信的网络访问接入点、打印机和扫描仪的选择。以预先确定的时间间隔,管理员对用户期望与其通信的带蓝牙功能的设备执行扫描关联处理。一旦该处理被执行,可用设备的列表就被编制。在手持终端的使用期间,用户可以从选择菜单中选择将与其建立通信的设备。
输出端口提示模式是用户可以经由管理输出端口选择菜单的行为的蓝牙管理器设置的配置。其具有两种选择“每次”和“一次”。将值设为“每次”意味着当每次应用程序“开启”输出端口时输出端口选择菜单将自动出现。将值设置为“一次”意味着仅当应用程序“开启”输出端口并且没有远程设备的当前选择时,输出端口选择菜单才将自动出现。输出端口选择菜单的热键调用是可用的,而不管输出端口提示模式的值如何。
尽管已经根据当前认为是更实际和优选的实施例描述了本发明,但必须理解的是,本发明不限于所公开的实施例。本领域的普通技术人员可以理解的是,可以进行各种各样的修改和提出等效结构和功能而不脱离如权利要求所限定的本发明的精神和范围。因此,如权利要求所限定的本发明必须与最广阔的可能的解释相一致,以便包括所有这些修改及等效结构和功能。
权利要求
1.一种提供从第一带蓝牙功能的设备至第二带蓝牙功能的设备的蓝牙通信的系统,所述系统位于所述第一带蓝牙功能的设备内,所述系统包括蓝牙管理器,其提供图形用户界面;输出端口驱动器,其与所述蓝牙管理器共享配置信息并由所述蓝牙管理器启动;第一串行端口,其接收来自在所述第一设备上运行的应用程序的数据,所述第一串行端口充当虚拟串行端口,其中所述第一串行端口不与通信硬件连接;第二串行端口,其被连接到通信硬件,所述第二串行端口充当输出端口;以及蓝牙堆栈,其接收将从所述第二串行端口传递的数据;其中,所述输出端口驱动器引导来自所述第一串行端口的数据经由所述输出端口驱动器到达所述第二串行端口。
2.如权利要求1所述的系统,其中,数据从所述蓝牙堆栈被传递到蓝牙无线电。
3.一种建立提供蓝牙通信的通信路径的方法,其中数据被传递到应用程序并从应用程序传递到正在执行所述方法的设备内的蓝牙无线电,所述方法包括以下步骤接收指令以启用端口;创建虚拟串行端口并使用输出端口驱动器在其上监听;开启所述虚拟串行端口;接收对将与其进行通信的设备的选择,所述设备被列在菜单上;创建输出串行端口;以及经由所述输出端口驱动器将来自所述虚拟串行端口的数据路由到所述输出串行端口。
全文摘要
本发明提供了一种提供从第一带蓝牙功能的设备至第二带蓝牙功能的设备的蓝牙通信的系统。该系统包括提供图形用户界面的蓝牙管理器;输出端口驱动器,其与蓝牙管理器共享配置信息并由蓝牙管理器启动;第一串行端口,其接收来自在第一设备上运行的应用程序的数据,该第一串行端口充当虚拟串行端口,其中第一串行端口不连接到通信硬件;第二串行端口,其被连接到通信硬件,该第二串行端口充当输出端口;以及蓝牙堆栈,其接收将从第二串行端口传递的数据;其中输出端口驱动器引导来自第一串行端口的数据经由该输出端口驱动器到达第二串行端口。
文档编号G06F13/38GK101013902SQ20061006426
公开日2007年8月8日 申请日期2006年12月30日 优先权日2005年12月30日
发明者R·李 申请人:得逻辑公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1