网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
搜索关键字: 所有资讯 行业动态 市场趋势 政策法规 新品发布 技术资讯 价格快报 展会资讯
  • 达普IC芯片交易网 > 新闻中心 > 技术信息 > 正文
  • RSS
  • P89LPC932在射频门禁控制系统中的应用
    http://www.ic72.com 发布时间:2007/4/29 9:24:59
    p89lpc932在射频门禁控制系统中的应用

    西安交通大学 曹银强 王毅 邵宪太

    系统概述

    门禁控制领域中,读卡器通讯器读取各类非接触式身份识别卡, 将ID信息转化为二进制数据,采用串行通讯方式与各类控制设备相连,以实现相应的管理和控制功能。本文所介绍的车辆门禁控制系统,采用射频通讯器识别用户ID,充分利用增强型高速8051单片机p89lpc932资源,实现单片机控制的大容量、低成本、快速响应车辆门禁系统。

    系统介绍

    本系统采用Autotag射频通讯器识别用户电子标签,增强型8051单片机p89lpc932作为主控芯片。该系统充分利用单片机片内资源,所有1000个用户ID码和相应权限均存储在单片机内,不需扩充任何外部存储器件,实现了系统最小化、最简化。主控芯片读取用户数据信号并根据用户权限情况做出是否开门信号,并对异常做出声光报警,系统响应时间小于0.9s,响应距离8m。系统示意图所示。

    p89lpc932单片机特性介绍

    LPC932是一款低功耗、低价格单片封装的微控制器,采用了高性能的处理器结构,指令执行时间只需2到4个时钟周期,6倍于标准80C51器件,电源电压低,操作电压范围为2.4~3.6V。同时集成了许多系统级的功能,这样可大大减少元件的数目、电路板面积以及系统的成本。片内具有8KB Flash程序存储器,1KB可擦除扇区和64字节可擦除页规格;256字节RAM数据存储器;512字节附加片内RAM,512字节片内用户数据EEPROM存储区可用来存放器件序列码及设置参数等;4个中断优先级,8个键盘中断输入,另加2路外部中断输入;可配置的片内振荡器及其频率范围和RC振荡器选项(通过用户可编程Flash配置位选择),选择RC振荡器时不需要外接振荡器件。选择片内振荡和片内复位时可多达26个I/O口,所有口线均有20mA的LED驱动能力。


    系统硬件设计

    本门禁控制系统硬件主要部分所示

    图中可以按照功能分为以下几部分。

    主控制器

    采用公司的p89lpc932,是控制系统的核心部件。上电后从EEPROM中读取密码。当车辆触发入口感应线圈,产生外部触发1,该触发信号送入单片机和通讯器。单片机产生外部中断,开始准备读取数据。通讯器响应该触发信号,开始发送数据。单片机片内在FLASH中存储有1000个用户ID码,每个用户ID占用4个字节。同时用户权限资料存储在片内的EEPROM中,每个用户占用半个字节。当判别所读到的ID存在且合法,则发出开门信号。若ID非法,则进行声光报警。当车辆驶过出口线圈,触发外部中断2,单片机发出关门信号。

    数据读取部分

    本系统采用Autotag通讯器识别用户ID并送出RS-232电平信号。Autotag通讯器工作频率为433.9MHz,将由电子标签读出的独一无二的32位代码通过RS232传输线发出。发送数据格式为:8个数据位,无奇偶校验,一个结束位,波特率为9600。当车辆到达入口,触发感应线圈,通讯器开始工作,识别安装于车辆上的电子标签,并将用户ID码转换为RS-232电平信号,由MAX3232将其转换为TTL电平信号并送入单片机串口。

    系统的服务模块包括显示电路和声光报警电路。显示电路通过译码/驱动器CD4511将BCD码译为7段LED显示,并驱动LED显示,利用2 4译码器74HC139进行LED位选。声光报警部分采用单片机直接驱动发光二极管进行光报警,因为该单片机最大驱动电流可达20mA,通过三极管驱动蜂鸣器进行声报警。


    系统软件设计

    软件总体设计

    该系统软件从功能上可以分为几大模块:读取用户ID并判别合法性模块、系统和用户权限管理模块、声光报警模块、键盘模块、显示模块。其中读取用户ID并判别合法性模块和用户权限管理模块是本系统的核心模块。

    在主程序中主要完成上电初始化、初始密码读取,并对不同模块入口标志进行循环扫描,根据标志的不同状态,进入不同的子程序模块,做出响应的处理。

    主程序简要流程如图5所示。

    读取用户ID子程序

    本系统读取ID子程序采用外部触发方式。当有外部中断触发时,单片进入外部中断处理函数,进行用户ID的读取。部分C源代码如下所示。函数trigger_ISR()为外部触发中断处理函数。

    Autotag通讯器将电子标签的32位代码转化为10位BCD,然后将这10位BCD转化为ASCII码通过CRLF终端发送。10位BCD码前8位为有效信息,后两位分别为ASCII码0X0D,0X0A,这两位是为了标识一个有效用户ID发送完成而设置的,其相对应的意义为回车符和换行符。本系统的ID读取子程序中以判别0X0D为数据结束。

    void trigger_ISR() interrupt 2
    { uchar serial_temp;
    EA=0;
    n=0;
    do
    {
    while(!RI);
    serial_temp=SBUF; //暂存读到的ASCII码
    RI=0; //清标志位,以便接收下一个
    ID[n]=serial_temp; //将读到的ASCII码存入数组
    n++; //指向下一个存储位置
    if (n>11)n=0; //若超出,重新存储。
    }while(serial_temp!=0x0D); //当读到结束符0x0D时停止接收。
    uart_ISR=1; //置位中断服务完成标志。
    IE1=0;
    EA=1;
    return;
    }

    结论

    本系统软件系统在Keil51下调试通过,硬件系统制作了电路板。经过实际测试,该系统容量大,用户可达1000个。响应速度快,响应时间小于0.9s,响应距离可达8m。系统集成度高,外围电路少,抗干扰能力强,运行稳定可靠。




    www.ic72.com 达普IC芯片交易网
  • 行业动态
  • 市场趋势
  • 政策法规
  • 新品发布
  • Baidu

    IC快速检索:abcdefghijklmnopqrstuvwxyz0123456789
    COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
    客户服务:service@IC72.com 库存上载:IC72@IC72.com
    (北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
    京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质