2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  畢業(yè)設(shè)計(jì)說(shuō)明書</b></p><p>  專業(yè)班級(jí): </p><p>  學(xué)生姓名: </p><p>  設(shè)計(jì)題目: 非接觸式IC卡讀卡器設(shè)計(jì) </p><p>  指導(dǎo)教師:

2、 </p><p>  教研室主任: </p><p>  系(教學(xué))主任: </p><p><b>  完成時(shí)間: </b></p><p><b>  摘 要 </b></

3、p><p>  本文介紹了以AT89S52單片機(jī)作為微控制器,以射頻技術(shù)為核心,基于PHILIPS公司MF-RC500模塊的非接觸式IC卡讀寫器,闡述了該系統(tǒng)的組成、工作原理以及相應(yīng)的軟硬件設(shè)計(jì)。</p><p>  本文闡述了非接觸式IC卡技術(shù)的基本原理,并對(duì)其讀卡器在工程上的設(shè)計(jì)和開發(fā)作了研究。論文描述了IC卡系統(tǒng)的發(fā)展和現(xiàn)狀,通過(guò)對(duì)射頻識(shí)別技術(shù)原理的研究,揭示了射頻IC卡系統(tǒng)的工作原理。

4、介紹了Type A 型常用的卡片MF1 IC S50和對(duì)應(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的主要特性、基本指令集以及與Mifare1非接觸IC卡數(shù)據(jù)通信的一些重要模塊的編程思路和編程方法,給出了

5、兩個(gè)編程實(shí)例。</p><p>  關(guān)鍵詞:微控制器;非接觸式IC卡;讀寫器;MF-RC500;射頻識(shí)別 </p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p>  1.1 課題研究的背景和意義1</p><p>

6、  1.2 目前國(guó)內(nèi)外研究現(xiàn)狀1</p><p>  1.3 本課題設(shè)計(jì)的主要工作和任務(wù)2</p><p>  2讀卡器系統(tǒng)方案設(shè)計(jì)與實(shí)現(xiàn)3</p><p>  2.1 IC卡介紹3</p><p>  2.2 讀卡器基本原理3</p><p>  2.3 總體方案論證4</p><p&

7、gt;  2.3.1 各模塊選擇與論證4</p><p>  2.3.2 總體方案確定5</p><p>  3 系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)6</p><p>  3.1 電源模塊6</p><p>  3.2 顯示模塊6</p><p>  3.3 系統(tǒng)時(shí)鐘模塊7</p><p>  3.

8、4 存儲(chǔ)模塊8</p><p>  3.5 MF-RC500讀寫模塊9</p><p>  3.5.1 MF-RC500介紹9</p><p>  3.5.2 天線模塊的設(shè)計(jì)10</p><p>  3.5.3 MF-RC500與AT89S52連接圖12</p><p>  3.6 通信模塊13</p

9、><p>  3.7 AT89S52芯片14</p><p>  4 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)17</p><p>  4.1 軟件設(shè)計(jì)環(huán)境17</p><p>  4.2 主程序的設(shè)計(jì)17</p><p>  4.3讀/寫卡程序設(shè)計(jì)18</p><p>  4.3.1 MF-RC500指令說(shuō)明

10、18</p><p>  4.3.2 讀/寫卡程序流程圖20</p><p>  4.4 讀卡器外圍基本電路程序的設(shè)計(jì)21</p><p>  4.4.1 顯示程序設(shè)計(jì)21</p><p>  4.4.2 鍵盤程序設(shè)計(jì)22</p><p>  4.4.3 E2PROM程序的編寫23</p>

11、<p>  4.5 通信部分程序設(shè)計(jì)24</p><p><b>  5 系統(tǒng)調(diào)試25</b></p><p>  5.1調(diào)試過(guò)程25</p><p>  5.2調(diào)試中發(fā)現(xiàn)的問(wèn)題與解決方法25</p><p><b>  結(jié)論26</b></p><p>

12、<b>  致謝27</b></p><p><b>  參考文獻(xiàn)28</b></p><p>  附錄A總電路圖29</p><p><b>  1 緒論</b></p><p>  1.1 課題研究的背景和意義</p><p>  IC卡是集

13、成電路卡(Integrated Circuit Card)的英文簡(jiǎn)稱,在有些國(guó)家也稱之為智能卡、微芯片卡等,IC卡是在較為原始的磁卡的基礎(chǔ)上發(fā)展起來(lái)的,它的最初設(shè)想是由日本人提出來(lái)的。1969年12月,日本的有村國(guó)孝提出一種制造安全可靠的信用卡方法,并于1970年獲得專利,那時(shí)叫ID卡(Identification Card)。1974年,法國(guó)的羅蘭·莫雷諾(Roland Moreno)發(fā)明了帶集成電路芯片的塑料卡片,并取得了

14、專利權(quán),這就是早期的IC卡。</p><p>  早期的IC卡系統(tǒng)是接觸式的,它有其本身不可克服的缺點(diǎn),如接觸磨損、交易速率慢、難以維護(hù)、基礎(chǔ)設(shè)施投入大等。隨著信息業(yè)和服務(wù)業(yè)的全球化,在一些場(chǎng)合,對(duì)信息載體的便攜性、安全性及易用性等方面提出更高的要求,于是非接觸式IC卡以其無(wú)機(jī)械磨損、容易維護(hù)、方便使用等優(yōu)點(diǎn),成為IC卡中潛力最大的新軍而備受國(guó)內(nèi)外業(yè)界的矚目。 </p><p>  非接觸

15、式IC卡系統(tǒng)是當(dāng)今世界先進(jìn)的射頻技術(shù)和IC卡技術(shù)相結(jié)合的產(chǎn)物,是世界上最近幾年發(fā)展起來(lái)的一項(xiàng)新技術(shù),它成功地將射頻識(shí)別技術(shù)和IC技術(shù)結(jié)合起來(lái),解決了無(wú)源和免接觸這一難題,是電子器件領(lǐng)域的一大突破,使卡片在靠近讀寫器表面時(shí)即可完成卡中數(shù)據(jù)的讀寫操作。</p><p>  非接觸式IC卡一經(jīng)問(wèn)世,便立即引起廣泛的關(guān)注。非接觸式IC卡操作方便、抗干擾性高、可靠性高、安全性高的特點(diǎn),使得它在一些接觸式IC卡不適用或者無(wú)法

16、使用的場(chǎng)所,具有無(wú)可比擬的優(yōu)勢(shì),被廣泛應(yīng)用于公交、收費(fèi)、門禁系統(tǒng)、考勤系統(tǒng)等領(lǐng)域。</p><p>  目前非接觸式IC卡有很多不同的標(biāo)準(zhǔn),如IS014443A和IS014443B等,符合不同標(biāo)準(zhǔn)的卡片在不同的領(lǐng)域內(nèi)相互滲透和競(jìng)爭(zhēng)。卡片類型的多樣性決定了讀卡器的多樣性,而市場(chǎng)的多樣性則決定了即使是同類型的應(yīng)用,也可能使用不同類型的卡片,若讀卡器只能讀取某一種類型的卡片,那么在處理這個(gè)應(yīng)用時(shí),必將需要多臺(tái)讀卡器,造

17、成資源的重復(fù)浪費(fèi),這樣的讀卡器必將不能適應(yīng)市場(chǎng)的需求,這就對(duì)讀卡器的讀卡能力提出了更高的要求。設(shè)計(jì)出一種能讀取多種類型卡片的讀卡器,既是市場(chǎng)應(yīng)用的需求,也是未來(lái)的發(fā)展趨勢(shì)。目前,讀卡器已經(jīng)開始大量應(yīng)用于各種“一卡通”系統(tǒng)中,這些應(yīng)用對(duì)讀卡器的功能要求越來(lái)越高,除了傳統(tǒng)的對(duì)卡號(hào)的讀取之外,需要能夠?qū)ㄆM(jìn)行更高層的數(shù)據(jù)操作,與PC設(shè)備之間能進(jìn)行信息交流。為了適應(yīng)這種發(fā)展趨勢(shì),非接觸式IC卡的讀卡器的開發(fā)與設(shè)計(jì)也迅速發(fā)展起來(lái)。</p&

18、gt;<p>  1.2 目前國(guó)內(nèi)外研究現(xiàn)狀</p><p>  智能卡的發(fā)展歷史并不久遠(yuǎn),而且全球各地發(fā)展不均衡,其中歐洲發(fā)展得最早、最好。智能IC卡源于七十年代的歐洲和日本,后來(lái)由法國(guó)人提出的將處理器置入IC卡卡片中的思想得到了廣泛接受,由于其具有完善的密碼功能從而有效的解決了智能卡的舞弊行為。隨后智能卡在1977-1998年間得到了迅速發(fā)展。九十年代初期,智能卡開始應(yīng)用于GSM數(shù)字移動(dòng)通訊、有

19、線電視的收費(fèi)等領(lǐng)域。在美國(guó),智能卡發(fā)展相對(duì)遲緩,但隨著智能卡在歐洲的成功使用,其在美國(guó)產(chǎn)生巨大影響,盡管如此,美國(guó)在智能卡技術(shù)等領(lǐng)域仍處于世界領(lǐng)先地位。 據(jù)Innovation國(guó)際發(fā)明組織統(tǒng)計(jì),2005年10月到2006年9月全世界IC卡硬件產(chǎn)業(yè)中,IC卡及其讀寫設(shè)備數(shù)量分別為42000萬(wàn)張和877000臺(tái),其中法國(guó)分別占98%和71%,處于世界領(lǐng)先地位。 </p><p>  我國(guó)對(duì)IC卡行業(yè)的發(fā)展始于1994

20、年,當(dāng)時(shí)的中央領(lǐng)導(dǎo)特別是江澤民同志高度重視IC卡行業(yè),高瞻遠(yuǎn)矚,指示要發(fā)展我國(guó)自己的IC卡事業(yè),建立“金卡工程”。雖然至今也只有短短的十幾年左右時(shí)間,但是己經(jīng)取得了不小的成就。我國(guó)自1994年實(shí)施“金卡”工程以來(lái),推動(dòng)了金融電子化、商業(yè)和流通領(lǐng)域電子化的步伐,使我國(guó)銀行業(yè)務(wù)得到迅速發(fā)展,并逐漸波及醫(yī)療、交通、社會(huì)保險(xiǎn)、稅務(wù)等領(lǐng)域。在我國(guó),智能卡在各種應(yīng)用領(lǐng)域全面開花,目前超過(guò)10個(gè)政府部門和行業(yè)推廣應(yīng)用了智能卡。</p>

21、<p>  目前在我國(guó),隨著金卡工程建設(shè)的不斷深入發(fā)展,IC卡系統(tǒng)已在眾多領(lǐng)域獲得廣泛應(yīng)用,并取得了初步的社會(huì)效益。隨著政府管理和支持力度的加大、技術(shù)研發(fā)水平的提升,IC卡市場(chǎng)競(jìng)爭(zhēng)格局將發(fā)生深刻的變化。隨著政府智能卡項(xiàng)目的啟動(dòng),國(guó)內(nèi)企業(yè)技術(shù)實(shí)力和工藝流程的優(yōu)化,使得國(guó)外品牌市場(chǎng)份額受到很大程度的限制,而國(guó)內(nèi)品牌將會(huì)有快速的發(fā)展。今后的幾年,是我國(guó)IC卡系統(tǒng)應(yīng)用向縱深發(fā)展的時(shí)期。我國(guó)IC卡系統(tǒng)市場(chǎng)格局必將由無(wú)序走向有序,市場(chǎng)競(jìng)爭(zhēng)

22、必將由有限走向無(wú)限,IC卡系統(tǒng)市場(chǎng)將逐步走向成熟。但是對(duì)于尖端的CPU卡及非接觸式IC智能射頻卡的制卡技術(shù)及其相應(yīng)的讀/寫卡設(shè)備技術(shù),仍處于落后狀態(tài)。這極大地制約了IC卡行業(yè)的發(fā)展,特別是在要求有極高安全性和保密性的金融行業(yè)中,制約了我國(guó)金卡工程的實(shí)施和發(fā)展。設(shè)計(jì)和開發(fā)出更好的讀卡設(shè)備,對(duì)加快我國(guó)IC卡行業(yè)的發(fā)展,特別是尖端的CPU卡及非接觸式IC智能射頻卡的推廣應(yīng)用,有著重大的意義。</p><p>  1.3

23、 本課題設(shè)計(jì)的主要工作和任務(wù)</p><p>  非接觸式IC卡代表了IC卡發(fā)展的方向,同接觸式IC卡相比其獨(dú)有的優(yōu)點(diǎn)使其能夠在絕大多數(shù)場(chǎng)合代替接觸式IC卡的使用,而在非接觸式IC 卡應(yīng)用系統(tǒng)中非接觸式IC卡讀卡器是關(guān)鍵設(shè)備。根據(jù)課題設(shè)計(jì)要求,本課題將開發(fā)一種基于飛利浦公司MF-RC500讀卡芯片的非接觸式IC卡讀卡器,其具有以下特點(diǎn):能識(shí)別TYPEA型卡片,讀取卡號(hào),并有防沖突功能;能對(duì)TYPEA 的卡片進(jìn)行高

24、層操作;可以使用RS232通信接口輸出來(lái)與上位機(jī)之間通信;可根據(jù)實(shí)際需求將其作為門禁系統(tǒng)中的讀卡器,或者一卡通系統(tǒng)中的讀卡器。本設(shè)計(jì)完成后所要達(dá)到的主要指標(biāo)有: (1) 顯示系統(tǒng):液晶屏顯示,能顯示系統(tǒng)時(shí)鐘和卡片信息等; (2) 按鍵操作:能實(shí)現(xiàn)對(duì)系統(tǒng)的設(shè)置和卡上數(shù)據(jù)的操作; (3) 機(jī)器讀卡速度:0.5秒可完成一次打卡過(guò)程,讀卡距離為5至10厘米; (4) 保密性和防偽性:能辨認(rèn)卡的密碼,非授權(quán)

25、范圍內(nèi)的卡作報(bào)警處理; (5) 存儲(chǔ)容量:每臺(tái)讀寫器最多可存儲(chǔ)2000條記錄。 本設(shè)計(jì)中需要解決的若干關(guān)鍵技術(shù)有: (1) 射頻識(shí)別技術(shù); (2) 軟件的安全機(jī)制</p><p>  該讀寫器完成以后,既可獨(dú)立使用,完成基本功能,外擴(kuò)簡(jiǎn)單接口后,就能構(gòu)成IC卡考勤、門禁、售飯一卡通等系統(tǒng),在公交、校園、娛樂(lè)場(chǎng)所等方面有廣泛的應(yīng)用前景。 </p><p>  

26、2讀卡器系統(tǒng)方案設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  2.1 IC卡介紹</b></p><p>  目前經(jīng)常接觸到的IC卡有兩種:接觸式和非接觸式的IC卡。接觸式的IC卡通過(guò)機(jī)械觸點(diǎn)從讀寫器獲取能量和交換數(shù)據(jù);非接觸式IC卡通過(guò)線圈射頻感應(yīng)從讀寫器獲取能量和交換數(shù)據(jù),所以又稱射頻卡。日前在社會(huì)上常見(jiàn)的是接觸式IC卡,它具有存儲(chǔ)量大,可實(shí)現(xiàn)一卡多用等功能。但是,這類

27、卡的讀寫操作速度較慢,操作也不方便,每次讀寫時(shí)必須把卡插入到讀寫器中才能完成數(shù)據(jù)交換,這樣在讀寫卡片頻繁的場(chǎng)合就很不方便,而且讀寫器的觸點(diǎn)和卡片上IC卡的觸腳暴露在外,容易損壞和搞臟而造成接觸不良。 非接觸式智能卡又稱射頻卡,是近幾年發(fā)展起來(lái)的新技術(shù)。它是根據(jù)射頻電磁感應(yīng)原理產(chǎn)生的,它的操作只需將卡放在讀寫器一定距離內(nèi)就能實(shí)現(xiàn)數(shù)據(jù)交換。它成功地將射頻識(shí)別技術(shù)和IC卡技術(shù)結(jié)合起來(lái),將具有微處理器的集成電路芯片和天線封裝于塑料基片之中。讀寫

28、器采用兆頻段及磁感應(yīng)技術(shù),通過(guò)無(wú)線方式對(duì)卡片中的信息進(jìn)行讀寫并采用高速率的半雙工通信協(xié)議。其優(yōu)點(diǎn)是應(yīng)用范圍廣、操作方便。因此,在公交、門禁、娛樂(lè)場(chǎng)所等方面有廣泛的應(yīng)用前景。目前我國(guó)引進(jìn)的射頻卡主要以PHILIPS公司的MIFARE卡為主。 本系統(tǒng)在調(diào)試過(guò)程中使用的是PHILIPS公司的</p><p>  2.2 讀卡器基本原理</p><p>  非接觸式IC卡讀寫器以射頻識(shí)別技

29、術(shù)為核心,讀寫器內(nèi)主要使用專用的讀寫處理芯片,它是讀/寫操作的核心器件,其功能包括調(diào)制、解調(diào)、產(chǎn)生射頻信號(hào)、安全管理和防碰撞機(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)無(wú)線通信的核心模塊,也是讀寫器讀寫智能IC卡的關(guān)鍵接口芯片。讀寫器工作時(shí),不斷地向外發(fā)出一組固定頻率的電磁波,當(dāng)有卡

30、靠近時(shí),卡片內(nèi)有一個(gè)LG串聯(lián)諧振電路,其頻率與讀寫器的發(fā)射頻率相同,這樣在電磁波的激勵(lì)下,LG諧振電路產(chǎn)生共振,從而使電容充電有了電荷。在這個(gè)電容另一端,接有一個(gè)單向?qū)щ姷碾娮颖?,將電容?nèi)的電荷送到另一個(gè)電容內(nèi)存儲(chǔ)。當(dāng)電容器充電達(dá)到一定電壓值時(shí),此電容就作為電源為卡片上的其他電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或接收讀寫器發(fā)出的數(shù)據(jù)與保存。讀卡器的工作過(guò)程如下: (1) 讀卡器將載波信號(hào)經(jīng)天線向外發(fā)送; (2) 卡進(jìn)

31、入讀卡器的工作區(qū)域后,卡內(nèi)天線和電容組成的諧振回路接收讀卡器發(fā)射的載波信號(hào),射頻接口模塊</p><p>  (3) 存取控制模塊將存儲(chǔ)器中信息調(diào)制到載波上,經(jīng)卡上天線送給讀卡器;</p><p>  (4) 讀卡器對(duì)接收到的信號(hào)進(jìn)行解調(diào)、解碼后送至后臺(tái)計(jì)算機(jī); (5) 后臺(tái)計(jì)算機(jī)根據(jù)卡號(hào)的合法性,針對(duì)不同應(yīng)用做出相應(yīng)的處理和控制。</p><p>  2

32、.3 總體方案論證</p><p>  2.3.1 各模塊選擇與論證 </p><p>  (1)控制器 采用ATMEL公司的AT89S52作為系統(tǒng)的控制器。AT89S52單片機(jī)算術(shù)運(yùn)算功能強(qiáng)、軟件編程靈活、自由度大,可用軟件編程實(shí)現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等特點(diǎn),使其在各個(gè)領(lǐng)域應(yīng)用廣泛。AT89S52是我們熟悉的控制器,編程比較熟悉,易于掌握

33、。 (2)RFID讀卡芯片 </p><p>  NXP公司(原飛利浦半導(dǎo)體公司)是較早進(jìn)入RFID芯片行業(yè)的國(guó)際半導(dǎo)體公司,在射頻讀寫芯片上產(chǎn)品較全。MF-RC500芯片就是NXP公司生產(chǎn)的。MF-RC500是高整合的13.56MHz非接觸IC卡讀寫芯片,整合了所有主動(dòng)非接觸通信方式和協(xié)議,MF-RC500支持ISO 14443A&B的所有層的通信方案;內(nèi)部收發(fā)器部分能夠驅(qū)動(dòng)近耦合設(shè)計(jì)的天線而

34、不需要另外的電路;數(shù)字部分能處理完整的ISO14443幀數(shù)據(jù)還有錯(cuò)誤檢測(cè);具有合適的并行接口,可以直接與8位的微處理器相連,并且支持SPI兼容接口。由于MF-RC500能夠滿足設(shè)計(jì)需求,而且應(yīng)用范圍比其他的芯片更廣,資料齊備,于是選擇MF-RC500作為本設(shè)計(jì)的射頻接口芯片。 (3)顯示模塊 使用液晶顯示屏顯示各種信息。液晶顯示屏具有輕薄短小、低耗電量、平面直角顯示以及影像穩(wěn)定不閃爍等優(yōu)勢(shì),并且符合本系統(tǒng)顯示信息量多的

35、需求,利用LCD自帶的字符庫(kù),進(jìn)行編程就可以實(shí)現(xiàn)所需信息的顯示,其不必利用控制芯片創(chuàng)建字符庫(kù),既節(jié)省了資源,又省去了該部分的大量編程任務(wù)。為了使人機(jī)界面更加友好,操作更加方便,采用LCD液晶顯示。 (4</p><p>  刷卡時(shí)要記錄刷卡的時(shí)間,用外接硬件時(shí)鐘芯片的辦法,為系統(tǒng)提供一個(gè)準(zhǔn)確可靠的時(shí)鐘,用3V備用電池保證在系統(tǒng)掉電時(shí)也能正常走時(shí)。在此選用體積小、接口簡(jiǎn)單的實(shí)時(shí)時(shí)鐘芯片DS1302。它是美

36、國(guó)Dallas公司推出的低功耗串行通信接口專用芯片,采用3線串行方式與單片機(jī)進(jìn)行數(shù)據(jù)通信。 采用AT24C64作數(shù)據(jù)存儲(chǔ)器。AT24C64是串行E2PROM存儲(chǔ)器,支持I2C總線數(shù)據(jù)傳輸協(xié)議,8K存儲(chǔ)器容量,用兩根線與CPU構(gòu)成串行接口。由于本設(shè)計(jì)采用的AT89S52單片機(jī)不具備I2C總線接口,因此采用軟件法加以解決。</p><p>  2.3.2 總體方案確定 </p><p&

37、gt;  根據(jù)上述分析,系統(tǒng)設(shè)計(jì)方案如下:本IC卡讀寫器擬以ATMEL公司的AT89S52單片機(jī)作為微控制器,采用MF-RC500芯片作為射頻卡讀/寫模塊,采用DS1302作為系統(tǒng)時(shí)鐘,以AT24C64作為不掉電存儲(chǔ)器,采用LCD顯示,以RS232接口和計(jì)算機(jī)通信,組成一套功能齊全的非接觸IC卡讀寫系統(tǒng)。當(dāng)IC卡在天線區(qū)域經(jīng)過(guò)時(shí),單片機(jī)自動(dòng)需求對(duì)IC卡進(jìn)行讀寫,再把讀/寫卡的時(shí)間一起存到存儲(chǔ)器中,計(jì)算機(jī)可以通過(guò)串口把相關(guān)讀/寫卡信息讀到

38、計(jì)算機(jī)上,再進(jìn)行統(tǒng)計(jì)、報(bào)表和打印輸出等。系統(tǒng)框圖如圖2.1所示。 </p><p>  2.1 IC卡讀寫器系統(tǒng)結(jié)構(gòu)框圖</p><p>  3 系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  3.1 電源模塊</b></p><p>  該電源按常規(guī)設(shè)計(jì),為系統(tǒng)工作提供所需電源,其輸入為220V、50Hz交流電,

39、輸出電壓等級(jí)為±5V,電路原理圖如圖3.1所示。該部分主要采用78系列穩(wěn)壓器,結(jié)構(gòu)簡(jiǎn)單,調(diào)整方便,輸出電壓紋波小。當(dāng)所需電流超過(guò)穩(wěn)壓器標(biāo)定值時(shí),可采用外接功率管的方法來(lái)擴(kuò)大輸出電流。市電交流220V經(jīng)變壓器降壓為交流6V,經(jīng)過(guò)全橋整流輸出直流電流,再經(jīng)過(guò)1000μF的電解電容濾波,除去整流后的交流成分,送至各三端穩(wěn)壓器,輸出需要的電壓。經(jīng)過(guò)各三端穩(wěn)壓器穩(wěn)壓后,在LM7805輸出端輸出+5V直流電壓,LM7905輸出的端輸出-5

40、V直流電壓。</p><p>  圖3.1 ±5V直流穩(wěn)壓電源</p><p><b>  3.2 顯示模塊</b></p><p>  本系統(tǒng)的人機(jī)接口部分采用LCD顯示、3×2矩陣式鍵盤,用來(lái)實(shí)現(xiàn)對(duì)IC 卡的操作和系統(tǒng)設(shè)置等功能。LCD型號(hào)為ACM1602A,該字符型液晶顯示模塊由字符型液晶顯示屏,具有字符發(fā)生器ROM

41、可顯示192種字符,有64個(gè)字節(jié)的自定義字符RAM,可自定義8個(gè)5×8點(diǎn)陣字符或四個(gè)5×11點(diǎn)陣字符。 </p><p>  在此系統(tǒng)中采用LCD分屏顯示,每一屏第一行的首地址是80H,第二行的首地址是0C0H;每行寫入16個(gè)字節(jié),每屏寫入二行(第一行為系統(tǒng)的時(shí)間,第二行為卡片的信息)。ACM1602A集成度高,其內(nèi)部已經(jīng)帶有驅(qū)動(dòng)電路,所以不用再為其設(shè)計(jì)驅(qū)動(dòng)電路,由于1602是一個(gè)并口器件所以

42、占用單片機(jī)的接口資源較多,為節(jié)省單片機(jī)接口資源使用了一個(gè)74HC595進(jìn)行串口轉(zhuǎn)并口,使1602與單片機(jī)進(jìn)行間接連接,LCD與單片機(jī)的連結(jié)圖如圖3.2所示。</p><p>  圖3.2 LCD顯示電路</p><p>  3.3 系統(tǒng)時(shí)鐘模塊</p><p>  刷卡時(shí)要記錄刷卡的時(shí)間,用外接硬件實(shí)時(shí)時(shí)鐘芯片的辦法,為系統(tǒng)提供一個(gè)準(zhǔn)確可靠的時(shí)鐘,用3V備用電池保

43、證在系統(tǒng)掉電時(shí)也能正常走時(shí),在此選用體積小、接口簡(jiǎn)單的實(shí)時(shí)時(shí)鐘芯片DS1302。 (1)時(shí)鐘芯片介紹 DS1302是美國(guó)DALLAS公司開發(fā)的具備功耗低、接口容易串行實(shí)時(shí)時(shí)鐘芯片。在本設(shè)計(jì)中使用的DS1302為8腳DIP封裝形式,其中1腳和8腳為電源電壓引腳,單電源供電時(shí)接8腳,雙電源供電時(shí),主工作電源接1腳,備份電源接8腳。2腳和3腳為32.768KHz晶振引腳;5腳RST為復(fù)位端,若其被置為低電平,則中止所有數(shù)

44、據(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通過(guò)SCLK、I/O、RST三根線與外部進(jìn)行同步串行通信。 (2)DS1302與單片機(jī)的連接</p><p>  在本設(shè)計(jì)中采用單片機(jī)的P1.0-P1.2與DS1302進(jìn)行數(shù)據(jù)通信,以提供系統(tǒng)所需的時(shí)鐘,其連接方法如圖3

45、.3所示。</p><p>  圖3.3 DS1302與單片機(jī)接口電路</p><p><b>  3.4 存儲(chǔ)模塊</b></p><p>  在本設(shè)計(jì)中采用串行E2PROM芯片AT24C64作數(shù)據(jù)存儲(chǔ)器。AT24C64 是ATMEL公司生產(chǎn)的采用I2C總線標(biāo)準(zhǔn)常用的串行E2PROM 存儲(chǔ)芯片,其支持I2C總線數(shù)據(jù)傳輸協(xié)議,64K(bit)

46、存儲(chǔ)器容量,用兩根線與CPU構(gòu)成串行接口。AT24C64一般具有兩種寫入方式,一種是字節(jié)寫入方式,還有一種是頁(yè)寫入方式。AT24C64的讀操作有當(dāng)前地址讀、隨機(jī)讀、多字節(jié)讀三種方式。AT24C64其主要管腳功能描述如下:SCL,串行時(shí)鐘。這是一個(gè)輸入管腳,用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘;SDA,串行數(shù)據(jù)/地址。這是一個(gè)雙向傳輸端,用于傳送地址和所有數(shù)據(jù)的發(fā)送或接收;A0、A1、A2,器件地址輸入端,這些輸入端用于多個(gè)器件并聯(lián)時(shí)設(shè)置

47、器件地址。 AT24C64其主要管腳功能如下:</p><p>  在系統(tǒng)中采用單片機(jī)的P3.3、P3.4口與AT24C64進(jìn)行連接,其與單片機(jī)的接口接法電路如圖3.4所示,由于本系統(tǒng)中采用到的AT89S52單片機(jī)不具備I2C總線接口,因此采用軟件法加以解決。 </p><p>  圖3.4 AT24C64與單片機(jī)接口電路</p><p>  3.5 MF-RC5

48、00讀寫模塊 </p><p>  3.5.1 MF-RC500介紹 </p><p>  PHILIPS公司的MF-RC500是應(yīng)用于13.56MHz非接觸式通信中高集成讀卡IC系列中的一員。該讀卡IC系列利用先進(jìn)的調(diào)制和解調(diào)概念,完全集成了在13.56MHz下所有類型的被動(dòng)非接觸式通信方式和協(xié)議。MF-RC500支持IS014443A所有的層,其功能框圖如下: </p>

49、<p>  圖3.5 MF-RC500的功能框圖 </p><p>  MF-RC500內(nèi)部包括并行微控制器接口、雙向FIFO緩沖區(qū)、中斷、數(shù)據(jù)處理單元、狀態(tài)控制單元、安全和密碼控制單元、模擬電路接口及天線接口。MF-RC500外部接口包括數(shù)據(jù)總線、地址總線、控制總線、電源等。MF-RC500 的并行微控制器接口自動(dòng)檢測(cè)連接的8位并行接口的類型。它包含了一個(gè)雙向FIFO緩沖區(qū)和一個(gè)可配置的中斷輸出,

50、這樣就為連接各種MCU提供了很大的靈活性,即使使用非常低成本的器件也能滿足高速非接觸式通信的要求。數(shù)據(jù)處理部分執(zhí)行數(shù)據(jù)的并行-串行轉(zhuǎn)換[。狀態(tài)和控制部分允許對(duì)器件進(jìn)行配置以使性能調(diào)節(jié)到最佳狀態(tài)。模擬電路包含一個(gè)具有非常低阻抗橋驅(qū)動(dòng)器輸出的發(fā)送部分,這使得最大操作距離可達(dá)100mm,接收器可以檢測(cè)到非常弱的應(yīng)答信號(hào)。MF-RC500管腳如3.6所示。</p><p>  圖3.6 MF-RC500管腳圖</

51、p><p>  該器件為32腳SO封裝,器件使用了3個(gè)獨(dú)立的電源以實(shí)現(xiàn)在EMC特性和信號(hào)解耦方面達(dá)到最佳性能。MF-RC500具有出色的RF性能并且模擬和數(shù)字部分可適應(yīng)不同的操作電壓,其驅(qū)動(dòng)、模擬、數(shù)字部分分別使用單獨(dú)電源供電。 </p><p>  表3.1 天線連接管腳</p><p>  為了驅(qū)動(dòng)天線,MF-RC500通過(guò)TXl和TX2提供13.56MHz的能

52、量載波。根據(jù)寄存器的設(shè)定對(duì)發(fā)送數(shù)據(jù)進(jìn)行調(diào)制得到發(fā)送的信號(hào)。智能卡采用RF場(chǎng)的負(fù)載調(diào)制進(jìn)行響應(yīng)。天線拾取的信號(hào)經(jīng)過(guò)天線匹配電路送到RX腳,RC500內(nèi)部接收器對(duì)信號(hào)進(jìn)行檢測(cè)、處理,然后將數(shù)據(jù)發(fā)送到并行接口由微控制器進(jìn)行讀取。</p><p>  表3.2 MF-RC500并行口控制管腳</p><p>  3.5.2 天線模塊的設(shè)計(jì) </p><p>  為了同非

53、接觸式智能卡通信,讀卡器內(nèi)必須有能發(fā)射和接收射頻信號(hào)的天線。天線用于產(chǎn)生磁通量,而磁通量用于向應(yīng)答器提供電源并在閱讀器和應(yīng)答器之間傳送信息。因此,對(duì)讀卡器天線的構(gòu)造有了三個(gè)基本的要求: 1)使天線線圈的電流i1最大,用于產(chǎn)生最大的磁通量; 2)功率匹配,以最大程度地利用產(chǎn)生磁通量的可用能量; 3)足夠的帶寬,以無(wú)失真地傳送數(shù)據(jù)調(diào)制的載波信號(hào)。 </p><p>  (1)天線尺寸和讀

54、寫距離 由于MF-RC500是低功耗設(shè)計(jì),因此卡和天線之間的耦合系數(shù)必須符合一定的值,卡和天線之間的耦合系數(shù)不能低于0.3。天線一般設(shè)計(jì)為三圈,可以設(shè)計(jì)為圓形或者方形天線。天線的直徑必須介于0.5-1.5mm之間。表3.3 給出了卡和天線的耦合系數(shù)為0.3 時(shí)的天線大小和讀寫距離關(guān)系表。</p><p>  表3.3 天線大小和讀寫距離關(guān)系表</p><p>  根據(jù)技術(shù)指標(biāo)以

55、及尺寸等方面的要求,要本設(shè)計(jì)中讀寫器天線參數(shù)如下: 天線形狀:方形天線 天線圈數(shù):三圈 幾何尺寸:65mm×54mm 天線導(dǎo)體直徑:1mm </p><p>  (2)EMC電路及接收電路 EMC電路:射頻識(shí)別系統(tǒng)的工作頻率為13.56MHz,是由一個(gè)石英晶振產(chǎn)生的,同時(shí)它還產(chǎn)生更高頻率的諧波,為了確保能夠有效抑制三次,五次和更高次的諧波對(duì)信號(hào)的干擾作用,需要有一個(gè)低通濾波器來(lái)濾除這些

56、高次諧波。 </p><p>  接收電路:MF-RC500內(nèi)部的信號(hào)接收部分使用由子載波的雙邊帶調(diào)制出的信號(hào),為了減少干擾,在地和VMID間接了一個(gè)電容,接收部分需要在Rx和VMID腳之間接一個(gè)電阻分壓結(jié)構(gòu)。另外,在天線線圈和分壓器之間串一個(gè)電容會(huì)獲得質(zhì)量更高的信號(hào)。濾波器與接收電路的電路原理圖如圖3.7所示。</p><p>  圖3.7 EMC及接收電路</p>&l

57、t;p>  (4)天線電路圖天線電路圖如圖3.8所示。 </p><p>  圖3.8 天線電路</p><p>  圖中電容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)

58、。 </p><p>  RC500有一個(gè)內(nèi)部信號(hào)驅(qū)動(dòng)管腳AUX,當(dāng)讀卡器發(fā)出某一指令時(shí),可以使用示波器觀察該引腳的輸出信號(hào),不斷改變卡與讀卡器之間的距離和C2值,示波器輸出不同的波形,根據(jù)不同的波形即可確定讀卡器最好性能的C2值。在本課題設(shè)計(jì)中,根據(jù)天線的參數(shù)進(jìn)行試驗(yàn),得到的最終C2值如表3.4所示。 </p><p>  表3.4 C2電容值表</p><p&g

59、t;  (5)天線的品質(zhì)因數(shù)和匹配電阻 用于電感耦合式射頻識(shí)別系統(tǒng)的天線,其特征值是諧振頻率f0和品質(zhì)因數(shù)Q。較高的品質(zhì)因數(shù)Q值會(huì)使天線線圈中的電流強(qiáng)度大,由此改善對(duì)應(yīng)答器的功率改善情況。與之相反,天線的傳輸帶寬剛好與品質(zhì)因數(shù)成反比例變化,選擇的品質(zhì)因數(shù)過(guò)高會(huì)導(dǎo)致帶寬縮小從而明顯地減弱應(yīng)答器接收到的調(diào)制邊帶。 </p><p>  3.5.3 MF-RC500與AT89S52連接圖 </p>

60、<p>  M F-RC500與AT89S52連接圖如圖3.9所示,圖中單片機(jī)AT89S52作為控制核心,主要完成數(shù)據(jù)采集、處理、存儲(chǔ)及控制電路工作;MF-RC500 支持不同的微控制器接口,一個(gè)智能的自動(dòng)檢測(cè)邏輯可以自動(dòng)適應(yīng)系統(tǒng)總線的并行接口。圖中使用信號(hào)NCS選擇芯片。對(duì)于MF-RC500,若要使用獨(dú)立的地址和數(shù)據(jù)總線與微控制器相連,必須將ALE腳連接到DVDD,若使用復(fù)用的地址和數(shù)據(jù)總線與控制器接口,必須將ALE腳連到

61、微控制器的ALE信號(hào)。在本設(shè)計(jì)中,該讀寫器采用地址數(shù)據(jù)總線復(fù)用方式與微控制器相連。在對(duì)MF-RC500進(jìn)行讀寫操作時(shí),若要使用NWR和NRD與微控制器相連,則這兩個(gè)引腳應(yīng)該連接到微控制器的讀寫管腳上。圖中使AT89S52的WR和RD管腳分別與MF-RC500的NWR管腳和NRD管腳相連來(lái)控制讀寫使能;MF-RC500工作頻率由石英晶體而產(chǎn)生,同時(shí)與OSCIN管腳相連可作為外部時(shí)鐘;P3.2管腳與MF-RC500的IRQ管腳相連用以接收中

62、斷請(qǐng)求;由圖可以看出,本系統(tǒng)采用中斷(INT0)工作模式,即MCU利用MF-RC500提供中斷信息對(duì)其進(jìn)行控制。另外,根據(jù)系統(tǒng)的需要,可以采用查</p><p>  圖3.9 MF-RC500與AT89S52連接圖 </p><p><b>  3.6 通信模塊</b></p><p>  本智能卡讀寫器采用RS232標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn)讀卡器和上位機(jī)

63、之間的通信,能實(shí)現(xiàn)RS232通信協(xié)議的芯片很多,其中MAXIM公司生產(chǎn)的MAX232是一款比較優(yōu)良的RS232通信芯片。選取它的主要依據(jù)在于:?jiǎn)?V電源供電,與讀卡器里其它芯片的工作電壓相同;符合所有EIA/232E標(biāo)準(zhǔn);多路輸入輸出。MAX232其引腳功能說(shuō)明如表3.5所示。 </p><p>  表3.5 MAX232引腳說(shuō)明</p><p>  在硬件電路連接上采用三線制(RXD

64、、TXD、GND)軟握手的零MODEM方式,即將PC機(jī)和單片機(jī)的發(fā)送數(shù)據(jù)線(TXD)與接收數(shù)據(jù)(RXD)交叉連接,二者的地線(GND)直接相連,而其它信號(hào)線、如握手信號(hào)均不用,而采用軟件握手,這樣既可以實(shí)現(xiàn)預(yù)定的任務(wù)又可以簡(jiǎn)化電路設(shè)計(jì)、節(jié)約成本。MAX232與AT89S52的電路連接如圖3.10所示。 </p><p>  圖3.10 MAX232與AT89S52的連接圖</p><p>

65、;  3.7 AT89S52芯片</p><p>  下面,我們來(lái)了解非接觸IC卡讀寫器的核心部分,它是整套系統(tǒng)的大腦,無(wú)論是人機(jī)操作,還是時(shí)鐘、數(shù)據(jù)存儲(chǔ)的應(yīng)用,以及下文中提及的各個(gè)相關(guān)模塊,從接線到程序都與它有著緊密的聯(lián)系。它就是單片機(jī)芯片。</p><p>  我們先簡(jiǎn)單了解一下單片機(jī)是什么。單片機(jī)最早被用在工業(yè)控制領(lǐng)域,但是經(jīng)過(guò)很長(zhǎng)一段時(shí)間,現(xiàn)代人類生活中所用的幾乎每件電子和機(jī)械產(chǎn)品

66、中都會(huì)有可能集成有單片機(jī)。手機(jī)、電話、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。單片機(jī)是靠程序的,并且可以修改。通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。下面我們對(duì)本次設(shè)計(jì)選用的單片機(jī)進(jìn)行了解</p><p>  AT89S52這一產(chǎn)品與MCS-51單片機(jī)產(chǎn)品兼容、8K字節(jié)在系統(tǒng)可編程Flash

67、存儲(chǔ)器、1000次擦寫周期、32個(gè)可編程I/O口線、三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源、全雙工串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時(shí)器、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符。AT89S52的外形封裝有以下列四個(gè)(圖3.7.A)(圖3.7.B):</p><p> ?。▓D3.7.A)分別是左40管腳、右44管腳的AT89S52芯片</p><p> ?。▓D3.7.B)分別為左44管腳

68、、右42管腳的AT89S52芯片</p><p>  本設(shè)計(jì)挑選的AT89S52芯片,共有40個(gè)與外部電路連接的管腳,包括32個(gè)可編程I/O口,下面我們簡(jiǎn)單介紹一下該芯片的管腳功能。</p><p>  P0口:P0口雙向I/O口。作為輸出口, 當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來(lái)接收指令字節(jié)

69、;在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。 </p><p>  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/T2EX),具體如下表所示。 </p><p><b>  引腳第二功能</b></p><p

70、>  P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出</p><p>  P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)</p><p>  P1.5 MOSI(在系統(tǒng)編程用)</p><p>  P1.6 MISO(在系統(tǒng)編程用)</p><p>  P1.7SCK(在系統(tǒng)編程用)<

71、/p><p>  P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口。對(duì)P2端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入使用。</p><p>  P3 口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,作為輸入使用時(shí),因被外部拉低的引腳由于內(nèi)部電阻,也將輸出電流。P3口亦作為AT89S52特殊功能(第二功能)使用,在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。<

72、/p><p><b>  P3口第二功能</b></p><p>  P3.0 RXD(串行輸入口)</p><p>  P3.1 TXD(串行輸出口)</p><p>  P3.2 INTO(外中斷0)</p><p>  P3.3 INT1(外中斷1)</p><p&g

73、t;  P3.4 TO(定時(shí)/計(jì)數(shù)器0)</p><p>  P3.5 T1(定時(shí)/計(jì)數(shù)器1)</p><p>  P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)</p><p>  P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)</p><p>  RST 復(fù)位輸入。</p><p>  PSEN 程序儲(chǔ)存允許(PSE

74、N)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。</p><p>  EA/VPP——外部訪問(wèn)允許,欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器,EA端必須保持低電平(接地)。需注意的是:如果加密位被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序

75、存儲(chǔ)器的指令。</p><p>  4 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)</p><p>  非接觸智能卡系統(tǒng)的軟件設(shè)計(jì)可分為四部分,分別為主程序設(shè)計(jì)、RC500的讀/寫程序的設(shè)計(jì)、讀卡器外圍基本電路的應(yīng)用程序設(shè)計(jì)和通信部分程序的設(shè)計(jì)。主程序主要包括:IC卡讀/寫/密碼驗(yàn)證/擦除操作程序,RC500通信中斷處理程序,鍵盤中斷處理程序,PC機(jī)通信中斷處理程序,顯示程序及存儲(chǔ)器讀寫程序等,對(duì)MF-RC500

76、的應(yīng)用程序的設(shè)計(jì)也即是對(duì)MF-RC500操作指令的程序設(shè)計(jì),對(duì)讀卡器外圍基本電路程序的設(shè)計(jì)包括LCD顯示程序設(shè)計(jì)、鍵盤掃描程序設(shè)計(jì)、數(shù)據(jù)存儲(chǔ)程序設(shè)計(jì)和RS232通信程序設(shè)計(jì)。</p><p>  4.1 軟件設(shè)計(jì)環(huán)境</p><p>  一個(gè)好的程序設(shè)計(jì)思想,加上適當(dāng)?shù)木幾g軟件、仿真器和編程器,是單片機(jī)軟件開發(fā)的基本要求。本系統(tǒng)程序的設(shè)計(jì)以模塊化和結(jié)構(gòu)化的設(shè)計(jì)思想為指導(dǎo)。單片機(jī)開發(fā)所使用的

77、語(yǔ)言一般為匯編語(yǔ)言。匯編語(yǔ)言的優(yōu)點(diǎn)是代碼生成效率高,程序運(yùn)行速度快,其缺點(diǎn)是程序的讀性和可移植性都較差,而且用匯編語(yǔ)言編寫單片機(jī)應(yīng)用系統(tǒng)程序的周期長(zhǎng),調(diào)試和排錯(cuò)比較困難。C語(yǔ)言是一種通用的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,在國(guó)際上十分流行,它既可用來(lái)編寫計(jì)算機(jī)的系統(tǒng)程序,也可用來(lái)編寫一般的應(yīng)用程序。用它編寫的程序,具有較好的可讀性和可移植性。有經(jīng)驗(yàn)表明,用C語(yǔ)言編寫的程序生成代碼的效率僅比用匯編語(yǔ)言編寫的程序10~20%。德國(guó)Keil軟件公司的C51

78、編譯器可以直接對(duì)8051單片機(jī)的內(nèi)部特殊功能寄存器和I/O口進(jìn)行操作,直接訪問(wèn)片內(nèi)或片外存儲(chǔ)器,還可以進(jìn)行各種位操作,能產(chǎn)生簡(jiǎn)潔、高效率的程序代碼,在代碼質(zhì)量上可以與匯編語(yǔ)言相媲美。因此系統(tǒng)在設(shè)計(jì)中多數(shù)的程序使用了C語(yǔ)言進(jìn)行設(shè)計(jì),少數(shù)的一些程序用匯編語(yǔ)言編寫,用C語(yǔ)言進(jìn)行調(diào)用。 </p><p>  4.2 主程序的設(shè)計(jì)</p><p>  讀卡器工作的過(guò)程是一個(gè)復(fù)雜的程序執(zhí)行過(guò)程,要執(zhí)行

79、一系列的操作指令,調(diào)用多個(gè)函數(shù)。其主要包括鍵盤掃描、LCD顯示、讀寫E2PROM、讀/寫卡及與上位機(jī)通信等。這一系列的操作必須按固定的順序進(jìn)行。在沒(méi)MF1卡進(jìn)入射頻天線有效范圍內(nèi)時(shí),在LCD液晶上顯示當(dāng)前時(shí)鐘,當(dāng)有MF1卡進(jìn)入到射頻天線的有效范圍內(nèi)時(shí),讀卡程序驗(yàn)證卡及密碼成功后,將卡號(hào)和讀卡時(shí)間作為一條記錄存入E2PROM存儲(chǔ)器中,并在LCD顯示器上顯示該卡的卡號(hào)等信息。 </p><p>  讀卡器的主程序主要

80、由下位機(jī)來(lái)完成,單片機(jī)中的程序主要包括:IC卡讀/寫/密碼驗(yàn)證/擦除操作程序,與RC500通信中斷處理程序,鍵盤中斷處理程序,與PC機(jī)通信中斷處理程序,顯示程序及存儲(chǔ)器讀寫程序等等。讀卡器的主程序流程圖如圖4.1所示。</p><p>  圖4.1 讀卡器主程序流程圖 </p><p>  4.3讀/寫卡程序設(shè)計(jì)</p><p>  4.3.1 MF-RC500指

81、令說(shuō)明 </p><p>  MCU對(duì)MIFARE非接觸式智能卡的控制是通過(guò)MF-RC500來(lái)實(shí)現(xiàn)的,MF-RC500是MCU和MIFARE非接觸式智能卡之間的通信載體。MCU對(duì)MF-RC500的控制是以MCU發(fā)出MF-RC500的指令來(lái)達(dá)到的,MF-RC500收到指令之后執(zhí)行這些指令。MF-RC500的指令主要有:Request std,Request all,Anticollision,Select,Auth

82、entication,Read,Write,它們可以完成MCU對(duì)MIFARE 非接觸式智能卡的很多應(yīng)用場(chǎng)合的控制。 MCU對(duì)MF-RC500的某一指令操作不是簡(jiǎn)單的一條指令所能完成的,必須有一個(gè)程序的序列來(lái)完成,其中有對(duì)MF-RC500硬件內(nèi)核寄存器的讀/寫以及根據(jù)讀出的硬件內(nèi)核寄存器的內(nèi)容進(jìn)行語(yǔ)言軟件上的判斷和設(shè)置。不同的指令將設(shè)置不同的MF-RC500內(nèi)部寄存器以及應(yīng)有不同的編程語(yǔ)言程序序列。MF-RC500具體指令說(shuō)明及程

83、序設(shè)計(jì)如下: (1)“Answer to Request”(應(yīng)答或復(fù)位應(yīng)答) </p><p>  表4.1 復(fù)位應(yīng)答指令</p><p>  Request指令將通知MF-RC500在天線有效的工作范圍內(nèi)尋找WARE卡片。如果有MIFARE卡片存在,這一指令將分別與MIFARE卡片進(jìn)行通信,讀取WARE卡片上的卡片類型號(hào)TAGTYPE,由MF-RC500傳遞給MCU,進(jìn)行識(shí)

84、別處理。Request指令分為Request std和Request all兩個(gè)指令。 </p><p>  Request all指令是非連續(xù)性的讀卡指令,只讀一次,它可以防止MF-RC500選擇同一卡片好幾次。當(dāng)某一張卡片在MF-RC500天線的有效工作范圍內(nèi),Request all指令在成功地讀取這一張卡片之后,將一直等待卡片的使用者拿走這張卡片,直到有新一張的卡片進(jìn)入M- RC500天線的有效工作范圍內(nèi)。

85、 Request std指令的使用和Request all指令相反,Request std指令是連續(xù)性的讀卡指令。當(dāng)卡片在MF-RC500天線的有效工作范圍內(nèi),Request std指令在成功地讀取這一張卡片之后,對(duì)卡進(jìn)行其他操作。如果其他操作完成之后,程序員又將MF-RC500進(jìn)入Request std指令操作,則Request std指令將連續(xù)性地再次進(jìn)行讀卡操作,而不管這張卡片是否被拿走。只要有一張卡片進(jìn)入MF-RC500之天線

86、的有效的工作范圍內(nèi),Request std指令將始終連續(xù)性地再次進(jìn)行讀卡操作。 </p><p>  (2)“Select Tag”(選擇卡片操作) </p><p>  表4.2 選擇卡片指令</p><p>  在一個(gè)成功的AntiCollision指令之后,或在任何時(shí)候當(dāng)程序員想與已知序列號(hào)的卡片進(jìn)行通信時(shí),必須使用Select指令,以建立與所選卡的通信。S

87、elect指令成功地完成后,MCU將得到MF-RC500的DATA寄存器傳送來(lái)的一個(gè)字節(jié)長(zhǎng)的卡片容量信息—Size。 </p><p>  (3)“Authentication”(認(rèn)證操作) </p><p>  表4.3 認(rèn)證指令</p><p>  在MCU希望讀取MIFARE卡上的數(shù)據(jù)之前,此操作必須是被允許的。這可以通過(guò)選擇存儲(chǔ)在MF-RC500之R

88、AM中的密碼集中的一組密碼來(lái)進(jìn)行認(rèn)證而實(shí)現(xiàn)。如果這一組密碼與MIFARE卡片上的密碼匹配,這一次操作被允許進(jìn)行??ㄆ系拇鎯?chǔ)器的每一個(gè)塊都分別地指定了該塊的存取條件。這些存取條件是根據(jù)密碼而定。用戶必須在KEYSTACON寄存器中指定一套密碼,即設(shè)置KSO,KS1。KEYADDR寄存器中的AB位用于選擇KEYA和KEYB。KEYADDR寄存器中的AB設(shè)置必須匹配“Authentication”命令。 (4)“Read”(讀指

89、令) </p><p>  表4.4 讀指令</p><p>  Read(讀)指令允許MCU通過(guò)MF RC500來(lái)讀取MIFARE卡片上完整的16個(gè)Bytes的數(shù)據(jù)塊(Data blocks)。 (5)“Write”(寫指令) </p><p>  表4.5 寫指令</p><p>  “Write” 寫指令允許用戶

90、寫數(shù)據(jù)到MIFARE卡片上(完整的16個(gè)Byte的數(shù)據(jù)塊)。</p><p>  4.3.2 讀/寫卡程序流程圖 </p><p>  讀/寫卡過(guò)程主要由以下幾步組成: (1) 復(fù)位應(yīng)答:當(dāng)一張MIFARE卡片處在讀寫器的天線的工作范圍之內(nèi)時(shí),程序員控制讀寫器向卡片發(fā)出REQUEST all 命令??ㄆ腁TR 將啟動(dòng),將卡片Block0中的卡片類型共2個(gè)字節(jié)傳送給讀寫器, 建立

91、卡片與讀寫器的第一步通信聯(lián)絡(luò)。如果不進(jìn)行位選擇操作,讀卡器對(duì)卡片的其他操作將不會(huì)進(jìn)行; (2) 防重疊操作:有多張卡處在天線的工作范圍之內(nèi)時(shí),RC500將取得每一張卡片的系列號(hào),由于每一張MIFARE卡片都具有其唯一的序列號(hào),決不會(huì)相同,因此MF-RC500根據(jù)卡片的序列號(hào)來(lái)保證一次只對(duì)一張卡操作。該操作MF-RC500得到MIFARE卡片的返回值和卡片的系列號(hào); (3) 選擇卡片操作:選擇被選中卡的系列號(hào),并同時(shí)返

92、回卡的容量代碼; (4) 認(rèn)證操作:經(jīng)過(guò)上述3個(gè)步驟, 在確認(rèn)已經(jīng)選擇了一張卡片時(shí),MF-RC500 在對(duì)卡進(jìn)行讀寫操作之前,必須對(duì)卡片上已經(jīng)設(shè)置的密碼進(jìn)行認(rèn)證,如果匹配,才允許進(jìn)一步的讀寫操作; (5) 讀寫操作:在經(jīng)過(guò)上述幾個(gè)步驟之后就可以具體地對(duì)卡片進(jìn)行相應(yīng)的讀、寫、增值、減值</p><p>  圖4.2 讀/寫卡程序流程圖</p><p>  4.4 讀卡器

93、外圍基本電路程序的設(shè)計(jì)</p><p>  4.4.1 顯示程序設(shè)計(jì) </p><p>  本設(shè)計(jì)中的顯示模塊主要由系統(tǒng)時(shí)鐘和LCD顯示組成,系統(tǒng)時(shí)鐘用來(lái)提供時(shí)間、日期等信息;LCD用來(lái)向用戶顯示卡片、存儲(chǔ)數(shù)據(jù)等信息;LCD的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的,通過(guò)寄存器的設(shè)置和指令編程就可完成,這部分的程序設(shè)計(jì)比較簡(jiǎn)單,其流程圖如圖4.3所示。 </p>

94、<p>  圖4.3 顯示部分程序流程圖</p><p>  顯示模塊的部分程序如下: MAIN: MOV SP,#60H MAIN1: LCALL START ;調(diào)用初始化 MOV A, #80H ;第一行顯示第一個(gè)字符的位置 </p><p>  ACALL ENABLE ;調(diào)

95、用寫指令 </p><p>  MOV DPTR, #TABLE1 ;第一行表頭位置 </p><p>  CALL WRITE1 ;調(diào)用第一行寫子程序 </p><p>  MOV A, #0C0H ;第二行位置 </p><p>  CALL ENABLE

96、 ;調(diào)用寫指令 </p><p>  MOV DPTR, #TABLE2 ;第二行表頭位置 </p><p>  CALL WRITE </p><p>  LCALL DELAY1 </p><p>  JMP MAIN1 </p><p>  ENABLE:

97、 ;寫命令時(shí)序 </p><p>  MOV SS, A </p><p><b>  CLR RS </b></p><p><b>  CLR RW </b></p><p><b>  CLR E </b></p><

98、p>  ACALL DELAY </p><p><b>  SETB E </b></p><p><b>  RET </b></p><p>  WRITE1: ;寫字符串 </p><p>  MOV R1, #00H </p&

99、gt;<p>  A1: MOV A, R1 </p><p>  MOVC A, @A+DRTR ;取將顯示的數(shù)據(jù) </p><p>  CALL WRITE2 ;調(diào)用寫程序?qū)懭雴蝹€(gè)字節(jié) </p><p><b>  INC R1 </b></p>

100、<p>  CJNE R1,#10H,AL </p><p><b>  RET </b></p><p>  WRITE2: ;寫單個(gè)字符 </p><p>  MOV SS A </p><p>  SETB RS </p>

101、<p>  CLR RW </p><p><b>  CLR E </b></p><p>  CALL DELAY </p><p><b>  SETB E </b></p><p><b>  RET </b></p>&l

102、t;p>  4.4.2 鍵盤程序設(shè)計(jì) </p><p>  鍵盤程序包括按鍵識(shí)別及識(shí)別按鍵后系統(tǒng)的相應(yīng)動(dòng)作。按鍵識(shí)別分兩步進(jìn)行:第一步,識(shí)別鍵盤有無(wú)鍵被按下;第二步如果有鍵被按下,識(shí)別出具體的按鍵。分述如下:第一步,識(shí)別鍵盤有無(wú)鍵被按下的方法是:讓所有列均置為0電平,檢查各行線電平是否有變化,如果有變化,則說(shuō)明有鍵被按下。第二步,識(shí)別具體的按鍵的方法有掃描法和線反轉(zhuǎn)法,這里采用掃描法:逐列置0電平,其余各

103、列置為高電平,檢查各行線電平的變化,如果某行電平由高電平變?yōu)?電平,則可確定此行此列交叉點(diǎn)處的按鍵被按下。本方案中用延時(shí)l0ms進(jìn)行軟件消抖,通過(guò)設(shè)置處理標(biāo)志位來(lái)區(qū)分閉合鍵是否己處理過(guò),用計(jì)算方法得到鍵碼。鍵盤掃描子程序中完成如下幾個(gè)功能: (1) 斷鍵盤上有無(wú)鍵按下。其方法為P1口低3位輸出全0,讀P1口狀態(tài),若P1.3、P1.4為全1,則說(shuō)明鍵盤無(wú)鍵按下;若不全為1,則說(shuō)明鍵盤有鍵按下; (2) 除按鍵抖動(dòng)的影響

104、。其方法為,在判斷有鍵按下后,用軟件延時(shí)的方法延時(shí)10ms,再判斷鍵盤狀態(tài),如果仍為有鍵按下?tīng)顟B(tài),則認(rèn)為有一個(gè)確定的鍵按下,否則當(dāng)作按鍵抖動(dòng)處理; </p><p>  (3) 按鍵位置。根據(jù)前面的掃描法,進(jìn)行逐位置0掃描,最后定位按鍵位置; (4) 閉合一次僅進(jìn)行一次按鍵的處理。方法是等待按鍵釋放之后,再進(jìn)行按鍵功能的處理操作。編程掃描程序流程圖如圖4.4所示。 </p><p&

105、gt;  圖4.4 掃描程序流程圖</p><p>  4.4.3 E2PROM程序的編寫 </p><p>  AT24C64存儲(chǔ)器可以解決單片機(jī)片內(nèi)E2PROM不足的問(wèn)題,用以保存諸如用戶設(shè)置參數(shù)、卡片信息等資料。由于本系統(tǒng)中采用到的AT89S52單片機(jī)不具備I2C總線接口,因此采用軟件法加以解決。在軟件編寫時(shí)遵循I2C總線規(guī)則:初始狀態(tài)時(shí),SCL、SDA兩線都為高,當(dāng)SCL為高電平

106、時(shí),如果SDA線跌落,認(rèn)為是“起始位”;當(dāng)SCL為高電平時(shí),如果SDA線上升,認(rèn)為是“停止位”;除此之外,在發(fā)送數(shù)據(jù)的過(guò)程中當(dāng)SCL為高電平時(shí),SDA應(yīng)保持穩(wěn)定。ACK應(yīng)答位指在此時(shí)鐘周期內(nèi)由從器件(E2PROM)把SDA拉低,表示回應(yīng)。這時(shí)主器件(AT89S52)的SDA口屬性應(yīng)該變?yōu)檩斎胍员銠z測(cè)。E2PROM主要讀寫程序如下: void 12c_Send_Byte (unsigned char Send_Data) /*寫一個(gè)字

107、節(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;}</p><p>  do //接收應(yīng)答信號(hào),防止死循環(huán) </p><p>&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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)論