首页 > 其他分享 >NFC蓝牙配对标签数据格式

NFC蓝牙配对标签数据格式

时间:2023-07-12 18:15:51浏览次数:31  
标签:NFC 标签 蓝牙 NDEF 数据格式 配对

原文:https://www.amobbs.com/thread-5581854-1-1.html

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,标签,蓝牙,NDEF,数据格式,配对
From: https://www.cnblogs.com/bluestorm/p/17548439.html

相关文章

  • 适配器模式解决数据格式适配问题
    @RestController@RequestMapping("/ClientUserAssist/")publicclassClientUserAssistController{@AutowiredClientUserAssistMapperclientUserAssistMapper;/**子系统数据导入接口**/@Transactional(rollbackFor=Exception.class)@PostMa......
  • [STM32]STM32双机蓝牙串口通信
    [STM32]STM32双机蓝牙串口通信期末考完力,虽然GPA--,但也终于有空搓一搓32了蓝牙模块配置我们先配置蓝牙模块,需要主从兼容,配置过程可以参考这个博客:https://blog.csdn.net/m0_59113542/article/details/122028037?spm=1001.2014.3001.5506cubeMX配置然后就是MX里的配置。PS:两......
  • 数据格式化代码
    原数据形式 优化后 独立代码://数据格式化代码privateMap<String,Set<String>>convertSpecList(List<String>specList){Map<String,Set<String>>specMap=newHashMap<>();//TODO参数校验if(Collectio......
  • 蓝牙Mesh协议是一种专为广域物联网(IoT)应用设计的蓝牙通信协议。它允许多个设备之间建
    蓝牙Mesh协议是一种专为广域物联网(IoT)应用设计的蓝牙通信协议。它允许多个设备之间建立一个自组织的网络,形成一个能够覆盖较大范围的通信网络。蓝牙Mesh网络采用了网状拓扑结构,其中每个设备都可以与其他设备直接通信,从而实现设备之间的互连。这种网状结构有助于提供更广阔的覆盖......
  • 陆探一号L1A级数据格式说明
    陆探一号的数据已经分发一段时间,SARscape5.6也已经支持该数据的处理(基本处理、InSAR处理)。本文简单介绍下陆探一号L1A级SLC数据格式供大家参考,如有不对请批评指正。产品描述(1)文件格式图像产品采用GeoTIFF格式。(2)图像产品命名产品命名包含了描述产品状态的基本信息,包括卫星标......
  • CC2541是功率优化的真正系统级芯片(SoC)解决方案,适用于蓝牙低功耗(BLE)和专用的2.4GH
    CC2541是功率优化的真正系统级芯片(SoC)解决方案,适用于蓝牙低功耗(BLE)和专用的2.4GHz应用.该SOC芯片集成性能极好RF收发器以及标准工业级增强型8051内核,支持系统编程Flash,8KRAM及强大功能支持跟外设。微信号:13632658391 深圳市动能世纪科技有限公司成立于2000年,是一家IC集成......
  • 蓝牙UUID速查
    ServiceDiscoveryServerServiceClassID_UUID='{00001000-0000-1000-8000-00805F9B34FB}'BrowseGroupDescriptorServiceClassID_UUID='{00001001-0000-1000-8000-00805F9B34FB}'PublicBrowseGroupServiceClass_UUID='{00001002-0000-1000-800......
  • Windows Bluetooth Driver(Windows 蓝牙驱动程序)是一种用于在 Windows 操作系统上管理
    WindowsBluetoothDriver(Windows蓝牙驱动程序)是一种用于在Windows操作系统上管理和控制蓝牙设备的软件程序。它提供了与蓝牙硬件通信的接口,允许用户连接、配对和使用蓝牙设备,如键盘、鼠标、耳机、音箱等。Windows默认提供了内置的蓝牙驱动程序,可以通过操作系统自动更新或从......
  • 车规级耐高温BLE5.2协议串口转蓝牙模块E104-BT53C3产品简介
    蓝牙耐高温车规级BLE5.2蓝牙协议串口转蓝牙模块E104-BT53C3新品即将上架:蓝牙模块通信接口:UART串口通信蓝牙模块工作频率:2402~2480MHz车规级蓝牙模块蓝牙协议:BLE 5.2通信距离:170m天线接口:PCB产品尺寸:23*16mm产品简介:E104-BT53C3耐高温车规级蓝牙模块是一款基于蓝牙协议5.2版本的串......
  • SMBIOS(System Management BIOS)是一种在计算机系统中提供硬件信息的规范,定义了一组结构
    SMBIOS(SystemManagementBIOS)是一种在计算机系统中提供硬件信息的规范,定义了一组结构化的数据格式,用于描述计算机系统的硬件配置。SMBIOS版本即指SMBIOS规范的版本号。SMBIOS规范由DMI(DesktopManagementInterface)工作组制定,旨在通过标准化的方式获取和展示系统硬件信息,以便操......