基于单总线的感应式IC卡门禁系统设计
文章出处:http://www.singbon.com 作者:陈羲梅 人气: 发表时间:2011年07月04日
门禁系统是对重要区域或通道的出入口进行管理与控制的系统,它是一种新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,涉及电子、机械、光学、计算机技术、通信技术、生物技术等诸多高新技术。
为了有效提高门禁系统的管理功能和实时性,所设计的基于VC 的门禁管理系统应具有对门户出入控制、保安防盗、报警等多种功能,它主要方便内部员工或住户出入,杜绝外来人员随意进出,既方便了内部管理,又增强了内部的安全保障。
最近几年随着感应卡技术,生物识别技术的发展,门禁系统得到了飞跃式的发展,进入了成熟期,出现了感应卡式门禁系统,指纹门禁系统,虹膜门禁系统,面部识别门禁系统,乱序键盘门禁系统等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,门禁系统的应用领域也越来越广。
1 总体设计
1.1 课题研究的主要内容
本文对门禁系统进行了简要的概述。门禁系管理统的组成包含以下几个部分:
(1) 门禁控制器。门禁系统的核心部分,相当于计算机的CPU,它负责整个系统输入、输出信息的处理和储存,控制等等。
(2) 读卡器(识别仪)。读取卡片中数据(生物特征信息)的设备。
(3) 电控锁。门禁系统中锁门的执行部件。用户应根据门的材料、出门要求等需求选取不同的锁具。
(4) 卡片。开门的钥匙。
(5) AS232。串口通信接口。
(6) 80C196KC。数据采集模块。
(7) 电脑。运行门禁信息管理系统(DCIM)。
1.2 总体设计分析
为了提高门禁管理系统监控的实时性,采用 VB 语言开发门禁管理系统,完成了门禁管理系统操作界面、门禁控制器与上位机的通信以及门禁管理系统数据库编程。现场应用表明,所设计门禁管理系统具有良好的实时监控性,确保门禁系统稳定、高效地工作,该系统具有实际应用价值。系统结构图如图1-1 所示。总体设计需求:
(1)设计单总线接口电路驱动程序
(2)设计智能电子锁监控程序
(3)设计门禁信息管理程序
1.2.1 系统硬件技术
本设计的硬件部分大致可分为:DS1990A; AT90S2313 ; CAN 远程通信; AS232+PC。DS1990A 序列号iButton 是一种坚固的数据载体,可作为自动识别系统的电子注册号。数据通过1-Wire 协议传输,只需要一条信号引线和一个地回路。每个DS1990A 内包含工厂刻入的唯一64 位注册号[2]。
AT90S2313 是一款基于AVR RISC 的低功耗CMOS的8 位单片机通过在一个时钟周期内执行一条指令AT90S2313 可以取得接近1MIPS/MHz 的性能从而使得设计人员可以在功耗和执行速度之间取得平衡AVR 核将32 个工作寄存器和丰富的指令集联结在一起所有的工作寄存器都与ALU 算逻单元直接相连允许在一个时钟周期内执行的单条指令同时访问两个独立的寄存器这种结构提高了代码效率使AVR 得到了比普通CISC 单片机高将近10 倍的性能。
CAN 的结构是总线型。CAN 总线协议是建立在国际标准组织的开放系统互连模型基础上的,主要描述设备之间的信息传递。CAN 总线的模型结构只有3 层,选取了OSI 参考模型底层的物理层,数据链路层和应用层。数据链路层包括逻辑链路控制子层和介质访问控制子层。逻辑链路控制子层(LLC)包括:验收滤波,过载通知和恢复管理。介质访问控制层(MAC)包括:数据包装/解包;帧编码(填充,消除填充);介质访问管理;错误检测;错误标定;应答;并行转换成串行/串行转换成并行。
CAN 总线不需要其它中间层,应用层数据直接取自数据链路层或直接向链路层写数据。CAN 智能节点电路图如图1-2 所示
进行串行通讯时要满足一定的条件,比如电脑的串口是 RS232 电平的,而单片机的串口是TTL 电平的,两者之间必须有一个电平转换电路,计算机串口与CAN 总线通信通过电平转换芯片MAX232 实现TTL 电平到ELA 电平的转换,单片机实现计算机与CAN 节点之间的数据交换。
1.2.2 门禁管理系统设计
门禁管理系统是门禁系统中的重要组成部分。它主要完成门禁系统的监控、管理、查询等工作。通过门禁管理系统软件的设计,监控人员可对出/入口的状态、门禁控制器的工作状态进行监控管理,并可扩展完成巡更、考勤、人员定位等功能。管理系统结构图如图1-3所示。
2 软件设计
2.1 单片机与信息按钮通信
单片机通过单总线和信息按钮通信,主机呼叫从机时,从机才能应答,因此主机访问单总线器件都必须严格遵循单总线命令序列,也就是初始化、ROM 命令、功能命令。如果出现序列混乱,单总线器件将不会响应主机(搜索ROM 命令、报警搜索命令除外) 。因此通信编写要严格遵守单总线协议,否则就会出现错误。
我们在电子锁上设置一个控制开关,其功能是:当开关拨至 1 处时,将钥匙插入门锁,单片机自动读取iButton 的64 位ID 码,并存人单片机的EEPROM 中,存入完毕时,系统会有绿灯闪烁。从而完成锁对钥匙的初始化。当开关拨至0 处时,为正常使用状态。
2.2 单片机控制软件设计
CAN 总线控制器PCA82C200,其初始化程序如下:
DI
LDB AX , # 03H ;接收中断开放,复位请求位置“1”
STB AX ,CR
LDB AX , # 01H ;将节点1 标识符送ACR
STB AX ,ACR
LDB AX , # 00 ;置ACR 所对应的位都为相关位
STB AX ,AMR
LDB AX , # 01H ;传输波特率250Kbps (采用的是16M 晶振)
STB AX ,BTRO
LDB AX , # 1CH
STB AX ,BTR1
LDB AX , # 0AAH ;设置输出方式
STB AX ,0CR
LDB AX , # 02H ;PCA82C200 开始正常工作
STB AX ,CR
EI
采用中断方式通信的流程图如图2-1 所示。
2.3 单片机与 PC 机通信
函数声明,变量定义
#include <reg.51.h>
#define COUNT10 //定义接收缓冲区大小
Unsigned char buffer[COUNT]; //定义接收缓冲区
Unsigned char point; //定义接收数据个数指示变量
Void UART_init(); //串口初始化函数
Void COM_send(void); //串口接收函数
Unsigned char CLU_checkdata(void); //计算机校验函数
•Void UART_init(); 串口初始化函数
函数功能:在系统时钟为 11.0592MHZ 时,设定串口数据传输率为9600bit/sVoid UART_init();
{ //初始化串口和数据传输率发生器
SCON=0x58; //选择串口工作方式,打开接收允许
TMOD=0x21; //定时器1 工作在方式2,定时器0 工作在方式1
TH1=0xfd; //实现数据传输率9600bit/s(系统时钟11.0592MHZ)
TR1=0; //启动定时器1
ET1=0;
ES=1; //允许串行口中断
PS=1; //设计允许串行口中断优先级
EA=1; //单片机中断允许
}
•Com_interrup()串口接收中断处理函数
函数功能:接收包括起始位’S’在内的10bit 数据到缓冲区
Com_interrupt(void)interrupt 4 using 3{
Unsigned char RECEIVR_buffer;
If(RI) //处理接收中断
{
RI=0; //清楚中断标志位
RECEIVR_buffer=SBUF; //接收串口数据
If(point==0) //如果还没有接收到起始位
{
If(RECEIVR_buffer==’S’) //判断是否起始标志位
Point++; //是,准备接收下一位
Else
Point=0; //不是,继续等待起始位
}
Else if(point>0&&point<10) //判断是否接收够10bit 数据
Buffer[point++]=RECEIVR_buffer; //不够,把接收到的数据放入接收缓存区
Else point=0; //缓冲区已满,清除缓存区内数据重新接收
}
If(TI); //处理发送中断
{
TI=0;
}
}
•COM_send()串口发送函数
函数功能:把数据缓冲区的 10bit 数据发送出去
Void COM_send(){
For(point=0;point<=10,TI=1;point++) //连续发送10bit 数据
//把缓存区的数据都发送到串口
{
SUBF=buffer[point];
TI=0;
}
}
•CLU_checkdata()计算机校验位函数
输入变量:无
输出变量:checkdata,包括起始位在内的前九位数据的校验和
函数功能:计算校验和
Unsigned char CLU_checkdata(void){ //计算校验位
Unsigned char checkdata=0;
For(point=0;point<9,TI=1;point++)
{
Checkdata=checkdata︱buffer[point]
}
Return(checkdata);
}
•主函数
函数功能:调度子函数,完成通信过程
Void main(void){
Unsigned char checkdata;
Do
{
UART_init(); //初始化串口
If(point==10) //判断数据是否接收完成
Checkdata=CLU_checkdata; //调用求校验和函数
If(checkdata==buffer[9]) //判断校验和是否正确
COM_send(); //正确则调用发送程序
Point=0;
}
While(1);
}
2.4 计算机管理界面设计
登陆之后,进入管理软件的界面。
员工主要信息包括员工的联系电话、年龄、所在部门、员工住址等。对员工信息的查询如图所示,在操作界面中可以根据不同的查询条件进行查找。
在门禁管理中,包括对电子锁的管理。其中ID 号取的是门锁对应的钥匙的ID 号(每把钥匙有自己固定的ID 号),一把锁可以配对多把钥匙。
在实时监控中,可以对房间的一些状态进行监控,诸如门锁打开的状态、湿度、温度、有无烟雾等。第一张图是对某一个房间状态进行监控,第二张图则显示的是对所有房间进行的监控。
在门禁管理选项中,管理员还可以对门进行强制关门开门操作。在系统维护中,可以对串口进行设置,对管理员密码进行修改,对实时数据备份等等。这里不再进行赘述。
3 结论
门禁管理系统设计涉及的主要技术有单总线技术、串口通信技术、CAN 总线等,整个系实现了门禁管理操作界面、完成门禁系统的监控、管理、查询等工作。通过门禁管理系统软件的设计,监控人员可对出/入口的状态、门禁控制器的工作状态进行监控管理。