久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8880|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

零知開(kāi)源分享-使用PN532模塊讀寫NFC卡片

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
一、串口命令操作
1、數(shù)據(jù)幀結(jié)構(gòu)
使用串口命令操作時(shí)候,需要按照下面的幀格式進(jìn)行數(shù)據(jù)傳輸,這是通信的基礎(chǔ)。

下面詳細(xì)解釋一下:
  • PREAMBLE:這個(gè)就是所謂的幀頭,也稱為前導(dǎo)碼,一般是00。

  • START CODE :開(kāi)始碼 2個(gè)字節(jié),分別是 00和FF 。

  • LEN :這個(gè)是數(shù)據(jù)長(zhǎng)度,一個(gè)TFI和n個(gè)PD。

  • LCS:這個(gè)是LEN的補(bǔ)碼,也就是(LEN取反+1)。

  • TFI:表示數(shù)據(jù)流向 ,D4 表示 數(shù)據(jù)發(fā)向PN532,D5 表示 PN532數(shù)據(jù)發(fā)出

  • DATA:這才是我們想要發(fā)的數(shù)據(jù),DATA的第一個(gè)字節(jié)PD0為控制字符,其余為普通數(shù)據(jù),該包長(zhǎng)度為 LEN-1。

  • DCS:其實(shí)就是把這些十六進(jìn)制數(shù)加起來(lái),后兩位取補(bǔ)碼即可。即(TFI + PD0 + PD1 + … + PDn)累加和,取后兩位的補(bǔ)碼。

  • POSTAMBLE:幀尾 ,一般為 00

這種的數(shù)據(jù)結(jié)構(gòu)只能有255 個(gè)data (包括TFI),還有幾種結(jié)構(gòu),這里先不說(shuō)了。
2、讀寫示例分析
使用的是pn532為主控芯片的NFC串口模塊,來(lái)讀寫M1卡,注意下所有數(shù)字為16進(jìn)制形式。用usb轉(zhuǎn)串口模塊將pn532與電腦連接,串口助手發(fā)送選擇hex。
波特率:默認(rèn) 115200 ,數(shù)據(jù)位:8 ,校驗(yàn)位:無(wú) ,停止位:1, 流控:無(wú)。硬件連接正常后開(kāi)始操作,詳細(xì)步驟分析如下:
(1) 喚醒PN532:
  1. PC->PN532: 55 55 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 03 fd d4 14 01 17 00
  2. PN532->PC: 00 00 FF 00 FF 00 00 00 FF 02 FE D5 15 16 00
復(fù)制代碼
其實(shí)第一條不符合普通的發(fā)送格式,比較特殊。如果沒(méi)有正常返回,檢查硬件連接和波特率。
(2)獲取卡UID,也就是卡的唯一ID號(hào)
  1. PC->PN532: 00 00 FF 04 FC D4 4A 02 00 E0 00
復(fù)制代碼
分析:
   04 //代表有四個(gè)數(shù)據(jù)分別是 D4 4A 02 00;
   FC //這是04的補(bǔ)碼 ;
   4a //命令;
   02 //卡數(shù)量,0--2;
   00 //波特率 106K;
   E0 //校驗(yàn)位  D4+4A+02+00=0x0120  取后兩位20的補(bǔ)碼為E0。至于補(bǔ)碼怎么計(jì)算自己百度吧。
  1. PN532->PC:  00 00 FF 00 FF 00
  2.                    00 00 FF 0C F4 D5 4B 01 01 00 04 08 04 A1 9F F5 5E 3B 00
復(fù)制代碼
分析:
    00 00 FF 00 FF 00  //ACK;
    00 00 FF 0C F4 D5 //PN532 到 MCU;
    4B //響應(yīng)命令;
    01 //目標(biāo)卡1;
    01 //目標(biāo)卡數(shù)量,最大為0x02,最小為0;
    00 04 //atq;
    08 //卡容量 08=1K;
    04 //4個(gè)字節(jié)UID;
    02 F5 13 BE //UID;
    06 00 //DCS+POST;
到這一步總體來(lái)說(shuō)還算順利,主要是因?yàn)榭梢园l(fā)送完命令在再刷卡也行,也可以把卡一直放上。
(3)密鑰驗(yàn)證,注意驗(yàn)證完秘鑰,卡不能離開(kāi),需要一直放在上面,才能順利的完成下面讀寫操作,還有注意替換步驟(2)的UID,最后根據(jù)自己的UID計(jì)算校驗(yàn)位即倒數(shù)第二位。
  1. PC->PN532:  00 00 fF 0F F1 D4 40 01 60 07 FF FF FF FF FF FFA1 9F F5 5E C2 00
復(fù)制代碼
分析:   
     40 //命令;
     01 //卡1;
     60 //密鑰驗(yàn)證命令;
     07 //塊號(hào);
     ff ff ff ff ff ff //密鑰;
     A1 9F F5 5E //UID 替換為步驟2得到的UID ;
     C2 //檢驗(yàn)位,根據(jù)替換的UID計(jì)算,計(jì)方法跟步驟(2)一樣。
  1. PN532->PC: 00 00 FF 00 FF 00
  2.                   00 00 FF 03 FD D5 41 00 EA 00
復(fù)制代碼
分析:
    41 00 //正確狀態(tài)。
(4)開(kāi)始讀卡,M1卡有16個(gè)扇區(qū),每個(gè)扇區(qū)4個(gè)塊。
  1. PC->PN532: 00 00 ff 05 fb D4 40 01 30 07 B4 00 //讀第7塊
  2. PC->PN532: 00 00 ff 05 fb D4 40 01 30 06 B5 00 //讀第6塊
  3. PC->PN532: 00 00 ff 05 fb D4 40 01 30 08 B3 00 //讀第8塊
復(fù)制代碼
分析:  
     40 //命令;
     01 //卡1;
     30 //讀卡命令;
     07 //塊號(hào)。
  1. PN532->PC: 00 00 FF 00 FF 00 //ACK
  2.                   00 00 FF 13 ED D5 41 00 00 00 00 00 00 00 FF 07 80 69 FF FF FF FF FF FF 01 00  //7塊
  3. PN532->PC: 00 00 FF 00 FF 00 //ACK
  4.                   00 00 FF 13 ED D5 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 EA 00 //6塊
復(fù)制代碼
分析:
    41 00 //正確
    錯(cuò)誤會(huì)返回: 00 00 FF 00 FF 00
                      00 00 FF 03 FD D5 41 13 D7 00
    41 03 //錯(cuò)誤。
(5)寫卡
  1. PC->PN532: 00 00 ff 15 EB D4 40 01 A0 06 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F CD 00
復(fù)制代碼
分析:   
    40 //命令;
     01 //卡1;
     A0 //寫卡命令;
     06 //塊號(hào);
     00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  //16字節(jié)數(shù)據(jù);
     CD//校驗(yàn)和,如果更改其他的數(shù)需重新計(jì)算。
  1. PN532->PC: 00 00 00 FF 00 FF 00
  2.                   00 00 FF 03 FD D5 41 00 EA 00
復(fù)制代碼
分析:
    41 00 //正確。
二、使用上位機(jī)方式進(jìn)行操作
下面使用上位機(jī)軟件進(jìn)行讀寫測(cè)試:我們使用一個(gè)USB轉(zhuǎn)串口模塊連接到PN532模塊。
PN532模塊:

電路連接如下:

我們使用模塊的串口模式接口,因此在上面的配置模式中我們選的是HSU這個(gè),即1、2兩個(gè)開(kāi)關(guān)都在左邊(基于上圖)。
連接好以后,我們打開(kāi)上位機(jī)軟件,如下圖:

如果我們連接沒(méi)有問(wèn)題,接口選擇也正確,就會(huì)顯示“發(fā)現(xiàn)NFC設(shè)備”標(biāo)識(shí),如果沒(méi)有連接好,則會(huì)出現(xiàn)“未發(fā)現(xiàn)NFC設(shè)備”。
上一步成功后,我們就可以操作PN532來(lái)進(jìn)行讀寫其他NFC卡片設(shè)備了。
我們把門禁卡放在PN532模塊上方,如下圖所示:

然后點(diǎn)擊上位機(jī)中的【讀取卡:讀取卡片內(nèi)容】,就可以讀取到卡片的內(nèi)容了:

更多詳細(xì)資料可到零知實(shí)驗(yàn)室官網(wǎng)免費(fèi)領(lǐng)取。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美在线一区视频 | 精品一二区 | 91人人爽| 欧美日韩国产高清 | 日本亚洲欧美 | 亚洲欧美日韩在线不卡 | 激情伊人网 | 日本激情视频网 | 在线观看黄色 | 国产香蕉视频在线播放 | 中日韩欧美一级片 | 久久国产电影 | 色桃网 | 色婷婷影院 | 三级免费网| 久久精品久久综合 | 久久久久久国产 | 在线国产精品一区 | 久草视频观看 | 美女福利网站 | 精品成人免费一区二区在线播放 | 国产精品一区久久久 | 精品毛片在线观看 | 国内精品视频在线观看 | 午夜成人在线视频 | 亚洲精品日韩在线 | 一区二区三区成人 | 精品在线一区二区 | 亚洲精品久久久久久久久久久久久 | 国产精品久久久久久久久久久久 | 蜜桃一区二区三区 | re久久| 国产激情在线 | 羞羞的视频在线观看 | 成年男女免费视频网站 | 久视频在线观看 | 色一情一乱一伦一区二区三区 | 欧美成人一区二区三区片免费 | 精品国产视频 | 在线观看国产网站 | 精品av|