来源:中国一卡通网 作者:陈羲梅 发布时间:2011-07-04 10:17:01 字体:[大 中 小]
摘 要:本文以采用单总线(1-Wire Bus)技术、计算机串口、CAN 总线和信息纽扣iButton 设计为基础,分析了主要芯片的结构、ROM 命令和功能命令。对单总线的驱动、计算机的串口通信进行了程序的设计。同时利用VB 语言和Aceess 数据库,开发门禁管理系统, 完成了门禁管理系统操作界面、门禁控制器与上位机的通信以及门禁管理系统数据库编程。所设计门禁管理系统具有良好的实时监控性,确保门禁系统稳定、高效地工作,该系统具有实际应用价值。
2.3 单片机与 PC 机通信
函数声明,变量定义
#include <reg.51.h>
#define COUNT10 //定义接收缓冲区大小
Unsigned char buffer[COUNT]; //定义接收缓冲区
Unsigned char point; //定义接收数据个数指示变量
Void UART_init(); //串口初始化函数
Void COM_send(void); //串口接收函数
Unsigned char CLU_checkdata(void); //计算机校验函数
•Void UART_init(); 串口初始化函数
函数功能:在系统时钟为 11.0592MHZ 时,设定串口数据传输率为9600bit/sVoid UART_init();
{ //初始化串口和数据传输率发生器
SCON=0x58; //选择串口工作方式,打开接收允许
TMOD=0x21; //定时器1 工作在方式2,定时器0 工作在方式1
TH1=0xfd; //实现数据传输率9600bit/s(系统时钟11.0592MHZ)
TR1=0; //启动定时器1
ET1=0;
ES=1; //允许串行口中断
PS=1; //设计允许串行口中断优先级
EA=1; //单片机中断允许
}
•Com_interrup()串口接收中断处理函数
函数功能:接收包括起始位’S’在内的10bit 数据到缓冲区
Com_interrupt(void)interrupt 4 using 3{
Unsigned char RECEIVR_buffer;
If(RI) //处理接收中断
{
RI=0; //清楚中断标志位
RECEIVR_buffer=SBUF; //接收串口数据
If(point==0) //如果还没有接收到起始位
{
If(RECEIVR_buffer==’S’) //判断是否起始标志位
Point++; //是,准备接收下一位
Else
Point=0; //不是,继续等待起始位
}
Else if(point>0&&point<10) //判断是否接收够10bit 数据
Buffer[point++]=RECEIVR_buffer; //不够,把接收到的数据放入接收缓存区
Else point=0; //缓冲区已满,清除缓存区内数据重新接收
}
If(TI); //处理发送中断
{
TI=0;
}
}
•COM_send()串口发送函数
函数功能:把数据缓冲区的 10bit 数据发送出去
Void COM_send(){
For(point=0;point<=10,TI=1;point++) //连续发送10bit 数据
//把缓存区的数据都发送到串口
{
SUBF=buffer[point];
TI=0;
}
}
•CLU_checkdata()计算机校验位函数
输入变量:无
输出变量:checkdata,包括起始位在内的前九位数据的校验和
函数功能:计算校验和
Unsigned char CLU_checkdata(void){ //计算校验位
Unsigned char checkdata=0;
For(point=0;point<9,TI=1;point++)
{
Checkdata=checkdata︱buffer[point]
}
Return(checkdata);
}
•主函数
函数功能:调度子函数,完成通信过程
Void main(void){
Unsigned char checkdata;
Do
{
UART_init(); //初始化串口
If(point==10) //判断数据是否接收完成
Checkdata=CLU_checkdata; //调用求校验和函数
If(checkdata==buffer[9]) //判断校验和是否正确
COM_send(); //正确则调用发送程序
Point=0;
}
While(1);
}
2.4 计算机管理界面设计
登陆之后,进入管理软件的界面。
员工主要信息包括员工的联系电话、年龄、所在部门、员工住址等。对员工信息的查询如图所示,在操作界面中可以根据不同的查询条件进行查找。
在门禁管理中,包括对电子锁的管理。其中ID 号取的是门锁对应的钥匙的ID 号(每把钥匙有自己固定的ID 号),一把锁可以配对多把钥匙。
在实时监控中,可以对房间的一些状态进行监控,诸如门锁打开的状态、湿度、温度、有无烟雾等。第一张图是对某一个房间状态进行监控,第二张图则显示的是对所有房间进行的监控。
在门禁管理选项中,管理员还可以对门进行强制关门开门操作。在系统维护中,可以对串口进行设置,对管理员密码进行修改,对实时数据备份等等。这里不再进行赘述。
3 结论
门禁管理系统设计涉及的主要技术有单总线技术、串口通信技术、CAN 总线等,整个系实现了门禁管理操作界面、完成门禁系统的监控、管理、查询等工作。通过门禁管理系统软件的设计,监控人员可对出/入口的状态、门禁控制器的工作状态进行监控管理。
本系统能实时显示员工的具体信息:电话,所在部门以及其所配置的钥匙,并能对这些信息进行及时的更新。在新型电子锁的设计中我们采用了当今世界先进的iButton 技术,不仅具备携带方便、不易损坏、不易受腐蚀、不易受电磁干扰等特点,而且采用了外部供电开启电子锁的方法,解决了以前的产品在失去电力供应后,电子锁失效而变为普通锁的问题。
信息钮扣 DS1990A 构成的信息钥匙虽然属于接触式卡类,且其坚固的外壳及读取头非常适用于门禁系统。此外,这种新型电子锁实现简单,成本低廉,具有较好的经济效益和社会效益,可以满足现代智能建筑中安防系统的要求,相信将有广阔的应用前景。
[参考文献]
[1] 林丽纯.基于iButton 的新型电子锁控制器设计.广东工业大学学报. Vol.26,No.2, p98-100.
[2] MAXIM 公司 DS1990A 资料[EB/OL].www.maxim-ic.com.cn,2008-01-23.
[3] 王祖强,于建华 iButton 的工作原理及其特点[J].电子技术应用,2003(1).
[4] 李辉,李艾华.智能信息载体iButton 及其在点检系统中的应用[J].新技术新工艺,2007(2).
[5] 魏小龙.MSP430 系列单片机接口技术及系统设计实例[M].北京:北京航空航天大学出版社,2003.
[6] 李志明,戴华平.信息纽扣DS1991 在预付费水表中的应用[J].工业控制计算机,2005,18(9):56-57.
[7] 李贻涛,邢晓敏,佟科.全新防误闭锁系统电子锁的研究[J].电工技术,2002,12:44_45.
推荐文章
论坛热帖