我没有硬件可以测试,但这应该可以帮助您:
与智能卡通信包括发送APDU (智能卡应用协议数据单元) 命令和接收APDU响应。
命令APDU通过读取器/写入器(您的ACR38F)发送,由一个4字节的报头和后面的数据(以及有关数据大小和响应大小的信息)组成
Field Len Description--------------------------------------------CLA (1) Instruction ClassINS (1) Instruction CodeP1-P2 (2) Instruction ParametersLc (0,1,3) Number of data bytes to followDATA (*) Data to be transmittedLe (0-3) Maximum response bytes
响应包括:
Field Len Description--------------------------------------------DATA (*) Data to be transmittedSW1-SW2 (2) Command status
对于SLE4418,为了写入数据,其值应如下所示:
- CLA = 00
- INS = D6
- P1 =用于存储字节的内存地址偏移的MSB
- P2 =用来存储字节的存储器地址偏移的LSB
- Lc =要存储的字节长度
- DATA =要存储的数据
- Le =(空)
因此,在代码中:
WRITE = [0x00, 0xD6]STARTMSB = [0x00] #change to where on the card you would like to writeSTARTLSB = [0x00] #same hereMEM_L = [0x01]DATA = [0x01]cardservice.connection.connect()apdu = READ + STARTMSB + STARTLSB + MEM_L + DATAresponse1, sw1, sw2 = self.cardservice.connection.transmit( apdu )
其他相关信息:
- http://www.belelectro-m.by/docs/doc3723.pdf
- http://www.youcard.de/datenblaetter/chipkarten/DB%20SLE441828.pdf



