基于RFID技術(shù)門禁系統(tǒng)的設(shè)計(jì)_第1頁(yè)
基于RFID技術(shù)門禁系統(tǒng)的設(shè)計(jì)_第2頁(yè)
基于RFID技術(shù)門禁系統(tǒng)的設(shè)計(jì)_第3頁(yè)
基于RFID技術(shù)門禁系統(tǒng)的設(shè)計(jì)_第4頁(yè)
基于RFID技術(shù)門禁系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

年4月19日基于RFID技術(shù)門禁系統(tǒng)的設(shè)計(jì)文檔僅供參考綜合課程設(shè)計(jì)說明書題目:基于RFID的門禁系統(tǒng)設(shè)計(jì)學(xué)生姓名:李隆均學(xué)號(hào):06100216院(系):電氣與信息工程學(xué)院專業(yè):電子信息科學(xué)與技術(shù)指導(dǎo)教師:李秦君年6月16日目錄一前言…………1二案例描述……………………3三需求分析……………………43.1實(shí)驗(yàn)箱模塊的選擇………43.2系統(tǒng)語(yǔ)言的選擇……………53.3數(shù)據(jù)交換方式………………63.4應(yīng)用程序的結(jié)構(gòu)……………73.4.1顯示子程序………………73.4.2密碼子程序………………83.5存儲(chǔ)系統(tǒng)的設(shè)計(jì)及分析……93.6系統(tǒng)模塊的總體設(shè)計(jì)………113.6.1系統(tǒng)硬件設(shè)計(jì)…………123.6.2系統(tǒng)軟件設(shè)計(jì)…………12四系統(tǒng)的整體描述和實(shí)現(xiàn)……134.1射頻識(shí)別的簡(jiǎn)單描述……134.2軟件結(jié)構(gòu)的實(shí)現(xiàn)…………154.3系統(tǒng)功能的具體實(shí)現(xiàn)……174.3.1系統(tǒng)軟件調(diào)試……………174.3.2系統(tǒng)整體調(diào)試…………18五課程設(shè)計(jì)總結(jié)………………22六參考文獻(xiàn)……………………23七致謝……………………24八附錄……………………25一前言射頻識(shí)別(RadioFrequencyIdentification,RFID)技術(shù)是從20世紀(jì)80年代開始走向成熟的一項(xiàng)自動(dòng)識(shí)別技術(shù),是當(dāng)前最受人們關(guān)注的熱點(diǎn)之一,該項(xiàng)技術(shù)既傳統(tǒng)也充滿新意和活力。射頻識(shí)別是無線電識(shí)別的簡(jiǎn)稱,即經(jīng)過無線電波進(jìn)行識(shí)別。它源于無線電通信技術(shù),綜合了現(xiàn)代計(jì)算機(jī)智能控制、智能識(shí)別、計(jì)算機(jī)網(wǎng)絡(luò)等高新技術(shù),順應(yīng)了計(jì)算機(jī)集成制造系統(tǒng),電子商務(wù)等熱點(diǎn)應(yīng)用的發(fā)展需要。射頻識(shí)別應(yīng)用電磁場(chǎng),以非接觸、無視覺、高可靠的方式傳遞特定識(shí)別信息,由于大規(guī)模集成電路技術(shù)的日益成熟,使得射頻識(shí)別系統(tǒng)的體積大大減少,從而進(jìn)入了實(shí)用化階段。射頻識(shí)別技術(shù)具有工作距離大、信息收集處理快捷及較好的環(huán)境適應(yīng)性等優(yōu)點(diǎn),極大地加速了有關(guān)信息的采集和處理,在近年來獲得了極為迅速的發(fā)展?;赗FID的考勤系統(tǒng)設(shè)計(jì)是將射頻識(shí)別技術(shù)應(yīng)用到家庭安防系統(tǒng)中的一次成功嘗試。這一系統(tǒng)克服了家庭生活中居住的安全性不能得到保證的弱點(diǎn),能夠有效地提高家庭安防系統(tǒng)的能力,為居家生活提供更好的,更安全的保障。隨著通訊計(jì)算機(jī)技術(shù)、元器件制造技術(shù)的發(fā)展和應(yīng)用,由此產(chǎn)生的自動(dòng)識(shí)別(AutomaticIdentification)技術(shù)在許多領(lǐng)域得到普及。出入口門禁管理是現(xiàn)代化安防系統(tǒng)的重要組成部分,出入口只允許有進(jìn)出權(quán)限者通行。門禁管理系統(tǒng)就是基于這些自動(dòng)識(shí)別技術(shù)識(shí)別進(jìn)出人員或車輛的身份權(quán)限,經(jīng)過與系統(tǒng)中信息比較,作出預(yù)設(shè)反應(yīng)。常見的自動(dòng)識(shí)別技術(shù)有條形碼、生物特征識(shí)別(指紋、面部特征)、IC卡和射頻卡。條形碼技術(shù)介質(zhì)存儲(chǔ)容量小,不能改寫,易污損。生物特征識(shí)別相對(duì)比較復(fù)雜,識(shí)別效率、誤識(shí)率較高。IC卡識(shí)別和射頻識(shí)別是當(dāng)前較成熟且應(yīng)用廣泛的兩種技術(shù),作為數(shù)據(jù)存儲(chǔ)器系統(tǒng),它們內(nèi)有CPU,可防更改,識(shí)別時(shí)間短。IC卡識(shí)別系統(tǒng)需要接觸識(shí)別,存在觸點(diǎn)對(duì)腐蝕和污染缺乏抵抗能力的缺點(diǎn)。射頻識(shí)別系統(tǒng)經(jīng)過非接觸式工作模式,基本原理是利用射頻信號(hào)和空間耦合實(shí)現(xiàn)物體的自動(dòng)識(shí)別。射頻識(shí)別系統(tǒng)支持密碼認(rèn)證和效驗(yàn),識(shí)別工作無須人工干預(yù),它既支持只讀工作模式又支持讀寫工作模式;射頻卡可工作在惡劣環(huán)境下,識(shí)別速度快數(shù)據(jù)容量大,能夠達(dá)到數(shù)10K,標(biāo)簽數(shù)據(jù)能夠修改,寫入時(shí)間短,射頻卡能夠設(shè)置密碼保護(hù)具有更好的安全性?,F(xiàn)階段大多數(shù)門禁系統(tǒng)都是基于射頻識(shí)別技術(shù),同時(shí)RFID技術(shù)還在飛速的發(fā)展,應(yīng)用越來越廣泛。二案例描述門禁系統(tǒng),又稱人口控制系統(tǒng).在何時(shí)允許某些人進(jìn)出,拒絕某些人進(jìn)出,什么情況下要發(fā)生報(bào)警,記錄人員的出入狀況,是門禁系統(tǒng)最基本的功能.智能的RFID門禁系統(tǒng)是對(duì)樓房中的重要通道進(jìn)行管理。在門口,電梯,等人員來往頻繁或重要的地方安裝控制裝置,例如:讀卡器,鍵盤等,人員想要進(jìn)入必須有卡才能經(jīng)過,大大增強(qiáng)的安全性?;赗FID技術(shù)的門禁系統(tǒng)作為智能門禁系統(tǒng)的“骨干”,已經(jīng)成為了一項(xiàng)先進(jìn)的高科技技術(shù)防范和管理手段,在一些經(jīng)濟(jì)發(fā)達(dá)的國(guó)家已經(jīng)廣泛的應(yīng)用于科研,工業(yè),博物館,酒店,商場(chǎng),醫(yī)療監(jiān)護(hù),銀行,監(jiān)獄等,已成為安防技術(shù)重點(diǎn)研究和開發(fā)的對(duì)象。1994年RFID技術(shù)進(jìn)入中國(guó),引發(fā)了中國(guó)RFID技術(shù)的應(yīng)用革命。在中國(guó)基于RFID的智能門禁系統(tǒng)的使用依然處于發(fā)展?fàn)顟B(tài),因此對(duì)射頻識(shí)別技術(shù)在門禁系統(tǒng)方面的應(yīng)用理論及實(shí)際可行性及實(shí)用性研究的重中之重。近幾年,關(guān)于識(shí)別系統(tǒng)的通訊模式,指紋等生物識(shí)別設(shè)備的集成管理及DVR系統(tǒng)的集成成為現(xiàn)代門禁系統(tǒng)發(fā)展的亮點(diǎn)。另外,作為蓬勃發(fā)展的生物識(shí)別技術(shù),隨著其辨別技術(shù)的的不斷成熟,以及人們對(duì)這類產(chǎn)品的進(jìn)一步了解,若價(jià)格因素能保持人們能夠接受的范圍內(nèi),那么,該技術(shù)的應(yīng)用前景將是十分廣泛的。射頻識(shí)別(RFID,即RadioFrequencyIdentification)技術(shù)是自動(dòng)識(shí)別技術(shù)在無線電技術(shù)方面的具體應(yīng)用與發(fā)展,其基本原理是利用射頻方式進(jìn)行非接觸雙向通信,以達(dá)到識(shí)別與數(shù)據(jù)交換的目的[1]。具有高精度、適應(yīng)環(huán)境能力強(qiáng)、抗干擾強(qiáng)、操作快捷等優(yōu)點(diǎn),能夠?qū)崿F(xiàn)無線自動(dòng)識(shí)別,主動(dòng)監(jiān)控的功能。RFID技術(shù)作為一項(xiàng)先進(jìn)的自動(dòng)識(shí)別和數(shù)據(jù)采集技術(shù),在實(shí)際應(yīng)用中取得了顯著的成效,已經(jīng)成功應(yīng)用到生產(chǎn)制造、物流管理、公共安全等各個(gè)領(lǐng)域。隨著RFID技術(shù)的日益成熟和普及,各國(guó)政府都意識(shí)到RFID技術(shù)的研究?jī)r(jià)值和蘊(yùn)涵的巨大商機(jī),制定相關(guān)政策加大財(cái)力、物力投資,積極推動(dòng)本國(guó)RFID技術(shù)發(fā)展。RFID技術(shù)的運(yùn)用是非接觸式IC卡當(dāng)前的潮流,更快的響應(yīng)速度和更高的頻率是未來的趨勢(shì)。三需求分析3.1實(shí)驗(yàn)箱模塊的選擇本次實(shí)驗(yàn)選擇的是實(shí)驗(yàn)箱中的高頻模塊,即HF高頻下識(shí)別卡不需要繞制線圈,能夠經(jīng)過印刷的方式制作天線。識(shí)別卡一般是負(fù)載調(diào)制的方式工作,也就是經(jīng)過識(shí)別卡的負(fù)載電阻的接通和斷開促使讀寫器天線上的電壓發(fā)生變化,實(shí)現(xiàn)遠(yuǎn)距離識(shí)別卡對(duì)天線電壓進(jìn)行振幅調(diào)制。就頻率而言,高頻RFID具有以下特性:①工作頻率為13.56MHz,該頻率的波長(zhǎng)大概為22米。②除了金屬材料外,該頻率的波長(zhǎng)能夠穿過大多數(shù)的材料,可是往往會(huì)降低讀取距離。識(shí)別卡(感應(yīng)器)需要離開金屬一段距離。③該頻段在全球都得到認(rèn)可并沒有特殊的限制。④該系統(tǒng)具有防沖撞特性,能夠同時(shí)讀取多個(gè)識(shí)別卡。⑤能夠把某些數(shù)據(jù)信息寫入識(shí)別卡中。⑥數(shù)據(jù)傳輸速率比低頻要快且價(jià)格不是很貴。高頻RFID主要應(yīng)用有:◎航空包裹的管理和應(yīng)用◎瓦斯鋼瓶的管理應(yīng)用◎預(yù)收費(fèi)系統(tǒng)◎酒店門鎖的管理和應(yīng)用◎大型會(huì)議人員通道系統(tǒng)◎固定資產(chǎn)的管理系統(tǒng)◎醫(yī)藥物流系統(tǒng)的管理和應(yīng)用◎智能貨架的管理系統(tǒng)運(yùn)行簡(jiǎn)要說明:①:上電后,430先經(jīng)過并口訪問7970芯片,在沒有讀到卡時(shí),程序運(yùn)行在串口讀寫模式,并每隔0.5s向串口發(fā)送一個(gè)“D”,直到有寫操作為止。②:當(dāng)有卡讀寫時(shí),針對(duì)相應(yīng)的卡,程序進(jìn)入不同的協(xié)議中,而且點(diǎn)亮相應(yīng)的LED燈。(2)API調(diào)用說明①:上電后,配置完內(nèi)部寄存器,程序進(jìn)入串口讀寫程序,能夠進(jìn)行人機(jī)交互。②:當(dāng)讀到不同協(xié)議的卡時(shí),程序退出串口讀寫程序,進(jìn)入相應(yīng)的協(xié)議子程序中(當(dāng)前支持14443A協(xié)議和15693協(xié)議)。讀完卡后,退出相應(yīng)的協(xié)議子程序,進(jìn)入串口讀寫程序。(3)ISO15693第三部分經(jīng)過讀卡器獲取指令流,讀卡器采用TItrf7970讀卡器芯片,開發(fā)資料參考協(xié)議ISO15693,trf7970datasheet,參考trf7960EVM.pdf實(shí)現(xiàn)ISO15693第三部分指令部分,防碰撞實(shí)驗(yàn)。高頻讀寫模塊中,利用高頻卡能夠進(jìn)行識(shí)別操作,因此高頻讀寫有以下特性:1.支持近場(chǎng)通訊(NFC)標(biāo)準(zhǔn)NFCIP-1(ISO/IEC18092)和NFCIP-2(ISO/IEC21481)2.用于ISO15693、ISO18000-3、ISO14443A/B、和FeliCa的完全集成的協(xié)議處理3.集成編碼器、解碼器和用于NFC啟動(dòng)程序的數(shù)據(jù)成幀,對(duì)所有3個(gè)比特率(106kbps,212kbps,424kbps)的有源和無源目標(biāo)操作及卡仿真。4.用于NFC無源發(fā)射機(jī)應(yīng)答器仿真操作的具有可編程喚醒電平的RF場(chǎng)偵測(cè)器。5.用于NFC物理沖突避免的RF場(chǎng)檢測(cè)器。6.用于ISO14443A防沖突(不完整字節(jié))操作(發(fā)射機(jī)應(yīng)答器仿真或者NFC無源目標(biāo))的集成狀態(tài)機(jī)。7.輸入電壓范圍:2.7VDC至5.5VDC。8.可編程輸出功率:+20dBm(100mW),+23dBm(200mW)。9.可編程I/O電壓電平從1.8VDC至5.5VDC。3.2開發(fā)語(yǔ)言的選擇軟件結(jié)構(gòu)框圖:系統(tǒng)軟件主要包括信號(hào)處理和系統(tǒng)管理兩個(gè)部分,信號(hào)處理模塊采用C語(yǔ)言編程,系統(tǒng)管理部分軟件采用MicrosoftVisualC++編程,VC++是Windos平臺(tái)上的C++編程環(huán)境,學(xué)習(xí)VC要了解很多Windos平臺(tái)的特性而且掌握MFC、ATL、COM等的知識(shí),C++的具有就是界面簡(jiǎn)單,占用資源少,操作方便的特點(diǎn)。其中建立了一個(gè)中間數(shù)據(jù)庫(kù),編程簡(jiǎn)單,開發(fā)時(shí)間短,能夠?qū)崿F(xiàn)雙卡識(shí)別功能,控制道閥自動(dòng)開啟和關(guān)閉,同時(shí)具有報(bào)警功能。其軟件流程圖如下圖1所示?;赗FID的門禁系統(tǒng)基于RFID的門禁系統(tǒng)數(shù)據(jù)采集模塊存儲(chǔ)模塊顯示模塊門控模塊報(bào)警模塊鍵盤模塊圖一軟件結(jié)構(gòu)框圖3.3數(shù)據(jù)交換的方式本次設(shè)計(jì)采用數(shù)據(jù)庫(kù)存儲(chǔ)用戶信息及數(shù)據(jù),執(zhí)行程序之前,首先要設(shè)置串口波特率等相關(guān)串口參數(shù),然后上位機(jī)經(jīng)過串口向下位機(jī)發(fā)送命令,并進(jìn)入串口中斷。下位機(jī)根據(jù)接收SBUF的值做相應(yīng)的處理。程序流程圖如圖2所示開始開始上位機(jī)發(fā)送讀卡命令YYNN驗(yàn)證感應(yīng)卡權(quán)限開門,顯示正確信息報(bào)警,顯示錯(cuò)誤信息延時(shí)后,自動(dòng)關(guān)門結(jié)束圖2數(shù)據(jù)采集子程序流程圖3.4應(yīng)用程序的結(jié)構(gòu)3.4.1顯示子程序顯示子程序的主要功能是對(duì)當(dāng)前的門控狀態(tài)進(jìn)行顯示,顯示函數(shù)首先判斷是寫命令操作還是寫數(shù)據(jù)操作,若是寫命令操作,則根據(jù)命令進(jìn)行相應(yīng)的操作,如清屏、設(shè)置顯示模式等;若是寫數(shù)據(jù)操作,則在顯示器上顯示相應(yīng)數(shù)據(jù)。程序流程圖如圖3所示。顯示程序顯示程序液晶初始化設(shè)置第一行顯示數(shù)據(jù)地址顯示第一行數(shù)據(jù)設(shè)置第二行顯示數(shù)據(jù)地址顯示第二行數(shù)據(jù)延時(shí)后,清屏結(jié)束延時(shí)圖3顯示子程序流程圖3.4.2密碼子程序密碼子程序流程圖如圖4所示,當(dāng)程序運(yùn)行時(shí),會(huì)一直判斷是否有按鍵被按下,當(dāng)有按鍵被按下時(shí),系統(tǒng)會(huì)確定鍵值,關(guān)將鍵值存入到密碼數(shù)組里,然后將輸入的密碼與本身的密碼做比較,若相同,則執(zhí)行開門和顯示正確信息的操作;若不相同,則執(zhí)行報(bào)警和顯示錯(cuò)誤信息的操作。密碼子程序是整個(gè)門禁系統(tǒng)的關(guān)鍵部分,因?yàn)樵诮?jīng)過密碼程序的實(shí)施之后,才能夠進(jìn)行數(shù)據(jù)的訪問與訪問者的信息匹配,因此,密碼系統(tǒng)就好比整個(gè)門禁系統(tǒng)的大門,它是連接訪問者與數(shù)據(jù)的關(guān)鍵一環(huán)。其中,密碼程序的代碼如下:P1=0x0f;if(P1!=0x0f)compare(P1);for(n=0;n<10;n++)if(input[n]!=password[n])break;if(n==10){if(m<10)continue;WriteLcdCom(0x01); //清屏WriteLcdCom(0x80); //第一行數(shù)據(jù)指針地址for(s=0;s<16;s++) WriteLcdDat(str2[s]);LEDG=0;BUZ=0;delay_10ms(20);LEDG=1;BUZ=1;WriteLcdCom(0x01);input[0]="";}elseif((n<10)&&(P1==0xbd)){WriteLcdCom(0x01); //清屏WriteLcdCom(0x80); //第一行數(shù)據(jù)指針地址for(s=0;s<16;s++)WriteLcdDat(str4[s]);LEDR=0;for(s=0;s<5;s++){BUZ=0;delay_10ms(20);BUZ=1;delay_10ms(20);}LEDR=1;}密碼子系統(tǒng)的流程圖如下:開始開始去除按鍵抖動(dòng)的影響確定鍵值存入密碼數(shù)組開門,顯示正確信息報(bào)警,顯示錯(cuò)誤信息延時(shí)后,自動(dòng)關(guān)門結(jié)束YYN圖4密碼子程序流程圖3.5存儲(chǔ)系統(tǒng)的設(shè)計(jì)及分析本設(shè)計(jì)中數(shù)據(jù)的存儲(chǔ)芯片選用的是AT24C04,該芯片是串行的E2PROM,支持I2C總線數(shù)據(jù)傳送協(xié)議。程序流程圖如圖5所示。存儲(chǔ)程序存儲(chǔ)程序AT24C04初始化延時(shí)N結(jié)束圖5存儲(chǔ)系統(tǒng)程序流程圖當(dāng)我們完成對(duì)存儲(chǔ)過程的分析之后,我們需要對(duì)存儲(chǔ)過程加以實(shí)施,此時(shí),就需要編寫存儲(chǔ)程序的代碼,存儲(chǔ)程序核心的代碼如下:voideeprom(){write_byte(0,0x1e);write_byte(1,0xda);write_byte(2,0x62);write_byte(3,0xb6);write_byte(4,0x25);write_byte(5,0xee);write_byte(6,0xde);write_byte(7,0xb6);write_byte(8,0x05);write_byte(9,0xc8);write_byte(10,0x43);write_byte(11,0xb8);write_byte(12,0x3a);write_byte(13,0x04);write_byte(14,0x5d);write_byte(15,0xb6);}bitshout(ucharwrite_data)//從MCU移出數(shù)據(jù)到AT89C51{uchari;bitack_bit;for(i=0;i<8;i++)//循環(huán)移入8個(gè)位{SDA1=(bit)(write_data&0x80);_nop_();SCL1=1;delayNOP();SCL1=0;write_data<<=1;}SDA1=1;//讀取應(yīng)答delayNOP();SCL1=1;delayNOP();ack_bit=SDA1;SCL1=0;returnack_bit;//返回AT24C04應(yīng)答位}voidwrite_byte(ucharaddr,ucharwrite_data){start();shout(OP_WRITE);shout(addr);shout(write_data);stop();delay_10ms(1);}3.6系統(tǒng)模塊的總體設(shè)計(jì)依據(jù)上述功能的分析,系統(tǒng)中模塊分別為:數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)存儲(chǔ)模塊、顯示模塊、串口發(fā)送/接收模塊、密碼輸入模塊、報(bào)警機(jī)制模塊。系統(tǒng)功能結(jié)構(gòu)圖如圖6所示,各功能模塊具體功能如下:1. 數(shù)據(jù)采集模塊:當(dāng)RFID卡進(jìn)入到讀卡器讀卡范圍時(shí),讀卡器讀取卡序列號(hào)的過程。2. 數(shù)據(jù)處理模塊:針對(duì)于采集到的數(shù)據(jù)處理,從而對(duì)得到的數(shù)據(jù)進(jìn)行判斷其有效性。3. 數(shù)據(jù)存儲(chǔ)模塊:用來存儲(chǔ)數(shù)據(jù)。4. 顯示模塊:用來接收單片機(jī)發(fā)送的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行操作從而得到要顯示的信息。5. 串口發(fā)送/接收模塊:主要用來經(jīng)過串口發(fā)送和接收數(shù)據(jù)。6. 密碼輸入模塊:針對(duì)于用按鍵輸入密碼,根據(jù)密碼的正確與否來進(jìn)行相應(yīng)的操作。7. 報(bào)警機(jī)制模塊:當(dāng)出現(xiàn)非法卡或輸入的密碼不正確時(shí)產(chǎn)生報(bào)警。綜合數(shù)據(jù)處理模塊讀卡器處理模塊綜合數(shù)據(jù)處理模塊讀卡器處理模塊密碼處理模塊讀卡模塊存儲(chǔ)模塊門控模塊報(bào)警模塊顯示模塊存儲(chǔ)模塊門控模塊報(bào)警模塊顯示模塊圖6系統(tǒng)功能結(jié)構(gòu)圖3.6.1系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì)主要由AT89C51主控芯片和ISO/IEC15693讀卡器模塊構(gòu)成。硬件電路由八部分構(gòu)成:微控制器AT89C51、讀卡器模塊ISO/IEC15693、LCD1602顯示、串口通信MAX232、按鍵電路、AT24C04存儲(chǔ)、報(bào)警電路、門控電路。微控制器AT89C51負(fù)責(zé)讀卡器模塊ISO/IEC15693的初始化,上位機(jī)經(jīng)過串口向ISO/IEC15693發(fā)送命令,ISO/IEC15693根據(jù)上位機(jī)發(fā)送的命令做相應(yīng)的操作,然后將得到的信息傳送給微控制器AT89C51,然后微控制器控制其它模塊完成顯示、報(bào)警、判斷和門控操作。上位機(jī)與下位機(jī)之間的連接主要是經(jīng)過串口進(jìn)行通信,采用MAX232芯片并將芯片的輸入和輸出管腳連接到AT89C51的I/O口,在MAX232的引腳上連接10μF的電解電容用來濾波。讀卡器模塊ISO/IEC15693與微控制器AT89C51之間的通信是經(jīng)過I2C總線進(jìn)行的,由于AT89C51單片機(jī)本身并沒有I2C總線,因此將ISO/IEC15693模塊的串行時(shí)鐘線與數(shù)據(jù)線接到AT89C51的兩個(gè)I/O口,然后經(jīng)過模擬I2C時(shí)序來完成AT89C51與ISO/IEC15693之間的通信,為了防止出現(xiàn)三態(tài),在ISO/IEC15693的串行時(shí)鐘線和數(shù)據(jù)線上分別上拉10k電阻。而ISO/IEC15693讀卡器與RFID卡之間的數(shù)據(jù)通信主要是經(jīng)過天線進(jìn)行的。AT24C04與AT89C51之間的通信也是經(jīng)過模擬I2C時(shí)序進(jìn)行,同時(shí)為了防止出現(xiàn)三態(tài),在時(shí)鐘線與數(shù)據(jù)線上分別連接5.1k的上拉電阻。LCD1602與AT89C52之間的通信是經(jīng)過將LCD1602的3條控制線和8條數(shù)據(jù)線與AT89C51的I/O口相連。對(duì)于按鍵電路的設(shè)計(jì)是將3*4按鍵直接連接到AT89C51的7位I/O口,采用線反轉(zhuǎn)法經(jīng)過查詢方式進(jìn)行工作。3.6.2系統(tǒng)軟件設(shè)計(jì)軟件主要實(shí)現(xiàn)數(shù)據(jù)的采集,數(shù)據(jù)的分析,模塊之間的通信,以及相應(yīng)的數(shù)據(jù)處理。1. 數(shù)據(jù)采集:讀卡器ISO/IEC15693經(jīng)過天線讀取RFID卡的數(shù)據(jù),然后將數(shù)據(jù)傳送出去。2. 數(shù)據(jù)分析:AT89C51接收到數(shù)據(jù)后,將數(shù)據(jù)傳送給AT24C04或上位機(jī),AT24C04或上位機(jī)對(duì)數(shù)據(jù)進(jìn)行分析,從而判斷數(shù)據(jù)的有效性。3. 模塊之間的通信:AT89C51與ISO/IEC15693/AT24C04之間的通信都是經(jīng)過模擬I2C總線進(jìn)行的,I2C總線的高效性、高實(shí)用性、高可靠性數(shù)據(jù)傳輸增強(qiáng)了系統(tǒng)的實(shí)時(shí)性和可靠性。4. 數(shù)據(jù)處理:針對(duì)數(shù)據(jù)的采集和分析的結(jié)果做出相應(yīng)的處理,例如顯示、報(bào)警、門控等。四系統(tǒng)的整體描述和實(shí)現(xiàn)4.1射頻識(shí)別的簡(jiǎn)單描述在本設(shè)計(jì)中,采用的是射頻識(shí)別技術(shù)。下面對(duì)射頻識(shí)別技術(shù)做一下簡(jiǎn)要介紹:1. 射頻識(shí)別技術(shù)原理一般情況下,RFID的應(yīng)用系統(tǒng)主要由讀寫器和RFID卡兩部分組成的,見下圖7。其中,讀寫器一般作為計(jì)算機(jī)終端,用來實(shí)現(xiàn)對(duì)RFID卡的數(shù)據(jù)讀寫和存儲(chǔ),它是由控制單元、高頻通訊模塊和天線組成。而RFID卡則是一種無源的應(yīng)答器,主要是由一塊集成電路(IC)芯片及其外接天線組成,其中RFID卡芯片一般集成有射頻前端、邏輯控制、存儲(chǔ)器等電路,有的甚至將天線一起集成在同一芯片上。RFID應(yīng)用系統(tǒng)的基本工作原理是RFID卡進(jìn)入讀寫器的射頻場(chǎng)后,由其天線獲得的感應(yīng)電流經(jīng)升壓電路作為芯片的電源,同時(shí)將帶信息的感應(yīng)電流經(jīng)過射頻前端電路檢得數(shù)字信號(hào)送入邏輯控制電路進(jìn)行信息處理,所需回復(fù)的信息則從存儲(chǔ)器中獲取經(jīng)由邏輯控制電路送回射頻前端電路,最后經(jīng)過天線發(fā)回給讀寫器??梢?,RFID卡與讀寫器實(shí)現(xiàn)數(shù)據(jù)通訊過程中起關(guān)鍵的作用是天線。一方面,無源的RFID卡芯片要啟動(dòng)電路工作需要經(jīng)過天線在讀寫器天線產(chǎn)生的電磁場(chǎng)中獲得足夠的能量;另一方面,天線決定了RFID卡與讀寫器之間的通訊信道和通訊方式。圖7射頻識(shí)別系統(tǒng)原理圖2. 射頻識(shí)別系統(tǒng)典型結(jié)構(gòu)射頻識(shí)別系統(tǒng)的典型結(jié)構(gòu)見圖8,主要是由兩部份組成:讀寫器和射頻卡。讀寫器同射頻卡之間經(jīng)過無線方式通訊,因此它們都有無線收發(fā)模塊及天線(或感應(yīng)線圈)。射頻卡中有存儲(chǔ)器,內(nèi)存容量為幾個(gè)比特到幾十千比特。能夠存儲(chǔ)永久性數(shù)據(jù)和非永久性數(shù)據(jù)。永久性數(shù)據(jù)能夠是射頻卡序列號(hào),它是用來作為射頻卡的唯一身份標(biāo)識(shí),不能更改;非永久性數(shù)據(jù)寫在E2PROM等可重寫的存儲(chǔ)器內(nèi),用以存儲(chǔ)用戶數(shù)據(jù)。射頻卡能夠根據(jù)讀寫器發(fā)出的指令對(duì)這些數(shù)據(jù)進(jìn)行相應(yīng)的實(shí)時(shí)讀寫操作??刂颇K完成接收、譯碼及執(zhí)行讀寫器的命令,控制讀寫數(shù)據(jù),負(fù)責(zé)數(shù)據(jù)安全等功能。射頻卡分無源卡和有源卡兩種,有源卡內(nèi)置天線和電池,而無源卡只有內(nèi)置天線沒有電池,其能量由讀寫器提供,由于無源卡無需電池因此其尺寸較小且使用壽命長(zhǎng),應(yīng)用越來越廣泛。讀寫器內(nèi)的控制模塊往往具有很強(qiáng)的處理功能,除了完成控制射頻卡工作的任務(wù),還要實(shí)現(xiàn)相互認(rèn)證、數(shù)據(jù)加解密、數(shù)據(jù)糾錯(cuò)、出錯(cuò)報(bào)警及與計(jì)算機(jī)通信等功能。計(jì)算機(jī)的功能是向讀寫器發(fā)送指令,并與讀寫器之間進(jìn)行數(shù)據(jù)交換。圖8RFID系統(tǒng)典型結(jié)構(gòu)圖8為RFID系統(tǒng)的工作過程,這是一個(gè)無源系統(tǒng),即射頻卡內(nèi)不含電池,射頻卡工作的能量是由射頻讀寫模塊發(fā)出的射頻脈沖提供。(1)射頻讀寫模塊在一個(gè)區(qū)域內(nèi)發(fā)射能量形成電磁場(chǎng),區(qū)域大小取決于發(fā)射功率、工作頻率和天線尺寸。(2)射頻卡進(jìn)入這個(gè)區(qū)域時(shí),接收到射頻讀寫模塊的射頻脈沖,經(jīng)過橋式整流后給電容充電。電容電壓經(jīng)過穩(wěn)壓后作為工作電壓。(3)數(shù)據(jù)解調(diào)部分從接收到的射頻脈沖中解調(diào)出命令和數(shù)據(jù)并送到邏輯控制部分。邏輯控制部分接收指令完成存儲(chǔ)、發(fā)送數(shù)據(jù)或其它操作。(4)如果需要發(fā)送數(shù)據(jù),則將數(shù)據(jù)調(diào)制然后從收發(fā)模塊發(fā)送出去。(5)讀寫模塊接收到返回的數(shù)據(jù)后,解碼并進(jìn)行錯(cuò)誤校驗(yàn)來決定數(shù)據(jù)的有效性,然后進(jìn)行處理,必要時(shí)能夠經(jīng)過RS232或RS422或RS485或RJ45或無線接口將數(shù)據(jù)傳送到計(jì)算機(jī)。讀寫器發(fā)送的射頻信號(hào)除提供能量外,一般還提供時(shí)鐘信號(hào),使數(shù)據(jù)同步,從而簡(jiǎn)化了系統(tǒng)的設(shè)計(jì)。有源系統(tǒng)的工作原理與此大致相同,不同處只是卡的工作電源由電池提供的。4.2軟件結(jié)構(gòu)的實(shí)現(xiàn)4.2.1系統(tǒng)的整體軟件結(jié)構(gòu)系統(tǒng)軟件設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的重要部分,在硬件電路的基礎(chǔ)上,加上軟件編程才能夠?qū)崿F(xiàn)系統(tǒng)預(yù)期的功能。在本系統(tǒng)中,軟件的設(shè)計(jì)主要包括:數(shù)據(jù)采集模塊、存儲(chǔ)模塊、顯示模塊、門控模塊、報(bào)警模塊、鍵盤模塊和上位機(jī)軟件的設(shè)計(jì)幾個(gè)方面。本系統(tǒng)的軟件結(jié)構(gòu)框圖如圖9所示。1. 數(shù)據(jù)采集模塊:讀卡器ISO/IEC15693經(jīng)過天線讀取RFID卡的數(shù)據(jù),然后將數(shù)據(jù)傳送出去。2. 存儲(chǔ)模塊:AT89C51接收到數(shù)據(jù)后,將數(shù)據(jù)傳送給AT24C04進(jìn)行存儲(chǔ)。3. 顯示模塊:AT89C51接收到數(shù)據(jù)后,將數(shù)據(jù)與AT24C04里存儲(chǔ)的數(shù)據(jù)進(jìn)行對(duì)比,若兩者完全相同,則液晶顯示正確的信息;若不相同,則液晶顯示錯(cuò)誤的信息。4. 門控模塊:AT89C51接收到數(shù)據(jù)后,將數(shù)據(jù)與AT24C04里存儲(chǔ)的數(shù)據(jù)進(jìn)行對(duì)比,若兩者完全相同,則進(jìn)行開門操作;若不相同,則不開門。5. 報(bào)警模塊:AT89C51接收到數(shù)據(jù)后,將數(shù)據(jù)與AT24C04里存儲(chǔ)的數(shù)據(jù)進(jìn)行對(duì)比,若不相同則報(bào)警。6. 鍵盤模塊:經(jīng)過鍵盤輸入密碼,并根據(jù)輸入密碼的有效性做相應(yīng)的操作?;赗FID的門禁系統(tǒng)數(shù)據(jù)采集模塊基于RFID的門禁系統(tǒng)數(shù)據(jù)采集模塊存儲(chǔ)模塊顯示模塊門控模塊報(bào)警模塊鍵盤模塊顯示模塊結(jié)束報(bào)警模塊圖9軟件結(jié)構(gòu)框圖串口發(fā)送/接收部分的調(diào)試:將電路板與計(jì)算機(jī)連接以后,用一段簡(jiǎn)單的程序進(jìn)行調(diào)試。發(fā)現(xiàn)在調(diào)試的過程中,串口不能正常通信,經(jīng)過查證后發(fā)現(xiàn)是電容正負(fù)極接反了,修正以后,便能正常通信了。注:電容的選擇要注意,應(yīng)選擇0.1μF/1μF/10μF的電容。存儲(chǔ)部分的調(diào)試:將AT24C04與單片機(jī)連接好后,編寫一段簡(jiǎn)單的存儲(chǔ)程序,將字符存入到24C04里,并取出查看存儲(chǔ)數(shù)據(jù)的正確性。經(jīng)過調(diào)試后,并未發(fā)現(xiàn)問題。存儲(chǔ)電路調(diào)試成功。讀卡器部分的調(diào)試:將讀卡器接口與單片機(jī)相連后,用串口調(diào)試助手檢測(cè)讀卡器。在用串口助手向讀卡器發(fā)送讀卡命令時(shí),當(dāng)有卡(MIFIRES50、S70卡)進(jìn)入讀卡器讀卡范圍內(nèi)時(shí),會(huì)向串口助手返回卡序列號(hào),以此證明讀卡器可用。4.3系統(tǒng)功能的具體實(shí)現(xiàn)4.3.1系統(tǒng)軟件調(diào)試在進(jìn)行軟件調(diào)試之前要先進(jìn)行人工檢查代碼,要仔細(xì)認(rèn)真的檢查,在程序中要多添加注釋,以便檢查方便。在人工檢查無誤后,才能夠進(jìn)行動(dòng)態(tài)檢查,也就是上機(jī)調(diào)試。經(jīng)過編譯能夠得到語(yǔ)法錯(cuò)誤的信息,根據(jù)提示信息找出程序中出錯(cuò)之處并改正。有時(shí)提示的出錯(cuò)信息并不是真正出錯(cuò)的行,這就要求我們善于分析,找出真正的錯(cuò)誤,而不要單純從字面意義上找出錯(cuò)信息,要懂得變通的理解并解決問題。軟件調(diào)試時(shí),也要模塊式進(jìn)行。調(diào)試時(shí)可用單步運(yùn)行和斷點(diǎn)運(yùn)行方式,經(jīng)過檢查系統(tǒng)的CPU現(xiàn)場(chǎng)情況、RAM的內(nèi)容和I/O口的狀態(tài),檢測(cè)程序執(zhí)行結(jié)果是否符合設(shè)計(jì)要求。同時(shí),還能夠發(fā)現(xiàn)系統(tǒng)中存在的硬件設(shè)計(jì)錯(cuò)誤和軟件算法錯(cuò)誤。待各個(gè)模塊調(diào)好后再進(jìn)行系統(tǒng)程序聯(lián)調(diào)。這個(gè)階段若出現(xiàn)故障,能夠檢查算法上是否有沖突、參數(shù)傳遞是否正確等。在使用WAVE軟件時(shí),調(diào)試的方法和技巧最為重要,不同的情況采用不同的調(diào)試方法,有助于程序的實(shí)現(xiàn)。在設(shè)計(jì)過程中顯示運(yùn)行結(jié)果一般用全速調(diào)試,調(diào)試時(shí)主要使用了跟蹤調(diào)試、斷點(diǎn)調(diào)試。1.跟蹤調(diào)試:跟蹤應(yīng)用程序用戶能夠在運(yùn)行應(yīng)用程序時(shí),看到PC指針在應(yīng)用源代碼程序中的確切位置。跟蹤型:?jiǎn)尾綀?zhí)行一條語(yǔ)句程序,有利于觀察變量??墒?,如果調(diào)用一個(gè)函數(shù),則進(jìn)入函數(shù)中,在函數(shù)中單步執(zhí)行每一條語(yǔ)句。跟蹤使用熱鍵F7。單步型:?jiǎn)尾綀?zhí)行每條語(yǔ)句程序,如果調(diào)用一個(gè)函數(shù),則不進(jìn)入函數(shù)中。單步使用熱鍵F8。2.?dāng)帱c(diǎn)調(diào)試如果已知程序中某塊代碼實(shí)際運(yùn)行正常的情況下,仍用跟蹤調(diào)試,將大大浪費(fèi)時(shí)間,而且很枯燥,因此調(diào)試中第二個(gè)重要工具是在源代碼中某一處設(shè)置斷點(diǎn),大多數(shù)調(diào)試程序經(jīng)過使用斷點(diǎn)中止程序執(zhí)行。在程序調(diào)試中用到使用斷點(diǎn)調(diào)試,即在指定行上設(shè)置斷點(diǎn)后,全速執(zhí)行程序,看是否能進(jìn)行到設(shè)置斷點(diǎn)所在行。如果用斷點(diǎn)調(diào)試,由比較容易觀察出程序變量的改變及程序運(yùn)行的結(jié)果。設(shè)置斷點(diǎn)熱鍵Ctrl+F8。3.查看變量WAVE軟件能夠通Watch窗口進(jìn)行查看變量。經(jīng)過添加觀察項(xiàng)菜單能夠?qū)⒂脩粝M^察的變量添加到觀察窗口及數(shù)據(jù)窗口觀察。在設(shè)計(jì)過程中常見觀察窗口觀察程序中的變量,修改程序中的錯(cuò)誤。4.3.2系統(tǒng)整體調(diào)試將各個(gè)部分的硬件模塊合并成一個(gè)整體,把軟件各個(gè)部分程序合并到一個(gè)主程序中。經(jīng)過偉福訪真器和偉福調(diào)試軟件WAVE6000開始整體調(diào)試,硬件部分用萬(wàn)用表來測(cè)試硬件每部分的接通性。軟件部分的測(cè)試主要方法是經(jīng)過設(shè)置斷點(diǎn)、單步執(zhí)行等方法來測(cè)試程序的正確性。在確定軟硬件無問題后,將程序經(jīng)過燒寫器把程序燒到單片機(jī)中。將程序燒寫到控制芯片AT89C52,打開電源,電源指示燈亮,整個(gè)系統(tǒng)啟動(dòng)。運(yùn)行上位機(jī),向下位機(jī)發(fā)送讀卡命令,下位機(jī)接收到讀卡命令后,當(dāng)有RFID卡進(jìn)入到讀卡器的讀卡范圍內(nèi)時(shí),若RFID卡為有效卡便會(huì)在執(zhí)行開門操作的同時(shí)在液晶上顯示正確信息;若不是有效卡則在報(bào)警的同時(shí)在液晶上顯示錯(cuò)誤信息。當(dāng)經(jīng)過鍵盤輸入密碼后,系統(tǒng)會(huì)判斷密碼的有效性,若是有效密碼則開門并在液晶上顯示正確信息;若無效則報(bào)警并顯示錯(cuò)誤信息。整個(gè)系統(tǒng)完成。本系統(tǒng)能在打開電源并運(yùn)行上位機(jī)后,能自動(dòng)向下位機(jī)發(fā)送讀卡命令,當(dāng)有RFID卡進(jìn)入到讀卡器的讀卡范圍內(nèi)時(shí),則會(huì)自動(dòng)讀取卡序列號(hào),并將卡序列號(hào)傳送給上位機(jī),上位機(jī)判斷卡的有效性。若該卡是有效卡,系統(tǒng)會(huì)執(zhí)行開門并在液晶上顯示正確的信息;若該卡是非法卡,則會(huì)報(bào)警并顯示錯(cuò)誤的信息。本系統(tǒng)能夠有效、方便、安全地控制重要場(chǎng)所的出入訪問,具有可靠性高、保密性強(qiáng)、方便快捷等特點(diǎn)。整個(gè)系統(tǒng)中數(shù)據(jù)傳輸?shù)倪^程:發(fā)送到SDA線上的每個(gè)字節(jié)必須為8位。每次傳輸能夠發(fā)送的字節(jié)數(shù)量不受限制,每個(gè)字節(jié)的后面必須跟一個(gè)響應(yīng)位。首先傳輸?shù)氖菙?shù)據(jù)的最高位(MSB)。如果從機(jī)要完成一些其它功能后(例如一個(gè)內(nèi)部中斷服務(wù)程序)才能接收或發(fā)送下一個(gè)完整的數(shù)據(jù)字節(jié)。能夠使用時(shí)鐘線SCL保持低電平迫使主機(jī)進(jìn)入等待狀態(tài)。當(dāng)從機(jī)準(zhǔn)備好接收下一個(gè)數(shù)據(jù)字節(jié)釋放時(shí)鐘線SCL后,數(shù)據(jù)傳輸繼續(xù)。在一些情況下,能夠用與I2C總線格式不一樣的格式(例如兼容CBUS的器件)。甚至在傳輸一個(gè)字節(jié)時(shí),用這樣的地址起始的報(bào)文能夠經(jīng)過產(chǎn)生停止條件來終止,此時(shí)不會(huì)產(chǎn)生響應(yīng)。數(shù)據(jù)傳輸必須帶響應(yīng),相應(yīng)的響應(yīng)時(shí)鐘脈沖由主機(jī)產(chǎn)生。在響應(yīng)時(shí)鐘脈沖期間,發(fā)送器釋放SDA線(高)。在響應(yīng)的時(shí)鐘脈沖期間,接收器必須將SDA線拉低,使它在這個(gè)時(shí)鐘脈沖的高電平期間保持穩(wěn)定的低電平。當(dāng)然,必須考慮建立和保持時(shí)間。當(dāng)從機(jī)不能響應(yīng)從機(jī)地址時(shí)(例如它這在執(zhí)行一些實(shí)時(shí)函數(shù)不能接收或發(fā)送),從機(jī)必須使數(shù)據(jù)保持高電平。主機(jī)然后產(chǎn)生一個(gè)停止條件終止傳輸或者產(chǎn)生重復(fù)起始條件開始新的傳輸。如果從機(jī)—接收器響應(yīng)了從機(jī)地址可是在傳輸了一段時(shí)間后不能接收更多數(shù)據(jù)字節(jié),主機(jī)必須再一次終止傳輸。這個(gè)情況用從機(jī)在第一個(gè)字節(jié)后沒有產(chǎn)生響應(yīng)來表示。從機(jī)使數(shù)據(jù)線保持高電平,主機(jī)產(chǎn)生一個(gè)停止或重復(fù)起始條件。如果傳輸中有主機(jī)接收器,它必須經(jīng)過在從機(jī)產(chǎn)生時(shí)鐘的最后一個(gè)字節(jié)不產(chǎn)生一個(gè)響應(yīng),向從機(jī)—發(fā)送器通知數(shù)據(jù)結(jié)束。從機(jī)—發(fā)送器必須釋放數(shù)據(jù)線,允許主機(jī)產(chǎn)生一個(gè)停止或重復(fù)起始條件。所有的主機(jī)在SCL線上產(chǎn)生它們自己的時(shí)鐘來傳輸I2C總線上的報(bào)文。數(shù)據(jù)只有在時(shí)鐘的高電平周期有效。因此,需要一個(gè)確定的時(shí)鐘進(jìn)行逐位仲裁。同步時(shí)鐘經(jīng)過線與連接I2C接口到SCL線來執(zhí)行。這就是說:SCL線的高到低切換會(huì)使器件開始數(shù)它們的低電平周期,而且一旦器件的時(shí)鐘變低電平,它會(huì)使SCL線保持這種狀態(tài)直到到達(dá)時(shí)鐘的高電平。可是,如果另一個(gè)時(shí)鐘仍處于低電平周期。這個(gè)時(shí)鐘的低到高切換不會(huì)改變SCL線的狀態(tài)。因此,SCL線被有最長(zhǎng)低電平周期的器件保持低電平。因此,低電平周期短的器件會(huì)進(jìn)入高電平的等待狀態(tài)。當(dāng)所有有關(guān)的器件數(shù)完了它們的低電平周期后,時(shí)鐘線被釋放并變成高電平。之后,器件時(shí)鐘和SCL線的狀態(tài)沒有差別。而且所有器件會(huì)開始數(shù)它們的高電平周期。首先完成高電平周期的器件會(huì)再次將SCL線拉低。這樣,產(chǎn)生的同步SCL時(shí)鐘的低電平周期由低電平周期長(zhǎng)的器件決定,而高電平周期由高電平周期最短的器件決定。最后整個(gè)系統(tǒng)的搭建就基本完成,此時(shí)本系統(tǒng)具體實(shí)現(xiàn)的功能如下:1. 數(shù)據(jù)采集:讀卡器ISO/IEC15693經(jīng)過天線讀取RFID卡的數(shù)據(jù),然后將數(shù)據(jù)傳送出去。2. 數(shù)據(jù)分析:AT89C51接收到數(shù)據(jù)后,將數(shù)據(jù)傳送給AT24C04或上位機(jī),AT24C04或上位機(jī)對(duì)數(shù)據(jù)進(jìn)行分析,從而判斷數(shù)據(jù)的有效性。3. 模塊之間的通信:AT89C51與ISO/IEC15693/AT24C04之間的通信都是經(jīng)過模擬I2C總線進(jìn)行的,I2C總線的高效性、高實(shí)用性、高可靠性數(shù)據(jù)傳輸增強(qiáng)了系統(tǒng)的實(shí)時(shí)性和可靠性。4. 數(shù)據(jù)處理:針對(duì)數(shù)據(jù)的采集和分析的結(jié)果做出相應(yīng)的處理,例如顯示、報(bào)警、門控等。五課程設(shè)計(jì)總結(jié)經(jīng)過兩周的課程設(shè)計(jì),我對(duì)RFID的工作原理已經(jīng)有熟悉的認(rèn)識(shí),掌握的有關(guān)RFID應(yīng)用系統(tǒng)開發(fā)的基本步驟而且有了深刻的認(rèn)識(shí)。RFID原理及應(yīng)用在21世紀(jì)知識(shí)經(jīng)濟(jì)時(shí)代有著重要的地位。在以各種智能化為背景的前提下,RFID正的得到蓬勃的發(fā)展。本次課程設(shè)計(jì)就是在這個(gè)潮流下進(jìn)行了高頻、低頻及相關(guān)應(yīng)用設(shè)備的系統(tǒng)開發(fā)。起初在看到這個(gè)課設(shè)的時(shí)候我?guī)缀鹾翢o頭緒,不過經(jīng)過前期的關(guān)于RFID的的基礎(chǔ)實(shí)驗(yàn)和不斷的在網(wǎng)上和圖書館查閱資料,使我對(duì)RFID的基本原理與應(yīng)用和門禁系統(tǒng)的設(shè)計(jì)有了一個(gè)大致的思路,對(duì)其中涉及到的知識(shí)也進(jìn)行了學(xué)習(xí)和模仿。在一開始,我遇到了一些問題,解決這些問題的辦法就是去圖書館查閱有關(guān)資料,或上網(wǎng)查閱有關(guān)信息,或請(qǐng)教老師,終于按時(shí)完成了本次課程設(shè)計(jì)。這次課設(shè)不但考察了我們對(duì)課堂上所學(xué)的專業(yè)知識(shí)的理解程度,也鍛煉了我們的動(dòng)手能力。提高了我獨(dú)立思考問題,解決問題的能力。從總體看,我覺得這次課設(shè)是我自身的知識(shí)豐富了不少,但同時(shí)也發(fā)現(xiàn)了自己的不足之處。例如在動(dòng)手方面和知識(shí)的融合方面,不能很好的與實(shí)踐相結(jié)合。軟件操作不夠熟練。使我明白了要先學(xué)好理論知識(shí)才能很好的與實(shí)踐相結(jié)合,才能熟練的運(yùn)用到生活中。六參考文獻(xiàn)1.陳國(guó)棟.基于射頻識(shí)別技術(shù)的門禁系統(tǒng)研究與設(shè)計(jì)[D].中南大學(xué),.01.012.黃菊生.基于智能IC卡的網(wǎng)絡(luò)門禁系統(tǒng)設(shè)計(jì)與開發(fā)[D].湖南大學(xué),.10.103.游戰(zhàn)清,李蘇劍,張益強(qiáng)等.無線射頻識(shí)別技術(shù)(RFID)理論與應(yīng)用[M].北京:電子工業(yè)出版社,4.安靜宇.基于非接觸式IC卡門禁系統(tǒng)的設(shè)計(jì)[D].西安科技大學(xué),5.康行?。炀€原理與設(shè)計(jì)[M].國(guó)防工業(yè)出版社,1998.65-736.韓瑜,焦小澄.高效的LCD模塊顯示程序設(shè)計(jì)方法.計(jì)算機(jī)工程與應(yīng)用.,22(1):123-1267.董蘊(yùn)華,鄭先鋒.基于RFID技術(shù)的無線門禁系統(tǒng)的設(shè)計(jì)[J].通信技術(shù).8.李剛,曾銳利,林凌.基于射頻識(shí)別技術(shù)的智能交通系統(tǒng)[J].信息與控制,,35(5):555-5599.賈林.射頻識(shí)別技術(shù)(RFID)及其在物流交通領(lǐng)域的應(yīng)用[J].交通世界,(10):50-53.10.查振元,朱華炳.電子門禁系統(tǒng)組成[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,.11.李朝清.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù)[M].北京:北京航空航天大學(xué)出版社,.10-22,33-60附錄:(界面顯示子程序)//CardRead.cpp:實(shí)現(xiàn)文件#include"stdafx.h"#include"HFExample.h"#include"CardRead.h"#include"EmployeeAdd.h"#include"Selector.h"#include<mmsystem.h>//CCardRead對(duì)話框IMPLEMENT_DYNAMIC(CCardRead,CPropertyPage)CRITICAL_SECTIONm_cs;CCardRead::CCardRead() :CPropertyPage(CCardRead::IDD) ,m_readeraddr(_T("2")) ,m_modsel(0){}CCardRead::~CCardRead(){}voidCCardRead::DoDataExchange(CDataExchange*pDX){ CPropertyPage::DoDataExchange(pDX); DDX_Text(pDX,IDC_EDIT_READERADDR,m_readeraddr); DDX_Control(pDX,IDC_LIST2,m_listtags); DDX_Radio(pDX,IDC_RADIO1,m_modsel);}BEGIN_MESSAGE_MAP(CCardRead,CPropertyPage) ON_BN_CLICKED(IDC_BTN_CONNECTTOREADER,&CCardRead::OnBnClickedBtnConnecttoreader) ON_BN_CLICKED(IDC_BTN_CARDREAD,&CCardRead::OnBnClickedBtnCardread) ON_NOTIFY(NM_RCLICK,IDC_LIST2,&CCardRead::OnNMRclickList2) ON_COMMAND(ID_32771,&CCardRead::On32771) ON_BN_CLICKED(IDC_BTN_LISTEMPTY,&CCardRead::OnBnClickedBtnListempty)END_MESSAGE_MAP()//CCardRead消息處理程序voidCCardRead::OnBnClickedBtnConnecttoreader(){//TODO:在此添加控件通知處理程序代碼 CWaitCursorwc; UpdateData();if(m_readeraddr.IsEmpty()) { AfxMessageBox(TEXT("請(qǐng)輸入讀寫器地址"),MB_ICONINFORMATION,0); return; } LPTSTRp=m_readeraddr.GetBuffer(); charccommno=*p; m_readeraddr.ReleaseBuffer(); CStringt; GetDlgItem(IDC_BTN_CONNECTTOREADER)->GetWindowText(t); if(TEXT("連接")==t) {if(m_modsel!=m_presel) { if(!SetConfigInfo("HFExample",m_modsel)) TRACE("SetHFExampleConfiginfoERR\n"); } DWORDnewcom; newcom=_tcstoul(m_readeraddr,NULL,10); if(newcom!=m_precom) { if(!SetConfigInfo("HFExampleCom",newcom)) TRACE("SetHFExampleComConfiginfoERR\n"); } if(m_modsel==0) //網(wǎng)關(guān)模式 { TCHAR_comm[10]={0}; _stprintf_s(_comm,9,TEXT("COM%c"),ccommno); CSelectorseler(_comm); if(!seler.SelHF()) { AfxMessageBox("HF模塊未準(zhǔn)備好",MB_ICONSTOP,0); return;} } if(!m_preader->ConnectToReader(m_readeraddr)) { AfxMessageBox("連接失敗",MB_ICONSTOP,0); return; } GetDlgItem(IDC_BTN_CONNECTTOREADER)->SetWindowText(TEXT("斷開")); GetDlgItem(IDC_BTN_CARDREAD)->EnableWindow(TRUE); GetDlgItem(IDC_RADIO1)->EnableWindow(FALSE); GetDlgItem(IDC_RADIO2)->EnableWindow(FALSE);} else { if(m_preader->DisConnectFromReader()) { GetDlgItem(IDC_BTN_CONNECTTOREADER)->SetWindowText(TEXT("連接")); GetDlgItem(IDC_BTN_CARDREAD)->EnableWindow(FALSE); GetDlgItem(IDC_RADIO1)->EnableWindow(); GetDlgItem(IDC_RADIO2)->EnableWindow(); } }}BOOLCCardRead::OnInitDialog(){ CPropertyPage::OnInitDialog();//TODO:在此添加額外的初始化 //TagsList m_listtags.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); m_listtags.InsertColumn(0,TEXT("#")); m_listtags.InsertColumn(1,TEXT("ID")); m_listtags.InsertColumn(2,TEXT("Cnt")); m_listtags.InsertColumn(3,TEXT("姓名")); CRectrect4; m_listtags.GetClientRect(rect4);//獲得當(dāng)前客戶區(qū)信息 m_listtags.SetColumnWidth(0,rect4.Width()/10);//設(shè)置列的寬度。 m_listtags.SetColumnWidth(1,5*rect4.Width()/10); m_listtags.SetColumnWidth(2,rect4.Width()/10); m_listtags.SetColumnWidth(3,3*rect4.Width()/10); m_hsayhelloevent=CreateEvent( NULL,//nosecurityattributes FALSE,//manual-resetevent? FALSE,//initialstateissignaled? NULL);//objectnotnamed if(NULL==m_hsayhelloevent) TRACE("createeventforsayhellofailed\n"); m_hsayhello=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)sayhello,(LPVOID)this,0,NULL); if(NULL==m_hsayhello) TRACE("createthreadforsayhellofailed\n"); GetDlgItem(IDC_EDIT_READERADDR)->SetWindowText(TEXT("COM1")); GetEPCToName(); if(!GetConfigInfo("HFExample",&m_presel)) { TRACE("GetHFExampleiniErr:"); } else { m_modsel=m_presel; } if(!GetConfigInfo("HFExampleCom",&m_precom)) { m_precom=_tcstoul(m_readeraddr,NULL,10); TRACE("GetHFExampleCominiErr:"); } else { m_readeraddr.Format("%d",m_precom); } m_preader=newCHFReader; if(m_preader==NULL) TRACE(TEXT("CreateHFReaderError\n")); UpdateData(FALSE); InitializeCriticalSection(&m_cs); returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //異常:OCX屬性頁(yè)應(yīng)返回FALSE}voidCCardRead::OnBnClickedBtnCardread(){//TODO:在此添加控件通知處理程序代碼 CWaitCursorwc; CStringt; GetDlgItem(IDC_BTN_CARDREAD)->GetWindowText(t); if(TEXT("開始讀卡")==t) { m_listtags.DeleteAllItems(); m_epc.clear(); if(!m_preader->BeginInventory(callback1,this)) TRACE("BeginInventoryerror\n"); GetDlgItem(IDC_BTN_CARDREAD)->SetWindowText(TEXT("停止讀卡")); } elseif(TEXT("停止讀卡")==t) { if(!m_preader->CancelInventory()) TRACE("CancelInventoryerror\n"); GetDlgItem(IDC_BTN_CARDREAD)->SetWindowText(TEXT("開始讀卡")); }}BOOLCCardRead::OnSetActive(){//TODO:在此添加專用代碼和/或調(diào)用基類 GetEPCToName(); returnCPropertyPage::OnSetActive();}voidCCardRead::GetEPCToName(){ EmployeeInfoArray_t; theApp.getDB().GetAllEmployee(_t); m_epctoname.clear(); for(inti=0;i<_t.GetCount();i++) { CEmployeeInfo&aEmployee=_t.GetAt(i); m_epctoname[aEmployee.GetCardNo()]=aEmployee.GetName(); }}voidCCardRead::OnNMRclickList2(NMHDR*pNMHDR,LRESULT*pResult){//TODO:在此添加控件通知處理程序代碼 if(m_currentuser->GetPermission()==ADMINISTRATOR) { NM_LISTVIEW*pNMListView=(NM_LISTVIEW*)pNMHDR; m_curNum=pNMListView->iItem;//對(duì)應(yīng)的行 if(-1!=m_curNum&&m_listtags.GetItemText(m_curNum,3)=="") { CMenu menu; menu.LoadMenu(IDR_MENU_CARDNOADD); CPointpoint; GetCursorPos(&point); menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this); } } *pResult=0;}voidCCardRead::On32771(){//TODO:在此添加命令處理程序代碼 CEmployeeAddemployeeadddlg; CStringt; t=m_listtags.GetItemText(m_curNum,1); employeeadddlg.SetEmployeeCardNo(t); if(IDOK==employeeadddlg.DoModal()) { GetEPCToName(); m_listtags.SetItemText(m_curNum,3,employeeadddlg.m_aEmployeeInfo.GetName()); }}voidCCardRead::SetCurrentUser(CUserInfo*t){ m_currentuser=t;}voidCCardRead::On32772(){//TODO:在此添加命令處理程序代碼}voidCCardRead::OnBnClickedBtnListempty(){//TODO:在此添加控件通知處理程序代碼 m_listtags.DeleteAllItems(); m_epc.clear();}DWORDCCardRead::sayhello(LPVOID_t){CCardRead*cc=(CCardRead*)_t; DWORDret=cc->sayhellofun(); returnr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論