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

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于射頻識(shí)別技術(shù)的聯(lián)機(jī)型門禁系統(tǒng)設(shè)計(jì)

          基于射頻識(shí)別技術(shù)的聯(lián)機(jī)型門禁系統(tǒng)設(shè)計(jì)

          作者:何泉 曹剛 時(shí)間:2008-06-25 來源:微計(jì)算機(jī)信息 收藏

            2.硬件組成

          本文引用地址:http://www.ex-cimer.com/article/84773.htm

            每個(gè)門禁都相當(dāng)于一個(gè)智能的節(jié)點(diǎn),它能獨(dú)立完成門狀態(tài)和鎖狀態(tài)的監(jiān)控、判斷卡類型、實(shí)時(shí)監(jiān)控刷卡動(dòng)作、控制電磁門鎖和報(bào)警器、設(shè)置門禁號(hào)等一系列的操作。門禁的硬件部分主要包括監(jiān)測和控制部分、聲光報(bào)警電路、RS485接口電路、存儲(chǔ)、時(shí)鐘顯示部分、門禁號(hào)設(shè)置部分、看門狗及復(fù)位電路、射頻基站部分。電路的硬件框圖如圖2所示[4]。

          圖2門禁系統(tǒng)組成

            采用意法半導(dǎo)體公司(STMicroelectronics)公司STC89C53RC單片機(jī)作,即常用的MCS-51系列單片機(jī),它具有良好的溫度特性、穩(wěn)定性和性價(jià)比。內(nèi)置15K的Flash存儲(chǔ)器和512字節(jié)RAM,具有3個(gè)16位計(jì)數(shù)器和一個(gè)標(biāo)準(zhǔn)的串行通信口,并具有P4口,支持ISP程序下載。

            門禁號(hào)設(shè)置電路采用8位并入串出的移位寄存器芯片74HC165配合兩個(gè)4位撥碼開關(guān)構(gòu)成8位的設(shè)置門禁號(hào)單元。系統(tǒng)上電后74HC165將并行數(shù)據(jù)以串行移位的方式發(fā)送給將其作為在485網(wǎng)絡(luò)中通訊的本機(jī)ID號(hào)。

            射頻基站部分采用了飛利浦公司的MFRC530芯片,MFRC530是與射頻卡實(shí)現(xiàn)無線通信的核心模塊。它根據(jù)寄存器的設(shè)定對發(fā)送緩沖區(qū)中的數(shù)據(jù)進(jìn)行調(diào)制得到發(fā)送的信號(hào),通過由TX1,TX2腳驅(qū)動(dòng)的天線以電磁波的形式發(fā)出去,非接觸式采用RF場的負(fù)載調(diào)制進(jìn)行響應(yīng)。天線拾取非接觸式的響應(yīng)信號(hào)經(jīng)過天線匹配電路送到RX腳,MFRC530內(nèi)部接收緩沖器對信號(hào)進(jìn)行檢測和解調(diào)并根據(jù)寄存器的設(shè)定進(jìn)行處理。處理后的數(shù)據(jù)發(fā)送到數(shù)據(jù)總線上等待讀取。MCU與MFRC530采用SPI總線方式進(jìn)行通訊,可實(shí)現(xiàn)與非接觸式數(shù)據(jù)的無線傳輸。

            有卡進(jìn)入感應(yīng)區(qū)刷卡時(shí)需要記錄刷卡的時(shí)間,可用外接硬件實(shí)時(shí)時(shí)鐘芯片的辦法為系統(tǒng)提供一個(gè)準(zhǔn)確可靠的時(shí)鐘,用3V備用電池保證在系統(tǒng)掉電時(shí)也能正常計(jì)時(shí)。本設(shè)計(jì)選用體積小、接口簡單的實(shí)時(shí)時(shí)鐘芯片DS1302,是美國DALLAS公司推出的低功耗串行通信接口專用芯片,采用3線串行方式與單片機(jī)進(jìn)行數(shù)據(jù)通信:SCLK作為時(shí)鐘輸入,SDA作為串行數(shù)據(jù)輸入和輸出,RST作為通訊允許信號(hào)。其內(nèi)部寄存器地址中00H~06H分別對應(yīng)存放秒、分、時(shí)、日、月、星期及年信息的寄存器,07H為寫保護(hù)控制寄存器,08H為電池充電控制寄存器。時(shí)鐘數(shù)據(jù)以BCD碼格式存放在00H~06H這7個(gè)寄存器中。

            系統(tǒng)存儲(chǔ)部分采用了RAMTRONINTERNATIONAL公司生產(chǎn)的一種鐵電存貯器(FRAM)FM24C256,是一個(gè)256kbit的FRAM,存儲(chǔ)器內(nèi)部被邏輯組織為32768×8字節(jié)存儲(chǔ)方式,地址空間為0000~7FFFH。其總線頻率可高達(dá)1MHz,具有10億次以上的讀寫次數(shù)且功耗很低,與外部接口采用工業(yè)標(biāo)準(zhǔn)IIC總線。由于MCU不具有IIC總線接口,因此采用P2.3和P2.4口線來模擬IIC總線,FM24C256的SDA和SCL為開漏輸出,故接10kΩ的上拉電阻。

            監(jiān)測部分實(shí)時(shí)監(jiān)測門、鎖狀態(tài)和通訊的狀態(tài),并對長時(shí)間的異常狀態(tài)作出報(bào)警;控制部分主要負(fù)責(zé)執(zhí)行上位機(jī)的各種控制信息,如執(zhí)行開鎖、執(zhí)行報(bào)警等;LCD顯示部分選用以ST7920為控制器的128×6帶漢字庫的液晶模塊,用以顯示時(shí)間日期及各種服務(wù)信息,作為人機(jī)交互的界面。為了防止外界對系統(tǒng)的干擾,選用MAXIM公司的MAX813L作為系統(tǒng)的硬件看門狗。

            3.軟件設(shè)計(jì)

            門禁讀卡器的程序包括:MFRC530對Mifare卡操作的程序、MCU與MFRC530通信中斷處理程序、485通信中斷處理程序、讀寫時(shí)鐘及LCD顯示程序、獲得門禁號(hào)程序、檢測門和鎖狀態(tài)程序及存儲(chǔ)器讀寫程序等。主程序流程圖如圖3所示。

            對卡操作的過程是一個(gè)很復(fù)雜的程序執(zhí)行過程,要對MFRC530內(nèi)部一系列的寄存器進(jìn)行配置,而且這些操作對時(shí)序要求非常嚴(yán)格。對非接觸式IC卡的典型操作為:尋卡(得到卡類型代碼)、防沖突(得到卡號(hào))、選卡、驗(yàn)證密碼、讀寫操作、掛起并且這些操作必須按固定的順序執(zhí)行。因?yàn)殚T禁讀卡器只需要得到卡片卡號(hào),故只執(zhí)行尋卡、防沖突、掛起就可達(dá)到要求,對卡類型判斷后將卡號(hào)通過樓層PC發(fā)送到服務(wù)器,由服務(wù)器來判斷卡是否合法。在沒有卡進(jìn)入射頻天線有效范圍時(shí),在LCD顯示當(dāng)前時(shí)間及日期,當(dāng)有卡進(jìn)入到射頻天線的有效范圍時(shí),LCD上顯示卡號(hào)并顯示“請稍候……”等服務(wù)信息。

          圖3門禁讀卡器主程序流程

            四.結(jié)束語

            本文將理論應(yīng)用到門禁控制領(lǐng)域,采用多層網(wǎng)絡(luò)型系統(tǒng)結(jié)構(gòu) ,提出了一種以單片機(jī)為核心,配合射頻基站MFRC530及單片機(jī)外圍電路的非接觸式IC卡門禁讀卡器硬件和軟件設(shè)計(jì)。該門禁系統(tǒng)已成功應(yīng)用于某音樂學(xué)院的琴房管理系統(tǒng)。實(shí)踐表明,系統(tǒng)運(yùn)行穩(wěn)定、實(shí)時(shí)性好。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 射頻識(shí)別 IC卡 讀卡器 MCU

          評論


          相關(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); })();