RFID防冲突读写装置及其控制方法
技术领域
本发明涉及RFID(射频识别)装置等。尤其涉及一种由数字计算机控制的遵循ISO/IEC 14443协议的非接触式IC卡的RFID防冲突读写装置及其控制方法。
背景技术
随着通信与计算机技术的发展,物联网技术与人们的生活、工作和娱乐变得越来越紧密。无线射频识别(RFID,Radio Frequency Identification)技术作为物联网标识环节中的关键技术,近年来也成为诸多专家和学者关注的热点方向。RFID是一种通过射频信号进行非接触式识别的自动识别技术,其基本原理是利用读写装置与电子标签之间的控件耦合,包括电感耦合或电磁耦合,或反射的传输特性来实现数据通信。
RFID***中,标签周围可能同时存在多个读写装置,这样,标签可能同时收到不同读写装置发送的命令,此时便产生读写装置之间的碰撞。但是由于读写装置具有很强的处理能力,而且这种碰撞的概率比较小,也容易解决,因此一般不把其作为关注热点。另外,一般情况下,同一个RFID***中的所有标签工作在同一频道,当读写装置的作用范围内存在多个标签,并在同一时刻可能有多个标签同时与读写装置进行通信,此时就会产生相互干扰,也就是标签发生了碰撞或冲突,使读写装置不能正确识别任何一个标签的信息。
目前在非接触式IC卡以及RFID的技术领域中,不仅公开了具备非接触式(无线)接口的装置,而且还公开了具备与RFID装置和主机(也称为主机CPU)相连接的接触式(有线)接口的装置(RFID装置搭载设备)。而这些装置存在读写装置无法排除冲突影响的固有缺陷。
发明内容
本发明的主要目的是提供一种遵循ISO/IEC 14443协议的非接触式IC卡的RFID防冲突读写装置及其控制方法,用以克服传统读写装置无法排除冲突影响的固有缺陷。
本发明的方案是通过这样实现的:一种RFID防冲突读写装置,该装置包括一个输入设备、两个输出设备、一个读写芯片、一个数字计算机,输入设备、输出设备、读写芯片均与数字计算机相连接,所述的输入设备为矩阵键盘,用于将要写入标签的数据输入给数字计算机;所述两个输出设备分别为LCD显示设备和UART通信设备,LCD显示设备用于显示RFID防冲突读写装置运行的流程和结果,UART通信设备用于将读取数据传递给下级设备或者接收下级设备传输给该装置的命令;所述读写芯片为遵循ISO/IEC 14443协议的读写芯片MFRC522,读写芯片基于BIT冲突检测协议的防冲突算法,读写芯片成功识别某个标签后才会进行下个标签的识别;所述的数字计算机存储有读写芯片BIT冲突检测协议、ISO/IEC14443协议定义的标签防冲突操作程序。
作为本发明RFID防冲突读写装置的进一步改进,所述的读写芯片接受数字计算机的指令和数据,并将指令和数据作用于相应的标签上或从标签上取得数据传给数字计算机;所述的数字计算机存储装置所需要的参数,并处理输入设备和读写芯片MFRC522提交的信息。
作为本发明RFID防冲突读写装置的进一步改进,所述数字计算机的标签操作方式为有限状态机,标签接收到读写装置的一个请求命令后,其状态就会对应于有限状态机中的某个状态,若标签响应命令成功或失败,直接跳转到相应状态进入下一步处理。
作为本发明RFID防冲突读写装置的进一步改进,所述数字计算机包括一个微处理器主控芯片,微处理器主控芯片存储标签防冲突操作程序、有限状态机操作方式、以及其他操作程序。
作为本发明的RFID防冲突读写装置的进一步改进,所述其他操作程序包括矩阵键盘扫描程序、UART数据通信程序、LCD刷新显示程序。
一种RFID防冲突读写装置的控制方法,首先开启读写装置后,数字计算机首先对读写芯片MFRC522、LCD显示装置、UART通信装置进行初始化,接着读写装置依次对进入其天线范围内的标签执行寻标签操作、防冲突操作、选择标签操作、读写标签操作、休眠标签操作。如果在整个流程中的某一个操作步骤执行失败,程序即刻返回重新执行该操作,直到这个操作执行成功为止。
作为本发明RFID防冲突读写装置的控制方法的进一步改进,所述的读写标签操作过程为:首先,程序判断选择标签操作后选定的标签是执行的读标签操作还是写标签操作,如果既不执行读标签操作也不执行写标签操作,就直接退出读写状态,等待接收休眠指令。
若执行读标签操作,读写装置会向选定的标签发送读标签指令,标签接收到该指令后就将指定地址空间的数据返回给读写装置,读写装置获取到标签返回的数据后将其显示在LCD显示装置上,并且通过UART通信设备将获取的数据发送给下级设备。当标签未能正确接收读写装置的读标签指令时,读写装置会重复发送该读标签指令,直到标签正确接收该指令并返回数据为止,在读标签操作完成后,标签等待接收休眠指令。
若执行写标签操作,程序判断数据输入缓冲区是否为空,若为空,则在LCD显示设备上输出警告信息,提示用户输入数据,若判断数据输入缓冲区是不为空,读写装置向选定的标签发送写标签指令,并将输入数据缓冲区的数据写入被选定标签相应的地址空间。当标签未能正确接收读写装置的写标签指令时,读写装置会重复发送该写标签指令,直到标签正确接收到该指令并将数据输入缓冲区的数据写入到标签相应的地址空间为止,在写标签操作完成后,标签等待接收休眠指令。
作为本发明RFID防冲突读写装置的控制方法的进一步改进,所述的防冲突操作为基于BIT冲突检测协议和ISO/IEC 14443协议。以遵循ISO/IEC 14443协议、BIT冲突检测协议的非接触式IC卡的防冲突读写装置的计算机控制***进行构思的,减少人工对标签各项操作的干预,提高标签的识别率。
作为本发明RFID防冲突读写装置及其控制方法的进一步解释,本发明装置及其控制方法应用于电子标签(即消费卡、IC卡)的读写识别,其读写识别范围在可控制在电子标签与读写装置距离为10cm以内。
本发明实现的技术原理是:当标签进入RFID防冲突读写装置的天线作用范围内时,标签进入掉电状态,标签在掉电状态进行复位操作后转变为空闲状态,处于空闲状态的标签等待读写装置的请求应答命令,如果标签响应请求应答命令成功代表着防冲突成功,并获取到了某张标签的ID,标签处于就绪状态。利用前面获取到的标签ID,阅读装置继续发送选择命令,被选择的标签随之进入激活状态,在该状态下,读写装置可以对标签读写等操作。对标签的操作结束后,阅读装置会向标签发送一个休眠指令,接收该命令的标签立即进入休眠状态,直到接收到读写装置发送的唤醒命令为止。
本发明具备以下良好效果:
(1)本发明当仅有一个标签出现在该读写装置的天线作用范围内的时候,该装置和传统读写装置一样,可以对该标签执行读写等操作。当有多于一个标签同时出现在该读写装置的天线作用范围内的时候,该装置会判断出冲突的发生,然后执行防冲突操作,最后依次完成对这些卡片的读写等操作而不是像传统读写装置那样向用户报告错误或仅仅对其中某个标签执行读写等操作。
(2)本发明是以遵循ISO/IEC 14443协议的非接触式IC卡的防冲突读写装置的计算机控制***进行构思的,从而减少了人工对标签各项操作的干预。程序对标签的操作使用了有限状态机,标签接收到读写装置的一个请求命令后,其状态就会对应于有限状态机中的某个状态,若标签响应命令成功或失败,会直接跳转到相应的状态进入下一步处理,提高处理标签的效率。
(3)本发明读写芯片基于BIT冲突检测协议的防冲突算法,读写装置在成功识别某个标签后才会进行下个标签的识别,因此识别率≥99%。
附图说明
图1.本发明RFID防冲突读写装置示意图。
图2.本发明装置中数字计算机微处理器主控芯片结构示意图。
图3.本发明RFID防冲突读写装置控制方法状态图。
图4.本发明RFID防冲突读写装置控制方法程序步骤示意图。
图5.本发明RFID防冲突读写装置读写标签流程示意图。
具体实施方式
以下结合实施例和附图描述本发明,这些描述并不是对本发明内容作进一步的限定。
实施例1 RFID防冲突读写装置
如图1所示,本发明RFID防冲突读写装置包括一个输入设备、两个输出设备、一个读写芯片、一个数字计算机,输入设备、输出设备、读写芯片均与数字计算机相连接。输入设备为矩阵键盘,用于将要写入标签的数据输入给数字计算机,两个输出设备分别为LCD显示设备和UART通信设备,LCD显示设备用于显示RFID防冲突读写装置运行的流程和结果,UART通信设备用于将读取数据传递给下级设备或者接收下级设备传输给该装置的命令。读写芯片为遵循ISO/IEC 14443协议的读写芯片MFRC522,读写芯片基于BIT冲突检测协议的防冲突算法,读写芯片成功识别某个标签后才会进行下个标签的识别。读写芯片接受数字计算机的指令和数据,并将指令和数据作用于相应的标签上或从标签上取得数据传给数字计算机。
数字计算机存储装置所需要的参数,并处理输入设备和读写芯片MFRC522提交的信息。数字计算机存储有读写芯片BIT冲突检测协议、ISO/IEC 14443协议定义的标签防冲突操作程序。数字计算机的标签操作方式为有限状态机,标签接收到读写装置的一个请求命令后,其状态就会对应于有限状态机中的某个状态,若标签响应命令成功或失败,直接跳转到相应状态进入下一步处理。数字计算机包括一个微处理器主控芯片,其结构如图2所示,微处理器主控芯片存储标签防冲突操作程序、有限状态机操作方式、以及其他操作程序。微处理器主控芯片包含一个集成电路的中央处理单元(CPU),例如为在单个LSI芯片上的MCS-51 8位并行处理单元。该CPU通过数据总线和地址总线将RAM、FLASH、I/O、EEPROM相连,并通过控制总线实现各个部件有序地工作,当将微处理器主控芯片与MFRC522芯片组合后,一旦有标签进入到MFRC522芯片的天线范围内,该装置就能依次操作所有的标签。
实施例中以遵循ISO/IEC 14443协议、BIT冲突检测协议的非接触式IC卡的防冲突读写装置的计算机控制***进行构思的,减少人工对标签各项操作的干预,程序对标签的操作使用了有限状态机,提高标签的识别率≥99%。本实施例装置可用于IC卡、消费卡的与装置距离10cm内,读取该卡标签。
实施例2 RFID防冲突读写装置控制方法
如图3 RFID防冲突读写装置控制方法状态图所示,当标签进入该装置的天线作用范围内的时候,此时标签处于掉电状态(POWER OFF state)。接着标签会进行一个复位操作后,其状态转变为空闲状态(IDLE State)。处于空闲状态(IDLE State)的标签等待读写器的请求应答命令(REQA Command),如果标签响应请求应答命令(REQA Command)成功的话代表着防冲突成功,并获取到了某张标签的ID,此时,标签处于就绪状态(READY State)。利用前面获取到的标签ID,阅读装置继续发送选择命令(SELECT Command),被选择的标签随之进入激活状态(ACTIVE State),在该状态下,读写装置可以对标签读写等操作(Application)。对标签的操作结束后,阅读装置会向标签发送一个休眠指令(HALTCommand),接收该命令的标签立即进入休眠状态,直到接收到读写装置发送的唤醒命令(WAKE-UP Command)命令为止。
基于图3装置状态图,如图4所示,完成本发明主要目的算法程序步骤,整个程序步骤都是通过执行存储在数字计算机Flash上的一系列相关指令完成的。当操作者开启该套***后,控制器首先对各个硬件模块进行初始化,包括:MFRC522读写芯片、LCD显示装置、UART串行通信装置。随后,读写装置依次对进入其天线范围内的标签执行寻标签、防冲突、选择标签、读写标签、休眠标签的操作。如果在整个流程中的某一个操作步骤执行失败,程序即刻返回重新执行该操作,直到这个操作执行成功为止。
如图5所示RFID防冲突读写装置读写标签流程示意图,读写标签读写标签操作过程为:首先,程序判断选择标签操作后选定的标签是执行的读标签操作还是写标签操作,如果既不执行读标签操作也不执行写标签操作,就直接退出读写状态,等待接收休眠指令。
若执行读标签操作,读写装置会向选定的标签发送读标签指令,标签接收到该指令后就将指定地址空间的数据返回给读写装置,读写装置获取到标签返回的数据后将其显示在LCD显示装置上,并且通过UART通信设备将获取的数据发送给下级设备。当标签未能正确接收读写装置的读标签指令时,读写装置会重复发送该读标签指令,直到标签正确接收该指令并返回数据为止,在读标签操作完成后,标签等待接收休眠指令。
若执行写标签操作,程序判断数据输入缓冲区是否为空,若为空,则在LCD显示设备上输出警告信息,提示用户输入数据,若判断数据输入缓冲区是不为空,读写装置向选定的标签发送写标签指令,并将输入数据缓冲区的数据写入被选定标签相应的地址空间。当标签未能正确接收读写装置的写标签指令时,读写装置会重复发送该写标签指令,直到标签正确接收到该指令并将数据输入缓冲区的数据写入到标签相应的地址空间为止,在写标签操作完成后,标签等待接收休眠指令。
本实施例中当仅有一个标签(IC卡、消费卡)出现在该读写装置的天线作用范围内的时候,该装置控制方法和传统读写装置一样,可以对该标签执行读写等操作。当有多于一个标签同时出现在该读写装置的天线作用范围内的时候,该装置会判断出冲突的发生,然后执行防冲突操作,最后依次完成对这些卡片的读写等操作而不是像传统读写装置那样向用户报告错误或仅仅对其中某个标签执行读写等操作。
本发明上述实施例方案仅是对本发明的说明而不能限制本发明,权利要求中指出了本发明装置构成特征、装置控制方法的流程的示意,而上述的说明并未指出本发明参数的范围,因此,在与本发明的权利要求书相当的含义和范围内的任何改变,都应当认为是包括在权利要求书的范围内。