基于FM1702的非接触式读写模块设计
引言


图2为FM1702SL与MCU的主要部分的接口电路。系统通过接收上位机的数据,并根据接收到的相关命令进行工作。另外。也可设定为自动寻卡方式,而无需上位机频繁发送寻卡指令,即当卡片进入到天线区后在ICC引脚上出现低电平告知上位机,上位机则通过寻卡指令直接读取卡片序列号。
5 软件设计[3]
读写器软件编程是采用标准C语言程序来实现对非接触式IC卡的一系列操作。主要有:LPC931单片机初始化、FM1702SL初始化、接收命令数据处理、IC卡读写、防冲突、密码验证以及对卡片block(数据块)操作程序等。
读写卡过程是一个较复杂的程序执行过程,其软件流程图如图3所示,读写卡过程需要执行一系列的操作指令,并需调用多个C51函数。如果采用自动寻卡方式,MCU需要每隔0.5秒自动寻卡一次,如果寻到卡,则ICC置1。
5.1 请求操作
当一张Mifare卡片处在读写模块天线的工作范围之内时.上位机通过发送命令来控制读写模块向卡片发出REQUEST all(或REQUEST std)命令。卡片的ATR将启动,并将卡片BlockO中的卡片类型(TagType)号(共2个字节)传送给读写模块。以建立卡片与读写模块的第一步通信联络。如果请求卡操作不成功,读写模块对卡片的其它操作将不会进行。
5.2 防冲突操作
如果有多张Mifare卡片处在卡片读写模块天线的工作范围之内时,读写模块将首先与每一张卡片进行通信。以取得每一张卡片的序列号。由于每一张 Mifare卡片都有其唯一的序列号,因此读写模块可根据卡片的序列号来保证一次只对一张卡操作。该操作得到的卡的返回值即为卡的序列号。
5.3 卡选择操作
完成了上述二个步骤之后,读卡模块必须对卡片进行选择操作。执行操作后,返回卡上的卡片序列号(UID)。
5.4 认证操作
经过上述三个步骤,在确认已经选择了一张卡片时。卡片读写模块在对卡进行读写操作之前。必须对卡片上已经设置的密码进行认证,如果匹配,才允许进一步的读写操作。
5.5 读写操作
对卡的最后操作包括卡片初始化卡值、读卡、写卡、增值、减值、存储等。
6 结束语
本文主要介绍了一种基于FM1702SL的射频识别读写模块的设计方法。此模块只需要上位机通过选定的UART或IIC接口来发送命令就可以完成对卡片的操作。经实际应用证明,该读写模块具有电路稳定、易嵌入到其他模块使用、功耗低等良好性能。能方便应用于各种不同的射频识别应用系统.如考勤系统、门禁系统、公交车收费系统.以及各种水、电、气表计费系统等,有十分广阔的应用前景。
评论