1非接觸式IC卡工作原理_第1頁
1非接觸式IC卡工作原理_第2頁
1非接觸式IC卡工作原理_第3頁
1非接觸式IC卡工作原理_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1 非接觸式IC卡工作原理 非接觸式IC卡可用以存儲數(shù)字、字母編碼信息,具有智能讀寫和加密通信的功能,卡中存儲的需要識別、交互的數(shù)據(jù)可以隨時寫入、更改或擦除。它通過無線電波與讀寫設(shè)備進(jìn)行數(shù)據(jù)交換,不需要電氣觸點,讀寫頻率高??ㄖ械募呻娐烦藥Ъ用苓壿嫛⒋蠩EPROM (可擦除、可編程只讀存儲器) 、微處理器CPU外,還帶有射頻收發(fā)及相關(guān)電路。無源非接觸式IC卡框圖如圖1 所示。 非接觸式IC卡接收射頻脈沖,經(jīng)整流給電容器充電,再經(jīng)穩(wěn)壓后作為工作電壓。數(shù)據(jù)解調(diào)部分從接收到的射頻脈沖中解調(diào)出數(shù)據(jù)送到控制邏輯,控制邏輯接受指令完成存儲、發(fā)送數(shù)據(jù)或接收讀寫器的數(shù)據(jù)。圖1無源非接觸式IC卡框圖系統(tǒng)以13. 56MHz的工作頻率,半雙工方式在讀寫器與IC卡之間雙向傳遞數(shù)據(jù)。讀寫器將要發(fā)送的信號,編碼后加載在頻率為13. 56MHz的載波信號上經(jīng)天線向外發(fā)送,進(jìn)入讀寫器工作區(qū)域的IC卡接收此脈沖信號,一方面卡內(nèi)芯片中的射頻接口模塊由此信號獲得電源電壓、復(fù)位信號、時鐘信號;同時卡內(nèi)芯片中的有關(guān)電路對此信號進(jìn)行調(diào)制、解碼、解密,然后對命令請求、密碼、權(quán)限等進(jìn)行判斷,若為讀命令,控制邏輯電路則從存儲器中讀取有關(guān)信息,經(jīng)加密、編碼、調(diào)制后經(jīng)卡內(nèi)天線發(fā)送給讀寫器,讀寫器對接收到的信號進(jìn)行解調(diào)、解碼、解密后送至后臺計算機(jī)處理。若為修改信息的寫命令,有關(guān)控制邏輯引起的內(nèi)部電荷泵提升工作電壓,提供擦寫EEPROM時所需的高壓,以便對EEPROM 中的內(nèi)容進(jìn)行改寫。若經(jīng)判斷其對應(yīng)的密碼和權(quán)限不符,則返回出錯信息與接觸式IC卡相比較。2 射頻卡讀寫器硬件設(shè)計 系統(tǒng)工作前,通過讀寫器中的寫卡功能對所有的IC卡寫入指定的數(shù)據(jù),在正式的工作中,由讀寫卡模塊的讀卡功能將放入感應(yīng)區(qū)的IC卡中的數(shù)據(jù)讀出,并將數(shù)據(jù)傳輸?shù)轿⑻幚砥髦?然后再由微處理器通過對比判斷讀卡模塊上傳的數(shù)據(jù)是否正確,最后根據(jù)微處理器得出的結(jié)果決定是否開門。系統(tǒng)的原理框圖如圖2所示。 圖2系統(tǒng)原理圖 2. 1讀寫卡模塊 IC卡讀寫模塊中采用的芯片是MF RC500,它的并行微控制器接口自動檢測連接的8 位并行接口的類型,它包含一個易用的雙向F IFO 緩沖區(qū)和一個可配置的中斷輸出,這樣就為連接各種MCU 提供了很大的靈活性,即使使用非常低成本的器件也能滿足高速非接觸式通信的要求。 數(shù)據(jù)處理部分執(zhí)行數(shù)據(jù)的并行串行轉(zhuǎn)換,它支持的幀包括CRC和奇偶校驗,它以完全透明的模式進(jìn)行操作,因而支持ISO14443A的所有層,狀態(tài)和控制部分允許對器件進(jìn)行配置以適應(yīng)環(huán)境的影響并使性能調(diào)節(jié)到最佳狀態(tài),當(dāng)與M I2FARE Standard 和M IFARE 產(chǎn)品通信時, 使用高速CRYPTO1 流密碼單元和一個可靠的非易失性密匙存儲器。模擬電路包含了一個具有非常低阻抗橋驅(qū)動器輸出的發(fā)送部分使得最大操作距離可達(dá)100mm。接收器可以檢測到并解碼非常弱的應(yīng)答信號 ,由于所采用的接收器已不再是限制操作距離的因素,在此使用的IC卡讀寫模塊具有比較大的科學(xué)先進(jìn)性,比以往使用的ID卡系統(tǒng)擁有更高的性能。 2. 2微處理器模塊 在微處理器上采用了AT89C51單片機(jī)為處理芯片。由于系統(tǒng)中IC卡方面的功能已經(jīng)可以用RC500處理,處理器只負(fù)責(zé)對讀寫器的讀寫和外部通訊,所以此單片機(jī)完全符合上述功能。微處理器的P0口連接讀寫卡模塊的一些控制信號端口, P1口連接讀寫卡模塊的數(shù)據(jù)和地址端口。在單機(jī)連接使用時可直接使用微處理器的串口,如果是多機(jī)連接時,可再加入串口轉(zhuǎn)RS485模塊,這樣對每一個使用的系統(tǒng)進(jìn)行編號處理就構(gòu)成了多機(jī)的聯(lián)機(jī)使用狀態(tài),。3 射頻卡讀寫器軟件設(shè)計在系統(tǒng)的主程序流程圖中主要畫出的是微控制器的程序流程,而加密算法作為一個子程序嵌入到主程序當(dāng)中。在此系統(tǒng)中,微控制器中的程序使用的是C語言,但在編寫數(shù)據(jù)加密系統(tǒng)中使用的是專用的編寫程序。由于兩種編程語言使用的并不是相同的語言,如何將兩種語言在同一系統(tǒng)中體現(xiàn)出各自的功能是本系統(tǒng)軟件編寫的重點和難點。本系統(tǒng)主程序流程圖如圖3所示。 圖3主程序流程圖 3. 1微控制器軟件設(shè)計 此模塊中的設(shè)計主要是IC卡模塊與微控制器之間的通訊設(shè)計。其中重要的是密碼的寫入與讀寫的操作過程。以下便是本模塊的部分原始程序。裝載密碼的應(yīng)用程序: uint8 PCDLoadKey ( uint8 KEYAB, uint8 SecNr, uint8 3 Key) uint8 Status; SerBfrCMDTYPE = 1; / /對IC卡存儲芯片寫時續(xù)操作 SerBfrCOMMAND = E; / /定義數(shù)據(jù)長度 SerBfrLENGTH = 8; / /寫入卡的密碼數(shù)據(jù) SerBfrDATA = KEYAB; / /進(jìn)行加密操作 SerBfrDATA + 1 = SecNr; memcopy(&SerBfrDATA + 2 , Key, 6) ; / /對寫入的數(shù)據(jù)進(jìn)行驗證 Status =R500_Cmd ( SlvAddr) ; if ( Status = =OK) / /判斷加密操作 Status = SerBfr STATUS; return Status; 寫讀卡芯片寄存器的應(yīng)用程序: uint8 PCDWriteReg( uint8 RegAddr, uint8 RegValue) uint8 Status; SerBfrCMDTYPE = 1; / /對IC卡存儲芯片寫時續(xù)操作 SerBfrCOMMAND = F; / /定義數(shù)據(jù)長度 SerBfrLENGTH = 2; / /定義寫數(shù)據(jù)的地址 SerBfrDATA =RegAddr; / /調(diào)整地址 SerBfrDATA + 1 =RegValue; / /調(diào)用寫數(shù)據(jù)程序 Status =R500_Cmd ( SlvAddr) ; if ( Status = =OK) / /驗證數(shù)據(jù)正確性 Status = SerBfr STATUS; return Status; 讀讀卡芯片寄存器的應(yīng)用程序: uint8 PCDReadReg( uint8 RegAddr, uint8 3 RegValue) uint8 Status; SerBfrCMDTYPE = 1; / /對IC卡存儲芯片寫時續(xù)操作 SerBfrCOMMAND = G; / /定義數(shù)據(jù)長度 SerBfrLENGTH = 1; / /定義讀數(shù)據(jù)的地址 SerBfrDATA =RegAddr; / /調(diào)用讀數(shù)據(jù)程序 Status =R500_Cmd ( SlvAddr) ; if ( Status = =OK) Status = SerBfr STATUS; if ( Status = =OK) / /驗證數(shù)據(jù)正確性 3 RegValue = SerBfrDATA ; return Status; 3. 2數(shù)據(jù)加密軟件設(shè)計 私鑰加密算法和哈希值加密算法是本設(shè)計中用到的加密方法。其中私鑰加密中使用單個私鑰來加密和解密數(shù)據(jù)。哈希算法將任意長度的二進(jìn)制值映射為固定長度的較小二進(jìn)制值,這個小的二進(jìn)制值稱為哈希值,哈希值是一段數(shù)據(jù)唯一且極其緊湊的數(shù)值表示形式。 在本系統(tǒng)中,數(shù)據(jù)在讀卡系統(tǒng)和微控制器之間相互傳輸,微控制器接受由讀卡系統(tǒng)發(fā)送來的用戶數(shù)據(jù)。 數(shù)據(jù)在讀卡系統(tǒng)中,首先對要傳送的數(shù)據(jù)使用哈希算法將得到數(shù)據(jù)的哈希值,然后使用用戶的自有私鑰密碼對數(shù)據(jù)和使用哈希算法得到的哈希值加密,然后傳到微控制器中,再由微控制器對得到的數(shù)據(jù)進(jìn)行解密,恢復(fù)傳輸?shù)脑紨?shù)據(jù)。本模塊的設(shè)計主要使用的是數(shù)據(jù)加密算法的專業(yè)編程語言。功能是將IC卡模塊中的數(shù)據(jù)進(jìn)行加密處理,然后將加密的數(shù)據(jù)傳出和對接受的數(shù)據(jù)進(jìn)行解密處理。但由于兩種語言的不一致性,通過微處理器讀取的數(shù)據(jù)不能直接通過加密算法進(jìn)行加密處理,所以在此程序中特意編寫了與微控制器通訊的通訊端口,將微處理器得到的數(shù)據(jù)通過此端口傳入數(shù)據(jù)的加密算法程序中,對數(shù)據(jù)進(jìn)行加密處理后,再通過此端口將數(shù)據(jù)傳到微處理器中,這樣就方便兩種語言進(jìn)行數(shù)據(jù)的轉(zhuǎn)換和傳遞。以下便是本模塊軟件設(shè)計的部分原始程序。 生成對稱密鑰: Trip leDESCryp toServiceProvider TDES = new Trip leDESCryp2 toServiceProvider( ) ; TDES. Generate IV ( ) ; TDES. GenerateKey( ) ; 生成不對稱密鑰: RSACryp toServiceProvider RSA = new RSACryp toServicePro2vider ( ) ; / /Save the public key information to an RSAParameters structure. RSAParameters RSAKeyInfo =RSA. ExportParameters(false) ; 將不對稱密鑰存儲在密鑰容器中: CspParameters cp = new CspParameters( ) ; cp. KeyContainerName =ContainerName; RSACryp toServiceProvider rsa = new RS

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論