基于ARM的门禁系统设计.docx
《基于ARM的门禁系统设计.docx》由会员分享,可在线阅读,更多相关《基于ARM的门禁系统设计.docx(37页珍藏版)》请在冰豆网上搜索。
基于ARM的门禁系统设计
基于ARM的门禁系统设计
摘要
随着人类生活水平、认知水平和人们对安防要求的不断提高以及工业自动化的蓬勃发展,智能化管理已经走进了人们的社会生活,而在智能化管理中,门禁监控系统得到了越来越多的应用,门禁,又称出入管理控制系统,是一种管理人员进出的数字化管理系统。
但传统的门禁监控系统一般采用门禁控制和视频图片摄录相分离的实现办法,这给现场布线带来了很多的不便,同时其成本也会大大提高。
所以,设计稳定性高、保密性强和易于扩展的较通用型门禁系统具有重要的实际意义。
整个系统的设计采用具有丰富多片内外设的LPC2368ARM为微控制器,选用ZLG522S/LT读卡模块为读卡器(使用Mifare卡),并采用HUIGANG继电器作为门锁开关,同时有门状态指示灯。
系统通过RS-485总线与上位机进行通信。
该系统具有按用户与时间权限刷卡开门和记录功能、添加用户功能、设置时间权限和考勤时间段,并能将记录信息通过SD卡导出。
该电子门禁系统具有实际应用中的单门门禁考勤系统的主要功能,并具有稳定性、可靠性,保密性强和人机界面友好的优点。
关键词:
ARM微控制器,读卡模块,RS-485,SD卡
概述
本设计皆在完成一个管理人员进出的数字化出入管理控制系统。
在现今的社会生活中,人们已经逐渐进入并融入到了数字化电子化的生活,社会的各个方面都已经实现或基本实现了数字化,门禁系统作为人们生活中必不可少的管理类应用,在人类的工作中显得尤为的重要,而对于这样一个应用,在这样一个大的背景下,实现其数字化与电子化是十分必要的,智能考勤系统基于现代电子与信息技术,利用智能卡或指纹等生物信息的唯一性来对员工上下班进行现代化高效管理,在各厂矿、机关、银行等场合已广泛应用并成为单位管理现代化和信息化的标志。
但目前很多门禁系统的核心控制单元主要依赖单片机来实现,它虽然也能完成相应的基本功能,但其扩展能力有限,在性能和存储容量等方面已不能很好地满足人们的要求,然而,随着嵌入式技术的不断发展,特别是基于ARM处理器的嵌入式系统由于其可扩展性强、稳定性高、功耗低、性能和价格比较合理等特点已在实际生活中得到了越来越多的应用。
因此,决定尝试做一个基于ARM的电子门禁系统。
目前,欧美电子门禁系统市场正逐渐进入成熟阶段,其产业的分工已进人细分阶段。
在国内,电子门禁系统处于成长期和初始阶段。
第1章系统总体方案概述
§1.1系统工作原理
系统采用LPC2368ARM为微控制器,选用ZLG522S/LT读卡模块为读卡器(使用Mifare卡),并采用HUIGANG继电器作为门锁开关,具有门状态指示灯,同时仿效实际产品引出必要的接口,如门磁检测,门内开关接口,门外铃声按钮接口,RS-485通信接口和电源接口等。
系统通过RS-485总线与上位机进行通信。
该系统具有按用户与时间权限刷卡开门和记录功能、添加用户功能、设置时间权限和考勤时间段,并能将记录信息通过SD卡导出。
上位机在VC开发环境下编程,具有一些实际电子门禁系统的主要简单功能。
更详细的工作原理在下面的软硬件部分具体给出。
§1.2设计思想
门禁系统由门禁控制器、读卡器、出门按钮、通讯集线器、感应卡和管理软件组成。
§1.2.1门禁控制器的选择
门禁控制器有多种控制芯片可以选择,如8051系列单片机、ARM系列控制器等。
由于本门禁考勤系统使用的串行口较多,在速度的要求上较高,而ARM系列控制器很容易得到满足。
虽然其价格较贵,但综合考虑,ARM系列控制器更适合本系统。
在众多的ARM控制器中,LPC2300系列较其他系列的优点显著,十分适用于串行通信的场合。
§1.2.2门禁系统的类型选择
门禁系统一般有以下类型:
1.不联网门禁:
适用场合:
已装修好不便于重新布线,安全性能要求不高的场合。
2.RS-485联网门禁:
适用场合:
小区、学校、仓库等人数稍多,门需统一管理,安全性能要求一般的场合。
3.CAN-bus联网门禁:
适用场合:
通信性能稳定性要求高,传输速度要求快、传输距离要求远的场合,如金融机构、政府企事业机关等。
4.TCP/IP以太网联网门禁:
适用场合:
适合安装在大项目、人数多、速度快、跨地域的工程中。
由于本系统的技术要求和应用场所是中距离通信场合,综合以上四种类型及本系统对安全性的要求不是很高的基础上,RS-485联网系统可以胜任。
§1.2.3感应卡的选择
常见的门禁系统有:
密码门禁系统、非接触IC卡(感应式IC卡)门禁系统和指纹虹膜掌型生物识别门禁系统等。
密码门禁系统由于其本身的安全性弱和便捷性差已经面临淘汰;生物识别门禁系统安全性高,但成本高;现在国际最通用的还是非接触IC卡门禁系统。
非接触IC卡由于其较高的安全性,便捷性和性价比高成为门禁系统的主流。
所以该系统使用非接触IC卡。
非接触IC卡RS-485门禁考勤系统示意图如图1-1所示。
图1-1非接触IC卡RS-485门禁考勤系统示意图
第2章硬件设计技术文档
本设计为门禁考勤系统,顾名思义,其兼具门禁和考勤的功能。
下面为本系统的硬件设计说明。
§2.1门禁考勤系统的功能框图见图2-1
图2-1门禁考勤系统的功能框
§2.2硬件电路分析
§2.2.1电路原理图(见图2-2)
图2-2门禁考勤系统电路原理图
§2.2.2硬件使用的资源
LPC2368是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMI-STMCPU的微控制器,并带有512kB的嵌入高速Flash存储器。
128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行。
对代码规模有严格控制的应用可使用16位Thumb模式将代码规模降低超过30%,而性能的损失却很小。
其特别适合于串行通信的场合。
LPC2368内部由512K的Flash,58K的片内SRAM,包括32K的局部总线SRAM、8K的USB使用的SRAM、16K的以太网SRAM和2K的电池SRAM。
此门禁考勤系统只使用了片内Flash、局部总线SRAM和2K的电池SRAM,没有外部扩展存储器。
如表2-1所示,为LPC2368I/O口的使用和分配表。
表2-1LPC2368I/O口的使用和分配表
功能模块
使用LPC2368引脚
引脚功能
看门狗复位
P1.24
给SP706S喂狗
串口UARTO(RS-232C和RS-485)接口
P0.2(TXDO)
串口UARTO的
输出输入
P0.3(RXDO)
P1.22(GPIO)
RSM485CHT的收发控制
读卡器模块
P0.10(TXD2)
微控制器与读卡模块的UART通信接口
P0.11(RXD2)
P0.27(SDAO)
微控制器与读卡模块的
C通信接口
P0.28(SCLO)
P2.11(INT)
按键和门内开关
P0.6~P0.9
四个独立按键
P0.23
门内开门开关输入
指示灯
P1.28
门关闭指示灯
P1.29
门打开指示灯
继电器和蜂鸣器
P1.26
继电器控制端(高电平有效)
P1.27
直流蜂鸣器控制(低电平有效)
门磁检测
P1.25
检测门磁状态(低电平为门开)
SD卡接口
P0.21、P0.22、P2.11、P2.12、P2.13、P0.20、P0.19、P2.8、P3.25
引脚具体说明见表2-3
ZLG7290接口
P0.0(SDAO)
此接口出去次三接口外,还有电源和地接口
§2.2.3各个部分单元电路原理及其分析
1.电源电路
系统设计为3.3V应用系统,但是LPC2300系列ARM微控制器需要2种类型的电源,分别是3.3V和1.8V,而与PC机通信使用的RS-485收发器(RSM485CHT)和继电器都是5V器件,所以设计5V电源为系统前级电源,3.3V为后级电源。
对于LPC2300系列ARM的1.8V内核供电,本系统使用片内的DC-DC,由于本系统没有使用AD/DA功能,所以不区分模拟电源和数字电源。
如图2-3(a)、(b)所示,首先由CON30电源接口输入9V直流电源,二极管D11防止电源反接,经过C11、C12滤波,再通过LM2575将电源稳压至5V,然后通过L2、C111、C110组成的滤波电路,输出稳定的低纹波5V电压,再使用LDO芯片(低压差电源芯片)稳压输出3.3V电压。
考虑到系统长时间处于工作状态,从节能方面考虑采用了开关电源LM2575设计。
系统使用的电源是9V直流电源,由CON30电源接口输入,接头上的电源极性为外正内负。
当系统上电后,POWER指示LED1应点亮。
LDO芯片采用了SPX1117M3-3.3,其特点为输出电流大,输出电压精度高,稳定性高。
图2-3系统前后级电源和RTC电源电路
LPC2300系列ARM集成有RTC外设,其单独供电,此次设计中提供了
两种供电方式,系统电源和外部电池供电,如图2-3(c)所示。
系统电源方式便于调试系统时使用,电池供电方式在实际应用中使用。
2.时钟系统、RTC时钟电路
系统采用ARM嵌入式工业控制模块T2368中的最小系统,其中使用外部12.000MHz无源晶振作为主时钟源。
对于实时时钟(RTC)功能,在CPU的RTCK1和RTCK2脚之间接一个32.768KHz的晶振。
3.看门狗复位电路
由于ARM芯片的高速、低功耗、低工作电压等特性导致其噪声容限低,对电源的纹波、瞬态响应性能、时钟源的稳定性、电源监控可靠性等诸多方面也提出了更高的要求。
使用了专用微处理器电源监控芯片SP706S以提高系统的可靠性,同时该芯片还带有硬件看门狗电路。
如图2-4所示,在电路中将看门狗复位信号输出脚(WDO)通过R32连接到SP706S的手动复位输入脚(MR)上,信号nRST连接到CPU的复位脚nRST。
可通过定时翻转P1.24的电平来喂狗,一旦在1.6秒内未翻转P1.24的电平,则SP706S内部的看门狗溢出,WDO脚输出低电平,MR脚被WDO脚拉低为低电平,导致SP706S在RST脚输出200ms的复位脉冲令CPU复位,同时SP706S内部清零看门狗让其重新计数。
图2-4系统复位电路
当复位按键RST按下时,SP706S的RST脚输出低电平复位系统。
4.串口UART0(RS-232C和RS-485)接口
由于系统是3.3V,所以使用了SP3232E进行RS-232C电平转换,SP3232E是3V工作电源的RS-232C转换芯片。
如图2-5所示,CON2为UART0接口,可以在串口调试阶段使用,在实际应用中,则要使用CON3的RS-485接口。
RS-485收发器采用嵌入式隔离RS-485收发器RSM485CHT,如图2-5(c)所示。
RSM485CHT隔离收发器模块,是集成电源隔离、电气隔离、RS-485接口芯片,总线保护器件于一身,其为5V工作电源器件。
电路设计中采用保守方法,加入了PESD1CAN隔离,是系统稳定性更高。
RS-232C与RS-485功能可以通过跳线JP2来切换,如图2-5(b)。
JP2跳线器说明见表2-2。
图2-5UART0(RS-232CANDRS-485)接口
JP2
功能
备注
控制器的UART0与CON2(RS-232C)连接
(模式1)串口调试时使用
控制器的UART0与CON3(RS-485C)连接
(模式2)实际应用中使用
5.JTAG接口电路和ISP跳线电路
采用ARM公司提出的标准20脚JTAG仿真调试接口,JTAG信号的定义及与T2368的连接如图2-6(a)所示。
其中RTCK引脚加上拉电阻,使系统重启后,LPC2368内部的JTAG接口使能,可以直接进行JTAG仿真调试,同时P2[9:
0]引脚不为跟踪功能;当要使用ISP功能时,将PC的串口与CON2相连,并将跳线JP2设置为第一种模式,使用UART0通信。
同时把JP1(如图2-6JTAG接口电路(c))短接,是ISP的硬件条件得到满足。
图2-6JTAG接口电路
6.读卡模块
现在,门禁考勤系统一般都使用非接触式无线智能卡,Mifare卡就是其中的一员,可以实现一卡通功能,具有数据传送速度快、防碰撞、保密性高等特点。
读卡器采用ZLG500S系列读卡模块(ZLG522S/LT),ZLG522S/LT为3.3V供电,具有I2C和UART两种通信接口,和天线一体化,主动检测卡片进入的模块。
此系统中,将两种接口都引出来,但只使用UART接口,如图2-7(b)所示。
图2-7读卡模块
7.按键、门内开关和指示灯
此系统中设计了四个独立按键、一个门内开关按钮接口和门状态指示灯(红:
门关;绿:
门开)、下位机向PC机发送信息指示灯(通信时闪烁),如图2-8(a)(b)所示。
图2-8按键、门内开关和指示灯电路
8.继电器和蜂鸣器
此系统应用继电器做开门开关;且有蜂鸣器提示声。
继电器采用HUIGANG继电器,其为5V工作器件,而系统为3.3V系统,所以在设计上采用了NPN三极管来实现3.3V系统控制5V的器件,用P1.26控制(高电平闭合),驱动电路如图2-9(a)所示;直流蜂鸣器,用P1.27控制(低电平蜂鸣),驱动电路如图2-9(b)所示。
两个驱动中的二极管起到继流的作用。
图2-9继电器和蜂鸣器驱动电路
9.SD卡接口
系统使用LPC2368为控制器,使用该内部自带SD/MMC卡控制器来访问SD卡。
LPC2368与SD/MMC卡卡座的连接引脚LPC2368微控制器与SD/MMC卡卡座接口电路如图2-10所示。
图中,微控制器与SD/MMC卡卡座的连接引脚如表2-3所示。
表2-3LPC2368与SD/MMC卡卡座的连接引脚
LPC2368引脚
引脚名称
卡座引脚
含义
P0.21
SDPWR
--
卡供电控制引脚。
P0.21为低电平时给卡供电
P0.22
SDDATA0
DAT0/DO
双向的数据信号DAT0
P2.11
SDDATA1
DAT1/IRQ
双向的数据信号DAT1
P2.12
SDDATA2
DAT2
双向的数据信号DAT2
P2.13
SDDATA3
DAT3/CS
双向的数据信号DAT3
P0.20
SDCMD
CMD/DI
双向的命令/响应信号
P0.19
SDCLK
CLK/SCK
微控制器向卡发送的用于同步双方通信的时钟信号
P2.8
SD_CD
CARD_INSRET
卡完全插入到卡座中检测线。
完全插入时,卡座输出低电平,否则输出高电平
P3.25
SD_WP
CARD_WP
看是否写保护检测。
写保护时,卡座输出高电平;否则输出低电平
图2-10SD/MMC卡的SD总线接口电路
接口电路包括以下部分:
(1)SD总线
如图2-10所示,LPC2368的P0.22、P2.11、P2.12、P2.13、P0.20根据引脚功能,直接连接到卡座的相应接口,其中数据线DAT0~DAT3双向数据线P0.22、P2.11、P2.12、P2.13和命令线P0.20分别接上拉电阻。
(2)SD/MMC卡ESD保护电路
如图2-10所示,在卡座的数据总线DAT0~DAT3、时钟线CLK和命令线CMD上,使用了一个ESD保护器件PESD5V0L6U,作用是:
当SD/MMC卡插入或拔出时,保护卡不受高压静电的损害。
(3)卡供电控制
卡的供电采用可控方式,这是为了防止SD/MMC卡进入不确定状态时,可以通过对卡重新上电使卡复位而无需拔卡。
可控电路采用P型MOS管2SJ355,有微控制器的GPIO口P0.21进行控制。
采用2SJ355的目的是当它开通时,管子上的压降比较小。
(4)卡检测电路
包括:
卡是否完全插入到卡座中和卡是否写保护。
检测信号由卡座的两个引脚以电平的方式输出。
当卡插入到卡座并插入到位时,卡座的CARD_INSERT(第10脚)由于卡座内部触点连接到GND,输出低电平;当卡拔出时,该引脚由于上拉电阻R83的存在而输出高电平,该输出由微控制器的输入引脚GPIO(P2.8)来检测。
卡是否写保护的检测与卡是否完全插入到卡座中的检测原理是一样的。
10.TinyARM2300接口
图2-11底板与核心板接口电路
以上介绍的是此系统的底板电路设计,下面是底板与核心板T2368的接口排针(2.00mm),如图2-11所示。
此系统只使用了T2368中的LPC2368最小系统,所以只给出此最小系统的原理图,如图2-12所示。
T2368中的以太网接口没有使用,不区分模拟地和数字地。
图2-12T2368核心板的最小系统电路图
11.外部测试板、外部接口和剩余IO引出插针
如所示,其有继电器指示灯,门磁模拟和门内开门开关三部分组成。
如图2-13(b)所示,其为此次设计的外部接口和几个测试点,P1.25为门磁检测输入端,BELL_1和GND为外部按铃接口,RelayA和RelayB为继电器输出接口,BELL_2为门内开门开关接口。
图2-13(a)和(c)为剩余IO引出排针和与ZLG7290相连的接口,为系统的更新和升级做好准备。
图2-13外部接口和剩余IO引出接口
注:
由于此次制板为单面腐蚀制板,所以图2-11中的(a)(b)在此次制板中没有引出。
第3章软件设计说明
§3.1软件任务
软件设计分为下位机和上位机两大块。
下位机软件任务:
以LPC2368芯片为主微控制器,对硬件的各个模块(各模块参见硬件技术文档)进行控制,制作一个具有刷卡开门和记录功能的门禁考勤系统,编程实现如下功能:
1.按时间和权限刷卡开门及在不同时间段内考勤功能;
2.记录刷卡事件、记录考勤信息、添加用户——发卡功能;
3.与PC机通讯使用RS-485总线,可以将用户数据下载到下位机系统中、将记录信息导出到SD卡上;
上位机软件任务:
上位机软件的任务主要是与下位机通过定义的RS-485协议,进行通信,进而实现以下功能:
1.将用户数据下载到下位机系统中;
2.显示刷卡信息、发卡功能;
3.设定时间权限和考勤时间段、查看刷卡记录功能;
4.开门功能:
设置刷卡后的允许开门时间长度(即刷卡开门后,在这个时间内门没有打开,则系统将门关闭);
§3.2下位机软件设计资源分配
本设计应用前后台系统,使用到的LPC2368片内外设和I/O口使用参见硬件技术文档。
下面介绍一下微控制器片内部分存储器的使用和分配。
§3.2.1512K片内Flash部分扇区和电池SRAM分配
片内Flash部分扇区分配如图3-1所示,池SRAM地址分配如图3-2所示。
图3-1片内Flash部分扇区分配图3-2电池SRAM地址分配
§3.2.2后台任务和中断优先级分配
后台任务和中断优先级分配如下表3-1所示:
表3-1VIC中断功能和优先级分配
中断源
功能
VIC优先等级
串口UART0
与上位机通信
0
GPIO(P0口)的EINT3
中断收键
1
TIMER2
(1)中断收键延时,
(2)继电器工作
2
UART2
与ZLG522S/LT读卡器通信
3
RTC
(1)检查门磁,点亮门状态灯,并将门状态发送到上位机,
(2)门处于开状态过长,则关闭门,(3)更新开门时间权限段和考勤时间段
4
§3.3下位机软件设计
§3.3.1下位机软件设计整体思想
系统中有四种模式,分别为:
刷卡开门考勤模式、发卡模式、RS-485协议处理模式、将记录数据导出到SD卡中。
通过按键KEY1的值来判断系统该工作在那种模式和切换模式。
对于处理上位机命令、中断延时收键和RTC中断的功能则在后台处理。
§3.3.2主程序的流程框架
作为前台的主函数,首先对使用到的GPIO口、各个模块和外设进行初始化,然后进入模式选择循环,其流程框图如图3-3所示。
§3.3.3主要功能模式——刷卡开门和考勤模式程序设计
1.刷卡开门和考勤模式主程序设计
此模式是此设计的主要功能,系统通过读卡器读出进入读卡范围内的Mifare卡序列号,然后查询系统中的用户数据库,然后进行用户权限级别和时间权限的判断,从而进行相应的处理(记录刷卡信息和考勤信息)。
用户权限是指权限是大权限,还是小权限,大权限用户则不受时
图3-3主程序流程框图
间的约束,随时可以刷卡开门;小权限用户则在设定的时间段内才可以开门。
此权限在发卡的时候确定。
时间权限是指,小权限用户在哪个时间段内可以刷卡开门。
此时间段可以通过上位机来随时设置。
此模式主程序流程框图如图3-4所示。
图3-4刷卡开门和考勤模式主程序流程框图
2.主要子函数的程序设计
系统模式中主要子函数有:
主控制器和ZLG522S/LT读卡模块与Mifare卡通信、用户查询函数、刷卡记录函数与考勤处理和记录函数。
(1)主控制器和ZLG522S/LT读卡模块与Mifare卡通信调用ZLG522S模块的操作软件包,主要是读卡器对Mifare卡的一系列操作此模式中对卡片的请求使用“标准模式”。
(2)用户查询函数、刷卡记录函数与考勤处理和记录函数用户信息、刷卡事件记录和考勤事件记录,是三个结构体,同时开门时间权限和考勤段的设置也是一个结构体,如程序清单3-1所示。
用户查询函数作用是在读到Mifare卡序列号后,查询“用户信息存储区”,如果有此用户,则返回True和此用户信息的首地址,否则返回False。
刷卡记录函数的作用是将刷卡的信息记录在存储器中,程序流程图如图3-5所示。
考勤记录函数的作用是将考勤的信息记录在存储器中,其程序流程图和刷卡记录函数的流程图类似,不再赘述。
程序清单3-1定义的结构体
structinfoUser1/*用户信息(6个字)*/
{
uint32cardNO;
charname[8];
charphoneNO[11];
charlimet;
};
structeventRcd1/*刷卡事件记录结构体(6)*/
{
uint32cardNO;
charname[8];
uint32active;
uint32datas;
uint32times;
};
structattdRcd1/*考勤事件记录结构体(5)*/
{
uint32cardNO;
charname[8];
uint32datas;
uint32times;
};
structtimeamr1/*开门权限设置结构体*/
{
uint8alhour;
uint8almin;
uint8purview;/*开门时间权限3:
no;1:
yes*/
uint8c