硬件 :stm32f103開(kāi)發(fā)板 + FM1702SL射頻模塊
軟件: 串口:上位機(jī)與下位機(jī)接口 SPI接口 :控制與射頻模塊接口
程序基本流程: 1.配置FM1702芯片,包括復(fù)位等 2.尋卡 1)失能接收CRC、發(fā)送CRC、奇偶校驗(yàn) 2)關(guān)閉加密單元 3)清空FIFO 4)發(fā)送0x52到FIFO 5)發(fā)送Transceive(0x1E)命令到Command(0x01) 6)等待FIFO的長(zhǎng)度為2時(shí),讀出FIFO中數(shù)據(jù)(這是卡的類(lèi)型) 3.讀取S50卡號(hào) 1)向Command中寫(xiě)Idle,反正當(dāng)前還運(yùn)行著其他命令 2)清空FIFO 3)向RegDecoderControl(0x1A)寫(xiě)0x28,所有接收到的沖突位之后的數(shù)據(jù)置0 4)向RegControl(0x09)寫(xiě)0x08,打開(kāi)加密單元 5)向FIFO寫(xiě)0x93、0x20 6)向Command中寫(xiě)Transceive 7)等待卡返回卡號(hào),當(dāng)FIFO==4時(shí)說(shuō)明收到卡號(hào)并讀出FIFO中的卡號(hào)
4.選卡 1)使芯片進(jìn)入空閑模式,向Command中寫(xiě)Idle,反正當(dāng)前還運(yùn)行著其他命令 2)向RegChannelRedundancy(0x22)寫(xiě)0x0F,使能接收CRC、發(fā)送CRC、奇偶校驗(yàn) 3)向RegControl(0x09)寫(xiě)入0x08,打開(kāi)加密單元 4)清空FIFO 5)向FIFO寫(xiě)入0x93+0x70+卡號(hào)(4個(gè)字節(jié))+卡號(hào)的BCC校驗(yàn) 6)向Command中寫(xiě)Transceive 7)等待卡返回卡號(hào),當(dāng)FIFO==1時(shí)說(shuō)明收到卡的容量并
4.密碼認(rèn)證 1)加載密碼:改變密碼格式(具體查手冊(cè)),得到的12字節(jié)密碼數(shù)據(jù)發(fā)送到FIFO,然后向Command寫(xiě)入LoadKey(0x19)加載密碼到密碼緩存中 2)等待1)完成后 向FIFO寫(xiě)PICC_AUTHENT1A(0x60)或PICC_AUTHENT1B(0x61)+塊絕對(duì)地址+4字節(jié)S50卡號(hào),然后向Command寫(xiě)入PCD_AUTHENT1(0x0C)進(jìn)行第一步認(rèn)證,等待芯片進(jìn)入空閑模式 3)清空FIFO,向Command寫(xiě)PCD_AUTHENT2(0x14),進(jìn)行認(rèn)證第二步,并等待進(jìn)入空閑模式 4)讀RegControl(0x09)看Crypto1On位是否置1,置1表示認(rèn)證成功了
5.讀寫(xiě)S50卡 1)讀:向FIFO寫(xiě)PICC_READ(0x30)+塊得絕對(duì)地址,向Command寫(xiě)Transceive,等待FIFO長(zhǎng)度為16,然后讀出來(lái)
0.png (61.74 KB, 下載次數(shù): 140)
下載附件
2017-1-3 22:53 上傳
全部代碼下載:
FM1702SL stm32ucosii源碼.rar
(795.58 KB, 下載次數(shù): 331)
2016-12-17 21:58 上傳
點(diǎn)擊文件名下載附件
帶ucos ii操作系統(tǒng) ,不愛(ài)用可直接去掉 下載積分: 黑幣 -5
|