找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10245|回复: 0
收起左侧

基于射频识别技术的门禁系统设计

[复制链接]
ID:304293 发表于 2018-4-9 16:20 | 显示全部楼层 |阅读模式



基于射频识别技术的门禁系统设计















作 者 姓 名 :
专 业、班 级:
学        号:
校内指导教师:
校外指导教师:
完 成 日 期 :



     黄河水利职业技术学院自动化工程系


摘    要
本文研究一种基于射频识别(RFID)技术的门禁系统。(1)研究了基于射频识别技术的门禁系统的总体设计,设计了射频IC读卡器的电路原理图。读卡器主要由射频天线、读卡模块、RS485通信接口及单片机控制系统组成,(2) 深入研究RFID 天线的EMC过滤器、接收电路以及天线匹配电路等构成并设计优化了天线耦合电路。(3)门禁终端通信采用RS485总线,同时结合门禁读卡器研究了RS485的网络拓扑结构,通过RS485接口与PC机组成通信网络系统。(4)设计单片机的包看门狗、液晶显示、数据存储和实时时钟等在内的外围模块电路。(5)采用模块化软件设计方法,根据MF RC500的特性,系统地对MF RC500芯片的操作流程进行研究,设计主程序的流程图和各个模块子程序。(6)并建立一个Access数据库用来存储用户信息。上位机与下位机之间的通信采用串口通信,选用MAX232CPE芯片完成上、下位机之间的通信。

关键词:门禁系统;射频识别;MF RC500;非接触式IC卡;串口通信


目    录
摘    要..................................................................................................................................... I
引言............................................................................................................................................ 1
第1章门禁系统总体设计方案.............................................................................................. 2
1.1 门禁系统总体系统设计............................................................................................. 2
1.2 门禁系统硬件设计..................................................................................................... 2
1.3门禁系统软件设计...................................................................................................... 3
第2章门禁系统主要硬件电路设计...................................................................................... 3
2.1 门禁主控器................................................................................................................. 3
2.2源模块设计.................................................................................................................. 5
2.3射频控制模块设计...................................................................................................... 6
2.3.1 射频识别系统的典型结构.............................................................................. 6
2.3.2射频识别系统原理........................................................................................... 7
2.4 RS485通信模块设计.................................................................................................. 9
2.4.1           RS485接口............................................................................................. 9
2.4.2           RS485网络拓扑结构........................................................................... 11
2.5 液晶显示模块设计................................................................................................... 13
2.5.1 LCD1602介绍................................................................................................ 13
2.5.2 引脚功能介绍................................................................................................ 14
2.5.3 寄存器选择功能及指令功能........................................................................ 14
2.6实时时钟的硬件设计................................................................................................ 15
2.6.1 实时时钟的接口............................................................................................ 15
2.6.2 时钟数据传输的控制.................................................................................... 16
2.6.3 时钟数据传送方式........................................................................................ 17
2.7电平转换电路设计.................................................................................................... 17
2.7.1电平转换芯片................................................................................................. 17
2.7.2 MAX232芯片................................................................................................. 18
2.7.3电路连接图..................................................................................................... 19
2.8报警电路设计............................................................................................................ 19
第3章IC卡与门禁主控器的选择........................................................................................ 20
3.1非接触式IC卡的选择.............................................................................................. 20
3.2门禁控制电路............................................................................................................ 21
3.3 读卡器选择............................................................................................................... 22
第4章门禁系统软件设计.................................................................................................... 24
4.1系统总体程序流程设计............................................................................................ 24
4.2 射频控制模块........................................................................................................... 24
4.4 通讯模块................................................................................................................... 27
4.5显示模块.................................................................................................................... 31
4.6上位机设计................................................................................................................ 32
4.6.1 上位机程序流程图........................................................................................ 32
4.6.2用户登录界面设计......................................................................................... 33
4.6.3门禁系统界面设计......................................................................................... 35
第5章系统调试及结果分析.................................................................................................. 37
5.1 系统调试................................................................................................................... 37
5.2 结论分析................................................................................................................... 37
参 考文 献............................................................................................................................ 38
附录 部分电路原理图及PCB图........................................................................................... 39
致    谢.................................................................................................................................. 41


引言
随着我国社会主义市场经济的深入发展和未来知识经济时代的临近,门禁系统作为一项安防措施,将会形成更大规模的产业。这方面的社会需求已在逐步升温。作为政府职能的重要组成部分,保障公民生命财产安全和社会的安定,实施综合安全服务工程将会像环保工程、生态农业工程一样,受到社会的关注和公众的欢迎。
出入口门禁安全管理系统是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,光学,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施。适用各种机要部门,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂等。

















第1章 门禁系统总体设计方案1.1 门禁系统总体系统设计
基于MF RC500射频识别门禁系统是以射频识别读写器为核心,系统的总体结构见图,门锁继电器以及其他一些辅助器件而组成的系统。系统的工作原理是先由微处理器ATmega16控制射频识别读写器读取非接触式IC卡的信号,接着,ATmega16根据所得数据输出四个开关量信号(门阀继电器有两个,分别控制进出),经放大后分别用于控制门锁继电器和读取门磁信号,并且整个系统与上位PC机之间进行通讯,获得指令以及传输系统状态等,最后,对系统的辅助设备,如液晶屏、E2PROM等进行操作。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image002.png
图3.1 系统的总体结构图
1.2 门禁系统硬件设计
系统硬件设计主要由ATmega16主控芯片和非接触式IC卡模块构成。硬件电路由八部分构成:微控制器ATmega16、读卡器模块非接触式IC卡、LCD1602显示、串口通信MAX232、按键电路、AT24C04存储、报警电路、门控电路。微控制器ATmega16负责非接触式IC卡的初始化,上位机通过串口向非接触式IC卡发送命令,非接触式IC卡根据上位机发送的命令做相应的操作,然后将得到的信息传送给微控制器ATmega16,然后微控制器控制其它模块完成显示、报警、判断和门控操作。上位机与下位机之间的连接主要是通过串口进行通信,采用MAX232芯片并将芯片的输入和输出管脚连接到ATmega16的I/O口,在MAX232的引脚上连接10μF的电解电容用来滤波。读卡器模块非接触式IC卡与微控制器ATmega16之间的通信是通过I2C总线进行的,由于ATmega16单片机本身并没有I2C总线,所以将非接触式IC卡模块的串行时钟线与数据线接到ATmega16的两个I/O口,然后通过模拟I2C时序来完成ATmega16与非接触式IC卡之间的通信,为了防止出现三态,在非接触式IC卡的串行时钟线和数据线上分别上拉10k电阻。而非接触式IC卡与RFID卡之间的数据通信主要是通过天线进行的。AT24C04与ATmega16之间的通信也是通过模拟I2C时序进行,同时为了防止出现三态,在时钟线与数据线上分别连接5.1 k的上拉电阻。LCD1602与ATmega16之间的通信是通过将LCD1602的3条控制线和8条数据线与ATmega16的I/O口相连。对于按键电路的设计是将3*4按键直接连接到ATmega16的7位I/O口,采用线反转法通过查询方式进行工作。
1.3门禁系统软件设计
软件主要实现数据的采集,数据的分析,模块之间的通信,以及相应的数据处理。
数据采集:非接触式IC卡通过天线读取RFID卡的数据,然后将数据传送出去。
数据分析:ATmega16接收到数据后,将数据传送给AT24C04或上位机,AT24C04或上位机对数据进行分析,从而判断数据的有效性。
模块之间的通信:ATmega16与AT24C04之间的通信都是通过模拟I2C总线进行的, I2C总线的高效性、高实用性、高可靠性数据传输增强了系统的实时性和可靠性。
数据处理:针对数据的采集和分析的结果做出相应的处理,例如显示、报警、门控等。
第2章 门禁系统主要硬件电路设计2.1 门禁主控器
门禁系统的主控设备采用ATmega16单片机。AVR系列单片机是ATMEL公司开发的新一代单片机,在设计上打破常规,采用了全新的概念,突出的优点是高性能、低功耗的 8 位AVR 微处理器,并且具有先进的RISC结构,方便设计者使用。一般而言ATmega16在1 MHz,3V, 25°C 时的功耗正常模式时的工作电流为 1.1mA ,空闲模式时的工作电流为 0.35mA,掉电模式时的工作电流 < 1 μA。此外,该系列单片机拥有各种流行接口,方便与目前许多种类的外围设备连接通信,操作方便快捷,非常适合于低功耗、混合信号处理的产品与应用。ATmega16的硬件设计特点如下:
(1)CPU设计
ATmega16单片机的CPU采用8位的RISC结构。拥有32个8位通用工作寄存器,其中X、Y、Z 特殊寄存器可以用作3 个16 位的间接寻址寄存器指针以寻址数据空间,实现高效的地址运算。
(2)内部存储器分为程序存储器(FLASH)和数据存储器(RAM)
ATmega16具有丰富的内部存储单元,包括16K字节的程序存储器FLASH,512 字节EPROM和1K字节SRAM。
(3)输入/输出(I/O)口
ATmega16单片机32 个通用I/O 口线,作为通用数字I/O 使用时,所有AVR I/O 端口都具有真正的读- 修改- 写功能。这意味着用SBI 或CBI 指令改变某些管脚的方向( 或者是端口电平、禁止/ 使能上拉电阻) 时不会无意地改变其他管脚的方向( 或者是端口电平、禁止/ 使能上拉电阻)。有些引脚还具有特殊功能,包括可工作于主机/ 从机模式的SPI 串行接口。
(4)定时/计数器
ATmega16系列单片机有2个两个具有独立预分频器和比较器功能的8位定时器/计数器一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器
(5)指令系统
ATmega16系列单片机具有先进的RISC 结构,131条指令,并且大多数指令执行时间为单个时钟周期
(6)睡眠模式
空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby 模式以及扩展的Standby模式
综上所述,ATmega16单片机是一款功能强大、集成资源丰富的智能型微控制器。
利用其上述特性,结合本系统的设计需求,主控设备需要实现以下的操作:
(1)控制无线传输平台的传输过程,包括发送、接收模块的配置与控制.
(2)控制电子锁的开启
(3)LCD输出显示的驱动程序
(4)报警模块的驱动程序
针对以上需实现的功能,ATmega16单片机预留相应的资源与之对应。PB端口与无线传输系统的RF模块相连接,PC端口与LCD显示模块相连接,PD口与读卡模块相连接,PA口用于电子锁和报警模块相连接。ATmega16单片机的引脚图如图2.1所示。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image004.jpg
图2.1ATmega16单片机的引脚图
2.2源模块设计
门禁系统的电源电路如图2-2所示
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image006.png
图2-2电源电路
如图所示电路为输出电压+5V、输出电流1.5A的稳压电源。它由电源变压器T1,桥式整流电路D1,滤波电容C4、C6,防止自激电容C5、C13和一只固定式三端稳压器(LM7805)组成的。
220V交流市电通过电源变压器变换成交流低压,再经过桥式整流电路D1和滤波电容C4的整流和滤波,在固定式三端稳压器LM7805的IN和GND两端形成一个并不十分稳定的直流电压。此直流电压经过LM7805的稳压和C6的滤波便在稳压电源的输出端产生了精度高、稳定度好的直流输出电压。
2.3射频控制模块设计2.3.1 射频识别系统的典型结构
射频识别系统的典型结构见图2.3主要是由两部份组成:读写器和射频卡。读写器同射频卡之间通过无线方式通讯,因此它们都有无线收发模块及天线(或感应线圈)。射频卡中有存储器,内存容量为几个比特到几十千比特。可以存储永久性数据和非永久性数据。永久性数据可以是射频卡序列号,它是用来作为射频卡的唯一身份标识,不能更改;非永久性数据写在E2PROM等可重写的存储器内,用以存储用户数据。射频卡可以根据读写器发出的指令对这些数据进行相应的实时读写操作。控制模块完成接收、译码及执行读写器的命令,控制读写数据,负责数据安全等功能。射频卡分无源卡和有源卡两种,有源卡内置天线和电池,而无源卡只有内置天线没有电池,其能量由读写器提供,由于无源卡无需电池因此其尺寸较小且使用寿命长,应用越来越广泛。读写器内的控制模块往往具有很强的处理功能,除了完成控制射频卡工作的任务,还要实现相互认证、数据加解密、数据纠错、出错报警及与计算机通信等功能。计算机的功能是向读写器发送指令,并与读写器之间进行数据交换。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image008.png
图2.3.1 RFID系统典型结构

2.3.2射频识别系统原理
图2.4为RFID系统的工作过程,这是一个无源系统,即射频卡内不含电池,射频卡工作的能量是由射频读写模块发出的射频脉冲提供[11-13]。
1射频读写模块在一个区域内发射能量形成电场,区域大小取决于发射功率、工作频率和天线尺寸。
2射频卡进入这个区域时,接收到射频读写模块的射频脉冲,经过桥式整流后给电容充电。电容电压经过稳压后作为工作电压。
3 数据解调部分从接收到的射频脉冲中解调出命令和数据并送到逻辑控制部分。逻辑控制部分接收指令完成存储、发送数据或其它操作。
4 如果需要发送数据,则将数据调制然后从收发模块发送出去。
5 读写模块接收到返回的数据后,解码并进行错误校验来决定数据的有效性,然后进行处理,必要时可以通过RS232或RS422或RS485或RJ45或无线接口将数据传送到计算机。读写器发送的射频信号除提供能量外,通常还提供时钟信号,使数据同步,从而简化了系统的设计。有源系统的工作原理与此大致相同,不同处只是卡的工作电源由电池提供。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image010.png
图2.3.2射频识别系统原理图
系统主要由MCU、时钟芯片、MF RC500、液晶屏、看门狗以及RS485通信模块组成。系统的工作方式是先由MCU 控制MF RC500 驱动天线Mifare卡,进行读写操作,然后,根据所得的数据对其它接口器件,如液晶屏、E2PROM、时钟芯片等,进行响应操作,最后,再与PC机之间进行通信,把数据传给上位机。MCU采用89C52,是因为89C52开发简单,运行稳定。E2PROM 采用24C64,用于存储系统的数据。24C64是串口操作方式,是一种性价比较高的存储芯片。液晶屏采用带字库的ST7920,是因为它是并口操作方式的,操作方便。时钟芯片采用DS1302。DS1302是Dallas公司生产的新型产品,内置电池,可连续使用10 年,可以方便记录事件的发生时间。为了防止系统“死机”,使用x5045作为看门狗。x5045是串口工作方式,内置E2PROM,可用来存储一些系统参数。与上位机的通信采用RS485 通信模式,通信距离可以达到1000m左右。整个系统由9V电源供电,再由稳压模块7805 稳压成5V的电源。由于7805的工作热量很高,故在7805上安置一个散热片。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image012.jpg
图2.5 MF RC500与89C52的接口电路
MF RC500是应用于13.56 MHz非接触式通信中高集成读卡IC系列中的一员。该读卡IC系列利用了先进的调制和解调概念,完全集成了在13.56 MHz下所有类型的被动非接触式通信方式和协议。MF RC500支持IS014443A所有的层。内部的发送器部分不需要增加有源电路就能够直接驱动近操作距离的天线(100mm)。接收器部分提供一个坚固而有效的解调和解码电路,用于ISO14443A兼容的应答器信号。数字部分处理ISO14443A帧和错误检测(奇偶&CRC)。此外,它还支持快速CRYPTO1加密算法用于验证MIFARE系列产品。方便的并行接口可直接连接到任何8位微处理器,这样给读卡器/终端的设计提供了极大的灵活性。
2.4 RS485通信模块设计2.4.1  RS485接口
RS485定义了一种平衡通讯接口,它允许在一条平衡线上同时接多个接收器。它的数据信号采用差分传输方式,也称作平衡传输。它使用一对双绞线,将其中一条线定义为A,另一条定义为B [13] 。
通常情况下,发送器A,B之间的电压在-6~-2V表示逻辑‘0';在+2~+6V表示逻辑‘1',另外有一个信号地C。在RS485中还有一个使能端ENABLE;它用于控制发送器与传送线A, B断开与连接。当ENABLE为‘0’时,发送器处于高阻状态并与平衡双绞线A, B断开;只有当ENABLE为‘1’时,RS485的发送器才工作。接收器通过平衡双绞线将A与B分别对应连接,当接收器A, B之间的电压在+200mV-+6V之间时,输出逻辑`1';在-6V ~-200mV时,输出逻辑‘0'。RS485 可以实现点对多通信和多对多通信,并可同时接32个发送器和32个接收器。RS485需要两个终接电阻接在传送总线的两端(在传送距离小于300米时可以不接),其阻值要求等于传送电缆的特性阻抗。本文中PC机与门禁系统之间采用RS485接口实现点对多通讯,工作于半双工方式 [15] 。
读卡器在门禁系统中一般距离PC管理机比较远,而RS232只能用于短距离通信,长距离都用RS485串行通信芯片,数据传输距离一般达到1200m。 RS485是RS422的子集,以差分平衡方式传输信号,具有很强的抗共模干扰的能力。SP485R芯片管脚及互连电路见图3.7。 RS485收发器以半双工方式、单一+5V电源工作,内部一个接收器R,一个驱动器D。 SP485R接口芯片是Sipex公司的一种RS485产品,8个管脚DIP封装[14][15][16] 。
(1)A ,B 为RS485总线接口。A为非反相接收输入或非反相驱动输出,B为反相接收输入或反相驱动输出。A端电平高于B端,代表数据1;A 端电平低于B端 ,代表数据0。
(2)DI为发送器输入端,RO为接收器输出端。分别与单片机的TXD,RXD连接,单片机输出的信号从TXD发送,由DI输入经过SP485R驱动器转变成A,B信号传送出去; 外部输送进来的A,B 信号经过SP485R接收器转变成一个RO信号 ,输出给单片机RXD。
(3)RE, DE为收发使能端。RE是接收器输出使能,低电平有效;DE是驱动器输出使能 ,高电平有效,SP485R与单片机接口时,DI接单片机的发送端TXD,RO接单片机的接收端RXD,收发使能RE和DE两个管脚接单片机的一个I/O口线P3.3。 当P3.3= 1,DE满足要求,SP485R处于发送状态,当P3.3=0, RE满足要求,SP485R处于接收状态。单片机通过控制P3.3 实现与PC机数据交换的串行通信。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image014.png
图 2.4.1 SP485R 管脚及互连电路
RS485总线型网络系统连接。数据传输采用主从站的方式,主机为PC机,从机为读卡器单片机。每个从机拥有自己的固定的地址,由主机控制完成网上的每一次通信。R为平衡电阻,通常取为120欧。
开始所有从机处于监听状态,等待PC机的呼叫。当PC机向网上发某一从机的地址时,所有从机接收到该地址并与自己的地址相比较,如果相符说明PC机在呼叫自己,应发回应答信号,表示该从机已准备好,可以接收后面的命令和数据。不是呼叫自己,则不予理睬,继续监听呼叫地址。PC机收到从机的应答后,则开始一次通信。通信完毕,从机继续处于监听状态,等待呼叫。
由于PC机只有RS232通讯接口,因此必须经过RS232/RS485转换器转换信号, PC机才能同门禁系统通信。RS232/RS485转换器原理见图3.8。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image016.png
图2.4.2  RS232/RS485转换器原理图
PC机的串口通讯接口经过SP232芯片变成TTL电平,然后使用SP485R将TTL电平变成RS485电平。在SP232和SP485之间采用了高速光电隔离器PS2501以提高抗干扰能力。SP485R是低功耗、半双工RS485收发器,它包含1个发送器和1个接收器。SP485R芯片与单片机的接口原理图见图2.4.3。
在电路设计时,注意A和B端要接一个终端电阻,本系统接的是120欧姆。SP485R芯片有8个引脚,其中需要一个I/O口(本系统采用P3.4) 来控制SP485R的发送数据。当该I/O口为‘1’时,SP485R能发送数据,当为‘0’时,SP485R处于监听状态,只能接收数据。

file:///C:/Temp/Temp/msohtmlclip1/01/clip_image018.png图2.4.3 SP485R芯片与单片机的接口原理图
2.4.2  RS485网络拓扑结构
网络中一个或多个功能与传输线路互连的点称为节点。节点可以定义为网络中通向任何一个分支的端点,或通向两个或两个以上分支的公共点。节点间的物理连接结构称为拓扑,分布式系统中有以下三种网络拓扑结构:
星形:是中央控制型结构,一切通信经由中央控制节点。这种结构的控制方式简单、便宜,缺点是中央控制点有故障时,整个系统就会瘫痪,当通信量增加并要求高速通信时,中央控制单元的功能必须扩充,以克服“瓶颈阻塞”问题;如果采用冗余装置和自动切换技术来改善可靠性,又会大大增加系统的复杂程度和成本。
总线形:所有节点共享一个公共物理通道— 总线。这种结构的特点是:网络不封闭,容易加扩新节点,甚至用中继器连接多个总线,形成无根树结构;节点间通过总线直接通信,速度快、延迟和开销小;某个节点故障对整个系统的影响相对较小;若采用令牌(Token)传递的控制协议,则可保证该网络有确定的较好的实时响应性。
环形:相邻节点顺序连接形成的环路结构,信息一般仅以一个方向在环上从源节点传送到目的节点,控制方式简单,节点间可采用不同传输介质,速度也不同,缺点是某个环节故障会阻塞信息通路,可靠性差。
RS485 的网络拓扑一般只能采用终端匹配的总线型结构,它不支持环形或星形网络,并且在构建网络时,应注意如下几点:1从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。因为信号在各支路末端反射后与原信号叠加,会造成信号质量下降,并且随着通信距离的延长或通信速率的提高,其不良影响会越来越严重。2应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。下列几种情况易产生这种不连续性:总线的不同区段采用了不同电缆,或某一段总线上有过多收发器紧靠在一起安装,再者是过长的分支线引出到总线。总之,RS485网络应该提供一条单一、连续的信号通道作为总线。
门禁控制上位机与读卡器的底层控制结构采用了基于RS485小型局域网的分布式结构。由于要进行远距离传输数据,所以线路应接终端电阻进行阻抗匹配,以抑制数据传输的终端反射,避免信号失真。结构见图2.4.2。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image020.png
图2.4.2 上位机与读卡器的底层控制结构图
由于冲突检测和同步通信功能无法由软件实现,因而RS485总线通常采用二线制主从、异步通信方式。物理层采用带有屏蔽层的双绞线,通信方式为半双工方式,要经过RS232/RS485转换器才能实现RS232和RS485之间的通信规约以及相应的数据传输。
      RS485总线可以连接若干个节点,节点的个数,取决于所选用的RS485接口芯片的驱动器能驱动多少个标准的RS485负载。根据规定,标准RS485接口的输入阻抗为大于等于12千欧 ,相应的标准驱动节点数为32。为适应更多节点的通信场合,有些芯片的输入阻抗设计成1/2负载大于等于24千欧, 1/4负载大于等于48千欧,甚至1/8负载大于等于96千欧,相应的节点数可增加到64、128和256。
在RS485网络中,信号在传输线上传送,若遇到阻抗不连续的情况时,就会出现反射现象,从而影响信号的远距离传送。因此必须采用阻抗匹配的方法来消除反射。为了与电缆特性阻抗进行匹配,通常在总线的开始和末端都并接120欧电阻。此外,在系统安装过程中,传输线最好采用屏蔽线,而且应尽量做到信号传输线单独铺设,并且强信号线和弱信号线应尽量避免平行走向,尽量使二者正交,以使电磁耦合干扰减到最小。如果难以做到正交,也可以平行布线,但两者距离应足够大。
2.5 液晶显示模块设计
液晶显示器(LCD),具有功耗小,体积小,重量轻,超薄等许多其它显示器无法比拟的优点,近年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子系统中,LCD可分为段位式LCD、字符式LCD和点阵式LCD。其中段位式LCD和字符式LCD只能用于字符和数字的简单显示,点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线以及汉字,并且可以实现屏幕上下左右滚动、动画功能等功能,用途十分广泛。本次设计主要是用于显示正确及错误信息,因此从性价比上考虑,选择了字符式LCD显示器1602,该显示器的显示容量是16×2个字符。
本系统显示电路设计如图2.5.1所示。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image022.jpg
图2.5.1 LCD1602显示电路原理图
2.5.1 LCD1602介绍
如表3-2所示。VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度。RS为寄存器选择信号,高电平时选择数据寄存器,低电平时选择指令寄存器。R/W为读/写信号,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
2.5.2 引脚功能介绍
表2.5.2 LCD1602引脚功能介绍
[td]  
引线号
符号
名称
功能
1
VSS
接地
0V
2
VDD
电路电源
5±10%
3
VEE
液晶驱动电压
保证VDD-VEE=4.5~5V电压差
4
RS
寄存器选择信号
H:数据寄存器 L:指令寄存器
5
R/W
读/写信号
H:读      L:写
6
E
片选信号
下降沿触发,锁存数据
续表2.5.2 LCD1602引脚功能介绍
  
引线号
  
符号
名称
功能
7
  
|
  
14
DB0
  
|
  
DB7
  
数据线
  
数据传输
15
LEDA
背光源正极
——
16
LEDK
背光源负极
——
2.5.3 寄存器选择功能及指令功能
如表2.5.3寄存器选择功能描述,应当注意的是当忙标志为“1”时,表明正在进行内部操作,此时不能输入指令或数据,要等内部操作结束,忙标志为“0”时。
表2.5.4寄存器选择功能描述
RS
R/W
操作
0
0
指令寄存器(IR)写入
0
1
忙标志和地址计数器读出
1
0
数据寄存器(DR)写入
1
1
数据寄存器读出
指令格式:RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
LCD1602共有11种指令:清除,返回,输入方式设置,显示开关,控制,移位,功能设置,CGRAM(可自编数据区)地址设置,DDRAM(显示缓冲区)地址设置,读忙标志,写数据到CG/DDRAM,读数据由CG/DDRAM。
2.6实时时钟的硬件设计
刷卡时要记录刷卡的时间,可以用单片机的定时器实现,这叫软件时钟。它有一定的局限性,设置时间间隔不当、CPU掉电等都会影响时钟的正常运行。用外接实时时钟芯片的办法,不仅能为系统提供一个准确可靠的时钟,而且节省CPU的资源,用备用电池供电能保证在CPU掉电时也不影响它的正常运行,这叫硬件时钟。在联网的情况下,为了保证刷卡的时间与PC机上的时钟一致,PC机会每隔一定时间校核单片机内的时间。校核办法是由PC机将时间数据通过串口传送给单片机,单片机将该时间写入时钟芯片的内部时钟单元,以新的时钟为准计时。硬件实时时钟根据数据传送方式分为两种,一种是并行接口方式的,如DS12887, DS1387。并行接口方式数据传送快,但管脚多,与CPU的接口连线多,而且体积大。另一种是串行接口方式的,如DS1302, Philips公司的PCF8583等。这种芯片通常为8脚DIP封装,占用空间小,连线简单,一般只需占用CPU的2-3条I/O口线。我们采用体积小、接口简单的串行实时时钟DS1302芯片作硬件时钟。DS1302是美国DALLAS公司推出的低功耗串行通信接口专用芯片,采用3线串行方式与单片机通信。片内有31字节的静态RAM,日历时钟可自动进行闰年补偿。时钟的运行可采用24h或带AM(上午)和PM (下午)的12h格式。数据可按单字节方式或多字节突发方式传送。DS1302是DS1202的升级产品,除保持DS 1202的实时时钟功能外,增加了双电源管脚。
2.6.1 实时时钟的接口
DS1302时钟芯片为8引脚DIP封装,引脚及与单片机的接口方式见图2. 6.1。管脚的含义 [35][36] :
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image024.jpg
图2. 6.1 实时时钟的接口电路设计
(1)X1, X2外接32768Hz的石英晶振;
(2) Vcc1,Vcc2是电源引脚,单电源供电时接Vcc1脚,双电源供电时主电源接Vcc2,备份电源接Vcc1,
(3)SCLK是串行时钟输入线;
(4)I/O是双向串行数据传送线,串行数据在时钟SCLK的上升沿输入;
(5) RST为串行通信允许信号,RST=1允许通信,RST=0禁止通信。
它与AT89C52的连接见图3. 14 [34] ,DS1302与AT89C52连接的3根线是:
(1) SCLK接CPU的P1.4, 同步时钟输入;
(2) RST接CPU的P1.5,通信允许信号;
(3) IO接 CPU的P1.4,串行数据输入输出。
DS1302其它管脚的连接:
(1) X1,X2接32768Hz的石英晶振
(2) Vccl接3.6V,60mAh备用理电池,为时钟的不间断运行提供电源。
2.6.2 时钟数据传输的控制
每个数据传输都是以先送命令字节开始,随后才是数据。命令字节又叫地址命令字节,其中包含要访问的地址及访问控制方式。格式如下:
D7
D6
D5
D4
D3
D2
D1
D0
1
DRAM/CK
A4
A3
A2
A1
A0
R/W
最高位必须是逻辑1,如果是0,则DS1302不允许写。D6位为逻辑0是操作时钟,逻辑1是内部RAM操作。D1到D5指出要操作的寄存器地址。D0是读/写操作控制,逻辑0是写,逻辑1是读。命令字节本身总是输入,低位D0在前 [1] 。
2.6.3 时钟数据传送方式
DS1302有单字节传送方式和多字节传送方式。在RST=1期间(RST必须为1数据传送才有效),先送命令,紧接着发送一个字节的数据。DS1302在接收到命令后自动将数据写入指定的内部地址或从该地址读取数据。“二数据在SCLK的上升沿有效,读数据是在SCLK的下降沿有效。如果有额外的SCLK,会重新发送数据字节。多字节突发(burst)方式传送与单字节传送方式相似,在命令字节后,是多个字节的数据。但命令字节中的地址A0-A4必须全为1。在RST=1期间,DS1302接收到命令后,接着进行8个字节时钟或31个字节内部RAM数据的读写操作。时钟操作时,A0-A4表示的时钟寄存器地址中,00H-06H分别对应存放秒、分、时、日、月、星期、和年信息的寄存器,07H为写保护控制寄存器,08H为电池充电控制寄存器。时钟数据以BCD码格式存放在00H-06H这7个寄存器中 [1][2] 。
(1) 秒寄存器地址是00H,低4位为秒的个位。最高位为时钟控制位,该位为1时钟振荡器暂停,时钟停,为0时钟正常运行。高三位为秒的十位。
(2)分钟寄存器地址是01H,低4位为分的个位,最高位为0,高三位为分的十位。
(3)小时寄存器地址为02H,D7位为12/24小时选择位,D7=1是12小时制,此时D5表示上午/下午 ,D5=1是下午;24小时制时,D5是小时十位的另一位,即此 时 要用两位来表示小时的十位,D6位固定为0。
(4)写保护寄存器为地址07H,也叫控制寄存器。最高位为写保护控制位WP,其它位为0。 WP =1,不能向其它寄存器写。因此,在向DS1302进行写入操作之前必须先使写保护寄存器的最高位为0,然后才能写入其它单元。
2.7电平转换电路设计2.7.1电平转换芯片
如果两个51系列单片机系统之间距离很短,可以通过将它们的自带串口直接连接的方法实现双机通信[15]。但若通信距离较远,就可使用RS-232C接口延长通信距离。RS-232C标准是美国EIA与BELL等公司一起开发的,1969年公布的通信协议[7]。由于RS-232C标准规定的逻辑电平与TTL等数字电路的逻辑电平不兼容,因此二者之间进行相互连接时必须先进行串口电平的转换,即必须将单片机的TTL电平和RS-232C标准电平进行转换。
能够实现RS-232C电平转换的专用芯片有很多种,如MC1488、SN75150芯片可完成TTL到EIA电平的转换,而MC1489、SN75154可实现EIA到TTL电平的转换。常用的是Maxim公司的MAX232集成芯片,它能完成TTL和RS-232C的双向转换。
2.7.2 MAX232芯片
(1) MAX232的电路原理图如图2.7.1所示。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image026.pngfile:///C:/Temp/Temp/msohtmlclip1/01/clip_image028.png
                              
                              
       图2.7.1 MAX232的电路原理图          图2.7.2 MAX232的引脚图
(2) MAX232的引脚图如图2.7.2 MAX232的引脚主要分为5个部分
外接电容:有5个外接电容,进行电压匹配[8]和电源去藕。
TTL的输入:两路TTL电平的输入引脚——11和10引脚,连接单片机的TXD的输出端口。
TTL的输出:两路TTL 电平的输出引脚——12和9引脚,连接单片机的RXD输出端口。
RS-232的输入:两路RS-232电平的输入引脚——13和8引脚,连接RS-232的TXD的输出端口。
RS-232的输出:两路RS-232电平的输出引脚——13和8引脚,连接RS-232的RXD的输出端口。
2.7.3电路连接图
MAX232的电路连接图如图2.7.3所示。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image030.png
图2.7.3 MAX232的电路连接图
MAX232有两组通信串口,本系统只用到一组,其中T1IN连接单片机的P3.1,R1OUT连接单片机的P3.0,而T1OUT连接九针串口的2端,R1IN连接九针串口的3端。这样单片机与PC机的串口连接起来了。
2.8报警电路设计
在本设计中,需要用到报警电路,当出现非法卡或输入的密码不正确时,就会进行报警。采用蜂鸣器和LED灯(红)作为报警电路的主要器件,将蜂鸣器的正端连接到+5V电源上,负端连接到三级管的发射极,集电极连接到地端,基极连接到1k电阻的一端另一端连接到单片机的26引脚上。当给0时蜂鸣器响,当给1时蜂鸣器不响。将LED(红)灯的正端通过300Ω的电阻连接到+5V电源上,负端连接到单片机的17引脚上。当给17引脚送0时,LED(红)灯亮,送1时LED(红)灯灭。在本设计中,三级管起到开关作用,与三级管相连的1k电阻是为了保护三级管,防止电流过大而烧毁三级管。与LED灯相连的300Ω电阻也是起保护LED灯的作用。报警电路原理图如图2.8所示。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image032.jpg
图2.8报警电路原理图
第3章IC卡与门禁主控器的选择3.1非接触式IC卡的选择
基于MFRC500的射频模块可以采用Mifare1卡和MifareLight卡,它们都是Philips公司的Mifare系列产品。Mifare Light是一种小容量卡,其特性有:
(1)容量为384位;
(2)16位的数值计算;
(3)128位的数据区;
(4)用户可自定义控制权限;
(5)唯一的32位序列号;
(6)工作频率:13.56MHZ;
(7)通信速率:106KB波特率;
(8)防冲突:同一时间可处理多张卡;
(9)读写距离:在10cm以内(与天线有关);
(10)卡内无需电源:
而 Mifare1 卡是较新的Mifare系列产品,其主要特性有:
(1)容量为8K位E2PROM;
(2)分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位;
(3)每个扇区有独立的一组密码及访问控制;
(4)每张卡有唯一序列号,为32位;   
(5)具有防冲突机制,支持多卡操作;
(6)无电源,自带天线,内含加密控制逻辑和通讯逻辑电路;
(7)工作温度:-20℃∽50℃
(8)工作频率:13.56MHZ;
(9)通信速率:106KB波特率;
(10)读写距离:10mm以内(与读写器有关);
(11)数据保存期为10年,可改写10万次,读不限次数;
从上面的特性可以看出,Mifare 1存储量更大,分区的存储结构适用于“一卡通”的系统,为了方便系统以后的升级,本系统采用Mifare 1卡。
3.2门禁控制电路
系统中门禁控制电路是系统一个动作执行部分,主要是由微处理器ATmega16根据射频读写器读得的数据对外部门磁开关、指示灯等进行操作。对门磁开关控制是由单片机对继电器的控制完成的,见图3.10
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image034.png
图3.10门禁控制电路
在门禁读卡控制器内设有CPU、RS485通信电路、电子实时时钟电路、射频ID卡读卡解码电路,同时具备卡片资料存储器与进出数据缓冲器,它通过RS485通信转换器与计算机连接,计算机上安装上位机门禁系统软件平台,可用于对读写器进行参数设置、卡片授权、门口监控、人员考勤、出入数据等管理。当有读卡出入时,自动将该卡片信息进行校验,校验合法后将该卡数据、使用者、当前时间存入进出数据缓冲器内,并发出开门指令,通过电源线传送开门指令到电源端,电源启动继电器切换电源内部供电方向,使电锁自动打开,整个过程无须通过计算机,读卡机即可自行完成。非法卡被禁止访问,出门时只要按动出门按钮,
电锁自动打开。当非正常或暴力开门时,门磁输出报警信号,将报警信号传送到读卡机内,系统以弹出报警对话框提示报警。通过门禁系统软件平台对读卡器设置出入管理功能后,进出数据通过计算机处理可作为考勤数据。配件如下:
门禁电源可以采用EA公司EA-901门禁专用电源,它可提供DC12V3A电源,带一路电锁驱动接口、延时0-15秒。
输出电压:DC12V。
输出最大电流:3A。
驱动输出:COM、NC、NO。
外形尺寸:185mm x 80mm x 65mm。
电锁的种类很多,使用IBA 1555电插锁,它可支持木门、玻璃门等。
输入电压: 12VDC。
输入电流:450 mA。
重量:0.9kg。
主要性能:通电上锁,(断电开锁)。
外形尺寸:200mm x 34mm x 30mm 。
出门开关一般使用IBA-K10出门开关,它采用标准电工开关外型,按键是大板指甲按键灵敏度高。
3.3 读卡器选择
目前定义RFID产品的工作频率有低频、高频、和超高频三种频率范围,不同频段的RFID产品有不同的特性[13]。
1.低频(从125KHz到134KHz)
该频段主要是通过电感耦合的方式进行工作,也就是在读写器线圈和感应器线圈件存在着变压器耦合作用。通过读写器交变场的作用在感应器天线中感应的而典雅被蒸馏,可作供电电压使用。磁场区域能够很好的被定义,但是场强下降的太快,且传输速率慢,价格高。
2.高频(工作频率为13.56MHz)
在该频率的感应器不再需要线圈进行绕制,可以通过腐蚀活着的方式制作天线。感应器一般通过负载调制的方式进行工作。也就是通过感应器上的负载电阻的接通和断开促使读写器天线上的电压发生变化,实现用远距离感应器对天线电压进行振幅调制。如果通过数据控制负载电压的接通和断开,那么这些数据就能够从感应器传输到读写器。它的感应器一般是电子标签的形式,可以把某些数据信息写入标签中。传输速率高,价格合理。
3. 超高频(工作频率为860MHz到960MHz)
超高频系统通过电场来传输能量。电场的能量下降的不是很快,但是读取的区域不是很好进行定义。该频段读取距离比较远,无源可达10m左右。这要是通过电容耦合的方式进行实现。
目前使用较多的是ISO14443协议,而ISO15693是对于ISO14443对应于高频范围的一种协议。因为ISO15693疏耦合卡在高频时读取距离可达1m,所以本系统采用基于ISO15693协议的高频读写器,它可以对13.56MHz高频电子标签进行数据读、写、锁操作[14]。它的功能特点如下:
l  工作频率:13.56MHz
l  阅读距离:6-10cm
l  电子标签标准:ISO15693(Tag-IT HF-I、IcodeⅡ)
l  对电子标签多个数据块的内容进行读、写、锁操作
l  具有防冲撞读写功能,最多可检测16张电子标签
l  具有RS232、RS485、USB2.0多种通讯接口
它的卡结构为64位ID号,共计64个数据块,每个块都可读,没被锁的快可写。
串口通讯,默认波特率为19200bps,8位数据位,1位起始位,1位停止位,无校验。读卡模块引脚图见图3-4
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image035.png
图3.3读卡模块引脚图
第4章 门禁系统软件设计4.1系统总体程序流程设计
系统一共有三种开门方式:按钮、PC机指令、非接触式IC卡。其中按钮开门方式需要密码。非接触式IC卡开门方式是最主要的方式,这里主要对这种方式的系统工作流程进行介绍。流程图见图4.1,整个过程中系统都与PC机之间进行数据交换。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image037.png
图4.1 系统感应卡开门方式工作流程图
4.2 射频控制模块
射频控制模块就是对MFRC500的控制模块,本部分是系统最关键的部分。
(1)MF RC500复位操作
在上电之后一定要对MF RC500进行复位操作,MF RC500是高电平复位有效的,可以由ATmega16的I/O口直接复位,要注意的是:
1必须在ATmega16成功复位150ms以后,再对MF RC500进行复位操作;
2复位高电平必须保持200us以上。
3如果复位成功,MF RC500内部的Command寄存器的值为0,如果不为0,必须重新复位。
(2)初始化MF RC500内部寄存器
在复位成功后,再对MF RC500的内部寄存器进行初始化,只有在正确的初始化之后,MF RC500才能正常工作。
成功进行上两步操作之后,MF RC500的引脚TXl同引脚TX2之间有2.2v 左右的压差。
(3)对非接触式IC卡进行操作,MFRC500支持Mifare1卡和Mifarelight卡,本系统采用的是Mifare 1卡。射频模块的工作流程见图4.3,对Mifare 1卡的操作包括:
1 请求操作
在成功复位和初始化之后,MF RC500控制天线向工作范围内的卡进行请求,请求有Request all和Request std两种,当一张Mifare卡片处在卡片读写器的天线的工作范围之内,该卡片的ATR将启动,将卡片内部数据块0中的卡片类型(TagType)号共2个字节(Mifare1卡的返回值为00H、08H),传送给MF RC500,建立卡片与读写器的第一步通信联络。
Request all指令是非连续性的读卡指令。只读一次。但是当某一次Request all指令读卡失败时,比如,卡片没能通过密钥认证或其他原因而出错时,Requestall指令将连续地读卡,直到读卡成功才进入非连续性的读卡模式。
Request all指令适用于那些需要有人工干预的场合。
Request std指令的使用和Request all指令刚巧相反,Request std指令是连续性的读卡指令。当某一张卡片在读写器天线的有效的工作范围内,Request std指令在成功地读取这一张卡片之后,进入读写器对卡片的其他操作。如果其他操作完成之后,程序员又将读写器进入Request std指令操作,则Request std指令将连续性地再次进行读卡操作,而不管这张卡片是否被拿走。只要有一张卡片进入天线的有效的工作范围内,Request std指令将始终连续性地再次进行读卡操作Request std指令适用于那些不需要有人工干预的场合,即全自动的场合。例如,宾馆,酒店,高级写字楼等场所的门禁控制系统(Door Access Control)高速公路,停车场等的不停车收费系统(Non-StopRoad Tolling),等等。要注意的是,对于收费系统,在成功读卡之后一定要使用Halt指令停止该卡,否则,卡上的值会全部被减掉。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image039.png
图4.3 射频模块的工作流程图
本系统采用Request std请求指令。在成功进行请求操作后,系统就可进行下一步操作。
2  反碰撞操作
如果有多张Mifare卡处在系统天线的工作范围之内时,MFRC500将保证一 次只与一张卡片进行通信,取得该卡片的系列号。由于Mifare卡片每一张都具有其唯一的序列号,决不会相同,因此保证MF RC500一次只对一张卡操作。该操作的返回值为卡的序列号。
3  卡的选择操作
接下来的操作就是选择某一张卡,此操作MF RC500得到返回值80 H 。
4 密钥认证操作
在允许对卡进行读写操作之前,必须对卡进行三轮密钥认证。首先,指定要访问的区,并选择密钥A或密钥B。本系统采用密钥A。在更改密钥A时要设置访问条件(如表4.1),注意,密钥设置最好设成可逆的。接着把用户密码加密,并加载到MF RC500的密钥缓存中。接下来就是三轮密钥认证 。
表4.1 卡的访问条件
访问位
有效命令
C13C23C33
读,写
C12C22C32
读,写,增,减,传送,恢复
C11C21C31
读,写,增,减,传送,恢复
C10C20C30
读,写,增,减,传送,恢复

描述
3
区尾
2
数据段
1
数据段
0
数据段
   5卡的数据操作
在成功密钥认证之后,就可以对卡进行读、写、增值、减值、存储、传送等操作了以上的每步操作都被写成一个函数,最后在主函数中调用,这样方便系统的升级并增强了程序的可读性。
4.4 通讯模块
整个通讯程序分为3个部分:数据接收部分、命令执行部分、数据发送部分。
1数据接收部分
数据接收程序主要接收一帧正确的数据,数据帧错误的判断符合以下原则:  有一个字节偶校验错误,数据帧错误。数据帧格式不正确,数据帧错误。  数据帧校验码不正确,数据帧错误。
整个程序是在接收中断服务程序中执行的,见图4.7。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image041.png
图4.7 接收中断服务程序
2命令执行部分
这一部分是通讯主程序执行部分,见图4.8,是从机接收一帧正确数据后,通过地址域判断 RS-485 总线中主控器是否呼叫本从机,如果是广播地址则所有接收到的从机都应响应命令,同时通过密码的方式,可以设置权限,密码和地址是保存在 E2PROM 中。
在地址和密码判断正确的时候,程序进行命令译码,对要求的命令执行相应的操作,同时如果要通过总线发送数据,应准备好发送数据缓存器的内容,启动发送程序,发送完毕时清除接收事件发生标志。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image043.png图4.8 命令执行部分
3数据发送部分
本程序的数据发送部分是在主程序中执行的,见图4.9。
(4) 通信可靠性设计由于在实际应用系统中现场存在各种干扰,并且各读写器分布较远、数量较多,通信可靠性经常得不到保证。本文从硬件和软件两方面就提高RS485总线通信可靠性提出些具体措施。
首先,从硬件上来说。在实际应用系统中,PC机和门禁系统一般相隔较远,通信线路比较长,而各门禁系统上电或复位又常常不在同一时刻完成,如果此时某个门禁系统处于发送阶段,将会占用RS485通信总线,这样其他读写器就无法使用RS485通信总线与PC机通信。因为ATmega16初始化后,其I/O口处于状态‘1',这样RS485将处于发送状态,这样会占据整个总线。为了解决这个问题,在设计通信接口电路时,将ATmega16的P3.4 经过反向器后再接在SP485R上。当RS485总线处于空载状态时,RS232/RS485转换器上的发送器和所有门
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image045.png
图4.9 数据发送部分
禁系统通信接口上的发送器均呈高阻态,传送线A, B上的电平未知,各门禁系统接口上的接收器保持为最后一次接收的逻辑状态。为了保证RS485总线处于空载状态时各门禁系统通信接口上的接收器输出逻辑‘1',在RS232/RS485转换器和门禁系统RS485总线通信接口电路设计时分别将传送线A上拉和传送线B下拉,上拉电阻等于下拉电阻并且根据实际应用中RS485通信系统包括的门禁系统的台数以及匹配电阻的连接情况来计算。另外,为了防止RS232/RS485转换器和门禁系统RS485通信接口上接收器的共模电压超过RS485接收器的极限接收电压,即大于+12V或小于-7V,将门禁系统工作电源和读写器RS485收发器的电源隔离,并且使用光耦NEC2501实现隔离,彻底消除共模电压的影响:最后在PC机相连的RS232/RS485转换器上和距离PC机最远的门禁系统RS485总线通信接口上均连接匹配电阻以吸收RS485总线上的反射信号,保证传输信号的准确。匹配电阻的大小等于传送电缆的特性阻抗,本系统为120欧姆。对于软件上来说。由于RS485总线通信是异步半双工的通信,在某一时刻通信总线上只允许呈现一种状态。为了可靠通信,在RS485总线状态切换时需要适当延时后再进行数据发送或者接收。在软件编制时要注意保护现场,即在串口通信的下位机收发程序的起始部分对ATmega16的内部寄存器ACC, PSW, B等压入堆栈进行保护,而在子程序结束时再从堆栈中释放出来。这样可以保证串口通信工作不对系统其他功能模块产生影响。在通信协议设计中,每一帧数据传送采用异或校验,数据发送完毕后利用累加和校验来确保通信的可靠性。
4.5显示模块
显示子程序的主要功能是对当前的门控状态进行显示,显示函数首先判断是写命令操作还是写数据操作,若是写命令操作,则根据命令进行相应的操作,如清屏、设置显示模式等;若是写数据操作,则在显示器上显示相应数据。程序流程图如图4-5所示。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image046.png
图4-5 显示子程序流程图
显示程序核心程序代码如下所示:
void LcdShowError()
{    WriteLcdCom(0x38); //显示模式设置
     WriteLcdCom(0x0c); //开显示,无光标,光标不闪烁
     WriteLcdCom(0x06); //读写字符后地址指针加一设置
     WriteLcdCom(0x80);   //第一行数据指针地址
     for(k=0;k<16;k++)
      {WriteLcdDat(str3[k]);
       delay(20);}
     WriteLcdCom(0xc0);     //第二行数据指针地址
     for(k=0;k<16;k++)
      {WriteLcdDat(str4[k]);
       delay(20);}
WriteLcdCom(0x01);      }
void WriteLcdCom(unsigned char c)
{      LCDRW =00;
       LCDRS=0;             //切换到写命令
       P0=c;
       LCDE=1;
       LCDE=0;
  for(a=0;a<20;a++);}
void WriteLcdDat(unsigned char d)
{      LCDRW =00;
       LCDRS=1;             //切换到写数据
       P0=d;
       LCDE=1;
       LCDE=0;
    for(a=0;a<20;a++);}
4.6上位机设计4.6.1 上位机程序流程图
在本系统中,上位机主要完成管理人员登录、向下位机发送命令、接收下位机返回数据、判断数据有效性和显示用户信息。上位机程序流程图如图4.6所示。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image047.png
图4.6.1 上位机程序流程图
4.6.2用户登录界面设计
本设计中,由于用户信息是用户的隐私,并不是所有人员都对用户信息有管理权限,因此设计了用户登录界面,只有对用户信息有管理权限的管理者才能对用户做相关操作,如修改、查询等。用户登录界面如图4.6.2所示。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image049.jpg
图4.6.2 用户登录界面
   用户登录界面核心程序代码如下所示:
procedure TForm2.Button1Click(Sender: TObject);
var mUser,mPasword:string;
begin
mUser:=Edit1.Text; mPasword:=Edit2.Text;
if(Edit1.Text='') then  begin
     ShowMessage('用户名不能为空,请输入用户名!');
      Exit;
    end;
if(Edit2.Text='') then
    begin
      ShowMessage('密码不能为空,请输入密码!');
      Exit;
    end;
if(ADOTable1.Locate('UserName',mUser,[])) then
    begin     if(ADOTable1.FieldByName('Pasword').AsString=mPasword) then
        begin
          Close;
        end
      else
        begin
         ShowMessage('密码错误,请重新输入!');
         Edit2.Clear;
        end;
      end
  else
    begin
     ShowMessage('此用户不存在!');
      Edit1.Clear;
      Edit2.Clear;
    end;
end;
4.6.3门禁系统界面设计
在本设计中,门禁系统主要负责向下位机发送读卡命令、接收下位机传送的RFID卡序列号、将接收的卡序列号与Access数据库里存储的卡序列号做比较,若相同则在门禁界面显示用户信息;若不相同则显示非法卡。如图4.6.3所示为门禁系统界面。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image050.png
图4.6.3 门禁系统界面
门禁系统核心程序代码如下所示:
procedure TForm1.Timer2Timer(Sender: TObject);
begin
ka:=MSComm1.Input;
  if(ka='') or(ka='AABB022022') then
    begin
     ka:=MSComm1.Input;
    end;
if(ADOTable1.Locate('卡序列号',ka,[]))then
    begin
     Edit1.Text:=ka;
     Edit2.Text:=ADOTable1.FieldByName('用户名').AsString;
     Edit3.Text:=ADOTable1.FieldByName('住址').AsString;
     Edit4.Text:=ADOTable1.FieldByName('电话').AsString;
     MSComm1.InBufferCount:=0;
      MSComm1.Output:=char(sendtrue[0]);
     MSComm1.OutBufferCount:=0;
    end
  else
    begin
     if((ka<>'')and(ka<>'AABB022022'))  then
        begin
         ShowMessage('非法卡');
         Edit1.Clear;
         Edit2.Clear;
         Edit3.Clear;
          Edit4.Clear;
         MSComm1.Output:=char(sendfalse[0]);
        MSComm1.OutBufferCount:=0;
        end;
    end;
end;
procedure TForm1.Button1Click(Sender: TObject);
第5章系统调试及结果分析5.1 系统调试
将各个部分的硬件模块合并成一个整体,把软件各个部分程序合并到一个主程序中。通过伟福访真器和伟福调试软件WAVE6000开始整体调试,硬件部分用万用表来测试硬件每部分的接通性。软件部分的测试主要方法是通过设置断点、单步执行等方法来测试程序的正确性。在确定软硬件无问题后,将程序通过烧写器把程序烧到单片机中。
将程序烧写到控制芯片ATmega16,打开电源,电源指示灯亮,整个系统启动。运行上位机,向下位机发送读卡命令,下位机接收到读卡命令后,当有RFID卡进入到读卡器的读卡范围内时,若RFID卡为有效卡便会在执行开门操作的同时在液晶上显示正确信息;若不是有效卡则在报警的同时在液晶上显示错误信息。当通过键盘输入密码后,系统会判断密码的有效性,若是有效密码则开门并在液晶上显示正确信息;若无效则报警并显示错误信息。整个系统完成。
5.2 结论分析
本系统能在打开电源并运行上位机后,能自动向下位机发送读卡命令,当有RFID卡进入到读卡器的读卡范围内时,则会自动读取卡序列号,并将卡序列号传送给上位机,上位机判断卡的有效性。若该卡是有效卡,系统会执行开门并在液晶上显示正确的信息;若该卡是非法卡,则会报警并显示错误的信息。本系统能够有效、方便、安全地控制重要场所的出入访问,具有可靠性高、保密性强、方便快捷等特点。
本系统具体实现的功能如下:数据采集:读卡器YHY502ATG通过天线读取RFID卡的数据,然后将数据传送出去。数据分析:ATmega16接收到数据后,将数据传送给AT24C04或上位机,AT24C04或上位机对数据进行分析,从而判断数据的有效性。模块之间的通信:ATmega16与YHY502ATG/AT24C04之间的通信都是通过模拟I2C总线进行的, I2C总线的高效性、高实用性、高可靠性数据传输增强了系统的实时性和可靠性。数据处理:针对数据的采集和分析的结果做出相应的处理,例如显示、报警、门控等
参 考文 献
[1]  李朝清.单片机原理及接口技术[M]:北京航空航天大学出版社, 2005
[2]  石东海.单片机数据通信技术从入门到精通[M]:西安电子科技大学出版社,2002
[3]  胡汉才.单片机原理及其接口技术[M]:清华大学出版社,1999
[4]  付家才.单片机控制工程实践技术[M]:化学工业出版社,2001
[5]  何立民.单片机应用技术选篇[M]:北京航空航天大学出版社
[6]  李勋,刘源,李新民.单片机适用教程[M]:北京航空航天大学出版社
[7] 万胜前. 基于KeilC51软件的电子钟设计与制作[J],鄂州大学学报,2007年第2期
[8]  王卫东.模拟电子电路基础[M]:西安电子科技大学出版社
[9] 彭小军. 用单片机实现电子时钟[J].新余高专学报,2004年4月第9卷第2期
[10]Alexander M.Meystel, James S.Albus. 1999. Intelligent Systems:Architecture,Design and Control. New York: John Wiley.
[11] Andrew S.Tanenbaum. The Test Technology of Single-chip SwitchingPower.ICEMI’2001
[12] 丁明亮,唐前辉. 51单片机应用设计与仿真[M]. 北京:北京航空航天大学出版社,2009. 126~225
[13] 向继文等.基于AT89C51的电子钟系统设计[J],机电产片开发与创新,2007年第2期
[14] 张毅刚,彭喜元,董继成. 单片机原理及应用[M]. 北京:高等教育出版社,2008. 67~310
[15] 李晓静等.液晶显示控制器与单片机的接口及编程[J],电子技术,2004年第6期
[16] 陈妙芳,胡晓东. 基于AT89S51单片机的温度控制系统设计[J]. 机械工程师, 2009. 1:136~137
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image052.png附录 部分电路原理图及PCB图
门禁系统CPU原理图
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image054.jpg
门禁系统读卡器
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image056.jpg
读卡器PCB图
致    谢
时光飞逝,日月如梭,转眼就站在了毕业的门槛上,回首往昔,除了对光阴一去不复返的感慨,更多的是对父母亲人、对老师、对学校、对同学、对公司的感谢。在校的这三年时间里很感谢老师们对我的淳淳教诲,是你们教会了我们勤奋学习,诚实做人,踏实做事,以宽容之心面对生活。指引着我们沿着正确方向前进。在点滴汇聚中使我逐渐形成正确、成熟的人生观、价值观。在此,特别要感谢我的指导老师。
感谢我的同学校友,我永远的支持者,正是在你们的陪伴下,我才一步步的完成了求学生涯。衷心感谢我的导师对我论文的悉心指导,从论文的选题、研究计划的制定、技术路线的选择到系统的开发研制,各个方面都离不开老师热情耐心的帮助和教导。
三年的大学生活已经接近闻声,也意味着我的学生时代也即将结束,但我的学习之路仍在继续,在今后的生活、工作中我一定会谨记老师对我们的教诲,继续努力的学习专业知识,掌握专业技能,提高自己的学习能力。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表