发明内容
本发明的实施例提供一种识别标签的方法及装置,可以实现减少NFC终端中的主控制器确定标签格式的步骤,使得NFC标签能够被处理。
第一方面,本发明的实施例提供一种识别标签的方法,包括:
近距离无线通讯技术NFC控制器读取标签的类型;
所述NFC控制器根据所述标签的类型,确定所述标签的格式是否为NFC数据交换格式NDEF;
当所述NFC控制器确定所述标签的格式为所述NDEF时,所述NFC控制器向主控制器发送通知消息,所述通知消息包括所述标签的格式为所述NDEF。
在第一种可能的实施例中,结合第一方面,在所述近距离无线通讯技术NFC控制器读取标签的类型之前,所述方法还包括:
所述NFC控制器接收所述主控制器发送的配置命令,所述配置命令用于指示所述NFC控制器是否对所述标签进行所述NDEF的检测。
在第二种可能的实施例中,结合第一方面或第一方面中的第一种可能的实施例,所述NFC控制器根据所述标签的类型,确定所述标签的格式是否为NFC数据交换格式NDEF,包括:
当所述标签的类型为Type 1时,所述NFC控制器从所述标签中的头域HR0确定所述标签的格式是否为所述NDEF;
当所述标签的类型为Type 2时,所述NFC控制器从所述标签中的能力容器CC确定所述标签的格式是否为所述NDEF;
当所述标签的类型为Type 3时,所述NFC控制器从所述标签中的系统代码System Code确定所述标签的格式是否为所述NDEF;
当所述标签的类型为Type 4时,所述NFC控制器从所述标签中的能力容器CC文件的文件标识确定所述标签的格式是否为所述NDEF。
在第三种可能的实施例中,结合第一方面或第一方面中的上述任一种可能的实施例,在所述NFC控制器接收所述主控制器发送的配置命令之前,所述方法还包括:
所述NFC控制器向所述主控制器发送格式功能消息,所述格式功能消息携带有所述NFC控制器是否具有对所述标签进行所述NDEF的检测的能力信息。
在第四种可能的实施例中,结合第一方面中的第三种可能的实施例,在所述NFC控制器向所述主控制器发送格式功能消息之前,所述方法还包括:
所述NFC控制器接收所述主控制器发送的初始化命令;
所述NFC控制器向所述主控制器发送格式功能消息,包括:
所述NFC控制器向所述主控制器发送初始化回复,所述初始化回复携带有所述NFC控制器是否具有对所述标签进行所述NDEF的检测的能力信息。
在第五种可能的实施例中,结合第一方面中的第一种可能的实施例,所述配置命令还用于指示所述NFC控制器对所述标签进行数据类型的检测。
在第六种可能的实施例中,结合第一方面或第一方面中的上述任一种可能的实施例,在所述NFC控制器向主控制器发送通知消息之后,所述方法还包括:
所述NFC控制器通过NDEF射频接口接收所述主控制器发送的读写命令;
所述NFC控制器将所述读写命令转换成NDEF读写命令;
根据所述NDEF读写命令,所述NFC控制器与所述标签进行数据读写。
第二方面,本发明的实施例提供一种识别标签的装置,包括:
读取模块,用于读取标签的类型;
确定模块,用于根据所述标签的类型,确定所述标签的格式是否为NFC数据交换格式NDEF;
所述发送模块,用于当所述确定模块确定所述标签的格式为所述NDEF时,向主控制器发送通知消息,所述通知消息包括所述标签的格式为所述NDEF。
在第一种可能的实施例中,结合第二方面,所述装置还包括:
接收模块,用于接收所述主控制器发送的配置命令,所述配置命令用于指示所述NFC控制器是否对所述标签进行所述NDEF的检测。
在第二种可能的实施例中,结合第二方面或第二方面中的第一种可能的实施例,所述确定模块具体用于:
当所述标签的类型为Type 1时,从所述标签中的头域HR0确定所述标签的格式是否为所述NDEF;当所述标签的类型为Type 2时,从所述标签中的能力容器CC确定所述标签的格式是否为所述NDEF;当所述标签的类型为Type 3时,从所述标签中的系统代码System Code确定所述标签的格式是否为所述NDEF;当所述标签的类型为Type 4时,从所述标签中的能力容器CC文件的文件标识确定所述标签的格式是否为所述NDEF。
在第三种可能的实施例中,结合第二方面或第二方面中的上述任一种可能的实施例,
所述发送模块,还用于向所述主控制器发送格式功能消息,所述格式功能消息携带有所述NFC控制器是否具有对所述标签进行所述NDEF的检测的能力信息。
在第四种可能的实施例中,结合第二方面中的第三种可能的实施例,所述接收模块,还用于接收所述主控制器发送的初始化命令;
所述发送模块,还用于向所述NFC控制器发送初始化回复,所述初始化回复携带有所述NFC控制器是否具有对所述标签进行所述NDEF的检测的能力信息。
在第五种可能的实施例中,结合第二方面中的第一种可能的实施例,所述配置命令还用于指示所述NFC控制器对所述标签进行数据类型的检测。
在第六种可能的实施例中,结合第二方面或第二方面中的上述任一种可能的实施例,所述接收模块,还用于通过NDEF射频接口接收所述主控制器发送的读写命令;
所述装置还包括:
转换模块,用于所述读写命令转换成NDEF读写命令;
处理模块,用于根据所述NDEF读写命令,与所述标签进行数据读写。
第三方面,本发明的实施例提供一种识别标签的装置,所述装置包括:近距离无线通讯技术NFC控制器、主控制器,所述NFC控制器与所述主控制器连接;其中:
所述NFC控制器,用于读取标签的类型;根据所述标签的类型,确定所述标签的格式是否为NFC数据交换格式NDEF;当所述NFC控制器确定所述标签的格式为所述NDEF时,所述NFC控制器向主控制器发送通知消息,所述通知消息包括所述标签的格式为所述NDEF;
所述主控制器,用于接收所述NFC控制器发送的所述通知消息。
在第一种可能的实施例中,结合第三方面,
所述主控制器,还用于向所述NFC控制器发送配置命令,所述配置命令用于指示所述NFC控制器是否对所述标签进行所述NDEF的检测;
所述NFC控制器,还用于接收所述主控制器发送的所述配置命令。
在第二种可能的实施例中,结合第三方面或第三方面中的第一种可能的实施例,所述NFC控制器具体用于,当所述标签的类型为Type 1时,从所述标签中的头域HR0确定所述标签的格式是否为所述NDEF;当所述标签的类型为Type 2时,从所述标签中的能力容器CC确定所述标签的格式是否为所述NDEF;当所述标签的类型为Type 3时,从所述标签中的系统代码System Code确定所述标签的格式是否为所述NDEF;当所述标签的类型为Type 4时,从所述标签中的能力容器CC文件的文件标识确定所述标签的格式是否为所述NDEF。
在第三种可能的实施例中,结合第三方面或第三方面中的上述任一种可能的实施例,所述NFC控制器,还用于向所述主控制器发送格式功能消息,所述格式功能消息携带有所述NFC控制器是否具有对所述标签进行所述NDEF的检测的能力信息。
在第四种可能的实施例中,结合第三方面中的第三种可能的实施例,所述主控制器,还用于向所述NFC控制器发送初始化命令;
所述NFC控制器,还用于在接收所述主控制器发送的所述初始化命令之后,向所述主控制器发送初始化回复,所述初始化回复携带有所述NFC控制器是否具有对所述标签进行所述NDEF的检测的能力信息。
在第五种可能的实施例中,结合第三方面中的第一种可能的实施例,所述配置命令还用于指示所述NFC控制器对所述标签进行数据类型的检测。
在第六种可能的实施例中,结合第三方面或第三方面中的上述任一种可能的实施例,所述主控制器,还用于在接收所述NFC控制器发送的所述通知消息之后,建立与所述NFC控制器进行数据传输的NDEF射频接口。
在第七种可能的实施例中,结合第二方面中的第六种可能的实施例,所述主控制器,还用于通过所述NDEF射频接口向所述NFC控制器发送读写命令;
所述NFC控制器,还用于通过所述NDEF射频接口接收所述主控制器发送的所述读写命令;将所述读写命令转换成NDEF读写命令;根据所述NDEF读写命令,与所述标签进行数据读写。
本发明实施例提供的一种识别标签的方法及装置,通过NFC控制器读取标签的类型,以及根据所述标签的类型,确定所述标签的格式是否为NFC数据交换格式;当所述NFC控制器确定所述标签的格式为NFC数据交换格式时,所述NFC控制器向主控制器发送通知消息,所述通知消息包括所述标签的格式为NFC数据交换格式的信息。与现有技术中主控制器需要获取NFC标签的全部内容才能确定NFC标签的格式,导致主控制器读取NFC标签的数据量大,以及操作较复杂相比,本发明实施例可以实现减少NFC终端中的主控制器确定标签格式的步骤,使得NFC标签能够被处理。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种识别标签的方法,该方法包括:
101,NFC控制器读取标签的类型。
NFC控制器为NFC终端中的控制器。NFC终端可以为手机、平板电脑、相机等具有NFC功能的终端。为了方便描述,在本实施例中以具有NFC功能的手机为例进行说明。其中,NFC控制器是负责在NFC射频接口传送数据的逻辑实体。以具备NFC功能的手机为例,NFC控制器指手机上的NFC芯片。
在本实施例中,标签为NFC标签。NFC标签的类型有:类型Type1、Type2、Type3和Type4。NFC控制器读取标签的类型的方式可以参照NFC Forum Analog标准、NFC Forum Digit标准以及NFC Forum Activity标准。
其中,NFC控制器可以通过射频发现发现标签以及获取标签的属性。NFC控制器通过射频发现如何来发现标签的过程、获取标签的属性的过程可以参照NFC Forum Analog标准、NFC Forum Digit标准以及NFC Forum Activity标准。标签的属性可以包括标签的格式、标签的数据类型、以及标签支持的功能等。这里标签支持的功能指NFC控制器与标签建立通信的过程中需要的能力。
102,NFC控制器根据该标签的类型,确定该标签的格式是否为NDEF。
NDEF定义了交换信息的封装格式,这些信息在NFC终端之间或者在NFC终端与NFC标签之间传输。NDEF可以是一个轻量级、二进制的消息格式,它可以用于封装一个或多个任意类型、任意大小的自定义数据。
当该标签的类型为Type 1时,NFC控制器从该标签中的头域(HeaderRead-Only Memory,HR)0确定该标签的格式是否为NDEF。具体的,HR0的长度为1个字节,当HR0的高四位为0001b时,NFC控制器确定该标签的格式为NDEF。当该标签的类型为Type 2时,NFC控制器从该标签中的能力容器(Capability Container,CC)确定该标签的格式是否为NDEF。具体的,CC的长度为4个字节,当第一个字节的值为E1h(16进制的E1)时,NFC控制器确定该标签的格式为NDEF。当该标签的类型为Type 3时,NFC控制器从该标签中的系统代码System Code确定该标签的格式是否为NDEF。具体的,SystemCode的长度为2个字节,当该System Code的值为12FCh(16进制的12FC)时,NFC控制器确定该标签的格式为NDEF。当该标签的类型为Type 4时,NFC控制器从该标签中的能力容器(Capability Container,CC)文件的文件标识确定标签的格式是否为NDEF。具体的,CC文件的文件标识的长度为2个字节,当该CC文件的文件标识的值为E103h(16进制的E103)时,NFC控制器确定该标签的格式为NDEF。
可选的,当NFC控制器确定该标签的格式为NDEF时,NFC控制器还可以确定该标签的数据类型。标签的数据类型有8种。具体的,NFC控制器从标签(Type1、Type2、Type3、Type4)的TNF字段获取数据类型信息,根据数据类型信息的内容确定该标签的数据类型。TNF字段的值可以为0x00、0x01、0x02、0x03、0x04、0x05、0x06或者0x07,NFC控制器可以根据该TNF字段的取值确定该标签的数据类型信息。标签的数据类型具体为NDEF消息的类型。其中,0x00代表此NDEF消息是空消息;0x01代表此NDEF消息保存了一个NFCForum标准组织RTD(Record Type Define)标准中定义的内部数据类型;0x02代表此NDEF消息保存了一个RFC(Request For Comments)2046标准中定义的媒体类型,例如图片、声音等;0x03代表此NDEF消息保存了一个RFC 3986标准中定义的统一资源标识符(Uniform Resource Identifier,URI);0x04代表此NDEF消息保存了一个NFC Forum标准组织RTD(Record Type Define)标准中定义的外部数据类型;0x05代表此NDEF消息保存了一个未知类型的数据;0x06代表此NDEF消息是一串连续NDEF标签中的中间一个标签,并且与前一个NDEF标签的数据类型相同;0x07代表保留且暂不使用此NDEF消息。
103,当NFC控制器确定该标签的格式为NDEF时,NFC控制器向主控制器发送通知消息,该通知消息包括该标签的格式为NDEF的信息。
主控制器负责管理NFC终端和外设的运行环境,其中包括对NFC控制器的管理,如初始化、配置、电源管理等。以具备NFC功能的手机为例,主控制器可以指手机的CPU。
在本实施例中,例如,NFC控制器向主控制器发送通知消息,例如通知消息为该射频发现通知RF_DISCOVER_NFT。该RF_DISCOVER_NFT的具体形式如表1所示。
表1
在表1中,各字段所表示的含义或取值举例如下:
NDEF Info表示NDEF信息,占用一个字节(1 Octets);
X表示该标签的格式是否为NDEF;
当X≠00000000时,表示该标签的格式为NDEF。
可选的,当所述NFC控制器确定所述标签的格式不是NFC数据交换格式时,所述NFC控制器仍可以向主控制器发送通知消息。所述通知消息(RF_DISCOVER_NFT)中的X=00000000时,表示该标签的格式不是NDEF。
可选的,NFC控制器向主控制器发送的通知消息还可以包括标签的数据类型。例如,NFC控制器向主控制器发送RF_DISCOVER_NFT。所述RF_DISCOVER_NFT的具体形式如表2所示。
表2
在表2中,各字段所表示的含义或取值举例如下:
该NDEF Info的详细说明可参考表1中的描述,在此不再一一赘述。
类型名称格式(Type Name Format,TNF)表示标签的数据类型信息,占用一个字节(1 Octets);
当X=0x00时,表示NDEF消息是空消息(该标签包括此NDEF消息);
当X=0x01时,表示此NDEF消息保存了一个NFC Forum标准组织RTD(Record Type Define)标准中定义的内部数据类型等等。
需要说明的是,本实施例不限制X表示具体的标签的数据类型。例如,当X=0x07时,表示保留且暂不使用此NDEF消息。
本发明实施例提供的一种识别标签的方法,通过NFC控制器读取标签的类型,以及根据该标签的类型,确定该标签的格式是否为NFC数据交换格式;当NFC控制器确定该标签的格式为NFC数据交换格式时,NFC控制器向主控制器发送通知消息,该通知消息包括该标签的格式为NFC数据交换格式的信息。与现有技术中主控制器需要获取NFC标签的全部内容才能确定NFC标签的格式,导致主控制器读取NFC标签的数据量大,以及操作较复杂相比,本发明实施例可以实现减少NFC终端中的主控制器确定标签格式的步骤,使得NFC标签能够被处理。
在本发明实施例的另一种实现方式中,提供一种识别标签的方法,如图2所示,该方法包括:
201,NFC控制器向主控制器发送格式功能消息,该格式功能消息携带有NFC控制器是否具有对标签进行NDEF的检测的能力信息。
可选的,NFC控制器向主控制器发送格式功能消息有下述两种方式。
方式一:主控制器向NFC控制器发送初始化命令。在NFC控制器接收该初始化命令之后,向主控制器发送初始化回复。即格式功能消息具体为该初始化回复。其中,初始化命令用于初始化NFC控制器。例如,主控制器向NFC控制器发送CORE_INIT_CMD(初始化命令),即主控制器对NFC控制器进行初始化;然后NFC控制器在接收该CORE_INIT_CMD之后,向主控制器反馈CORE_INIT_RSP(初始化回复)。在该CORE_INIT_RSP回复中,当支持射频发现接口Supported RF Interface字段里面包含0x04 NDEF Access RF Interface,则表示该NFC控制器具备NDEF检测能力。
方式二:主控制器向NFC控制器发送格式询问命令。在NFC控制器接收该格式询问命令之后,向主控制器发送格式询问回复。即格式功能消息具体为该格式询问回复。例如,主控制器向NFC控制器发送FORMAT_INQ_CMD(格式询问命令),然后NFC控制器在接收该FORMAT_INQ_CMD之后,向主控制器反馈FORMAT_INQ_RSP(格式询问回复)。
当然,本实施例不限于上述举例的两种方式。NFC控制器也可以在向主控制器发送的一个消息中携带有NFC控制器是否具有对标签进行NDEF的检测的能力信息。
202,主控制器向NFC控制器发送配置命令,该配置命令用于指示NFC控制器是否对标签进行NDEF的检测。
例如,主控制器向NFC控制器发送CORE_SET_CONFIG_CMD命令,该CORE_SET_CONFIG_CMD命令包括格式参数。该格式参数的具体形式如表3所示。
表3
在表3中,各字段所表示的含义或取值举例如下:
Parameter 1表示格式参数,该格式参数为3个字节(3 Octets);
ID(标识)占用一个字节(1 Octet),0xA0表示格式参数的标识;
Len(长度)占用一个字节(1 Octet),1表示Val的长度为一个字节;
Val(值)占用一个字节(1 Octet),当Val取值为00000000时,表示该配置命令指示NFC控制器对标签不进行NDEF的检测,当Val取值为非0(如00000001)时,表示该配置命令指示NFC控制器对标签进行NDEF的检测。
需要说明的是,本实施例不限制Parameter 1占用的字节值,当Parameter 1中包括的ID、Len或者Val占用的字节发生改变时,Parameter 1占用的字节值也可以改变。
可选的,该配置命令还用于指示NFC控制器对标签进行数据类型的检测。当主控制器向NFC控制器发送的CORE_SET_CONFIG_CMD命令还用于指示NFC控制器对标签进行数据类型的检测时,该CORE_SET_CONFIG_CMD包括格式参数和数据类型参数,其中CORE_SET_CONFIG_CMD有两种表示方式,该具体形式如表4以及表5所示。
表4
该格式参数Parameter 1的详细说明可参考表3中的描述,在此不再一一赘述。
在表4中,各字段所表示的含义或取值举例如下:
Parameter 2表示数据类型参数,该数据类型参数为3个字节(3 Octets);
ID(标识)占用一个字节(1 Octet),0xA1表示数据类型参数的标识;
Len(长度)占用一个字节(1 Octet),1表示Val的长度为一个字节;
Val(值)占用一个字节(1 Octet),当Val取值X为0101 0000时,表示该配置命令指示NFC控制器对第二种和第四种数据类型进行检测。可以理解的是,标签的数据类型有8种,主控制器按照一定顺序排列8种数据类型,将Val取值的每一位对应一种数据类型。当X中某一位为1时,表示该位对应的数据类型需要进行检测,当该位为0时,表示该位对应的数据类型不需要检测。例如8种数据类型的从第1种到第8种的顺序依次为0x00、0x01、0x02、0x03、0x04、0x05、0x06、0x07,相对应的,第一位对应0x00,第二位对应0x01,第三位对应0x02,第四位对应0x03,依次类推,第八位对应0x07,则根据表4中配置命令的要求,NFC控制器对该标签的数据类型是否为0x01或者0x03这两种数据类型进行检测。
表5
在表5中,各字段所表示的含义或取值举例如下:
该格式参数Parameter 1的详细说明可参考表3中的描述,在此不再一一赘述。
Parameter 2表示数据类型参数,该数据类型参数为3个字节(3 Octets);
ID(标识)占用一个字节(1 Octet),0xA1表示数据类型参数的标识;
Len(长度)占用一个字节(1 Octet),1表示Val的长度为一个字节;
Val(值)占用一个字节(1 Octet),当Val取值为0000 0000时,表示该配置命令指示NFC控制器对标签不进行数据类型的检测,当Val取值为非0(如0000 0001)时,表示该配置命令指示NFC控制器对标签进行数据类型的检测。
在本步骤中,主控制器、NFC控制器以及NDEF的解释说明可参照图1中的步骤102。
203,NFC控制器向主控制器发送配置命令回复消息。
在NFC控制器接收主控制发送的配置命令之后,向主控制器发送配置命令回复消息,该配置命令回复消息可以为CORE_SET_CONFIG_RSP。
204,主控制器向NFC控制器发送开启射频发现命令。
主控制器在接收NFC控制器发送的该配置命令回复消息之后,向NFC控制器发送开启射频发现命令。或者,主控制器在发送该配置命令之后等待预定时间,开始向NFC控制器发送开启射频发现命令。例如,主控制器向NFC控制器发送RF_DIS_CMD(开启射频发现命令)。
本实施例不限制预定时间的范围。例如,当预设时间为200ms时,主控制器在向NFC控制器发送配置命令之后的200ms时,开始向NFC控制器发送开启射频发现命令。
205,NFC控制器向主控制器发送射频发现回复消息,并开启射频发现,读取标签的类型。
该射频发现回复消息包括NFC控制器已接收开启射频发现命令的通知信息。例如,NFC控制器向主控制器发送RF_DIS_RSP(射频发现回复消息)。
206,NFC控制器根据该标签的类型,确定该标签的格式是否为NDEF。
该NFC控制器确定标签的格式是否为NDEF的方式可参考图1中的步骤102,在此不再一一赘述。
207,当NFC控制器确定该标签的格式为NDEF时,确定标签的数据类型。
需要说明的是,本步骤为可选步骤,当配置命令中还包括指示NFC控制器检测标签的数据类型的信息时,NFC控制器才需要执行步骤207。故在图2中,以虚线框表示步骤207。
该NFC控制器确定标签的数据类型的方式仍可参考图1中的步骤102。
208,NFC控制器向主控制器发送通知消息。
关于通知消息的详细说明,可参考图1中的步骤103。
209,当该标签的格式为NDEF时,主控制器建立NDEF射频接口。
该NDEF射频接口为主控制器与NFC控制器之间的接口。NFC控制器将NFC控制器与标签(标签的格式为NDEF)之间进行传输的数据通过NDEF射频接口发送给主控制器,或者主控制器将发送给标签的数据先通过NDEF射频接口发送给NFC控制器,再由NFC控制器将该数据转发给标签。
具体的,主控制器向NFC控制器发送RF_DISCOVER_SELECT_CMD(射频发现选择命令),该RF_DISCOVER_SELECT_CMD包括主控制器已建立NDEF接口的信息。该RF_DISCOVER_SELECT_CMD具体形式图表6所示。
表6
在表6中,各字段所表示的含义或取值举例如下:
RF Discovery ID表示射频发现标识符,用于标识射频发现对应的标签;
XX表示该标签的标识符;
RF Protocol表示NFC控制器与标签之间的通信方式(如标签协议TagProtocol);
RF Interface表示主控制器与NFC控制器之间的接口(如NDEF射频接口NDEF RF Interface)。
在主控制器与NFC控制器之间建立NDEF射频接口之后,当NFC控制器接收主控制器发送的数据之后,NFC控制器可以将该数据转换成标签能够接收的格式数据。其中,该标签为NDEF射频接口对应的RF Discover ID标识的标签。
可以理解的是,在步骤201-步骤209中,NFC控制器与主控制器进行交互时,采用的接口可以为NFC控制接口(NFC controller Interface,NCI)。其中,NCI为主控制器与NFC控制器之间的逻辑接口,该NCI用于主控制器与NFC控制器之间进行各种命令的传输。
210,通过NDEF射频接口,主控制器向NFC控制器发送读写命令。
该读写命令用于获取标签中的数据,或者该读写命令用于更改标签中的数据。
211,NFC控制器将该读写命令转换成NDEF读写命令,然后根据NDEF读写命令,与标签进行数据读写。
不同类型的NFC标签接收的读写命令内容不同。例如,Type1接收的读写命令为Read,Type2接收的读写命令为R。NFC控制器通过NDEF射频接口,将主控制器发送的读写命令转换成不同类型的标签对应的NDEF读写命令。NDEF读写命令可以为NDEF读取命令,或者可以为NDEF写入命令。
例如:NFC控制器向标签发送NDEF读取命令,该NDEF读取命令指示NFC标签发送标签中的数据。NFC标签在接收NDEF读取命令之后,向NFC控制器发送标签中的数据。
212,NFC控制器向主控制器发送该标签中的数据。
213,主控制器将接收的标签中的数据发送给NFC应用。
需要说明的是,在步骤213之前,主控制器可以接收NFC应用发送的注册消息。具体的,NFC应用在安装后或者首次运行时,根据自身处理标签的数据类型的能力向主控制器进行注册。例如,一种支持NFC扫描的浏览器应用程序,可以向主控制器注册URI(0x03)这一数据类型。
当通知消息包括标签的格式为NDEF时,主控制器将标签中的数据发送给正在运行的应用。例如,正在运行的应用有支持NFC扫描的浏览器、支持NFC扫描的视频播放器、支持NFC扫描的相册。主控制器将标签的中数据发送给上述三种正在运行的应用,上述三种正在运行的应用根据实际情况(自身处理标签的数据类型的能力)来处理该标签。
当通知消息包括标签的格式为NDEF,以及标签的数据类型时,主控制器将标签中的数据发送给数据类型对应的应用。例如,正在运动的应用有支持NFC扫描的浏览器、支持NFC扫描的视频播放器、支持NFC扫描的相册。标签的数据类型为URI(0x03),则主控制器根据标签的数据类型,将该标签中的数据发送给支持NFC扫描的浏览器。
本发明实施例提供的一种识别标签的方法,可以实现NFC终端中的主控制器通过NFC控制器确定标签格式以及标签的数据类型,主控制器在获得标签格式以及标签的数据类型之后,按照标签的数据类型将标签中的数据发送给标签的数据类型对应的应用进行处理,从而使得主控制器不必对标签的全部内容进行分析之后才能确定标签格式以及标签的数据类型;另外,主控制器建立的NDEF射频接口可以使主控制器与NFC控制器之间传输NFC标签的数据,从而达到标签能够被主控制器处理的目的。
在本发明实施例的实现方式中,为了清晰说明主控制器和NFC控制器之间的传输接口。如图3所示,在主控制器没有接收NFC控制器发送的通知消息之前(即主控制器没有建立NDEF射频接口之前),主控制器与NFC控制器之间通过NCI进行命令的传输;当主控制器接收NFC控制器发送的通知消息之后,主控制器建立了NDEF射频接口,主控制器与NFC控制器之间通过NDEF射频接口进行NDEF数据的传输。
如图4所示,本发明实施例提供一种识别标签的装置40,包括:读取模块401,确定模块402,发送模块403。该装置可以为NFC终端上的单元,如NFC控制器。
读取模块401,用于读取标签的类型;
确定模块402,用于根据标签的类型,确定标签的格式是否为NDEF,并将确定结果发送给发送模块403;
发送模块403,用于当确定模块402确定标签的格式为NDEF时,向主控制器发送通知消息,通知消息包括标签的格式为NDEF。
关于该通知消息的详细说明可参考图1中的步骤103。
进一步的,如图5所示,一种识别标签的装置50中,该识别标签的装置50还包括:接收模块404,转换模块405,处理模块406。
具体的,在读取模块401读取标签的类型之前,发送模块403向主控制器发送格式功能消息,格式功能消息携带有NFC控制器是否具有对标签进行NDEF的检测的能力信息。具体的,格式功能消息可以为初始化回复。例如,接收模块404接收主控制器发送的初始化命令;然后发送模块403向NFC控制器发送初始化回复,初始化回复携带有NFC控制器是否具有对标签进行NDEF的检测的能力信息。
当该初始化回复中携带有NFC控制器具有对标签进行NDEF的检测的能力信息时,接收模块404接收主控制器发送的配置命令,配置命令用于指示NFC控制器是否对标签进行NDEF的检测。可以理解的是,当该配置命令指示NFC控制器需要对标签进行NDEF的检测时,读取模块401读取标签的类型。
可选的,配置命令还用于指示NFC控制器对标签进行数据类型的检测。
进一步的,当标签的类型为Type 1时,确定模块402从标签中的HR0确定标签的格式是否为NDEF;当标签的类型为Type 2时,确定模块402从标签中的CC确定标签的格式是否为NDEF;当标签的类型为Type 3时,确定模块402从标签中的System Code确定标签的格式是否为NDEF;当标签的类型为Type 4时,确定模块402从标签中的CC文件的文件标识确定标签的格式是否为NDEF。
进一步的,在发送模块403向主控制器发送通知消息之后,接收模块404通过NDEF射频接口接收主控制器发送的读写命令,转换模块405将所述读写命令转换成NDEF读写命令;然后处理模块406根据所述NDEF读写命令,与所述标签进行数据读写。
本发明实施例提供的一种识别标签的装置,可以实现NFC终端中的主控制器通过NFC控制器确定标签格式以及标签的数据类型,主控制器在获得标签格式以及标签的数据类型之后,按照标签的数据类型将NFC标签中的数据发送给标签的数据类型对应的应用进行处理,从而使得主控制器不必对NFC标签的全部内容进行分析之后才能确定标签格式以及标签的数据类型。
如图6所示,本发明实施例提供一种识别标签的装置60,包括:NFC控制器601、主控制器602,NFC控制器601与主控制器602连接。
NFC控制器601,用于读取标签的类型;根据标签的类型,确定标签的格式是否为NFC数据交换格式NDEF;当NFC控制器601确定标签的格式为NDEF时,NFC控制器601向主控制器602发送通知消息,通知消息包括标签的格式为NDEF。
其中,当标签的类型为Type 1时,NFC控制器601从标签中的HR0确定标签的格式是否为NDEF;当标签的类型为Type 2时,NFC控制器601从标签中的CC确定标签的格式是否为NDEF;当标签的类型为Type 3时,NFC控制器601从标签中的System Code确定标签的格式是否为NDEF;当标签的类型为Type 4时,NFC控制器601从标签中的CC文件的文件标识确定标签的格式是否为NDEF。
关于该通知消息的详细说明可参考图1中的步骤103。
主控制器602,用于接收NFC控制器601发送的通知消息。
进一步的,NFC控制器601,还用于向主控制器602发送格式功能消息,格式功能消息携带有NFC控制器601是否具有对标签进行NDEF的检测的能力信息。具体的,该格式功能消息可以为初始化回复。例如,首先主控制器602向NFC控制器601发送初始化命令。NFC控制器601在接收主控制器602发送的初始化命令之后,向主控制器602发送初始化回复,初始化回复携带有NFC控制器是否具有对标签进行NDEF的检测的能力信息。
进一步的,主控制器602,还用于向NFC控制器发送配置命令,配置命令用于指示NFC控制器601是否对标签进行NDEF的检测。
NFC控制器601,还用于接收主控制器602发送的配置命令。
可选的,配置命令还用于指示NFC控制器601对标签进行数据类型的检测。
进一步的,主控制器602,还用于在接收NFC控制器601发送的通知消息之后,建立与NFC控制器601进行数据传输的NDEF射频接口。
进一步的,主控制器602,还用于通过NDEF射频接口向NFC控制器601发送读写命令。
NFC控制器601,还用于通过NDEF射频接口接收主控制器602发送的读写命令;将读写命令转换成NDEF读写命令;根据NDEF读写命令,与标签进行数据读写。
其中,图6所示的装置可以为NFC终端,该NFC终端可以为手机、平板电脑、相机等具有NFC功能的终端。
需要说明的是,图6所示装置60中,其各个模块的具体实施过程以及各个模块之间的信息交互等内容,由于与本发明方法实施例基于同一发明构思,可以参见方法实施例,在此不一一赘述。
本发明实施例提供的一种识别标签的装置,可以实现NFC终端中的主控制器通过NFC控制器确定标签格式以及标签的数据类型,主控制器在获得标签格式以及标签的数据类型之后,按照标签的数据类型将NFC标签中的数据发送给标签的数据类型对应的应用进行处理,从而使得主控制器不必对NFC标签的全部内容进行分析之后才能确定标签格式以及标签的数据类型。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。