欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > ST25DV04K NFC TAG 使用日志

ST25DV04K NFC TAG 使用日志

2025/9/10 19:06:13 来源:https://blog.csdn.net/qq_64346054/article/details/147931311  浏览:    关键词:ST25DV04K NFC TAG 使用日志

一. ST25DV04K简介

        ST25DV04K是由ST生产的动态NFC/RFID标签IC,具有4-Kbit EEPROM以及快速传输模式功能。支持IIC接口协议,供电电压1.8V到5.5V,支持IIC以及RF接口访问存储器。4Kbit存储器即512bytes,在IIC写入时必须以字为单位写入。

        IIC写入数据时,先写入器件地址,E2=0,访问存储器,RW=0,字节/顺序写入,一般配置为0xA6即可。再写入两字节的存储器地址高位与低位。然后顺序写入1字数据即可。

二. IIC时序

        写器件地址后,再写入两字节存储区地址,之后连续写入数据即可,IIC速率最快支持1Mhz

void IIC_Write_Nbyte(u16 address, u8 *sum, u16 num)	//连续写 n bytes
{IIC_Start();//User memory, Dynamic registers, FTM mailbox writingIIC_SendByte(0xA6);IIC_wait_ACK();//write data addressIIC_SendByte(address>>8);IIC_wait_ACK();IIC_SendByte(address);IIC_wait_ACK();//Write num bytes of data continuously for(u16 i = 0; i < num;i++){IIC_SendByte(sum[i]);IIC_wait_ACK();}IIC_Stop();
}

 三. NEDF数据格式

        若使用NFC标签写入URL网址,即可实现NFC碰一碰弹出网址功能,也可用于携带少量数据,比如温度数据等,例如:http://www.helloworld.?data=ABCDEFG....

如果写入的URL长度不超过256字节,则只需要1个pay load length,当超过256字节则需使用4个pay load lenght。

u8 url[48] = {0xE1, 0x40, 0x40, 0x00, 0x03, 0xFF, 0x01, 0xF8,     //Capability Container							0xC1, 0x01, 0x00, 0x00,	0x01, 0xF1, 0x55,           //NFC record header0x03, 0x6A, 0x60, 0x61, 0x2E, 0x6A, 0x69, 0x61, 0x6E, 0x7A,  //payload data0x68, 0x69, 0x31, 0x76, 0x2E, 0x63, 0x6F, 0x6D, 0x2E, 0x63,0x6E, 0x2F, 0x6E, 0x78, 0x63, 0x63, 0x2F, 0x23, 0x2F, 0x3F,0x21, 0x32, 0x00
};

 如上是超过256字节的ULR写法,由三部分组成:CC文件、NFC Record Header、Payload data。

1. CC文件

[0]:版本协议,如0xE1指示NFC Forum Type5      [1]:版本号以及访问控制

[2]:存储容量,如512bytes*8=0x40                       [3]:其他功能信息

[4]:固定为0x03,代表NDEF消息TLV                      [5]:数据大于256填0xFF

[6:7]:NFC Record Header + Payload Lenght 数据长度

2. NFC Record Header

[0]:配置寄存器     [1]:type lenght    [2:5]:PayLoad Length     [6]:Record Type

3. Pay Load Data

[0]:ID,如0x01指示http://www.      [1: ...]:数据

四. 单片机写入

        写入数据必须4字节对齐,存储器块大小为4字节,例如清除存储器数据:

void ST25_Clear()	//清除存储区
{u8 buffer[4]={0};for(u16 i=0;i<128;i++){IIC_Write_Nbyte(i*4, buffer, 4);delay(50);  //stop后必需延时启动下一次写操作}
}

若不明白URL数据小于256与大于256后数据头具体格式如何,可以利用手机软件NFC标签助手实际写入一段URL,然后读出全部数据,参考其数据头格式更改即可

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词