APP下载

基于RS—485总线的指纹锁监控管理系统设计

2012-04-29宋志强

计算机时代 2012年11期
关键词:指纹锁串口通信监控

宋志强

摘要: 对基于RS-485总线的指纹锁监控管理系统进行了研究,实现了与指纹锁相关的通信协议。介绍了主要功能模块,给出了显式调用动态链接库的方法,使用Victor串口VCL控件与指纹锁进行通信。主机软件采用C++ Builder 6开发,数据库采用InterBase 6.5。通过软硬件结合的模块化设计,使系统能以主从模式或对等模式进行节点间通信。实际应用结果表明,该系统运行稳定可靠,具有一定的实用性和推广价值。

关键词: 指纹锁; C++ Builder; 串口通信; 监控

中图分类号:TP311.52文献标志码:A 文章编号:1006-8228(2012)11-21-02

Design of monitoring and control system for fingerprint locks based on RS-485 bus

Song Zhiqiang

(Department of Information, Suzhou Institute of Trade & Commerce, Suzhou, Jiangsu 215009, China)

Abstract: The monitoring and control system for fingerprint locks based on RS-485 bus is investigated. The communication protocol relevant to fingerprint locks is realized. The main function modules are introduced. The host software is developed by using C++ Builder 6 and the database by InterBase 6.5. Because of module design of hardware and software, the system can work at master-slave mode or peer-to-peer mode. The real application shows that this system runs stably and accurately. The technology and methods adopted in this system are practical and worthy to be promoted.

Key words: fingerprint lock; C++ Builder; serial communication; monitoring and control

0 引言

指纹锁是一种以人体指纹为识别载体和手段的智能锁具,它是计算机信息技术、电子技术、机械技术和现代五金工艺的完美结合体。指纹锁一般由电子识别与控制、机械联动系统两部分组成。指纹的惟一性和不可复制性决定了指纹锁是目前所有锁具中最为安全的锁种[1]。随着人们生活水平的不断提高,人们对生活品质的追求也日益提高,越来越多的人过上了智能化的生活,只需手指轻触一下,便能开门。指纹锁安全、方便、实用,非常适合写字楼、办公室、物业、宾馆、酒店等集中统一管理。

1 系统总体结构

本指纹锁的核心为Analog Devices公司生产的嵌入式微处理器ADSP-BF533,指纹锁与主机通过RS-485总线相连,系统结构框图如图1所示,RS-485接口连接成半双工通信方式[2]。由于PC机只带有RS232接口,故采用Moxa公司的TCC-80I作为RS-232/RS-485转换器。在单片机端通过MAX487芯片将485信号转换成单片机需要的串口信号,系统中可连接的下位机最多可扩展至128个[3]。

2 指纹锁工作原理

指纹锁是基于RS-485总线的联网型指纹锁,采用锂电池供电,既可以独立工作,又可以联网使用。首次使用时,可以通过指纹锁或主机监控管理软件进行指纹登录。之后,当用户需要开门时,只需将手指平压在指纹采集窗口上,系统便自动完成指纹图像的采集和特征提取,与存储在Flash中的指纹特征进行1:N比对,若比对通过,则指纹锁控制电机转动开门,同时指纹锁记录下开门信息,如时间、指纹ID等,以便主机进行查询。

图1系统结构框图

本文采用了软硬件结合的方法实现了载波监听多点接入/冲突检测[4-6],如果系统检测到不少于2个的指纹锁同时使用总线时,则令让出总线避障。指纹锁根据各自的优先级,在等待一段随机时延后,再重新侦听。这样就能解决因为多主而带来的总线冲突问题,优先级较高的指纹锁可优先发送数据。

3 通信协议设计

PC机(上位机)与指纹锁(下位机)通信采用自定义的通信协议,波特率为9600bps,8位数据,1位停止位,无校验。协议的帧格式如表1所示。

表1通信协议的帧格式

[[STX\&SID\&DID\&FC\&CMD/ACK\&Len_L\&Len_H\&DATA\&DES\&CRC8\&ETX\&1B\&1B\&1B\&1B\&1B\&1B\&1B\&不定\&1B\&1B\&1B\&]]

STX:帧首,固定为0XA0;

SID:源地址;

DID:目的地址,0XFF时,表示任意节点都需响应;

FC:帧计数位,重发帧标志;

CMD/ACK:命令/应答标志;

Len_L:数据长度低位;

Len_H:数据长度高位;

DATA:要传送的参数或数据。数据长度不定,若传输指纹特征数据时,最多可达512个字节;

DES:0X00:数据未加密;0X01:表示数据采用DES加密,接收方收到数据后要先进行解密;

CRC8:CRC类型为CRC-8-Dallas/Maxim,多项式为x8+x5+x4+1。其值是对“SID”、“DID”、“FC”、“CMD/ACK”、“Len_L”、“Len_H”、“DATA”、“LEN”,“DES”校验得到的。帧首和帧尾不参与校验;

ETX:帧尾,固定为0XA1。

4 监控管理系统软件设计

系统采用面向对象的设计思想和面向对象的程序设计方法,采用Borland C++ Builder 6作为开发工具,操作系统为Windows XP Professional,数据库选用InterBase 6.5。

4.1 系统主要模块

监控管理系统主要由系统设置、指纹登录、指纹下载、串口设置、用户管理、查询、报警、下载程序等模块组成。

系统设置:主要用于指纹锁地址与房间号的设置、指纹锁安全级别设置等。

指纹登录:完成用户指纹图像的采集、提取、比对、存储等操作,根据特定需要可对用户的开门权限进行设置,如对允许的开门时间段进行设置,登记成功的指纹特征信息存储在数据库中。

查询:管理系统存储了所有的进出记录、状态记录,管理员可以按不同的条件进行查询,对查询结果可以生成报表,同时该模块也具备考勤功能。

报警:指纹锁具有自动检测功能,非法侵入或低电压时,指纹锁会发出报警提示音,同时将报警信息传送给PC端的监控管理系统,以便管理人员及时作出响应。

4.2 动态链接库调用

本文通过Windows的API函数来显式调用动态链接库(DLL),步骤如下:

⑴ 调用LoadLibrary函数装载DLL获得句柄;

⑵ 调用GetProcAddress函数获取导出函数的指针;

⑶ 用函数的指针调用函数;

⑷ 使用完成后,用FreeLibrary释放DLL。

显式调用DLL不需要在工程中加入lib库和相应的头文件,只需把动态库放入指定的目录下即可。本系统的核心调用代码如下:

HINSTANCE hLIBFinger; //定义句柄变量

//指向FeatureExtraction函数的指针

Short (*FeatureExtraction1)(unsigned char *idata,

unsigned char *fdata,unsigned char *var);

//装载XTYDSP.dll

hLIBFinger=LoadLibrary("XTYDSP.dll");

//得到指向特征提取函数FeatureExtraction的指针

FeatureExtraction1=(short(*)(unsigned char*, unsigned char*,

unsigned char*))GetProcAddress (hLIBFinger,

"FeatureExtraction");

//调用特征提取函数提取指纹特征值

k=FeatureExtraction1(Buffer,FeatureData,var);

//将XTYDSP.dl从程序中卸载

FreeLibrary(hLIBFinger);

4.3 串口通信实现

C++ Builder 6可以利用 Windows的API函数或控件来实现串口通信。本文采用的控件为Victor串口通信控件,该控件功能较为强大。

对于一些正常的开门信息,实时性要求不高,系统采用主从模式,由主机通过定时器控件循环轮询各指纹锁,各指纹锁收到数据帧后将自身的地址与数据帧中的地址对比,若相同则作出响应。对于非法侵入、低电压报警等信息,则由指纹锁以多主模式发送,这样提高了系统的实时性和快速响应性。

5 实际运用案例

该监控管理系统已经投入到多个科技园的写字楼中试运行,管理系统连续不间断运行了近6个月,没有出现死机等异常现象,效果良好。指纹锁监控管理系统界面如图2所示。

图2指纹锁监控管理系统界面

6 结束语

本文利用C++ Builder通过串口通信控件获取数据,该系统已经通过实验验证,完全达到了所提出的技术要求。开发的基于RS-485总线的指纹锁监控管理系统软件运行稳定可靠,使用方便。目前该系统已成功交付用户使用并得到用户好评,证明了其适用性和可靠性。

参考文献:

[1] 中国指纹产品网.指纹锁[EB/OL].http://www.zhiwenwangcn.com/

zhiwensuo/.

[2] B&B Electronics.RS-422 and RS-485 Application Notes[EB/OL].

http://www.bb-elec.com,2001.

[3] 吴秋明,和卫星,陈晓平,黄孟波,吉奕.基于RS-485总线的PC与多

单片机间的串行通信[J].微计算机信息,2006.22(23):143-145

[4] 徐炜,尤佳,王治祥.具有硬件CSMA/CD的RS-485总线控制网设

计[J].武汉理工大学学报,2003.25(8):60-62

[5] 胡兴刚.基于差别延时解决RS-485总线冲突的一种方法[J].测控技

术,2008.27(2):57-59

[6] Jia H,Guo Z.Research on the technology of RS485 over Ethernet

[C].Henan,China:IEEE Computer Society,2010.

猜你喜欢

指纹锁串口通信监控
The Great Barrier Reef shows coral comeback
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
ATM设备中加钞机芯钞箱的技术研究
先进的指纹锁
指纹锁、电子锁应急快速开启的研究
基于Qt和Flash的嵌入式Linux软件架构设计
串口通信在智能家居监控系统中的应用
基于OpenCV的室内照明智能控制系统设计与实现
指纹锁 拉链