基于RFID应用的通用型控制器设计
扫描二维码
随时随地手机看文章
摘要:文章以门禁控制为例,介绍一款基于RFID应用的通用型控制器的设计原理,并给出了利用Proteus软件进行仿真调试的方法。该控制器由RFID卡、天线、读卡模块、单片机、LCD1602显示器等组成,采用AT89SXX系列单片机作为控制芯片,采用EEPROM保存卡号,不怕掉电。采用125kHz射频读卡模块,读卡模块工作方式为主动方式,当RFID卡靠近读卡模块时,卡号连续以串行方式输出,经串口送入单片机或PC机进行处理。可用于公共场所的门禁管理,具有成本低、性能可靠、通用性好、用途广泛等优点,在此电路基础上进行简单应用功能扩展,便能满足各种场合用户的需求。
关键词:RFID;单片机;通用型;控制器
0 引言
RFID卡应用系统由RFID卡、读卡器、控制器等组成,读卡器将载波信号经天线向外发射,当RFID卡进入读卡器的工作区域后,卡中的电感线圈和电容组成的谐振回路接收读卡器发射的载波信号,卡中芯片的射频接口模块由此信号产生出电源电压、复位信号及系统时钟,使芯片“激活”,芯片读取存储器中的数据,经过调相编码后调制在载波上,经卡内天线回送给读卡器,读卡器对接收到的信号进行解调、解码后送至控制器或计算机,对卡号的合法性进行鉴别,并做出相应的处理和控制。
1 系统设计
控制器由RFID卡、天线、读卡模块、单片机、只读储存器、液晶显示器等组成,系统结构框图如图1所示。控制器采用高性价比的AT89S 51单片机作为控制芯片,显示器件采用LCD1602液晶显示器显示相关操作信息,采用AT24WC02作为只读储存器,存储容量为2kbit,通过I2C总线接口进行操作,具有写保护功能,用于储存RFID卡号,掉电不消失。
读卡模块采用125kHz射频读卡模块(型号为M106BXN),其电源为5V±10%,读卡电流为29mA,读写距离为6~16cm,适用于PC机或8位UART的单片机,波特率9600、19200可选,射频读卡模块可工作于主动方式和被动方式,在主动方式下,当RFID卡靠近模块时,卡号连续从串口输出;在被动方式下,当有RFID卡靠近模块,同时模块的CLK端为下降沿时,串口才输出卡号。本设计采用11.05926MHz晶体,波特率为19200的读卡模块,工作方式为主动方式,读卡模块引脚功能如表1所示。
串口通信采用的帧数据格式为1个起始位,8个数据位,无奇偶校验位,1个停止位。读卡模块输出数据共有5个字节数据,高位在前,低位在后,其中前面4个字节为卡号,最后1个字节为效验码。例如:卡号为01FAB401,则读卡模块输出为0X01 0XFA0XB4 0X01 0X41,其中效验码0X41由前面4个字节卡号进行异或计算得到,即0X01^0XFA^0XB4^0X01=0X41。
2 单片机资源分配
单片机引脚功能分配如表2所示。
3 电路工作原理
控制器仿真电路原理图,如图2所示,工作原理如下:
当按下K按键(用于记录卡号)并开机,进入记录状态,这时将RFID卡靠近读卡器,卡号被读出并送入单片机,单片机将卡号写入EEPROM,关机再开机,进入正常工作状态。
在正常工作状态下,当有RFID卡靠近读卡模块时,RFID卡从读卡模块的天线获得能量并开始工作,卡号以串行方式发送给单片机,单片机接收到卡号后,将其与预先写入EEPROM的卡号进行比较,如果两个卡号相同,视为卡号有效,则输出开锁信号,显示器显示“come in please!”;如果两个卡号不相同,视为卡号无效,显示器显示“error!”。
4 程序流程图
5 调试与仿真
5.1 LCD1602仿真电路
LCD1602仿真电路原理图如图4所示。编写一段LCD测试程序在1602的第1行显示一个字符串“Hello!”用于测试LCD显示是否正常,运行仿真后,液晶显示器显示“Hello!”,说明测试成功。
5.2 EEPROM读写仿真电路
EEPROM读写仿真电路原理图如图5所示。编写一个EEPROM测试程序,用于测试EEPROM读写功能是否正常,运行仿真后,液晶显示器第1行显示“Hello!”,第2行显示“EEPROM test pass”说明测试成功。
5.3 串口通信仿真程序
编写一个串口通信仿真程序,用于测试串口通信是否正常。串口通信参数设置,如图6所示。运行串口通信仿真程序后,从PC机键盘输入“1 2 3 4 5 67 8 9 a b c d”,在仿真终端窗口显示相应的字符,如图7所示,表明串口通信成功。
6 结论
本控制器软件、硬件均通过调试并获得成功,达到设计要求,适用单卡单用户的应用场合,比如可用于宾馆客房、住宅小区单元出入口门禁控制,也可以用作考勤、电子车票、商品电子标签,还可以用于超市、游泳馆、健身中心、体育馆等公共场所作为门锁控制,本控制器具有成本低、性能可靠、通用性好、用途广泛等优点,在此电路基础上进行简单的应用功能扩展,便能满足各种场合用户的需求,比如只要适当选择EEPROM的容量,简单修改程序,就可以将单卡单用户扩充为多卡多用户,用户量取决于EEPROM的存储容量。