新闻  |   论坛  |   博客  |   在线研讨会
IC卡计数方法:
zhchxgh | 2009-07-10 17:03:30    阅读:1482   发布文章

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 | ---> 所有位都为"1"
16     120 --> 128 | 1111 1111 | $FF |
                    +-----------+-----+

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客