三棍闸门禁系统.docx
- 文档编号:27410076
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:18
- 大小:1.25MB
三棍闸门禁系统.docx
《三棍闸门禁系统.docx》由会员分享,可在线阅读,更多相关《三棍闸门禁系统.docx(18页珍藏版)》请在冰豆网上搜索。
三棍闸门禁系统
三棍闸门禁系统实习报告
一.门禁系统的背景和发展趋势:
门禁系统又称为出入口控制系统,其主要目的之一是保证重要区域内设备、资料和人员进出的安全,对进入这些重要区域的人员实行各种方式的门禁管理,以便控制人员的进出。
设置门禁系统后,当人员要进入自己的办公室或重要区域时,必须先在门旁的识别器上出示相应的开门工具,如:
感应卡、IC卡、磁卡、条码卡、指纹、瞳孔等(这取决于使用哪种门禁系统),门才能被打开。
每道门旁的识别器均通过系统控制器受到监控终端的控制。
每一种开门工具根据第统设置,只能在规定的范围内(如:
规定的时间、区域等)打开规定的门、采用门禁系统防止了钥匙管理的混乱现象,人员不能随便复制,如有丢失或工作调动,只需在控制终端上撤销该开门工具的授权即可。
随着IT技术的不断发展,门禁技术正以惊人的速度从传统的键盘、磁卡式感应卡,智能卡及多功能卡的方向发展。
现在有越来越多的先进技术应用到了门禁系统:
条形码、图形ID、磁条形码、韦根式、感应式、智能生物辨识等。
其中感应式门禁和生物辨别门禁将成为门禁发展的两大趋势。
三棍闸门禁系统被广泛应用于地铁站,火车站,图书管等场所,实现了管理的自动化。
二.硬件设计
我们采用芯片AT89C51,其控制原理如图2-1
图2-1控制原理图
现在我们对每一个部分做一些介绍:
1.AT89C51
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能
CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
我们用的是AT89C51的中断系统,AT89C51的中断系统共有5个中断请求源,它们是:
1.1.INTO一一外部中断请求0,中断请求信号由INT0引脚输入,中断请求标志为IE0。
1.2.INT1一一外部中断请求1,中断请求信号由INT1引脚输入,中断请求标志为IE1。
1.3.定时器/计数器T0计数溢出中断请求,中断请求标志为TF0。
1.4.定时器/计数器T1计数溢出中断请求,中断请求标志为TF1。
1.5.串行口中断请求,中断请求标志为发送中断TI或接收中断RI。
2.刷卡部分
这次实习我们采用的是感应卡式技术,采最极为巧妙的韦根技术。
韦根协议简介Wiegand(韦根)协议是由摩托罗拉公司制定的一种通讯协议,它适用于涉及门禁控制系统的读卡器和卡片的许多特性,其协议并没有定义通讯的波特率、也没有定义数据长度韦根格式主要定义是数据传输方式:
Data0和Data1两根数据线分别传输0和1,现在应用最多的是26bit,34bit,36bit,44bit等等,其中标准26-bit格式是一个开放式的格式,任何人都可以购买某一特定格式的HID卡,并且这些特定格式的种类是公开可选的,26-Bit格式就是一个广泛使用的工业标准,并且对所有HID的用户开放,现在几乎所有的门禁控制系统都接受26-Bit格式的标准。
2.1.传感器原理介绍
韦根传感器是由一根双稳态磁敏感功能合金丝和缠绕其外的感应线圈组成的。
其工作原理是:
在交变磁场中,当平行于敏感丝的某极性(例如n极)磁场达到触发磁感应强度时,敏感丝中的磁畴受到激励会发生运动,磁化方向瞬间转向同一方向,同时在敏感丝周围空间磁场也发生瞬间变化,由此在感应线圈中感生出一个电脉冲。
此后若该磁场减弱,敏感丝磁化方向将保持稳定不变,感应线圈也无电脉冲输出,但当相反极性(s极)磁场增强触发磁感应强度时,敏感丝磁化方向又瞬间发生翻转,并在感应线圈中感生出一个方向相反的电脉冲。
如此反复,韦根传感器便将交变磁场的磁信号转换成交变电信号。
2.2数据输出的基本概念
韦根协议又称韦根码,韦根码在数据的传输中只需两条数据线,一条为
DATA0,另一条为DATA1。
协议规定,两条数据线在无数据时均为高电
平,如果DATA0为低电平代表数据0,DATA1为低电平代表数据1(低
电平信号低于1V,高电平信号大于4V),数据信号波形如图2-2所示。
图2-2数据信号波形图
图2-2中脉冲宽度在20µs到200µs之间,两个脉冲间的时间间隔在
200µs到20ms之间。
2.3韦根6位输出格式
标准韦根输出是由26位二进制数组成,每一位的含义如下:
EXXXXXXXXXXXXXXXXXXXXXXXXO二进制
第1位为2-13位的偶校验位第2-9位对应与电子卡HID码的低8位
第10-25位对应电子卡的PID号码
第26位为14-25位的奇校验位
以上数据从左至右顺序发送,高位在前。
如果电卡的地区码位2个字符,即8位则可用那设置255个地区码((15×16)+15=255);电子卡的卡号位4个字符,即16位则可设置65536个卡号((15×16×16×16)+(15×16×16)+(15×16)+15=65,535)。
2.4韦根接口定义
Wiegand接口界面由三条导线组成:
DATA0:
暂定,兰色,P2.5(通常为绿色)。
DATA1:
暂定,白色,P2.6(通常为白色)。
GND:
(通常为黑色),暂定信号地。
当安装读卡器时,在读卡器和门禁控制面板的连接点(终端)上都能够看到这三个名称。
目前所有的标准型读卡器都提供可选择的Wiegand接口,这三条线负责传送Wiegand数据,也被称为Wiegand信号。
2.5ID卡的工作原理:
系统由卡、读卡器和后台控制器组成,工作过程如下:
2.5—1.读卡器将载波信号经天线向外发送,载波频率为125KHZ(THRC12)或13.56MHZ(THC13)。
2.5—2.ID卡进入读卡器的工作区域后,由卡中电感线圈和电容组成的谱振回路接收读卡器发射的载波信号,卡中芯片的射频接口模块由此信号产生出电源电压、复位信号及系统时钟,使芯片“激活”。
2.5—3.芯片读取控制模块将存储器中的数据经调相编码后调制在载波上,经卡内天线加送给读卡器。
2.5—4.读卡器收到的卡回送信号进行解调、解码后送到后台计算机。
2.5—5.后台计算机根据卡号的合法性,针对不同应用做出相应的处理和控制。
3.位置检测
当刷卡验正通过后,开始进行位置检测,本次实习采用三个互成一百二十度的光电对管来进行位置检测。
图3-1
如图3-1所示电路中,R1起限流电阻电阻的做用,当有光反射回来时,光电对管中的三极管导通,R2的上端变为高电平,此时VT1饱和导通,三极管集电极输出低电平,输出0。
当没有光反射回来时,光电对管中的三极管不导通,VT1输出高电平,输出信号1。
4.步进电机
我们选用两相步进电机,用恒压恒流桥式2A驱动芯片L298N驱动。
L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。
4脚VS接电源电压,VS电压范围VIH为+2.5~46V。
输出电流可达2.5A,可驱动电感性负载。
1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。
L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。
5,7,10,12脚接输入控制电平,控制电机的正反转。
EnA,EnB接控制使能端,控制电机的停转。
表1是L298N功能逻辑图。
三.程序设计
首先让电机处于始能状态,当位置检测正确后,输出一个低电平信号0,电机开始工作,到下一个位置为止。
我们用P0.0控制脉冲,P0.1控制方向,P0.2为始能信号,P0.3为I/O口。
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineBIT(x)(1< //unsignedchara,flag1; sbitmaichong=P0^0; sbitfangxiang=P0^1; sbiten=P0^2; sbitled=P0^3; sbitP07=P0^7; bitdataeven;//偶校验位 bitdataodd;//奇校验位 bitdataeven_odd_ture=0;//奇偶校验通过标志 ucharid[3]={0x43,0x64,0xF4}; ucharweige[3]={0xef,0xff,0xff};//韦根数据的存储数组 //ucharweige[26]; ucharflag=0;//读韦根数据的位数标志 uchart=0; ucharData[4]={0,0,0,0}; sbitWG_DATA0=P3^2; sbitWG_DATA1=P3^3; charCurrent; voidTime0_Int()interrupt1 { TH0=(65536-1000)/256; TL0=(65536-1000)%256; maichong=~maichong; } voidTime0_Init() { TMOD=0x01; ET0=1; TH0=(65536-1000)/256; TL0=(65536-1000)%256; EA=1; //TR0=1; } intdelay() { intf; for(f=0;f<20000;f++); } intint0()interrupt0//外部总断0用flag来确定第几位是0 { if(flag==0) { even=0; } else if(flag<9) { weige[0]=(weige[0]<<1)&0xfe; } else if(flag<17) { weige[1]=(weige[1]<<1)&0xfe; } else if(flag<25) { weige[2]=(weige[2]<<1)&0xfe; } else {odd=0;} //while(P3^2==1); flag++; if(flag==26) {EA=0; flag=0; t=26; } /*Data[(25-Current)/8]&=~BIT(((25-Current)%8)); Current++;*/ } intint1()interrupt2//外部总断1用flag来确定第几位是1 { if(flag==0) { even=1; } else if(flag<9) { weige[0]=(weige[0]<<1)|0x01; }else if(flag<17) { weige[1]=(weige[1]<<1)|0x01; } else if(flag<25) { weige[2]=(weige[2]<<1)|0x01; } else {odd=1;} //while(P3^3==1); flag++; if(flag==26) { EA=0; flag=0; t=26; } /*Data[(25-Current)/8]|=BIT(((25-Current)%8)); Current++;*/ } bitcheck()//奇偶校验通过返回1,不通过返回0 { uchari,check_temp; ucharone_num=0; bitdataeven_temp; bitdataodd_temp; check_temp=weige[0]; for(i=0;i<8;i++) { if(check_temp&0x01)//(check_temp&0x01) { one_num++; } check_temp>>=1; } check_temp=weige[1]; for(i=0;i<4;i++) { if(check_temp&0x80) { one_num++; } check_temp<<=1; } one_num%2==0? (even_temp=0): (even_temp=1); one_num=0; if(even_temp==even) { check_temp=weige[1]; for(i=0;i<4;i++) { if(check_temp&0x01) { one_num++; } check_temp>>=1; } check_temp=weige[2]; for(i=0;i<8;i++) { if(check_temp&0x01) { one_num++; } check_temp=check_temp>>1; } one_num%2==0? (odd_temp=1): (odd_temp=0); one_num=0; if(odd_temp==odd) return1; } elsereturn0; } voidSys_init(void)//4800 { SCON=0x50;//UART_mode=1,REN=1 PCON=0x00; TMOD=0x21; TL1=0xfa; TH1=0xfa; TR1=1; //ES=1; ES=0; IT0=1; IT1=1; //IP=0x10; EX0=1; EX1=1; EA=1; } voidwg_process(void) { //BYTEi; //BYTEsum=0; EA=0; SBUF=weige[0]; while(TI==0); TI=0; SBUF=weige[1]; while(TI==0); TI=0; SBUF=weige[2]; while(TI==0); TI=0; //SBUF=weige[3]; //while(TI==0); //TI=0; EA=1; //SBUF=wg3; //while(TI==0); //TI=0; } main() { intg=0,k; Time0_Init(); EX0=1;IT0=1; EX1=1;IT1=1; Sys_init(); IE0=1; IE1=1; EA=1; en=0; fangxiang=1; maichong=1; P0=0XFF; //wg_process();while (1); while (1) { if(t==26) { t=0; even_odd_ture=check(); if(even_odd_ture=1) { even_odd_ture=0; wg_process(); if(weige[0]==0xE1&&weige[1]==0xB2&&weige[2]==0x7A) { TR0=1; for(k=0;k<10;k++) for(g=0;g<15000;g++) { P07=0; if(led==1) { en=1; while(led==1); } if(led! =1) {en=0;} } } P07=1; //P0=0Xff; //P0=weige[0];delay(); } } } }} 三.程序调试 首先我们先自己焊接了一个51最小电路,用USB为最小电路板供电。 然后通过下载软件把程序考进AT89C51芯片中。 然后连接好电路进行调试。 在调试过程中遇到一系列的问题,在我们组的共同努力下,把问题一一解决了。 四.心得体会 在此向所有关心、指导和帮助我的老师、同学、朋友表示深深的谢意。 特别感谢我的指导老师王媛老师,老师对我们严格要求,悉心指导。 从这个三棍闸门的设计、研究、实现,到最后的修改完善,都是在她的精心指导下完成的。 三棍闸门系统是实现了刷卡后放行让人通过,并记录了闸门内的人数的全自动的简单门禁系统。 虽然这次已经把实物做成功了,但其中仍有许多问题有待解决,如有人刷卡而不通过,则后面的人无法进去,里面的人无法出来。 (注: 可编辑下载,若有不当之处,请指正,谢谢! )
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 闸门 系统