国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

Mifare 1非接觸式IC卡讀寫核心模塊MCM200

發(fā)布時(shí)間:2010-12-14 19:15    發(fā)布者:designer
關(guān)鍵詞: IC卡 , MCM200 , Mifare , 非接觸式
介紹了Philips公司的Mifare 1非接觸IC卡讀寫器芯片MCM200的主要特性、引腳功能、內(nèi)部的物理功能寄存器和基本指令集。重點(diǎn)介紹了Mifare 1非接觸IC卡和MCM200數(shù)據(jù)通信的一些重要模塊的編程思路和編程方法,給出了兩個(gè)編程實(shí)例。

Mifare 1 IC智能(射頻)卡的核心是Philips 公司的Mifare 1 IC S50(-01,-02,-03,-04)系列微模塊(微晶片)。其相應(yīng)的讀寫器模塊為Philips公司的MCM200和MCM500。其中,MCM200模塊主要應(yīng)用于操作距離在 25mm的卡片讀寫器中;MCM500模塊主要應(yīng)用于操作距離在100mm的卡片讀寫器中。1 MCM200模塊的主要特性

MCM200讀寫器模塊的主要特性如下:

●采用標(biāo)準(zhǔn)的雙列直插式32引腳封裝;

●工作頻率為13.56MHz,采用標(biāo)準(zhǔn)的+5V電源供電,典型電流消耗為40mA;

●讀寫卡片距離可達(dá)25mm以上;

●與卡片的通信速率可達(dá)106kbps;

●每個(gè)扇區(qū)均包含有3套密碼,同時(shí)包含有認(rèn)證密碼用的存儲(chǔ)器;

●有防卡片重疊功能;







●帶有16字節(jié)的FIFO(先進(jìn)先出)隊(duì)列接收/發(fā)送緩沖寄存器;

●在模塊與卡片通信時(shí)可自動(dòng)偵查錯(cuò)誤,對(duì)數(shù)據(jù)流可自動(dòng)分析;

●可對(duì)RF(射頻)通道進(jìn)行自動(dòng)監(jiān)控;

●有內(nèi)建8位/16位CRC協(xié)處理器,可提供CRC、ARITY等數(shù)據(jù)校驗(yàn);

●支持多種方式的活動(dòng)天線,并且不需天線調(diào)節(jié)系統(tǒng)即可對(duì)天線進(jìn)行補(bǔ)償調(diào)節(jié);

●帶有標(biāo)準(zhǔn)的Mifare 并行接口?可直接由標(biāo)準(zhǔn)的MCU接口信號(hào)控制。

2 MCM200模塊的引腳說明

MCM200的引腳排列如圖1所示。各引腳的功能如下:

D0~D7:8位雙向數(shù)據(jù)總線;

A0~A3:4位地址線;

BP:后備電池輸入端,用于保護(hù)MCM內(nèi)部密碼RAM;

NPAUSE1:串行數(shù)據(jù)輸出,用于驅(qū)動(dòng)RF單元,該引腳必須連到RF單元的TP端。

NWR:寫信號(hào)使能端;

NRD:讀信號(hào)使能端;

NCS:該腳為低電平時(shí)選中MCM;

KOMP1:RF的比較器輸入端,使用時(shí)必須連到RF單元的RX端;

NIRQ:MCU數(shù)據(jù)處理控制端。當(dāng)該端為低時(shí),MCU將用MCM狀態(tài)寄存器中的內(nèi)容來對(duì)MCM中的數(shù)據(jù)進(jìn)行處理;

ALE:地址鎖存使能端;

USEALE:選擇從內(nèi)部地址鎖存器或A0~A3引腳取地址;

DGND:數(shù)字電路接地端;

DVDD:+5V電源端。

MODE:并行協(xié)議模式選擇引腳,可用高電平驅(qū)動(dòng)。

AVDD:+5V模擬電源輸入引腳,用于RF射頻單元;

AGND:RF射頻單元(模擬電路)接地端;

NANT、ANT:天線連接端。

3 MCM200內(nèi)部特殊功能寄存器

MCM200器件內(nèi)部共有16個(gè)特殊功能寄存器,表1所列是這16種特殊功能寄存器的地址和讀寫情況。實(shí)際上,MCU主要通過對(duì)MCM寄存器的讀寫來控制MCM的工作。MCM是MCU與非接觸式IC卡之間進(jìn)行信息交換的接口,系統(tǒng)對(duì)卡片上的數(shù)據(jù)進(jìn)行任何讀寫均須通過MCM 來傳遞。

表1 MCU200中的物理功能寄存器

寄存器名 地 址 讀(READ) 寫(WRITE)

DATA 00H READ-BYTE WRITE-BYTE

STACON 01H DV TE PE CE BE AE - - - - SOR RFS - - - - 1 1 NRF AC

ENABLE 02H N/A 1 PR CE CR - - - - - - - -

BCNTS 03H N/A BIT-COUNT-SEND

BCNTR 04H N/A BIT-COUNT-RECEIVE

BAUDRATE 05H N/A - - - - - - - - 1 1 1 BR

TOC 06H N/A TIMEOUT-COUNTER

MODE 07H N/A 1 1 0 0 0 P2 P1 P0 P0

CRCDATA 08H CRC-BYTE-READ CRC-BYTE-WRITE

CRCSTACON 09H CV - - - - - - - - - - - - CZ C8 - - - - - - - - - - - - CR

KEYDATA 0AH N/A KEY-BYTE-WRITE

KEYSTACON 0BH - - - - - - - - - - - - - - - - AL 0 - - - - - - - - KS1 KS0

KEYADDR 0CH N/A AL AB A5 A4 A3 A2 A1 A0

0DH   

RCODE 0EH N/A - - - - - - - - 0 0 RC1 RC0

表2 MCM2000的基本指令集

指 令 指令代碼(hex) 相關(guān)的出錯(cuò)標(biāo)志 接收卡片上數(shù)據(jù)

Answer to Request(Request的應(yīng)答)   TE,BE Tagtype

Request std 26

Request all 52

AntiCollision(防重疊) 93 TE,BE Serial Number

Select Tag(選卡片) 93 TE,BE,PE,CE Size

Authentication(認(rèn)證)   TE,BE,PE,CE /

Auth-1a 60

Auth-1b 61

Load KEY(存取密碼) / AE  

Read(讀) 30 TE,BE,PE,CE Data

Write(寫) A0 TE,BE /

Increment(增值) C1 TE,BE /

Decrement(減值) C0 TE,BE /

Restore(重儲(chǔ)) C2 TE,BE /

Transfer(傳送) B0 TE,BE /

Halt(停機(jī)) 50 TE,BE /

4 MCM200的指令和軟件設(shè)計(jì)

MCU通過特殊指令來啟動(dòng)MCM200并運(yùn)行,同時(shí)將這些指令傳輸?shù)組ifare 1卡片上。MCM200的基本指令集如表2所列。Mifare 1 IC卡與MCM200之間的通信使用握手式半雙工通信協(xié)議,卡片帶有高速CRC協(xié)處理器,符合CCITT標(biāo)準(zhǔn)。卡片的ROM中固化了其運(yùn)行所需的必要程序指令,它能使卡片有條不紊地與卡片讀寫器進(jìn)行數(shù)據(jù)通信。但MCU對(duì)MCM200的指令操作通常不是簡(jiǎn)單的一條指令,而是用一個(gè)程序序列來完成,其中包括對(duì)MCM200硬件內(nèi)核寄存器的設(shè)置。MCM對(duì)IC卡的操作流程如圖2所示。現(xiàn)將其中各主要子程序模塊的編程方法作以說明。







4.1 Request操作子程序

Request 指令用于通知MCM200在天線有效的工作距離內(nèi)尋找Mifare 1卡片。如果 Mifare 1卡片存在,就和Mifare 1通信,并讀取卡片類型號(hào)TAGTYPE(2個(gè)字節(jié)),然后由MCU根據(jù)TAGTYPE區(qū)別不同類型的卡片。Request 指令分為Request std指令和Re-quest all指令。Request std指令是連續(xù)性的讀卡指令。Request all指令是非連續(xù)性的讀卡指令,只讀一次。Request all指令在成功地讀取一張卡片之后,會(huì)一直等待使用者拿走這一張卡片,直到有新一張卡片進(jìn)入MCM的天線有效工作范圍之內(nèi)。Request操作的匯編語言程序如下:

Request: MOV A,#0CH ?;設(shè)置MCM中的STACON 寄存器為0CH

MOV R0,#01H

MOVX @R0,A

MOV A,#0EH ?;設(shè)置MCM中的BAU-DRATE寄存器為0EH

MOV R0,#05H

MOVX @R0,A

MOV A,#0C0H ;設(shè)置MCM中的ENABLE寄存器為0C0H

MOV R0,#02H

MOVX @R0,A

MOV A,#0C6H ?;設(shè)置MCM中的MODE寄存器為0C6H

MOV R0?#07H

MOVX @R0?A

MOV A?#02H ;設(shè)置MCM中的RCODE

寄存器為02H

MOV R0?#0EH

MOVX @R0?A

MOV A?#07H ;設(shè)置MCM中的BCNT
   

S

寄存器為07H

MOV R0?#03H

MOVX @R0?A

MOV A?#10H ;設(shè)置MCM中的BCNTR

寄存器為?10H

MOV R0?#04H

MOVX @R0?A

JB F0, RSTD ;根據(jù)F0標(biāo)志判斷是執(zhí)

行Request std操作還是

Request all操作

REQALL? MOV A?#52H ;Request all指令代碼→A

AJMP RQTMCM

RSTD: MOV A?#26H ;Request std 指令代碼→A

RQTMCM?MOV R0?#00H

MOVX @R0?A ;Request all指令或Request

std 指令寫入DATA

MOV A? #0AH ?TOC = 0AH

MOV R0?#06H

MOVX @R0?A

MOV R0?#01H ;讀STACON狀態(tài)

MOVX A?@R0

JNB ACC.7?RD STACON ? TAGTYPE沒

有到FIFO(DV=0)?重新讀STACON狀態(tài)

MOV R7,A ? stacon值暫存在R7中

MOV A, #00H ?TOC=00H

MOV R0,#06H

MOVX @R0,A

MOV A,R7 ;取暫存在R7中stacon值到A

JB ACC.6?TE_ERR ?; 定時(shí)計(jì)數(shù)器溢出錯(cuò)轉(zhuǎn)TE_ERR

JB ACC.3,BE_ERR ?; 位計(jì)數(shù)器錯(cuò)轉(zhuǎn)BE_ERR

MOV R0,#00H ;讀卡片的卡片類型號(hào)TAGTYPE 0存入45H單元

MOVX A,@R0

MOV 45H?A

MOV R0,#00H

MOVX A,@R0 ;讀卡片上的卡片類型號(hào)TAGTYPE1存入46H單元

MOV 46H,A

RET ?; RET

TE_ERR: ?;“TE” 錯(cuò)誤處理

RET

BE_ERR: ?; “BE”錯(cuò)誤處理

RET

4.2 “AntiCollision”?防卡片重疊  操作子程序

如果有多張Mifare 1卡片處在卡片讀寫器的天線工作范圍之內(nèi),AntiCollision指令將啟動(dòng)AntiColli-sion模塊的防重疊功能,同時(shí)MCM200將有序地讀所有處在其天線有效工作距離內(nèi)的Mifare 1卡片的40bit長(zhǎng)的序列號(hào)SN。MCU接收到這5個(gè)字節(jié)的SN后,會(huì)進(jìn)行校驗(yàn)。其校驗(yàn)、計(jì)算卡片序列號(hào)的方法是:采用相鄰兩個(gè)字節(jié)相互異或得出的結(jié)果與下一個(gè)字節(jié)再異或,前四個(gè)字節(jié)異或的結(jié)果與第5個(gè)字節(jié)應(yīng)該相同,否則認(rèn)為MCU讀到的卡片的序列號(hào)有錯(cuò),因此卡片的序列號(hào)的前四個(gè)字節(jié)是有意義的,第5個(gè)字節(jié)僅僅用于校驗(yàn)之用。這五個(gè)字節(jié)被存儲(chǔ)在IC卡片的第0扇區(qū)的第0塊中,它由卡片的生產(chǎn)商制定并固化,不得更改,所以在市面上流通的Mifare 1 S50系列的非接觸式IC射頻卡中,每一張卡片的序列號(hào)都是唯一的。“AntiCollision”?防卡片重疊  操作子程序清單如下:

anti? NOP

MOV A? #10H ?BCNTS = 10H,控制

MCU向DATA寄存器

發(fā)送 2個(gè)字節(jié)數(shù)據(jù)

MOV R0?#03H

MOVX @R0?A

MOV A? #0CH ;設(shè)置MCM中的

STACON寄存器

SETB ACC.0 ?AC =“1”,啟動(dòng)防重

疊狀態(tài)機(jī)

MOV R0?#01H

MOVX @R0?A

ACALL D1000US ?DELAY 1000US

MOV A? #93H ;AntiCollision?防卡片

重疊 指令碼寫入DATA

MOV R0?#00H

MOVX @R0?A

MOV A? #20H

MOV R0?#00H

MOVX @R0?A

MOV A? #28H

MOV R0?#04H

MOVX @R0?A ?BCNTR = 28H ,接

收5個(gè)字節(jié)的數(shù)據(jù)

MOV A? #0AH

MOV R0?#06H

MOVX @R0?A ?TOC = 0AH

MOV R0?#01H

AGAIN: MOVX A?@R0 ? 讀STACON狀態(tài)

JNB ACC.7? AGAIN ?如果 DV=“0”重

讀STACON

MOV R7,A

MOV A? #00H

MOV R0?#06H

MOVX @R0?A ?TOC = 00H

MOV A,R7

JB ACC.6? TE ERR ? 定時(shí)計(jì)數(shù)器溢出

錯(cuò)轉(zhuǎn)TE ERR

JB ACC.3? BE ERR ?位計(jì)數(shù)器錯(cuò)轉(zhuǎn)

BE ERR

MOV R7?#04H ?讀4個(gè)字節(jié)的SN值

存入40H~43H單元,

前四個(gè)字節(jié)進(jìn)行異或

MOV B?#00H

MOV R1?#40H

MOV R0?#00H

LOOP? MOVX A?@R0

MOV @R1?A ?存SN的前四個(gè)字節(jié)在

單片機(jī)內(nèi)部RAM的

40H?41H?42H?43H單元

XRL B?A ?相鄰字節(jié)相互異或

INC R1

DJNZ R7? LOOP

MOVX A?@R0 ?前四個(gè)字節(jié)異或的結(jié)

果和接收的第5個(gè)字

節(jié)進(jìn)行比較,若不等則

XRL A?B 轉(zhuǎn)錯(cuò)誤處理

JNZ ANTIERR

RET

TE ERR?

RET

BE ERR?

RET

ANTIERR:

RET

4.3 “Select”?選卡片  操作子程序

該程序用于MCM200與卡片的真正聯(lián)絡(luò)。選擇一張卡片通常由MCU向MCM200發(fā)送“SELECT”命令來完成。MCU發(fā)送“SELECT”命令后,會(huì)同時(shí)在“AntiCollision” 操作中得到Mifare 1卡片的40bit長(zhǎng)的序列號(hào)的前四個(gè)字節(jié)以及前四個(gè)字節(jié)的異或結(jié)果,同時(shí)再重新發(fā)送給Mifare 1卡,只有本身的序列號(hào)和接收的序列號(hào)相同的卡片才被真正地選中。Select指令成功執(zhí)行后,MCU將得到MCM DATA寄存器傳來的一個(gè)字節(jié)長(zhǎng)的卡片容量信息(SIZE字節(jié))。SIZE字節(jié)被存儲(chǔ)在Mifare 1卡片上的第00H扇區(qū)中的第00h 塊中。

4.4 “Authentication”認(rèn)證操作子程序

Mifare 1卡的每個(gè)扇區(qū)的塊3包含該扇區(qū)的密碼A?6個(gè)字節(jié) 、存取控制?4個(gè)字節(jié) 、密碼B?6個(gè)字節(jié) ,它是一個(gè)特殊的塊。在確認(rèn)了上述三個(gè)步驟后,就表示已經(jīng)選擇了一張卡片,在對(duì)卡片進(jìn)行讀寫操作之前,還必須對(duì)卡片上已經(jīng)設(shè)置的密碼進(jìn)行認(rèn)證,如果匹配,則允許進(jìn)一步的Read/Write操作。也可以通過選擇存儲(chǔ)在MCM的RAM密碼集中的一組密碼來進(jìn)行認(rèn)證操作。MCM能夠存儲(chǔ)3個(gè)密碼集KEYSET0、KEYSET1和KEYSET2。每一個(gè)KEYSET又包含了KEYA及KEYB 等。在"Authentication"指令發(fā)出之前,必須設(shè)置密碼控制寄存器KEYSTACON,使AL=1,然后設(shè)置KS0和KS1以指定一套密碼集。同時(shí),還必須設(shè)置密碼地址寄存器KEYADDR,當(dāng)AB為“1”時(shí),選擇KEYA,AB為“0”時(shí)選擇KEYB,A5~A0用于選擇MCM-RAM中存放密碼的扇區(qū)地址(0~63), KEYADDR寄存器中的“AB”設(shè)置必須匹配"Authentication"命令,因?yàn)樵冢uthentication"命令中,60h代碼用于認(rèn)證KEYA;61h代碼用于認(rèn)證KEYB。正確地設(shè)置KEYSTACON 和KEYADDR寄存器之后,通過寫"Authentication" 認(rèn)證命令代碼和寫“地址”(Mifare  
   

卡要認(rèn)證的扇區(qū)地址是0~15)到DATA寄存器?認(rèn)證密碼操作的模塊便開始啟動(dòng)執(zhí)行。如果三遍認(rèn)證的每一個(gè)環(huán)都為“真”,且都能正確通過驗(yàn)證,則整個(gè)認(rèn)證成功。這時(shí)讀寫器即可對(duì)剛剛認(rèn)證通過的卡片上的這個(gè)扇區(qū)進(jìn)行下一步READ/WRITE 等操作。

4.5 “Read"或“Write"操作子程序

Read指令允許MCU通過MCM來讀取Mifare 1卡片上完整的16個(gè)Bytes的數(shù)據(jù)塊。Read指令操作只能一個(gè)塊(Block)一個(gè)塊地讀,即一次只能讀取16個(gè)字節(jié)。如果只要求讀取某Block中的幾個(gè)字節(jié)的數(shù)據(jù),也只能一個(gè)整塊16個(gè)字節(jié)一起讀取,再由程序員選取指定的字節(jié)。從卡片上讀到的數(shù)據(jù)必須由MCU進(jìn)行校驗(yàn),以確保數(shù)據(jù)的有效。

“Write” 寫指令允許用戶寫數(shù)據(jù)到MIFARE卡片上(完整的16 個(gè)BYTEs的數(shù)據(jù)塊)。只有在“Authentication” 認(rèn)證指令完成后,才允許對(duì)數(shù)據(jù)扇區(qū)或數(shù)據(jù)塊進(jìn)行“Write”寫指令操作。寫入的數(shù)據(jù)塊的數(shù)據(jù)結(jié)構(gòu)如下:

15 14 13 12 11 10 9 8

address address address address V A L UE

7 6 5 4 3 2 1 0

V A L UE V A L UE

通過一個(gè)寫操作可將存儲(chǔ)的數(shù)據(jù)在每一個(gè)block塊中寫3次并反寫1次,從而完成數(shù)據(jù)塊的初始化。塊的地址必須寫4次,其中2次為反向?qū)懭?#65377;正/負(fù)數(shù)據(jù)值將以標(biāo)準(zhǔn)的二進(jìn)制補(bǔ)碼格式來表示。

4.6 “Increment”或 “Decrement”增值或減值子程序

通過Mifare 1內(nèi)部電路能夠執(zhí)行“Increment” &“Decrement”增值/減值操作,在根據(jù)KEY A 和KEY B 進(jìn)行“Increment”&“Decrement”增值/減值操作時(shí); “Increment”增值表示將指定的值加到卡片的存儲(chǔ)器中;“Decrement”減值則表示從卡片的存儲(chǔ)器中減去指定的值。每一個(gè)“Increment”& “Decrement”增值/減值操作都必須跟隨一條“Transfer” 傳送指令,這樣才能真正地將數(shù)據(jù)結(jié)果傳送到卡片上。如果沒有傳送指令,數(shù)據(jù)結(jié)果仍將保持在數(shù)據(jù)緩沖寄存器中。
本文地址:http://m.qingdxww.cn/thread-46752-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 色哟哟久久| 三级黄色片免费看| 我要色导航| 秋霞鲁丝片Av无码| 亚洲欧美中文字幕5发布| 四虎影视最新网站在线播放| 亚洲欧洲日韩国产aa色大片| 奇米网狠狠网| 午夜小影院| 思思99热在线观看精品| 一个人看的视频www免费| videossex性暴力| 久久这里都是精品| 亚洲 日韩经典 中文字幕| 天天操操操操操操| 青青青国产手机在线播放| 色黄网站| 色天天综合久久久久综合片| 一个人免费观看的www视频| 国产一区二区三区影院| 三级网站视频在线观看| 四虎精品永久免费| 色综合久久网| 天天干夜夜草| 婷婷色天使在线视频观看| 中文字幕在线天堂| 国产日韩成人内射视频| 日韩中文字幕欧美在线视频| 色综合久久88色综合天天小说| 亚洲国产精品一区二区三区在线观看 | 日本精品久久无码影院| 天天看天天爽| 日本免费网站视频| 一级一片一a一片| 亚洲欧美影院| se01短视频在线观看| 欧美男同gay粗大又长| 永久免费精品精品永久-夜色| 天天爽天天爽| 日日摸日日碰| 爽爽影院在线看|