儿子百天,发贴庆祝——分享NFC蓝牙配对标签数据格式
本帖最后由 rf_smart 于 2014-5-21 20:01 编辑儿子百天了,小家伙很健康,祝福他幸福快乐的成长!
NFC蓝牙配对标签,用于简化蓝牙配对过程,当带NFC功能的设备触碰到标签时,可以读取到内部的数据,触发设备打开蓝牙(安卓设备支持,WP8需要先打开蓝牙)。
NFC标签,这里指的是TYPE 2 TAG,即T2T标签,其实就是一张大容量mifare ul卡,但对多种设备兼容性比mifare ul卡好。T2T标签内部存储结构如下:
其中0-2 block包含的是卡号和block锁定控制位,03block是功能定义部分,对于T2T标签这部分有固定定义,对标签的格式化主要也是对这个区域写入特定值,对于NTAG203
这种标准的T2T标签,这部分不用设置,NTAG203的CC部分定义如下:
其中E1h是由NFC论坛定义的数值,表示下面的数据是由NFC论坛定义的数据,10h是版本号,12h表示容量,容量真实值是12h*8字节,00h是表示读写权限,00h表示无保护。
下面是重点,即数据保存的格式。NFC标签首先存储的格式不是NDEF格式,而是T(Type)L(Length)V(Value)格式,NDEF格式是TLV格式内的V部分,对于NTAG203类标准标签
默认已经有一个LOCK TLV数据格式(这个部分既是动态锁定位,与存储结构中定义的静态锁定字节相对应)和一个0字节NDEF数据格式,和一个TLV结束数据结构(0XFE)。
这个部分的数据格式可以直接擦除,即不使用动态锁定位,其实目前而言,标签没有要求锁定的。TLV数据格式,只要掌握NDEF的TLV数据格式就可以了,NDEF的TLV数据格式定义如下:
上图可以清晰的看到标签内的蓝牙配对数据格式,上面的TLV数据格式不用太详述,主要还是NDEF数据格式,NDEF数据格式由上图中的HEAD,TYPE_LENGTH,PAYLOAD_LENGTH,ID_LENGTH,TYPE,ID
及PAYLOAD组成,MB表示是否为NDEF消息的起始,ME表示是否为NDEF消息的结束,CF表示该消息还有后续数据,SR表示PAYLOAD_LENGTH是否为1字节,IL表示ID_LENGTH是否存在,TNF表示type
的类型。TNF定义如下:
对于NFC蓝牙配对标签,使用的是Media-type类型的NDEF数据格式。
TYPE_LENGTH即TYPE(application/vnd.bluetooth.ep.oob)的长度,这个定义是是蓝牙标签技术联盟定义为蓝牙配对的媒体类型,ID部分请参考上上图。下面是关键的东西了,即PAYLOAD也是蓝牙标准技术联盟
定义的蓝牙配对媒体类型中需要的OOB DATA.
OOB DATA内容由长度,蓝牙地址,及OOB可选数据组成。NFC设备在读取到标签后,最终实现连接是要拿到OOB里的蓝牙地址,蓝牙配对过程中,设备名是不需要的,而设备名即存储在OOB可选数据中。相应OOB
数据内容定义,请参考蓝牙标准。
以上就是完整的蓝牙配对标签数据格式的全部内容,对于标准的标签,如NTAG203,NTAG213可以完整的写入蓝牙地址及蓝牙设备名,但如果想用mifare ul卡做为标签,那只能写入蓝牙地址,没有空间写入蓝牙设备名。
最后,附上小作:
NFC蓝牙配对标签无线烧录
NFC呀,好东东,手机今后是必备的 skynet 发表于 2014-5-21 20:04
NFC呀,好东东,手机今后是必备的
NFC支付才是重点,可是个人玩不了啊,只能找这些不值钱的外围玩玩了。 祝楼主儿子健康! 只是感觉楼主的头像应该就是现实生活的写照吧?{:titter:} 恭喜!!!!!! 恭喜啊楼主{:lol:}{:lol:}{:lol:}{:lol:} 这个挺好的 rf_smart 发表于 2014-5-21 20:09
NFC支付才是重点,可是个人玩不了啊,只能找这些不值钱的外围玩玩了。
PBOC的 应用吧~ 这个真心不错 这个不错 学习一下 恭喜,恭喜! 相当有用! 收藏留着用 能用PN532模拟这个标签吗 楼主的头像真有意思 屏幕挺小巧的,请问是什么型号的屏幕? esdart 发表于 2014-11-24 20:51
能用PN532模拟这个标签吗
得模拟UL卡就可以。 小溪 发表于 2014-11-24 22:05
屏幕挺小巧的,请问是什么型号的屏幕?
淘宝JLX12864 留名,备用
页:
[1]