M1卡操作

本文主要介绍了M1卡的结构,包括16个扇区、数据块和控制块的详细信息,以及存取控制规则。同时,提供了读取和验证密码的示例代码,帮助理解M1卡的操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近公司的一个小项目,使用的M1卡,这里是对这几天的一个总结!

首先根绝项目提供的手册,简单介绍一下M1卡的构成:

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

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

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

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

5:每个扇区的块0、块1、块2为数据块,可用于存贮数据

6:块号的排序为0~31

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

   数据块可作两种应用:

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

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

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

A0 A1 A2 A3 A4 A5   FF 07 80 69     B0 B1 B2 B3 B4 B5

 密码A(6字节) 存取控制(4字节) 密码B(6字节) 

 

3、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为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

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值