2022年门禁控制系统 2.pdf
门禁控制系统姓名:夏永照班级:自动化 1002 班名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 摘要:门禁系统在现代安防管理中运用的越来越广泛,可以实现对大型企业, 办公室和小区的系统管理,具有很高的安全性和可靠性。门禁系统最主要的功能是对对象进行身份认证,并完成管理功能。本门禁系统是针对实验室而设计的一个执行特定功能的简单系统。一功能介绍MSP430F169电锁红外模块磁性传感器打卡机上位机RS4841. 打卡机能够准确的识别实验室人员手中的ID 卡,完成刷卡后系统需通过电锁实现开门动作。2. 通过红外对管,能够实现对实验室人员进与出的判断,并触发摄像头进行拍照。3. 为降低能耗,磁性传感器对门的开与关进行检测,若门处于关闭状态,需关闭红外模块。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 4. 将 ID 卡号和进出信息上传给上位机,上位机记录该信息,实现对成员的考勤。二系统组成1. 主控芯片本系统主控芯片采用MSP430单片机。 在门禁控制中, 系统大部分时间处于等待状态,功耗是一个不得不考虑的问题。msp430 单片机是一款超低功耗的单片机,中断功能非常完善,用在本系统中, 单片机在处于等待状态时,将关闭 CPU ,在需要工作时,通过中断唤醒CPU 。 该单片机的片内资源比较丰富,本系统中用片内外部中断读出打卡机数据和判断红外对管,用片内 AD 检测门开关,用片内 USART实现单片机与上位机的通信。2. 磁性传感器该系统中磁性传感器的功能是实时检测(受控制的)门的开关状态。系统使用了原理简单,使用方便的霍尔开关,型号HAL3144 ,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - 电路图:使用方法:当磁铁靠近霍尔传感器时, 数字信号输出端为低电平,当磁铁移开时, 输出端将变成高电平。将霍尔传感器贴于门梁上面,将磁铁贴于门上面, 通过单片机对输出端的高低电平的检测判断门的开关状态。单片机采用片内的AD 模块实现。3打卡机本门禁系统使用的是采用weigend 26 协议的打卡机,运用射频识别技术,实验室成员每人配备ID 卡,每个 ID 卡携带有唯一的卡号,可以通过打卡机读出来。打卡机留有四个接线,一个接12V电源,一个接地,一个DATA0 ,一个 DATA1 。当有 ID 卡接触打卡机时,打卡机将通过DATA0和 DATA1发出 26 位固定的二进制数,由单片机接收,每个不同的ID 卡的 26 位二进制都不同。Data0 和 Data1 两根数据线分别传输0 和 1,当无数据传输时,两信号线都为高电平,当传输0 时,DATA0线产生一个低电平信号,当传输 1 时,DATA1线产生一个低电平。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 信号图:单片机通过I/O 外部中断接收此26 位的二进制。接受完数据后,单片机立即将数据发送给上位机供上位机识别。4.电锁门锁已经自带了电锁装置,当上位机接收到单片机发送的相应 ID 卡的数据,若上位机判断该数据有效,立即给单片机发送开门信号, 单片机检测到门若处于打开状态,不做处理,当门处于关闭状态,单片机通过I/O 实现开门。5. 红外模块红外模块功能是判断人是进门还是出门,实现方法是通过两对红外对管,检测对管的触发的先后顺序来判断进与出。同样是通过单片机的外部中断来检测红外对管的触发。如下图,当先触发红外线1,再触发红外2,即为“进”,当先触发红外 2,再出发红外1,即为“出”。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - 红外发射管接收管进出12单个红外对管的电路图:图中左边方框即为红外对管,当发射管与接收管对射时,运放的正向输入端为低电平,运放作为一个比较器,输出将会是低电平,当对管之间有遮挡物时,正相输入端为高电平,输出将会是高电平。通过单片机外部中断将获知对管的触发。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - 6.485 通信单片机与上位机的通信协议为RS485串口通信,主要有点是传输距离可以达到1200m,传输速率快。电路图如下:图中的 A 和 B 必须接双绞线进行远距离传输,双绞线到达单片机时再用一块MAX485 芯片接入单片机的TXD和 RXD 。三系统工作过程当门关闭时,AD 检测后,将关闭红外发射管; 当门打开时,开启红外发射管。当打卡机感应到ID 卡,发出数据,单片机接收到后,发送给上位机。上位机判别数据有效后,给单片机发送有效数据, 此时,若门打开就不执行开门动作,若门关闭,就执行开门动作。当门处于打开状态,红外模块工作,有人进或出时,单片机给上位机发送相应数据,上位机将记录此数据,同时出发摄像头摄像。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 四单片机程序设计#include unsigned int BUFT28=0 x31,0 x31;/ 接收打卡机数据的数组unsigned int BUF125;/ 接收开门信号的数组unsigned int BUFT128= 0 x30, 0 x30, 0 x56, 0 x61, 0 x6F , 0 x42 , 0 x51 , 0 x44 , 0 x49 , 0 x42 , 0 x41 , 0 x41 , 0 x41 , 0 x41 , 0 x41 , 0 x41 , 0 x41 , 0 x41 , 0 x41 , 0 x41 , 0 x41 , 0 x42 , 0 x41 , 0 x41 , 0 x51 , 0 x3D , 0 x3D , 0 x0A; / 待接收的数据包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-); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - 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 = 0 x01; / Enable interrupt ADC12CTL0 |= ENC; / Conversion enabled P6SEL |= 0 x01; / P6.0 ADC option select / 初始化输入输出口P1DIR = 0 xff; P1OUT = 0 x00; / All P1.x reset P2DIR = 0 xff; / 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 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - P2IE |= BIT1; /* 对单片机的UART模块进行设置,用于单片机和上位机进行串口通信,P3.4为 TXD,P3.5为 RXD */ P3SEL = 0 x30; / P3.3,4 = USART0 TXD/RXD ME1 |= UTXE0 + URXE0; / Enabled USART0 TXD/RXD UCTL0 |= CHAR; / 8-bit character, SWRST=1 UTCTL0 |= SSEL0; / UCLK = ACLK UBR00 = 0 x03; / 9600 from 1Mhz UBR10 = 0 x00; UMCTL0 = 0 x4A; / Modulation UCTL0 &= SWRST; / Initialize USART state machine IE1 |= URXIE0; / Enable USART0 RX/TX interrupt /IFG1 &= UTXIFG0; / Clear inital flag on POR while(1) ADC12CTL0 |= ADC12SC; / Sampling open _BIS_SR(CPUOFF + GIE); delay(2000); if (temp 0 x7FF) / 门处于打开 P1IFG &= BIT1; P2IFG &= BIT1; P1OUT |=BIT5; / 指示灯P1OUT |=BIT4; / 打开红外发射管,用P1.4口P1IE |= BIT1; P2IE |= BIT1; y=0; / y=0 时,门处于打开 else / 门处于关闭 / P1IFG &= BIT1; / P2IFG &= BIT1; P1IE &= BIT1; / 关闭用于检测红外对管的外部中断P2IE &= BIT1; P1OUT &=BIT5; P1OUT &=BIT4; / 打开红外发射管y=1; / y=1 时,门处于关闭 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - #pragma vector=PORT1_VECTOR / 接收管 1 的触发中断_interrupt void Port_1(void) P2IFG =0; if(P1IFG&BIT3) / 打卡机 DATA0触发 BUFTj=0; delay(50); P1IFG = 0; j+; if(j=28) P1OUT |=BIT0; z=1; IE1 |=UTXIE0; i=0; if(P1IFG&BIT1) / 红外对管 1 触发 delay(200); P1IFG &= BIT1; if(P1IN&BIT1) n=1; if(n=1)&(x=1) / 当第二次触发时,打开发送中断,j=0 时,发送数据包 P1OUT |=BIT0; BUFT111=0 x51; z=0; IE1 |=UTXIE0; i=0; n=0; x=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - #pragma vector=PORT2_VECTOR _interrupt void Port_2(void) P1IFG =0; if(P2IFG&BIT4) / 打卡机 DATA1触发 BUFTj=1; delay(50); P2IFG =0; j+; if(j=28) P1OUT |=BIT0; z=1; IE1 |=UTXIE0; i=0; if(P2IFG&BIT1) / 红外对管 2 触发 delay(200); P2IFG &= BIT1; if(P2IN&BIT1) x=1; if(n=1)&(x=1) P1OUT |=BIT0; BUFT111=0 x41; z=0; IE1 |= UTXIE0; n=0; x=0; i=0; / UART0 TX ISR 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - #pragma vector=UART0TX_VECTOR / 数据发送中断向量_interrupt void usart0_tx (void) if(z=1) / 发送打卡机数据 TXBUF0 = BUFTi; while (!(IFG1 & UTXIFG0); i+; if(i=28) delay(500); j=2; IE1 &= UTXIE0; P1OUT &=BIT0; if(z=0) / 发送红外触发数据 TXBUF0 = BUFT1i; while (!(IFG1 & UTXIFG0); i+; if(i=28) delay(500); j=2; IE1 &= UTXIE0; P1OUT &=BIT0; / UART0 RX ISR #pragma vector=UART0RX_VECTOR _interrupt void usart0_rx (void) / 接收开门信号数据/ _BIC_SR_IRQ(CPUOFF); BUF1k+=RXBUF0; if(BUF12=0 x56); else k=0; if (k=28) k=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - if(BUF111=0 x41) if(y=1) P1OUT |=BIT6; delay(5000); P1OUT &=BIT6; #pragma vector=ADC_VECTOR /AD 中断向量,当霍尔开关输出端发生变化时产生中断_interrupt void ADC12_ISR (void) temp = ADC12MEM0; _BIC_SR_IRQ(CPUOFF); / 退出低功耗 五上位机与单片机的协议方向数据(28 个)信息单 片 机到 上 位机31 31 xxxxxxxxxxxxxxxxxxxxxxxxxx(26个x)当前两个数为31 时,后 26 个数代表 ID 卡数据单 片 机到 上 位机30 30 56 61 6F 42 51 44 49 42 41 41 41 41 41 41 41 41 41 41 42 41 41 51 3D 3D 0A 当前两个数为30 时,后 26 个数代表此时有人进入。单 片 机到 上 位机30 30 56 61 6F 42 51 44 49 42 41 51 41 41 41 41 41 41 41 41 42 41 41 51 3D 3D 0A当前两个数为30 时,后 26 个数代表此时有人出。上 位 机到 单 片机30 30 56 61 6F 42 51 44 49 42 41 41 41 41 41 41 41 41 41 41 42 41 41 51 3D 3D 0AID 卡有效,给单片机发送开门信号名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -