您好,欢迎来到榕意旅游网。
搜索
您的当前位置:首页基于STM32单片机的智能RFID刷卡汽车位锁桩方案原理图程序设计

基于STM32单片机的智能RFID刷卡汽车位锁桩方案原理图程序设计

来源:榕意旅游网

硬件电路的设计

链接:
提取码:c0yf

3.1系统的功能分析及体系结构设计
3.1.1系统功能分析
本设计由STM32F103C8T6单片机核心板电路+LCD1602液晶显示电路+RFID模块电路+按键电路+继电器电路组成。
1、继电器模拟车位入口锁开关(类似车位前车桩),正常情况下闭合不允许其他车辆驶入,如果刷卡成功继电器断开,车辆驶入。
2、车辆驶入后,通过按键再次打开继电器,打开车桩,即将车锁在车位处。
3.1.2系统总体结构
本系统具体框图如下图所示:

MFRC-522RFID射频模块电路设计
本系统选择MFRC-522射频模块进行刷卡操作。MF RC522是应用于13.56MHz非接触式通信中高集成度的读写卡芯片,是NXP公司针对“三表”应用推出的一款低电压、低成本、体积小的非接触式读写卡芯片,是智能仪表和便携式手持设备研发的较好选择。MF RC522利用了先进的调制和解调概念,完全集成了在13.56MHz下所有类型的被动非接触式通信方式和协议。支持14443A兼容应答器信号。数字部分处理ISO14443A帧和错误检测。此外,还支持快速CRYPTO1加密算法,用语验证MIFARE系列产品。MFRC522支持MIFARE系列更高速的非接触式通信,双向数据传输速率高达424kbit/s。作为13.56MHz高集成度读写卡系列芯片家族的新成员,MF RC522与MF RC500和MF RC530有不少相似之处,同时也具备许多特点和差异。它与主机间通信采用SPI模式,有利于减少连线,缩小PCB板体积,降低成本。MF522-AN模块采用Philips MFRC522原装芯片设计读卡电路,使用方便,成本低廉,适用于设备开发、读卡器开发等高级应用的用户、需要进行射频卡终端设计/生产的用户。本模块可直接装入各种读卡器模具。模块采用电压为3.3V,通过SPI接口简单的几条线就可以直接与用户任何CPU主板相连接通信,可以保证模块稳定可靠的工作、读卡距离远;
一、电气参数简介
(1)工作电流:13—26mA/直流3.3V
(2)空闲电流:10-13mA/直流3.3V
(3)休眠电流:<80uA
(4)峰值电流:<30mA
(5)工作频率:13.56MHz
(6)支持的卡类型:mifare1 S50、mifare1 S70、mifare UltraLight、mifare Pro、mifare Desfire
(7)环境工作温度:摄氏-20—80度
(8)环境储存温度:摄氏-40—85度
(9)环境相对湿度:
(10)相对湿度5%—95%
二、模块接口SPI参数
(1)数据传输速率:最大10Mbit/s
三、模块主要指标
(1)容量为8K位EEPROM
(2)分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位
(3)每个扇区有的一组密码及访问控制
(4)每张卡有唯一序列号,为32位
(5)具有防冲突机制,支持多卡操作
(6)无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
(7)数据保存期为10年,可改写10万次,读无限次
(8)工作温度:-20℃~50℃(湿度为90%)
(9)工作频率:13.56MHZ
(10)通信速率:106 KBPS
(11)读写距离:10 cm以内(与读写器有关)
模块接口原理图如下图所示。

系统软件设计

#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include <stdio.h>
#include "timer.h"
#include "lcd1602.h"
#include "key.h"
#include "rc522.h"

/**************/
unsigned char idCard[4]={0x87,0x15,0xc9,0x73};		//有效卡号
/**************/

u8 rekey = 0;//按键防止重复
u8 i;
unsigned char UID[5];			//读取到的卡号
unsigned char Temp[4] ;

int main(void)
{ 	 
	delay_init();	    	 //延时函数初始化	  
	uart_init(9600);	 	//串口初始化为9600
  TIM3_Int_Init(499,7199);//50ms  	 
	LED_Init();		  		//初始化与LED连接的硬件接口
	KEY_Init();			//初始化按键
	
	relay1 = 0;  
	delay_ms(200);
	relay1 =1;
	
  Rc522IoInit();
  PcdReset();//复位RC522
  PcdAntennaOn();//开启天线发射 

	 while(1)
	{
		if(key1==0)		 //检测到按键按下
		{
			delay_ms(10);   //小抖动

				if(key1==0)    //检测是否按下
				{
					relay1 =1;	//打开继电器
			}
		}
    if(PcdRequest(0x52,Temp)==MI_OK)//读取到卡
    {
      if(PcdAnticoll(UID)==MI_OK)//卡号获取成功
      { 
				if((UID[0]==idCard[0])&&(UID[2]==idCard[2])&&(UID[3]==idCard[3]))//匹配卡号
				{
					relay1 =0;		//关闭继电器
				}		
				delay_ms(10);
      }
    }
						  
	}											    
}	

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务