1、第 1 页 第一 章 系 统 方 案 设 计 第一节 整体设计思路 利用射频卡代替传统的钥匙 ,给每个有权进入的人发一张射频卡,通过卡中的信息进行身份认证 。读卡器与单片 机实时相连, 对ID 号码 进行采集 , 对信息进行处理判断, 然后 上传给 PC 机实施 信息判断 记录 ,开门记录及 控制 开关门的 相关 操作、语音提示操作。 同时应该考虑到人们没有带卡的情况,系统应配有认证密码输入装置,通过单片机或 PC 机对个人密码进行核实从而进行开门与否的操作。 PC 机应具有 错误 计次输入锁死判断 ,并把判断信息实时传给显示装置,防止陌生人进行穷举攻击。 图 1-1 P C 机 单 片 机
2、显示装置 射频卡电路 第 2 页 第二节 方案选择 与确定 方案一 : 双控制器射频卡门禁 整个系统采用两个单片机的双核结构,读卡器模块完成对 ID 卡的数据采集,并将数据 传给第一块单片机进行处理,第一块单片机将数据译码后,传给译码器电路,同时译码器电路也接收键盘的数据输入,缓冲后送给第二片单片机。第二块单片机将数据传给 PC机, PC 机将 ID 号和数据库 中已存入的 ID 号进行比较,判断正确与否后将消息送给第二块单片机, 单片机控制下围电路的液晶显示相关信息,同时控制蜂鸣器发出定义好的声音提示正确,同时单片机通过 DS1302 及相关时钟电路利用液晶实时显示时间。 图 1-2 AT8
3、9S52 ( 1 ) RD 智能卡读卡装置 读卡器 4 4 键盘 AT89S52 ( 1 ) DS1302 日历芯片 1602 液晶 蜂鸣器 PC 机 74HC244 电路 第 3 页 方案二 :采用双串口单片机设计 由于单片机作为控制器在与读卡器模块连接的同时还要与电脑进行实时通信 ,所以需要两个串口,所以整个系统可以采用一个含有两个串口的单片机 WNBOND(华邦)的 W77E58 。该单片机在同时接收读卡器 ID 号码的同时,还要将数据送入 PC 机进行处 理,PC 机进行判断认证后反馈回操作信息, 同时进行显示和声音提示。另外单片机控制时钟显示电路进行实时时钟显示。 图 1-3 方案三
4、 : 双核系统 +语音提示 考虑到单片机在市场上很难买到,另外考虑到系统要具有语音提示功能以方便特殊人群的使用,以及 利用机处理数据的延时性,所以系统利用两个单片机进行处理。同时与 EEPROM 中的数据进行比较判断,将正确 或错误的消息传给机,机接收到相关信息,进行适当的操作。 单片机接收到机的反馈信息后, RD 智能卡 读卡装置 W77 E58 ( 1 ) P C 机 DS1302日历芯片 蜂鸣器 1602 液 晶 4 4 键 盘 第 4 页 对信息进行处理,控制语音芯片进行输出,控制液晶芯片进行实时显示。 图 1-4 系统方案的确定: 综合前面三种方案的分析,我们的 系统已经能过完成了初
5、步的设想的功能 。可以进行射频卡的认证识别,以及辅助的键盘密码输入,同时可以进行实时的时间显示 、操作显示 ,真人语音提示的功能,方便了用户。 这样不仅起到了门禁的功能,还添加了与人的交互 。但是为了精益求精,和实用性的考虑,我们在最终的系统中添加了实时防盗装置, LED 警报显示,同时丰富了机的处理功能 :不仅可以实时显示人员进入的方式,还添加了自动错误计次锁死程序,使利用键盘输入的人员最多只能输错三次,这样就有效的防止了陌生人员利用穷举攻击的方法非法打开门,有效地实现了防盗功能。 AT89S52 ( 1 ) AT89S52 ( 1 ) RD 智能卡 读卡装置 4 4 键盘 DS1302 日
6、历芯片 蜂鸣器 液晶显示 液 晶 继 电 器 液 晶 语音芯片 74HC244 电 路 PC 机 第 5 页 第二章 系统的总体设计 第一节 系统总的硬件框图 图 2-1 AT89S52 读卡器 AT89S52 2E PROM CPLD 键盘 2E PROM 1602 液晶 继电器 PC 语音芯片 LED 防盗装置 第 6 页 第 二 节 技术关键 及 创新点 1. 技术关键 a . 利用单片机控制读卡器读取 ID 号码并进行比较核实。 b. 利用单片机同时控制液晶显示、键盘输入、 防盗控制、 密码核实、语音控制以及串行收发 的相关操作。 c. PC 机进行实时的信息处理及存储分析。 2. 创
7、新点 a. 将智能卡与单片机、 PC 机有效的组织起来,构成廉价、实用、方便的门禁系统。 b. PC 机通过串口直接向单片机发送时间信号, 实时、方便、廉价。 第 7 页 第三章 系 统 硬 件 模 块 设 计 第一节 系统各模块的设计 1. 射频卡模块 读卡器模块主要有两部分组成:高频发生、接收模块和天线线圈。读卡器通过天线向射频卡发送 一组固定 频率的电磁波,卡内有一个串联谐振电路,其频率与读卡器发生的频率相同,在电磁波的激励下,谐振电路产生共振,从而使电容内有了电荷,在电容的另一端接有一个单项的电子泵,并将电容内的电荷送入另一个电容内存储,当所积累的电荷达到时,此电容可作为电源为其它电路
8、提供工作电压, 将接收到的射频卡中的数据发出,从而实现了数据的采集。 每张射频卡中有唯一的位序列号 ,其频率为 13.56MHz。读卡器模块电路 如图 3-1 所示 图 3-1 第 8 页 有卡划过时 , 15、 16 管脚接的 天线将感应到的信号传给读卡器,读卡器 管脚将 ID 号发送给单片机,同时 28 管脚将控制晶体管8550 驱动发光二极管发光,蜂鸣器发声。 2. 单片机模块 本系统的两块单片机均采用 AT89S52, AT89S52 的芯片 DIP 封装如图 3-2 所示, AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使
9、用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52 具有以下标准功能: 8k 字节 Flash, 256 字节 RAM, 32 位 I/O 口线,看门狗定时器, 2 个数据指针,三个 16 位定时器 /计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外, AT89S52 可降至 0Hz 静态逻辑操作,支持
10、 2 种软件可选择节电模式。空闲模式下, CPU停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。掉电保护方式下, RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 主要性能: 与 MCS-51 单片机产品兼容 8K 字节在系统可编程 Flash 存储器 1000 次擦写周期 全静态操作: 0Hz 33Hz 三级加密程序存储器 32 个可编程 I/O 口线 三个 16 位定时器 /计数器 八个中断源 全双工 UART 串行通道 低功耗空闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 功能特性描述 图 3-2 第 9 页 3.
11、 CPLD 键盘扫描 模块 图 3-3 CPLD 模块如图 3-3 所示,图 3-3 中 a-l 12 个引脚接的是键盘, dbA,dbB,dbC,dbD 是第二块单片机的输入信号,其中的 cpldclk 是第二块单片机 P1.2 送过来的时钟信号, int1 接到第二块单片机的外部中断 1。因为单片机的 IO 口用限,这个系统里利用 CPLD 给输 入的各个按键进行编码,这样 12 个按键经过 CPLD 编码以后只有 4 个输出给单片机,有效的节约了第二块单片机的 IO 口。这个模块的原理是 CPLD 每隔 20ms 对键盘进行扫描,如果有键按下,刚先用 28 引脚给单片机一个外部中断,然后
12、把键的编码放到 31,32,33,34 引脚上,这样第二块单片机就可以通过读引脚了解按下那个键。在这个模块中键盘没有按下时,对应的 IO 口为高电平,当有低电平时,表示有键按下,这样设计的目的是为了使 CPLD 容易识别有键按下。 第 10 页 4. 2E PROM 模块 2E PROM 采用 2I C 总线类 2E PROM AT24C64,这个 2E PROM 有 64KB 的 ROM,通过 SCL 和 SDA与单片机相连,进行数据的读写,芯片的 A0,A1,A2,WP 引脚接地。 图 3-4 5. 1602 液晶显示模块 1602 液晶分上下两行,可以显示 32 个字符, 1602 采用
13、标准的 16 脚接口, 本系统将 1602 的 D0-D7 与单片机的 P0.0-P0.7 相连, rs/, r/w,e 与单片机的 P2.0,P2.1,P2.2 相连 .单片机通过这三个口控制液晶显示本系统的各种提示语和时间。 6. 继电器和语音芯片模块 单片机通过 P1.6 发送一个高电平,经 74LS04 变成低电平,低电平经过一个 PNP 型的晶体管,驱动继电器,使开关闭合,语音芯片发出声音。 7. 键盘模块 键盘电路如图 3-5 所示 ,键盘没有按下的时候通过排阻接到 VCC 上,如果按下则直接接地,为低电平,如果键盘按下,通过 CPLD 扫描,把键盘的编码发送给单片机进行处理。本系统有 12 个按键,分别为: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,确定,取消键。没有键按下时不给单片机中断,如果有有键按下,则产生中断,并且分别译码成: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000,1001, 1111, 1110 进行输出。