logo
新闻资讯
新闻资讯

新闻资讯
新闻资讯 当前位置:首页>新闻资讯
德科小课堂-聊一聊NFC卡片中的M1卡

本文希望可以帮助开发者,了解M1卡的性能指标以及如何对M1卡进行读写操作。然后给出一个设计实例,如何使用德科 DK25R-ANT  NFC读写模块来对M1卡进行读写操作。

什么是NFC

NFC卡是一种工作在13.56MHz,内部集成了NFC芯片的一种卡片。作为一种非接触式的卡片,它的读写距离在10cm以内,是一种近场通讯的加密卡片

如果按照协议分类的话,NFC卡片可以分为ISO14443A、ISO14443B、ISO15693及Felica四类协议卡片,其中ISO14443协议包含ISO14443-P3及ISO14443-P4(可同时寻多张卡). 

什么是M1

M1卡全称Mifare1,由NXP推出,可分为S50S70两种型号,国内使用较多的是复旦微的S50

 

M1S50主要指标:

容量为8KEEPROM

分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位

每个扇区有独立的一组密码及访问控制

每张卡有唯一序列号,为32

具有防冲突机制,支持多卡操作

无电源,自带天线,内含加密控制逻辑和通讯逻辑电路

数据保存期为10年,可改写10万次,读无限次

工作温度:-20~50(湿度为90%)

工作频率:13.56MHZ

通信速率:106 KBPS

读写距离:10 cm以内(与读写器有关)

下面我们来介绍M1卡的存储结构

1、 M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:







0


数据块

0

扇区0  

1


数据块

1


2


数据块

2


3

密码A   存取控制   密码B

控制块

3


0


数据块

4

扇区1

1


数据块

5


2


数据块

6


3

密码A   存取控制   密码B

控制块

7



 

            

      

      

 




  0


数据块

60

扇区15  

  1


数据块

61


  2


数据块

62


  3

密码A    存取控制   密码B

控制块

63

2、 0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。

3、 每个扇区的块0、块1、块2数据块,可用于存贮数据。

   数据块可作两种应用:

★ 用作一般的数据保存,可以进行操作。

★ 用作数据值,可以进行初始化值、加值、减值、读值操作。

4、 每个扇区的块3控制块,包括了密码A、存取控制、密码B。具体结构如下:


本文希望可以帮助开发者,了解M1卡的性能指标以及如何对M1卡进行读写操作。然后给出一个设计实例,如何使用德科 DK25R-ANT  NFC读写模块来对M1卡进行读写操作。

什么是NFC

NFC卡是一种工作在13.56MHz,内部集成了NFC芯片的一种卡片。作为一种非接触式的卡片,它的读写距离在10cm以内,是一种近场通讯的加密卡片

如果按照协议分类的话,NFC卡片可以分为ISO14443A、ISO14443B、ISO15693及Felica四类协议卡片,其中ISO14443协议包含ISO14443-P3及ISO14443-P4(可同时寻多张卡).  

什么是M1

M1卡全称Mifare1,由NXP推出,可分为S50S70两种型号,国内使用较多的是复旦微的S50

 

M1S50主要指标:

容量为8KEEPROM

分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位

每个扇区有独立的一组密码及访问控制

每张卡有唯一序列号,为32

具有防冲突机制,支持多卡操作

无电源,自带天线,内含加密控制逻辑和通讯逻辑电路

数据保存期为10年,可改写10万次,读无限次

工作温度:-20~50(湿度为90%)

工作频率:13.56MHZ

通信速率:106 KBPS

读写距离:10 cm以内(与读写器有关)

下面我们来介绍M1卡的存储结构

 1、 M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示: 







0


数据块

0

扇区0  

1


数据块

1


2


数据块

2


3

密码A   存取控制   密码B

控制块

3


0


数据块

4

扇区1

1


数据块

5


2


数据块

6


3

密码A   存取控制   密码B

控制块

7



 

            

      

      

 




  0


数据块

60

扇区15  

  1


数据块

61


  2


数据块

62


  3

密码A    存取控制   密码B

控制块

63

2、 0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。

3、 每个扇区的块0、块1、块2数据块,可用于存贮数据。

   数据块可作两种应用:

★ 用作一般的数据保存,可以进行操作。

★ 用作数据值,可以进行初始化值、加值、减值、读值操作。

4、 每个扇区的块3控制块,包括了密码A、存取控制、密码B。具体结构如下:


 

 

            密码A6字节)  存取控制(4字节) 密码B6字节)  

5、 每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:

   

          0:   C10   C20   C30

          1:   C11   C21   C31

          2:   C12   C22   C32

          3:   C13   C23   C33

 

  三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如  

  进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制

  位在存取控制字节中的位置,以块0为例:

   对块0的控制:

           bit  7    6     5       4     3      2      1      0

字节6




C20_b




C10_b

字节7




C10




C30_b

字节8




C30




C20

字节9









                ( 注: C10_b表示C10取反 )

      存取控制(4字节,其中字节9为备用字节)结构如下所示:

          bit  7    6      5       4     3      2      1      0

字节6

C23_b

C22_b

C21_b

C20_b

C13_b

C12_b

C11_b

C10_b

字节7

C13

C12

C11

C10

C33_b

C32_b

C31_b

C30_b

字节8

C33

C32

C31

C30

C23

C22

C21

C20

字节9









                     ( 注: _b表示取反 )

    6数据块(块0、块1、块2)的存取控制如下:

  控制位(X=0..2

  

         访 (对数据块 012

C1X

C2X

C3X

 Read

 Write

Increment

Decrement, transfer,

Restore

0

0

0

KeyA|B

KeyA|B

KeyA|B

KeyA|B

0

1

0

KeyA|B

Never

Never

Never

1

0

0

KeyA|B

KeyB

Never

Never

1

1

0

KeyA|B

KeyB

KeyB

KeyA|B

0

0

1

KeyA|B

Never

Never

KeyA|B

0

1

1

KeyB

KeyB

Never

Never

1

0

1

KeyB

Never

Never

Never

1

1

1

Never

Never

Never

Never

     KeyA|B 表示密码A或密码BNever表示任何条件下不能实现)

 

  例如:当块0的存取控制位C10 C20 C30=1 0 0时,验证密码A或密码B正确后可读;

        验证密码B正确后可写;不能进行加值、减值操作。

    7控制块3的存取控制与数据块(块012)不同,它的存取控制如下:

 




密码A

存取控制

密码B

C13

C23

C33

Read

Write

Read

Write

Read

Write

0

0

0

Never

KeyA|B

KeyA|B

Never

KeyA|B

KeyA|B

0

1

0

Never

Never

KeyA|B

Never

KeyA|B

Never

1

0

0

Never

KeyB

KeyA|B

Never

Never

KeyB

1

1

0

Never

Never

KeyA|B

Never

Never

Never

0

0

1

Never

KeyA|B

KeyA|B

KeyA|B

KeyA|B

KeyA|B

0

1

1

Never

KeyB

KeyA|B

KeyB

Never

KeyB

1

0

1

Never

Never

KeyA|B

KeyB

Never

Never

1

1

1

Never

Never

KeyA|B

Never

Never

Never

   例如:当块3的存取控制位C13 C23 C33=1 0 0时,表示:

           密码A:不可读,验证KEYAKEYB正确后,可写(更改)。

         存取控制:验证KEYAKEYB正确后,可读、可写。

           密码B:验证KEYAKEYB正确后,可读、可写。

对M1卡进行读写操作实例

实例:如何使用德科DK25R-ANT读写模块来对M1卡进行读写、加密操作


 

 

DK25R-ANT模块:DK25R-ANT德科物联自主研发的一款基于13.56MHz的高频卡读写模块,支持ISO14443AISO14443B等协议的卡片类型,支持APDU指令通道。模块采用UART通讯接口,兼容性好,通用性强。用户通过UART向模块发送简单指令实现对NFC卡片进行读写操作,使得用户高效快速开发NFC读写功能产品。

1. 准备一张M1白卡、一个usb转串口模块、DK25R-ANT模块

2. 连线

  

注意:模块TXRX需要与USB转串口模块的TXRX反接,VCC5V

3.通电后,打开串口工具,选择串口号,选择115200波特率,勾选HEX接收发送,点击打开。

 

3. M1卡放在读卡器上方,对M1卡块4写入数据00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

 

 

返回AA01FE表示写卡成功。

4. 对块4的数据进行读数操作

 

 

返回块4数据与我们写入块4数据一致。

总结:

希望这篇文章,可以帮助您了解M1卡的性能指标和存储结构以及如何使用NFC读写模组对M1卡进行读写操作。如您对DK25R-ANT模块如何对M1卡进行加密解密操作感兴趣,可以登陆德科物联官网(www.derkiot.com下载DK25R-ANT模块规格书查看。

深圳市德科物联技术有限公司成立于2016年,是一家专注高频RFID智能识别与物联网传输解决方案的国家高新技术产业;给客户提供从芯片,模块方案到产品的多项服务。公司汇聚了一直专业高效的研发团队,专注于13.56MHz高频读写技术和物联网传输技术的研究,目前已推出多款产品广泛应用在身份识别、智慧社区、智慧门禁、智慧酒店等应用领域。如您有NFC卡片标签、13.56MHz高频读写模块可联系商务18779791642(李生)。