2015-12-08 116 views
2

我使用MFRC522作爲閱讀器,而Sony C4正在執行Google HCE示例。 讀者發送幀1:如何處理閱讀器收到的S塊?

02 00 A4 04 00 07 F0 01 02 03 04 05 06 crc1 crc2 

然後讀取器接收幀2:

f2 08 50 dd 

我認爲它可能是一個S-塊或WTX。

然而HCE應用的日誌顯示:

接收APDU 00 A4 04 00 07 F0 01 02 03 04 05 06

發送賬戶號碼編號123456

即使讀取器再次發送幀1並再次,我總是接收相同的幀2,爲什麼?

+0

對不起,我有一個錯字.... apdu1是02 00 A4 04 00 07 F0 01 02 03 04 05 06 crc1 crc2和日誌顯示00 A4 04 00 07 F0 01 02 03 04 05 06. – jorgewang168

+0

對不起, MFRC522是正確的。 – jorgewang168

回答

1

f2 08 50 dd是S塊指示等待時間擴展(WTX):

  • PCB = f2
    • 位8..7 = '11':S-塊
    • 位6..5 = '11':S(WTX)
  • INF = 08
    • WTXM = 8
  • EDC = 50 dd

如果讀取器接收A S從卡(WTX)請求時,它需要通過用A S響應於確認該請求(WTX)幀。因此,例如,您可以將相同的S(WTX)幀發送回卡。由於HCE處理速度通常很慢,在實際接收到APDU的任何響應數據之前交換多個S(WTX)幀並不少見。

+0

謝謝,它有很大的幫助。 – jorgewang168

+0

當閱讀器將相同的S(WTX)幀發送回卡時,卡只響應02 90 00 crc1 crc2。我怎樣才能得到帳號123456? – jorgewang168

+0

@ jorgewang168'02 90 00 CRC'對於您發送的選擇命令而言看起來非常有效。所以我建議你接受這個答案,然後創建一個新問題來詢問這個新問題(並且包括你的Android HCE代碼的相關部分)。 –