<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于RS485總線和RFID的智能門禁系統(tǒng)實現(xiàn)

          基于RS485總線和RFID的智能門禁系統(tǒng)實現(xiàn)

          作者: 時間:2012-10-24 來源:網(wǎng)絡(luò) 收藏

          485總線收發(fā)器采用MAXIM 公司的MAX485,其電路原理見圖2。其中加入光隔離以實現(xiàn)抗干擾及保護(hù)功能。利用單片機(jī)的P2.3引腳對其內(nèi)部的發(fā)送和接收驅(qū)動器進(jìn)行控制,通過單片機(jī)的一個串口與之通信。

          2.2 工作原理

          W77E58具有2個串口,這一點在該系統(tǒng)是至關(guān)重要的。單片機(jī)控制器既要通過串口與讀卡器通信,又要通過串口與485總線控制器MAX485通信,因此選擇具有2個串口的單片機(jī)是解決這一矛盾的最佳方案。而且在相同的時鐘頻率下,它的指令執(zhí)行速度比標(biāo)準(zhǔn)8051快2.5倍,這對于作為門禁控制器核心的單片機(jī)來說也是大有優(yōu)勢的。

          鍵盤具有12個按鍵,各按鍵的功能定義為:數(shù)字鍵0-9、確認(rèn)鍵及取消鍵。用戶可以通過鍵盤輸入密碼信息,也可以通過鍵盤呼叫開門。EEPROM 存儲器AT24C256用來存儲用戶密鑰信息及卡的卡號和密碼信息,它具有IIC總線功能,可以在IIC總線的時序下對它進(jìn)行讀寫操作;DS1302時鐘芯片用來向系統(tǒng)提供時鐘,為了方便,該時鐘應(yīng)與上位機(jī)一致;另外,采用MAX813看門狗芯片監(jiān)視程序的運(yùn)行;采用EA_D20040AR液晶顯示器顯示用戶通過鍵盤輸入的密碼、實時操作信息及系統(tǒng)時間信息等;采用DS2Y—S繼電器控制電門的開關(guān)狀態(tài)。

          3 系統(tǒng)軟件設(shè)計

          系統(tǒng)軟件由上位機(jī)管理平臺和下位機(jī)門禁控制程序組成。

          上位機(jī)管理軟件是在Windows XP操作平臺上,利用Visual C++6.0開發(fā)的,功能包括卡注冊注銷、住戶信息添加、刪除、查找、編輯、排序、顯示、實時監(jiān)控、管理員登錄驗證等,具有友好的人機(jī)交互界面,顯示直觀,操作方便。系統(tǒng)運(yùn)行時,各門禁控制器將采集到的卡信息、鍵盤信息及實時操作信息以TxT文件的形式存儲在上位機(jī)中;各小區(qū)的單元住戶信息以“樹”視圖的形式顯示在平臺界面的左側(cè)窗口中。點擊相應(yīng)的節(jié)點,各單元的住戶信息以數(shù)據(jù)庫表的形式顯示在平臺界面的右側(cè)窗口中。平臺下面的“Tab”控件用來實時顯示各門禁控制器的實時操作信息。

          下位機(jī)控制程序采用8OC51語言編程,Wave6000編譯仿真。該部分實現(xiàn)的主要功能包括:按鍵密碼及卡信息的讀取和驗證、液晶LCD及LED顯示、時間設(shè)置和讀取、經(jīng)由485總線接收及發(fā)送操作信息等。軟件主程序流程見圖4。

          3.1 485通信

          通信波特率設(shè)為9600bit·S-1 。通信協(xié)議為起始字符+本機(jī)地址+功能字符+數(shù)據(jù)長度+數(shù)據(jù)信息+結(jié)束字符其中,起始字符為’@ @@ ’,結(jié)束字符為’$$$’,本機(jī)地址為:0~32(可以按照需要選擇);廣告地址為:Oxffo功能字符為:’0’~’F’。

          3.2 串口中斷處理

          串口的功能包括:其一,向上位機(jī)發(fā)送操作信息,例如刷卡或者密碼認(rèn)證信息等;其二,接收上位機(jī)發(fā)送的密碼修改和卡注冊注銷信息,并依此修改EEPROM 相應(yīng)內(nèi)容,達(dá)到實時更新。中斷流程見圖5。

          3.3 卡及密碼管理與認(rèn)證機(jī)制

          一般情況下每個門禁控制節(jié)點的密碼只有一個,該密碼既存儲在上位機(jī)的數(shù)據(jù)庫里,也存儲在EEPR0M里,當(dāng)上位機(jī)修改此密碼時,將修改信息經(jīng)由總線發(fā)送給下位機(jī),進(jìn)行同步修改。

          用戶的卡信息存儲方式與密碼相同,不同的是每個節(jié)點下的卡號信息不止一個,可以幾十個。當(dāng)用戶通過上位機(jī)注冊或者注銷卡時,需要將改動信息經(jīng)由總線發(fā)送給下位機(jī),實現(xiàn)同步修改。認(rèn)證過程如下:當(dāng)住戶通過鍵盤輸入密碼時,控制器將該信息與EEPROM 中的密碼信息進(jìn)行校對。如果正確,則通過繼電器將門打開,并經(jīng)由總線按照協(xié)議向上位機(jī)發(fā)送密碼開門正確信息;反之,則操作相反。刷卡操作與密碼大致相同。

          3.4 數(shù)據(jù)庫與實時信息管理

          對用戶信息(卡、密碼)的管理采用數(shù)據(jù)庫的形式。利用Access2000創(chuàng)建數(shù)據(jù)庫,包括所有門禁控制節(jié)點的密碼表和各門禁控制節(jié)點住戶信息表。通過數(shù)據(jù)庫類的成員變量In—pSet對數(shù)據(jù)庫進(jìn)行讀寫操作,可以通過管理平臺添加或者刪除用戶信息。上位機(jī)以文件的形式記錄各門禁節(jié)點的實時操作信息,文件格式為TxT格式,共創(chuàng)建4個文件,分別用來存儲:實時操作信息、注冊和注銷信息、卡認(rèn)證信息和鍵盤操作信息。

          4 結(jié)語

          本系統(tǒng)實現(xiàn)了射頻RFID卡識別,門禁系統(tǒng)密碼認(rèn)證,實時信息顯示,上位機(jī)數(shù)據(jù)庫管理與存儲等功能。該系統(tǒng)具有很大的擴(kuò)展空間,根據(jù)需要不僅可以進(jìn)行門禁控制器節(jié)點的擴(kuò)展,而且在功能上可以加入攝像頭等監(jiān)控工具。經(jīng)實驗證明,系統(tǒng)設(shè)計合理、工作可靠、開發(fā)成本低、性價比高,具有很強(qiáng)的應(yīng)用價值和廣闊的市場前景。

          基金項目:國家自然科學(xué)基金資助項目(59978018)
          作者簡介:楊莉(1983~),女,吉林大學(xué)電子科學(xué)與工程學(xué)院 碩士研究生.

          參考文獻(xiàn)

          [1]彭月平,戰(zhàn)仁軍,劉軍,等.基于通信器S1503的門禁系統(tǒng)的設(shè)計[J].電子技術(shù)應(yīng)用,2003,29(07):77~80.
          [2]李元忠,馬勇,楊旭東.不停車車輛門禁管理系統(tǒng)[J].信息與電子工程,2003,1(4):308—311.
          [3]杜玉梅.射頻識別技術(shù)(RFID)及其在物流系統(tǒng)中的應(yīng)用[J].企業(yè)技術(shù)開發(fā),2004,23(10):12-15.
          [4]鄒麗新,朱桂榮,陸家昌,等.基于RS-485總線的多點式空氣潔凈度監(jiān)測系統(tǒng)I-J].電子技術(shù)應(yīng)用,2006,32(8):135—136.
          [5]陳斗雪,黎毅明,陳一天,等.無線射頻識別及其在制造業(yè)中的應(yīng)用[J].計算機(jī)工程與設(shè)計,2006,27(8):1359—136


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();