一、
数值块结构:
字节号 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 描述 value value value addr addr addr addr 注意:值(带有下划线):两次正值,一次取反;地址:两次正值,两次取反。
控制块具体结构如下:
A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5
密码A ( 6字节 ) | 存取控制 ( 4字节 ) | 密码B ( 6字节)
扇区中的每个块(保存数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:
块0: C10 C20 C30
块1: C11 C21 C31
块2: C12 C22 C33
块3: C13 C23 C33
存取控制的4个字节与存取控制位关系如下:
注意:_b表示取反
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 0 1 1 0 1 0 0 1 例如:
FF 07 80 69的二进制码如下:
FF 1111 1111
07 0000 0111
80 1000 0000
69 0110 1001 从中可以提取出各个控制位如下:
块0: 000 块1: 000 块2: 000 块3: 001
数据块的控制位与访问条件:
控制位
访问条件(验证哪个密码) C1
C2
C3
读
写 加值
减值(含传输和存储)
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
控制块(每个扇区的区尾块)的存取控制如下表所示:
控制位
密码A
存取控制
密码B
C1
C2
C3
读
写
读
写
读
写
0
0
0
Never
KeyA
KeyA
Never
KeyA
KeyA
0
1
0
Never
Never
KeyA
Never
KeyA
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
KeyA
KeyA
KeyA
KeyA
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
根据这两个表可知存取控制FF 07 80 69 的控制位000(数据块),和001(控制块)的权限,即
对块0,1,2 :
0
0
0
KeyA|B
KeyA|B
KeyA|B
KeyA|B
对块3:
0
0
1
Never
KeyA
KeyA
KeyA
KeyA
KeyA