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