智能通道闸控制器软硬件设计解析

作者: 发布于:2015/1/9 23:02:24 点击量:

    一、控制器硬件设计

 
  智能通道闸控制器硬件结构框图如图l所示。由单片机、门锁驱动、门状态接口、读卡器接口、编程器接口、RS232扩展、密码存储、开锁记录、地址译码等单元电路组成。门禁控制器电路原理如图2所示。
 
  门禁控制器主要有“读卡”和“编程”两个基本工作模式,当模式选择开关K2断开时控制器为读卡工作模式,读卡模式下可编程门禁控制器与相应的卡阅读器(磁条阅读器或条码阅读器)和电动门锁配合,可实现门禁控制管理。当模式选择开关K2闭合时控制器工作在编程模式下,此时控制器能接受PC机或专用编程器对其进行编程控制和管理信息提取。
 
  单片机选用低功耗的CMOS器件AT89C51,它具有4K字节ROM、128字节RAM、32条I/O接口(P0、Pl、P2、P3)、2个16位定时/汁数器、一个全双工串行接口、一个包含5个中断源的两级中断系统以及片内振荡器和时钟电路。
 
  密码存储、开锁记录、地址译码部分,采用两片可读写EzPROM存储器28C64和一片数据锁存器573在读/写线和地址译码电路控制下,通过数据口P0和扩展的地址口P0、P2使控制器具有可任意编写100条长度l8位的许人密码,可自动存储最后900条长度22位的开锁记录的功能。密码区起始地址为#2000H,开锁信息记录区起始地址为#2800H。
 
  RS232扩展、读卡器接口和编程器接口组成控制器的串行口驱动电路,由于AT89C51只有一个串行接口,但门禁控制器要求与两个设备实现通讯,即在读卡模式下控制器应与磁条阅读器通讯,而在编程模式下控制器应与PC机或专用编程器通讯。为此,电路采用模式选择开关K2、RS232传输驱动芯片ICL232和多路电子开关CD4066组成串行口扩展电路.模式选择开关K2决定P3、2口的电平。以软件查询P3.2口(P3.2=1为读卡模式P3.2=0为编程模式)的方式,并通过控制P3.3口选通与读卡器或编程器进行数据通讯。且设置AT89C51串行口在读卡模式时为低级中断方式,串行口工作方式1。波特率由定时计数器T1工作方式2和晶振频率决定,取T1为八位自动装入常数#00E6H晶振6MI-IZ时,串口波特率为1200bit/s。每当发生读卡操作,程序即转去执行读卡中断程序。
 
  门锁驱动和门状态接口组成门禁控制器基本接口电路,门禁控制器有J1-J18共l8个对外接121。其中,J1、J2为DC12V输入电源接121。J17、J18为D v输出电源接口。J3、J4、J5为门锁控制继电器输出接121,由P1.0输出低电平有效控制门锁开启。J6允许进入、J7出门有效、J8门故障报警是三个TrL电平输出接口,高电平有效.分别由P1.1、P1.2、P1.3低有效控制。J9门锁到位信号、J10出门开关是两个光隔输入接口,可输入DCSV~12V开关信号,并分别使P1.5、P1.6低有效。Jll开门辅助输出接口,TrL信号低有效,由P1.7输出低电平有效门控制。J12、J13为剧卡器RS232接口。J14、J15为PC机或专用编程器RS232接口。J16为信号公用地线。
 
  控制器其他电路:电路中采用4_8v后备电池对单片机89C51单独供电,正常时后备电源开关K1接通,外接电源对系统供电且向后备电池充电,当外接电源临时掉电时电池仅对单片机供电,以保证实时时钟正常运行和保存用户基本参数,使控制器在外接电源恢复正常时无需重新编程即可正常开始工作。 
 
        二、控制器软件设计
 
  控制器软件的主要功能有两部分,一是读取磁卡器的信息与准人密码进行比较,当符合条件时开启门锁。二是与PC机或专用编程器通信,完成修改准人者信息、更改管理时区、更改门控状态、确定当前时间等编程工作。
 
  (1)主程序:主程序包括系统初始化、工作模式选择和时区划分三个模块。初始化模块完成对系统的各种参数设置。如实时时钟定时计数器工作方式设置、串行ISl工作方式和波特率设置、数据缓冲区设置和单片机各种工作参数的设置等。工作模式选择模块.根据有关输人ISl信息确定控制器工作在“出门状态”、“读卡模式”或“编程模式”状态。出门状态由出门按钮选定,此时控制器转去执行开门和关门子程序,发出开门信号并禁止读卡和编程响应,直至门恢复关闭为止。读卡模式由模式选择开关K2断开选定,读卡模式下控制器RS232接ISl与读卡器连接,软件允许系统响应读卡中断,并执行读卡中断程序。编程模式由模式选择开关K2接通选定,编程模式下控制器RS232接VI与PC机或专用编程器连接,软件转去运行编程子程序,并禁止读卡和不响应出门信号,直至按照PC机或专用编程器指令退出编程状态为止。
 
  时区划分模块,将每周分为星期一~星期五、星期六和星期日三个工作时间段,并且通过编程将每天24小时以10分钟为单位,可任意设置为“常开”、“常关”和“自动”三个工作时区。在常开时区内门锁始终开启,在常关时区内只允许符合三条主人密码的磁卡开启门锁.在自动时区内允许符合准人密码的磁卡开启门锁。
 
  (2)实时时钟中断程序:设置AT'89C51的定时计数器TO.工作方式1为高级中断,当晶振频率为6MHZ,定时常数为#3CBOH,将产生0.1秒定时中断。在实时时钟中断程序中对0、1秒、秒、分、时、星期和月份进行计时并存人相应单元。
 
  (3)读卡中断程序:读卡中断程序包括读卡、数据处理和纠错处理三个模块。读卡模块的功能是当程序响应读卡器中断后,即将读卡器发来的磁卡中第二磁道和第三磁道前l8位主账号数据信息分别读人相应的缓冲区。
 
  数据处理模块中,分别将 、三磁道数据缓冲区的数据逐个取出,并与密码区中各条准^密码信息逐位进行比较,全部相符时即将当前时间和进^者18位主帐号写^开锁信息区,同时转向门状态控制子程序。
 
  纠错模块的功能是,当发现无论是硬件或软件故障造成通讯信号丢失时,都将退出读卡中断程序,返回主程序以免程序陷^死循环。
 
  (4)门状态控制程序:包括自动开门、关门两个子程序。在开门子程序中给出开门驱动信号,并按照编程给定的开门时间,维持开门驱动信号。
 
  在关门子程序中首先检测门锁到位信号,确认门锁到位后发出关闭开门驱动信号,否则将保持开门驱动信号。当开门时间超过编程给定的开门超时时间时,控制器将按编程给定的报警时间长短发出门故障报警信号,直至门锁到位信号得到确认。
 
  (5)编程通讯程序:当模式选择开关K2接通,主程序查询到P3.2=0时,控制器进人编程工作模式。在编程模式下控制器与PC机或专用编程器通过RS232接VI通讯可完成设置准人密码,设置当前时间,设置门状态参数,设置编程密码,设置工作时区,读取开锁记录等工作。控制器需由PC机或专用编程器的指令退出编程模式。