0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于AT89C52單片機(jī)和ZLG500s讀寫模塊實現(xiàn)智能卡門禁系統(tǒng)的設(shè)計

電子設(shè)計 ? 來源:單片機(jī)與嵌入式系統(tǒng)應(yīng)用 ? 作者:洪家平 ? 2020-10-24 10:22 ? 次閱讀

現(xiàn)在智能卡的應(yīng)用越來越廣泛,如校園一卡通系統(tǒng)、城市公交系統(tǒng)、大型會議簽到系統(tǒng)、考勤系統(tǒng)、門禁系統(tǒng)等都使用了智能卡。本文以ZLG500讀寫模塊作為卡與門禁機(jī)交換數(shù)據(jù)的接口模塊,介紹了ZLG500在智能卡門禁系統(tǒng)中的應(yīng)用。

1 讀寫模塊ZLG500簡介

1.1 ZLG500與MCU的接口原理

ZLG500模塊采用Philips公司最新的高集成ISO14443讀卡芯片MF RC500,它能讀寫RC500內(nèi)EEPROM,提供三線制SPI接口,并具有控制線輸出端口,能與任何MCU連接。ZLG500與MCS51單片機(jī)的接口原理圖如圖1所示。此外該模塊的EMC性能優(yōu)良,并且自帶無源蜂鳴器信號輸出,能用軟件控制其輸出頻率及輸出持續(xù)時間。

基于AT89C52單片機(jī)和ZLG500s讀寫模塊實現(xiàn)智能卡門禁系統(tǒng)的設(shè)計

圖中SCLK、SDATA、SS為ZLG500與MCU相連接的控制線,分別為時鐘線、數(shù)據(jù)線和片選。主控制器的MCU和讀卡模塊內(nèi)的MCU通過此三線相連。接口空閑時,主機(jī)的SS=1,SCLK=O,SDATA=0,而從機(jī)的SS=1,SCLK=1,SDATA=O。其中SS和DATA都是雙向的,而時鐘線SCLK是單向的,即時鐘只能由主控制器產(chǎn)生,該信號必須嚴(yán)格遵守時序規(guī)范,否則將出現(xiàn)通信錯誤,此時讀卡模塊必須釋放該線。

SS還作為數(shù)據(jù)發(fā)送使能端。若一方有數(shù)據(jù)要發(fā)送給另一方,則該方控制SS線為低電平,并在發(fā)送結(jié)束后將該線置高電平。接收數(shù)據(jù)方不得控制該線,雙方必須遵守通信協(xié)議,不得同時控制該線。SDATA為數(shù)據(jù)線,由數(shù)據(jù)發(fā)送端控制數(shù)據(jù),接收端必須釋放該線。該線在一次傳輸開始時還同時作為數(shù)據(jù)接收端的響應(yīng)信號。

1.2 ZLG500與MCU接口的時序及通信協(xié)議

ZLG500與MCU無論數(shù)據(jù)傳輸?shù)姆较蛉绾?,SPI線上信號的波形總是如圖2所示。由圖中可以看出,在SS為低時,時鐘和數(shù)據(jù)線上的信號才有效;在 SCLK為低時SDATA變化,在SCLK為高時SDATA應(yīng)保持穩(wěn)定。

以上傳輸中,從數(shù)據(jù)發(fā)送器請求開始至數(shù)據(jù)接收器響應(yīng)的時間是不確定的,取決于接收器內(nèi)的MCU是否忙,因此有必要設(shè)置看門狗定時器對數(shù)據(jù)接收器的響應(yīng)進(jìn)行監(jiān)視。一旦接收器響應(yīng),則MCU必須根據(jù)數(shù)據(jù)傳輸方向,嚴(yán)格控制以下幾個時間,以確保數(shù)據(jù)傳輸無誤。

t1:數(shù)據(jù)接收器響應(yīng)至MCU產(chǎn)生第一個SCLK上升沿的時間。

t2:2個字節(jié)傳輸之間SCLK低電平的持續(xù)時間。

t3:傳輸最后1個字節(jié)的最后1位的SCLK信號的上升沿至SS上升沿的時間。

tH:SCLK信號的高電平持續(xù)時間。

tL:SCLK信號的低電平持續(xù)時間。

在數(shù)據(jù)傳輸方向不同時,對時間t1、t2、t3、tH和tL都有不同的要求。

MCU與ZLG500的通信必須先由MCU發(fā)送命令和數(shù)據(jù)給ZLG500,ZLG500執(zhí)行命令完畢后,將命令執(zhí)行的狀態(tài)和響應(yīng)數(shù)據(jù)發(fā)回MCU。

開始通信前,收發(fā)雙方必須處于空閑狀態(tài)。首先由MCU發(fā)出SS下降沿信號,然后等待ZLG500在SDATA線上的響應(yīng),若在50 ms內(nèi)未檢測到此信號,則退出本次傳輸。若正確響應(yīng),則MCU可將命令和數(shù)據(jù)發(fā)送出去。

然后MCU等待ZLG500發(fā)回的狀態(tài)和響應(yīng)數(shù)據(jù),即等待SS線上的下降沿信號。若在50 ms內(nèi)未檢測到此信號,則退出本次傳輸;若正確檢測到SS信號,則可以接收狀態(tài)和數(shù)據(jù)。

2 智能卡門禁系統(tǒng)設(shè)計

2.1 總體結(jié)構(gòu)

系統(tǒng)采用Philips公司的非接觸智能IC卡Mifare 1(M1)卡。以M1卡作為用戶卡,以其全球唯一的序列號SN為依據(jù)控制門的開啟。由于它是一個高頻卡,工作頻率為13.5 MHz,因而具有較強(qiáng)的抗干擾能力且讀寫距離遠(yuǎn)(2.5~10 cm)。

整個智能卡門禁系統(tǒng)分為三大部分:其一是讀寫器部分,包括MCU、復(fù)位電路、時鐘電路、顯示電路、鍵盤、數(shù)據(jù)存儲等主控模塊及非接觸IC卡讀寫模塊和電鎖驅(qū)動部分;其二是中央控制電腦的軟件管理系統(tǒng)模塊;其三是中央控制電腦與讀寫器之間的數(shù)據(jù)傳輸模塊。總體系統(tǒng)框圖如圖3所示。

首先,在發(fā)卡系統(tǒng)(中央控制PC機(jī))里把用戶的卡號及個人信息輸入系統(tǒng)數(shù)據(jù)庫,并將該卡號作為合法卡號下載給所有門禁機(jī)。當(dāng)有1張M1卡在門禁機(jī)的有效工作范圍內(nèi)時,系統(tǒng)會自動向卡發(fā)出命令,卡接收到命令后向門禁機(jī)反饋其SN。門禁機(jī)判斷收到的卡號是否合法,合法則驅(qū)動電磁門鎖開門,并實時上傳其開門記錄;如果是非法卡(未經(jīng)授權(quán)或已掛失的卡)則拒絕開門并上傳報警信息。只有最高授權(quán)者(掌握授權(quán)密碼)才可以發(fā)管理員卡,管理員必須用管理員卡方可登錄發(fā)卡系統(tǒng)進(jìn)行發(fā)卡及下傳合法卡號、掛失、解掛、下傳黑名單等操作。

通過AT89C52對ZLG500的控制完成對卡的讀寫。系統(tǒng)外圍配有RS232轉(zhuǎn)RS485接口能與PC機(jī)互連成網(wǎng)絡(luò),可以完成讀卡、顯示卡號和出入時間、身份識別、開鎖以及保存和上傳出入記錄、下載黑名單、設(shè)置開門權(quán)限等功能。

門禁機(jī)模塊的主控軟件主要完成門禁機(jī)模塊的初始化、卡的識別、開啟門鎖及保存有關(guān)數(shù)據(jù)和數(shù)據(jù)傳輸?shù)任宕蠊δ堋F淇傮w工作流程如圖4所示。

2.2 主控模塊

由圖3可以看出,智能卡門禁系統(tǒng)中主控模塊主要由MCU(AT89C52)、ZLG500、復(fù)位電路、時鐘電路、數(shù)據(jù)存儲接口電路、鍵盤與顯示接口電路及電鎖等幾部分組成??梢钥闯鯩CU除了完成對ZLG500讀寫模塊的控制外,還要承擔(dān)其他功能的控制,主要包括4部分:數(shù)據(jù)存儲和數(shù)據(jù)傳輸部分、實時時鐘和掉電保護(hù)部分、鍵盤和顯示部分、驅(qū)動控制部分。

2.2.1 數(shù)據(jù)存儲和數(shù)據(jù)傳輸模塊

各門禁點(diǎn)的出入記錄可采用實時上傳或定時采集的方式從門禁機(jī)傳輸給中央數(shù)據(jù)庫,前者對系統(tǒng)網(wǎng)絡(luò)速度要求較高,當(dāng)網(wǎng)絡(luò)堵塞時有丟失數(shù)據(jù)的可能。本系統(tǒng)采用出入記錄暫時存儲在門禁機(jī)中,每隔一段時間(例如每周一次)上傳給中央數(shù)據(jù)庫的方式。為此要求門禁機(jī)具備一定容量的存儲器,用于暫存門禁數(shù)據(jù)以及由中央數(shù)據(jù)庫下載的授權(quán)卡號。門禁機(jī)存儲器的容量取決于一個門禁記錄的長度、系統(tǒng)的卡容量以及定時上傳周期內(nèi)最大的刷卡次數(shù)等,通常應(yīng)留有一定的余量以免由于超出存儲容量而丟失數(shù)據(jù)。本系統(tǒng)采用AT24c256作為門禁機(jī)的存儲器,其存儲容量達(dá)64 KB,劃分成2個區(qū):一個區(qū)用來存儲所讀取的記錄,另一個區(qū)用來存儲上位機(jī)下載的授權(quán)卡號。門禁機(jī)存儲器模塊的電路原理如圖5所示。

AT24C256是Atmel公司的具有I2C總線結(jié)構(gòu),可電擦寫與編程的只讀存儲芯片(EEPROM)。MCU對AT24C256的讀寫必須遵循I2C 總線傳輸?shù)臅r序要求,與AT24C01基本一致,在此不再贅述。

對于1個單一的讀寫器來講,自身的數(shù)據(jù)存儲是有限的。讀寫器外帶的數(shù)據(jù)存儲器主要作為數(shù)據(jù)的臨時存儲,對于大量的、需要長期保存的數(shù)據(jù),一般是通過有線或無線,甚至是網(wǎng)絡(luò)系統(tǒng)傳輸?shù)街骺赜嬎銠C(jī)中進(jìn)行保存。

2.2.2主模塊的軟接口

下面以主模塊中ZLG500與MCU(AT89C52)的通信為例來介紹智能卡門禁系統(tǒng)中主模塊的軟接口。ZLG500初始化的子程序如下:

上述程序中CONFIG子程序為RC500的復(fù)位和配置子程序,是由MCU向ZLG500發(fā)出的不帶數(shù)據(jù)的命令程序;REQUEST子程序是MCU向 ZLG500發(fā)出的帶1個字節(jié)數(shù)據(jù)的命令程序,主要是檢查有效范圍內(nèi)是否有卡存在;ANTICOLL子程序是防沖突操作,必須在執(zhí)行RE—QUEST命令后立即執(zhí)行。

2.2.3 時鐘控制

在門禁系統(tǒng)中,需要實時記錄出入數(shù)據(jù)(開門的卡號及其出現(xiàn)的時間)。若采用單片機(jī)軟件計時,一方面要占用硬件計數(shù)器資源,另一方面需要設(shè)置中斷、查詢等,耗費(fèi)單片機(jī)的CPU資源。而在系統(tǒng)中采用芯片DSl302則能很好地解決這個問題。DSl302是美國Dallas公司推出的高性能、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、周末、時、分、秒進(jìn)行計時,且具有閏年補(bǔ)償功能,工作電壓2.5~5.5 V。圖6所示是實時時鐘芯片DSl302與MCU連接電路原理圖,DSl302采用三線接口與MCU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。

MCU對DSl302的讀寫控制主要包括DSl302的初始化和讀取DSl302的時間和日期,初始化過程就是給DSl302賦予初始的時間和日期。當(dāng)實時時鐘芯片被啟動后,在沒有接收到新的初始化指令的情況下,其內(nèi)部的時鐘將一直不停地運(yùn)行,從而保證時間的實時性和準(zhǔn)確性;MCU在任何時候都可以通過讀取DSl302內(nèi)部時間和日期寄存器中的值而獲得準(zhǔn)確的時間和日期。關(guān)于實時時鐘芯片的使用可參見參考文獻(xiàn)。

3 與上位機(jī)的通信軟件接口設(shè)計

上位機(jī)數(shù)據(jù)庫管理系統(tǒng)采用Visual FoxPro編寫。本系統(tǒng)采用標(biāo)準(zhǔn)的通信控件communications進(jìn)行通信程序的設(shè)計,實現(xiàn)掛失數(shù)據(jù)的發(fā)送、用戶卡號的發(fā)送、發(fā)卡和門禁模塊數(shù)據(jù)的接收。每次通信時,首先在上位機(jī)的init事件中初始化通信控件olecontroll,初始化設(shè)置為:

結(jié)語

智能卡的應(yīng)用并不是簡單的讀寫卡操作,而是一個綜合性的工程項目。它不僅包括卡和讀寫模塊的選擇,還涉及讀寫模塊的控制、數(shù)據(jù)的傳輸、數(shù)據(jù)的處理和存儲;既需要有硬件應(yīng)用的知識,還必須具有軟件方面的能力。本系統(tǒng)經(jīng)過實際應(yīng)用的驗證,系統(tǒng)運(yùn)行穩(wěn)定可靠,操作簡單方便,因而具有較好的應(yīng)用前景。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    50947

    瀏覽量

    424711
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6039

    文章

    44580

    瀏覽量

    636422
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8643

    瀏覽量

    151393
收藏 人收藏

    評論

    相關(guān)推薦

    基于AT89C52單片機(jī)的SD卡的讀寫設(shè)計

      應(yīng)用AT89C52讀寫SD卡有兩點(diǎn)需要注意。首先,需要尋找一個實現(xiàn)AT89C52單片機(jī)與SD卡通訊的解決方案;其次,SD卡所能接受的邏輯
    發(fā)表于 08-18 10:49

    基于AT89C52單片機(jī)的渦流管控制系統(tǒng)

    基于AT89C52單片機(jī)的渦流管控制系統(tǒng) 摘要: 介紹了基于A T 89C52 單片機(jī)的渦流管控制系統(tǒng)
    發(fā)表于 04-14 14:54 ?28次下載

    基于AT89C52單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計

    基于AT89C52單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計 摘 要: 提出了一個由AT89C52單片機(jī)控制
    發(fā)表于 04-20 09:31 ?418次下載

    基于嵌入式技術(shù)的智能卡門禁系統(tǒng)設(shè)計

    介紹了基于智能卡讀寫模塊ZLG500門禁系統(tǒng)設(shè)計的原理與方法,主要分析了該
    發(fā)表于 07-06 16:18 ?54次下載

    基于AT89C52單片機(jī)的飛機(jī)副翼控制系統(tǒng)設(shè)計

    基于AT89C52單片機(jī)的飛機(jī)副翼控制系統(tǒng)設(shè)計
    發(fā)表于 12-17 17:13 ?74次下載
    基于<b class='flag-5'>AT89C52</b><b class='flag-5'>單片機(jī)</b>的飛機(jī)副翼控制<b class='flag-5'>系統(tǒng)</b>設(shè)計

    基于AT89C52單片機(jī)智能呼救系統(tǒng)設(shè)計

    系統(tǒng)硬件設(shè)計和軟件構(gòu)成上,介紹一種以AT89C52單片機(jī)為核心,通過無線遙控方法實現(xiàn)對預(yù)設(shè)電話自動撥號報警的智能呼救
    發(fā)表于 12-17 17:15 ?136次下載

    at89c52單片機(jī)引腳說明,AT89C52高性能8位單片機(jī)

    at89c52單片機(jī)引腳說明,AT89C52高性能8位單片機(jī)
    發(fā)表于 04-29 22:05 ?2.7w次閱讀
    <b class='flag-5'>at89c52</b><b class='flag-5'>單片機(jī)</b>引腳說明,<b class='flag-5'>AT89C52</b>高性能8位<b class='flag-5'>單片機(jī)</b>

    基于AT89C52單片機(jī)的SD卡的讀寫設(shè)計

    基于AT89C52單片機(jī)的SD卡的讀寫設(shè)計 前言   長期以來,以Flash Memory為存儲體的SD卡因具備體積小、功耗低、可擦寫以及非易失性等特點(diǎn)而被廣泛應(yīng)用于消費(fèi)類電
    發(fā)表于 01-15 10:16 ?1766次閱讀
    基于<b class='flag-5'>AT89C52</b><b class='flag-5'>單片機(jī)</b>的SD卡的<b class='flag-5'>讀寫</b>設(shè)計

    基于AT89C52單片機(jī)的電扇系統(tǒng)改造設(shè)計

    采用AT89C52型號的單片機(jī)對傳統(tǒng)的電扇系統(tǒng)進(jìn)行改造,實現(xiàn)對電扇的短距離控制。該設(shè)計利用單片機(jī)進(jìn)行紅外發(fā)送,紅外接收,在此過程中對紅外進(jìn)行
    發(fā)表于 02-02 11:18 ?89次下載
    基于<b class='flag-5'>AT89C52</b><b class='flag-5'>單片機(jī)</b>的電扇<b class='flag-5'>系統(tǒng)</b>改造設(shè)計

    基于AT89C2051單片機(jī)的RF卡門禁系統(tǒng)設(shè)計

    基于AT89C2051單片機(jī)的RF卡門禁系統(tǒng)設(shè)計。
    發(fā)表于 11-09 17:38 ?61次下載

    AT89C52單片機(jī)的SD卡讀寫設(shè)計

    應(yīng)用AT89C52讀寫SD卡有兩點(diǎn)需要注意。首先,需要尋找一個實現(xiàn)AT89C52 單片機(jī)與SD卡通訊的解決方案;其次,SD卡所能接受的邏輯電
    的頭像 發(fā)表于 02-16 11:23 ?4556次閱讀
    <b class='flag-5'>AT89C52</b><b class='flag-5'>單片機(jī)</b>的SD卡<b class='flag-5'>讀寫</b>設(shè)計

    使用AT89C52單片機(jī)進(jìn)行最小系統(tǒng)的接口電路免費(fèi)下載

    技術(shù)生產(chǎn), 兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)配置通用8位中央處理器(CPU)和Flash存儲單元,功能強(qiáng)大的AT89C52單片機(jī)可靈活應(yīng)用于各種控制領(lǐng)域。 AT89C52
    發(fā)表于 06-12 17:46 ?13次下載
    使用<b class='flag-5'>AT89C52</b><b class='flag-5'>單片機(jī)</b>進(jìn)行最小<b class='flag-5'>系統(tǒng)</b>的接口電路免費(fèi)下載

    單片機(jī)AT89C52控制的智能小車的設(shè)計

    單片機(jī)AT89C52控制的智能小車的設(shè)計方法。
    發(fā)表于 05-27 11:26 ?82次下載

    基于AT89C52單片機(jī)+RC500讀卡器電路設(shè)計資料

    基于AT89C52單片機(jī)+RC500讀卡器電路設(shè)計資料
    發(fā)表于 10-25 17:27 ?4次下載

    AT89C52單片機(jī)實現(xiàn)喇叭驅(qū)動的設(shè)計

    AT89C52單片機(jī)實現(xiàn)喇叭驅(qū)動的設(shè)計
    發(fā)表于 11-23 17:06 ?53次下載
    <b class='flag-5'>AT89C52</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>實現(xiàn)</b>喇叭驅(qū)動的設(shè)計