加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

射頻讀卡器源碼解析,密碼認證更安全

2017/11/29
55
服務(wù)支持:
技術(shù)交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術(shù)大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領(lǐng)取優(yōu)惠和紅包等。

虛擬商品不可退

當前內(nèi)容為數(shù)字版權(quán)作品,購買后不支持退換且無法轉(zhuǎn)移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
  • 方案介紹
  • 相關(guān)文件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

硬件stm32f103開發(fā)板 + FM1702SL射頻模塊
軟件 串口:上位機與下位機接口 SPI接口 :控制與射頻模塊接口
程序基本流程:
1.配置FM1702芯片,包括復(fù)位等

2.尋卡
1)失能接收CRC、發(fā)送CRC、奇偶校驗
2)關(guān)閉加密單元
3)清空FIFO
4)發(fā)送0x52到FIFO
5)發(fā)送Transceive(0x1E)命令到Command(0x01)
6)等待FIFO的長度為2時,讀出FIFO中數(shù)據(jù)(這是卡的類型)
3.讀取S50卡號
1)向Command中寫Idle,反正當前還運行著其他命令
2)清空FIFO
3)向RegDecoderControl(0x1A)寫0x28,所有接收到的沖突位之后的數(shù)據(jù)置0
4)向RegControl(0x09)寫0x08,打開加密單元
5)向FIFO寫0x93、0x20
6)向Command中寫Transceive
7)等待卡返回卡號,當FIFO==4時說明收到卡號并讀出FIFO中的卡號
4.選卡
1)使芯片進入空閑模式,向Command中寫Idle,反正當前還運行著其他命令
2)向RegChannelRedundancy(0x22)寫0x0F,使能接收CRC、發(fā)送CRC、奇偶校驗
3)向RegControl(0x09)寫入0x08,打開加密單元
4)清空FIFO
5)向FIFO寫入0x93+0x70+卡號(4個字節(jié))+卡號的BCC校驗
6)向Command中寫Transceive
7)等待卡返回卡號,當FIFO==1時說明收到卡的容量并
5.密碼認證
1)加載密碼:改變密碼格式(具體查手冊),得到的12字節(jié)密碼數(shù)據(jù)發(fā)送到FIFO,然后向Command寫入LoadKey(0x19)加載密碼到密碼緩存中
2)等待1)完成后 向FIFO寫PICC_AUTHENT1A(0x60)或PICC_AUTHENT1B(0x61)+塊絕對地址+4字節(jié)S50卡號,然后向Command寫入PCD_AUTHENT1(0x0C)進行第一步認證,等待芯片進入空閑模式
3)清空FIFO,向Command寫PCD_AUTHENT2(0x14),進行認證第二步,并等待進入空閑模式
4)讀RegControl(0x09)看Crypto1On位是否置1,置1表示認證成功了
6.讀寫S50卡
1)讀:向FIFO寫PICC_READ(0x30)+塊得絕對地址,向Command寫Transceive,等待FIFO長度為16,然后讀出來

  • 射頻讀卡器源碼.rar
    描述:源碼

相關(guān)推薦

電子產(chǎn)業(yè)圖譜