具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一般而言,可以将NFC设备划分为两个功能实体,DH(DeviceHost,主机)和NFCC(NFCcontroller)。DH负责管理NFC设备和外设(包括NFCC)的运行环境,如初始化、配置、电源管理等。NFCC负责在NFC射频接口上传送数据。NFCC可以通过单独的芯片实现,DH可以通过执行相应指令的处理器实现。DH和NFCC之间的逻辑接口称为NCI(NFCControllerInterface)。
图1是本发明一个实施例的近场通信方法的流程图。图1的方法由NFC设备执行,具体地,由接收NFCID的NFC设备执行。
101,第二设备获取第一设备的NFCID。第一设备的NFCID携带第一DT(DeviceType,设备类型/设备能力)信息。第一DT信息用于指示第一设备支持的设备类型/设备能力。
第一设备和第二设备均为NFC设备,可以是近场通信过程中的主设备或目标设备。第一设备和第二设备可以按照主动或被动的模式工作。第一设备是生成和发送NFCID的NFC设备,第二设备是接收NFCID的NFC设备。
102,第二设备从第一设备的NFCID中提取第一DT信息。
本发明实施例在NFC设备的NFCID中携带该NFC设备支持的设备类型/设备能力的信息,从而可以通过NFCID实现设备类型/设备能力的交换或搜索。
图1的方法可以在设备发现流程的设备标识交换过程中执行,或者在设备搜索过程中执行。下面还将结合具体实施例描述在不同的流程中执行图1的方法的具体例子。
可选地,作为一个实施例,当在设备搜索过程中执行图1的方法时,在步骤101中,第二设备可发送第一请求消息,该第一请求消息携带第二DT信息,第二DT信息用于指示第二设备要搜索的设备类型/设备能力。第二设备从确定第一DT信息匹配第二DT信息的第一设备接收第一设备的NFCID。
在接收第一设备的NFCID的过程中可能会产生冲突,例如有多个设备同时向第二设备反馈NFCID。可选地,作为另一实施例,如果第二设备在接收第一设备的NFCID时检测到冲突,则确定有效的冲突比特;然后第二设备发送第二请求消息,其中第二请求消息携带有效的冲突比特。如果有效的冲突比特的数目n小于第二DT信息的比特数m,则第二请求消息还携带第二DT信息的后面m-n个比特,其中m和n为正整数。
可选地,作为另一实施例,上述第一请求消息可以是单设备检测请求SDD_REQ消息或者探测请求消息ATR_REQ。
第一请求消息可以隐式地或显式地指示该第一请求消息是否用于搜索特定设备类型/设备能力。例如,例如,当SDD_REQ消息中的SEL_PAR=20h且SDD_REQ消息的总长度大于2字节时,可隐式地表示SDD_REQ消息携带第二DT信息。或者例如,可通过设置第一请求消息中的命令字段,通过不同的命令字段值来显式地表示不同类型的第一请求消息。如,ATR_REQ的CMD1取特定值(如0Ch)时表示ATR_REQ携带第二DT信息。
这样,本发明实施例能够解决设备搜索过程中的冲突问题,并且能够兼容现有的冲突解决机制。
本发明实施例对NFCID携带DT信息的具体方式不作限制。例如,NFCID可以在NFCID中的预定字节或比特上携带DT信息。此时,在步骤102中,第二设备提取第一设备的NFCID中的预定字节或比特作为第一DT信息。
再例如,NFCID携带DT信息的字节或比特的位置可以根据NFCID的长度而变化。此时,在步骤102中,第二设备可检测第一设备的NFCID的长度,然后第二设备根据第一设备的NFCID的长度,提取第一设备的NFCID中的对应字节或比特作为第一DT信息。
图2是本发明另一实施例的近场通信方法的流程图。图2的方法由NFC设备执行,具体地,由生成和发送NFCID的NFC设备执行。图2的方法与图1相对应,为避免重复,适当省略重复的描述。
201,第一设备生成第一设备的NFCID,其中第一设备的NFCID携带第一DT信息,第一DT信息用于指示第一设备支持的设备类型/设备能力。
第一设备和第二设备均为NFC设备,可以是近场通信过程中的主设备或目标设备。第一设备和第二设备可以按照主动或被动的模式工作。第一设备是生成和发送NFCID的NFC设备,第二设备是接收NFCID的NFC设备。
202,第一设备向第二设备发送第一设备的NFCID。
本发明实施例在NFC设备的NFCID中携带该NFC设备支持的设备类型/设备能力的信息,从而可以通过NFCID实现设备类型/设备能力的交换或搜索。
图2的方法可以在设备发现流程的设备标识交换过程中执行,或者在设备搜索过程中执行。下面还将结合具体实施例描述在不同的流程中执行图2的方法的具体例子。
本发明实施例对NFCID携带DT信息的具体方式不作限制。可选地,作为一个实施例,NFCID可以在NFCID中的预定字节或比特上携带DT信息。此时,在步骤201中,第一设备可在第一设备的NFCID中的预定字节或比特上填充第一DT信息。或者,NFCID携带DT信息的字节或比特的位置可以根据NFCID的长度而变化。此时,在步骤201中,第一设备可根据第一设备的NFCID的长度,在第一设备的NFCID中的对应字节或比特上填充第一DT信息。
可选地,作为另一实施例,当在设备搜索过程中执行图2的方法时,第一设备可接收第二设备发送的第一请求消息,第一请求消息携带第二DT信息,所述第二DT信息用于指示第二设备要搜索的设备类型/设备能力。第一设备确定NFCID是否匹配第二DT信息。此时,在步骤202中,在确定NFCID匹配第二DT信息时,第一设备向第二设备发送第一设备的NFCID。
需要说明的是,NFCID匹配第二DT信息,是指第一设备支持的设备类型涵盖了第二设备想要搜索的设备类型/设备能力。例如,如果DT信息使用集合的方式来表示,则第二DT信息是第一DT信息的子集或者与第一DT信息相同。再例如,如果DT信息使用下面表4的位图(bitmap)的方式来表示,则在第二DT信息置为“1”的比特上,第一DT信息的相应比特也置为“1”;但是在第二DT信息置为“0”的比特上,第一DT信息的相应比特可以置为“1”也可以置为“0”。
可选地,作为另一实施例,第一设备还可以接收第二设备发送的第二请求消息,第二请求消息携带第二设备在接收第一设备的NFCID时检测到冲突的情况下确定的有效的冲突比特。第一设备根据有效的冲突比特和第一设备的NFCID的匹配结果,确定是否再次向第二设备发送第一设备的NFCID。
具体地,假设有效的冲突比特的数目为n,第二DT信息的比特数为m。m、n为正整数。第一设备在根据有效的冲突比特和第一设备的NFCID的匹配结果,确定是否再次向第二设备发送第一设备的NFCID时,如果有效的冲突比特与NFCID的前n比特不同,则确定不再发送第一设备的NFCID。或者,如果有效的冲突比特与NFCID的前n比特相同且n≥m,则确定再次发送第一设备的NFCID。或者,如果有效的冲突比特与NFCID的前n比特相同且n<m,则在有效的冲突比特之后的m-n个比特与NFCID的相应比特相同的情况下,确定再次发送第一设备的NFCID。或者,如果有效的冲突比特与NFCID的前n比特相同且n<m,则在有效的冲突比特之后的m-n个比特与NFCID的相应比特不同的情况下,确定不再发送第一设备的NFCID。
可选地,作为另一实施例,上述第一请求消息可以是单设备检测请求SDD_REQ消息或者探测请求消息ATR_REQ。
第一请求消息可以隐式地或显式地指示该第一请求消息是否用于搜索特定设备类型/设备能力。例如,例如,当SDD_REQ消息中的SEL_PAR=20h且SDD_REQ消息的总长度大于2字节时,可隐式地表示SDD_REQ消息携带第二DT信息。或者例如,可通过设置第一请求消息中的命令字段,通过不同的命令字段值来显式地表示不同类型的第一请求消息。如,ATR_REQ的CMD1取特定值(如0Ch)时表示ATR_REQ携带第二DT信息。
这样,本发明实施例能够解决设备搜索过程中的冲突问题,并且能够兼容现有的冲突解决机制。
DT信息可以通过由NFC设备(主设备或目标设备)的DH向NFC设备的NFCC发送配置命令来配置。该配置命令可携带NFC设备支持的设备类型的信息。例如,可以通过扩展现有的CORE_SET_CONFIG_CMD实现上述配置命令。也可以新增一个专用的配置命令。本发明实施例对此不作限制。
NFC设备的NFCC存储DT信息。这样,能够实现NFC设备中DT信息的配置。例如,配置DT信息的方法可以在初始设置过程中执行,或者在改变了设备类型/设备能力的情况下执行。
这样,主设备的DH能够根据目标设备的设备类型/设备能力,进行相应的功能处理,增强用户的应用体验。例如,DH可启动与该设备类型匹配的应用程序,如当目标设备(如手机)靠近打印机时,手机的文件传输服务立刻启动;或者,当主设备(如手机)靠近汽车驾驶室的NFC模块(目标设备),立刻启动蓝牙耳机的配对,或者立刻启动收集汽车参数的应用程序。
应注意,本发明实施例对“存储”操作的具体形式不作限制,可以是长期的静态存储,也可以是短期存储,如缓存等。
另外,通过已启动的应用程序来搜索匹配的设备,可以过滤掉无关设备。例如,如果主设备(如手机)开启了音乐播放器,则只有具有扬声器功能的目标设备才会对设备进行响应。或者,如果主设备(如手机)开启了打印应用程序,只有具有打印功能的目标设备才能响应。
上面的例子仅仅是为了帮助本领域技术人员理解本发明实施例的可能的应用场景,而本发明实施例对设备类型的具体应用方式不作限制。
下面结合具体例子,更加详细地描述本发明实施例的DT信息。应注意,以下实施例仅仅是为了帮助本领域技术人员更好地理解本发明,而非限制本发明的范围。
DT信息可以表示设备类型。表1为设备类型的描述的一个例子。一个NFC设备可以属于多个分类,即可以同时支持多种设备类型。
表1设备类型的例子
设备分类 |
描述 |
收银机 |
支付相关 |
音频 |
播放音频格式的数据 |
视频 |
播放视频格式的数据 |
显示 |
显示设备,用于显示静态图片等 |
打印 |
打印机设备 |
本发明实施例中,DT信息还可以表示设备能力。表2为设备能力描述的一个例子。一个NFC设备可以属于多个分类,即可以同时支持多种设备能力。
设备能力 |
描述 |
WIFI |
支持WIFI |
蓝牙 |
支持蓝牙 |
音频播放 |
支持音频播放 |
打印 |
支持打印 |
传真 |
支持传真 |
。。。 |
|
在下文中,以表1的DT信息为例进行描述,但本发明实施例可以类似地应用于表2的DT信息,这样的应用也落入本发明实施例的范围内。
表3是本发明实施例的设备类型数据格式的例子。本发明实施例增加了设备类型参数“DEVICE_TYPE”,具体定义如表3所示,长度为2字节(byte)。但是本发明实施例对设备类型参数的具体长度不作限制。
表3设备类型参数“DEVICE_TYPE”的例子
表4是本发明一个实施例的设备类型参数“DEVICE_TYPE”的格式的一个例子,其中h表示十六进制。在表34例子中,设备类型参数“DEVICE_TYPE”使用位图(bitmap)的编码格式,但本发明实施例对设备类型参数的格式不作限制。应注意,在本发明实施例的各个表中,按照倒序的方式排列各个字节的各个比特。
表4设备类型参数的编码格式的例子
如表4所示,一个NFC设备可以支持多个设备类型(或者说设备能力)。如设备具有视频、显示的能力,那么在第一个字节的b2和b3设置为1。表3中“x”表示预留比特。
表5是本发明一个实施例的NFCID携带DT信息的例子。
表5NFCID的例子
NFCID可以在NFCID中的预定字节或比特上携带DT信息。例如,如表5所示,NFC-F类型下的设备标识被表示为NFCID2,长度为8字节,则可以使用该8字节NFCID2中的预定的任意两个连续的字节NFCID2x携带DT信息,其中“x”表示NFCID2中的字节的相应序号,取值范围为0-7中的预定的任意两个连续的整数。此时,NFC设备可以从接收到的NFCID中提取预定的两个字节作为DT信息,或者在生成NFCID时在预定的两个字节中填充DT信息。
NFCID携带DT信息的字节或比特的位置可以根据NFCID的长度而变化。例如,NFC-A类型下的设备标识被表示为NFCID1,长度可能为4字节、7字节或10字节。在表5的例子中,如果NFCID1的长度为4字节,可使用NFCID1中的NFCID11和NFCID12两个字节携带DT信息。如果NFCID1的长度为7字节或10字节,可使用NFCID1中的NFCID10和NFCID11两个字节携带DT信息,或者使用NFCID1中的NFCID11和NFCID12两个字节携带DT信息。其中,NFCID10表示NFCID1的第一个字节,NFCID11表示NFCID1的第二个字节,NFCID12表示NFCID1的第三个字节。
表5中所描述的字节仅仅是NFCID携带DT信息的一个例子,本发明实施例对NFCID中DT信息的具体位置不作限制,例如也可以是不连续的两个字节,或者可以是其他字节。
图3是本发明一个实施例的近场通信过程的示意流程图。图3的实施例中,相同的步骤使用相同的附图标记。图3的实施例是用于交换设备类型的过程中配置设备类型和上报设备类型的方法。
301:DH向NFCC发送配置命令CORE_SET_CONFIG_CMD,该命令用于配置NFCC的相关参数。
与现有的配置命令不同的是,本发明实施例的配置命令CORE_SET_CONFIG_CMD包含了要配置的设备类型。
例如,步骤301可以在初始设置过程中执行,或者在改变了设备类型的情况下执行。
302:NFCC收到配置命令后,向DH反馈响应消息CORE_SET_CONFIG_RSP,用于指示配置是否成功。
步骤301和302是配置设备类型的过程。该过程不必再每次启动发现过程之前均需执行,而只需在初始设置时执行即可,或者在设备类型的配置发生变化时执行。因此,步骤301和302是可选的过程。
303:DH向NFCC发送RF_DISCOVER_CMD命令,触发NFCC启动设备的发现过程。
304:NFCC向DH反馈响应消息,用于指示设备发现过程正在进行;
305:主设备和目标设备之间执行用于交换设备类型的发现过程。
306:当主设备的NFCC发现周围的目标设备后,会向DH发送射频发现通知消息RF_DISCOVER_NTF,用于通告发现结果。与现有的射频发现通知消息不同,本发明实施例的射频发现通知消息RF_DISCOVER_NTF包括该目标设备的设备类型。
同样的,当目标设备的NFCC发现周围的主设备后,会向DH发送射频发现通知消息RF_DISCOVER_NTF,用于通告发现结果。与现有的射频发现通知消息不同,本发明实施例的射频发现通知消息RF_DISCOVER_NTF包括主设备的设备类型。
例如,可以在RF_DISCOVER_NTF消息中增加“DeviceType”(设备类型)字段,携带表3所示的设备类型参数。
图4是本发明一个实施例的近场通信过程的示意流程图。图4的实施例中,相同的步骤使用相同的附图标记。图4的实施例是用于搜索设备类型的过程中配置设备类型和上报设备类型的方法。
应注意,在图4的实施例中,在搜索设备类型的同时,也执行设备类型的交换,但本发明实施例不限于此。例如,在不执行设备类型的交换的情况下,目标设备的步骤406可以省略。
步骤401-402和图3的步骤301-302相同,因此省略重复的描述。
403:DH向NFCC发送RF_DISCOVER_CMD命令,其中包括要搜索的设备类型,触发NFCC启动设备的发现过程。
404:NFCC向DH反馈响应消息,用于指示设备发现过程正在进行。
405:主设备和目标设备之间执行用于搜索设备类型的发现过程。
步骤406和图3的步骤306相同,因此省略重复的描述。
下面结合图5-图9描述在NFC-A被动通信过程中,主设备通过标识交换或设备搜索过程获取目标设备的NFCID从而获取目标设备支持的设备类型的实施例。
图5是本发明一个实施例的主设备获取目标设备的DT信息的示例流程图。图5的方法由主设备执行。
501:主设备向目标设备发送SENS_REQ(探测请求)消息,用于探测周围目标设备。
502:目标设备收到SENS_REQ后,将会向主设备反馈SENS_RES(探测响应)消息。
503:主设备启动单设备检测(SDD)过程。
504:主设备获取所有目标设备的NFCID1。
505:主设备检测目标设备NFCID1的长度是否为4字节。
506:如果在步骤505中确定NFCID1的长度为4字节,则存储NFCID11和NFCID12作为设备类型。
在图5以及后面的实施例中,当NFCID1的长度为4字节时,提取NFCID11和NFCID12作为DT信息,但本发明实施例对此不作限制。例如,也可以按照其他配置,提取对应的字节或比特作为DT信息。
507:如果在步骤505中确定NFCID1的长度不是4字节,即NFCID1的长度是7字节或10字节,则存储NFCID10和NFCID11作为设备类型。
在图5以及后面的实施例中,当NFCID1的长度为7或10字节时,提取NFCID10和NFCID11作为DT信息,但本发明实施例对此不作限制。例如,也可以如表5所示,提取NFCID11和NFCID12作为DT信息,或者按照其他配置,提取对应的字节或比特作为DT信息。
508:主设备验证设备类型是否有效。如果设备类型有效,执行步骤509,如果设备类型无效,则执行步骤510。
509:主设备的NFCC向主设备的DH通告发现目标设备,并携带该目标设备的设备类型。
510:将该设备类型设置为“未知”,然后执行步骤509。
511:主设备判断是否继续检测,如果继续,则执行步骤503,否则结束。
这样,能够通过NFCID实现设备类型的交换。
图6是图5的实施例中主设备和目标设备的消息交互的示意图。图6中各个消息的定义可参照图3-图5的实施例,因此不再重复描述。
图7A和图7B是本发明一个实施例的搜索支持特定设备类型的目标设备的过程的示意流程图。图7A-7B的方法由主设备执行。
701:主设备在发送SENS_REQ并接收到从目标设备反馈回来的SENS_RES消息之后,选择级联等级1。
702:主设备判断是否需要搜索特定设备类型的目标设备。如果判断为是,则执行步骤703;如果判断为否,则执行步骤704。
703:主设备发送SDD_REQ消息,其中SEL_PAR=20h,并且SDD_REQ消息中的SEL_PAR字段后还包括3个字节,这3个字节携带第二DT信息,即表示主设备要搜索的设备类型。
3个字节的第二DT信息只是一个例子,本发明实施例的第二DT信息的长度不限于3个字节。
需要说明的是,SDD_REQ消息帧至少包含一个字节的SEL_CMD字段和一个字节的SEL_PAR字段。按照现有协议,如果将SEL_PAR的十六进制值表示为ij,i、j为正整数,则表示SDD_REQ消息中SEL_PAR之后跟随了(i-2)×8+j个有效冲突比特。
目标设备发现SDD_REQ消息帧的实际长度大于SEL_PAR指示的长度,可理解为SDD_REQ消息携带了第二DT信息,用于搜索特定设备类型。在本例中,SDD_REQ消息帧为5个字节,但SEL_PAR的值为20h(指示SDD_REQ长度为2个字节且不携带有效冲突比特),目标设备可以理解为SEL_PAR字段后的3个字节是第二DT信息,而不是有效的冲突比特。
704:主设备发送SDD_REQ消息,其中SEL_PAR=20h,并且SEL_PAR后不携带任何比特。这是符合现有协议的SDD_REQ消息。
705:主设备检测是否有任何冲突。如有冲突,则执行步骤706,否则执行步骤713。
706:主设备确定有效的冲突比特。
707:主设备判断是否需要搜索特定设备类型的目标设备。如果是,则执行步骤708,否则执行步骤710。
708:主设备检查级联等级是否为1。如果是,则执行步骤709,否则结束。
709:主设备判断有效的冲突比特数(假设为n)是否大于或等于第二DT信息的长度(3字节)。如果是,则执行步骤710,否则执行步骤711。
710:发送SDD_REQ消息,SDD_REQ消息的SEL_PAR字段之后包含有效冲突比特。这是符合现有协议的用于冲突解决的SDD_REQ消息。
711:发送SDD_REQ消息,有效冲突比特被包含在SEL_PAR字段后的3字节中。具体地,SEL_PAR字段后的3字节中,首先填充n个有效冲突比特,后面的剩余比特仍然使用步骤703中第二DT信息的相应比特。换句话说,使用有效冲突比特覆盖第二DT信息中的前面n个比特。
712:主设备检测接收到的SDD_RES(单设备检测响应)消息是否发生冲突。如果发生,则执行步骤706;否则执行步骤713。
713:主设备判断得到的NFCID1是否已经完整。如果是,则执行步骤715。否则,执行步骤714。
714,增加级联等级,然后执行步骤704。
715-720与图5的505-510相同,因此不再赘述。
721:主设备判断是否继续检测,如果继续,则执行步骤701,否则结束。
这样,主设备能够搜索支持特定设备类型的目标设备,并且能够解决多个目标设备的反馈冲突问题,同时能够兼容现有的冲突解决机制。
图8是本发明一个实施例的搜索支持特定设备类型的目标设备的过程的示意流程图。图8的方法由目标设备执行。
801:目标设备收到SDD_REQ消息。
如果目标设备发现SDD_REQ消息帧的实际长度大于SEL_PAR指示的长度,则可理解为SDD_REQ消息携带了第二DT信息,用于搜索特定设备类型。
例如,参照图7的例子,步骤703中发送的SDD_REQ消息帧为5个字节,但SEL_PAR的值为20h(指示SDD_REQ长度为2个字节且不携带有效冲突比特),目标设备可以理解为SEL_PAR字段后的3个字节是第二DT信息,而不是有效的冲突比特。在此情况下,目标设备检测自己的NFCID是否匹配第二DT信息,并在匹配的情况下向主设备发送SDD_RES消息,该SDD_RES消息携带目标设备的NFCID1。
如果SEL_PAR的值不为20h,且SDD_REQ消息中SEL_PAR的值所表示的比特数比20h表示的比特数(即2字节=16比特)大n个比特,则表示SEL_PAR字段之后的n个比特为有效的冲突比特,此时执行步骤802。
802:目标设备检测SDD_REQ消息中SEL_PAR字段后的前n个比特是否与自己的NFCID1的前n个比特相匹配。如果是,则执行步骤803;否则结束。
803:目标设备检测SDD_REQ消息的SEL_PAR是否小于50h。如果是,则执行步骤804;否则执行步骤805。
SEL_PAR大于或等于50h,表示SEL_PAR字段之后仅携带有效的冲突比特,而不携带第二DT信息的任何比特。
SEL_PAR小于50h,表示SEL_PAR字段之后携带n比特的有效冲突比特,而有效冲突比特之后还携带非有效冲突比特。具体地,该非有效冲突比特为第二DT信息的后面24-n个比特,这里24是第二DT信息的比特数(等于3字节)。
804:目标设备判断自己的设备类型是否与SDD_REQ消息中的SEL_PAR字段后的非有效冲突比特匹配。如果匹配,则执行步骤805;否则结束。
805:目标设备返回SDD_RES消息,用于响应SDD_REQ。
SDD_RES消息中携带目标设备的NFCID1。
这样,主设备能够搜索支持特定设备类型的目标设备,并且能够解决多个目标设备的反馈冲突问题。
图9是图7和图8的实施例中主设备和目标设备的消息交互的示意图。图9中各个消息的定义可参照图3-4以及图7-8的实施例,因此不再重复描述。
下面结合图10-11描述NFC-F被动通信模式下获取设备类型的实施例。
图10是本发明一个实施例的获取设备类型的过程的示意流程图。图10的方法由主设备执行。在图10的实施例中,假设使用两个字节NFCID20和NFCID21(即NFCID2的第一个字节和第二个字节)携带DT信息,但是本发明实施例对NFCID2携带DT信息的字节或比特不作限制。
1001:主设备向目标设备发送SENSF_REQ(探测请求)消息,用于探测周围目标设备。
1002:主设备接收从目标设备反馈回来的SENSF_RES(探测响应)消息。
1003:主设备执行单设备检测。
1004:主设备获取目标设备的NFCID2,并将NFCID20和NFCID21作为设备类型。
1005:主设备检测设备类型是否有效,如果有效执行步骤1006,无效则设置该设备类型为“未知”,然后执行步骤1006。
1006:主设备的NFCC向DH通告目标设备的设备类型。
1007:主设备判断是否继续进行目标设备的解析,如果是,执行步骤1003,否则结束。
这样,能够通过NFCID实现设备类型的交换。
图11是图10的实施例中主设备和目标设备的消息交互的示意图。图11中各个消息的定义可参照图3-4以及图10的实施例,因此不再重复描述。
下面结合图12-15描述主动通信模式下获取设备类型的实施例。
图12A和图12B是本发明另一实施例的获取设备类型的过程的示意流程图。图12A-B的方法由主设备执行,目标设备的操作与主设备相对应。
1201:主设备检测自己的配置信息,确定是否支持NFC-A技术。如果支持NFC-A技术,则执行步骤1202,否则执行步骤1205。
1202:主设备判断NFCID(此时表示为NFCID1)的长度是否为4字节。如果NFCID1长度为4字节,则执行步骤1203;否则执行步骤1204。
1203:NFCID1长度为4字节,设置NFCID11和NFCID12为设备类型。
1204:NFCID1长度为7字节或10字节,设置NFCID10和NFCID11为设备类型。
1205:主设备判断是否支持NFC-F技术。如果支持NFC-F技术,则执行步骤1206,否则结束。
1206:主设备设置NFCID(此时表示为NFCID2)的NFCID20和NFCID21作为设备类型。
1207:主设备向目标设备发送ATR_REQ(探测请求)消息,用于探测周围目标设备并请求获取目标设备参数。
1208:目标设备收到ATR_REQ消息后,向主设备响应ATR_RES(探测响应)消息。
主设备重复步骤1201-1208,直到收到所有的目标设备的响应。
1209:主设备检测ATR_RES中的NFCID值,确定是否支持NFC-A技术。如果支持NFC-A技术,则执行步骤1210,否则执行步骤1213。
1210:主设备判断NFCID(此时表示为NFCID1)的长度是否为4字节。如果是,则执行步骤1211,否则执行步骤1212。
1211:NFCID1长度为4字节,获取NFCID11和NFCID12为设备类型。
1212:NFCID1长度为7字节或10字节,获取NFCID10和NFCID11为设备类型。
1213:判断是否支持NFC-F技术。如果支持NFC-F技术,则执行步骤1214,否则执行步骤1207。
1214:获取NFCID20和NFCID21作为设备类型。
1215:主设备存储所获取的设备类型。
1216:主设备检测设备类型是否有效,如果有效执行步骤1217,无效则执行步骤1218。
1217:主设备的NFCC向DH通告目标设备的设备类型。
1218:设置该设备类型为“未知”,然后执行步骤1217。
1219:主设备判断是否继续进行目标设备的解析,如果是,执行步骤1207,否则结束。
这样,能够通过NFCID实现设备类型的交换。
图13是图12的实施例中主设备和目标设备的消息交互的示意图。图13中各个消息的定义可参照图3-4以及图12的实施例,因此不再重复描述。
图14是本发明另一实施例的搜索特定设备类型的目标设备的过程的示意流程图。图14的方法由主设备执行。
1401:主设备设置ATR_REQ消息中的CMD1(命令)字段为0Ch,表示该ATR_REQ消息用于搜索特定设备类型的目标设备。
1402:主设备在ATR_REQ消息中的NFCID字段设置前两个字节为要搜索的设备类型。
1403:主设备向目标设备发送ATR_REQ,用于探测周围目标设备并请求获取目标设备参数。
1404:主设备接收从目标设备反馈回来的ATR_RES消息;
1405:主设备检测接收到的ATR_RES消息中的NFCID,确定是否支持NFC-A技术。如果支持NFC-A技术,则执行步骤1406,否则执行步骤1409。
1406:主设备判断NFCID(此时表示为NFCID1)的长度是否为4字节。如果是,则执行步骤1407,否则执行步骤1408。
1407:NFCID1长度为4字节,获取NFCID11和NFCID12为设备类型。
1408:NFCID1长度为7字节或10字节,获取NFCID10和NFCID11为设备类型。
1409:判断是否支持NFC-F技术。如果支持NFC-F技术,则执行步骤1410,否则执行步骤1403。
1410:获取NFCID20和NFCID21作为设备类型。
1411:主设备存储所获取的设备类型。
1412:主设备检测设备类型是否有效,如果有效执行步骤1413,无效则执行步骤1414。
1413:主设备的NFCC向DH通告目标设备的设备类型。
1414:设置该设备类型为“未知”,然后执行步骤1413。
1415:主设备判断是否继续进行目标设备的解析,如果是,执行步骤1403,否则结束。
这样,能够实现特定设备类型的搜索。
图15是本发明另一实施例的搜索特定设备类型的目标设备的过程的示意流程图。图15的方法由目标设备执行,并且与图14的方法相对应。
1501:目标设备收到ATR_REQ消息。
1502:目标设备检测ATR_REQ消息中的CMD1的值。如果CMD1=00h,执行步骤1505;如果CMD1=0Ch,执行步骤1503。
1503:目标设备从ATR_REQ消息中的NFCID字段获取前两个字节。
1504:目标设备判断这两个字节与自己的设备类型是否匹配。如果匹配,执行步骤1505;否则结束。
1505:目标设备向主设备发送ATR_RES消息。
这样,能够实现特定设备类型的搜索。
利用NFCID中的两个字节表示设备类型,能够在最大程度上重用目前的帧格式及通信架构,在NFC-A,NFC-F被动通信模式,及主动通信模式下实现设备类型的获取及搜索特定设备类型目标设备。
下面,描述本发明实施例的NFC设备的实施例。
图16是本发明一个实施例的NFC设备的框图。图16的NFC设备包括获取单元161和提取单元162。
获取单元161获取第一设备的NFCID,第一设备的NFCID携带第一DT信息,第一DT信息用于指示第一设备支持的设备类型/设备能力。提取单元,用于从第一设备的NFCID中提取第一DT信息。
本发明实施例在NFC设备的NFCID中携带该NFC设备支持的设备类型/设备能力的信息,从而可以通过NFCID实现设备类型的交换或搜索。
NFC设备160可执行上述方法实施例中有关接收NFCID的设备的各个过程,实现设备类型/设备能力的交换或搜索。为避免重复,不再详细描述。
可选地,作为一个实施例,提取单元162可检测第一设备的NFCID的长度;根据第一设备的NFCID的长度,提取第一设备的NFCID中的对应字节或比特作为第一DT信息。例如,按照表5中NFC-A模式下的NFCID1的例子,当NFCID1的长度为4字节时,可提取对应的字节NFCID11和NFCID12作为第一DT信息;或者,当NFCID1的长度为7或10字节时,可提取对应的字节NFCID10和NFCID11,或者对应的字节NFCID11和NFCID12,作为第一DT信息。
可选地,作为另一实施例,提取单元162可提取第一设备的NFCID中的预定字节或比特作为第一DT信息。例如,按照表5中NFC-F模式下的NFCID2的例子,可以提取NFCID2中预定的任意两个连续的NFCID2x作为第一DT信息,如图10的实施例中的NFCID20和NFCID21。
可选地,作为另一实施例,获取单元161可发送第一请求消息,第一请求消息携带第二DT信息,第二DT信息用于指示NFC设备160要搜索的设备类型/设备能力。从确定第一DT信息匹配第二DT信息的第一设备接收第一设备的NFCID。
可选地,作为另一实施例,如果在接收所述第一设备的NFCID时检测到冲突,则获取单元161可确定有效的冲突比特。获取单元161可发送第二请求消息,其中第二请求消息携带有效的冲突比特。如果有效的冲突比特的数目n小于第二DT信息的比特数m,则第二请求消息还携带第二DT信息的后面m-n个比特,其中m和n为正整数。
可选地,作为另一实施例,第一请求消息为单设备检测请求SDD_REQ消息或者探测请求消息ATR_REQ。
图17是本发明另一实施例的NFC设备的框图。图17的NFC设备170包括生成单元171和发送单元172。
生成单元171生成NFC设备170的NFCID,其中NFC设备170的NFCID携带第一DT信息,第一DT信息用于指示NFC设备170支持的设备类型/设备能力。发送单元,向第二设备发送NFC设备170的NFCID。
本发明实施例在NFC设备的NFCID中携带该NFC设备支持的设备类型/设备能力的信息,从而可以通过NFCID实现设备类型的交换或搜索。
NFC设备170可执行上述方法实施例中有关生成和发送NFCID的设备的各个过程,实现设备类型/设备能力的交换或搜索。为避免重复,不再详细描述。
可选地,作为一个实施例,生成单元171可以在NFC设备170的NFCID中的预定字节或比特上填充第一DT信息;或者,根据NFC设备170的NFCID的长度,在NFC设备170的NFCID中的对应字节或比特上填充第一DT信息。
可选地,作为另一实施例,NFC设备170还包括接收单元173和确定单元174。
接收单元173接收第二设备发送的第一请求消息,第一请求消息携带第二DT信息,第二DT信息用于指示第二设备要搜索的设备类型/设备能力。确定单元174确定NFCID是否匹配第二DT信息。发送单元172在确定单元174确定NFCID匹配第二DT信息时,向第二设备发送NFC设备170的NFCID。
可选地,作为另一实施例,接收单元173还可以接收第二设备发送的第二请求消息,第二请求消息携带第二设备在接收第一设备的NFCID时检测到冲突的情况下确定的有效的冲突比特。确定单元174还可以根据有效的冲突比特和第一设备的NFCID的匹配结果,确定是否再次向第二设备发送第一设备的NFCID。
可选地,作为另一实施例,有效的冲突比特的数目为n,n为正整数。如果所述有效的冲突比特与NFCID的前n比特不同,则确定单元174可确定不再发送第一设备的NFCID;如果有效的冲突比特与NFCID的前n比特相同且n≥m,则确定单元174可确定再次发送第一设备的NFCID,m为第二DT信息的比特数;如果有效的冲突比特与NFCID的前n比特相同且n<m,则在有效的冲突比特之后的m-n个比特与NFCID的相应比特相同的情况下,则确定单元174可确定再次发送第一设备的NFCID;如果有效的冲突比特与NFCID的前n比特相同且n<m,则在有效的冲突比特之后的m-n个比特与NFCID的相应比特不同的情况下,则确定单元174可确定不再发送第一设备的NFCID。
可选地,作为另一实施例,第一请求消息为单设备检测请求SDD_REQ消息或者探测请求消息ATR_REQ。
图18是本发明另一实施例的NFC设备的框图。图18的NFC设备180包括NFCC183。NFCC183包括发射电路1831、接收电路1832、天线1833、处理器1834和存储器1835。
存储器1835存储使得处理器1834执行以下操作的指令:获取第一设备的NFCID,第一设备的NFCID携带第一DT信息,第一DT信息用于指示第一设备支持的设备类型/设备能力,并从第一设备的NFCID中提取第一DT信息。
本发明实施例在NFC设备的NFCID中携带该NFC设备支持的设备类型/设备能力的信息,从而可以通过NFCID实现设备类型/设备能力的交换或搜索。
NFC设备180可执行上述方法实施例中有关接收NFCID的设备的各个过程,实现设备类型/设备能力的交换或搜索。为避免重复,不再详细描述。
如图18所示,NFC设备180还包括处理器181和存储器182。存储器182存储使得处理器181实现对NFCC183的控制的指令。这样,NFCC183在处理器181的控制之下实现上述功能。换句话说,处理器181实现NFC设备180中的主机(DH)的功能。
NFC设备180的处理器181、存储器182和NFCC183通过总线系统189耦合在一起,其中总线系统189除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统189。DH和NFCC之间的逻辑接口NCI可通过总线系统189实现。
处理器181从总体上控制NFC设备180的操作,处理器181可以是CPU(CentralProcessingUnit,中央处理单元)。处理器181还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器182可以包括只读存储器和随机存取存储器,并向处理器181提供指令和数据。存储器182的一部分还可以包括非易失性随机存取存储器。例如,存储器182还可以存储设备类型的信息。
NFCC183可以实现为单独的芯片,发射电路1831、接收电路1832和天线1833实现NFCC183的射频接口。发射电路1831和接收电路1832通过内部连接1839耦合到天线1833。本发明实施例对内部连接1839的形式不作限制,可以是内部总线或内部电路等。
可选地,在一个实施例中,发射电路1831和接收电路1832可以由一套电路实现,通过双工模式实现发射和接收功能。
NFCC183的处理器1834和存储器1835的功能也可以分别由处理器181和存储器182负责。这样NFCC183中可以去除处理器1834和存储器1835。例如,存储器182可存储使得处理器181执行以下操作的指令:获取第一设备的NFCID,第一设备的NFCID携带第一DT信息,第一DT信息用于指示第一设备支持的设备类型/设备能力,并从第一设备的NFCID中提取第一DT信息。
在实现过程中,上述方法的各步骤可以通过处理器181或1834中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器182或1835,处理器181或1834读取存储器182或1835中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选地,作为一个实施例,处理器181或1834可检测第一设备的NFCID的长度;根据第一设备的NFCID的长度,提取第一设备的NFCID中的对应字节或比特作为第一DT信息。例如,按照表5中NFC-A模式下的NFCID1的例子,当NFCID1的长度为4字节时,可提取对应的字节NFCID11和NFCID12作为第一DT信息;或者,当NFCID1的长度为7或10字节时,可提取对应的字节NFCID10和NFCID11,或者对应的字节NFCID11和NFCID12,作为第一DT信息。
可选地,作为另一实施例,处理器181或1834可提取第一设备的NFCID中的预定字节或比特作为第一DT信息。例如,按照表5中NFC-F模式下的NFCID2的例子,可以提取NFCID2中预定的任意两个连续的NFCID2x作为第一DT信息,如图10的实施例中的NFCID20和NFCID21。
可选地,作为另一实施例,发射电路1831可通过天线1833发送第一请求消息,第一请求消息携带第二DT信息,第二DT信息用于指示NFC设备180要搜索的设备类型/设备能力。接收电路1832可通过天线1833从确定第一DT信息匹配第二DT信息的第一设备接收第一设备的NFCID。
可选地,作为另一实施例,如果在接收第一设备的NFCID时检测到冲突,则处理器181或1834可确定有效的冲突比特。发射电路1831可通过天线1833发送第二请求消息,其中第二请求消息携带有效的冲突比特。如果有效的冲突比特的数目n小于第二DT信息的比特数m,则第二请求消息还携带第二DT信息的后面m-n个比特,其中m和n为正整数。
可选地,作为另一实施例,第一请求消息为单设备检测请求SDD_REQ消息或者探测请求消息ATR_REQ。
图19是本发明另一实施例的NFC设备的框图。图19的NFC设备190包括NFCC193。NFCC193包括发射电路1931、接收电路1932、天线1933、处理器1934和存储器1935。
存储器1935存储使得处理器1934执行以下操作的指令:生成NFC设备190的NFCID,其中NFC设备190的NFCID携带第一DT信息,第一DT信息用于指示NFC设备190支持的设备类型/设备能力。发射电路1931通过天线1933向第二设备发送NFC设备190的NFCID。
本发明实施例在NFC设备的NFCID中携带该NFC设备支持的设备类型/设备能力的信息,从而可以通过NFCID实现设备类型/设备能力的交换或搜索。
NFC设备190可执行上述方法实施例中有关生成和发送NFCID的设备的各个过程,实现设备类型/设备能力的交换或搜索。为避免重复,不再详细描述。
如图19所示,NFC设备190还包括处理器191和存储器192。存储器192存储使得处理器191实现对NFCC193的控制的指令。这样,NFCC193在处理器191的控制之下实现上述功能。换句话说,处理器191实现NFC设备190中的主机(DH)的功能。
NFC设备190的处理器191、存储器192和NFCC193通过总线系统199耦合在一起,其中总线系统199除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统199。DH和NFCC之间的逻辑接口NCI可通过总线系统199实现。
处理器191从总体上控制NFC设备190的操作,处理器191可以是CPU(CentralProcessingUnit,中央处理单元)。处理器191还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器192可以包括只读存储器和随机存取存储器,并向处理器191提供指令和数据。存储器192的一部分还可以包括非易失性随机存取存储器。例如,存储器192还可以存储设备类型的信息。
NFCC193可以实现为单独的芯片,发射电路1931、接收电路1932和天线1933实现NFCC193的射频接口。发射电路1931和接收电路1932通过内部连接1939耦合到天线1933。本发明实施例对内部连接1939的形式不作限制,可以是内部总线或内部电路等。
可选地,在一个实施例中,发射电路1931和接收电路1932可以由一套电路实现,通过双工模式实现发射和接收功能。
NFCC193的处理器1934和存储器1935的功能也可以分别由处理器191和存储器192负责。这样NFCC193中可以去除处理器1934和存储器1935。例如,存储器192可存储使得处理器191执行以下操作的指令:生成NFC设备190的NFCID,其中NFC设备190的NFCID携带第一DT信息,第一DT信息用于指示NFC设备190支持的设备类型/设备能力。
在实现过程中,上述方法的各步骤可以通过处理器191或1934中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器192或1935,处理器191或1934读取存储器192或1935中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选地,作为一个实施例,生成单元191可以在NFC设备190的NFCID中的预定字节或比特上填充第一DT信息;或者,根据NFC设备190的NFCID的长度,在NFC设备190的NFCID中的对应字节或比特上填充第一DT信息。
可选地,作为另一实施例,接收电路1932可通过天线1933接收第二设备发送的第一请求消息,第一请求消息携带第二DT信息,第二DT信息用于指示第二设备要搜索的设备类型。处理器191或1934确定NFCID是否匹配第二DT信息。发射电路1931在处理器191或1934确定NFCID匹配第二DT信息时,通过天线1933向第二设备发送NFC设备190的NFCID。
可选地,作为另一实施例,接收电路1932还可以通过天线1933接收第二设备发送的第二请求消息,第二请求消息携带第二设备在接收第一设备的NFCID时检测到冲突的情况下确定的有效的冲突比特。处理器191或1934还可以根据有效的冲突比特和第一设备的NFCID的匹配结果,确定是否再次向第二设备发送第一设备的NFCID。
可选地,作为另一实施例,有效的冲突比特的数目为n,n为正整数。如果所述有效的冲突比特与NFCID的前n比特不同,则处理器191或1934可确定不再发送第一设备的NFCID;如果有效的冲突比特与NFCID的前n比特相同且n≥m,则处理器191或1934可确定再次发送第一设备的NFCID,m为第二DT信息的比特数;如果有效的冲突比特与NFCID的前n比特相同且n<m,则在有效的冲突比特之后的m-n个比特与NFCID的相应比特相同的情况下,则处理器191或1934可确定再次发送第一设备的NFCID;如果有效的冲突比特与NFCID的前n比特相同且n<m,则在有效的冲突比特之后的m-n个比特与NFCID的相应比特不同的情况下,则处理器191或1934可确定不再发送第一设备的NFCID。
可选地,作为另一实施例,第一请求消息为单设备检测请求SDD_REQ消息或者探测请求消息ATR_REQ。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。