我有一个需要用存储卡玩的项目。我需要在卡片上读写。
我的阅读器型号是:Alcor Micro AU9540 (http://www.ebay.com/itm/NEW-HIGH-SPEED-USB-EMV-PS-SC-SMART-CARD-CHIP-READER-AND-WRITER-SUPPORT-ISO-7816-/172165900399?hash=item2815e3286f:g:zJoAAOSwDuJWxOcc)
我使用的卡是:SLE4442存储卡(我丢失了链接)
我在ubuntu上使用pcsc-lite和pcsc-tools
当我使用'pcsc_scan'命令时,它可以读取读取器模型成功,但卡无响应。像这样:
leo@leo-ThinkPad-S3-S431:~$ pcsc_scan
PC/SC device scanner
V 1.4.23 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.8.11
Using reader plug'n play mechanism
Scanning present readers...
0: Alcor Micro AU9540 00 00
Tue Aug 9 01:57:39 2016
Reader 0: Alcor Micro AU9540 00 00
Card state: Card inserted, Unresponsive card,
但是如果我使用我自己的使用中的银行卡(我知道它不是存储卡),但是像这样的事情,它得到一个ATR响应:
Tue Aug 9 01:58:36 2016
Reader 0: Alcor Micro AU9540 00 00
Card state: Card inserted,
ATR: 3B 68 00 00 00 73 C8 40 13 00 90 00
ATR: 3B 68 00 00 00 73 C8 40 13 00 90 00
+ TS = 3B --> Direct Convention
+ T0 = 68, Y(1): 0110, K: 8 (historical bytes)
TB(1) = 00 --> VPP is not electrically connected
TC(1) = 00 --> Extra guard time: 0
+ Historical bytes: 00 73 C8 40 13 00 90 00
Category indicator byte: 00 (compact TLV data object)
Tag: 7, len: 3 (card capabilities)
Selection methods: C8
- DF selection by full DF name
- DF selection by partial DF name
- Implicit DF selection
Data coding byte: 40
- Behaviour of write functions: write OR
- Value 'FF' for the first byte of BER-TLV tag fields: invalid
- Data unit in quartets: 1
Command chaining, length fields and logical channels: 13
- Logical channel number assignment: by the card
- Maximum number of logical channels: 4
Mandatory status indicator (3 last bytes)
LCS (life card cycle): 00 (No information given)
SW: 9000 (Normal processing.)
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 68 00 00 00 73 C8 40 13 00 90 00
MASTERCARD issued by MLP (Marschollek, Lautenschl?ger and Partner)
G&D 12696-GDM-10/11 DEBIT CARD issued by BANCO DE CREDITO DEL PERU
比较一下,问题似乎出在卡片上。
我也猜是不是因为我买的卡和读卡器不匹配?在eBay上,卡片的详细信息是这样的:[卡片销售页面][1]
[1]: https://i.stack.imgur.com/O6v1o.png提供了该卡支持的部分型号的读卡器(部分卡支持所有读卡器)。也许我的卡不支持读卡器?
或者也许我需要先在卡片上做点什么,然后我才能得到ATR响应?卡片不能做太多的事情来与阅读器兼容,它是相反的。请注意,SLE4442是一个内存卡,这意味着通信是同步的,并使用双线协议而不是异步T=0或T=1。
根据Alcor Micro的说法,读卡器芯片支持两线制,所以您的卡可能有问题。
在Alcor Micro AU9560芯片上遇到同样的问题,试图读取一堆SLE4442卡。
看起来,尽管芯片本身声称支持SLE4442存储卡,但我的不是。我无法得到确切的证据,证明是芯片本身在某种程度上"坏了"——它可以正确读取IC卡,但是——还是支持被供应商取消了(他们仍然在产品描述中声称支持SLE4442卡)。不管怎样,解决办法是买一个不同品牌的阅读器。
对于那些挣扎于"卡状态:卡插入,卡无响应"错误的人,很可能是读卡器根本不兼容。使用兼容的阅读器,您可以同时从pcsc_scan和opensc-tool获取ATR。
请参见:卡状态:卡插入,卡GitHub问题无响应