0

这不清楚,我必须作为命令发送什么?这是否意味着我必须分两步发送?(它是一个连接到 PC 的 USB 硬件,我可以发送命令以获取信息)

1)第一个必须是 00 A4 08 0c 04 df 01 40 31 {LC?? what does it mean}

2) 第二个必须是 00 b0 xx yy zz{xx 和 yy 和 zz 到底是什么??}

参考说法如下:

To select those files, you have to use:

00 A4 08 0c 04 df 01 40 xx Lc
00                         : ISO CLAss (~standard ISO)
   A4                      : ISO file_select INStruction
      08 0c                : P1 P2 for this operation (otherwise you get an error...)
            04             : length of the 'path'
               df 01       : directory for Id data
                     40 xx : the files id
                        31 : owner's identity (names, birth,...)
                        33 : owner's address
                        35 : owner's picture
                           Lc is the expected answer length (?)

Once the file is successfully selected (SW1:SW2 == 90:00), 
one can 'binary_read' the content with

00 b0 xx yy zz
00                         : ISO CLAss (~standard ISO APDU)
   b0                      : ISO read_binary INStruction
      xx yy                : offset in the file (256*xx)+yy
            zz             : number of bytes to read
4

1 回答 1

0

规范中的注释清楚地回答了您的问题。

Lc是响应的预期长度。

在'binary_read'中,xxyy分别是文件偏移量的16位值的MSB和LSB,并且zz是要读取的块的字节长度。

如果要计算偏移量n,则:

xx = n / 256 ;
yy = n % 256 ;

或者:

xx = (n >> 8) & 0xff ;
yy = n & 0xff ;
于 2013-08-09T18:21:08.283 回答