摘要: 本文设计以ATmega128 单片机为核心的网络型门禁控制系统,采用了小型嵌入式 TCP/IP 协议栈uIP0.9 和嵌入式数据库技术,实现了网络技术和门禁系统的结合,具有较强的 实用性和组网的灵活性,为构建大规模跨地域的门禁控制管理提供了可能。 关键词:门禁控制系统;嵌入式数据库; uIP0.9
1 引言 随着计算机技术和网络技术的迅猛发展,门禁管理系统不断朝着集成化、智能化、网络 化与分布式的方向发展。近年来,世界范围内以太网环境的基本形成突破了传统通信方式的 时空限制和地域障碍,使得基于网络环境的门禁管理系统的设计和开发成为未来门禁系统发 展的重要方向。在门禁系统中引入TCP/IP 技术,不仅可满足人们对出入控制系统日趋复杂的 要求,同时也使远程和大范围门禁控制的系统组建成为可能。 2 uIP0.9 协议栈概述 uIP0.9 是一个适用于8/16 位机上的小型嵌入式TCP/IP 协议栈, 简单易用、资源占用 少是它的设计特点。它去掉了许多全功能协议栈中不常用的功能,而保留了网络通信中所必 要的协议机制。开放的代码使开发者可以完整地了解这个协议栈,并能够根据应用要求作一 定程度的修改,将其移植到实际的嵌入式系统中。 其设计重点放在IP、ICMP 和TCP 协议的实现上,它将这三个模块合为一个有机的整 体,而将UDP 和ARP 协议实现作为可选模块。uIP0.9 的体系结构如图1 所示。 uIP0.9 处于网络通信的中间层,其上层协议在这里被称之为应用层,而下层为网络设备 驱动。为了节省资源占用,简化应用接口,uIP0.9 在内部实现上作了特殊的处理: ① 注意各模块的融合,减少处理函数的个数和调用次数,提高代码复用率,以减少ROM 占用。 ② 基于单一全局数组的收发数据缓冲区,不支持内存动态分配,由应用层负责处理收 发的数据。 ③ 基于事件驱动的应用程序接口,各并发连接采用轮循处理,仅当网络事件发生时, 由uIP0.9 内核唤起应用程序处理。这样,uIP0.9 用户只须关注特定应用就可以了。传统的TCP/IP 实现一般要基于多任务处理环境,而大多数8 位机系统不具备这个条件。 ④ 应用程序主动参与部分协议栈功能的实现(如TCP 的重发机制,数据包分段和流量 控制),由uIP0.9 内核设置重发事件,应用程序重新生成数据提交发送,免去了大量内部缓 存的占用。基于事件驱动的应用接口使得这些实现较为简单。

在 uIP0.9 中,基于速度、代码效率和堆栈使用等方面的考虑,大部分接口函数是通过 宏定义的方式来使用uIP0.9 提供一系列函数,完全可以被看作一个代码库。图2 描述了 uIP0.9、系统底层和应用程序三者之间的关系。

uIP0.9 提供了两个函数给系统底层:uIP_Input(),uIP _Periodic()。应用程序向uIP0.9 提 供一个调用函数uIP_Appcall (),在网络事件或计时事件发生时进行调用。同时,uIP0.9 向应用程序提供了一些与协议栈相关的接口函数,应用程序根据接口函数提供的信息或者状 态,执行相应的操作。如图2 所示,uIP_Appcall ()是一个用户定义的函数,唯一对应着一个 应用。由于uIP0.9 的特殊性,该函数必须协助完成一些TCP/IP 层的功能,如重传等。 uIP_Input(),uIP_Periodic()实质上是使用参数不同,前者在网络设备接收到新数据时调用, 后者则是对定时器事件的响应,周期执行。 uIP0.9 不同于其它的TCP/IP 协议栈,它的某些网络层的功能需要应用程序的介入才能 完成,如重传机制、确定最大传输单元等。需要重传时,由应用程序重新生成数据,以减小 存储器使用;在协商确定最大传输段单元MSS 后,由应用程序保证发送数据块的大小不超 过该值。 uIP0.9 实现了TCP/IP 协议栈中的四个基本协议:ARP、TCP、IP 以及ICMP 协议。解 析协议ARP 完成IP 和MAC 的对应,以完成数据包的物理交付。IP 层代码有两个责任:确 信数据包头文件的正确性和依据TCP、ICMP 区分数据包的类型。在IP 层没有进行分段和 重组,只是由9 个简单的if 语句组成IP 层代码。 3 嵌入式数据库 数据库是整个管理系统的核心。实时监控、卡片及人事信息管理等,都离不开系统数据 库,人员的进出记录以及进出权限和通行时间也都记载在数据库中。嵌入式数据库指的是随 机存贮器 RAM 中的数据结构及数据信息,它在系统运行过程中不断地刷新,其内容直接反 映了门禁节点的运行状况。本系统包括两类数据库:A.系统数据库,主要对硬件的设定,包 括控制器类型、读卡机、门、报警输入、报警输出、通讯格式及参数。B.持卡人信息,包括 持卡人个人信息,每日与每周时间区,节假日,出入组,防反潜,有效期限等。 4 门禁系统的硬件设计

门禁控制器的硬件框图如图3 所示,本系统的控制核心采用ATmega128 微处理器,网络 部分电路由RTL8019AS 微型网关芯片和RJ45 组成,负责收发数据包、地址解析、冲突检测等 网络通信功能。网络设备驱动即通过RTL8019AS 的驱动实现,主要包括三部分:完成网卡芯 片的上电初始化、数据的发送和以太网数据的接收。选择ATmega128 的一个定时器来为 TCP/IP 协议中与时间有关的事件定时。 系统的编程接口可与计算机的串口连接,计算机可通过该端口向控制器下载BIOS 和程 序。系统还包括信号检测、输入、输出、RS232/485 总线通信,分别实现读卡、报警信号检 测、开门、通信等功能。 门禁控制器的各种配置信息:日编程、周编程、节假日编程、卡定义信息、读卡器定义 信息,以及刷卡记录和报警信息都要存储在本地控制器中,因此RAM 空间的扩展显得尤为重 要,本系统扩展了62256。系统设计时还采用了备份电池供电,从而保证门禁控制器卡号、 日编程、周编程等信息永久存储在存储器内而不受掉电的影响,另外使用了实时时钟芯片 DS1302,DS1302 具有秒、分、小时、日、月、星期、年的计时功能,避免突然掉电时对时 钟的修改。 5 结束语 在当今网络发展日新月异的时代,消费者需要的智能化产品都要求具备更好的网络功 能,这样就更容易实现局域网内部控制或利用成熟的因特网技术实现远程控制,并能够在特 定条件下,升级产品的预存指令集,实现功能的更新。随着整个安防行业朝网络化发展,门 禁控制器也要普及网络化。本文创新点在于将 ATmega128 应用在嵌入式门禁控制系统中, 移植了小型嵌入式TCP/IP 协议栈uIP0.9,使系统能够顺利地接入以太网,具有很高的使用 价值和很强的可操作性。项目经济效益(10 万元) 参考文献: [1] 郑冰,贾红云,赵立本. 基于ARM 的指纹识别门禁系统设计[J].微计算机信息, 2007,2-2:140-141。 [2] 谢兵,面向嵌入式系统的网络通信协议uIP[M].电子技术应用,2003(12)60-62。 [3] 徐平,陈彦. uIP0.9 协议栈在门禁控制器中的应用[M].仪器仪表学报,2006。 [4] 张懿慧,陈泉林.源码开放的TCP/IP 协议栈在远程监测中的应用[M].单片机与嵌入 式系统应用,2004(11)61-64。 [5] 李华,孙晓民,李红青,徐平,张新宇.MCS-51 系列单片机实用接口技术[M].北 京:北京航空航天大学出版社,1993。 [6] 耿德根,宋建国,马潮.AVR 高速嵌入式单片机原理与应用[M]修订版.北京:北京航 空航天大学出版社, 2002.8-22。
|