Mifare 1非接触式IC卡读写核心模块MCM200

2008-03-07 16:21:32来源: 国外电子元器件

  摘要:介绍了Philips公司的Mifare 1非接触IC卡读写器芯片MCM200的主要特性、引脚功能、内部的物理功能寄存器和基本指令集。重点介绍了Mifare 1非接触IC卡和MCM200数据通信的一些重要模块的编程思路和编程方法,给出了两个编程实例。

  关键词:非接触IC卡 MCM200 读写器

  Mifare 1 IC智能(射频)卡的核心是Philips 公司的Mifare 1 IC S50(-01,-02,-03,-04)系列微模块(微晶片)。其相应的读写器模块为Philips公司的MCM200和MCM500。其中,MCM200模块主要应用于操作距离在 25mm的卡片读写器中;MCM500模块主要应用于操作距离在100mm的卡片读写器中。1 MCM200模块的主要特性

  MCM200读写器模块的主要特性如下:

  ●采用标准的双列直插式32引脚封装;

  ●工作频率为13.56MHz,采用标准的+5V电源供电,典型电流消耗为40mA;

  ●读写卡片距离可达25mm以上;

  ●与卡片的通信速率可达106kbps;

  ●每个扇区均包含有3套密码,同时包含有认证密码用的存储器;

  ●有防卡片重叠功能;

  

  

  ●带有16字节的FIFO(先进先出)队列接收/发送缓冲寄存器;

  ●在模块与卡片通信时可自动侦查错误,对数据流可自动分析;

  ●可对RF(射频)通道进行自动监控;

  ●有内建8位/16位CRC协处理器,可提供CRC、PARITY等数据校验;

  ●支持多种方式的活动天线,并且不需天线调节系统即可对天线进行补偿调节;

  ●带有标准的Mifare 并行接口可直接由标准的MCU接口信号控制。

  2 MCM200模块的引脚说明

  MCM200的引脚排列如图1所示。各引脚的功能如下:

  D0~D7:8位双向数据总线;

  A0~A3:4位地址线;

  BP:后备电池输入端,用于保护MCM内部密码RAM;

  NPAUSE1:串行数据输出,用于驱动RF单元,该引脚必须连到RF单元的TP端。

  NWR:写信号使能端;

  NRD:读信号使能端;

  NCS:该脚为低电平时选中MCM;

  KOMP1:RF的比较器输入端,使用时必须连到RF单元的RX端;

  NIRQ:MCU数据处理控制端。当该端为低时,MCU将用MCM状态寄存器中的内容来对MCM中的数据进行处理;

  ALE:地址锁存使能端;

  USEALE:选择从内部地址锁存器或A0~A3引脚取地址;

  DGND:数字电路接地端;

  DVDD:+5V电源端。

  MODE:并行协议模式选择引脚,可用高电平驱动。

  AVDD:+5V模拟电源输入引脚,用于RF射频单元;

  AGND:RF射频单元(模拟电路)接地端;

  NANT、ANT:天线连接端。

  3 MCM200内部特殊功能寄存器

  MCM200器件内部共有16个特殊功能寄存器,表1所列是这16种特殊功能寄存器的地址和读写情况。实际上,MCU主要通过对MCM寄存器的读写来控制MCM的工作。MCM是MCU与非接触式IC卡之间进行信息交换的接口,系统对卡片上的数据进行任何读写均须通过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) 相关的出错标志 接收卡片上数据

  Answer to Request(Request的应答)   TE,BE Tagtype

  Request std 26

  Request all 52

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

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

  Authentication(认证)   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(重储) C2 TE,BE /

  Transfer(传送) B0 TE,BE /

  Halt(停机) 50 TE,BE /

  4 MCM200的指令和软件设计

  MCU通过特殊指令来启动MCM200并运行,同时将这些指令传输到Mifare 1卡片上。MCM200的基本指令集如表2所列。Mifare 1 IC卡与MCM200之间的通信使用握手式半双工通信协议,卡片带有高速CRC协处理器,符合CCITT标准。卡片的ROM中固化了其运行所需的必要程序指令,它能使卡片有条不紊地与卡片读写器进行数据通信。但MCU对MCM200的指令操作通常不是简单的一条指令,而是用一个程序序列来完成,其中包括对MCM200硬件内核寄存器的设置。MCM对IC卡的操作流程如图2所示。现将其中各主要子程序模块的编程方法作以说明。

  

  

  4.1 Request操作子程序

  Request 指令用于通知MCM200在天线有效的工作距离内寻找Mifare 1卡片。如果 Mifare 1卡片存在,就和Mifare 1通信,并读取卡片类型号TAGTYPE(2个字节),然后由MCU根据TAGTYPE区别不同类型的卡片。Request 指令分为Request std指令和Re-quest all指令。Request std指令是连续性的读卡指令。Request all指令是非连续性的读卡指令,只读一次。Request all指令在成功地读取一张卡片之后,会一直等待使用者拿走这一张卡片,直到有新一张卡片进入MCM的天线有效工作范围之内。Request操作的汇编语言程序如下:

  Request: MOV A,#0CH ;设置MCM中的STACON 寄存器为0CH

  MOV R0,#01H

  MOVX @R0,A

  MOV A,#0EH ;设置MCM中的BAU-DRATE寄存器为0EH

  MOV R0,#05H

  MOVX @R0,A

  MOV A,#0C0H ;设置MCM中的ENABLE寄存器为0C0H

  MOV R0,#02H

  MOVX @R0,A

  MOV A,#0C6H ;设置MCM中的MODE寄存器为0C6H

  MOV R0#07H

  MOVX @R0A

  MOV A#02H ;设置MCM中的RCODE

  寄存器为02H

  MOV R0#0EH

  MOVX @R0A

  MOV A#07H ;设置MCM中的BCNTS

  寄存器为07H

  MOV R0#03H

  MOVX @R0A

  MOV A#10H ;设置MCM中的BCNTR

  寄存器为10H

  MOV R0#04H

  MOVX @R0A

  JB F0, RSTD ;根据F0标志判断是执

  行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状态

  MOVX A@R0

  JNB ACC.7RD STACON  TAGTYPE没

  有到FIFO(DV=0)重新读STACON状态

  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 ; 定时计数器溢出错转TE_ERR

  JB ACC.3,BE_ERR ; 位计数器错转BE_ERR

  MOV R0,#00H ;读卡片的卡片类型号TAGTYPE 0存入45H单元

  MOVX A,@R0

  MOV 45HA

  MOV R0,#00H

  MOVX A,@R0 ;读卡片上的卡片类型号TAGTYPE1存入46H单元

  MOV 46H,A

  RET ; RET

  TE_ERR: ;“TE” 错误处理

  RET

  BE_ERR: ; “BE”错误处理

  RET

  4.2 “AntiCollision”防卡片重叠 操作子程序

如果有多张Mifare 1卡片处在卡片读写器的天线工作范围之内,AntiCollision指令将启动AntiColli-sio

[1] [2]

关键字:MOV  非接触IC卡读写器  Mifare  模块  定时计数器  重叠功能  缓冲寄存器

编辑:ssb 引用地址:http://www.eeworld.com.cn/afdz/2008/0307/article_377.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
MOV
非接触IC卡读写器
Mifare
模块
定时计数器
重叠功能
缓冲寄存器

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved