IC卡计数方法
发布时间:2013-04-26 来源:未知
IC卡计数方法:
在67-103地址单元中分为5个不可重置8单元计数器,芯片初始化时,72-103地址单元所对应的4个较低的8单元计数器中可以放0到8个“1”而67-71地址单元所对应的第5个计数器可以放0到5个“1”。所谓计数一次,就是将一个单元从“1”写成“0”。一个计数器中8位全为“0”后,要计数,需借位操作,即将高位计数器的一位从“1”写成“0”而相应其低位计数器整个字节从“0”擦除成“1”。可见4个8单元计数器如此逐一递减,其还不错大计数为8的4次方=4096。第5个计数器中5个单元因处在还不错高位只能被写“0”无法擦成“1”。因此只能计数5次。故芯片总计数为5X4096=20480。当全部计数单元(地址67-103)都被写成“0”时,卡片就用完了,不过,芯片出厂初始化时,初置的计数值由国家不同和卡片面值不同而不同,如100元卡初置计数值为1000。
举例:
100元(1000计数单元预置初始值).
--------
Byte9
Byte10
Byte11
Byte12
Byte13
--------------------------------------------------------------
000000 - 00000001 - 01111111 - 00011111 - 00000000
--------------------------------------------------------------
(3)octal (6)octal (7)octal (1)octal (2)octal
--------------------------------------------------------------
Value = 0*8^4 + 1*8^3 + 7*8^2 + 5*8^1 + 0*8^
--------------------------------------------------------------
总值 = 1000 UnitsⅠ-5)内存数据:字节
位
二进制 十六进制
+-----------+-----+ 1
1 --> 8 |
|
|
+-----------+-----+ 2
9 --> 16 | 0010 1111 | $2F | ---> 德国
| 0011 0111 | $37 | ---> 西班牙
| 0011 1011 | $3B | ---> 希腊
+-----------+-----+ 3
17 --> 24 |
|
| 4
25 --> 32 |
|
| ---> 出厂编号(写保护) 5
33 --> 40 |
|
| 6
41 --> 48 |
|
| 7
49 --> 56 |
|
| 8
57 --> 64 |
|
|
+-----------+-----+ 9
65 --> 72 |
|
| ---> c4096 )10
73 --> 80 |
|
| ---> c512 )11
81 --> 88 |
|
| ---> c64 ) 5个8进制计数区12
89 --> 96 |
|
| --->
c8 )13
97 --> 104 |
|
| --->
c0 )
+-----------+-----+ 14
105 --> 112 | 1111 1111 | $FF |15
113 --> 120 | 1111 1111 | $FF | ---> 所有位都为116
120 --> 128 | 1111 1111 | $FF |
+-----------+-----+