RFID中高频读写器的开发
时间:11-07
来源:电子技术应用
点击:
每个数据位在SCLOCK的上升沿时发送。当SCLOCK的管脚保持高电平时,数据位的电平必须保持不变。命令模式有二种:普通模式和寄存器模式。表明 所采用的射频协议、调制方式及传输速率等是由命令序列中规定的还是由寄存器所设定的。普通模式指令包含所有参数,而寄存器模式不含这些参数,而是由预先写 入寄存器的数值决定,在该模式下,命令字节为1位,且该位为1。
15693-3 规定的请求格式如表1所示。
标志位(FLAG)用来指出将由VICC执行的行为以及相应的域存在与否,相当于从VICC到VCD的通信规则,如采用何种方式:单/双副载波频率和高 /低数据传输率等。比较上面两个请求命令格式,注意到S1和ES1在收发器命令中已经存在,这里只需把15693命令序列中的标志位、命令码、数据、 CRC等内容放入收发器命令的数据域中。序列S1、CMD、DATA、ES1会发送一个"SOF,数据,EOF"给电子标签,即从MCU至S6700,从 S6700至VICC两个请求过程,这两个通信过程不是同时刻发送的,S6700中存在FIFO缓冲器,并在DOUT中体现出来。传送的一些编码等信息会 从帧首中体现出来(可参考15693-2定义)。
3.2 响应结构
VICC响应的基本格式如表2所示。
起始位S2和结束位ES2:分别表示VICC响应数据的开始和结束。其波形如图所示。
4 程序设计流程
4.1 Inventory 及程序流程
Inventory 请求指令和响应结构分别如表3、表4所示,其中请求Flags设置为06,即选择16时隙(slot),不显示AFI域。 Inventory 命令代码为01,防冲撞算法参数为Mask length和Mask value。只进行16时隙时,Mask length设为 0。
命令流程是SOF/发送Inventory请求命令/EOF后进入slot 1, 以EOF切换到下一时隙直到slot 16为止。在一时隙中遇到有冲撞或是无标签响应时,切换到下一时隙。Inventory流程图如图所示。
4.2 底层驱动实现
从以上分析 ISO15693 的通信协议和时序可知,阅读器软件设计主要工作是按照 ISO15693 的通信格式及时序要求进行接口驱动程序的编 写。下面是底层驱动的实现方法,主要是写命令函数 Write_cmd(char cmd)、写数据函 数 Write_data(char data_buf)和读数据函数Read_data(char *cdata)。
void Write_cmd(char cmd)
{for (char Bitnum=8;Bitnum>0;Bitnum--)
{PB5=0; //DIN=0
if(cmd&0x80)
PB5=1; //DIN=1
PE5=1; //SCLOCK=1
PE5=0; //SCLOCK=0
cmd<<=1;
}}
void Write_data(char data_buf)
{while(PA1); //FIFO Manage
for (char Bitnum=8;Bitnum>0;Bitnum--)
{ while(PA1);
PB5=0; //DIN=0
if(Data_buf&0x01)
PB5=1; //DIN=1
PE5=1; //SCLOCK=1
PE5=0; //SCLOCK=0
Data_buf>>=1;
} }
void Read_data(char *cdata)
{char Readin;
for (char Bitnum=0;Bitnum<8;Bitnum++)
{ while(PE5==1); //等待SCLOCK=0
while(PE5==0); //等待SCLOCK=1
Readin>>=1;
if(PA1==1) //判断 DOUT=1?
Readin "=80; }
Cdata(bitnum)=Readin; }
本文主要介绍射频识别系统中读写模块的软硬件设计,其读写器模块通过PC机和串口通信软件测试,实现了识别与数据通信,能成功用Inventory命令 识别出电子标签的唯一序列号。通过进一步地改进硬件设计与优化软件编程,将会进一步提高读写距离、识别效率、防冲撞性能和稳定性。
15693-3 规定的请求格式如表1所示。
标志位(FLAG)用来指出将由VICC执行的行为以及相应的域存在与否,相当于从VICC到VCD的通信规则,如采用何种方式:单/双副载波频率和高 /低数据传输率等。比较上面两个请求命令格式,注意到S1和ES1在收发器命令中已经存在,这里只需把15693命令序列中的标志位、命令码、数据、 CRC等内容放入收发器命令的数据域中。序列S1、CMD、DATA、ES1会发送一个"SOF,数据,EOF"给电子标签,即从MCU至S6700,从 S6700至VICC两个请求过程,这两个通信过程不是同时刻发送的,S6700中存在FIFO缓冲器,并在DOUT中体现出来。传送的一些编码等信息会 从帧首中体现出来(可参考15693-2定义)。
3.2 响应结构
VICC响应的基本格式如表2所示。
起始位S2和结束位ES2:分别表示VICC响应数据的开始和结束。其波形如图所示。
4 程序设计流程
4.1 Inventory 及程序流程
Inventory 请求指令和响应结构分别如表3、表4所示,其中请求Flags设置为06,即选择16时隙(slot),不显示AFI域。 Inventory 命令代码为01,防冲撞算法参数为Mask length和Mask value。只进行16时隙时,Mask length设为 0。
命令流程是SOF/发送Inventory请求命令/EOF后进入slot 1, 以EOF切换到下一时隙直到slot 16为止。在一时隙中遇到有冲撞或是无标签响应时,切换到下一时隙。Inventory流程图如图所示。
4.2 底层驱动实现
从以上分析 ISO15693 的通信协议和时序可知,阅读器软件设计主要工作是按照 ISO15693 的通信格式及时序要求进行接口驱动程序的编 写。下面是底层驱动的实现方法,主要是写命令函数 Write_cmd(char cmd)、写数据函 数 Write_data(char data_buf)和读数据函数Read_data(char *cdata)。
void Write_cmd(char cmd)
{for (char Bitnum=8;Bitnum>0;Bitnum--)
{PB5=0; //DIN=0
if(cmd&0x80)
PB5=1; //DIN=1
PE5=1; //SCLOCK=1
PE5=0; //SCLOCK=0
cmd<<=1;
}}
void Write_data(char data_buf)
{while(PA1); //FIFO Manage
for (char Bitnum=8;Bitnum>0;Bitnum--)
{ while(PA1);
PB5=0; //DIN=0
if(Data_buf&0x01)
PB5=1; //DIN=1
PE5=1; //SCLOCK=1
PE5=0; //SCLOCK=0
Data_buf>>=1;
} }
void Read_data(char *cdata)
{char Readin;
for (char Bitnum=0;Bitnum<8;Bitnum++)
{ while(PE5==1); //等待SCLOCK=0
while(PE5==0); //等待SCLOCK=1
Readin>>=1;
if(PA1==1) //判断 DOUT=1?
Readin "=80; }
Cdata(bitnum)=Readin; }
本文主要介绍射频识别系统中读写模块的软硬件设计,其读写器模块通过PC机和串口通信软件测试,实现了识别与数据通信,能成功用Inventory命令 识别出电子标签的唯一序列号。通过进一步地改进硬件设计与优化软件编程,将会进一步提高读写距离、识别效率、防冲撞性能和稳定性。
- 赛普拉斯半导体CEO将RFID系统用在自家酿酒厂(11-18)
- 金属对RFID系统影响研究(12-01)
- RFID温度标签解决食品冷藏和加热问题(05-28)
- RFID 技术在矿灯管理中的应用(10-06)
- 基于FM 1702SL的射频读写器(01-25)
- 远距离RFID读写天线的研究(03-01)