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字数据即可。

ST25DV04K NFC TAG 使用日志_第1张图片

二. IIC时序

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

void IIC_Write_Nbyte(u16 address, u8 *sum, u16 num)	//连续写 n bytes
{
	IIC_Start();
	//User memory, Dynamic registers, FTM mailbox writing
	IIC_SendByte(0xA6);
	IIC_wait_ACK();
	//write data address
	IIC_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。

ST25DV04K NFC TAG 使用日志_第2张图片

u8 url[48] = {
	0xE1, 0x40, 0x40, 0x00, 0x03, 0xFF, 0x01, 0xF8,     //Capability Container							
	0xC1, 0x01, 0x00, 0x00,	0x01, 0xF1, 0x55,           //NFC record header
	0x03, 0x6A, 0x60, 0x61, 0x2E, 0x6A, 0x69, 0x61, 0x6E, 0x7A,  //payload data
    0x68, 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,然后读出全部数据,参考其数据头格式更改即可

你可能感兴趣的:(单片机,NFC标签,URL)