基于ATmega128和TCP/IP技術(shù)實現(xiàn)網(wǎng)絡(luò)型門禁控制系統(tǒng)的設(shè)計
1、 引言
隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,門禁管理系統(tǒng)不斷朝著集成化、智能化、網(wǎng)絡(luò)化與分布式的方向發(fā)展。近年來,世界范圍內(nèi)以太網(wǎng)環(huán)境的基本形成突破了傳統(tǒng)通信方式的時空限制和地域障礙,使得基于網(wǎng)絡(luò)環(huán)境的門禁管理系統(tǒng)的設(shè)計和開發(fā)成為未來門禁系統(tǒng)發(fā)展的重要方向。在門禁系統(tǒng)中引入 TCP/IP技術(shù),不僅可滿足人們對出入控制系統(tǒng)日趨復(fù)雜的要求,同時也使遠程和大范圍門禁控制的系統(tǒng)組建成為可能。
2 、uIP0.9協(xié)議棧概述
uIP0.9是一個適用于 8/16位機上的小型嵌入式 TCP/IP協(xié)議棧, 簡單易用、資源占用少是它的設(shè)計特點。它去掉了許多全功能協(xié)議棧中不常用的功能,而保留了網(wǎng)絡(luò)通信中所必要的協(xié)議機制。開放的代碼使開發(fā)者可以完整地了解這個協(xié)議棧,并能夠根據(jù)應(yīng)用要求作一定程度的修改,將其移植到實際的嵌入式系統(tǒng)中。
其設(shè)計重點放在 IP、ICMP和 TCP協(xié)議的實現(xiàn)上,它將這三個模塊合為一個有機的整體,而將 UDP和 ARP協(xié)議實現(xiàn)作為可選模塊。uIP0.9的體系結(jié)構(gòu)如圖 1所示。
uIP0.9處于網(wǎng)絡(luò)通信的中間層,其上層協(xié)議在這里被稱之為應(yīng)用層,而下層為網(wǎng)絡(luò)設(shè)備驅(qū)動。為了節(jié)省資源占用,簡化應(yīng)用接口,uIP0.9在內(nèi)部實現(xiàn)上作了特殊的處理:
① 注意各模塊的融合,減少處理函數(shù)的個數(shù)和調(diào)用次數(shù),提高代碼復(fù)用率,以減少 ROM占用。
② 基于單一全局數(shù)組的收發(fā)數(shù)據(jù)緩沖區(qū),不支持內(nèi)存動態(tài)分配,由應(yīng)用層負責(zé)處理收發(fā)的數(shù)據(jù)。
③ 基于事件驅(qū)動的應(yīng)用程序接口,各并發(fā)連接采用輪循處理,僅當(dāng)網(wǎng)絡(luò)事件發(fā)生時, 由uIP0.9內(nèi)核喚起應(yīng)用程序處理。這樣, uIP0.9用戶只須關(guān)注特定應(yīng)用就可以了。傳統(tǒng)的 TCP/IP實現(xiàn)一般要基于多任務(wù)處理環(huán)境,而大多數(shù) 8位機系統(tǒng)不具備這個條件。
④ 應(yīng)用程序主動參與部分協(xié)議棧功能的實現(xiàn)(如 TCP的重發(fā)機制,數(shù)據(jù)包分段和流量控制),由 uIP0.9 內(nèi)核設(shè)置重發(fā)事件,應(yīng)用程序重新生成數(shù)據(jù)提交發(fā)送,免去了大量內(nèi)部緩存的占用?;谑录?qū)動的應(yīng)用接口使得這些實現(xiàn)較為簡單。
在 uIP0.9中,基于速度、代碼效率和堆棧使用等方面的考慮,大部分接口函數(shù)是通過宏定義的方式來使用 uIP0.9提供一系列函數(shù),完全可以被看作一個代碼庫。圖 2描述了 uIP0.9、系統(tǒng)底層和應(yīng)用程序三者之間的關(guān)系。
uIP0.9提供了兩個函數(shù)給系統(tǒng)底層: uIP_Input(),uIP _Periodic()。應(yīng)用程序向 uIP0.9提供一個調(diào)用函數(shù) uIP_Appcall (),在網(wǎng)絡(luò)事件或計時事件發(fā)生時進行調(diào)用。同時, uIP0.9向
應(yīng)用程序提供了一些與協(xié)議棧相關(guān)的接口函數(shù),應(yīng)用程序根據(jù)接口函數(shù)提供的信息或者狀態(tài),執(zhí)行相應(yīng)的操作。如圖 2所示, uIP_Appcall ()是一個用戶定義的函數(shù),唯一對應(yīng)著一個應(yīng)用。由于 uIP0.9的特殊性,該函數(shù)必須協(xié)助完成一些 TCP/IP層的功能,如重傳等。 uIP_Input(),uIP_Periodic()實質(zhì)上是使用參數(shù)不同,前者在網(wǎng)絡(luò)設(shè)備接收到新數(shù)據(jù)時調(diào)用,后者則是對定時器事件的響應(yīng),周期執(zhí)行。
uIP0.9不同于其它的 TCP/IP協(xié)議棧,它的某些網(wǎng)絡(luò)層的功能需要應(yīng)用程序的介入才能完成,如重傳機制、確定最大傳輸單元等。需要重傳時,由應(yīng)用程序重新生成數(shù)據(jù),以減小存儲器使用;在協(xié)商確定最大傳輸段單元 MSS后,由應(yīng)用程序保證發(fā)送數(shù)據(jù)塊的大小不超過該值。
uIP0.9實現(xiàn)了 TCP/IP協(xié)議棧中的四個基本協(xié)議: ARP、TCP、IP以及 ICMP協(xié)議。解析協(xié)議 ARP完成 IP和 MAC的對應(yīng),以完成數(shù)據(jù)包的物理交付。 IP層代碼有兩個責(zé)任:確信數(shù)據(jù)包頭文件的正確性和依據(jù) TCP、ICMP區(qū)分數(shù)據(jù)包的類型。在 IP層沒有進行分段和重組,只是由 9個簡單的 if語句組成 IP層代碼。
3、 嵌入式數(shù)據(jù)庫
數(shù)據(jù)庫是整個管理系統(tǒng)的核心。實時監(jiān)控、卡片及人事信息管理等,都離不開系統(tǒng)數(shù)據(jù)庫,人員的進出記錄以及進出權(quán)限和通行時間也都記載在數(shù)據(jù)庫中。嵌入式數(shù)據(jù)庫指的是隨機存貯器 RAM中的數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)信息,它在系統(tǒng)運行過程中不斷地刷新,其內(nèi)容直接反映了門禁節(jié)點的運行狀況。本系統(tǒng)包括兩類數(shù)據(jù)庫: A.系統(tǒng)數(shù)據(jù)庫,主要對硬件的設(shè)定,包括控制器類型、讀卡機、門、報警輸入、報警輸出、通訊格式及參數(shù)。 B.持卡人信息,包括持卡人個人信息,每日與每周時間區(qū),節(jié)假日,出入組,防反潛,有效期限等。
4、門禁系統(tǒng)的硬件設(shè)計
門禁控制器的硬件框圖如圖 3所示,本系統(tǒng)的控制核心采用 ATmega128微處理器,網(wǎng)絡(luò)部分電路由 RTL8019AS微型網(wǎng)關(guān)芯片和 RJ45組成,負責(zé)收發(fā)數(shù)據(jù)包、地址解析、沖突檢測等網(wǎng)絡(luò)通信功能。網(wǎng)絡(luò)設(shè)備驅(qū)動即通過 RTL8019AS的驅(qū)動實現(xiàn),主要包括三部分:完成網(wǎng)卡芯片的上電初始化、數(shù)據(jù)的發(fā)送和以太網(wǎng)數(shù)據(jù)的接收。選擇 ATmega128的一個定時器來為TCP/IP協(xié)議中與時間有關(guān)的事件定時。
系統(tǒng)的編程接口可與計算機的串口連接,計算機可通過該端口向控制器下載 BIOS和程序。系統(tǒng)還包括信號檢測、輸入、輸出、RS232/485總線通信,分別實現(xiàn)讀卡、報警信號檢測、開門、通信等功能。
門禁控制器的各種配置信息:日編程、周編程、節(jié)假日編程、卡定義信息、讀卡器定義信息,以及刷卡記錄和報警信息都要存儲在本地控制器中,因此 RAM空間的擴展顯得尤為重要,本系統(tǒng)擴展了62256。系統(tǒng)設(shè)計時還采用了備份電池供電,從而保證門禁控制器卡號、日編程、周編程等信息永久存儲在存儲器內(nèi)而不受掉電的影響,另外使用了實時時鐘芯片DS1302,DS1302具有秒、分、小時、日、月、星期、年的計時功能,避免突然掉電時對時鐘的修改。
5 、結(jié)束語
在當(dāng)今網(wǎng)絡(luò)發(fā)展日新月異的時代,消費者需要的智能化產(chǎn)品都要求具備更好的網(wǎng)絡(luò)功能,這樣就更容易實現(xiàn)局域網(wǎng)內(nèi)部控制或利用成熟的因特網(wǎng)技術(shù)實現(xiàn)遠程控制,并能夠在特定條件下,升級產(chǎn)品的預(yù)存指令集,實現(xiàn)功能的更新。隨著整個安防行業(yè)朝網(wǎng)絡(luò)化發(fā)展,門禁控制器也要普及網(wǎng)絡(luò)化。本文創(chuàng)新點在于將 ATmega128 應(yīng)用在嵌入式門禁控制系統(tǒng)中,移植了小型嵌入式 TCP/IP協(xié)議棧uIP0.9,使系統(tǒng)能夠順利地接入以太網(wǎng),具有很高的使用價值和很強的可操作性。