作品简介:
开发背景:
人们对智能建筑的门禁系统要求它不仅可应用于智能大厦或智能社区的门禁控制。而基于射频识别的门禁系统针对集成应用给出了可行方案,具有重要的意义。保证建筑内部的安全性,满足用户当时的各种需求,智能门禁系统应运而生。
B.结构说明:
系统中模块分别为:数据采集模块、数据处理模块、数据存储模块、显示模块、串口发送/接收模块、密码输入模块、报警机制模块。
功能与使用说明
数据采集模块:读卡器读取卡序列号。
数据处理模块:针对采集到的数据处理对得到的数据进行判断有效性。
数据存储模块:存储数据。
显示模块:对数据进行操作,得到显示信息。
串口通信模块:通过串口发送和接收数据。
密码输入模块:用按键输入密码,判断进行相应的操作。
报警机制模块:出现非法卡或输入的密码不正确时产生报警。
D.作品特色:
设计的系统采用了MFRC522模块,当卡进入到模块的识别范围时,主动识别对应的卡号,并做出相应的操作。在Dephile软件中,建立一个数据库用来存储用户信息。用MAX232CPE芯片完成上、下位机之间的通信。系统与北斗定位模块UM220模块连接,当持卡人连续多次输入密码错误的时,报警模块连续发出报警,在发出报警之后,连接在门禁终端的北斗定位信号就会发出定位指令,传输到和持卡人信息存储在一起的数据库中,通过系统记录在持卡人信息中,并利用北斗卫星短报文功能,将卡的错误信息用手机短信的形式通知持卡人,以达到安全门禁的目的。
平台选型说明:
系统硬件设计主要由STC89C52芯片和MFRC522读卡器模块构成。
芯片负责MFRC522的初始化,上位机通过串口向MFRC522发送命令,MFRC522根据上位机发送的命令做相应的操作,将得到的信息传送给芯片,然后芯片控制其它模块完成门控操作。上位机与下位机之间通过串口进行通信,采用MAX232芯片并将芯片的输入和输出管脚连接到芯片。读卡器模块MFRC522与芯片之间是通过I2C总线通信的。本系统应用是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。芯片使用MCS-51内核。在单芯片上,拥有8 位CPU 和在系统可编程Flash。
设计说明:
系统中选择如下的元件:主控芯片:AT89C52。读卡器:RFMC522。E2PROM:AT24C04。LCD液晶:NOKIA5110。串口通讯芯片:MAX232。报警器:1个蜂鸣器加一个LED红灯。门控器件:一个LED绿灯。按键器件:四个独立按键。
A.MFRC522原理
RFID基本工作原理是RFID卡进入读写器的射频场后,由其天线获得的感应电流经升压电路作为芯片的电源,同时将带信息的感应电流通过射频前端电路检得数字信号送入逻辑控制电路进行信息处理,所需回复的信息则从存储器中获取经由逻辑控制电路送回射频前端电路,最后通过天线发回给读写器。一方面,无源的RFID卡芯片启动电路工作需要通过天线在读写器天线产生的电磁场中获得足够的能量;另一方面,天线决定了RFID卡与读写器之间的通讯信道和通讯方式。
a、射频识别系统典型结构
图3-1为RFID系统的工作过程,这是一个无源系统。数据解调部分从接收到的射频脉冲中解调命令和数据并送到逻辑控制部分。逻辑控制部分接收指令完成存储、发送数据或其它操作。读写模块接收到返回的数据后,解码并进行错误校验来决定数据的有效性,然后进行处理。
MFRC522利用了调制和解调概念,完全集成了在13.56MHz 下所有类型的被动非接触式通信方式和协议。支持ISO14443A的多层应用。接收器部分提供一个坚固而有效的解调和解码电路,用于处理 ISO14443A 兼容的应答器信号。数字部分处理 ISO14443A 帧和错误检测。
工作过程
对卡的操作分成四步:寻卡→防冲突→选卡→读/写卡;MFRC522发送与接收卡数据暂存于FIFO中;
1、寻卡
向FIFO中写入PICC_REQIDL命令,通过PCD_TRANSCEIVE命令将FIFO中数据通过天线发送出去,此时若有卡在天线作用范围内,将识别命令,并返回卡类型;
卡类型(TagType):
0x4400 = Mifare_UltraLight
0x0400 = Mifare_One(S50)
0x0200 = Mifare_One(S70)
0x0800 = Mifare_Pro(X)
0x4403 = Mifare_DESFire
2、防冲突
向FIFO中写入PICC_ANTICOLL+0x20,通过PCD_TRANSCEIVE命令将FIFO中数据通过天线发送出去,卡返回卡序列号;由于是非接触式的,同一时间天线作用范围内可能不只一张卡时,即有多于一张的MIFARE 1卡发回了卡序列号应答,则发生了冲突。
3、选卡
向FIFO中写入PICC_SElECTTAG+0x70+卡序列号,通过PCD_TRANSCEIVE命令将FIFO中数据通过天线发送出去,卡返回卡容量(对于MIFARE 1卡来说,可能为88H或08H);
对卡EEPROM读写之前要进行认证:
status = MFRC522_Auth(PICC_AUTHENT1A, blockAddr, sectorKeyA[blockAddr/4], serNum); //认证
向FIFO中写入PICC_AUTHENT1A/PICC_AUTHENT1B+块地址+扇区密码+卡序列号,通过PCD_TRANSCEIVE命令将FIFO中数据通过天线发送出去
MIFARE 1 卡的密码认证方式:
(A) 环:MIFARE 1卡片向读写器发送一个随机数据RB。
(B) 环:读写器收到RB后向MIFARE 1卡片发送一个令牌数据TOKEN AB,其中包含了用读写器中存放的密码加密后的RB及读写器发出的一个随机数据RA。
(C) 环:MIFARE 1卡片收到TOKEN AB 后,用卡中的密码对TOKEN AB的加密的部分进行解密得到RB',并校验第一次由(A)环中MIFARE 1卡片发出去的随机数RB是否与(B)环中接收到的TOKEN AB中的RB'相一致;若读写器与卡中的密码及加密/解密算法一致,将会有RB=RB',校验正确,否则将无法通过校验。
(D) 环:如果(C)环校验是正确的,则MIFARE 1卡片用卡中存放的密码对RA加密后发送令牌TOKEN BA给读写器。
(E) 环:读写器收到令牌TOKEN BA后,用读写器中存放的密码对令牌TOKEN BA中的RA(随机数)进行解密得到RA';并校验第一次由(B)环中读写器发出去的随机数RA是否与(D)环中接收到的TOKEN BA中的RA' 相一致;同样,若读写器与卡中的密码及加密/解密算法一致,将会有RA=RA',校验正确,否则将无法通过校验。
如果上述的每一个环都为“真”,且都能正确通过验证,则整个的认证过程将成功。读写器将允许对认证通过的卡片上的这个扇区进入读/写操作。
4、写数据
uchar Xdata writeData[16]={1,2,3,4,0};
blockAddr=1;//数据块
//写数据
Status=MFRC522_Write(blockAddr,writeData);
向FIFO中写入PICC_WRITE+块地址,通过PCD_TRANSCEIVE命令将FIFO中数据通过天线发送出去。
要注意写块3数据,因为块3包含了所在扇区在密钥及访问条件,如果操作不当,将导致扇区无法正常使用。
5、读数据
blockAddr=1;//数据块
//读数据
status=MFRC522_Read(blockAddr,str);
if(status=MI_OK)
{
for(i=0;i<16;i++)
{UART1_SendoneChar(str[i]);}
}
向FIFO中写入PICC_READ+块地址,通过PCD_TRANSCEIVE命令将FIFO中数据通过天线发送出去。
B.NOKIA5110显示模块
1) Nokia5110可以显示15个汉字,30个字符。
2)接口简单,仅四根I/O线即可驱动
3)速度快,是LCD12864的20倍,是LCD1602的40倍。
4)Nokia5110工作电压3.3V,正常显示时工作电流200uA以下,具有掉电模式。
串口通讯电路设计
单片机与上位机的数据通信是通过串行口进行通信的,由于上位机是RS-232电平,单片机使用的是COMS/TTL电平,计算机与单片机接口必须进行RS-232电平和COMS/TTL电平的转换。
RS-232的逻辑电平与公共地址对称,其逻辑0电平规定在+3~+25V之间,逻辑1电平则在-3~-25V之间,因而它需要使用正负极性的双电源。
进行电平转换的芯片就是MAXIM的MAX232芯片,其内部电荷泵电路先将+5V提升到+10V,然后再用电压反转电路将+10V变成-10V,得到RS-232所需的±10V的电压。
本系统中,通过单片机的10引脚P3.0(RXD)、11引脚P3.1(TXD)与电平转换芯片MAX232的9引脚(R2OUT)、10引脚(T2IN)相连接,MAX232的7引脚(T2OUT)、8引脚(R2IN)与9针D型插座2(RXD)引脚、3(TXD)引脚相连,MAX232的5引脚接地。
所使用的器件有:MAX232芯片一块、C4、C5、C6、C7、C8为10µF电解电容,一个9针D型插座。
D. 报警电路设计
在系统中,需要用到报警电路,当出现非法卡或输入的密码不正确时,就会进行报警。采用蜂鸣器和LED灯(红)作为报警电路的主要器件,将蜂鸣器的正端连接到+5V电源上,负端连接到三级管的发射极,集电极连接到地端,基极连接到1k电阻的一端另一端连接到单片机的26引脚上。当给0时蜂鸣器响,当给1时蜂鸣器不响。将LED(红)灯的正端通过300Ω的电阻连接到+5V电源上,负端连接到单片机的17引脚上。当给17引脚送0时,LED(红)灯亮,送1时LED(红)灯灭。在本系统中,三级管起到开关的。
门控电路设计
在系统的门控电路用LED(绿)灯模拟,当进入到读卡器读卡范围的RFID卡为有效卡时,LED(绿)灯亮,且LCD液晶显示正确信息;当RFID卡为非法卡时,报警并且LCD液晶显示错误信息。将LED(绿)灯的正端通过300Ω电阻连接到+5V电源上,负端连接到单片机的16引脚上。当给16引脚送0时,LED(绿)灯亮,送1时,LED(绿)灯灭。
键盘电路设计
在系统中为了防止出现用户未带RFID卡而导致进不去门,设计了密码。在本设计中,密码与读卡器是“或”的关系,若用户未带RFID卡也可通过输入密码进入。
在系统中需要用到4个按键,将4个按键组合在一起形成一个键盘。为了减少I/O口的占用,采用矩阵式键盘设计。
G.串行E2PROM存储电路设计
在系统中采用AT24C04作为存储设备,AT24C04是ATMEL公司生产的4k位串行CMOS E2PROM,内部含有512个8位字节,AT24C04有一个16字节页写缓冲器,该器件通过I2C总线接口进行操作,有一个专门的写保护功能。
采用AT24C04作为存储器件,用来存储从读卡器读取过来的RFID卡序列号。
AT24C04的特性:1、与400kHz I2C总线兼容;2、1.8--6.0伏工作电压范围;3、低功耗CMOS技术;4、写保护功能:当WP为高电平时进入写保护状态页写缓冲器;5、自定时擦写周期
AT24C04的功能:AT24C04支持I2C总线数据传送协议,主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过地址输入端A0、A1和A2可以实现将最多4个AT24C04器件连接到总线上。由于AT24C04也是通过I2C总线进行数据的传输,因此需要一个器件地址,AT24C04器件地址的高四位为固定的1010,低三位由A0、A1和A2预置,最后一位由读/写信号得到,1为读,0为写。
上位机程序流程图
图3-10 上位机程序流程图
在本系统中,上位机主要完成管理人员登录、向下位机发送命令、接收下位机返回数据、判断数据有效性和显示用户信息。
I. 北斗模块(UM220模块)
a)主要特性
通道
192通道Nebulas芯片
定位精度(RMS)
3m三维
频率
BD2 B1
速度精度(RMS)
0.1m/s
GPS L1
1PPS*
20ns
定位模式
单系统独立定位
数据更新率
Hz(默认1HZ可升级更高频率)
多系统联合定位
数据输出
默认出厂NMEA 0183 (可定制)
首次定位时间
冷启动: 35s
热启动: 1s
重捕获: <1s
技术优点
尺寸小(仅40 x 30 x 4mm)、重量轻
超低功耗(仅350mW)82618398
单芯片支持BD2/GPS功能,无需外接CPU即可直接输出NMEA数据
多路径抑制技术
支持单系统独立定位和多系统联合定位
支持UART,SPI,1PPS,I2C等多种接口
最后来实现UM220模块的设计,以及程序编写。UM220模块体积很小,集成较为容易。