自动选择能够由设备实现的应用的方法和设备 技术领域 本发明涉及适合于与外部实体进行通信的多应用电子设备的技术领域, 优选地, 所述设备可便携。
背景技术 具体地当并非以非限制方式, 本发明适用于微电路卡 ( 智能卡 ), 该微电路卡适合 于与智能卡读取器进行通信, 以实现一个或多个应用 ( 支付交易、 控制访问、 ...)。
文献 US2008/0306849 描述了一种能够由用于与智能卡进行通信的读取器实现的 方法, 该方法适用于实现符合 ISO 14443-4 协议的应用, 以及符合 MIFARE 协议的应用。在 该方法中, 需要读取器认识到智能卡所支持的应用, 以便能够选择这些应用。
本发明足以避免这种限制。
发明内容 在第一方面中, 本发明提供了一种电子设备, 包括 :
·用于接收外部实体所发送的消息的装置 ;
·用于使用相同协议实现与所述外部实体进行通信的至少两个应用的装置 ;
·产生器装置, 适合于在接收到从所述实体接收的至少一个特定消息时, 或在初始 化与所述实体的通信的情况下, 产生预定事件 ; 以及
·选择装置, 适合于检测所述事件, 并在所述应用之中选择一个应用, 与从所述外 部实体接收到的任何消息无关地, 选择所选应用。
以相应的方式, 本发明还提供了一种能够由电子设备实现的选择方法, 该电子设 备适合于与外部实体进行通信, 并适合于实现至少两个应用, 至少两个应用使用相同协议 与所述外部实体进行通信, 该方法包括步骤 :
·在接收到从所述实体接收的至少一个特定消息时, 或在初始化与所述实体的通 信的情况下, 产生预定事件 ;
·检测所述事件 ;
·在所述应用之中选择一个应用, 与从所述外部实体接收到的任何消息无关地, 选 择所选应用。
因此, 以非常有利的方式, 本发明能够在外部单元不发送用于选择应用的任何命 令的情况下, 选择由电子设备实现的应用。
在特定实施例里, 本发明的电子设备包括 :
·用于执行第一计算机模块的装置, 该第一计算机模块适合于发起第二计算机模 块的执行, 该第二模块适合于实现所述应用 ; 以及
·由第一模块实现的事件产生装置。
当对于电子设备而言实现上述应用的第二计算机模块以 “黑盒” 形式出现时, 实现 本发明的优选、 但非限制的应用。
这通常适用于在第三方已经开发了第二计算机模块时。
本文中, “计算机模块” 的概念应当广义地理解 : 具体地, 它涵盖了计算机程序、 计 算机子程序、 函数、 或函数库。
在本发明的一个特定实施例中 :
· 第一模块适合于与应用 ISO 14443-1 至 ISO 14443-3 标准的外部实体进行通 信;
·所述应用是 MIFARE( 注册商标 ) 应用 ; 以及
·第二模块适合于实现应用, 以便在 MIFARE 应用的上下文中产生与外部实体交换 的消息的发送和接收。
注意 MIFARE 技术依赖于 ISO14443type A 标准, 并且与该标准的不同之处在于 : 用 专有 MIFARE 协议代替了 ISO 14443-4 层, “ISO14443type A” 和 MIFARE 技术共同共享 ISO 14443-1、 ISO 14443-2 和 ISO 14443-3 协议。
对于更多关于 MIFARE 技术的信息, 本领域技术人员可参考 2008 年 1 月 29 日的文 献″ MF1ICS50, functional specification, Rev.5.3″。
以已知方式, 在 MIFARE 应用的上下文中, 由读取器 ( 或更通常地由外部实体 ) 发 送到智能卡 ( 或更通常地到便携式电子设备 ) 的消息实质上在于, 用于获得对存储器的读 写访问的控制消息, 该存储器专用于 MIFARE 应用。
在该特定领域中, 使用术语 “MIFARE 应用” 来指示存储器本身是惯用技术手段。因 此, 需要区分 :
·MIFARE 应用, 即存储器 ; 以及
·产生与读取器交换的消息以便访问用于读或写的存储器的应用。
因此, 在特定实现中, 本发明能够选择例如由智能卡实现的 MIFARE 应用, 以便执 行与所述卡的读取器的交易, 而无需所述读取器发出任何命令, 来选择 MIFARE 应用或专用 于 MIFARE 应用的存储器。
在本发明的实施例中, 第一模块在接收到可由其解释的命令时, 产生预定事件。
当第一模块适合于在 ISO 14443-1 至 ISO 14443-3 标准的应用中与外部实体进行 通信时, 产生本发明意义上的预定事件的特定消息具体可以选自于 :
·由读取器周期性发出的 REQA 轮询消息 ;
·用于选择卡 ( 本发明意义上的电子设备 ) 的 SEL 消息 ; 或者
·如 ISO 14443-3 标准所定义的结束交易的 HALT 消息。
有利地, 该实施例能够在第一 MIFARE 交易结束之后, 且不管第一 MIFARE 应用终止 的方式 ( 例如由于读取器发送 HALT 消息或者由于电磁场受到干扰 ), 都能够选择 MIFARE 应 用。
在特定情况下, 外部实体能够若干次发出特定消息, 例如, 若干轮询消息。
本领域技术人员将理解, 在这种情况下, 某些应用永远不被选择。
本发明提出两种避免上述问题的解决方案 :
·在发起第二模块的执行之前立即产生预定事件 ; 或者
·在接收到不可由第一模块解释的命令时, 产生预定事件。
在一个特定实施例中, 第二模块执行之后, 第一模块重新开始执行, 并且在重新开始执行之后后, 第一模块产生预定事件。
根本上需要清楚注意的是, 根据本发明, 应用选择 ( 即, 从可能的应用之中选择一 个应用 ) 以与正从读取器接收的任何消息无关地进行。
在特定实施例中, 本发明的设备的选择装置顺序地逐一选择应用。
在变型中, 可以循环地或随机地选择应用。
在特定实施例中, 选择方法的不同步骤由计算机程序指令来确定。
因此, 本发明还提供了一种在数据介质上的计算机程序, 该程序适合于在通信电 子设备中, 或更通常地在计算机中实现, 该程序包括适合于执行如上所述选择方法的步骤 的指令。
该程序可使用任何编程语言, 其可以采用源代码、 目标码或介于源代码和目标码 之间的代码形式, 例如部分编译形式或任何其它期望形式。
本发明还提供了一种计算机可读并包括如上所述计算机程序的指令的数据介质。
数据介质可以是能够存储程序的任何实体或设备。例如, 该介质可包括 : 诸如只 读存储器 (ROM)( 例如, 光盘 (CD)ROM 或微电子电路 ROM) 等的存储装置, 或真正磁记录装置 ( 例如, 软盘或硬盘 )。 此外, 数据介质可以是可传输介质, 例如电或光信号, 可以经由电缆或光缆以无线 或其他方式进行传递。具体地, 本发明的程序可以从互联网类型的网络上下载。
备选地, 数据介质可以其中并入了程序的集成电路, 该电路适于执行所讨论的方 法, 或用于执行所讨论的方法。
在上面所提到的发明的第一变型实施例中, 在被事件的发生触发时, 电子设备判 定选择应用, 该事件与从读取器接收到的特定消息的接收有关。
在第二方面中, 本发明还提供了一种电子设备, 包括 :
·用于实现至少两个 MIFARE 应用的装置 ; 以及
·用于已经执行所述 MIFARE 应用之一之后系统地选择所述 MIFARE 应用之一的装 置。
因此, 本发明提供了一种可由电子设备实现的选择方法, 该电子设备适合于实现 至少两个 MIFARE 应用, 该方法始终在执行 MIFARE 应用之一之后, 选择所述 MIFARE 应用之 一。
也可以顺序地、 循环地或随机地选择 MIFARE 应用。
在该第二变型的特定实施例中, 本发明的电子设备包括 : 用于执行第一计算机 模块的装置, 第一计算机模块适合于发起第二计算机模块的执行, 第二模块适合于实现 MIFARE 应用, 由第一模块实现选择装置。
在特定实施例中, 在发起第二模块的执行之前, 第一模块立即选择 MIFARE 应用。
附图说明 参照示出了不具有限制特性的实施例的附图, 根据以下给出的描述, 本发明的其 它特征和优点将变得显而易见。附图中 :
图 1 示出了根据本发明特定实施例的电子设备 ;
图 2 示出了该设备的细节 ; 以及
图 3A 至 3D 以及图 4 是示出了根据本发明不同实现方式的选择方法的流程图。具体实施方式
图 1 示出了根据本发明特定实施例的选择设备 1000。
选择设备 1000 是移动电话。
选择设备包括 : 处理器 1300, 适合于实现移动电话的传统操作, 即涉及电话技术, 发送和接收消息, 以及管理人 / 机界面的操作。
在这里描述的实施例中, 设备 1000 具有用于与外部读取器 100 进行非接触式通信 的装置。 这些非接触式通信装置主要由天线 1100 和符合近场通信 (NFC) 标准或 ISO 14443 的微处理器 1200 构成。
在这里描述的实施例中, 移动电话 1000 包括 : 经由电路 L1 由天线 1100 供电的智 能卡 ( 用户识别模块 (SIM) 卡 )1400。
在这里描述的实施例中, 微处理器 1200 执行模数转换器和调制器 / 解调器功能, 以经由天线 1100 进行通信。这样的微处理器通常被称作非接触式前端 (CLF)。
在这里描述的实施例中, SIM 卡 1400 经由连接 L2 并符合单线协议 (SWP) 与微处 理器 1200 进行通信。 图 2 详细示出了移动电话 1000 的 SIM 卡 1400。
优选地, SIM 卡符合 ISO7816 标准, 包括输入 / 输出接口 1410, ROM1430、 以及电可 擦除可编程 ROM(EEPROM) 类型的可重写非易失性存储器 1440, 这些元件通过总线连接至微 处理器 1420。
在这里描述的实施例中, 可重写非易失性 EEPROM 1440 包括 :
·三个存储器 M1、 M2、 M3, 其中的每一个构成 MIFARE 技术意义上的应用 ; 以及
·指针 PTR, 在给定时刻指向 M1 至 M3 中所选的一个。
在这里描述的实施例中, ROM1430 具有两个计算机程序, 即:
· 第 一 计 算 机 程 序 PG1, 该程序具体包括: SIM 卡 1400 的 操 作 系 统、 实现 ISO14443-1 至 14443-3 协议的指令、 以及使得能够选择 MIFARE 应用 M1 至 M3 的模块 ; 以及
· 计算机程序 PG2, 适合于实现应用, 以及适合于在所述 MIFARE 应用 M1 至 M3 的上 下文中, 管理与外部实体 100 交换的消息的发送与接收。
参照图 3A, 随后描述了根据本发明第一选择方法的主要步骤, 该方法由上述参照 图 1 和图 2 描述的移动电话 1000 来实现。
首先, 假定用户将移动电话 1000 移至读取器 100 的几厘米范围内, 使得移动电话 的天线 1100 进入由所述读取器所产生的电磁场中。
因此, SIM 卡 1400 由电路 L1 或电话的电池供电。 在这里描述的实施例中, 然后 SIM 卡的微处理器 1420 执行第一计算机程序 PG1。
例如, 假定在初步个性化阶段期间初始化指针 PTR, 以便指向 MIFARE 应用 M1。
假定在步骤 E8 期间, 读取器 100 发送由模块 PG1 接收的轮询消息 REQA。
该消息的接收构成了本发明意义上的事件。
在这里描述的实施例中, 程序 PG1 包括顺序地移动指针 PTR 的步骤 E40, 使得其随 后指向 MIFARE 应用 M2。
然后在步骤 E50 期间, 程序 PG1 发起第二计算机程序 PG2, 以在所述 MIFARE 应用 M2 上下文中管理与外部实体 100 交换的消息的交换。
参考图 3B, 描述了根据本发明第二选择方法的步骤。
在该实施例中, 第一计算机程序 PG1 适合于实现 ISO 14443-1 至 ISO 14443-3 标 准。
在该实施例里, 非易失 EEPROM 1440 包括寄存器, 该寄存器适合于存储初始被设 置为 0 的标记 FLAG 的值。
在这里描述的实施例中, 将指针 PTR 初始化为, 指向 MIFARE 存储器 M1。
在这里描述的实施例中, 当第一计算机程序 PG1 接收到轮询消息 REQA 时, 在步骤 E10 期间第一计算机程序 PG1 验证存储在非易失性 EEPROM 1440 内的标记包含预定值 “1” , 还是其它值。
如果确实包含值 “1” , 则在步骤 E40 期间移动指针 PTR 并且在步骤 E14 将标记设置 为 “0” 值。
在这里所描述的示例中, 用 “0” 值初始化标记, 使得在轮询消息 REQA 的该第一次 接收时, 不执行步骤 E12 和 E14, 这是由于在该阶段还没有检测到事件。 根据 ISO 14443-1 至 ISO 14443-3 协议, 根据本发明的设备 1000 在步骤 E16 期间 通过发送消息 ATQA 来响应请求 REQA。
然后, 在步骤 E18 期间, 根据本发明的读取器 100 和电子设备 1000 实现本领域技 术人员所公知的一般步骤 E18 作为 “防冲突循环” , 该循环使得读取器 100 实际能够从其他 智能卡或位于读取器 100 的电磁场内的设备之中, 选择本发明的设备 1000。
在该冲突管理阶段结束时, 设备 1000 在步骤 E20 期间开始向读取器 100 发送标示 符 UID, 该标识符以唯一的方式标识设备 1000。
根据 ISO 14443-1 至 ISO 14443-3 协议, 在步骤 E22 期间读取器 100 通过发送消 息 SEL(UID) 来选择设备 1000, 同时电话 1000 通过发送选择肯定应答 (SAK) 消息来肯定应 答该选择。
这些不同的消息 (REQA, ATQA, 防冲突循环, UID, SEL(UID), 和 SAK) 是使用 ISO 14443-4 协议的应用和符合 MIFARE 技术的应用所共用的消息。
现在假定在步骤 E25 期间, 读取器 100 发送消息 MSG。
在测试 E26 期间, 第一模块 PG1 验证消息是否符合 ISO 14443-4 协议。
如果不符合, 则测试 E26 的结果为肯定。
在测试之后是, 根据 ISO 14443-4 协议由读取器 100 和移动电话 1000 实现互认证 步骤 E28, 然后是一般步骤 E36, 在该一般步骤 E36 期间, 电话 1000 根据 ISO 14443-4 协议 与读取器 100 进行通信。
如果在步骤 E26 期间, 第一模块 PG1 检测到在步骤 E25 中接收到的消息 MSG 不符 合 ISO 14443-4 协议, 则测试 E26 的结果为否定。
测试之后是步骤 E44, 在步骤 E44 期间第一计算机程序 PG1 将标记设置为 “1” 值。
之后, 在步骤 E50 期间, 第一计算机程序 PG1 发起第二计算机程序 PG2。
然后可以在读取器 100 和移动电话 1000 的 MIFARE 应用 M1 之间实现 MIFARE 交易。
随后, 当移动电话 1000 接收到新的轮询消息 REQA 时 ( 在步骤 E8 中 ), 关于标记值
的测试 E10 的结果为肯定, 使得执行步骤 E12( 移动指针 PTR) 和 E14( 将标记重新初始化为 “0” 值 )。
电话 1000 随后选择 MIFARE 应用 M2。
在该第二实施例中, 第一计算机程序 PG1 不能解释的消息的接收构成本发明意义 上的事件。
在如图 3C 所示的第三实施例中, 在执行 MIFARE 应用之后, 第二计算机程序 PG2 将 控制返回到第一计算机程序 PG1, 并且在步骤 E40, 在以这种方式返回控制后移动指针。
该实施例避免使用标记。
在图 3D 所示的第四实施例中, 在接收不可解释的消息之后并且紧邻发起第二模 块 PG2 的执行之前, 第一模块 PG1 移动指针 PTR( 步骤 E40)。
在上文描述的实施例中, 指针 PTR 顺序移动。
在变型中, 可以循环地移动或随机选择指针。
图 4 示出了根据本发明的第二变型的选择方法。
在该实施例中, 第一计算机程序 PG1 适合于通过监控对存储器 M1 至 M3 的访问, 来 检测第二计算机程序 PG2 是否在执行 MIFARE 应用。
在这里描述的实施例中, 在步骤 E100 期间第一计算机程序 PG1 使用预定持续时间 来初始化定时器。
只要发生了对存储器 M1 至 M3 之一的访问 ( 测试 E120 为肯定 ), 就假定在读取器 100 中进行 MIFARE 应用, 并且用同样的持续时间重新初始化定时器。
否则, 如果在此持续时间没有发生对存储器 M1 至 M3 中任何一个的访问 ( 测试 E40 为肯定 ), 就假定没有进行 MIFARE 应用 ( 或者从未有过一个 MIFARE 应用或该 MIFARE 应用 已终止 ), 并选择 MIFARE 应用。
在大多数情况下, 以这种方式所选择的 MIFARE 应用与目前的 MIFARE 应用不同。
然而, 在本发明的一个实施例中, 随机选择 MIFARE 应用, 因此会出现同一 MIFARE 应用连续被选择若干次。
在所有上述实施例中 ( 图 3A 至 3D 及图 4), 可重写非易失性 EEPROM 1440 具有三 个不同的存储器 M1, M2 和 M3。
在变型中, 可重写非易失性 EEPROM 1440 仅具有一个存储器 M, 每次 MIFARE 应用变 化时, 将 MIFARE 应用的内容拷贝到所述存储器 M 中。在该变型中, 不需要使用指针 PTR, 这 是由于能够通过将存储器 M 的内容与没有 MIFARE 应用进行比较, 来确定当前的 MIFARE 应 用。
在上述实施例中, 本发明主要在移动电话 1000 的智能卡 1400 内实现。
在变型中, 能够在移动电话自身中实现本发明, 同时由电话的处理器 1300 执行计 算机程序 PG1 和 PG2。
本发明也可在其他类型的电子设备中实现, 尤其是在配备非接触通信装置 ( 具体 地, 天线 ) 的智能卡中。