基于51單片機(jī)的 非接觸式ic卡讀卡器畢業(yè)設(shè)計(jì)
《基于51單片機(jī)的 非接觸式ic卡讀卡器畢業(yè)設(shè)計(jì)》由會員分享,可在線閱讀,更多相關(guān)《基于51單片機(jī)的 非接觸式ic卡讀卡器畢業(yè)設(shè)計(jì)(33頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 畢業(yè)設(shè)計(jì)說明書 專業(yè)班級: 學(xué)生姓名: 設(shè)計(jì)題目: 非接觸式IC卡讀卡器設(shè)計(jì) 指導(dǎo)教師: 教研室主任: 系(教學(xué))主任: 完成時(shí)間: 摘 要 本文介紹了以AT89S52單片機(jī)作為微控制器,以射頻技術(shù)為核心,基于PHILIPS公司MF-RC500模塊的非接觸式I
2、C卡讀寫器,闡述了該系統(tǒng)的組成、工作原理以及相應(yīng)的軟硬件設(shè)計(jì)。 本文闡述了非接觸式IC卡技術(shù)的基本原理,并對其讀卡器在工程上的設(shè)計(jì)和開發(fā)作了研究。論文描述了IC卡系統(tǒng)的發(fā)展和現(xiàn)狀,通過對射頻識別技術(shù)原理的研究,揭示了射頻IC卡系統(tǒng)的工作原理。介紹了Type A 型常用的卡片MF1 IC S50和對應(yīng)讀卡器的設(shè)計(jì)方法和電路 (使用專用射頻讀卡集成芯片RC500),并詳細(xì)闡述了系統(tǒng)各個(gè)模塊的組成和原理,給出了天線的設(shè)計(jì)規(guī)范。然后根據(jù)課題要求詳細(xì)介紹了自主設(shè)計(jì)的一款Type A 型讀卡器的核心部件—射頻模塊的實(shí)現(xiàn)方案和具體電路。最后介紹了系統(tǒng)設(shè)計(jì)的軟件部分,重點(diǎn)介紹了RC500的主要特性、基本指令
3、集以及與Mifare1非接觸IC卡數(shù)據(jù)通信的一些重要模塊的編程思路和編程方法,給出了兩個(gè)編程實(shí)例。 關(guān)鍵詞:微控制器;非接觸式IC卡;讀寫器;MF-RC500;射頻識別 目 錄 1 緒論 1 1.1 課題研究的背景和意義 1 1.2 目前國內(nèi)外研究現(xiàn)狀 1 1.3 本課題設(shè)計(jì)的主要工作和任務(wù) 2 2讀卡器系統(tǒng)方案設(shè)計(jì)與實(shí)現(xiàn) 3 2.1 IC卡介紹 3 2.2 讀卡器基本原理 3 2.3 總體方案論證 4 2.3.1 各模塊選擇與論證 4 2.3.2 總體方案確定 5 3 系統(tǒng)硬
4、件設(shè)計(jì)與實(shí)現(xiàn) 6 3.1 電源模塊 6 3.2 顯示模塊 6 3.3 系統(tǒng)時(shí)鐘模塊 7 3.4 存儲模塊 8 3.5 MF-RC500讀寫模塊 9 3.5.1 MF-RC500介紹 9 3.5.2 天線模塊的設(shè)計(jì) 10 3.5.3 MF-RC500與AT89S52連接圖 12 3.6 通信模塊 13 3.7 AT89S52芯片 14 4 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn) 17 4.1 軟件設(shè)計(jì)環(huán)境 17 4.2 主程序的設(shè)計(jì) 17 4.3讀/寫卡程序設(shè)計(jì) 18 4.3.1 MF-RC500指令說明 18 4.3.2 讀/寫卡程序流程圖 20 4.4 讀卡器外圍基本電路程序的
5、設(shè)計(jì) 21 4.4.1 顯示程序設(shè)計(jì) 21 4.4.2 鍵盤程序設(shè)計(jì) 22 4.4.3 E2PROM程序的編寫 23 4.5 通信部分程序設(shè)計(jì) 24 5 系統(tǒng)調(diào)試 25 5.1調(diào)試過程 25 5.2調(diào)試中發(fā)現(xiàn)的問題與解決方法 25 結(jié)論 26 致謝 27 參考文獻(xiàn) 28 附錄A總電路圖 29 29 1 緒論 1.1 課題研究的背景和意義 IC卡是集成電路卡(Integrated Circuit Card)的英文簡稱,在有些國家也稱之為智能卡、微芯片卡等,IC卡是在較為原始的磁卡的基礎(chǔ)上發(fā)展起來的,它的最初設(shè)想是由日本人提出來的。1969年12月,日本
6、的有村國孝提出一種制造安全可靠的信用卡方法,并于1970年獲得專利,那時(shí)叫ID卡(Identification Card)。1974年,法國的羅蘭莫雷諾(Roland Moreno)發(fā)明了帶集成電路芯片的塑料卡片,并取得了專利權(quán),這就是早期的IC卡。 早期的IC卡系統(tǒng)是接觸式的,它有其本身不可克服的缺點(diǎn),如接觸磨損、交易速率慢、難以維護(hù)、基礎(chǔ)設(shè)施投入大等。隨著信息業(yè)和服務(wù)業(yè)的全球化,在一些場合,對信息載體的便攜性、安全性及易用性等方面提出更高的要求,于是非接觸式IC卡以其無機(jī)械磨損、容易維護(hù)、方便使用等優(yōu)點(diǎn),成為IC卡中潛力最大的新軍而備受國內(nèi)外業(yè)界的矚目。 非接觸式IC卡系統(tǒng)是當(dāng)今世界
7、先進(jìn)的射頻技術(shù)和IC卡技術(shù)相結(jié)合的產(chǎn)物,是世界上最近幾年發(fā)展起來的一項(xiàng)新技術(shù),它成功地將射頻識別技術(shù)和IC技術(shù)結(jié)合起來,解決了無源和免接觸這一難題,是電子器件領(lǐng)域的一大突破,使卡片在靠近讀寫器表面時(shí)即可完成卡中數(shù)據(jù)的讀寫操作。 非接觸式IC卡一經(jīng)問世,便立即引起廣泛的關(guān)注。非接觸式IC卡操作方便、抗干擾性高、可靠性高、安全性高的特點(diǎn),使得它在一些接觸式IC卡不適用或者無法使用的場所,具有無可比擬的優(yōu)勢,被廣泛應(yīng)用于公交、收費(fèi)、門禁系統(tǒng)、考勤系統(tǒng)等領(lǐng)域。 目前非接觸式IC卡有很多不同的標(biāo)準(zhǔn),如IS014443A和IS014443B等,符合不同標(biāo)準(zhǔn)的卡片在不同的領(lǐng)域內(nèi)相互滲透和競爭??ㄆ愋偷?/p>
8、多樣性決定了讀卡器的多樣性,而市場的多樣性則決定了即使是同類型的應(yīng)用,也可能使用不同類型的卡片,若讀卡器只能讀取某一種類型的卡片,那么在處理這個(gè)應(yīng)用時(shí),必將需要多臺讀卡器,造成資源的重復(fù)浪費(fèi),這樣的讀卡器必將不能適應(yīng)市場的需求,這就對讀卡器的讀卡能力提出了更高的要求。設(shè)計(jì)出一種能讀取多種類型卡片的讀卡器,既是市場應(yīng)用的需求,也是未來的發(fā)展趨勢。目前,讀卡器已經(jīng)開始大量應(yīng)用于各種“一卡通”系統(tǒng)中,這些應(yīng)用對讀卡器的功能要求越來越高,除了傳統(tǒng)的對卡號的讀取之外,需要能夠?qū)ㄆM(jìn)行更高層的數(shù)據(jù)操作,與PC設(shè)備之間能進(jìn)行信息交流。為了適應(yīng)這種發(fā)展趨勢,非接觸式IC卡的讀卡器的開發(fā)與設(shè)計(jì)也迅速發(fā)展起來。
9、 1.2 目前國內(nèi)外研究現(xiàn)狀 智能卡的發(fā)展歷史并不久遠(yuǎn),而且全球各地發(fā)展不均衡,其中歐洲發(fā)展得最早、最好。智能IC卡源于七十年代的歐洲和日本,后來由法國人提出的將處理器置入IC卡卡片中的思想得到了廣泛接受,由于其具有完善的密碼功能從而有效的解決了智能卡的舞弊行為。隨后智能卡在1977-1998年間得到了迅速發(fā)展。九十年代初期,智能卡開始應(yīng)用于GSM數(shù)字移動通訊、有線電視的收費(fèi)等領(lǐng)域。在美國,智能卡發(fā)展相對遲緩,但隨著智能卡在歐洲的成功使用,其在美國產(chǎn)生巨大影響,盡管如此,美國在智能卡技術(shù)等領(lǐng)域仍處于世界領(lǐng)先地位。 據(jù)Innovation國際發(fā)明組織統(tǒng)計(jì),2005年10月到2006年9月全世
10、界IC卡硬件產(chǎn)業(yè)中,IC卡及其讀寫設(shè)備數(shù)量分別為42000萬張和877000臺,其中法國分別占98%和71%,處于世界領(lǐng)先地位。 我國對IC卡行業(yè)的發(fā)展始于1994年,當(dāng)時(shí)的中央領(lǐng)導(dǎo)特別是江澤民同志高度重視IC卡行業(yè),高瞻遠(yuǎn)矚,指示要發(fā)展我國自己的IC卡事業(yè),建立“金卡工程”。雖然至今也只有短短的十幾年左右時(shí)間,但是己經(jīng)取得了不小的成就。我國自1994年實(shí)施“金卡”工程以來,推動了金融電子化、商業(yè)和流通領(lǐng)域電子化的步伐,使我國銀行業(yè)務(wù)得到迅速發(fā)展,并逐漸波及醫(yī)療、交通、社會保險(xiǎn)、稅務(wù)等領(lǐng)域。在我國,智能卡在各種應(yīng)用領(lǐng)域全面開花,目前超過10個(gè)政府部門和行業(yè)推廣應(yīng)用了智能卡。 目前在我國,
11、隨著金卡工程建設(shè)的不斷深入發(fā)展,IC卡系統(tǒng)已在眾多領(lǐng)域獲得廣泛應(yīng)用,并取得了初步的社會效益。隨著政府管理和支持力度的加大、技術(shù)研發(fā)水平的提升,IC卡市場競爭格局將發(fā)生深刻的變化。隨著政府智能卡項(xiàng)目的啟動,國內(nèi)企業(yè)技術(shù)實(shí)力和工藝流程的優(yōu)化,使得國外品牌市場份額受到很大程度的限制,而國內(nèi)品牌將會有快速的發(fā)展。今后的幾年,是我國IC卡系統(tǒng)應(yīng)用向縱深發(fā)展的時(shí)期。我國IC卡系統(tǒng)市場格局必將由無序走向有序,市場競爭必將由有限走向無限,IC卡系統(tǒng)市場將逐步走向成熟。但是對于尖端的CPU卡及非接觸式IC智能射頻卡的制卡技術(shù)及其相應(yīng)的讀/寫卡設(shè)備技術(shù),仍處于落后狀態(tài)。這極大地制約了IC卡行業(yè)的發(fā)展,特別是在要求
12、有極高安全性和保密性的金融行業(yè)中,制約了我國金卡工程的實(shí)施和發(fā)展。設(shè)計(jì)和開發(fā)出更好的讀卡設(shè)備,對加快我國IC卡行業(yè)的發(fā)展,特別是尖端的CPU卡及非接觸式IC智能射頻卡的推廣應(yīng)用,有著重大的意義。 1.3 本課題設(shè)計(jì)的主要工作和任務(wù) 非接觸式IC卡代表了IC卡發(fā)展的方向,同接觸式IC卡相比其獨(dú)有的優(yōu)點(diǎn)使其能夠在絕大多數(shù)場合代替接觸式IC卡的使用,而在非接觸式IC 卡應(yīng)用系統(tǒng)中非接觸式IC卡讀卡器是關(guān)鍵設(shè)備。根據(jù)課題設(shè)計(jì)要求,本課題將開發(fā)一種基于飛利浦公司MF-RC500讀卡芯片的非接觸式IC卡讀卡器,其具有以下特點(diǎn):能識別TYPEA型卡片,讀取卡號,并有防沖突功能;能對TYPEA 的卡片進(jìn)行
13、高層操作;可以使用RS232通信接口輸出來與上位機(jī)之間通信;可根據(jù)實(shí)際需求將其作為門禁系統(tǒng)中的讀卡器,或者一卡通系統(tǒng)中的讀卡器。本設(shè)計(jì)完成后所要達(dá)到的主要指標(biāo)有: (1) 顯示系統(tǒng):液晶屏顯示,能顯示系統(tǒng)時(shí)鐘和卡片信息等; (2) 按鍵操作:能實(shí)現(xiàn)對系統(tǒng)的設(shè)置和卡上數(shù)據(jù)的操作; (3) 機(jī)器讀卡速度:0.5秒可完成一次打卡過程,讀卡距離為5至10厘米; (4) 保密性和防偽性:能辨認(rèn)卡的密碼,非授權(quán)范圍內(nèi)的卡作報(bào)警處理; (5) 存儲容量:每臺讀寫器最多可存儲2000條記錄。 本設(shè)計(jì)中需要解決的若干關(guān)鍵技術(shù)有: (1) 射頻識別技術(shù)
14、; (2) 軟件的安全機(jī)制; (3) 由于射頻的特殊性給系統(tǒng)調(diào)試帶來的困難。 該讀寫器完成以后,既可獨(dú)立使用,完成基本功能,外擴(kuò)簡單接口后,就能構(gòu)成IC卡考勤、門禁、售飯一卡通等系統(tǒng),在公交、校園、娛樂場所等方面有廣泛的應(yīng)用前景。 2讀卡器系統(tǒng)方案設(shè)計(jì)與實(shí)現(xiàn) 2.1 IC卡介紹 目前經(jīng)常接觸到的IC卡有兩種:接觸式和非接觸式的IC卡。接觸式的IC卡通過機(jī)械觸點(diǎn)從讀寫器獲取能量和交換數(shù)據(jù);非接觸式IC卡通過線圈射頻感應(yīng)從讀寫器獲取能量和交換數(shù)據(jù),所以又稱射頻卡。日前在社會上常見的是接觸式IC卡,它具有存儲量大,可實(shí)現(xiàn)一卡多用等功能。但是,這類卡的讀寫操作速度較慢,
15、操作也不方便,每次讀寫時(shí)必須把卡插入到讀寫器中才能完成數(shù)據(jù)交換,這樣在讀寫卡片頻繁的場合就很不方便,而且讀寫器的觸點(diǎn)和卡片上IC卡的觸腳暴露在外,容易損壞和搞臟而造成接觸不良。 非接觸式智能卡又稱射頻卡,是近幾年發(fā)展起來的新技術(shù)。它是根據(jù)射頻電磁感應(yīng)原理產(chǎn)生的,它的操作只需將卡放在讀寫器一定距離內(nèi)就能實(shí)現(xiàn)數(shù)據(jù)交換。它成功地將射頻識別技術(shù)和IC卡技術(shù)結(jié)合起來,將具有微處理器的集成電路芯片和天線封裝于塑料基片之中。讀寫器采用兆頻段及磁感應(yīng)技術(shù),通過無線方式對卡片中的信息進(jìn)行讀寫并采用高速率的半雙工通信協(xié)議。其優(yōu)點(diǎn)是應(yīng)用范圍廣、操作方便。因此,在公交、門禁、娛樂場所等方面有廣泛的應(yīng)用前景。目前我國引
16、進(jìn)的射頻卡主要以PHILIPS公司的MIFARE卡為主。 本系統(tǒng)在調(diào)試過程中使用的是PHILIPS公司的MFI IC S50,其屬于TYPEA型卡,下面對其做一些簡述:Mifare1 IC 卡的核心是PHILIPS公司MF1 IC S50系列微模塊,它確定了卡片的特性以及卡片讀寫器的諸多性能。Mifare1 IC智能卡內(nèi)建有高速的MCU,卡片上除了IC微晶片及一副高效率天線外,無任何其他元件;卡片上無源,工作時(shí)的電源能量由讀寫器天線發(fā)送無線電載波信號耦合到卡片上天線而產(chǎn)生電能;它與讀寫器通信使用握手式半雙工通信協(xié)議。 2.2 讀卡器基本原理 非接觸式IC卡讀寫器以射頻識別技術(shù)為核心
17、,讀寫器內(nèi)主要使用專用的讀寫處理芯片,它是讀/寫操作的核心器件,其功能包括調(diào)制、解調(diào)、產(chǎn)生射頻信號、安全管理和防碰撞機(jī)制。其內(nèi)部結(jié)構(gòu)分為射頻區(qū)和接口區(qū):射頻區(qū)內(nèi)含調(diào)制解調(diào)器和電源供電電路,直接與天線連接;接口區(qū)有與單片機(jī)相連的端口,還具有與射頻區(qū)相連的收/發(fā)器、數(shù)據(jù)緩沖器、防碰撞模塊和控制單元。這是與智能IC卡實(shí)現(xiàn)無線通信的核心模塊,也是讀寫器讀寫智能IC卡的關(guān)鍵接口芯片。讀寫器工作時(shí),不斷地向外發(fā)出一組固定頻率的電磁波,當(dāng)有卡靠近時(shí),卡片內(nèi)有一個(gè)LG串聯(lián)諧振電路,其頻率與讀寫器的發(fā)射頻率相同,這樣在電磁波的激勵下,LG諧振電路產(chǎn)生共振,從而使電容充電有了電荷。在這個(gè)電容另一端,接有一個(gè)單向?qū)?/p>
18、電的電子泵,將電容內(nèi)的電荷送到另一個(gè)電容內(nèi)存儲。當(dāng)電容器充電達(dá)到一定電壓值時(shí),此電容就作為電源為卡片上的其他電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或接收讀寫器發(fā)出的數(shù)據(jù)與保存。讀卡器的工作過程如下: (1) 讀卡器將載波信號經(jīng)天線向外發(fā)送; (2) 卡進(jìn)入讀卡器的工作區(qū)域后,卡內(nèi)天線和電容組成的諧振回路接收讀卡器發(fā)射的載波信號,射頻接口模塊將其轉(zhuǎn)換成電源電壓、復(fù)位信號,使卡片激活; (3) 存取控制模塊將存儲器中信息調(diào)制到載波上,經(jīng)卡上天線送給讀卡器; (4) 讀卡器對接收到的信號進(jìn)行解調(diào)、解碼后送至后臺計(jì)算機(jī); (5) 后臺計(jì)算機(jī)根據(jù)卡號的合法性,針對不同應(yīng)
19、用做出相應(yīng)的處理和控制。 2.3 總體方案論證 2.3.1 各模塊選擇與論證 (1)控制器 采用ATMEL公司的AT89S52作為系統(tǒng)的控制器。AT89S52單片機(jī)算術(shù)運(yùn)算功能強(qiáng)、軟件編程靈活、自由度大,可用軟件編程實(shí)現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等特點(diǎn),使其在各個(gè)領(lǐng)域應(yīng)用廣泛。AT89S52是我們熟悉的控制器,編程比較熟悉,易于掌握。 (2)RFID讀卡芯片 NXP公司(原飛利浦半導(dǎo)體公司)是較早進(jìn)入RFID芯片行業(yè)的國際半導(dǎo)體公司,在射頻讀寫芯片上產(chǎn)品較全。MF-RC500芯片就是NXP公司生產(chǎn)的。MF-RC500是高整合的1
20、3.56MHz非接觸IC卡讀寫芯片,整合了所有主動非接觸通信方式和協(xié)議,MF-RC500支持ISO 14443A&B的所有層的通信方案;內(nèi)部收發(fā)器部分能夠驅(qū)動近耦合設(shè)計(jì)的天線而不需要另外的電路;數(shù)字部分能處理完整的ISO14443幀數(shù)據(jù)還有錯(cuò)誤檢測;具有合適的并行接口,可以直接與8位的微處理器相連,并且支持SPI兼容接口。由于MF-RC500能夠滿足設(shè)計(jì)需求,而且應(yīng)用范圍比其他的芯片更廣,資料齊備,于是選擇MF-RC500作為本設(shè)計(jì)的射頻接口芯片。 (3)顯示模塊 使用液晶顯示屏顯示各種信息。液晶顯示屏具有輕薄短小、低耗電量、平面直角顯示以及影像穩(wěn)定不閃爍等優(yōu)勢,并且符合本系
21、統(tǒng)顯示信息量多的需求,利用LCD自帶的字符庫,進(jìn)行編程就可以實(shí)現(xiàn)所需信息的顯示,其不必利用控制芯片創(chuàng)建字符庫,既節(jié)省了資源,又省去了該部分的大量編程任務(wù)。為了使人機(jī)界面更加友好,操作更加方便,采用LCD液晶顯示。 (4)鍵盤模塊 采用矩陣式按鍵。矩陣式按鍵接口適用于按鍵數(shù)量較多,又不想使用專用鍵盤芯片的場合。這種方式的按鍵接口由行線和列線組成,按鍵位于行、列的交叉點(diǎn)上。這種方的優(yōu)點(diǎn)是可以節(jié)省很多I/O資源,相對于專用鍵盤可以節(jié)省成本,且更為靈活。缺點(diǎn)是需要用軟件處理消抖、重鍵等。由于該系統(tǒng)要求具有對卡片進(jìn)行讀/寫操作,系統(tǒng)時(shí)鐘的設(shè)置等,用到的按鍵較多,故采用矩陣式按鍵。
22、 (5)系統(tǒng)時(shí)鐘和存儲芯片的選擇 刷卡時(shí)要記錄刷卡的時(shí)間,用外接硬件時(shí)鐘芯片的辦法,為系統(tǒng)提供一個(gè)準(zhǔn)確可靠的時(shí)鐘,用3V備用電池保證在系統(tǒng)掉電時(shí)也能正常走時(shí)。在此選用體積小、接口簡單的實(shí)時(shí)時(shí)鐘芯片DS1302。它是美國Dallas公司推出的低功耗串行通信接口專用芯片,采用3線串行方式與單片機(jī)進(jìn)行數(shù)據(jù)通信。 采用AT24C64作數(shù)據(jù)存儲器。AT24C64是串行E2PROM存儲器,支持I2C總線數(shù)據(jù)傳輸協(xié)議,8K存儲器容量,用兩根線與CPU構(gòu)成串行接口。由于本設(shè)計(jì)采用的AT89S52單片機(jī)不具備I2C總線接口,因此采用軟件法加以解決。 2.3.2 總體方案確定 根據(jù)上
23、述分析,系統(tǒng)設(shè)計(jì)方案如下:本IC卡讀寫器擬以ATMEL公司的AT89S52單片機(jī)作為微控制器,采用MF-RC500芯片作為射頻卡讀/寫模塊,采用DS1302作為系統(tǒng)時(shí)鐘,以AT24C64作為不掉電存儲器,采用LCD顯示,以RS232接口和計(jì)算機(jī)通信,組成一套功能齊全的非接觸IC卡讀寫系統(tǒng)。當(dāng)IC卡在天線區(qū)域經(jīng)過時(shí),單片機(jī)自動需求對IC卡進(jìn)行讀寫,再把讀/寫卡的時(shí)間一起存到存儲器中,計(jì)算機(jī)可以通過串口把相關(guān)讀/寫卡信息讀到計(jì)算機(jī)上,再進(jìn)行統(tǒng)計(jì)、報(bào)表和打印輸出等。系統(tǒng)框圖如圖2.1所示。 顯示模塊 復(fù)位 報(bào)警 存儲模塊 外連串口 供電電源 鍵盤模塊 時(shí)鐘模塊 At89s
24、52芯片 射頻芯片 2.1 IC卡讀寫器系統(tǒng)結(jié)構(gòu)框圖 3 系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn) 3.1 電源模塊 該電源按常規(guī)設(shè)計(jì),為系統(tǒng)工作提供所需電源,其輸入為220V、50Hz交流電,輸出電壓等級為5V,電路原理圖如圖3.1所示。該部分主要采用78系列穩(wěn)壓器,結(jié)構(gòu)簡單,調(diào)整方便,輸出電壓紋波小。當(dāng)所需電流超過穩(wěn)壓器標(biāo)定值時(shí),可采用外接功率管的方法來擴(kuò)大輸出電流。市電交流220V經(jīng)變壓器降壓為交流6V,經(jīng)過全橋整流輸出直流電流,再經(jīng)過1000μF的電解電容濾波,除去整流后的交流成分,送至各三端穩(wěn)壓器,輸出需要的電壓。經(jīng)過各三端穩(wěn)壓器穩(wěn)壓
25、后,在LM7805輸出端輸出+5V直流電壓,LM7905輸出的端輸出-5V直流電壓。 圖3.1 5V直流穩(wěn)壓電源 3.2 顯示模塊 本系統(tǒng)的人機(jī)接口部分采用LCD顯示、32矩陣式鍵盤,用來實(shí)現(xiàn)對IC 卡的操作和系統(tǒng)設(shè)置等功能。LCD型號為ACM1602A,該字符型液晶顯示模塊由字符型液晶顯示屏,具有字符發(fā)生器ROM可顯示192種字符,有64個(gè)字節(jié)的自定義字符RAM,可自定義8個(gè)58點(diǎn)陣字符或四個(gè)511點(diǎn)陣字符。 在此系統(tǒng)中采用LCD分屏顯示,每一屏第一行的首地址是80H,第二行的首地址是0C0H;每行寫入16個(gè)字節(jié),每屏寫入二行(第一行為系統(tǒng)的時(shí)間,第二行為卡片的信息)。ACM
26、1602A集成度高,其內(nèi)部已經(jīng)帶有驅(qū)動電路,所以不用再為其設(shè)計(jì)驅(qū)動電路,由于1602是一個(gè)并口器件所以占用單片機(jī)的接口資源較多,為節(jié)省單片機(jī)接口資源使用了一個(gè)74HC595進(jìn)行串口轉(zhuǎn)并口,使1602與單片機(jī)進(jìn)行間接連接,LCD與單片機(jī)的連結(jié)圖如圖3.2所示。 圖3.2 LCD顯示電路 3.3 系統(tǒng)時(shí)鐘模塊 刷卡時(shí)要記錄刷卡的時(shí)間,用外接硬件實(shí)時(shí)時(shí)鐘芯片的辦法,為系統(tǒng)提供一個(gè)準(zhǔn)確可靠的時(shí)鐘,用3V備用電池保證在系統(tǒng)掉電時(shí)也能正常走時(shí),在此選用體積小、接口簡單的實(shí)時(shí)時(shí)鐘芯片DS1302。 (1)時(shí)鐘芯片介紹 DS1302是美國DALLAS公司開發(fā)的具備功耗低、接口
27、容易串行實(shí)時(shí)時(shí)鐘芯片。在本設(shè)計(jì)中使用的DS1302為8腳DIP封裝形式,其中1腳和8腳為電源電壓引腳,單電源供電時(shí)接8腳,雙電源供電時(shí),主工作電源接1腳,備份電源接8腳。2腳和3腳為32.768KHz晶振引腳;5腳RST為復(fù)位端,若其被置為低電平,則中止所有數(shù)據(jù)傳送,I/O腳變?yōu)楦咦钁B(tài),系統(tǒng)復(fù)位;6腳I/O為數(shù)據(jù)輸人/輸出端;7腳SCLK為串行時(shí)鐘輸入端,所有地址/命令字節(jié)和數(shù)據(jù)字節(jié)都是在時(shí)鐘的同步控制下從I/O腳串行輸入輸出的。DS1302通過SCLK、I/O、RST三根線與外部進(jìn)行同步串行通信。 (2)DS1302與單片機(jī)的連接 在本設(shè)計(jì)中采用單片機(jī)的P1.0-P1.2與DS1
28、302進(jìn)行數(shù)據(jù)通信,以提供系統(tǒng)所需的時(shí)鐘,其連接方法如圖3.3所示。 圖3.3 DS1302與單片機(jī)接口電路 3.4 存儲模塊 在本設(shè)計(jì)中采用串行E2PROM芯片AT24C64作數(shù)據(jù)存儲器。AT24C64 是ATMEL公司生產(chǎn)的采用I2C總線標(biāo)準(zhǔn)常用的串行E2PROM 存儲芯片,其支持I2C總線數(shù)據(jù)傳輸協(xié)議,64K(bit)存儲器容量,用兩根線與CPU構(gòu)成串行接口。AT24C64一般具有兩種寫入方式,一種是字節(jié)寫入方式,還有一種是頁寫入方式。AT24C64的讀操作有當(dāng)前地址讀、隨機(jī)讀、多字節(jié)讀三種方式。AT24C64其主要管腳功能描述如下:SCL,串行時(shí)鐘。這是一個(gè)輸入管腳
29、,用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘;SDA,串行數(shù)據(jù)/地址。這是一個(gè)雙向傳輸端,用于傳送地址和所有數(shù)據(jù)的發(fā)送或接收;A0、A1、A2,器件地址輸入端,這些輸入端用于多個(gè)器件并聯(lián)時(shí)設(shè)置器件地址。 AT24C64其主要管腳功能如下: 在系統(tǒng)中采用單片機(jī)的P3.3、P3.4口與AT24C64進(jìn)行連接,其與單片機(jī)的接口接法電路如圖3.4所示,由于本系統(tǒng)中采用到的AT89S52單片機(jī)不具備I2C總線接口,因此采用軟件法加以解決。 圖3.4 AT24C64與單片機(jī)接口電路 3.5 MF-RC500讀寫模塊 3.5.1 MF-RC500介紹 PHILIPS公司的MF-RC500
30、是應(yīng)用于13.56MHz非接觸式通信中高集成讀卡IC系列中的一員。該讀卡IC系列利用先進(jìn)的調(diào)制和解調(diào)概念,完全集成了在13.56MHz下所有類型的被動非接觸式通信方式和協(xié)議。MF-RC500支持IS014443A所有的層,其功能框圖如下: 圖3.5 MF-RC500的功能框圖 MF-RC500內(nèi)部包括并行微控制器接口、雙向FIFO緩沖區(qū)、中斷、數(shù)據(jù)處理單元、狀態(tài)控制單元、安全和密碼控制單元、模擬電路接口及天線接口。MF-RC500外部接口包括數(shù)據(jù)總線、地址總線、控制總線、電源等。MF-RC500 的并行微控制器接口自動檢測連接的8位并行接口的類型。它包含了一個(gè)雙向FIFO緩沖區(qū)
31、和一個(gè)可配置的中斷輸出,這樣就為連接各種MCU提供了很大的靈活性,即使使用非常低成本的器件也能滿足高速非接觸式通信的要求。數(shù)據(jù)處理部分執(zhí)行數(shù)據(jù)的并行-串行轉(zhuǎn)換[。狀態(tài)和控制部分允許對器件進(jìn)行配置以使性能調(diào)節(jié)到最佳狀態(tài)。模擬電路包含一個(gè)具有非常低阻抗橋驅(qū)動器輸出的發(fā)送部分,這使得最大操作距離可達(dá)100mm,接收器可以檢測到非常弱的應(yīng)答信號。MF-RC500管腳如3.6所示。 圖3.6 MF-RC500管腳圖 該器件為32腳SO封裝,器件使用了3個(gè)獨(dú)立的電源以實(shí)現(xiàn)在EMC特性和信號解耦方面達(dá)到最佳性能。MF-RC500具有出色的RF性能并且模擬和數(shù)字部分可適應(yīng)不同的操作電壓,其驅(qū)動、模擬
32、、數(shù)字部分分別使用單獨(dú)電源供電。 表3.1 天線連接管腳 為了驅(qū)動天線,MF-RC500通過TXl和TX2提供13.56MHz的能量載波。根據(jù)寄存器的設(shè)定對發(fā)送數(shù)據(jù)進(jìn)行調(diào)制得到發(fā)送的信號。智能卡采用RF場的負(fù)載調(diào)制進(jìn)行響應(yīng)。天線拾取的信號經(jīng)過天線匹配電路送到RX腳,RC500內(nèi)部接收器對信號進(jìn)行檢測、處理,然后將數(shù)據(jù)發(fā)送到并行接口由微控制器進(jìn)行讀取。 表3.2 MF-RC500并行口控制管腳 3.5.2 天線模塊的設(shè)計(jì) 為了同非接觸式智能卡通信,讀卡器內(nèi)必須有能發(fā)射和接收射頻信號的天線。天線用于產(chǎn)生磁通量,而磁通量用于向應(yīng)答器提供電源并在閱讀器和應(yīng)答器之間傳送信息
33、。因此,對讀卡器天線的構(gòu)造有了三個(gè)基本的要求: 1)使天線線圈的電流i1最大,用于產(chǎn)生最大的磁通量; 2)功率匹配,以最大程度地利用產(chǎn)生磁通量的可用能量; 3)足夠的帶寬,以無失真地傳送數(shù)據(jù)調(diào)制的載波信號。 (1)天線尺寸和讀寫距離 由于MF-RC500是低功耗設(shè)計(jì),因此卡和天線之間的耦合系數(shù)必須符合一定的值,卡和天線之間的耦合系數(shù)不能低于0.3。天線一般設(shè)計(jì)為三圈,可以設(shè)計(jì)為圓形或者方形天線。天線的直徑必須介于0.5-1.5mm之間。表3.3 給出了卡和天線的耦合系數(shù)為0.3 時(shí)的天線大小和讀寫距離關(guān)系表。 表3.3 天線大小和讀寫距離關(guān)系
34、表 根據(jù)技術(shù)指標(biāo)以及尺寸等方面的要求,要本設(shè)計(jì)中讀寫器天線參數(shù)如下: 天線形狀:方形天線 天線圈數(shù):三圈 幾何尺寸:65mm54mm 天線導(dǎo)體直徑:1mm (2)EMC電路及接收電路 EMC電路:射頻識別系統(tǒng)的工作頻率為13.56MHz,是由一個(gè)石英晶振產(chǎn)生的,同時(shí)它還產(chǎn)生更高頻率的諧波,為了確保能夠有效抑制三次,五次和更高次的諧波對信號的干擾作用,需要有一個(gè)低通濾波器來濾除這些高次諧波。 接收電路:MF-RC500內(nèi)部的信號接收部分使用由子載波的雙邊帶調(diào)制出的信號,為了減少干擾,在地和VMID間接了一個(gè)電容,接收部分需要在Rx和VMID腳之間接一個(gè)電阻分壓
35、結(jié)構(gòu)。另外,在天線線圈和分壓器之間串一個(gè)電容會獲得質(zhì)量更高的信號。濾波器與接收電路的電路原理圖如圖3.7所示。 圖3.7 EMC及接收電路 (4)天線電路圖 天線電路圖如圖3.8所示。 圖3.8 天線電路 圖中電容C2A_a、C2A_b、C2A_a、C2A_b、(通稱C2)的值是由天線的電感值決定的,且需要根據(jù)天線的形狀進(jìn)行調(diào)整。C2電容的大小嚴(yán)格影響讀卡器的性能,這就需要在確定了卡的類型之后在實(shí)際的使用環(huán)境中進(jìn)行試驗(yàn),確定不同的C2值,使讀卡器具有最好的性能表現(xiàn)。 RC500有一個(gè)內(nèi)部信號驅(qū)動管腳AUX,當(dāng)讀卡器發(fā)出某一指令時(shí),可以使用示波器觀察該引腳的輸出信號,
36、不斷改變卡與讀卡器之間的距離和C2值,示波器輸出不同的波形,根據(jù)不同的波形即可確定讀卡器最好性能的C2值。在本課題設(shè)計(jì)中,根據(jù)天線的參數(shù)進(jìn)行試驗(yàn),得到的最終C2值如表3.4所示。 表3.4 C2電容值表 (5)天線的品質(zhì)因數(shù)和匹配電阻 用于電感耦合式射頻識別系統(tǒng)的天線,其特征值是諧振頻率f0和品質(zhì)因數(shù)Q。較高的品質(zhì)因數(shù)Q值會使天線線圈中的電流強(qiáng)度大,由此改善對應(yīng)答器的功率改善情況。與之相反,天線的傳輸帶寬剛好與品質(zhì)因數(shù)成反比例變化,選擇的品質(zhì)因數(shù)過高會導(dǎo)致帶寬縮小從而明顯地減弱應(yīng)答器接收到的調(diào)制邊帶。 3.5.3 MF-RC500與AT89S52連接圖 M
37、F-RC500與AT89S52連接圖如圖3.9所示,圖中單片機(jī)AT89S52作為控制核心,主要完成數(shù)據(jù)采集、處理、存儲及控制電路工作;MF-RC500 支持不同的微控制器接口,一個(gè)智能的自動檢測邏輯可以自動適應(yīng)系統(tǒng)總線的并行接口。圖中使用信號NCS選擇芯片。對于MF-RC500,若要使用獨(dú)立的地址和數(shù)據(jù)總線與微控制器相連,必須將ALE腳連接到DVDD,若使用復(fù)用的地址和數(shù)據(jù)總線與控制器接口,必須將ALE腳連到微控制器的ALE信號。在本設(shè)計(jì)中,該讀寫器采用地址數(shù)據(jù)總線復(fù)用方式與微控制器相連。在對MF-RC500進(jìn)行讀寫操作時(shí),若要使用NWR和NRD與微控制器相連,則這兩個(gè)引腳應(yīng)該連接到微控制器的
38、讀寫管腳上。圖中使AT89S52的WR和RD管腳分別與MF-RC500的NWR管腳和NRD管腳相連來控制讀寫使能;MF-RC500工作頻率由石英晶體而產(chǎn)生,同時(shí)與OSCIN管腳相連可作為外部時(shí)鐘;P3.2管腳與MF-RC500的IRQ管腳相連用以接收中斷請求;由圖可以看出,本系統(tǒng)采用中斷(INT0)工作模式,即MCU利用MF-RC500提供中斷信息對其進(jìn)行控制。另外,根據(jù)系統(tǒng)的需要,可以采用查詢方式對MF-RC500進(jìn)行操作。 圖3.9 MF-RC500與AT89S52連接圖 3.6 通信模塊 本智能卡讀寫器采用RS232標(biāo)準(zhǔn)來實(shí)現(xiàn)讀卡器和上位機(jī)之間的通信,能實(shí)現(xiàn)RS232通信協(xié)
39、議的芯片很多,其中MAXIM公司生產(chǎn)的MAX232是一款比較優(yōu)良的RS232通信芯片。選取它的主要依據(jù)在于:單5V電源供電,與讀卡器里其它芯片的工作電壓相同;符合所有EIA/232E標(biāo)準(zhǔn);多路輸入輸出。MAX232其引腳功能說明如表3.5所示。 表3.5 MAX232引腳說明 在硬件電路連接上采用三線制(RXD、TXD、GND)軟握手的零MODEM方式,即將PC機(jī)和單片機(jī)的發(fā)送數(shù)據(jù)線(TXD)與接收數(shù)據(jù)(RXD)交叉連接,二者的地線(GND)直接相連,而其它信號線、如握手信號均不用,而采用軟件握手,這樣既可以實(shí)現(xiàn)預(yù)定的任務(wù)又可以簡化電路設(shè)計(jì)、節(jié)約成本。MAX232與AT89S52
40、的電路連接如圖3.10所示。 圖3.10 MAX232與AT89S52的連接圖 3.7 AT89S52芯片 下面,我們來了解非接觸IC卡讀寫器的核心部分,它是整套系統(tǒng)的大腦,無論是人機(jī)操作,還是時(shí)鐘、數(shù)據(jù)存儲的應(yīng)用,以及下文中提及的各個(gè)相關(guān)模塊,從接線到程序都與它有著緊密的聯(lián)系。它就是單片機(jī)芯片。 我們先簡單了解一下單片機(jī)是什么。單片機(jī)最早被用在工業(yè)控制領(lǐng)域,但是經(jīng)過很長一段時(shí)間,現(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會有可能集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。單片機(jī)是靠程序的,并且可以修改。通過不同的
41、程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。下面我們對本次設(shè)計(jì)選用的單片機(jī)進(jìn)行了解 AT89S52這一產(chǎn)品與MCS-51單片機(jī)產(chǎn)品兼容、8K字節(jié)在系統(tǒng)可編程Flash存儲器、1000次擦寫周期、32個(gè)可編程I/O口線、三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源、全雙工串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時(shí)器、雙數(shù)據(jù)指針、掉電標(biāo)識符。AT89S52的外形封裝有以下列四個(gè)(圖3.7.A)(圖3.7.B): (圖3.7.A)分別是左40管腳、右44管腳的AT89S52芯片 (圖3.7.B)分別為左44
42、管腳、右42管腳的AT89S52芯片 本設(shè)計(jì)挑選的AT89S52芯片,共有40個(gè)與外部電路連接的管腳,包括32個(gè)可編程I/O口,下面我們簡單介紹一下該芯片的管腳功能。 P0口:P0口雙向I/O口。作為輸出口, 當(dāng)訪問外部程序和數(shù)據(jù)存儲器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。 P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T
43、2EX),具體如下表所示。 引腳第二功能 P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出 P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制) P1.5 MOSI(在系統(tǒng)編程用) P1.6 MISO(在系統(tǒng)編程用) P1.7SCK(在系統(tǒng)編程用) P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口。對P2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入使用。 P3 口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,作為輸入使用時(shí),因被外部拉低的引腳由于內(nèi)部電阻,也將輸出電流。P3口亦作為AT89S52特殊功能(第二功能)使
44、用,在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號。 P3口第二功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 INTO(外中斷0) P3.3 INT1(外中斷1) P3.4 TO(定時(shí)/計(jì)數(shù)器0) P3.5 T1(定時(shí)/計(jì)數(shù)器1) P3.6 WR(外部數(shù)據(jù)存儲器寫選通) P3.7 RD(外部數(shù)據(jù)存儲器讀選通) RST 復(fù)位輸入。 PSEN 程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52由外部程序存儲器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部
45、數(shù)據(jù)存儲器,將跳過兩次PSEN信號。 EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器,EA端必須保持低電平(接地)。需注意的是:如果加密位被編程,復(fù)位時(shí)內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。 4 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn) 非接觸智能卡系統(tǒng)的軟件設(shè)計(jì)可分為四部分,分別為主程序設(shè)計(jì)、RC500的讀/寫程序的設(shè)計(jì)、讀卡器外圍基本電路的應(yīng)用程序設(shè)計(jì)和通信部分程序的設(shè)計(jì)。主程序主要包括:IC卡讀/寫/密碼驗(yàn)證/擦除操作程序,RC500通信中斷處理程序,鍵盤中斷處理程序,PC機(jī)通信中斷處理程
46、序,顯示程序及存儲器讀寫程序等,對MF-RC500的應(yīng)用程序的設(shè)計(jì)也即是對MF-RC500操作指令的程序設(shè)計(jì),對讀卡器外圍基本電路程序的設(shè)計(jì)包括LCD顯示程序設(shè)計(jì)、鍵盤掃描程序設(shè)計(jì)、數(shù)據(jù)存儲程序設(shè)計(jì)和RS232通信程序設(shè)計(jì)。 4.1 軟件設(shè)計(jì)環(huán)境 一個(gè)好的程序設(shè)計(jì)思想,加上適當(dāng)?shù)木幾g軟件、仿真器和編程器,是單片機(jī)軟件開發(fā)的基本要求。本系統(tǒng)程序的設(shè)計(jì)以模塊化和結(jié)構(gòu)化的設(shè)計(jì)思想為指導(dǎo)。單片機(jī)開發(fā)所使用的語言一般為匯編語言。匯編語言的優(yōu)點(diǎn)是代碼生成效率高,程序運(yùn)行速度快,其缺點(diǎn)是程序的讀性和可移植性都較差,而且用匯編語言編寫單片機(jī)應(yīng)用系統(tǒng)程序的周期長,調(diào)試和排錯(cuò)比較困難。C語言是一種通用
47、的計(jì)算機(jī)程序設(shè)計(jì)語言,在國際上十分流行,它既可用來編寫計(jì)算機(jī)的系統(tǒng)程序,也可用來編寫一般的應(yīng)用程序。用它編寫的程序,具有較好的可讀性和可移植性。有經(jīng)驗(yàn)表明,用C語言編寫的程序生成代碼的效率僅比用匯編語言編寫的程序10~20%。德國Keil軟件公司的C51編譯器可以直接對8051單片機(jī)的內(nèi)部特殊功能寄存器和I/O口進(jìn)行操作,直接訪問片內(nèi)或片外存儲器,還可以進(jìn)行各種位操作,能產(chǎn)生簡潔、高效率的程序代碼,在代碼質(zhì)量上可以與匯編語言相媲美。因此系統(tǒng)在設(shè)計(jì)中多數(shù)的程序使用了C語言進(jìn)行設(shè)計(jì),少數(shù)的一些程序用匯編語言編寫,用C語言進(jìn)行調(diào)用。 4.2 主程序的設(shè)計(jì) 讀卡器工作的過程是一個(gè)復(fù)雜的程
48、序執(zhí)行過程,要執(zhí)行一系列的操作指令,調(diào)用多個(gè)函數(shù)。其主要包括鍵盤掃描、LCD顯示、讀寫E2PROM、讀/寫卡及與上位機(jī)通信等。這一系列的操作必須按固定的順序進(jìn)行。在沒MF1卡進(jìn)入射頻天線有效范圍內(nèi)時(shí),在LCD液晶上顯示當(dāng)前時(shí)鐘,當(dāng)有MF1卡進(jìn)入到射頻天線的有效范圍內(nèi)時(shí),讀卡程序驗(yàn)證卡及密碼成功后,將卡號和讀卡時(shí)間作為一條記錄存入E2PROM存儲器中,并在LCD顯示器上顯示該卡的卡號等信息。 讀卡器的主程序主要由下位機(jī)來完成,單片機(jī)中的程序主要包括:IC卡讀/寫/密碼驗(yàn)證/擦除操作程序,與RC500通信中斷處理程序,鍵盤中斷處理程序,與PC機(jī)通信中斷處理程序,顯示程序及存儲器讀寫程序等等。讀
49、卡器的主程序流程圖如圖4.1所示。 圖4.1 讀卡器主程序流程圖 4.3讀/寫卡程序設(shè)計(jì) 4.3.1 MF-RC500指令說明 MCU對MIFARE非接觸式智能卡的控制是通過MF-RC500來實(shí)現(xiàn)的,MF-RC500是MCU和MIFARE非接觸式智能卡之間的通信載體。MCU對MF-RC500的控制是以MCU發(fā)出MF-RC500的指令來達(dá)到的,MF-RC500收到指令之后執(zhí)行這些指令。MF-RC500的指令主要有:Request std,Request all,Anticollision,Select,Authentication,Read,Write,它們可以完成MC
50、U對MIFARE 非接觸式智能卡的很多應(yīng)用場合的控制。 MCU對MF-RC500的某一指令操作不是簡單的一條指令所能完成的,必須有一個(gè)程序的序列來完成,其中有對MF-RC500硬件內(nèi)核寄存器的讀/寫以及根據(jù)讀出的硬件內(nèi)核寄存器的內(nèi)容進(jìn)行語言軟件上的判斷和設(shè)置。不同的指令將設(shè)置不同的MF-RC500內(nèi)部寄存器以及應(yīng)有不同的編程語言程序序列。MF-RC500具體指令說明及程序設(shè)計(jì)如下: (1)“Answer to Request”(應(yīng)答或復(fù)位應(yīng)答) 表4.1 復(fù)位應(yīng)答指令 Request指令將通知MF-RC500在天線有效的工作范圍內(nèi)尋找WARE卡片。如果有MIFARE
51、卡片存在,這一指令將分別與MIFARE卡片進(jìn)行通信,讀取WARE卡片上的卡片類型號TAGTYPE,由MF-RC500傳遞給MCU,進(jìn)行識別處理。Request指令分為Request std和Request all兩個(gè)指令。 Request all指令是非連續(xù)性的讀卡指令,只讀一次,它可以防止MF-RC500選擇同一卡片好幾次。當(dāng)某一張卡片在MF-RC500天線的有效工作范圍內(nèi),Request all指令在成功地讀取這一張卡片之后,將一直等待卡片的使用者拿走這張卡片,直到有新一張的卡片進(jìn)入M- RC500天線的有效工作范圍內(nèi)。 Request std指令的使用和Request all指令相
52、反,Request std指令是連續(xù)性的讀卡指令。當(dāng)卡片在MF-RC500天線的有效工作范圍內(nèi),Request std指令在成功地讀取這一張卡片之后,對卡進(jìn)行其他操作。如果其他操作完成之后,程序員又將MF-RC500進(jìn)入Request std指令操作,則Request std指令將連續(xù)性地再次進(jìn)行讀卡操作,而不管這張卡片是否被拿走。只要有一張卡片進(jìn)入MF-RC500之天線的有效的工作范圍內(nèi),Request std指令將始終連續(xù)性地再次進(jìn)行讀卡操作。 (2)“Select Tag”(選擇卡片操作) 表4.2 選擇卡片指令 在一個(gè)成功的AntiCollision指令之后,或
53、在任何時(shí)候當(dāng)程序員想與已知序列號的卡片進(jìn)行通信時(shí),必須使用Select指令,以建立與所選卡的通信。Select指令成功地完成后,MCU將得到MF-RC500的DATA寄存器傳送來的一個(gè)字節(jié)長的卡片容量信息—Size。 (3)“Authentication”(認(rèn)證操作) 表4.3 認(rèn)證指令 在MCU希望讀取MIFARE卡上的數(shù)據(jù)之前,此操作必須是被允許的。這可以通過選擇存儲在MF-RC500之RAM中的密碼集中的一組密碼來進(jìn)行認(rèn)證而實(shí)現(xiàn)。如果這一組密碼與MIFARE卡片上的密碼匹配,這一次操作被允許進(jìn)行??ㄆ系拇鎯ζ鞯拿恳粋€(gè)塊都分別地指定了該塊的存取條件。這些存取條件是根據(jù)密
54、碼而定。用戶必須在KEYSTACON寄存器中指定一套密碼,即設(shè)置KSO,KS1。KEYADDR寄存器中的AB位用于選擇KEYA和KEYB。KEYADDR寄存器中的AB設(shè)置必須匹配“Authentication”命令。 (4)“Read”(讀指令) 表4.4 讀指令 Read(讀)指令允許MCU通過MF RC500來讀取MIFARE卡片上完整的16個(gè)Bytes的數(shù)據(jù)塊(Data blocks)。 (5)“Write”(寫指令) 表4.5 寫指令 “Write” 寫指令允許用戶寫數(shù)據(jù)到MIFARE卡片上(完整的16個(gè)Byte的數(shù)據(jù)塊)。 4.3.2
55、 讀/寫卡程序流程圖 讀/寫卡過程主要由以下幾步組成: (1) 復(fù)位應(yīng)答:當(dāng)一張MIFARE卡片處在讀寫器的天線的工作范圍之內(nèi)時(shí),程序員控制讀寫器向卡片發(fā)出REQUEST all 命令??ㄆ腁TR 將啟動,將卡片Block0中的卡片類型共2個(gè)字節(jié)傳送給讀寫器, 建立卡片與讀寫器的第一步通信聯(lián)絡(luò)。如果不進(jìn)行位選擇操作,讀卡器對卡片的其他操作將不會進(jìn)行; (2) 防重疊操作:有多張卡處在天線的工作范圍之內(nèi)時(shí),RC500將取得每一張卡片的系列號,由于每一張MIFARE卡片都具有其唯一的序列號,決不會相同,因此MF-RC500根據(jù)卡片的序列號來保證一次只對一張卡操作。該操作M
56、F-RC500得到MIFARE卡片的返回值和卡片的系列號; (3) 選擇卡片操作:選擇被選中卡的系列號,并同時(shí)返回卡的容量代碼; (4) 認(rèn)證操作:經(jīng)過上述3個(gè)步驟, 在確認(rèn)已經(jīng)選擇了一張卡片時(shí),MF-RC500 在對卡進(jìn)行讀寫操作之前,必須對卡片上已經(jīng)設(shè)置的密碼進(jìn)行認(rèn)證,如果匹配,才允許進(jìn)一步的讀寫操作; (5) 讀寫操作:在經(jīng)過上述幾個(gè)步驟之后就可以具體地對卡片進(jìn)行相應(yīng)的讀、寫、增值、減值、存儲和傳送等操作。讀/寫卡程序流程圖如下圖4.2所示。 圖4.2 讀/寫卡程序流程圖 4.4 讀卡器外圍基本電路程序的設(shè)計(jì) 4.4.1 顯示程序設(shè)計(jì)
57、 本設(shè)計(jì)中的顯示模塊主要由系統(tǒng)時(shí)鐘和LCD顯示組成,系統(tǒng)時(shí)鐘用來提供時(shí)間、日期等信息;LCD用來向用戶顯示卡片、存儲數(shù)據(jù)等信息;LCD的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的,通過寄存器的設(shè)置和指令編程就可完成,這部分的程序設(shè)計(jì)比較簡單,其流程圖如圖4.3所示。 圖4.3 顯示部分程序流程圖 顯示模塊的部分程序如下: MAIN: MOV SP,#60H MAIN1: LCALL START ;調(diào)用初始化 MOV A, #80H ;第一行顯示第一個(gè)字符的位置 ACALL
58、 ENABLE ;調(diào)用寫指令 MOV DPTR, #TABLE1 ;第一行表頭位置 CALL WRITE1 ;調(diào)用第一行寫子程序 MOV A, #0C0H ;第二行位置 CALL ENABLE ;調(diào)用寫指令 MOV DPTR, #TABLE2 ;第二行表頭位置 CALL WRITE LCALL DELAY1
59、JMP MAIN1 ENABLE: ;寫命令時(shí)序 MOV SS, A CLR RS CLR RW CLR E ACALL DELAY SETB E RET WRITE1: ;寫字符串 MOV R1, #00H A1: MOV A, R1 MOVC A, @A
60、+DRTR ;取將顯示的數(shù)據(jù) CALL WRITE2 ;調(diào)用寫程序?qū)懭雴蝹€(gè)字節(jié) INC R1 CJNE R1,#10H,AL RET WRITE2: ;寫單個(gè)字符 MOV SS A SETB RS CLR RW CLR E CALL DELA
61、Y SETB E RET 4.4.2 鍵盤程序設(shè)計(jì) 鍵盤程序包括按鍵識別及識別按鍵后系統(tǒng)的相應(yīng)動作。按鍵識別分兩步進(jìn)行:第一步,識別鍵盤有無鍵被按下;第二步如果有鍵被按下,識別出具體的按鍵。分述如下:第一步,識別鍵盤有無鍵被按下的方法是:讓所有列均置為0電平,檢查各行線電平是否有變化,如果有變化,則說明有鍵被按下。第二步,識別具體的按鍵的方法有掃描法和線反轉(zhuǎn)法,這里采用掃描法:逐列置0電平,其余各列置為高電平,檢查各行線電平的變化,如果某行電平由高電平變?yōu)?電平,則可確定此行此列交叉點(diǎn)處的按鍵被按下。本方案中用延時(shí)l0ms進(jìn)行軟件消
62、抖,通過設(shè)置處理標(biāo)志位來區(qū)分閉合鍵是否己處理過,用計(jì)算方法得到鍵碼。鍵盤掃描子程序中完成如下幾個(gè)功能: (1) 斷鍵盤上有無鍵按下。其方法為P1口低3位輸出全0,讀P1口狀態(tài),若P1.3、P1.4為全1,則說明鍵盤無鍵按下;若不全為1,則說明鍵盤有鍵按下; (2) 除按鍵抖動的影響。其方法為,在判斷有鍵按下后,用軟件延時(shí)的方法延時(shí)10ms,再判斷鍵盤狀態(tài),如果仍為有鍵按下狀態(tài),則認(rèn)為有一個(gè)確定的鍵按下,否則當(dāng)作按鍵抖動處理; (3) 按鍵位置。根據(jù)前面的掃描法,進(jìn)行逐位置0掃描,最后定位按鍵位置; (4) 閉合一次僅進(jìn)行一次按鍵的處理。方法是等待按鍵釋放之后,
63、再進(jìn)行按鍵功能的處理操作。編程掃描程序流程圖如圖4.4所示。 圖4.4 掃描程序流程圖 4.4.3 E2PROM程序的編寫 AT24C64存儲器可以解決單片機(jī)片內(nèi)E2PROM不足的問題,用以保存諸如用戶設(shè)置參數(shù)、卡片信息等資料。由于本系統(tǒng)中采用到的AT89S52單片機(jī)不具備I2C總線接口,因此采用軟件法加以解決。在軟件編寫時(shí)遵循I2C總線規(guī)則:初始狀態(tài)時(shí),SCL、SDA兩線都為高,當(dāng)SCL為高電平時(shí),如果SDA線跌落,認(rèn)為是“起始位”;當(dāng)SCL為高電平時(shí),如果SDA線上升,認(rèn)為是“停止位”;除此之外,在發(fā)送數(shù)據(jù)的過程中當(dāng)SCL為高電平時(shí),SDA應(yīng)保持穩(wěn)定。ACK應(yīng)答位
64、指在此時(shí)鐘周期內(nèi)由從器件(E2PROM)把SDA拉低,表示回應(yīng)。這時(shí)主器件(AT89S52)的SDA口屬性應(yīng)該變?yōu)檩斎胍员銠z測。E2PROM主要讀寫程序如下: void 12c_Send_Byte (unsigned char Send_Data) /*寫一個(gè)字節(jié)到E2PROM中*/ { unsigned char i; for(i=8;i!=0;i--) { SCL_DIR=0; if(Send_Data&0x80){SDA_DIR=1;} //接收到數(shù)據(jù) else{SDA_DIR=0;} delay_μs(2);
65、 SCL_DIR=1; Send_Data = (Send_Data<<1); // 數(shù)據(jù)左移一位 } do //接收應(yīng)答信號,防止死循環(huán) { SCL_DIR=0; SDA_DIR=1; delay_μs(2); SCL_DIR=1; } while(SDA!=0); //停止位 SCL_DIR=0; SDA_DIR=0; } 4.5 通信部分程序設(shè)計(jì) (1)通信協(xié)議概述 RS232串口通信協(xié)議是
66、我們熟悉和常用的通信協(xié)議,其通信協(xié)議的設(shè)計(jì)思想是基于幀傳輸方式,即在向串口發(fā)送命令信號、應(yīng)答信號及數(shù)據(jù)信號時(shí)是按照幀的格式發(fā)送的。為了使數(shù)據(jù)快速可靠地傳輸,將每一幀數(shù)據(jù)對應(yīng)一個(gè)命令幀,傳輸數(shù)據(jù)即執(zhí)行命令,具體如下: 1) 在讀數(shù)據(jù)時(shí),遵循“讀命令--等數(shù)據(jù)--報(bào)告”,即PC下達(dá)一個(gè)命令,等待接收數(shù)據(jù),再據(jù)所接收數(shù)據(jù)正誤向應(yīng)用程序報(bào)告此命令的執(zhí)行情況; 2) 在PC寫數(shù)據(jù)時(shí),遵循“寫命令--等回應(yīng)--報(bào)告”,即PC下達(dá)一寫命令(此時(shí)所要寫的數(shù)據(jù)含于此命令中),等待MCU發(fā)來的己經(jīng)正確接收的回應(yīng)信號,并向應(yīng)用程序報(bào)告此命令執(zhí)行完畢; 3) 如果在傳輸過程中PC或MCU所接收的任何一幀信號出現(xiàn)錯(cuò)誤時(shí),均會向?qū)Ψ桨l(fā)送重發(fā)此幀信號的請求,如果連續(xù)幾次傳輸失敗,則退出通信,并向應(yīng)用程序報(bào)告。 (2)MCU串口通信程序流程圖 MCU串口通信程序流程圖如圖4.5所示。 圖4.5 MCU串口通信程序流程圖 5 系統(tǒng)調(diào)試 5.1調(diào)試過程 系統(tǒng)調(diào)試是在實(shí)驗(yàn)室進(jìn)行的,它是從設(shè)計(jì)向應(yīng)用轉(zhuǎn)化的關(guān)鍵一步,需
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新人教版小學(xué)數(shù)學(xué)二年級下冊《總復(fù)習(xí)圖形的運(yùn)動》ppt課件
- 鉆石小鳥電子商務(wù)案例分析x
- 貴州專版201x中考語文復(fù)習(xí)第二輪古詩文閱讀專題十文言文閱讀專項(xiàng)訓(xùn)練二課外古詩詞賞析課件
- 計(jì)算機(jī)發(fā)展簡史
- 五年級最小公倍數(shù)
- 分?jǐn)?shù)除法應(yīng)用題(一)1
- 人教版小學(xué)科學(xué)三年級《空氣占據(jù)空間嗎》
- 腹腔鏡脾切除技巧探討
- 水下溷凝土的灌注
- 主題班會關(guān)注小環(huán)境共享大健康
- 章引言數(shù)字圖像處理
- 學(xué)情通報(bào)會二課件
- 醫(yī)療企業(yè)組織氣氛建設(shè)方案分析
- 數(shù)據(jù)中心供配電系統(tǒng)概述
- 小學(xué)三年級口算題卡課件