位置:51电子网 » 技术资料 » 音响技术

P89LPC932在射频门禁控制系统中的应用

发布时间:2008/5/28 0:00:00 访问次数:459

系统概述

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

系统介绍

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

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驱动能力。


系统硬件设计

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

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

主控制器

采用公司的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;
}

结论

本系

系统概述

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

系统介绍

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

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驱动能力。


系统硬件设计

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

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

主控制器

采用公司的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;
}

结论

本系

相关IC型号

热门点击

 

推荐技术资料

基准电压的提供
    开始的时候,想使用LM385作为基准,HIN202EC... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!