物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  其他  >  正文

基于二代身份证的RFID门禁考勤系统的设计

作者:程玉娟,姚健东,王宜怀
来源:一卡通世界网
日期:2012-12-10 14:20:40
摘要:系统以飞思卡尔推出的内部集成网络模块的MCF52233微控制器为基础, 通过射频模块( RFID)读取ID(二代身份证) 中的序列号, 同时实现门禁和考勤功能, 并具有“脱机”和“联机”两种工作模式。该系统现已进入实际应用阶段。
关键词:RFID门禁考勤

  摘要:系统以飞思卡尔推出的内部集成网络模块的MCF52233微控制器为基础, 通过射频模块( RFID)读取ID(二代身份证) 中的序列号, 同时实现门禁和考勤功能, 并具有“脱机”和“联机”两种工作模式。该系统现已进入实际应用阶段。

  0 引 言

  M CF52233是飞思卡尔公司推出一款主要用于工业控制的32位芯片[ 1] , 具有稳定性好、可靠性高、接口丰富、存储空间大等优点, 并且集成了网络模块, 已经广泛应用于工业控制领域。射频识别是一种非接触式的自动识别技术, 目前已广泛应用于物流、制造、公共信息服务等行业[ 2]。

  本系统通过射频模块读取二代身份证的序列号, 然后对该序列号作如下处理: 第一, 使用快速查询方法, 查询MCF52233的Flash中已存储的序列号。若查询成功, 电子门自动打开, 授权刷卡人员进入, 具有门禁的功能。第二, 若禁控制器处于脱机工作状态, 则ID序列号暂存于Flash 中, 等联机后再把ID序列号和刷卡时间上传到服务器; 若门禁控制器处于联机工作状态, 则把ID 序列号和刷卡时间直接通过网络或USB 接口上传到服务器。

  1 系统总体架构

  基于二代身份证的RFID门禁考勤系统(以下简称门禁考勤系统)由二代身份证ID采集器、门禁控制器、服务器管理软件和可控电子门组成, 使用二代居民身份证作为电子标签, 无须购买专门的射频卡, 为用户节省成本, 使用方便。

  由于门禁控制器脱机工作时, 能够独立识别ID 序列号,因此要预先把ID序列号下载到门禁控制器的F lash 中, 此时需要使用ID采集器预先进行ID序列号的采集。门禁控制器具有以太网和USB接口, 同时支持Type A标准(M ifire 1卡)和Type B 标准(二代身份证) 射频卡, 能根据射频卡上的信息自动识别持卡人是否被授权进入, 从而控制电子门的开和闭; 另外, 它还能记录持卡人进出时间, 具备考勤的功能。图1所示为门禁考勤系统的执行过程。

图1 门禁考勤系统总体框图

  2 系统硬件组成

  本系统选择80引脚的M CF52233作为主控芯片, 主要是由于该芯片引脚功能比较丰富, 同时包含网络模块、IIC 模块( 用于对时钟芯片PCF8563进行数据传输)和QSPI模块(用于对液晶进行控制)。该芯片虽不包含USB模块, 但可使用飞思卡尔生产的M 68HC908JB8的USB 接口。本系统需实现的功能模块包括: GPIO、UART、QSPI、IIC、PIT、Flash及USB模块[ 1] 。图2 为系统硬件组成框图。

图2 系统硬件组成框图

  刷卡记录包括刷卡时间和卡号, 因此使用PCF8563时钟芯片保存系统时间, 同时使用MCF52233内部的定时器( PIT) 模块计时, 以延长PCF8563使用的纽扣电池的寿命。

  3 系统软件设计

  3. 1 MCU方软件设计

  M CU 方软件主要分为两大部分: 身份证信息采集软件和门禁控制器软件。

  身份证信息采集软件的主要功能: 对ID序列号进行采集,并上传到服务器方的数据库中。

  门禁控制器软件的主要功能: ID 索引表和序列号的写入功能、配置参数信息的写入功能、刷卡识别并开门功能和刷卡信息上传功能。

  为了能够在主控芯片的F lash 中快速查询到ID序列号, 本系统对Flash区域进行了重新划分(下文介绍), 其中两区域分别用于存储ID索引表和ID序列号。身份证信息的写入程序主要是将ID索引表和ID 序列号两部分信息写入到门禁控制器中。该信息的写入都要通过握手信号, 以确保正确的信息写入到MCF52233的Flash中。下面主要介绍ID 序列号写入F lash的过程。图3所示为ID序列号写入F lash的执行过程。

图3 ID序列号的写入流程图

  配置参数信息的写入流程与ID序列号的写入流程一致, 这里不再描述。

  刷卡识别并开门程序主要实现以下功能: 将当前刷卡的ID序列号读出; 检查该ID 序列号的有效性; 若ID序列号有效, 则开电子门并将该刷卡记录存入到Flash中。检查身份证ID有效性的程序主要包括三部分函数: 总的查询函数、根据特征值(由ID序列号累加求和取模得到) 到ID 索引表中取得分组首末地址函数和在分组中查询ID序列号函数。图4所示为查询ID 序列号的总流程图。

图4 查询ID 序列号的总流程图

  刷卡信息上传程序主要是将刷卡的信息上传到服务器方入库, 以备查询使用。上传的信息主要包含刷卡时间和ID 序列号。如果每刷一条信息就写入F lash, 则必定对F lash要进行频繁的擦写, 这样会降低系统的效率。为了提高系统效率, 采用临时缓冲区的方法, 只有当刷卡记录满一页, 才写入到Flash中。图5所示为刷卡信息上传流程图。

图5 刷卡信息上传流程图

  3. 2 服务器方软件设计

  服务器方软件主要实现以下的功能: ID序列号采集功能,对门禁控制器的操作, 人员信息和刷卡信息的数据库操作功能。

  ID序列号采集功能是采集ID序列号并保存到服务器的数据库上。

  门禁控制器的操作主要有以下几个方面: 门禁控制器系统时间的设置、人员信息的下载、配置参数的下载和刷卡记录的上传等。

  人员信息的数据库操作主要包括: 人员信息的添加、修改、查询和删除操作。

  刷卡信息的数据库操作主要包括:刷卡记录的查询和删除操作。

  3. 3 服务器方数据库设计

  本系统的服务器方数据库主要包含以下两个表: 人员信息表和刷卡信息表。

  人员信息表用于保存人员的基本信息, 必需包含字段: 人员编号、姓名、性别、ID序列号, 其中人员编号是主键, 用于唯一标识每条记录。各字段的长度如下: 人员编号10字节, 姓名10 字节, 性别1字节, ID序列号16字节。

  刷卡信息表用于保存刷卡信息。刷卡记录通过以下方式获得: 服务器读取门禁控制器中的刷卡信息(仅包含ID序列号和刷卡时间), 根据ID序列号查询人员信息表, 获得人员编号和姓名,然后同刷卡时间一并存入到刷卡信息表中。刷卡信息表包含以下字段: 人员编号10字节, 姓名10字节, 刷卡时间(日期型)。

  4 设计要点的讨论

  4. 1 F lash分配设计

  M CF52233是Co ldFire 的一款芯片, 其可寻址4GB 的地址空间, 地址范围为0x00000000 ~ 0xFFFFFFFF。该芯片具有256KB的F lash和32KB的SRAM, 其Flash存储器的地址范围是0x00000000~ 0x0003FFFF[3] 。本系统的Flash 存储器划分为5大部分: 程序区域、门禁控制器配置区域、ID索引表区域、ID 序列号区域和刷卡记录信息区域, 具体的划分如表1所示。

表1 Flash区域划分

  ID 索引表每项为8字节, 分别存放每组的起始地址和结束地址; 每个ID序列号为16个字节, 存放8字节的ID 号和预留8字节; 每条刷卡记录信息为16个字节, 存放8 字节的刷卡时间和8字节的ID序列号。

  4. 2 ID序列号查询过程

  为了能够在MCF52233的Flash中快速查找到匹配的ID序列号, 作者对几种常用的查询方法进行比较, 发现异或和累加和取模的查询效率比较高。通过高端软件模拟大量数据, 计算标准差偏移程度, 最终得到累加和取模的效率更高。因此, 本系统采用累加和取模的方法得到该ID序列号的特征值, 在Flash中把ID序列号分为两部分存储: ID索引表和ID序列号表。ID索引表中存储的是模相同的ID 序列号在Flash中的起始地址和结束地址。图6所示为查询ID序列号的详细执行过程。

图6 ID序列号的查询流程图

  ID序列号查询过程调用以下函数:

  u int8 SelectID( u int8 personID[ ], u int8 n leng th)

  其功能为: 根据给定的ID 序列号, 查询Flash的ID序列号表中是否存在该ID序列号。参数personID为要查询的ID序列号数组; n length为ID序列号的字节数。

  SelectID内部又调用以下两个函数:

  ( 1) u int8 FetchIDGroupAddressFrom IDIndex ( uint8 nIndexVa lue, uint32* pH eadAddr, u int32* pEndAddr)。

  其功能为: 根据ID序列号的特征值取得该ID序列号所在分组的首末地址。参数nIndexValue 为ID 序列号的特征值;pH eadAddr为ID 序列号所在分组的首地址; pEndAddr为ID 序列号所在分组的末地址。

  ( 2) uin t8 Se lec tIDFrom IDGroup( uin t8* pH eadlAddr, u int8* pEndAddr, u int8 pe rsonID[ ], u int8 nLeng th)。

  其功能为在ID序列号分组中查询是否存在指定的ID序列号。参数pH ead lAddr为ID分组的首地址; pEndAddr为ID分组的末地址; personID为要查询的ID 序列号的数组; leng th 为ID序列号的字节数。

  5 结束语

  本系统采用全国统一发行的第二代身份证作为RFID识别的电子标签, 集成了以太网和USB 接口, 具有“脱机”和“联机”两种工作状态, 同时具有门禁和考勤的功能。本系统经半年的实际使用表明能够在现场高效、稳定地运行。本文对局域网内的嵌入式系统应用、现有只读卡系统的升级换代以及二代身份证的应用扩展具有参考价值。

  参考文献

  [ 1 ] 王宜怀. 基于32 位ColdF ire构建嵌入式系统[M ] . 北京: 电子工业出版社, 2009.

  [ 2 ] 孙鹏. 基于嵌入式以太网的RFID 系统应用技术研究[ D] . 苏州:苏州大学出版社, 2008.

  [ 3 ] Freescale M CF52233 MCF52233RM [ Z] . 2004. h ttp: / /www. freesca le. com.