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