当前位置: 首页>編程日記>正文

APDU调试问题总结

APDU调试问题总结

问题1.================================================================
无法读取银行卡(手环等),卡号也寻不到,导致后续的操作无法进行
或者偶尔能寻到卡,但是读写很不稳定,可能读着读着就又寻不到卡了

  
原因:底层寻卡操作中,关闭再开启天线之后,没有短暂延时使天线稳定,
导致卡无法寻卡。卡的能量是从读卡器的天线上获取,如果卡没有获取到足够的
能量(达到卡片内芯片的工作电压),那么卡片和读卡器也就无法通信。

解决:关闭再开启天线之后,加入10ms延时,问题解决

问题2:================================================================
无法接收超过64字节的APDU数据
在接收超过64字节的APDU数据时,发现数据被截断了,而且每次最多收到64字节数据

原因:FM1722的FIFO寄存器大小为64字节。所以一次最多接收64字节数据,所以需要
使用块传输分包发送大量数据。

解决:ISO14443协议规定,可以将长字节的APDU数据分包发送,每个包大小可以自定义
RATS阶段PCD会发送自身的最大接收长度(FSDI=5 即64字节)给卡片,卡片收到以后,会自动
将超过64字节的数据分块发送给PCD,PCD在收到块之后需要发送R(ACK)块确认,然后,卡片会
继续发送剩下的块,直至所有数据发送完毕。
问题3:================================================================
APDU交互时,选择DF经常超时报错,偶尔能成功,此外GPO指令一直报错(6F00),导致
后续扣款操作无法进行

原因:底层发送数据到FM1722的FIFO之后,延时过短,卡还没来得及返回数据
读卡器认为卡没有返回数据而直接跳过接收环节

解决:将延时增加到500ms,若还未收到数据,则报超時错误


问题4:================================================================
读卡器向卡片发送APDU指令(APDU确定是正确的),但是卡片无返回(RATS成功后面进行APDU交互时)?

原因:
1. 同问题3  
2.CID的问题,CID由读卡器规定,它指示了PCD同时可以操作多少张卡,它的可选值是0~14,
也就就是同时最多操作15张卡(卡片0~卡片14),RATS阶段,读卡器会发送
CID到卡片,假设CID=0,也就是规定该卡标识为0,后续的APDU交互,如果支持CID,
读卡器发送的块数据中CID值必须为0,该卡片才会返回数据,若CID为其他值,那么卡片不会返回任何值,
换句话说,卡片根本不知道读卡器在呼叫它,所以也就不会返回数据了

解决:针对原因2,RATS阶段的CID值需要和后面APDU的CID值保持一致。

问题5:================================================================
读取银行卡(SAK=0x28)时,RATS成功返回之后,APDU的交互总是成功一次,超时一次
超时即 卡片无响应  

例如,读卡器发送PPSE,卡片总是成功返回一次,超时失败一次?

原因:暂时未知 目前发现几乎所有SAK=0x28的卡都会这样,但是SAK=0x20的就没有问题

解决:底层加入APDU重发机制;如果超时,至多重发3次,若卡片仍超时,则判定失败
实测正常情况下,暂无出现重发3次,卡片仍无响应的问题。
  


    


https://www.fengoutiyan.com/post/14998.html

相关文章:

  • 程序调试遇到的问题
  • 网页调试过程出现的问题
  • Knx调试问题汇总
  • 调试过程及结果分析
  • cdda调试
  • 软件调试过程中遇到的问题
  • 调试年度总结
  • knx调试
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機