PN532讀寫FM1208 CPU卡折騰記

2021-09-25 11:20:14 字數 1089 閱讀 6172

同學畢業設計是用樹莓派做智慧型門禁,向我求助,作為智慧型門禁中較不智慧型的一環,刷卡環節如果還使用m1卡就顯得太low了,因為以前買了pn532,又用c51驅動過,因此依然打算使用pn532來作為讀卡器,使用樹莓派+pn532+fm1208方案。

網上相關資料較少,從網上找到乙份fmcos2.0使用者手冊,坑還是蠻多的,裡面有一些筆誤,比如新增金鑰時內部金鑰的金鑰型別應該為30,而手冊中寫為34。

pn532的normal information frame幀格式如下圖,網上相關資料很多,這裡只簡單介紹。

normal information frame幀格式

總結來說就是00 00 ff+資料長度(包括tfi)+(0x100-資料長度)+tfi(message方向,主機到pn532是d4,反之d5)+多個位元組資料(第乙個位元組主機到pn532時為指令碼(command code),反之為指令碼+1,如主機傳送inlistpassivetarget指令時,其指令碼為4a,則pn532返回時,資料第乙個位元組應該為4b)+(0x100-每個資料位元組相加取最低兩位)+00。

在接收資料前,pn532會先返回乙個ack, 如下圖,即每次接收資料前都會接收到00 00 ff 00 ff 00,之後才是接收到的資料。

使用pn532讀寫fm1208,第一步和讀取m1卡一樣,先使用inlistpassivetarget,該命令用來檢測目標卡,其格式為

其中maxtg為讀卡數量,對於pn532來說一次最多可以讀取兩張卡,brty選擇00,讀取106kbps typea卡,此時initiatordata為讀取的卡的uid,可以為空。pn532響應格式如下圖:

於是我的讀卡指令為00 00 ff (固定格式)04(長度)fc(0x100-0x04)d4(主機到pn532)4a 01 00

pn532先返回ack即00 00 ff 00 ff 00 ,接下來開始返回乙個normal information frame 先是00 00 ff 然後兩個位元組為資料長度及其校驗,d5(pn532到主機),4b(4a+1),然後是讀取到的卡的數量,接著是讀取到的卡的相關資訊(uid等,格式如上圖)。

讀到卡之後,使用 indataexchange 對fm1208的系統fmcos進行操作,indataexchange格式如下圖

pn532驅動 用pn532複製門禁卡 電梯卡成功

不放棄 下一步在某寶買了pn532 pl2303,安裝了驅動,再安裝mtone軟體 開始解密電梯門禁卡 然後複製cuid卡 和小公尺手環 手機 結果手機和手環可以開啟小區門禁和電梯了 但是打不開家大門 cuid卡則悲催了 複製好出門的時候試了下可以開啟大門 到了樓下也可以刷開門禁 但是刷不開電梯 放...

PN532晶元NFC讀寫模組的整合與應用

hx881系列模組是一款基於iso18092,iso14443a b國際標準協議開發的nfc讀寫模組。支援點對點通訊 支援ndef讀寫模組 支援非接觸式cpu卡及felica卡讀寫,它採用高整合度讀卡專用晶元pn532 先進的看門狗和電壓監控電路方案設計而成 整合度高 抗干擾能力強 體積小 效能更穩...

pn532複製小區門卡到手環

小區門卡就剩一張了,去物業辦一張要50塊。先判斷門卡是什麼型別的卡 我的是ic卡 ic卡和id卡區別 因為小公尺手環不支援複製加密ic卡於是去 寶整了個pn532。不過有機率破解不了門卡。m1加密ic卡有16個扇區,每個扇區分為4個塊,前3個塊儲存資料,第四個塊儲存a b金鑰。第乙個扇區的第乙個塊的...