基于单片机的射频卡读卡器设计
时间寄存器主要用来设置数字解码器的采样点,在对射频卡进行其他操作前,需先对时间寄存器进行初始化。卡机通信需在一定的时间内完成,若在规定的时间内读卡器检测不到应答信号,则认为无卡,具体通过TIME0定时器在规定的时间内检测SOF信号来实现。所以,首先要初始化TIME0定时器,并对TIME0开中断,将读命令串写入命令发送缓冲区,另外需要计算命令串的CRC验证码(循环验证码),接着存放命令串,最后调用发送模块将其一起发送。发送命令时钟由单片机控制,接收时钟由读卡器控制,因此在发送完命令串后接着要将时钟控制权交还给读卡器,定时器TIME0开始计时,检测射频卡发回的开始位信号,如果在规定时间内检测不到信号,定时器TIMER0便会发生溢出信号,CP U相应溢出中断,进入TIME0的中断服务子程序,将无卡标志位NOCARD置1,程序就会跳回,重新开始定时检测。当在计时范围内检测到SOF信号时,按照返回数据格式,接收数据标志(Flags)字节、安全状态字节等相应字节的数据,最后接收结束位EOF。若数据标志的最后一位为1,表明发送命令有误,射频卡会发送错误类型标识字节,否则射频卡会依次发送数据,调用接收模块,将接收的数据依次存放于接收缓冲区,用于对用户信息的核对。
在射频卡读/写控制程序中,命令发送模块和数据接收模块是射频卡读/写的关键所在。命令发送模块首先必须发出起始位SOF信号,然后发送具体的命令串。命令串的发送分为3部分:命令字发送;数据字发送;校验字节发送。命令字的发送必须是高位在先,而数据字发送则是低位在先,CRC校验码放在命令串最后,同命令串一起发送。命令串的传送通过移位实现,再通过DIN口逐位发送。在命令发送结束后,还要发送一个结束位EOF。接收模块在接收时必须先把时钟控制权交给读/写模块,接收时每次按位接收一个字节的内容,采样间隔为10μs,必须在规定的时间内完成接收工作,否则认为接收出错。程序通过定时器TIMER1实现计时,当计时到时IMER1发出溢出中断信号,CPU响应溢出中断,进入TIMER1中断服务子程序,将接收错误标志位VICCERROR置1,表示发生错误。程序在接收完一个字节的内容后判断VICCERROR的状态,如果发生错误,程序跳回,重新发送读命令。
3.2 液晶显示控制程序
LCD是通过P0口与P2口的P2.3,P2.4共同完成控制的。其中P0口作为数据口,P2.3,P2.4口作为控制口。首先通过P2.3口将REQ清零,准备向LCD写入数据,然后通过P2.4口读出LCD的BUSY口的状态。如果LCD为空闲状态,便可向LCD写入数据。向LCD写入数据需先将数据送到LCD数据线,然后给REQ一个上升沿,将数据线上的内容写入LCD。
3.3 键盘控制程序
键盘扫描通过P1口完成,先给第1列加低电平其余位皆为高电平,检查第1列是否有键按下,没有则检查第2列,再没有,检查第3列,第3列仍没有,返回重新检查第1列,依次循环检查。当有键按下时将键码存下,再重复检查若干次,实现去抖。最后通过查表得到有效键值返回。
3.4 辅助功能程序
射频卡读出的信息由2部分组成,首先是一串用户识别码,可在添加用户功能中向射频卡写入,其次就是一个字节的用户代号,设计用户代号主要是考虑用户挂失所用,在对用户信息验证时,先对用户代码验证,然后对用户识别码进行验证,其中任何一环节出现错误,则认为是非法用户,无法开启门锁。在具体设计上,“添加用户”主要通过向用户的新卡中写入合法的用户信息识别码来实现。此项功能属于用户的私人操作,在操作前必须经过密码验证,密码验证通过后,再由用户输入此卡对应的编号。挂失功能也是本文设计中的一个必备功能,它主要通过设置用户状态标志字来实现,在程序设计中给每一个用户分配一个字节的用户状态标志字,通过验证状态字来判断是处于正常状态还是挂失状态。同添加用户功能一样,该功能亦属于用户私人操作,也要经过密码验证。上述2项辅助功能都需经过密码验证,因此对密码的保密性、可更改性都提出了较高的要求,在本文设计中同样设置了“更改密码功能”,用户更改密码的前提是输入正确的用户密码,然后由用户连续两次输入格式和数据完全相同的密码,最后将新密码替换原先的旧密码。
4 结语
本文设计的射频卡读卡器是应工程实际需求而专门设计,采用单片机为主控器件,充分结合硬件、软件优势,采用低功耗、体积小、集成度高的元器件,减小了系统体积、重量、功耗,提高了编程灵活性。应用实践证明:该读卡器设计合理可行,具有工作可靠、操作方便、成本低廉、响应速度快、抗干扰能力强等优点。另外,该读卡器可以方便地与包括PC在内的串口设备连接,易于针对不同的的应用对象嵌入到其他各种射频识别应用系统中,拓展能力强,应用前景十分广阔。
- 基于FPGA的DSP设计方法(08-26)
- 电力电子装置控制系统的DSP设计方案(04-08)
- 基于DSP Builder的VGA接口设计(04-10)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- 基于DSP的嵌入式显微图像处理系统的设计(06-28)