精选优质文档-----倾情为你奉上M1卡的存储结构1、 M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示: 扇区0 块0 数据块0块1数据块1块2数据块2块3密码A 存取控制 密码B控制块3 扇区1块0数据块4块1数据块5块2数据块6块3密码A 存取控制 密码B控制块7 ∶ ∶ ∶ 扇区15 0数据块60 1数据块61 2数据块62 3密码A 存取控制 密码B控制块632、 第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改3、 每个扇区的块0、块1、块2为数据块,可用于存贮数据 数据块可作两种应用:★ 用作一般的数据保存,可以进行读、写操作★ 用作数据值,可以进行初始化值、加值、减值、读值操作4、 每个扇区的块3为控制块,包括了密码A、存取控制、密码B具体结构如下:A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5 密码A(6字节) 存取控制(4字节) 密码B(6字节) 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字节6C20_bC10_b字节7C10C30_b字节8C30C20字节9 ( 注: C10_b表示C10取反 ) 存取控制(4字节,其中字节9为备用字节)结构如下所示: bit 7 6 5 4 3 2 1 0字节6C23_bC22_bC21_bC20_bC13_bC12_bC11_bC10_b字节7C13C12C11C10C33_bC32_bC31_bC30_b字节8C33C32C31C30C23C22C21C20字节9 ( 注: _b表示取反 ) 6、数据块(块0、块1、块2)的存取控制如下: 控制位(X=0..2) 访 问 条 件 (对数据块 0、1、2)C1XC2XC3X Read Write IncrementDecrement, transfer,Restore000KeyA|BKeyA|BKeyA|BKeyA|B010KeyA|BNeverNeverNever100KeyA|BKeyBNeverNever110KeyA|BKeyBKeyBKeyA|B001KeyA|BNeverNeverKeyA|B011KeyBKeyBNeverNever101KeyBNeverNeverNever111NeverNeverNeverNever (KeyA|B 表示密码A或密码B,Never表示任何条件下不能实现) 例如:当块0的存取控制位C10 C20 C30=1 0 0时,验证密码A或密码B正确后可读; 验证密码B正确后可写;不能进行加值、减值操作。
7、控制块块3的存取控制与数据块(块0、1、2)不同,它的存取控制如下:密码A存取控制密码BC13C23C33ReadWrite ReadWriteReadWrite000NeverKeyA|BKeyA|BNeverKeyA|BKeyA|B010NeverNeverKeyA|BNeverKeyA|BNever100NeverKeyBKeyA|BNeverNeverKeyB110NeverNeverKeyA|BNeverNeverNever001NeverKeyA|BKeyA|BKeyA|BKeyA|BKeyA|B011NeverKeyBKeyA|BKeyBNeverKeyB101NeverNeverKeyA|BKeyBNeverNever111NeverNeverKeyA|BNeverNeverNever 例如:当块3的存取控制位C13 C23 C33=1 0 0时,表示: 密码A:不可读,验证KEYA或KEYB正确后,可写(更改) 存取控制:验证KEYA或KEYB正确后,可读、可写 密码B:验证KEYA或KEYB正确后,可读、可写。
专心---专注---专业。