专利名称:用于使用多个发现管理器在电子装置中进行自动应用程序选择的方法和设备的制作方法
技术领域:
本发明大体上涉及具有近场通信电路和近场通信应用程序的电子装置,更具体 地涉及具有应用程序发现管理器和协议管理器的装置,其能够从许多近场通信应用程序 (application)中选择在不同的协议栈层的近场通信应用程序中的一个。
背景技术:
现在的移动装置变得越来越复杂。例如,不久之前,移动电话仅用于进行电话呼 叫。然而,现在,一些移动电话配备了近场通信技术,诸如射频识别(RFID)电路、红外通信 电路等。这种近场通信技术可以从其他近场通信装置获得信息,向近场通信终端递送信息, 并且甚至参与金融交易。例如,当携带配备了近场通信技术的装置时,人们可以使用该装置来代替传统的 卡、货币或票据。例如,“虚拟卡”可以被加载到该装置内的“虚拟钱包”内。虚拟钱包仅是 在包括虚拟卡软件应用程序的装置上的电子应用程序。虚拟卡软件应用程序宿驻各种虚拟 卡,该各种虚拟卡可以包括信用卡、借记卡、公共交通卡和演出票等。虚拟卡应用程序管理 虚拟卡,并且也允许用户对卡进行选择。当用户接近诸如在饭馆的支付终端或在地铁的检票间机的近场通信终端时,用户 手动地从虚拟钱包选择虚拟卡,并且将移动装置跨近场通信终端摆动。然后,移动装置经由 近场通信电路无线地向近场通信终端发射信息。由此,移动装置取代物理钱包。除了能够使用虚拟卡,具有近场通信技术的便携电子装置也能够作为近场阅读 器进行操作。在电子装置内的阅读器应用程序能够读取诸如RFID标签或智能海报的外 部对象。(智能海报是包括能够被无线近场收发机读取的近场通信标签的海报。电影 的智能海报可以包括近场通信标签,该近场通信标签具有关于演出时间和电影推广宣传 (merchandise)等的信息。当用户将具有无线近场通信电路的电子装置在该种海报的预定 距离内通过时,该装置可以读取信息,并且在显示器上呈现对应的信息。)包括许多虚拟卡、阅读器应用程序和其他应用程序的所有这些近场通信应用程序 的问题是,对于用户而言,选择用于特定的近场通信装置的正确应用程序是比较麻烦和困 难的。例如,携带公文包和电脑包的通勤者可能不想在移动电话中的一堆应用程序图标和 菜单中进行筛选,以取得(access)能够上地铁的虚拟地铁卡。同一通勤者也不想当他到达 工作单位时忙手忙脚地在菜单和图标中取得虚拟标识卡。为了进一步缓解该问题,各种近 场通信终端可以使用不同的技术。这要求用户提醒移动装置对应的近场通信使用什么类型 的技术。简而言之,在移动装置中的近场通信技术的出现向用户提供了使用广泛多种近场 通信应用程序利用广泛多种近场通信技术无线地进行通信的能力。然而,在应用程序之间 的导航是耗时和麻烦的。因此,需要一种方法和设备来便利近场通信应用程序的自动选择, 而无需用户手动地对图标或菜单的列表进行筛选。
在附图中,相似的附图标记在各个视图中表示相同或功能上类似的元件,并且,附 图与下面的详细描述一起被并入说明书中,并且形成说明书的一部分,用于进一步说明各 个实施例,并且用于解释所有根据本发明的各种原理和优点。图1图示与各种外部近场通信装置进行通信的、根据本发明的实施例的便携电子装置。图2图示根据本发明的实施例的便携电子装置的框图。图3图示根据本发明的实施例的近场通信电路的示意框图。图4图示根据本发明的实施例的一种用于自动地选择和启动近场通信应用程序 的方法。图5图示应用程序发现管理器根据本发明的实施例选择应用程序的一种方法。图6图示根据本发明的实施例的、自动选择和启动近场通信应用程序的一种方法 的信号流程图。技术人员可以明白,为了简单和清楚而示出在附图中的元件,在附图中的元件不 一定是按照比例绘制的。例如,在附图中的一些元件的尺寸可能相对于其他元件被夸大,以 有助于改善对于本发明的实施例的理解。
具体实施例方式在详细描述根据本发明的实施例之前,应当观察到,实施例主要归于与从在电子 装置中的一组近场通信应用程序中自动选择近场通信应用程序相关的方法步骤和设备部 件的组合。因此,已经在附图中适当地通过传统符号表示了设备部件和方法步骤,仅示出与 理解本发明的实施例相关的具体细节,以便不以对于受益于在此的描述的本领域内的普通 技术人员显而易见的细节混淆本公开。可以理解,在此所述的本发明的实施例可以由一个或多个传统处理器和独特的存 储的程序指令组成,该独特的存储的程序指令控制该一个或多个处理器来与某些非处理器 电路相结合地实现在此所述的近场通信应用程序的自动选择的功能中的一部分、大部分或 全部功能。非处理器电路可以包括但是不限于无线电接收机、无线电发射机、信号驱动器、 时钟电路、电源电路和用户输入装置。由此,这些功能可以被解释为用于执行近场通信应用 程序的自动选择的方法的步骤。替代地,可以通过没有存储的程序指令的状态机或在一个 或多个特定用途集成电路(ASIC)中实现一些或全部功能,其中,每一个功能或某些功能的 一些组合被实现为定制逻辑。当然,可以使用这两种手段的组合。因此,已经在此描述了用 于这些功能的方法和装置。而且,预期的是,尽管由于例如可用时间、现有技术和经济考虑 而激发了可能很大努力和许多设计选择,但是本领域内的普通技术人员当被在此公开的思 想和原理指导时,容易能够以最少的实验来产生这样的软件指令和程序以及IC。现在详细描述本发明的实施例。参见附图,在各个视图中,相似的标号表示相似的 部件。如在此的描述中和遍及权利要求使用地,除非上下文清楚地另外指示,下面的术语采 用与在此明示相关联的含义不定冠词“a”、“an”以及定冠词“the”的含义包括复数引用, “在...中”的含义包括“在...中”和“在...上”。诸如第一和第二、顶和底等的关系术语可以仅用于将一个实体或行为与另一个实体或行为相区别,而不必然要求或暗示在该实体 或行为之间的任何实际上的这样的关系或顺序。而且,在此在括号中示出的参考指示符表 示除了正在讨论的附图之外的附图中示出的部件。例如,在讨论图A时谈及装置(10)将表 示在除了图A之外的图中所示的元件10。本发明的实施例提供了一种用于在便携电子装置中自动地选择近场通信应用程 序的方法。在一个实施例中,所述便携电子装置具有在多个执行环境中存储的多个近场通 信应用程序。这些执行环境可以包括嵌入式存储装置和可移除装置,所述可移除装置诸如 订户识别模块(SIM)卡、通用集成电路卡(UICC)和microSD卡等。当这些执行环境被确认 为是可信执行环境时,它们被称作“安全元件”。在此教导的用于从在各种执行环境中的各种应用程序中选择一个近场通信应用 程序的方法和设备,提供了一种适应于与近场通信电路相关联的时序要求的系统。例如,用 于无接触的、近场通信协议的许多标准提出了用于数据通信的挑剔的时序限制。为了适应 于这些要求,本发明的一个实施例包括消息传送模块,该消息传送模块被配置来在各种执 行环境之间进行通信。例如,如果选择了第一应用程序,并且该应用程序又驻留于另一个执行环境中,则 消息传送模块将向另一个执行环境转发关于选择的信息,由此消除在协议选择和其他识别 任务上的开销。而且,消息传送模块的存在消除了当从第一执行环境转换到另一个执行环 境时复位或重启选择处理或事务处理的必要性。消息传送模块还提供了将来自一个执行环 境的某些命令转发到另一个执行环境的能力。这消除了当从一个执行环境转换到另一个执 行环境时使用新的会话标识符来重启特定事务的需要。在一个实施例中,应用程序发现管理器位于默认执行环境内。如下将描述的应用 程序发现管理器,负责选择要在协议栈的应用程序层处使用的近场通信应用程序。虽然应 用程序发现管理器可以位于近场通信电路中,但是在一个实施例中,其驻留于默认执行环 境中。当外部近场通信装置进入便携电子装置的通信邻近范围内,并且要在应用程序层进 行应用程序选择的时候,启用在默认执行环境中的应用程序发现管理器。然后,近场通信 电路通过近场通信控制器来发送与一个或多个启用的近场通信应用程序相关联的文件控 制信息。文件控制信息可以包括与启用的近场通信应用程序相关联的应用程序标识符的列 表。然后,外部近场通信装置向近场通信电路发送命令,该命令用于从应用程序标识 符的列表中识别选择的应用程序标识符。然后,应用程序发现管理器确定应当从选择的应 用程序标识符选择哪个近场通信应用程序。在一个实施例中,应用程序发现管理器通过访 问在默认执行环境内存储的注册表来实现此。一旦已经选择了近场通信应用程序,则应用程序发现管理器确定其驻留于哪个执 行环境中。当选择的近场通信应用程序驻留于默认执行环境中时,应用程序发现管理器可 以简单地启动该应用程序。然而,当选择的近场通信应用程序驻留于另一个执行环境中时, 应用程序发现管理器通过发射转发消息来运作以启动该执行环境。在一个实施例中,应用程序发现管理器向与选择的近场通信应用程序对应的选择 的执行环境发送应用程序转发消息。应用程序发现管理器选择该执行环境,因为它对应于 选择的应用程序标识符。
转发消息包括如下的信息,该信息允许在选择的执行环境中的应用程序管理器 由于它无需重启发现处理而“全力开始工作(hit theground running)”。例如,转发消息 可以包括检测的转发层(forwardinglevel),其中,该检测的转发层选自由协议层、防冲突 (anticollision)层、传送层和应用程序层组成的组。转发消息可以进一步包括层检测序列 的状态的指示符、最近接收的命令响应和近场通信装置标识符。另外,转发消息可以用于转 发事务状态和其他控制信息(例如,会话标识号),以保持近场通信事务不被打断。除了发送转发消息之外,应用程序发现管理器可以额外地控制路由切换器,以保 证在近场通信电路与选择的执行环境之间路由数据。将参考下面的附图来更详细地解释与 本发明的实施例相关联的这种和其他方法以及硬件结构。本发明的实施例也包括在近场通信电路控制器中运行的协议发现管理器。协议发 现管理器也具有选择能力,虽然其进行选择的算法在堆栈的模式切换层、冲突检测层和协 议层起作用。当在这些层进行选择时,协议发现管理器进行选择,启用正确的执行环境,并 且配置用于数据路由的交换器。现在转到图1,其中,图示根据本发明的实施例的具有近场通信能力的便携电子装 置100的一个实施例。具体地说,便携电子装置100包括近场通信电路101,所述近场通信 电路101与近场通信电路控制器102耦合。近场通信电路控制器102仿效(emulate)单个 近场通信接口,使得便携电子装置100可以使用各种近场通信技术和协议来与多种近场通 信装置无线地进行通信。示例性近场通信装置包括支付终端103、交通检票终端104、智能 海报105和RFID标签106。近场通信电路101可以包括作为天线的通信线圈,该通信线圈被配置用于在特定 通信频率处的近场通信。在此使用的术语“近场”一般表示小于大约一米的距离。当向线 圈施加电流时,通信线圈通过从通信线圈发出的磁场来进行通信。通信振荡器向线圈施加 电流波形。近场通信电路控制器可以进一步调制所产生的电流,以发射和接收数据。近场通信电路控制器102可以是运行嵌入代码的微处理器、集成有收发机的 电路、特定用途集成电路、RFID装置或等同装置。近场通信电路控制器102运转,从而 通过以射频形式发射数据而便利与其他近场通信装置的数据通信。可以参见在m ecma-international. orR/publications/files/ECMA-ST/Ecma-340. pdf 的公共可获得的 标准来获得更多的细节,通过引用将其内容合并于此。例如,当近场通信是RFID通信时,该 频率可以是由认可的RFID标准指导的大约13. 56MHz。能够在便携电子装置100内运行的近场通信应用程序被存储在多个执行环境内。 每一个执行环境包括能够执行其中布置的应用程序的应用程序管理器。一个执行环境被选 择作为“默认”的执行环境,并且包括应用程序发现管理器。现在转向图2,其中图示了图1的便携电子装置(100)的近场通信元件的示例性示 意框图。出于讨论的目的,因为移动电话很流行,所以在此所述的便携电子装置100是移动 电话的便携电子装置。虽然在此为了讨论目的将移动电话用作说明性实施例,但是对于受 益于本公开的本领域内的普通技术人员将清楚,本发明不限于此。在此描述的应用程序发 现管理器、协议发现管理器以及相关联的方法和设备也可以以其他便携电子装置来实现, 该其他便携电子装置包括个人数字助理、寻呼机和便携计算机等。在一个实施例中,便携电子装置100包括收发机202,用于与广域网进行通信;以及处理器204,用于执行便携电子装置100的操作。可以包括其他标准部件,诸如模数转换 器(A/D) 206、输入解码器208、存储器212、显示驱动器214和数模转换器(D/A)218。每一 个部件通过数字信号总线220而耦合在一起。收发机模块202耦合到天线M2。当便携电子装置100是诸如移动电话的通信装 置时,由数据调制的载波信号,例如用于驱动MFT的数字编码的信号或数字编码的语音音 频,在天线242和收发机202之间经过。输入装置210耦合到输入解码器208。输入解码器208用于例如识别按下的按键, 并且向处理器204提供用于识别每一个按下的按键的信息。显示器驱动器214耦合到显示 器 226 οD/A 218通过音频放大器232耦合到扬声器234。D/A 218将解码后的数字音频转 换为模拟信号,并且驱动扬声器234。音频放大器232可以包括多个放大器,每一个放大器 驱动独立的扬声器。存储器212也用于存储控制便携电子装置100的操作的方面的程序。存储器212 采用计算机可读介质的形式。收发机202、处理器204、A/D 206、输入解码器208、存储器212、显示器驱动器214、 D/A 618、近场通信电路216、音频放大器232和数字信号总线620被实施为电子电路部件和 沿着电路板的互连。下面更详细地解释的近场通信电路216被配置来与外部近场通信装置无线地通 信。当适当时,便携电子装置100包括适合于与近场通信电路216 —起使用的近场通信应 用程序,诸如虚拟卡、智能装置阅读器等。在一个实施例中,这些近场通信应用程序被存储 在几个执行环境217中的一个中。这些执行环境中的一个被指定作为“默认”的执行环境, 并且包括应用程序发现管理器,所述应用程序发现管理器负责选择近场通信应用程序。除了在默认执行环境内布置的应用程序发现管理器之外,第二应用程序选择装置 在近场通信电路216的近场通信电路控制器中操作。这个“双”选择管理器结构便利了处 理时间敏感的发现操作。在一个实施例中,应用程序发现管理器用于在应用程序层的应用 程序选择,而第二应用程序选择装置用于在RF或协议层的选择。为了说明这个双模式选择系统,考虑一般在协议栈的层中执行选择处理。由于 RFID/NFC协议标准要求(在IS014443和IS018092中给出,通过引用将其合并于此),时间 关键的应用程序的选择一般大多发生在协议层,诸如模式切换行为层和冲突检测层。例如, 对于一种近场通信技术,在对于来自目标的响应命令的选择处理期间发生的响应时间不能 超过80-150微秒。对于其他的近场通信应用程序,诸如在冲突检测层发生的那些的协议命 令可以具有不长于4-5毫秒的时间延迟。可以基于APDU或专有命令的选择的其他上层具有不那么严格的时序要求。因此, 对应的应用程序选择处理对于时间较不敏感。例如,在协议之上运行的NFC或RFID应用程 序对于时间不太敏感,鉴于可以以几十毫秒或更多的时间来测量时间延迟。为了适应应用程序的选择,近场通信电路控制器承担在RF层的协议选择的任务。 在默认执行环境中运行的应用程序发现管理器负责在应用程序层的应用程序选择。由此, 在这两个模块之间“划分”发现处理。现在转向图3,其中图示根据本发明的近场通信电路216和对应的执行环境的一个实施例。其可以是微处理器、特定用途集成电路或其他类似装置的近场通信电路控制器 301,被配置来便利与外部近场通信装置的近场通信。近场通信电路控制器301耦合到近场 通信电路天线302,近场通信电路天线302可以实施为在印刷电路板或其他基板上布置的 线圈。通过近场通信电路天线302来发射和接收通信信号303。近场通信电路控制器301 通过近场通信收发机来进行通信。近场通信电路控制器301便利与驻留于各种执行环境217中的近场通信应用程序 的近场通信事务中使用的数据通信。存储装置、SIM卡、存储卡和嵌入式装置等中的每一个 均可以是执行环境。每一个执行环境中可以具有在其中存储的多个近场通信应用程序。当 信任执行环境时,其被称作“安全元件”。在图3中,示出四个执行环境304、305、306、307。对于受益于本公开的本领域内的 普通技术人员而言显然的是,任何数量或类型的执行环境可以用于本发明的实施例。执行 环境304、305、306、307中存储了多个近场通信应用程序308、309、310、311,其中每一个均 可利用近场通信电路控制器301进行操作。在图3的示例实施例中,执行环境304包括一组 近场通信应用程序308,而执行环境305具有另一组近场通信应用程序309。执行环境306 包括另一组近场通信应用程序310,正如执行环境307具有另一组近场通信应用程序311。 执行环境307被指定作为默认执行环境。每一个执行环境304、305、306、307还包括应用程序管理器312、313、314、315。应 用程序管理器312、313、314、315被配置来与在其执行环境内存储的近场通信应用程序进 行通信,并且被配置来从应用程序发现管理器316接收转发消息。每一个应用程序管理器 312、313、314、315进一步具有下面的功能首先,其负责解释接收的命令,包括从用户界面 接收的用户命令。接下来,每一个应用程序管理器312、313、314、315负责保持在其执行环 境内存储的各种近场通信应用程序的对应注册表。该注册表是应用程序管理器的数据库的 一部分,并且包括在其执行环境中的每一个近场通信应用程序的标识参数。标识参数的示 例包括应用程序标识号、UID、PUPI、AID、SAK、ATQB_DAT和ATQA等。注册表也可以包括任 何需要的近场通信协议参数。其也可以包括用于ISO 1444- 类型的应用程序的应用程序 数据或应用程序族标识符。每一个应用程序的标识符可以在注册表内被存储作为完整的表 格。注意,当用户在一些情况下可能有意选择近场通信应用程序之一时,每一个应用 程序管理器312、313、314、315进一步被配置来基于从用户界面接收的指向其执行环境的 输入来启用选择的近场通信应用程序。每一个应用程序管理器312、313、314、315可以当用 户选择应用程序时启动该应用程序。每一个应用程序管理器312、313、314、315还可以当用 户指令禁用其近场通信应用程序时,禁用其近场通信应用程序。然而,本发明的实施例的特征之一在于,用户不必忙手忙脚地查看菜单和命令以 选择近场通信应用程序,因为其可以根据发现的层而通过应用程序发现管理器316或协议 发现管理器319来实现。当协议发现管理器319选择应用程序时,其可以配置路由交换器 219以将数据路由到适当的执行环境,并且可以启动选择的应用程序。这通常发生在仅需要 标识的协议层时。当需要其他层时,协议发现管理器319选择数据并将其路由到包含应用 程序发现管理器316的默认执行环境。应用程序发现管理器316在选择应用程序之后,可 以启动应用程序,或者向适当的执行环境转发消息,以按照所选择的应用程序要求来进一步执行。应用程序发现管理器316驻留于执行环境307之一中。执行环境307被表示为默 认执行环境。应用程序发现管理器316被配置来在应用程序层(这与由协议发现管理器 319处理的近场技术层、冲突检测层或协议层不同)选择近场通信应用程序。默认执行环境不仅包括应用程序发现管理器316,而且包括对应的注册表317。注 册表317包括需要选择的应用程序层的所有近场通信应用程序的列表。例如,注册表317 可以包含应用程序标识符,所述应用程序标识符包括应用程序标识号、与其他执行环境对 应的元件标识号等。应用程序发现管理器316经由其消息传送模块318可以使用元件标识 号来向其他执行环境转发消息。在一个实施例中,注册表317包括与多个近场应用程序的 每一个相关联的至少一个近场通信应用程序标识符;以及,与应用程序所驻留于的、不是默 认执行环境307的执行环境相关联的元件标识符。通过其消息转发模块318,应用程序发现管理器316能够向除了默认执行环境307 之外的执行环境发送转发消息。消息转发模块318被配置来从默认执行环境307向其他执 行环境304、305、306发射应用程序发现消息。经由近场通信电路控制器301转发这些消息。 在一个实施例中,转发消息包括接收执行环境的标识符。这个执行环境是在其中驻留所选 择的近场通信应用程序的环境。转发消息也可以包含应用程序发现的状态,包括已经尝试 了什么应用程序、处在什么协议栈层等。举例说明,在一个实施例中,应用程序发现管理器316被配置来能够经由近场通 信控制电路将来自默认执行环境的消息发送到另一个执行环境或安全元件。这样的消息的 一个示例将包括在其中驻留特定应用程序或小型应用程序的其他执行环境的物理标识符。 该物理标识符可以用于向其他执行环境或安全元件转发事务协议的执行。一旦路由了这个消息,则应用程序发现管理器316或协议发现管理器319可以基 于在该消息中接收的元件标识符和在本地注册表中的对应标识符来配置交换器,以将数据 路由到另一个执行环境或安全元件。应用程序发现管理器316或协议发现管理器319可以 然后初始化其他执行环境或安全元件,以根据如上所述的过程或视存在大的初始化延迟时 间的情况根据预选的应用程序优先级来运行特定的小型应用程序或应用程序。同应用程序发现管理器316协同工作的是协议发现管理器319,协议发现管理器 319在一个实施例中是在近场通信电路控制器301上运行的可执行软件。除了协议发现管 理器319之外,近场通信电路控制器301也包括对于近场通信收发机320的接入路径和到 路由交换器219的接口。近场通信电路控制器301包括通过路由交换器219向执行环境 304、305、306、307之一传送数据的能力。在一个实施例中,协议发现管理器319被配置来识别在协议层323、近场通信技术 层321和冲突检测层322处的与外部近场通信装置相关联的近场通信技术。换句话说,协 议发现管理器319被配置来检测与协议栈的模式切换层321、冲突检测层322和协议激活层 323相关联的协议层标识符。协议发现管理器319进一步被配置来激活不要求发现的应用 程序层的近场通信应用程序,包括基于UID号和PUPI号等的那些。协议发现管理器319也 被配置有用于配置路由交换器219的路由能力。协议发现管理器319进一步包括应用程序注册表324。应用程序注册表3 实质 上是诸如注册表317的注册表,除了它包括不要求应用程序层发现的那些近场通信应用程序。应用程序发现管理器316和协议发现管理器319被配置有向路由交换器219发射 交换配置消息的能力。可利用近场通信电路控制器301来操作的路由交换器219,被配置来 在近场通信电路控制器301与一个或多个执行环境304、305、306、307之间选择性地路由数 据通信。因此,应用程序发现管理器316或协议发现管理器319能够向路由交换器219发 射交换配置消息,以引导路由交换器219来在近场通信电路控制器301和与所选择的近场 通信应用程序相关联的执行环境之间路由数据通信。此外,协议发现管理器319能够激活 各种安全元件,而应用程序发现管理器316可以激活其他安全元件。应用程序发现处理应用于与近场通信应用程序或应用程序族相关联的应用程序 或小型应用程序。当应用程序发现管理器316执行发现时,该应用程序层发现在协议层后 开始,以便能够在近场通信电路216与外部近场通信装置之间交换应用程序层命令。举例说明,考虑由应用程序发现管理器316基于应用程序标识符执行的发现, 该应用程序标识符如ISO 7816和来自GlobalPlatform公司的2008年3月的全球平台 卡规范版本2. 1. 1中所述,通过引用,将其合并于此。IS07816标准定义了用于诸如选择 APDU(SELECT APDU)命令的近场通信命令的默认参数。然而,在某些系统中,可以通过对于 全球平台规范设置的命令或参数来覆盖(override) IS07816命令。此外,全球平台规范给 出了用于在应用程序发现处理中有用的命令的额外的参数和选项。该发现可以用于例如由 近场通信执行的支付业务。在一个实施例中,应用程序发现管理器316通过从外部近场通 信装置接收终端SELECT_APDU命令来识别选择的近场通信应用程序。该装置进一步发送具 有应用程序标识号的SELECT_AID命令。该应用程序标识号对应于外部近场通信装置。由 这个标识符,应用程序发现管理器可以选择支持该特定应用程序标识符的应用程序。在另一个示例中,考虑由应用程序发现管理器316基于如在IS014443B中给出的 应用程序族标识符来执行的发现。在命令REQB/WUPB中发射这样的族标识符。该命令向接 收者提醒必须初始化哪种应用程序以支持外部近场通信装置的事务。而且,请求的格式提 供应用程序族标识符以及CRC_B(AID)数据。CRC_B(AID)是与在REQB/WUPB命令中给出的 应用程序族标识符匹配的、接收者的控制电路中的应用程序的AID(如在IS0/IEC 7816-5 中定义)的CRC B的计算的结果。该数据的格式可以指示外部近场通信装置包含多个近场 通信应用程序。应用程序发现管理器316因此可以发射多个REQB/WUPB命令,并且从外部近场通 信装置接收多个ATQB响应,直到它获得匹配的应用程序族标识符或CRC_B(AID)。接收到 ATQB响应的应用程序发现管理器316可以通过发射时隙-标记(SLOT-MARKER)命令来建立 用于冲突的多个时隙(可以多达16)。当利用应用程序发现管理器316选择应用程序,并且该应用程序驻留于应用程序 发现管理器的执行环境307中时,应用程序发现可以启动该应用程序。当该应用程序驻留 于另一个执行环境中时,应用程序发现管理器317将从其消息转发模块318发射转发消息。如上所述,转发消息可以包含检测的转发层,该检测的转发层可以是除了应用程 序层和转发检测层的内部子层之外的层,其表示检测序列的层。转发消息也可以包含来自 外部近场通信装置的最近命令响应、诸如UID号或PUPI号的装置标识号或其他控制信息。 在一个实施例中,转发消息包括与在其中驻留所选择的近场通信应用程序的执行环境对应的元件标识符、应用程序发现的状态和应用程序发现的当前层。当转发消息与ISO 7186型应用程序标识符发现相关联时,转发消息可以包括待 转发的应用程序层(层4)、子层(0,表示通过要求的应用程序标识符的标识来完成层4)和 应用程序标识符。(注意,可以在替代消息中向近场通信电路控制器301发射元件标识符, 以用于切换配置。)在ISO 1444 型发现的情况下,转发消息可以包括待转发的层2(冲突检测)的 层、子层2 (表示仅完成层2用于识别多个应用程序,以及PUPI号-伪唯一 PICC标识符 (PUPI)-用于在防冲突期间区分PICC。这个4字节号可以是由PICC动态产生的号或各种 固定号)、PUPI号、专用于防冲突检测的时隙的总数和已经花费的时隙的量。既然明白了应用程序发现管理器316,将描述一种示例性协议发现管理器319的 选择操作。对于本示例假定,执行环境304是没有可以存储专有和其他应用程序的“安全” 区域的一般执行环境。还假定,执行环境304仅包含可被协议发现管理器319访问的近场 通信应用程序(即,在除了应用程序层之外的层上可发现的那些应用程序)(注意,这是图 3中由通过交换器219的箭头绘制的通信结构)。现在,假定执行环境305包含可以利用协议发现管理器319激活的至少一个近场 通信应用程序以及可以由应用程序发现管理器316激活的应用程序。执行环境306包括可 以由应用程序发现管理器316识别、选择和激活的近场通信应用程序,并且,执行环境307 当然是包含应用程序发现管理器316的默认执行环境。执行环境307还包含可以由应用程 序发现管理器316识别的近场通信应用程序。使用这些假设来用于这个示例,在卡仿真模式中从外部终端进行对于通信的请求 之后,协议发现管理器319在协议层发射应用程序发现标识信息。如上所述的协议发现管 理器319能够基于冲突检测层来进行近场通信应用程序选择。进一步能够配置路由交换器 219以指导在近场通信电路接口与其选择的近场通信应用程序的执行环境之间的数据通 信。这种类型的选择可以用于由UID号(IS014443A)、PUPI号(IS014443B)或基于应用程 序图案的其他专有ID识别的应用程序。当初始化与选择的近场通信应用程序对应的执行环境时,下面的处理可以发生 首先,当花费较大量的时间来初始化执行环境时,协议发现管理器319可以被配置来预先 启用该执行环境。接下来,当执行环境的初始化时间较短时,协议发现管理器319可以仅通 过配置的路由交换器219来发送唤醒命令。现在转到由应用程序发现管理器316和协议发现管理器319进行的选择处理, 在第一冲突检测层期间,在一个实施例中,协议发现管理器319从外部近场通信装置接收 RATS命令。这个命令向近场通信电路216通知检测到外部装置,并且该装置符合IS014443 标准。协议发现管理器319然后调用默认执行环境307以激活协议发现管理器319。这 起动了应用程序发现管理器316开始应用程序发现处理。协议发现管理器因此配置路由交 换器219以将数据引导到默认执行环境307。为了进一步帮助选择处理,可以完成下面的可选操作首先,在其中默认执行环境 307的启用相对较慢的任何近场通信事务之前,可以预先启用默认执行环境307。替代地, 协议发现管理器319通过配置的路由交换器219向其中需要相对较短的激活时间的默认执行环境307发送唤醒命令。现在转到图4,其中图示根据本发明的、适合于编码作为用于近场通信电路控制器 (301)的可执行代码的一种方法400。在步骤401,近场通信电路(216)检测外部近场通信装置的存在。替代地,用户 可以抢先地启用应用程序发现特征或近场通信电路。这种检测/激活使得近场通信电路 (216)能够开始与外部近场通信装置进行通信。在步骤402,近场通信电路(216)从外部近场通信装置接收SENS_REQ命令。在步骤 403,近场通信电路控制器(301)通过其协议发现管理器(319)由该通信中识别在协议层、 技术层和防冲突层处的近场通信技术。在一个实施例中,近场通信电路控制器(301)能够 与广泛多种近场通信技术和装置进行通信。近场通信电路控制器(301)通过当与远程近场 通信装置通信时仿效单个近场通信电路接口来完成此。在协议栈的各个层(321,322,323) 处与协议发现管理器(319)合作操作的近场通信电路控制器(301)识别近场通信技术。在步骤404,协议发现管理器(319)访问其注册表,以确定是否存在与近场通信技 术对应的启用的应用程序的参数。当如在判定步骤405所确定的那样支持该参数时,处理 移动到步骤407。当没有与近场通信技术对应的参数——这指示不存在兼容的近场通信应 用程序的事实-时,处理在步骤406结束。结束处理可以包括失败响应的传输。在步骤407,近场通信电路(216)向外部近场通信装置发射响应。这个响应可以包 括与近场通信技术对应的启用的应用程序的列表。替代地,这种通信可以包括选择的近场 通信应用程序。在判定步骤408处,近场通信电路检测触发事件。这样的触发事件可以包括从外 部近场通信装置接收确认消息。例如,当在步骤407处发送的响应指示可能兼容的近场通 信应用程序的选择时,外部近场通信装置可以以特定的选择来响应,该特定选择构成触发 事件。当在判定步骤408处未检测到触发事件时,识别和选择处理在下一层继续。例如, 识别和选择处理最初可以在切换模式层,并且可以在冲突检测层等处重复。当如在判定 步骤414处检测的,处理了所有层并且没有发现触发事件时,则在步骤413,近场通信电路 (216)向外部装置返回失败响应。在步骤409,当已经出现触发事件时,近场通信电路控制器(301)选择并且启用在 其中驻留有选择的近场通信应用程序的执行环境。所选择的执行环境内存储了应用程序发 现管理器(316)和注册表(318)。在步骤411,与协议发现管理器(319)协同操作的近场通信电路(216)配置路由交 换器(219)以用于与选择的执行环境进行通信。在步骤411,启动所选择的近场通信应用程 序。当处理所选择的近场通信应用程序的事务时,在步骤412,数据被路由到选择的近场通 信应用程序和其执行环境。注意,可以在应用程序发现处理和在其中驻留所选择的近场通信应用程序的执行 环境之间划分启动的步骤411。这种划分可以依赖于应用程序类型、遍及执行环境中的应用 程序的分配上的设计偏好和近场通信应用程序栈的特定实现划分等。在每一个执行环境中 的每一个应用程序可以依赖于在近场通信电路控制器的所有协议层的处理。每一个执行环 境内的应用程序执行,可以例如在从下三个上层在模式切换层后开始。因此,可以将执行的模式切换层划分为应用程序发现机制(例如,协议发现管理器或应用程序发现管理器),而 执行的上层可以被划分为执行环境。来自注册表的路由标记可以用于确定该执行划分。例如,当路由标记处于与应用 程序层选择处理的特定参数对应的为真的状态时,这可以以信号通知应用程序发现模块, 以将数据路由到其中分配了执行处理的剩余划分的执行环境。现在转到图5,其中图示适合于编码作为用于应用程序发现管理器(316)的功能 的可执行代码的一种方法500。图5的方法如501所示当选择处理要在应用程序层发生时发 生。而且,图5的方法500假定已经利用协议发现管理器(319)识别了所需要的应用程序协 议,如在502所示。如上所述,协议发现管理器(319)可以基于族标识(例如用于IS014443 类型A和AFI的RATS命令、用于IS014443B的CID号)将所需要的应用程序识别为应用程 序族之一。在该情况下,协议发现管理器(319)已经选择了其中布置有应用程序发现管理 器的默认执行环境,并且使用应用程序发现管理器(316)配置交换器并将数据路由到默认 执行环境。在步骤503,在默认执行环境中工作的应用程序发现管理器(316)从外部近场通 信装置接收通信。在一个实施例中,该通信可以包括SELECT_APDU命令。在步骤504,应用程序发现管理器(316)参考注册表寻求与SELECT_APDU命令对应 的标识参数。如在判定步骤505所确定的,当存在该参数时,则存在兼容的近场通信应用程 序。当不存在该参数时,应用程序发现管理器(316)可以在步骤506向外部近场通信装置 发射失败响应。当存在兼容的参数时,在步骤507,应用程序发现管理器(316)使得近场通信电路 (216)通过近场通信电路控制器(301)来发射与启用的近场通信应用程序相关联的文件 控制信息。(当协议发现管理器(319)检测到所接收的近场通信信号的特性时,重新调用 (recall)该应用程序发现管理器(316)启用某些应用程序或应用程序族)。在一个实施例 中,文件控制信息至少包括与启用的近场通信应用程序相关联的应用程序标识符的列表。在步骤508,近场通信电路(216)从外部近场通信装置接收响应命令,并且将其递 送到默认执行环境(307)和应用程序发现管理器(316)。在一个实施例中,返回命令从与启 用的应用程序对应的应用程序标识符的列表中识别选择的应用程序标识符。在步骤509,应用程序发现管理器(316)从启用的近场应用程序中确定或选择近 场通信应用程序。如上所述,在一个实施例中,这个选择基于注册表(319)。访问注册表 (319)以基于在步骤508的返回命令中找到的应用程序标识符来确定特定的近场应用程 序。而且,还可以从注册表(319)中检索用于指示所选择的近场通信应用程序驻留于哪一 个执行环境中的执行环境标识符。在判定步骤510,应用程序发现管理器(316)确定所选择的近场通信应用程序是 驻留于其执行环境还是驻留于另一个执行环境中。当所选择的近场应用程序驻留于其执行 环境中时,应用程序发现管理器(316)能够在步骤513启动近场通信应用程序。在步骤511,应用程序发现管理器(316)从其消息转发模块(318)向在其中驻留有 选择的近场应用程序的执行环境的应用程序管理器发射转发消息。在一个实施例中,这个 消息被从默认执行环境经由近场通信控制电路发送到另一个执行环境或安全元件。该消息 可以包括在其中驻留特定应用程序或小型应用程序的其他执行环境的物理标识符。该物理标识符可以用于向另一个执行环境或安全元件转发事务协议的执行。一旦路由了这个消息,则在步骤S512,应用程序发现管理器316可以基于在消息 中接收的元件标识符和在本地注册表中的对应标识符来配置交换器,以将数据路由到其他 执行环境或安全元件。然后,应用程序发现管理器316可以初始化其他执行环境或安全元 件,以根据如上所述的过程或视存在较大的初始化延迟时间的情况而根据预先选择的应用 程序优先级来运行特定的小型应用程序或应用程序。应用程序发现管理器(316)或者直接 地配置路由交换器(219)或者引导近场通信电路控制器(301)来配置路由交换器(219),以 在近场通信电路控制器(301)与在其中驻留所选择的近场通信应用程序的执行环境之间 路由数据通信。这种交换器配置允许数据从外部近场通信装置向在其中驻留有启用和启动 的近场通信应用程序的执行环境流动。现在转到图6,其中图示根据本发明的实施例的、与近场通信应用程序选择对应 的一个路由流程图。图6图示用于一个操作示例的信号流程图。下面的示例描述基于由 IS07816标准定义的APDU层来选择小型应用程序。在行为601处,启用近场通信电路016)。这可以以多种方式发生。例如,用户可 以选择通过选择在用户界面上的图标来激活他的移动装置的近场通信电路特征。在行为602处,近场通信电路控制器301建立与外部近场通信装置600的通信。 在一个实施例中,这通过交换SENS_RESP消息来完成。在行为603处,初始化模式切换器。 注意到,模式切换器行为层(321)和冲突检测层(32 在初始化期间使用来自应用程序注 册表(3M)的启用的近场通信应用程序标识参数。当在处理协议期间在应用程序注册表 (324)中没有启用的标识参数时,近场通信处理终止。当识别了诸如类型A、B或F的近场 通信技术时,近场通信电路控制器301在行为604处发射相应于技术命令的响应。而且,在 作为冲突检测层(322)的下一层,近场通信电路控制器301使用诸如卡或对等目标的目标 标识;诸如PUPI、UID号的应用程序标识符;或者用于基于APDU或MAP的小型应用程序的 族标识符等,来对外部近场通信装置600进行响应。响应于在行为605处发射的外部近场通信装置终端SELECT_APDU命令(由 IS07816标准支持),初始化后的默认执行环境(307),并且更具体地在执行环境(307)中运 行的应用程序发现管理器316,在行为606处,经由近场通信电路控制器301来发射文件控 制信息。在一个实施例中,该文件控制信息包含与在各种执行环境中布置的某些、启用的近 场应用程序对应的应用程序标识号的列表。作为回答,外部近场通信装置600在行为607处,发射IS07816/全球平台APDU命 令SELECT_APDU。该命令传送应用程序标识符(AID)和文件标识符(FID),其唯一地识别它 要选择的启用的应用程序。应用程序发现管理器316然后发射文件控制信息(FCI)作为响 应。该标识符提供关于选择的应用程序的信息,由此信令传输近场通信应用程序的选择。当 对于SELECT_APDU命令的FCI响应包含与所选择的应用程序对应的信息时,也可以传送应 用程序发现管理器316能够管理的其他应用程序的某个AID。在接收到FCI之后,外部近场 通信装置600可以基于该信息来选择另一个应用程序。当是这种情况时,发出具有替代应 用程序的AID的新的SELECT_APDU命令。响应还是FCI。处理可以依赖于系统的配置来重复。
当外部近场通信装置不能找到可接受的应用程序标识符时,应用程序发现管理器316将终止该事务。然而,当选择近场通信应用程序时,应用程序发现管理器316在行为608 处,对于其注册表(317)查看应用程序的分配。当所选择的近场通信应用程序驻留于默认执行环境(307)中时,应用程序发现管 理器316启动该应用程序。然而,当所选择的近场通信应用程序驻留于另一个执行环境中 时,应用程序发现管理器316在行为609处发射转发消息。在行为610处,所选择的近场通 信应用程序被启动,并且执行该事务。例如,当事务是支付事务,并且选择的近场通信应用 程序是虚拟信用卡时,支付事务发生。当事务完成时,可以在行为611处发送事务结束消息。这向用户界面531通知事 务完成,并且可以可选地关掉近场通信电路016)。扼要重述,在选择的协议层,协议发现管理器319可以选择近场通信应用程序,因 为不需要发现的上(应用程序)层。在该情况下,协议发现管理器319可以进一步配置路 由交换器219以将数据路由到正确的执行环境。然而,当需要应用程序层发现时,例如基于 UID号和PUPI号等的发现时,应用程序发现管理器316执行发现处理。应用程序发现管理 器316然后可以启动所选择的应用程序,其中,该应用程序驻留于默认执行环境中,否则, 应用程序发现管理器316可以向适当的执行环境发射消息。在上述说明书中,已经描述了本发明的特定实施例。然而,本领域内的普通技术人 员应该明白,在不偏离在所附的权利要求中给出的本发明的范围的情况下,可以进行各种 修改和改变。因此,虽然已经说明和描述了本发明的优选实施例,但是很清楚,本发明不限 于此。在不偏离由所附的权利要求限定的本发明的精神和范围的情况下,本领域内的技术 人员可以进行各种修改、改变、变型、替代和等同。因此,要以说明性而不是限定性的意义上 看待说明书和附图,并且,所有这样的修改意在被包含在本发明的范围内。益处、优点、对 于问题的解决方案和可以使得任何益处、优点或解决方案出现或变得更显著的(一个或多 个)要素不应当被解释为任何或全部权利要求的关键的、必需的、或必要的特征或要素。
权利要求
1.一种便携电子装置,包括近场通信电路,所述近场通信电路具有可通过所述近场通信电路操作的近场通信电路 控制器;多个近场通信应用程序,所述多个近场通信应用程序存储在一个或多个执行环境中, 每一个所述近场通信应用程序可通过所述近场通信电路控制器来操作,其中,所述多个近 场通信应用程序的至少一个被存储在默认执行环境中;以及协议发现管理器,所述协议发现管理器可通过所述近场通信电路控制器操作,所述协 议发现管理器被配置来识别在协议层、近场通信技术层和冲突检测层处与外部近场通信装 置相关联的近场通信技术,并且基于所述近场通信技术来选择所述默认执行环境;其中,所述默认执行环境包括应用程序发现管理器,所述应用程序发现管理器被配置 来在除了所述协议层、所述技术层或所述冲突检测层之外的层处选择所述多个近场通信应 用程序中的一个。
2.根据权利要求1所述的便携电子装置,其中,所述应用程序发现管理器进一步包括 消息转发模块,所述消息转发模块被配置来从所述默认执行环境向所述一个或多个执行环 境的另一个执行环境发射应用程序发现消息。
3.根据权利要求1所述的便携电子装置,其中,所述便携电子装置进一步包括接口交 换器,所述接口交换器可通过所述近场通信控制器操作,并且被配置来在所述近场通信电 路控制器与所述一个或多个执行环境之间选择性地路由数据通信。
4.根据权利要求3所述的便携电子装置,其中,所述应用程序发现管理器和所述协议 发现管理器的每一个被配置有下述能力向所述近场通信电路控制器发射交换器配置消 息,以引导所述接口交换器在所述近场通信电路控制器和与所述多个近场通信应用程序中 的所述一个相关联的执行环境之间路由所述数据通信。
5.根据权利要求1所述的便携电子装置,其中,所述一个或多个执行环境的每一个包 括应用程序管理器,所述应用程序管理器被配置来管理其中存储的近场通信应用程序的执 行,其中,在所述一个或多个执行环境中的一个中存储的所述应用程序发现管理器包括消 息转发模块,所述消息转发模块被配置来向在所述一个或多个执行环境的至少一个其他执 行环境中的所述应用程序管理器发射应用程序发现转发消息。
6.根据权利要求5所述的便携电子装置,其中,所述应用程序发现管理器进一步包括 驻留于所述多个执行环境内的所述多个近场通信应用程序的注册表,所述注册表包括与 所述多个近场通信应用程序的每一个相关联的至少近场通信应用程序标识符,和与所述一 个或多个执行环境的另一个相关联的至少一个元件标识符。
7.根据权利要求6所述的便携电子装置,其中,所述应用程序发现转发消息包括与所 述一个或多个执行环境中的一个对应的所述至少一个元件标识符。
8.根据权利要求7所述的便携电子装置,其中,所述应用程序发现转发消息进一步包 括应用程序发现的状态和应用程序发现的当前层。
9.根据权利要求1所述的便携电子装置,其中,所述一个或多个执行环境包括多个安 全元件,其中,所述默认执行环境包括所述多个安全元件中的一个,并且其中,通过所述应 用程序发现管理器可发现的近场通信应用程序被存储在默认的安全元件内。
10.根据权利要求9所述的便携电子装置,其中,所述协议发现管理器被配置来激活所述多个安全元件中的所述一个,而所述应用程序发现管理器被配置来激活所述多个安全元 件中的至少另一个。
11.在具有近场通信能力和在多个执行环境中存储的多个近场通信应用程序的便携电 子装置中,一种用于自动地选择一个或多个近场通信应用程序的方法,包括步骤检测外部近场通信装置;识别在协议层、技术层和防冲突层处的近场通信技术;基于近场通信应用程序标识符来选择其中存储有应用程序发现管理器和注册表的默 认执行环境;其中,所述应用程序发现管理器通过参考在所述注册表中存储的应用程序标识符来识 别在应用程序层处的近场通信应用程序;以及执行所述近场通信应用程序。
12.根据权利要求11所述的方法,其中,所述多个执行环境包括多个安全元件,所述方 法进一步包括步骤参考所述注册表以确定其中驻留有所述近场应用程序的安全元件。
13.根据权利要求12所述的方法,进一步包括步骤通过接口交换器从所述默认执行 环境向在其中驻留有所述近场应用程序的所述安全元件引导数据通信。
14.根据权利要求13所述的方法,进一步包括步骤初始化在其中驻留有所述近场通 信应用程序的所述安全元件。
15.在可通过近场通信控制器操作的默认执行环境中,一种用于从存储在一个或多个 执行环境内的多个近场通信应用程序中选择近场通信应用程序的方法,所述方法包括步 骤通过所述近场通信控制器来发射与启用的近场通信应用程序相关联的文件控制信息, 其中,所述文件控制信息包括与所述启用的近场通信应用程序相关联的应用程序标识符的 列表;接收用于从所述应用程序标识符的列表中识别选择的应用程序标识符的命令;通过访问注册表由所述选择的应用程序标识符确定所述近场通信应用程序;以及启动所述近场通信应用程序或向与所述选择的应用程序标识符对应的选择的执行环 境发送应用程序转发消息。
16.根据权利要求15所述的方法,其中,所述应用程序转发消息至少包括检测的转发 层,其中,所述检测的转发层选自由协议层、防冲突层、传送层和应用程序层构成的组中。
17.根据权利要求16所述的方法,其中,所述应用程序转发消息进一步包括层检测序 列的状态的指示符、最近接收的命令响应和近场通信装置标识符。
18.根据权利要求15所述的方法,进一步包括步骤引导所述近场通信电路控制器以 配置交换器,从而在所述近场通信电路控制器与所选择的执行环境之间路由数据通信。
19.根据权利要求15所述的方法,其中,所述确定所述近场通信应用程序的步骤发生 在应用程序层。
全文摘要
在具有在多个执行环境内存储的多个近场通信应用程序的便携电子装置中,通过协议发现管理器和应用程序发现管理器来执行对一个近场通信应用程序的自动选择。应用程序发现管理器被布置在默认执行环境内。在近场通信电路控制器中操作的协议发现管理器在模式切换层、冲突检测层和协议层处执行应用程序发现。应用程序发现管理器在应用程序层处执行应用程序发现。当协议发现管理器选择应用程序时,可以配置路由交换器以将数据路由到适当的执行环境,并且启动所选择的应用程序,其中,仅需要识别的协议层。当需要其他层时,协议发现管理器将选择数据并将其路由到包括应用程序发现管理器的默认执行环境。应用程序发现管理器在选择了应用程序之后,按照所选择的应用程序的需要,可以启动该应用程序或者向适当的执行环境转发消息以供进一步执行。
文档编号G06F9/445GK102047748SQ200980111131
公开日2011年5月4日 申请日期2009年3月19日 优先权日2008年3月27日
发明者弗拉迪米尔·斯克洛弗斯基, 托马斯·比奥特 申请人:摩托罗拉移动公司