基于射频识别技术的门禁系统设计
处于发送阶段,将会占用RS485通信总线,这样其他读写器就无法使用RS485通信总线与PC机通信。因为ATmega16初始化后,其I/O口处于状态‘1',这样RS485将处于发送状态,这样会占据整个总线。为了解决这个问题,在设计通信接口电路时,将ATmega16的P3.4 经过反向器后再接在SP485R上。当RS485总线处于空载状态时,RS232/RS485转换器上的发送器和所有门
发送程序开始置发送状态发送数据长度字节发送2-3个前导字节发送数据域发送帧头发送地址域(A0-A5)发送帧头发送校验字节发送帧尾打开接收中断,置接收状态发送程序结束发送命令字节
图4.9 数据发送部分
禁系统通信接口上的发送器均呈高阻态,传送线A, B上的电平未知,各门禁系统接口上的接收器保持为最后一次接收的逻辑状态。为了保证RS485总线处于空载状态时各门禁系统通信接口上的接收器输出逻辑‘1',在RS232/RS485转换器和门禁系统RS485总线通信接口电路设计时分别将传送线A上拉和传送线B下拉,上拉电阻等于下拉电阻并且根据实际应用中RS485通信系统包括的门禁系统的台数以及匹配电阻的连接情况来计算。另外,为了防止RS232/RS485转换器和门禁系统RS485通信接口上接收器的共模电压超过RS485接收器的极限接收电压,即大于+12V或小于-7V,将门禁系统工作电源和读写器RS485收发器的电源隔离,并且使用光耦NEC2501实现隔离,彻底消除共模电压的影响:最后在PC机相连的RS232/RS485转换器上和距离PC机最远的门禁系统RS485总线通信接口上均连接匹配电阻以吸收RS485总线上的反射信号,保证传输信号的准确。
30
黄河水院自动化工程系毕业论文
匹配电阻的大小等于传送电缆的特性阻抗,本系统为120欧姆。对于软件上来说。由于RS485总线通信是异步半双工的通信,在某一时刻通信总线上只允许呈现一种状态。为了可靠通信,在RS485总线状态切换时需要适当延时后再进行数据发送或者接收。在软件编制时要注意保护现场,即在串口通信的下位机收发程序的起始部分对ATmega16的内部寄存器ACC, PSW, B等压入堆栈进行保护,而在子程序结束时再从堆栈中释放出来。这样可以保证串口通信工作不对系统其他功能模块产生影响。在通信协议设计中,每一帧数据传送采用异或校验,数据发送完毕后利用累加和校验来确保通信的可靠性。
4.5显示模块
显示子程序的主要功能是对当前的门控状态进行显示,显示函数首先判断是写命令操作还是写数据操作,若是写命令操作,则根据命令进行相应的操作,如清屏、设置显示模式等;若是写数据操作,则在显示器上显示相应数据。程序流程图如图4-5所示。
显示程序 液晶初始化 设置第一行显示数据地址 显示第一行数据 延时 设置第二行显示数据地址 显示第二行数据 延时后,清屏 结束 图4-5 显示子程序流程图 显示程序核心程序代码如下所示: void LcdShowError()
31
基于射频识别技术的门禁系统设计
{ WriteLcdCom(0x38); //显示模式设置
WriteLcdCom(0x0c); //开显示,无光标,光标不闪烁 WriteLcdCom(0x06); //读写字符后地址指针加一设置 WriteLcdCom(0x80); //第一行数据指针地址 for(k=0;k<16;k++) {WriteLcdDat(str3[k]); delay(20); }
WriteLcdCom(0xc0); //第二行数据指针地址 for(k=0;k<16;k++) { WriteLcdDat(str4[k]); delay(20);} WriteLcdCom(0x01); { LCDRW =00; LCDRS=0; P0=c; LCDE=1; LCDE=0;
for(a=0;a<20;a++);}
void WriteLcdDat(unsigned char d) { LCDRW =00; LCDRS=1; P0=d; LCDE=1; LCDE=0;
for(a=0;a<20;a++);}
//切换到写数据
//切换到写命令
}
void WriteLcdCom(unsigned char c)
4.6上位机设计
4.6.1 上位机程序流程图
在本系统中,上位机主要完成管理人员登录、向下位机发送命令、接收下位机返回数据、判断数据有效性和显示用户信息。上位机程序流程图如图4.6所示。
32
黄河水院自动化工程系毕业论文
开始 进入用户登录界面 有管理权Y 进入门禁管理界面 单击自动发送命令按钮 向下位机发送命令 接收下位机返回数据 数据有效? N N 上位机显示非法卡 Y 上位机显示用户信息 N 退出? Y 结束 图4.6.1 上位机程序流程图
4.6.2用户登录界面设计
本设计中,由于用户信息是用户的隐私,并不是所有人员都对用户信息有管理权限,因此设计了用户登录界面,只有对用户信息有管理权限的管理者才能对用户做相关操作,如修改、查询等。用户登录界面如图4.6.2所示。
33
基于射频识别技术的门禁系统设计
图4.6.2 用户登录界面
用户登录界面核心程序代码如下所示:
procedure TForm2.Button1Click(Sender: TObject); var mUser,mPasword:string; begin
mUser:=Edit1.Text; mPasword:=Edit2.Text; if(Edit1.Text='') then begin
ShowMessage('用户名不能为空,请输入用户名!'); Exit; end;
if(Edit2.Text='') then begin
ShowMessage('密码不能为空,请输入密码!'); Exit; end;
if(ADOTable1.Locate('UserName',mUser,[])) then
begin if(ADOTable1.FieldByName('Pasword').AsString=mPasword) then begin Close; end else begin
ShowMessage('密码错误,请重新输入!');
34