基于GPRS和射频IC卡的分布式考勤管理系统
大庆石油管道公司负责石油管道的维护和提供石油运输的动力部分,所以油泵工作站分布在广袤的原野上。由于距离和工作强度的不同,事故突发性强,员工频繁更替在各工作站工作,出勤和岗位工资就非常难以统计。根据这种实际情况,采用总控中心和各考勤终端的总分模式,每个员工以射频IC卡作为ID识别卡,通信媒介采用GPRS网络,适合管道公司的工作站分布广泛的实际情况。
1 GPRS网络
GPRS 是基于现有的GSM网络实现的,需要在现有的GSM网络中增加一些节点,网关GPRS支持节点GGSN,服务GPRS支持节点SGSN。GGSN在GPRS网络和公用数据网之间起关口站的作用,它可以和多种不同的数据网络连接;SGSN记录移动设备的当前位置信息,并在移动设备和各种数据网络之间完成移动分组数据的发送和接收,为服务区内所有用户提供双向分组路由。GPRS网络框图如图1所示。
图1 GPRS网络框图
本系统采用GPRS网络作为通信媒介,因为它有很多优势:价格合理,中国移动公司提供的GPRS服务按照流量计费,也可采取包月的形式,价格低廉;传输速率高,实时性好,数据量大,GPRS可提供高达115 kbit/s的传输速率;接人时问短,分组交换接人时间少于1 s,基于IP协议,可提供强大的Internet接人能力;永远在线,可靠性高,抗干扰能力强。
2 系统总体设计
根据实际需要确定以下系统工作流程:员工进入公司后,首先用总控中心软件通过串行口控制发卡器发卡,即总控中心软件读取Wiegand 26 bits协议编码的射频卡号并赋予一个员工编号,然后通过Internet发送给分散在各地的远程终端,使其储存员工的射频IC卡号和员工编号,当员工在各个终端打卡时,终端记录下打卡时间和员工编号,各终端定时分别通过GPRS模块把定时段内的员工登陆情况和终端编号发送给Internet上的总控中心,总控中心按员工编号存贮登陆情况,并根据他们的登陆终端的不同赋予不同工资权值,做到工资和考勤的管理。系统构成如图2所示。
图2 系统构成简图
3 硬件终端的构成
根据系统的需要,各终端基于GPRS网络的通信是系统硬件终端设计的难点。文中采用SIMCOM 公司生产的GPRS模块SIM300 -3j作为无线通信部分,其价格比同类模块低廉,其且功能强大,内嵌标准的TCP/IP协议,使控制MCU端无需涉及复杂的TCP/IP协议栈的编写;提供1TrL电平的标准异步串行口,这样MCU和模块的通信就是简单的串行通信。由于采用TTL电平,在硬件设计上不用专门的电平转换芯片,只需采用三线制进行简单连接,就可实现可靠的通信;外围资源丰富,具备A/D、SPI、音频、麦克接口等;通用、简单、易上手的AT指令覆盖GPRS所有功能,提高开发速度。但是,在300的外围电路设计中需要特别注意以下几点。
电源部分:由于300采用3。4~4。5 V供电,低于3。4 V则自动关闭模块,而且在进行TCP/IP传输时,消耗的功率很大,所以要求电源必须能提供2A的峰值电流。这就要求电源模块在提供2 A电流的情况下还要有很小的压降,还要注意整个系统的其他器件都是用5 V供电。所以稳压芯片的输入电压和输出电压差要小于1 V,这样才能使系统用一个电源供电,减小干扰。通过比较,选择MICREL公司生产的可调电压稳压芯片MIC29302bu这款芯片提供3 A的输出能力,而且满负载的压降只有350mv,输入和输出之间只要满足I V的压差就可工作,完全满足系统的需要。
对300模块还要外置一个卡的卡座,为了防止静电损坏,在靠近SIM片座各引脚的位置放置瞬变电压抑制二极管,而且还要在各信号线上串联一个20 Q的电阻,起到匹配作用。
SIM300的最关键部分是天线和射频转接线的选取。射频连接线应考虑的是射频信号的损耗,做到越小越好。根据实地测量,射频连接线的插入损耗在GSM900通讯网络中小于1 dB才可以采用。天线的阻抗50 Q,收发驻波比小于2。根据以上要求采用
日本Murata公司的MM9329—2700B射频频转接器和通用的棒形天线。
液晶显示模块、实时时钟模块、EPROM存储模块和串行通信模块都是作为一个考勤系统的通用模块,图中标注了采用的芯片。
读卡模块采用标准的Wiegand26bits 只读读卡器,读卡器输出Wiegand26bits编码的数据,如图3所示。
图3 数据信号波形图
由波形图可知,26 bits的0和1是由DATAo和DATA 交替低电平确定的,而且有效数据持续时间很短,所以应该把读卡器的DATA。线和DATA 信号异或后接MCU的中断管脚,这样可有效避免信号的丢失。
综上所述,硬件终端的框图如图4所示。
图4 硬件终端框图
4 软件设计
在以上的硬件基础上进行软件的编写,采用标准C语言 实现主要功能:初始化各外围的功能模块,显示当前的时间,提供系统的时钟,存储并通过GPRS模块发送员工打卡的参数等。具体的简化流程图如图5所示。在软件编写时,难点在GPRS模块设计部分,主要包括:模块的初始化和数据的TCP传输。模块初始化方面采用上电自动复位开机,初始化要完成GPRS网络登陆的初始化过程。MCU通过串行口发送AT命令来完成。
AT+CGDCONT: 定义pdp上下文
AT+CGAT-F;连接gprs网络
AT+CGREG;GPRS网的登陆状
图5 考勤终端简化流程图
注意:在上电后要保持至少3 S的等待时间才可以发送标准的AT指令进行初始化控制,否则,发送的AT命令将无效。在以上命令的返回值都为OK时,说明网络登陆成功,这时就可以进行数据的传输。文中采用TCP协议进行传输,这样可保证数据传输的可靠性。利用下面的AT¨ 命令完成。
AT+CIPSTART;建立TCP/UDP连接
AT+CIPSEND;发送数据
AT+CIPCLOSE;关闭TCP连接
上位机总控中心软件采用VB编写,软件利用Winsockl6j控件编程。对SIM300的指定的上位机端口进行监听,随时接受传输数据。
注意:对于已经建立的TCP链路,如果在一段时间内没有数据传输,这条链路就可能断掉,所以在实际应用中,如果需要维护这条链路,要每隔一段时间(实测得到,这里为5 min)发送一个心跳包来维系链路;也可在传输数据前用AT+CIPSTATUS命令来检测网络状况,发现断开后,重新初始化链路。
5 结束语
把GPRS模块SIM300和射频IC卡应用于这套分布式考勤系统中,很好地解决了对于工作点分散的企业考勤难的问题,实际应用运行良好。对这一系统的考勤终端改造和上位机软件升级,还可以很好地应用于无线自动抄表系统、无人看守系统、远程数据采集系统等领域中。