日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

68 iso14443读卡入门记录

發布時間:2023/12/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 68 iso14443读卡入门记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.前言

????????最近項目涉及射頻讀卡,我負責讀卡程序移植以及基于APDU自定義數據收發接口實現。由于第一次參與讀卡項目涉及讀卡相關協議內容,因此特此學習記錄。

2.讀卡分析

基于ISO14443協議讀卡流程分析。

(1)通常讀卡器(專業名稱PCD)會在場域內一直發WUPA或REQA指令進行尋卡。

(2)尋卡的指令基于13.56MHz頻率的電磁波將數據發出,其中WUPA指令是0x52;REQA指令是0x26;

(3)0x52和0x26是直接發出到場里面,卡片靠近場之后,便被喚醒然后處于ready狀態。

(4)當讀卡器發出WUPA或REQA指令后,被卡片捕獲到后會返回一個ATQA數據給讀卡器。

(5)其中ATQA數據只有兩個字節長度,其內容規定如下。

有上述圖片可知,回復的AQTA中,可獲取到卡片的UID長度信息。其解析實例如下圖示。

?(6)當讀卡器喚醒了卡片,并且獲取到卡片返回的AQTA數據后,一般要進行選卡流程。在選卡流程初始前,需要對卡片進行防碰撞檢測,避免多張卡放一起時,讀到的數據有問題。

(7)防碰撞指令是:SEL+NVB(0x93 0x20),發出指令后,卡片便返回了其UID信息(也就是我們所說的物理卡號)。

?

讀卡器發送放碰撞指令,如果存在干擾,可能要多級防碰撞才能把卡片選出來,那么就可能會發0x95 0x20甚至0x97 0x20指令,不過一般而言0x93 0x20已經夠了。

下圖為A卡交互部分示例。

?下圖為放碰撞選卡流程圖。

?對于防碰撞返回的數據,是卡片的UID和其UID的異或,當我們拿到返回的數據之后,我們一般也需要單獨計算一下卡片的UID異或結果,然后做對比,以此判斷數據是否正確。

?

(8)選卡操作。所謂的選卡不是,獲取卡片的UID(即物理卡號),而是告訴卡片你已經被選中了,接下來可能有一系列的操作。其中選卡的指令如下圖示。

?代碼示例如下:

?讀卡器進行選卡操作后,卡片會返回一個SAk對讀卡器進行響應。如果是CPU卡,這個SAK就是0x20。

?

?

(9)如果卡片支持ATS,讀卡器發送了RATS給卡片,卡片回復ATS給讀卡器后,讀卡器便可以進行透傳。其中RATS的指令格式如下圖示。

?

?而讀卡器發了RATS后,卡片會返回數據ATS。

?

?ATS返回結果如下圖示例,長度是不定的。

?

(10)APDU傳輸。APDU傳輸格式如下圖示。

?

?下面這張圖是卡片接收到APDU指令后,要回復讀卡器的示例。其中可以看到,回復中PCB應該要和讀卡器發過來的一樣,如果有CID,那么CID也要按格式回復回去。

?通過上述分析,已理清了相關交互協議。

總結

以上是生活随笔為你收集整理的68 iso14443读卡入门记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。