《门禁控制系统》
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
门禁控制系统
姓名:夏永照
班级:自动化1002班
摘要:门禁系统在现代安防管理中运用的越来越广泛,可以实现对大型企业,办公室和小区的系统管理,具有很高的安全性和可靠性。门禁系统最主要的功能是对对象进行身份认证,并完成管理功能。本门禁系统是针对实验室而设计的一个执行特定功能的简单系统。
一.功能介绍
1.打卡机能够准确的识别实验室人员手中的ID卡,完成刷卡后
系统需通过电锁实现开门动作。
2.通过红外对管,能够实现对实验室人员进与出的判断,并触
发摄像头进行拍照。
3.为降低能耗,磁性传感器对门的开与关进行检测,若门处于
关闭状态,需关闭红外模块。
4.将ID卡号和进出信息上传给上位机,上位机记录该信息,实
现对成员的考勤。
二.系统组成
1.主控芯片
本系统主控芯片采用MSP430单片机。在门禁控制中,系统大部分时间处于等待状态,功耗是一个不得不考虑的问题。
msp430单片机是一款超低功耗的单片机,中断功能非常完善,用在本系统中,单片机在处于等待状态时,将关闭CPU,在需要工作时,通过中断唤醒CPU。该单片机的片内资源比较丰富,本系统中用片内外部中断读出打卡机数据和判断红外对管,用片内AD检测门开关,用片内USART实现单片机与上位机的通信。
2.磁性传感器
该系统中磁性传感器的功能是实时检测(受控制的)门的开关状态。系统使用了原理简单,使用方便的霍尔开关,型号HAL3144,
电路图:
使用方法:当磁铁靠近霍尔传感器时,数字信号输出端为低电平,当磁铁移开时,输出端将变成高电平。将霍尔传感器贴于门梁上面,将磁铁贴于门上面,通过单片机对输出端的高低电平的检测判断门的开关状态。单片机采用片内的AD模块实现。
3.打卡机
本门禁系统使用的是采用weigend 26协议的打卡机,运用射频识别技术,实验室成员每人配备ID卡,每个ID卡携带有唯一的卡号,可以通过打卡机读出来。打卡机留有四个接线,一个接12V电源,一个接地,一个DATA0,一个DATA1。当有ID卡接触打卡机时,打卡机将通过DATA0和DATA1发出26位固定的二进制数,由单片机接收,每个不同的ID卡的26位二进制都不同。Data0和Data1两根数据线分别传输0和1,当无数据传输时,两信号线都为高电平,当传输0时,DATA0线产生一个低电平信号,当传输1时,DATA1线产生一个低电平。
信号图:
单片机通过I/O外部中断接收此26位的二进制。接受完数据后,单片机立即将数据发送给上位机供上位机识别。
4.电锁
门锁已经自带了电锁装置,当上位机接收到单片机发送的相应ID卡的数据,若上位机判断该数据有效,立即给单片机发送开门信号,单片机检测到门若处于打开状态,不做处理,当门处于关闭状态,单片机通过I/O实现开门。
5.红外模块
红外模块功能是判断人是进门还是出门,实现方法是通过两对红外对管,检测对管的触发的先后顺序来判断进与出。
同样是通过单片机的外部中断来检测红外对管的触发。如下图,当先触发红外线1,再触发红外2,即为“进”,当先触发红外2,再出发红外1,即为“出”。
单个红外对管的电路图:
图中左边方框即为红外对管,当发射管与接收管对射时,运放的正向输入端为低电平,运放作为一个比较器,输出将会是低电平,当对管之间有遮挡物时,正相输入端为高电平,输出将会是高电平。通过单片机外部中断将获知对管的触发。
6. 485通信
单片机与上位机的通信协议为RS485串口通信,主要有点是传输距离可以达到1200m,传输速率快。
电路图如下:
图中的A和B必须接双绞线进行远距离传输,双绞线到达单片机时再用一块MAX485芯片接入单片机的TXD和RXD。
三.系统工作过程
当门关闭时,AD检测后,将关闭红外发射管;当门打开时,开启红外发射管。当打卡机感应到ID卡,发出数据,单片机接收到后,发送给上位机。上位机判别数据有效后,给单片机发送有效数据,此时,若门打开就不执行开门动作,若门关闭,就执行开门动作。当门处于打开状态,红外模块工作,有人进或出时,单片机给上位机发送相应数据,
上位机将记录此数据,同时出发摄像头摄像。
四.单片机程序设计
#include
unsigned int BUFT[26];//接收打卡机数据的数组
unsigned int BUF1[25];//接收开门信号的数组
unsigned int BUFT1[25]={
0x56,
0x61,
0x6F ,
0x42 ,
0x51 ,
0x44 ,
0x49 ,
0x42 ,
0x41 ,
0,
0x41 ,
0x41 ,
0x41 ,
0x41 ,
0x41 ,
0x41 ,
0x41 ,
0x41 ,
0x42 ,
0x41 ,
0x41 ,
0x51 ,
0x3D ,
0x3D ,
0x0A}; //待接收的数据包
unsigned int i=0,j=0,k=0,y=1,temp=0,n=0,x=0,z=0;
void delay(unsigned int m) //延时函数
{
while(m--);
}
void main(void)//主函数
{
//关闭看门狗
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog
//AD模块初始化,P6.0口为AD检测口,接到霍尔开关的输出端 ADC12CTL0 = SHT0_2 + ADC12ON; // Set sampling time, turn on ADC12 ADC12CTL1 = SHP; // Use sampling timer
ADC12IE = 0x01; // Enable interrupt
ADC12CTL0 |= ENC; // Conversion enabled
P6SEL |= 0x01; // P6.0 ADC option select
//初始化输入输出口
P1DIR = 0xff;
P1OUT = 0x00; // All P1.x reset
P2DIR = 0xff; // All P2.x outputs
P2OUT = 0; // All P2.x reset
/*初始化外部中断设置,P1.3和P2.4为打卡机的
数据接收口,分别接入打卡机的DATA0和DATA1
信号线,P1.1和P2.1为红外触发的接收端,分
别接入两对红外对管的信号输出端。*/
//P1DIR |= BIT0; // Set P1.0 to output direction
//P1IES |= BIT1; // P1.3 Hi/lo edge
//P2IES |= BIT1;
//P1IES |= BIT3; // P1.3 Hi/lo edge
//P2IES |= BIT4;
//P1REN=BIT3;
//P2REN=BIT4;
//P1OUT |=BIT3;
//P2OUT |=BIT4;
P1DIR &= ~BIT3;
P1DIR &= ~BIT1;
P2DIR &= ~BIT4;
P2DIR &= ~BIT1;
P1IFG &= ~BIT3; // P1.3 IFG cleared
P2IFG &= ~BIT4;
P1IFG &= ~BIT1; // P1.3 IFG cleared
P2IFG &= ~BIT1;
P1IE |= BIT3; // P1.3 interrupt enabled
P2IE |= BIT4;
P1IE |= BIT1; // P1.3 interrupt enabled
P2IE |= BIT1;