• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Mifare1射頻卡上位機(jī)軟件的開發(fā)與實(shí)現(xiàn)

      2012-01-14 08:51:12白翠翠夏春蕾戴曙光
      無線電通信技術(shù) 2012年4期
      關(guān)鍵詞:機(jī)軟件IC卡讀寫器

      白翠翠,夏春蕾,戴曙光

      (上海理工大學(xué)光電信息與計(jì)算機(jī)工程學(xué)院,上海200093)

      0 引言

      IC卡按卡與外界數(shù)據(jù)傳送的形式不同分為接觸式IC卡和非接觸式IC卡[1]。接觸式IC卡通過觸點(diǎn)從讀寫模塊獲取能量和交換數(shù)據(jù);非接觸式IC卡通過射頻感應(yīng)從讀寫模塊獲取能量和交換數(shù)據(jù),所以非接觸式IC卡又叫射頻卡。與傳統(tǒng)的接觸式IC卡、磁卡相比較,利用射頻識別技術(shù)開發(fā)的非接觸式IC卡,在系統(tǒng)壽命、防監(jiān)聽和防解密等性能上具有很大的優(yōu)勢。目前我國引進(jìn)的射頻IC卡主要有PHILIPS公司的 Mifare1卡[2]和 ATMEL公司的Temic卡。而PHILIPS公司的Mifare1卡現(xiàn)在是市場的主流產(chǎn)品,應(yīng)用越來越廣。在VC6.0環(huán)境下,基于深圳市德卡科技有限公司的D8非接觸式讀寫器,開發(fā)了mifare1射頻卡上位機(jī)軟件,該上位機(jī)軟件操作方便,能夠滿足用戶的基本需求。

      1 Mifare1射頻卡(簡稱M1卡)

      1.1 M1卡工作原理

      M1卡片[3]的電氣部分只由1個(gè)天線和1個(gè)高速的RF射頻接口電路和數(shù)字電路部分組成。其工作原理是:讀寫器向卡片發(fā)送1組固定頻率的電磁波,卡片內(nèi)有1個(gè)LC串聯(lián)諧振電路,其頻率與讀寫器發(fā)射的頻率相同,在電磁波的激勵(lì)下,LC諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷,在這個(gè)電容的另一端接有1個(gè)單向?qū)ǖ碾娮颖?,將電容?nèi)的電荷送到另一個(gè)電容內(nèi)儲(chǔ)存,當(dāng)所積累的電荷達(dá)到2 V時(shí),此電容可作為電源為其他電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或接收讀寫器的數(shù)據(jù)[4]。

      1.2 M1卡存儲(chǔ)結(jié)構(gòu)

      卡片上有1 K字節(jié)E2PROM存儲(chǔ)區(qū),并劃分16個(gè)扇區(qū),每區(qū)4塊,每塊16字節(jié)。各區(qū)的塊3蘊(yùn)含6字節(jié)密鑰A、6字節(jié)密鑰B、和4字節(jié)訪問控制條件。除0區(qū)塊0外的其余3塊均用于數(shù)據(jù)存儲(chǔ)。0區(qū)的塊0用于存放廠商代碼,已經(jīng)固化,不可更改。

      1.3 M1卡的訪問控制

      通過對各區(qū)區(qū)尾(塊3)的設(shè)置,可為各區(qū)分別建立相應(yīng)的安全保密形式。表1是各區(qū)塊3訪問控制位的分布情況。對訪問控制位的設(shè)置,決定該區(qū)各塊能否被訪問(讀操作或?qū)懖僮?以及訪問密鑰是key A還是key B。

      表1 訪問控制位結(jié)構(gòu)

      訪問條件的每一位,都可用符號C1XY、C2XY和C3XY(Y表示塊號:0~3)表示,用于存放各區(qū)塊0~塊3對應(yīng)的訪問控制條件。每一安全保密形式的確立均取決于用這些符號表示的3個(gè)位的編碼。例如,C1X3、C2X3、C3X3即為各區(qū)控制塊 3讀/寫的訪問條件存放位。為保證安全性,3個(gè)控制位以正和反2種形式存放于訪問控制字節(jié)中。

      表2示出對塊3自身的訪問條件,其中Key A|Key B表示“Key A或Key B”。

      表2 塊3的訪問條件

      由表2可見,密鑰A永遠(yuǎn)不能被讀出,但在滿足相應(yīng)條件時(shí)可以被改寫;密鑰B空間存放密鑰B時(shí),也應(yīng)設(shè)置為不可讀態(tài)。當(dāng)設(shè)置為有條件讀狀態(tài)時(shí),將只能存放數(shù)據(jù)。

      由于塊3可以將自身加鎖,因此,在進(jìn)行卡片個(gè)人化時(shí)應(yīng)特別小心,防止造成不可逆的損失。

      表3示出對各區(qū)塊0~塊2(Y=0~2)的訪問條件(0區(qū)塊0除外)。按此條件,可對所在區(qū)的相應(yīng)塊有條件的進(jìn)行讀、寫、增值、減值以及將數(shù)據(jù)寄存器的內(nèi)容寫入E2PROM(傳送)和將E2PROM的內(nèi)容存入數(shù)據(jù)寄存器(存儲(chǔ))操作(注意:各區(qū)塊3永遠(yuǎn)不能執(zhí)行增值、減值、傳送和存儲(chǔ)這4類數(shù)值操作)。

      表3 塊0~塊2的訪問條件

      譬如,若使C1XY、C2XY和C3XY為110,則可進(jìn)行增值操作;若使之為001,將僅可用于不可充值的遞減計(jì)數(shù)(減值操作)。

      2 上位機(jī)軟件的實(shí)現(xiàn)

      2.1 D8動(dòng)態(tài)鏈接庫

      進(jìn)行M1卡上位機(jī)軟件的開發(fā)時(shí),需要使用D8非接觸式讀寫器提供的動(dòng)態(tài)鏈接庫。在客戶的VC 6.0項(xiàng)目中需要添加相應(yīng)的dcrf32.h、dcrf32.lib和dcrf32.dll文件。具體操作時(shí),將這3個(gè)文件拷貝至用戶的工程文件夾中。并在 VC6.0開發(fā)環(huán)境中[5-8],通過 Project→Settings→Link 設(shè)置 Category為 Input,Object/library modules下填寫 dcrf32.Lib(注意空1格),并在工程文件的源文件中加入如下代碼:#include“dcrf32.h”。

      2.2 界面操作說明

      每次進(jìn)行設(shè)備操作前,都必須先打開通訊端口,進(jìn)行參數(shù)設(shè)置;在對M1卡操作之前,先測試一下卡的類型是否正確;裝載設(shè)備密碼,即將密碼裝載到讀卡器的設(shè)備中去。只有裝載到設(shè)備中的密碼和卡片密碼進(jìn)行比對相匹配后,才能對卡進(jìn)行操作。

      2.3 主程序流程圖

      圖1是M1卡上位機(jī)軟件的主程序流程。上位機(jī)發(fā)送命令,讀寫器響應(yīng)上位機(jī)的命令,實(shí)現(xiàn)對M1卡的相應(yīng)控制和讀寫操作,然后將操作結(jié)果或讀來的數(shù)據(jù)傳送給上位機(jī)。其中halt[6]指令使卡片進(jìn)入停止模式,退出使用,直至再次上電復(fù)位。

      圖1 主程序流程

      2.4 實(shí)現(xiàn)中的重難點(diǎn)問題及解決方法

      該上位機(jī)軟件分為6個(gè)部分,各部分功能、重要模塊的關(guān)鍵代碼實(shí)現(xiàn)及編程中注意的問題分析如下:

      通訊設(shè)置:用戶可以根據(jù)實(shí)際需要選擇串口或USB通訊,選擇串口時(shí)通訊波特率無效。

      卡型測試:能檢測的卡類型為:Mifare 1、FM11RF32、S70、ULTRA LIGHT、SHC1102、Mifare Light、Mifare PRO和DESFIRE等。用戶在對M1卡操作之前測試卡型是否正確。

      密鑰管理:包括裝載設(shè)備密鑰和進(jìn)行讀寫控制模塊與M1卡的認(rèn)證。MIFARE系列產(chǎn)品的安全算法稱為Crypto1,它是基于48位長度密鑰專有的流加密算法。訪問 MIFARE系列卡,密鑰非常關(guān)鍵。對執(zhí)行成功的認(rèn)證和后續(xù)訪問卡的E2PROM數(shù)據(jù),必須提供正確的密鑰。依ISO/IEC 14443A定義,選卡后用戶繼續(xù)MIFARE系列協(xié)議,此時(shí)強(qiáng)制執(zhí)行卡的認(rèn)證流程。Crypto1認(rèn)證是一個(gè)三重認(rèn)證,這個(gè)過程由Authent1和Authent2[7]指令來自動(dòng)執(zhí)行。在卡認(rèn)證過程中,加密算法被初始化。MIFARE系列卡在認(rèn)證成功后,通訊被加密。在執(zhí)行認(rèn)證指令期間,讀寫芯片從內(nèi)部的key buffer中讀取密鑰。密鑰總是由key buffer提供。用戶必須保證,在認(rèn)證開始前已經(jīng)把正確的密鑰放在key buffer中。

      激活卡片:包括尋卡、halt卡和RF復(fù)位,尋卡通過防碰撞機(jī)制獲得天線范圍內(nèi)的一張卡的卡號。射頻復(fù)位的時(shí)間是2 ms。執(zhí)行halt指令后,卡進(jìn)入HALT模式,則必須把卡移開感應(yīng)區(qū)再進(jìn)來才能尋得這張卡,原因是防止卡片死鎖??ㄆ梨i發(fā)生在慢慢進(jìn)入場強(qiáng)時(shí),卡片很容易發(fā)生死鎖:讀卡機(jī)發(fā)送任何命令,卡片都無法正確反應(yīng)。發(fā)生這類問題時(shí),使用者必須把卡片拿出場強(qiáng)后重新進(jìn)入場強(qiáng),卡片才能恢復(fù)工作。

      M1卡讀寫操作:認(rèn)證通過后,用戶可以讀、寫每一個(gè)塊的數(shù)據(jù),但是在編程時(shí)要注意對塊0和塊3的操作。塊0為制造商塊,它含有集成電路制造商數(shù)據(jù)。出于安全和系統(tǒng)需求,制造商在生產(chǎn)過程中對此塊進(jìn)行了寫保護(hù),因此不能進(jìn)行寫操作。每一個(gè)扇區(qū)的塊3為控制塊,不能輕易進(jìn)行數(shù)據(jù)的改寫,因?yàn)樵诿恳淮未鎯?chǔ)器寫操作時(shí),內(nèi)部邏輯會(huì)驗(yàn)證存儲(chǔ)條件的格式。如果發(fā)現(xiàn)格式錯(cuò)誤,這個(gè)區(qū)將被永久性鎖死。另外在代碼中要注意如何將讀寫器中的數(shù)據(jù)取出以及十六進(jìn)制字符串和普通字符串的轉(zhuǎn)換。

      主要實(shí)現(xiàn)代碼如下所示:

      以2扇區(qū)為例,當(dāng)對塊3進(jìn)行寫操作的時(shí)候,系統(tǒng)會(huì)做出是否進(jìn)行寫操作的提示,若此時(shí)改寫了key A的內(nèi)容,則再次裝載密鑰時(shí),必須保證裝載至key buffer中的密鑰和存儲(chǔ)在卡片中的密鑰一致,否則該扇區(qū)將不能被再次訪問。

      M1卡值操作:值操作前一定要進(jìn)行初始化,將該塊變?yōu)閿?shù)值塊。在值操作中,按照M1卡訪問機(jī)制,要先對M1卡進(jìn)行認(rèn)證,認(rèn)證通過后才能進(jìn)行初始化值、讀值、加值、減值、傳輸操作。下面以初始化值為例,其參考代碼(key A)如下:

      在上述代碼中,對于非正常情況,例如對塊0(廠商代碼塊)或塊3(控制塊),均不能進(jìn)行值操作,否則,該操作將造成某個(gè)扇區(qū)被鎖死的現(xiàn)象,致使該扇區(qū)被再次訪問時(shí)出錯(cuò)而報(bào)廢。對于傳輸操作,該指令的目的地址必須有其相應(yīng)的權(quán)限,才能將計(jì)算結(jié)果存儲(chǔ)到卡內(nèi)的E2PROM中。

      3 結(jié)束語

      高度的信息集成化及安全性使M1卡融入當(dāng)今信息技術(shù)的主流,備受人們青睞。設(shè)計(jì)的Mifare1卡上位機(jī)軟件,能夠?qū)崿F(xiàn)讀卡器訪問M1卡的全部功能。經(jīng)實(shí)踐證明:該系統(tǒng)能對天線范圍內(nèi)的多個(gè)卡準(zhǔn)確無誤地讀寫。軟件代碼簡潔,容易移植,在此上位機(jī)軟件的基礎(chǔ)上稍加修改就能開發(fā)出不同測試需求的應(yīng)用軟件。此外,對于學(xué)習(xí)非接觸式IC卡技術(shù)具有很好的借鑒作用。

      [1] 嚴(yán)雄武,梁楚樵.MIFARE非接觸式IC卡讀卡器的設(shè)計(jì)構(gòu)架研究[J].武漢理工大學(xué)學(xué)報(bào),2004,26(12):89-91.

      [2] Philips Semiconductors.Standard Card IC MF1 IC S50 Functional specification[R],2001.

      [3] FINKENZELLER K.射頻識別(RFID)技術(shù)[M].陳大才,王卓人譯.北京:電子工業(yè)出版社,2001.

      [4] 陸永寧.非接觸IC卡原理與應(yīng)用[M].北京:電子工業(yè)出版社,2006.

      [5] 高守傳,聶云銘,鄭靜.Visual C++6.0開發(fā)指南[M].北京:人民郵電出版社,2007.

      [6] 孫鑫,余安平.VC++深入詳解[M].北京:電子工業(yè)出版社,2006.

      [7] 黃維通.Visual C++面向?qū)ο笈c可視化程序設(shè)計(jì)(第2版)[M].北京:清華大學(xué)出版社,2009.

      [8] 鄭阿奇,丁有和.Visual C++[M].北京:清華大學(xué)出版社,2005.

      猜你喜歡
      機(jī)軟件IC卡讀寫器
      工商業(yè)IC卡控制器改造為物聯(lián)網(wǎng)控制器實(shí)踐
      在用電梯加裝外接式IC卡運(yùn)行控制系統(tǒng)設(shè)計(jì)改進(jìn)
      一種新的無觸點(diǎn)IC卡的檢測方法
      電子測試(2017年15期)2017-12-18 07:19:05
      道岔監(jiān)測系統(tǒng)上位機(jī)軟件設(shè)計(jì)
      基于正交試驗(yàn)法的北斗用戶機(jī)軟件測試用例設(shè)計(jì)
      PCI-e高速數(shù)據(jù)采集卡的驅(qū)動(dòng)與上位機(jī)軟件設(shè)計(jì)
      電子器件(2015年5期)2015-12-29 08:43:12
      讀IC卡
      黨員文摘(2014年12期)2014-12-05 20:10:56
      基于視頻抓拍讀寫器的高速公路防倒卡研究
      圖形化儀表控制系統(tǒng)上位機(jī)軟件的設(shè)計(jì)與開發(fā)
      基于隨機(jī)時(shí)隙的RFID讀寫器防沖突方法
      庐江县| 临桂县| 岑溪市| 大丰市| 时尚| 马边| 桑植县| 西乌| 鄢陵县| 黄陵县| 扬中市| 台中市| 孙吴县| 堆龙德庆县| 休宁县| 内黄县| 云浮市| 景洪市| 温宿县| 安远县| 惠东县| 泸州市| 红河县| 夏河县| 正定县| 巴林右旗| 彭泽县| 徐闻县| 中方县| 三亚市| 陆丰市| 彝良县| 江津市| 思南县| 平罗县| 华宁县| 徐闻县| 南和县| 华亭县| 邛崃市| 长泰县|